public GameData(PlayerInventory inventory, PlayerHealth energy, MapSaveSystem map, float[] pos, string sectorName) { actualSector = sectorName; var limitedAmmo = inventory.limitedAmmo; for (int i = 0; i < limitedAmmo.Count; i++) { if (limitedAmmo[i].maxAmmo > 0) { ammoMunition.Add(limitedAmmo[i].iD, limitedAmmo[i].maxAmmo); } } time[0] = TimeCounter.hours; time[1] = TimeCounter.minutes; time[2] = TimeCounter.seconds; time[3] = TimeCounter.miliseconds; scene = SceneManager.GetActiveScene().buildIndex; reserve = new List <int>(inventory.reserve); items = new List <int>(inventory.items); SelectItemsData(inventory); position = new float[2]; bossesDefeated = new List <int>(Boss.defeateds); tanks = energy.Tanks; position[0] = pos[0]; position[1] = pos[1]; mappers = new List <int>(map.mappers); tilesX = new Dictionary <string, List <int> > (map.tilesX); tilesY = new Dictionary <string, List <int> > (map.tilesY); tilesRegistered = new Dictionary <float, float>(MapSaveSystem.tilesRegistered); miniMapItem = map.miniMapItem; }
public static void SavePlayerSlot(PlayerInventory inventory, PlayerHealth energy, MapSaveSystem map, float[] pos, string sectorName, int slotIndex) { string slotPath = GetSlotPath(slotIndex); BinaryFormatter formatter = new BinaryFormatter(); string path = Application.persistentDataPath + slotPath; FileStream stream = new FileStream(path, FileMode.Create); GameData data = new GameData(inventory, energy, map, pos, sectorName); formatter.Serialize(stream, data); stream.Close(); }
/// <summary>保存</summary> public MapSaveFileData save() { return(MapSaveSystem.save(this)); }