From 330e7abba846d882169fdd30984bac4229512479 Mon Sep 17 00:00:00 2001 From: Rasmus <rburwitz@uni-bremen.de> Date: Sun, 19 Jul 2020 14:46:15 +0200 Subject: [PATCH] VideoVController added + AudioController fix --- .../ClientControllerCommunicator.java | 3 +- .../Controller/AudioController.java | 10 +--- .../Controller/VideoController.java | 57 +++++++++++++++++++ .../galaxytruckerreloaded/Main.java | 21 +++---- .../Video/FullscreenEnableButton.java | 3 +- .../OptionButtons/Video/WindowedButton.java | 3 +- .../View/Screen/GamePlay.java | 3 - .../View/UI/Options/AudioUI.java | 1 + .../View/UI/Options/VideoUI.java | 2 + 9 files changed, 78 insertions(+), 25 deletions(-) create mode 100644 core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/VideoController.java diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java index ded70088..4748ce94 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java @@ -87,7 +87,8 @@ public class ClientControllerCommunicator { HangerController.getInstance(); TraderController.getInstance(singleton); TravelController.getInstance(singleton); - AudioController.getInstance(singleton); + AudioController.getInstance(); + VideoController.getInstance(singleton); // TODO CREATE ALL CONTROLLERS HERE, all controllers should be singletons return singleton; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/AudioController.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/AudioController.java index 22507fbb..196c363b 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/AudioController.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/AudioController.java @@ -20,18 +20,15 @@ public class AudioController extends Controller /**implements Audio*/ { private static AudioController singleton; - @NonNull - private ClientControllerCommunicator clientControllerCommunicator; - /** * return the instance of this singleton - * @param communicator the communicator + * @ * @return the singleton instance */ - public static AudioController getInstance(ClientControllerCommunicator communicator) { + public static AudioController getInstance() { if(singleton == null) { - singleton = new AudioController(communicator); + singleton = new AudioController(); } return singleton; } @@ -40,7 +37,6 @@ public class AudioController extends Controller /**implements Audio*/ { if(music!= null) { music = Gdx.audio.newMusic(file); music.setLooping(true); - music.setVolume(0.5f); music.play(); } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/VideoController.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/VideoController.java new file mode 100644 index 00000000..bde571ae --- /dev/null +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Controller/VideoController.java @@ -0,0 +1,57 @@ +package com.galaxytrucker.galaxytruckerreloaded.Controller; +import com.badlogic.gdx.Game; +import com.badlogic.gdx.Gdx; +import com.galaxytrucker.galaxytruckerreloaded.Communication.ClientControllerCommunicator; +import com.galaxytrucker.galaxytruckerreloaded.Main; +import lombok.*; +import org.hibernate.graph.internal.parse.HEGLTokenTypes; + + +@Getter +@Setter + +@RequiredArgsConstructor(access = AccessLevel.PRIVATE) + +public class VideoController extends Controller{ + + private static VideoController singleton; + + private Main main; + + + @NonNull + private ClientControllerCommunicator clientControllerCommunicator; + + + /** + * return the instance of this singleton + * @param communicator the communicator + * @return the singleton instance + */ + public static VideoController getInstance(ClientControllerCommunicator communicator) { + if(singleton == null) { + singleton = new VideoController(communicator); + } + return singleton; + } + + private int getHight(Main main){ + return main.HEIGHT; + } + private int getWidth(Main main){ + return main.WIDTH; + } + + public void setResolution(int width, int height, Main main){ + main.HEIGHT = height; + main.WIDTH = width; + } + + public void setFullscreen() { + Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode()); + } + + public void setWindowed() { + Gdx.graphics.setWindowedMode(getWidth(main),getHight(main)); + } +} diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Main.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Main.java index 1626125c..3c2cbf33 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Main.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Main.java @@ -2,8 +2,10 @@ package com.galaxytrucker.galaxytruckerreloaded; import com.badlogic.gdx.Game; import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.audio.Music; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.galaxytrucker.galaxytruckerreloaded.Communication.Client; +import com.galaxytrucker.galaxytruckerreloaded.Controller.AudioController; import com.galaxytrucker.galaxytruckerreloaded.Server.Server; import com.galaxytrucker.galaxytruckerreloaded.Server.ServerServiceCommunicator; import com.galaxytrucker.galaxytruckerreloaded.View.Screen.LoginScreen; @@ -16,8 +18,8 @@ public class Main extends Game { /** * Settings */ - public static final int WIDTH = 1920; - public static final int HEIGHT = 1080; + public static int WIDTH = 1920; + public static int HEIGHT = 1080; public static final String TITLE = "Galaxy Trucker"; /** @@ -38,11 +40,12 @@ public class Main extends Game { @Setter private boolean server; + private Music music; /** * start a server, if there isnt one */ public void startServer() { - if(!server) { + if (!server) { Server.runServer(); server = true; } @@ -52,7 +55,7 @@ public class Main extends Game { * start a client, if there isnt already one */ public void startClient() { - if(client == null) { + if (client == null) { client = new Client("localhost", 5050); } } @@ -60,6 +63,7 @@ public class Main extends Game { @Override public void create() { batch = new SpriteBatch(); + AudioController.getInstance().setMusic(Gdx.files.internal("Sounds/Music/bp_MUS_WastelandEXPLORE.ogg")); setScreen(new MainMenu(this)); } @@ -83,12 +87,5 @@ public class Main extends Game { public SpriteBatch getBatch() { return this.batch; } - - public void setFullscreen() { - Gdx.graphics.setFullscreenMode(Gdx.graphics.getDisplayMode()); - } - - public void setWindowed() { - Gdx.graphics.setWindowedMode(WIDTH,HEIGHT); - } } + diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/FullscreenEnableButton.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/FullscreenEnableButton.java index 6c594ece..19b94293 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/FullscreenEnableButton.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/FullscreenEnableButton.java @@ -4,6 +4,7 @@ import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.galaxytrucker.galaxytruckerreloaded.Controller.VideoController; import com.galaxytrucker.galaxytruckerreloaded.Main; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.ImButton; @@ -25,6 +26,6 @@ public class FullscreenEnableButton extends ImButton { @Override public void leftClick() { - main.setFullscreen(); + VideoController.getInstance(null).setFullscreen(); } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/WindowedButton.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/WindowedButton.java index 30ef43a6..e6fc89c3 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/WindowedButton.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Buttons/InGameButtons/OptionButtons/Video/WindowedButton.java @@ -4,6 +4,7 @@ import com.badlogic.gdx.audio.Sound; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.scenes.scene2d.InputEvent; import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.galaxytrucker.galaxytruckerreloaded.Controller.VideoController; import com.galaxytrucker.galaxytruckerreloaded.Main; import com.galaxytrucker.galaxytruckerreloaded.View.Buttons.ImButton; @@ -25,6 +26,6 @@ public class WindowedButton extends ImButton { @Override public void leftClick() { - main.setWindowed(); + VideoController.getInstance(null).setWindowed(); } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java index a740241e..58b3a825 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/Screen/GamePlay.java @@ -159,9 +159,6 @@ public class GamePlay implements Screen { pauseStage = new Stage(viewport, main.batch); tileStage = new Stage(viewport, main.batch); - //evtl. an anderer Stelle callen - AudioController.getInstance(null).setMusic(Gdx.files.internal("Sounds/Music/bp_MUS_WastelandEXPLORE.ogg")); - player = new ShipView(main, main.getClient().getMyShip(), stage, tileStage, main.getClient().getOverworld(), this); diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/AudioUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/AudioUI.java index 69b0407a..f9a81180 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/AudioUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/AudioUI.java @@ -112,6 +112,7 @@ public class AudioUI { /** * handles input to pause game, open options + * TODO: funktioniert nicht, ist auch nicht zwingend Nötig */ public void updateInput() { //macht nicht was es soll. im Kern ein Bastard diese Methode diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/VideoUI.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/VideoUI.java index 4c30ab56..1ef31084 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/VideoUI.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/View/UI/Options/VideoUI.java @@ -86,6 +86,7 @@ public class VideoUI { /** * render * no stage stuff + * TODO: Absolutwerte durch Realtive Position ersetzen. */ public void render() { updateInput(); @@ -138,6 +139,7 @@ public class VideoUI { /** * handles input to pause game, open options + * TODO: funktioniert nicht, ist auch nicht zwingend Nötig */ public void updateInput() { //macht nicht was es soll. im Kern ein Bastard diese Methode -- GitLab