From e9b00841b80a28e99c1e04cb0cd715ef874e4cff Mon Sep 17 00:00:00 2001 From: polten0 Date: Tue, 20 Aug 2024 16:18:26 +0300 Subject: [PATCH] =?UTF-8?q?=D1=81=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20=D1=81?= =?UTF-8?q?=D0=B5=D0=B9=D0=B2=20=D0=BF=D1=80=D0=B5=D0=B4=D0=BC=D0=B5=D1=82?= =?UTF-8?q?=D0=BE=D0=B2=20=D0=B2=20=D1=84=D0=B0=D0=B9=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GameManagers/ItemManager/PlayerData.cs | 47 ++++++++++++++++--- 1 file changed, 41 insertions(+), 6 deletions(-) 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; } + } }