feat: Player movement multiplayer

This commit is contained in:
2026-02-02 21:06:46 +01:00
parent 24f54b8b7a
commit e3f5c12b43
26 changed files with 322 additions and 92 deletions

View File

@@ -3,18 +3,20 @@ package cz.jzitnik.common.socket.messages.game.connection;
import cz.jzitnik.common.models.player.PlayerCreation;
import cz.jzitnik.common.socket.SocketMessage;
public record ConnectToAGameResponse(ResponseType responseType, PlayerCreation playerCreation) implements SocketMessage {
import java.util.List;
public record ConnectToAGameResponse(ResponseType responseType, PlayerCreation playerCreation, List<PlayerCreation> existingPlayers) implements SocketMessage {
private enum ResponseType {
GAME_DOES_NOT_EXIST,
SUCCESS
}
public ConnectToAGameResponse() {
this(ResponseType.GAME_DOES_NOT_EXIST, null);
this(ResponseType.GAME_DOES_NOT_EXIST, null, null);
}
public ConnectToAGameResponse(PlayerCreation playerCreation) {
this(ResponseType.SUCCESS, playerCreation);
public ConnectToAGameResponse(PlayerCreation playerCreation, List<PlayerCreation> existingPlayers) {
this(ResponseType.SUCCESS, playerCreation, existingPlayers);
}
public boolean success() {

View File

@@ -0,0 +1,6 @@
package cz.jzitnik.common.socket.messages.player;
import cz.jzitnik.common.socket.SocketMessage;
public record PlayerArrivalChange(int id, boolean arrived) implements SocketMessage {
}

View File

@@ -0,0 +1,7 @@
package cz.jzitnik.common.socket.messages.player;
import cz.jzitnik.common.models.player.PlayerCreation;
import cz.jzitnik.common.socket.SocketMessage;
public record PlayerJoined(PlayerCreation playerCreation) implements SocketMessage {
}

View File

@@ -3,5 +3,5 @@ package cz.jzitnik.common.socket.messages.player;
import cz.jzitnik.common.models.coordinates.RoomCords;
import cz.jzitnik.common.socket.SocketMessage;
public record PlayerMove(RoomCords newCords) implements SocketMessage {
public record PlayerMove(RoomCords newCords, PlayerRotation playerRotation) implements SocketMessage {
}

View File

@@ -10,4 +10,5 @@ import lombok.Getter;
public class PlayerMovedInUrRoom implements SocketMessage {
private int playerId;
private RoomCords cords;
private PlayerRotation playerRotation;
}

View File

@@ -0,0 +1,5 @@
package cz.jzitnik.common.socket.messages.player;
public enum PlayerRotation {
FRONT, BACK, LEFT, RIGHT
}