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;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.files.FileHandle;
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 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.
*/
public static boolean AutentificarUsuario()
@@ -18,7 +15,7 @@ public class LoginSystem
/***
* 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; }
@@ -23,15 +23,28 @@ import java.util.HashMap;
*/
public class MachineLoader
{
private static MachineLoader instance;
/*-------------
* Constructors
* -------------*/
public MachineLoader()
private MachineLoader()
{
machineMap = new HashMap<>();
}
public static MachineLoader getInstance()
{
if(instance == null)
{
instance = new MachineLoader();
}
return instance;
}
/*-------------
* Methods
* -------------*/
@@ -27,9 +27,6 @@ public class Room
public Room()
{
//Hay que instanciar las cosas que no se instancian en el JSON.
}
/***
@@ -27,26 +27,23 @@ import java.util.Map;
*/
public class RoomLoader
{
public RoomLoader()
private static RoomLoader instance;
public static RoomLoader getInstance()
{
currentRoom = null;
loadedRooms = new HashMap<>();
mcLoader = null;
Gdx.app.log("RoomLoader", "Se ha cargado con mcLoader = null");
loaderJson = new Json();
loaderJson.setSerializer(Room.class, roomSerializer);
if (instance == null)
{
instance = new RoomLoader();
}
return instance;
}
public RoomLoader(MachineLoader mcLoader)
private RoomLoader()
{
currentRoom = null;
loadedRooms = new HashMap<>();
this.mcLoader = mcLoader;
mcLoader = MachineLoader.getInstance();
loaderJson = new Json();
@@ -90,6 +87,18 @@ public class RoomLoader
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.
* @param roomID ID de la Room a descargar.
@@ -7,10 +7,7 @@ import com.badlogic.gdx.utils.JsonWriter;
public class SaveLoader
{
public SaveLoader()
{
}
private SaveLoader() {}
/***
* 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
{
final testGame game;
public static MachineLoader mcLoader = new MachineLoader();
public static MachineLoader mcLoader = MachineLoader.getInstance();
/***
* Clase para la realización de pruebas del BackEnd.
@@ -46,7 +46,6 @@ public class BackEndTest implements Screen
---- MachineLoader Tests.
*/
mcLoader = new MachineLoader();
mcLoader.LoadFromJSON(Gdx.files.internal("data/testMachines.json"));
// mcLoader.AddMachine(testMach);
// mcLoader.AddMachine(mach2);
@@ -60,7 +59,7 @@ public class BackEndTest implements Screen
/*
------ RoomLoader Tests
*/
RoomLoader rmLoader = new RoomLoader(mcLoader);
RoomLoader rmLoader = RoomLoader.getInstance();
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.graphics.g2d.BitmapFont;
import com.badlogic.gdx.graphics.g2d.SpriteBatch;
import uberelectron.gameSystems.GameManager;
import uberelectron.gameSystems.MachineLoader;
import uberelectron.gameSystems.RoomLoader;
import uberelectron.gameSystems.TileSetManager;
@@ -25,8 +26,8 @@ public class testGame extends Game
batch = new SpriteBatch();
font = new BitmapFont();
tileSetManager = new TileSetManager();
mcLoader = new MachineLoader();
rmLoader = new RoomLoader(mcLoader);
GameManager gm = GameManager.getInstance();
LoadAssets();