diff --git a/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java b/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java index 70187987549a490469c91e76080fc9bdf9e2c0f1..d8dde9ccd6cd98d5ea7f5cf9d58266cf4755d542 100644 --- a/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java +++ b/CheckersClient/core/src/com/mygdx/game/controllers/NetworkController.java @@ -58,6 +58,7 @@ public class NetworkController { kryo.register(cLobbyLeave.class, 22); kryo.register(cLobbyDelete.class, 23); kryo.register(cLobbyGetList.class, 24); + kryo.register(cSetIndexAvatar.class, 25); } public Client getClient() { return client; } diff --git a/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java b/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java index 88d2c475f0ff3eba65436dd5620c32cbf205c2f9..4544beac00134fdfdee28cc60a4fa6eeadffd962 100644 --- a/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java +++ b/CheckersClient/core/src/com/mygdx/game/controllers/PlayerController.java @@ -30,12 +30,6 @@ public class PlayerController { connectPlayer(0); } - public void issueACommand(String commandString) { - if (commandString.equals("W")){ - cPlayerPieceMove newCommand = new cPlayerPieceMove(); - net.sendToServer(newCommand); - } - } public void lobbyGetList(){ net.sendToServer(new cLobbyGetList()); } @@ -64,4 +58,5 @@ public class PlayerController { public PlayerController getPlayerController(){ return this; } public NetworkController getNetWorkController() { return net; } + } diff --git a/CheckersClient/core/src/com/mygdx/game/controllers/commands/Command.java b/CheckersClient/core/src/com/mygdx/game/controllers/commands/Command.java index 9da62d69f3aee8d931616c2394e8aa811240e02c..b8bb4a064a608a853094fc3f0db75d0ea0d88286 100644 --- a/CheckersClient/core/src/com/mygdx/game/controllers/commands/Command.java +++ b/CheckersClient/core/src/com/mygdx/game/controllers/commands/Command.java @@ -19,6 +19,7 @@ public class Command{ this.data = "None"; } + public void execute(PlayerController playerController, Connection connection){} public String getText(){ return text; } diff --git a/CheckersClient/core/src/com/mygdx/game/controllers/commands/cLobbyJoin.java b/CheckersClient/core/src/com/mygdx/game/controllers/commands/cLobbyJoin.java index 59ae87197d3f28afaf2f4f472ed289be75421b6c..77d5b4e4f1eb2d301beeb96eeab8d3c33bd87ca7 100644 --- a/CheckersClient/core/src/com/mygdx/game/controllers/commands/cLobbyJoin.java +++ b/CheckersClient/core/src/com/mygdx/game/controllers/commands/cLobbyJoin.java @@ -9,7 +9,9 @@ public class cLobbyJoin extends Command{ public cLobbyJoin() { super("cLobbyJoin"); } - public cLobbyJoin(int id) { super("cLobbyJoin", (Integer) id); } + public cLobbyJoin(int id) { + super("cLobbyJoin", (Integer) id); + } @Override public void execute(PlayerController playerController, Connection connection){ diff --git a/CheckersClient/core/src/com/mygdx/game/controllers/commands/cSetIndexAvatar.java b/CheckersClient/core/src/com/mygdx/game/controllers/commands/cSetIndexAvatar.java new file mode 100644 index 0000000000000000000000000000000000000000..b917c6980a2e03d916895cb2e4959747cc2fa23c --- /dev/null +++ b/CheckersClient/core/src/com/mygdx/game/controllers/commands/cSetIndexAvatar.java @@ -0,0 +1,26 @@ +package com.mygdx.game.controllers.commands; + +import com.esotericsoftware.kryonet.Connection; +import com.mygdx.game.controllers.NetworkController; +import com.mygdx.game.controllers.PlayerController; +import com.mygdx.game.model.Lobby; + +public class cSetIndexAvatar extends Command { + + public cSetIndexAvatar() { super("cLobbyJoin"); } + + public cSetIndexAvatar(int indexAvatar) { + super("cSetIndexAvatar", indexAvatar); + } + + @Override + public void execute(PlayerController playerController, Connection connection){ + if(data instanceof Integer){ + int indexAvatar = (int) data; + if (indexAvatar == -1) System.out.println("Failed to set indexAvatar."); + else { + playerController.getPlayer().setIndexAvatar(indexAvatar); + } + } + } +} \ No newline at end of file diff --git a/CheckersClient/core/src/com/mygdx/game/views/MenuView.java b/CheckersClient/core/src/com/mygdx/game/views/MenuView.java index ad888dd4475fa15c2291c451b613b53434bf422b..3d0092dfe17a463f73b1dcd2c70e384b6bc1095d 100644 --- a/CheckersClient/core/src/com/mygdx/game/views/MenuView.java +++ b/CheckersClient/core/src/com/mygdx/game/views/MenuView.java @@ -237,7 +237,7 @@ public class MenuView extends View{ transitionAudio.play(0.50f); startFadeFromBlankToWhite = true; whiteImage.setZIndex(stage.getActors().size); - playerController.getPlayer().setIndexAvatar(currentIndexAvatar); + playerController.updateIndexAvatar(currentIndexAvatar); } return true; } diff --git a/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java b/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java index 3c5b056b97a0a01bcf050eff5970697cd57ddc14..f6df77a0f318634aaaac0de394838ec3fb896235 100644 --- a/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java +++ b/CheckersServer/core/src/com/mygdx/game/controller/NetworkController.java @@ -126,6 +126,8 @@ public class NetworkController { public ArrayList<Lobby> getLobbies(){ return lobbies; } + public ArrayList<Player> getPlayers(){ return players; } + public void registerClasses(){ kryo.register(ArrayList.class, 100); kryo.register(Lobby.class, 5); @@ -138,6 +140,7 @@ public class NetworkController { kryo.register(cLobbyLeave.class, 22); kryo.register(cLobbyDelete.class, 23); kryo.register(cLobbyGetList.class, 24); + kryo.register(cSetIndexAvatar.class, 25); } public NetworkController getNetworkController() { return this; } diff --git a/CheckersServer/core/src/com/mygdx/game/controller/commands/cSetIndexAvatar.java b/CheckersServer/core/src/com/mygdx/game/controller/commands/cSetIndexAvatar.java new file mode 100644 index 0000000000000000000000000000000000000000..a3dc1e88d5891fc0ee138c48e3186c142c6b39b3 --- /dev/null +++ b/CheckersServer/core/src/com/mygdx/game/controller/commands/cSetIndexAvatar.java @@ -0,0 +1,35 @@ +package com.mygdx.game.controller.commands; + +import com.esotericsoftware.kryonet.Connection; +import com.mygdx.game.controller.NetworkController; +import com.mygdx.game.model.Player; + +import java.util.HashSet; + +public class cSetIndexAvatar extends Command { + + public cSetIndexAvatar() { super("cLobbyJoin"); } + + public cSetIndexAvatar(int indexAvatar) { + super("cSetIndexAvatar", indexAvatar); + } + + @Override + public void execute(NetworkController net, Connection connection){ + if(data instanceof Integer){ + int indexAvatar = (int) data; + if (indexAvatar == -1) System.out.println("Failed to set index avatar."); + else { + for (Player p : net.getPlayers()) { + if(p.getID() == connection.getID()){ + p.setIndexAvatar(indexAvatar); + connection.sendTCP(this); + } + else{ + connection.sendTCP(new cSetIndexAvatar(-1)); + } + } + } + } + } +} \ No newline at end of file