diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java index 179b77c8c9530722dec84f08a00a2e170fe85dd9..eddd4de9d3412753098ef4083bf773ef40491b68 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Communication/ClientControllerCommunicator.java @@ -63,7 +63,7 @@ public class ClientControllerCommunicator { if (singleton == null){ singleton = new ClientControllerCommunicator(client); } - // TODO CREATE ALL CONTROLLERS HERE + // TODO CREATE ALL CONTROLLERS HERE, all controllers should be singletons return singleton; } } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java index d7dfc054894f3d7a3211a0afbf0e04c37de4a595..6e1aa5665cca4170eed2ec42eec7d2872a4fbbf7 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Crew/Crew.java @@ -1,6 +1,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.Crew; import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Room; +import com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout.Tile; import lombok.*; import javax.persistence.*; @@ -53,6 +54,10 @@ public class Crew implements Serializable { @OneToOne private Room currentRoom; + /** Tile the crew member is standing on */ + @OneToOne + private Tile tile; + /** * The price of the different crew-members */ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java index caaac09f2b028807fb2cbf08f05a93983d56225b..7fbcebfcaf10256fee1c4f85d71b749186ae0a66 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/Ship.java @@ -83,7 +83,7 @@ public class Ship implements Serializable { * The planet the ship is currently at */ @NonNull - @ManyToOne + @ManyToOne(cascade = CascadeType.ALL) private Planet planet; /** Shields */ @@ -98,12 +98,12 @@ public class Ship implements Serializable { /** This ship's systems */ @NonNull - @OneToMany + @OneToMany(cascade = CascadeType.ALL) private List<Room> systems; /** Inventory */ @NonNull - @OneToMany + @OneToMany(cascade = CascadeType.ALL) private List<Weapon> inventory; /** Whether or not the ship is in combat */ diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java index 2999c1c4b4d53237f39edc0440c6db826862a6d6..9b143e022cad743455e52e4570cd4de3afafa7d9 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Room.java @@ -4,12 +4,11 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; import lombok.*; -import javax.persistence.Entity; -import javax.persistence.Id; -import javax.persistence.OneToMany; +import javax.persistence.*; import java.io.Serializable; import java.util.List; +/** Rooms make up the spaceship */ @Getter @Setter @Entity @@ -57,6 +56,11 @@ public abstract class Room implements Serializable { /** Crew in this system */ @NonNull - @OneToMany + @OneToMany(cascade = CascadeType.ALL) private List<Crew> crew; + + /** Tiles the room is made out of */ + @NonNull + @OneToMany(cascade = CascadeType.ALL) + private List<Tile> tiles; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Tile.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Tile.java new file mode 100644 index 0000000000000000000000000000000000000000..1b56c202004dd68320c9debe076637d205fb9467 --- /dev/null +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/Tile.java @@ -0,0 +1,39 @@ +package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; + +import com.galaxytrucker.galaxytruckerreloaded.Model.Crew.Crew; +import lombok.*; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.OneToOne; +import java.io.Serializable; + +/** Tiles make up the rooms */ +@NoArgsConstructor(access = AccessLevel.PUBLIC) +@RequiredArgsConstructor(access = AccessLevel.PUBLIC) +@Getter +@Setter +@Entity +public class Tile implements Serializable { + + /** ID */ + @Id @NonNull + private int id; + + /** Position x in room */ + @NonNull + private int posX; + + /** Position y in room */ + @NonNull + private int posY; + + /** Crew member on this tile */ + @OneToOne + private Crew standingOnMe = null; + + /** If the tile is empty */ + public boolean isEmpty(){ + return standingOnMe != null; + } +} diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java index 04622e6a4e888aaf62bfb9c81ee20efa9b931b7d..6da0fbb03f7e36405a5920a63f0cfb0832b0bbc5 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/ShipLayout/WeaponSystem.java @@ -3,10 +3,7 @@ package com.galaxytrucker.galaxytruckerreloaded.Model.ShipLayout; import com.galaxytrucker.galaxytruckerreloaded.Model.Weapons.Weapon; import lombok.*; -import javax.persistence.ElementCollection; -import javax.persistence.Entity; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; +import javax.persistence.*; import java.util.List; @RequiredArgsConstructor(access = AccessLevel.PUBLIC) @@ -20,7 +17,7 @@ public class WeaponSystem extends System { private boolean manned = false; /** List of weapons this ship has */ - @OneToMany + @OneToMany(cascade = CascadeType.ALL) private List<Weapon> shipWeapons; } diff --git a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java index de50f1770633dfc9b60bddecd37b2db43be6516b..7c233300d6c9edd370212d867fdc123afa72464b 100644 --- a/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java +++ b/core/src/com/galaxytrucker/galaxytruckerreloaded/Model/User.java @@ -26,11 +26,11 @@ public class User implements Serializable { /** * The user's ship */ - @OneToOne + @OneToOne(cascade = CascadeType.ALL) private Ship userShip; /** The user's overWorld map */ - @OneToOne + @OneToOne(cascade = CascadeType.ALL) private Overworld overworld; /** Whether or not the user is logged in */