From 24332f240b26974c7186618368e749bf0dada1e9 Mon Sep 17 00:00:00 2001 From: polten0 Date: Thu, 15 Aug 2024 15:00:57 +0300 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=20=D0=B4=D0=B5?= =?UTF-8?q?=D0=BB=D0=B0=D1=82=D1=8C=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D1=83=20=D0=BA=D0=B0=D1=80=D1=82=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MapManager/MapElements/TileMap.cs | 2 +- .../MapManager/MapElements/TileSet.cs | 11 +++++++ .../GameManagers/MapManager/MapManager.cs | 30 ++++++++++++++++--- 3 files changed, 38 insertions(+), 5 deletions(-) diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs index 4cd2de9..7cfae83 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileMap.cs @@ -11,6 +11,6 @@ namespace ZoFo.GameCore.GameManagers.MapManager.MapElements public bool Infinite { get; set; } public int TileHeight { get; set; } public int TileWidth { get; set; } - public List TileSets { get; set; } + public List TileSets { get; set; } } } diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileSet.cs b/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileSet.cs index 26b3627..ad9bb9d 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileSet.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapElements/TileSet.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Globalization; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -8,5 +9,15 @@ namespace ZoFo.GameCore.GameManagers.MapManager.MapElements { public class TileSet { + public string Image { get; set; } + public string Name { get; set; } + public int ImageHeight { get; set; } + public int ImageWidth { get; set; } + public int Margin { get; set; } + public int Spacing { get; set; } + public int TileCount { get; set; } + public int TileHeight { get; set; } + public int TileWidth { get; set; } + public int Columns { get; set; } } } diff --git a/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs b/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs index d9325e0..471ff90 100644 --- a/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs +++ b/ZoFo/GameCore/GameManagers/MapManager/MapManager.cs @@ -1,20 +1,42 @@ using System; using System.Collections.Generic; +using System.IO; using System.Linq; using System.Text; +using System.Text.Json; using System.Threading.Tasks; +using ZoFo.GameCore.GameManagers.MapManager.MapElements; namespace ZoFo.GameCore.GameManagers.MapManager { public class MapManager { - public void LoadMap() - { + private static readonly string _path = "/{0}.tmj"; + private List _tileSets = new List(); + public void LoadMap(string mapName = "main") + { + TileMap tileMap; + using (StreamReader reader = new StreamReader(string.Format(_path, mapName))) + { + string data = reader.ReadToEnd(); + tileMap = JsonSerializer.Deserialize(data); + } + + List tileSets = new List(); + foreach (TileSetInfo tileSetInfo in tileMap.TileSets) + { + tileSets.Add(LoadTileSet(tileSetInfo.Source)); + } } - private void LoadTileSet() - { + private TileSet LoadTileSet(string path) + { + using (StreamReader reader = new StreamReader(path)) + { + string data = reader.ReadToEnd(); + return JsonSerializer.Deserialize(data); + } } }