diff --git a/ZoFo/GameCore/GameManagers/ItemManager/PlayerData.cs b/ZoFo/GameCore/GameManagers/ItemManager/PlayerData.cs index 54e1df5..a4a5c0d 100644 --- a/ZoFo/GameCore/GameManagers/ItemManager/PlayerData.cs +++ b/ZoFo/GameCore/GameManagers/ItemManager/PlayerData.cs @@ -1,7 +1,9 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; +using System.Text.Json; using System.Threading.Tasks; namespace ZoFo.GameCore.GameManagers.ItemManager @@ -15,7 +17,7 @@ namespace ZoFo.GameCore.GameManagers.ItemManager { LoadPlayerData(); } - public Dictionary items; + public Dictionary items = new Dictionary(); /// /// Принимает тэг и крафтит этот объект /// @@ -50,11 +52,44 @@ namespace ZoFo.GameCore.GameManagers.ItemManager public void LoadPlayerData() { - //TODO - items = new Dictionary(); - items.Add("wood", 5); - items.Add("steel", 110); - items.Add("peeble", 6); + if (File.Exists("Items.txt")) + { + string data; + using (StreamReader reader = new StreamReader("Items.txt")) + { + data = reader.ReadToEnd(); + } + + List itemsDatas = JsonSerializer.Deserialize>(data); + foreach (var item in itemsDatas) + { + items.Add(item.Name, item.Count); + } + } + } + + public void SavePlayerData() + { + var options = new JsonSerializerOptions { WriteIndented = true }; + + List playerItemsDatas = new List(); + foreach (var item in items) + { + playerItemsDatas.Add(new PlayerItemsData { Name = item.Key, Count = item.Value }); + } + + string data = JsonSerializer.Serialize>(playerItemsDatas); + + using (StreamWriter outputFile = new StreamWriter("Items.txt", new FileStreamOptions() { Mode = FileMode.Create, Access = FileAccess.Write } )) + { + outputFile.WriteLine(data); + } } } + + class PlayerItemsData + { + public string Name { get; set; } + public int Count { get; set; } + } }