Añadimos singletons y otros pequeños cambios.

This commit is contained in:
2022-06-03 13:49:27 +02:00
parent 86a8fc419a
commit 156f4f9f7f
8 changed files with 95 additions and 38 deletions
@@ -1,19 +1,63 @@
package uberelectron.gameSystems; package uberelectron.gameSystems;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
public class GameManager public class GameManager
{ {
public GameManager() //TODO: Añadir precios de sala y de Maquina a los JSON.
private static GameManager instance;
private final String savePath = "save/";
private final String internalDataPath = "data/";
public MachineLoader mcLoader;
public RoomLoader rmLoader;
public Save saveData;
private GameManager()
{ {
mcLoader = MachineLoader.getInstance();
rmLoader = RoomLoader.getInstance();
saveData = new Save();
}
public static GameManager getInstance()
{
if(instance == null)
{
instance = new GameManager();
}
return instance;
}
/***
* Realiza el guardado del save y de las salas.
*/
public void SaveGame()
{
SaveLoader.SaveToJSON(saveData, Gdx.files.local(savePath + "save.json"));
rmLoader.SaveAllRoomsToJSON();
}
public void ReiniciarRoom(String roomID)
{
FileHandle prefab = Gdx.files.internal(internalDataPath + roomID + ".json");
FileHandle roomSave = Gdx.files.local(savePath + roomID + ".json");
prefab.copyTo(roomSave);
}
public void ComprarRoom(String roomID)
{
ReiniciarRoom(roomID);
saveData.dinero -= 1000;
} }
public static MachineLoader mcLoader;
public static RoomLoader rmLoader;
public static Save saveData;
} }
@@ -2,13 +2,10 @@ package uberelectron.gameSystems;
public class LoginSystem public class LoginSystem
{ {
public LoginSystem() private LoginSystem() {}
{
}
/*** /***
* Pertime autentificar a un usuario dado su archivo de datos. * Permite autentificar a un usuario dado su archivo de datos.
* @return True si la autentificación es correcta. False si no. * @return True si la autentificación es correcta. False si no.
*/ */
public static boolean AutentificarUsuario() public static boolean AutentificarUsuario()
@@ -18,7 +15,7 @@ public class LoginSystem
/*** /***
* Indica si el usuario se ha autentificado correctamente. * Indica si el usuario se ha autentificado correctamente.
* @return true si el usuario está autentificado. False si no lo está. * @return True si el usuario está autentificado. False si no lo está.
*/ */
public static boolean isIsLogged() { return isLogged; } public static boolean isIsLogged() { return isLogged; }
@@ -23,15 +23,28 @@ import java.util.HashMap;
*/ */
public class MachineLoader public class MachineLoader
{ {
private static MachineLoader instance;
/*------------- /*-------------
* Constructors * Constructors
* -------------*/ * -------------*/
public MachineLoader() private MachineLoader()
{ {
machineMap = new HashMap<>(); machineMap = new HashMap<>();
} }
public static MachineLoader getInstance()
{
if(instance == null)
{
instance = new MachineLoader();
}
return instance;
}
/*------------- /*-------------
* Methods * Methods
* -------------*/ * -------------*/
@@ -27,9 +27,6 @@ public class Room
public Room() public Room()
{ {
//Hay que instanciar las cosas que no se instancian en el JSON. //Hay que instanciar las cosas que no se instancian en el JSON.
} }
/*** /***
@@ -27,26 +27,23 @@ import java.util.Map;
*/ */
public class RoomLoader public class RoomLoader
{ {
public RoomLoader() private static RoomLoader instance;
public static RoomLoader getInstance()
{ {
currentRoom = null; if (instance == null)
loadedRooms = new HashMap<>(); {
instance = new RoomLoader();
mcLoader = null; }
Gdx.app.log("RoomLoader", "Se ha cargado con mcLoader = null"); return instance;
loaderJson = new Json();
loaderJson.setSerializer(Room.class, roomSerializer);
} }
public RoomLoader(MachineLoader mcLoader) private RoomLoader()
{ {
currentRoom = null; currentRoom = null;
loadedRooms = new HashMap<>(); loadedRooms = new HashMap<>();
this.mcLoader = mcLoader; mcLoader = MachineLoader.getInstance();
loaderJson = new Json(); loaderJson = new Json();
@@ -90,6 +87,18 @@ public class RoomLoader
Gdx.app.log("RoomLoader", "Se ha guardado la room " + roomID + " en " + file); Gdx.app.log("RoomLoader", "Se ha guardado la room " + roomID + " en " + file);
} }
/***
* Guarda en JSON todas las salas cargadas.
*/
public void SaveAllRoomsToJSON()
{
for(Room r : loadedRooms.values())
{
FileHandle file = Gdx.files.local("save/" + r.roomName + ".json");
SaveRoomToJSON(r.roomName, file);
}
}
/*** /***
* Descarga una Room dado su ID. * Descarga una Room dado su ID.
* @param roomID ID de la Room a descargar. * @param roomID ID de la Room a descargar.
@@ -7,10 +7,7 @@ import com.badlogic.gdx.utils.JsonWriter;
public class SaveLoader public class SaveLoader
{ {
public SaveLoader() private SaveLoader() {}
{
}
/*** /***
* Permite cargar los datos de una partida desde un archivo JSON. * Permite cargar los datos de una partida desde un archivo JSON.
@@ -15,7 +15,7 @@ import java.util.logging.FileHandler;
public class BackEndTest implements Screen public class BackEndTest implements Screen
{ {
final testGame game; final testGame game;
public static MachineLoader mcLoader = new MachineLoader(); public static MachineLoader mcLoader = MachineLoader.getInstance();
/*** /***
* Clase para la realización de pruebas del BackEnd. * Clase para la realización de pruebas del BackEnd.
@@ -46,7 +46,6 @@ public class BackEndTest implements Screen
---- MachineLoader Tests. ---- MachineLoader Tests.
*/ */
mcLoader = new MachineLoader();
mcLoader.LoadFromJSON(Gdx.files.internal("data/testMachines.json")); mcLoader.LoadFromJSON(Gdx.files.internal("data/testMachines.json"));
// mcLoader.AddMachine(testMach); // mcLoader.AddMachine(testMach);
// mcLoader.AddMachine(mach2); // mcLoader.AddMachine(mach2);
@@ -60,7 +59,7 @@ public class BackEndTest implements Screen
/* /*
------ RoomLoader Tests ------ RoomLoader Tests
*/ */
RoomLoader rmLoader = new RoomLoader(mcLoader); RoomLoader rmLoader = RoomLoader.getInstance();
rmLoader.LoadRoomFromJSON(Gdx.files.internal("data/testRoom.json")); rmLoader.LoadRoomFromJSON(Gdx.files.internal("data/testRoom.json"));
+3 -2
View File
@@ -5,6 +5,7 @@ import com.badlogic.gdx.Game;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.g2d.BitmapFont; import com.badlogic.gdx.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import uberelectron.gameSystems.GameManager;
import uberelectron.gameSystems.MachineLoader; import uberelectron.gameSystems.MachineLoader;
import uberelectron.gameSystems.RoomLoader; import uberelectron.gameSystems.RoomLoader;
import uberelectron.gameSystems.TileSetManager; import uberelectron.gameSystems.TileSetManager;
@@ -25,8 +26,8 @@ public class testGame extends Game
batch = new SpriteBatch(); batch = new SpriteBatch();
font = new BitmapFont(); font = new BitmapFont();
tileSetManager = new TileSetManager(); tileSetManager = new TileSetManager();
mcLoader = new MachineLoader();
rmLoader = new RoomLoader(mcLoader); GameManager gm = GameManager.getInstance();
LoadAssets(); LoadAssets();