From 6c1e0733481ea82d80e27e2dc01562a3e502adf4 Mon Sep 17 00:00:00 2001 From: Sem van der Hoeven Date: Wed, 27 May 2020 23:04:04 +0200 Subject: [PATCH] merge master into this branch # Conflicts: # core/src/netwerkprog/game/util/game/Character.java # core/src/netwerkprog/game/util/game/Faction.java --- core/assets/ScifiCritters4.PNG | Bin 0 -> 12516 bytes core/src/netwerkprog/game/client/Client.java | 19 ++++---- core/src/netwerkprog/game/client/Parser.java | 15 ++++++ .../game/client/game/characters/DevTest1.java | 8 ++- .../game/client/game/characters/DevTest2.java | 8 ++- .../game/client/game/characters/DevTest3.java | 10 ++++ core/src/netwerkprog/game/server/Parser.java | 15 ++++++ .../netwerkprog/game/server/ServerClient.java | 41 ++++++---------- .../server/controllers/DataController.java | 8 +++ .../server/controllers/SessionController.java | 18 ++----- .../netwerkprog/game/util/data/Callback.java | 5 -- .../game/util/data/DataParser.java | 14 ------ .../game/util/data/ParserCallback.java | 5 ++ .../netwerkprog/game/util/game/Faction.java | 11 ++++- .../game/util/game/GameCharacter.java | 46 ++++++++++++++++++ 15 files changed, 151 insertions(+), 72 deletions(-) create mode 100644 core/assets/ScifiCritters4.PNG create mode 100644 core/src/netwerkprog/game/client/Parser.java create mode 100644 core/src/netwerkprog/game/client/game/characters/DevTest3.java create mode 100644 core/src/netwerkprog/game/server/Parser.java create mode 100644 core/src/netwerkprog/game/server/controllers/DataController.java delete mode 100644 core/src/netwerkprog/game/util/data/Callback.java delete mode 100644 core/src/netwerkprog/game/util/data/DataParser.java create mode 100644 core/src/netwerkprog/game/util/data/ParserCallback.java create mode 100644 core/src/netwerkprog/game/util/game/GameCharacter.java diff --git a/core/assets/ScifiCritters4.PNG b/core/assets/ScifiCritters4.PNG new file mode 100644 index 0000000000000000000000000000000000000000..b798f814b7141543cf900af0444f96b527a1108e GIT binary patch literal 12516 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 Uti_1?P2t` clients = new ArrayList<>(); private final HashMap clientThreads = new HashMap<>(); private boolean listening; public SessionController() { - this.parser = new DataParser(); this.listening = true; } @@ -61,7 +58,7 @@ public class SessionController extends Controller { public void registerClient(Socket socket) { try { System.out.println("[SERVER] got new client on " + socket.getInetAddress().getHostAddress()); - DataOutputStream outputStream = new DataOutputStream(socket.getOutputStream()); + ObjectOutputStream outputStream = new ObjectOutputStream(socket.getOutputStream()); DataInputStream inputStream = new DataInputStream(socket.getInputStream()); outputStream.writeUTF("Enter username: "); @@ -80,15 +77,6 @@ public class SessionController extends Controller { } } - /** - * Parses the request to the requested Data. - * @param request The request to parse. - * @return Parsed Data. - */ - public Data parseData(String request) { - return this.parser.parse(request); - } - /** * Sends a server message to all connected clients. * @param text message. diff --git a/core/src/netwerkprog/game/util/data/Callback.java b/core/src/netwerkprog/game/util/data/Callback.java deleted file mode 100644 index a0b2561..0000000 --- a/core/src/netwerkprog/game/util/data/Callback.java +++ /dev/null @@ -1,5 +0,0 @@ -package netwerkprog.game.util.data; - -public interface Callback { - void onDataReceived(); -} diff --git a/core/src/netwerkprog/game/util/data/DataParser.java b/core/src/netwerkprog/game/util/data/DataParser.java deleted file mode 100644 index 487fad2..0000000 --- a/core/src/netwerkprog/game/util/data/DataParser.java +++ /dev/null @@ -1,14 +0,0 @@ -package netwerkprog.game.util.data; - -public class DataParser { - public DataParser() { - } - - public Data parse(String request) { - return null; - } - - public String parse(Data data) { - return null; - } -} diff --git a/core/src/netwerkprog/game/util/data/ParserCallback.java b/core/src/netwerkprog/game/util/data/ParserCallback.java new file mode 100644 index 0000000..3ce8c27 --- /dev/null +++ b/core/src/netwerkprog/game/util/data/ParserCallback.java @@ -0,0 +1,5 @@ +package netwerkprog.game.util.data; + +public interface ParserCallback { + void onDataReceived(String data); +} diff --git a/core/src/netwerkprog/game/util/game/Faction.java b/core/src/netwerkprog/game/util/game/Faction.java index 970be94..08520a5 100644 --- a/core/src/netwerkprog/game/util/game/Faction.java +++ b/core/src/netwerkprog/game/util/game/Faction.java @@ -1,6 +1,13 @@ package netwerkprog.game.util.game; public enum Faction { - HACKER, - MEGACORPORATION + MEGACORPORATION("MegaCorp"), + HACKER("Hacker"), + AI("AI"); + + String name; + + Faction(String name) { + this.name = name; + } } diff --git a/core/src/netwerkprog/game/util/game/GameCharacter.java b/core/src/netwerkprog/game/util/game/GameCharacter.java new file mode 100644 index 0000000..4d8ce69 --- /dev/null +++ b/core/src/netwerkprog/game/util/game/GameCharacter.java @@ -0,0 +1,46 @@ +package netwerkprog.game.util.game; + +import com.badlogic.gdx.graphics.Texture; +import com.badlogic.gdx.graphics.g2d.SpriteBatch; +import com.badlogic.gdx.graphics.g2d.TextureRegion; +import com.badlogic.gdx.scenes.scene2d.Actor; + +import java.util.Arrays; +import java.util.HashSet; + +public abstract class GameCharacter extends Actor { + protected String name; + protected Faction faction; + protected HashSet abilities; + protected TextureRegion[][] sprites; + protected boolean override; + + public GameCharacter(String name, Faction faction, String spriteSheet, Ability... abilities) { + this.name = name; + this.faction = faction; + this.abilities = new HashSet<>(Arrays.asList(abilities)); + this.override = false; + this.sprites = TextureRegion.split(new Texture(spriteSheet),32,32); + super.setX(0); + super.setY(0); + } + + public void addAbilities(Ability ability) { + this.abilities.add(ability); + } + + public void removeAbility(Ability ability) { + this.abilities.remove(ability); + } + + public void changeControl() { + this.override = !this.override; + } + + public void draw(SpriteBatch batch) { + batch.begin(); + batch.draw(this.sprites[0][0],super.getX(),super.getY()); + batch.end(); + } + +}