TalesOfNovariel/Assets/Scripts/FileHandler.cs
2022-06-12 11:37:29 +02:00

119 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using UnityEngine.UI;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Assets.Scripts
{
public class FileHandler
{
static StreamWriter sw;
public static void saveGame(string data, string path)
{
sw = new StreamWriter(path);
sw.Write(data);
sw.Flush();
sw.Close();
}
public static void loadGame(Player player, WorldGenerator worldGenerator)
{
if (hasSaveFile())
{
string[] lines = File.ReadAllLines("./save.json");
string jsonString = "";
foreach (string line in lines)
{
jsonString = jsonString + line.Replace("\r\n", "");
}
JObject json = JsonConvert.DeserializeObject<JObject>(jsonString);
player.loadPlayer(json["player"]);
worldGenerator.loadWorld(json["world"]);
}
}
public static void saveAudio(string path, float music, float effects)
{
sw = new StreamWriter(path);
sw.WriteLine("Music:" + music);
sw.WriteLine("Effects:" + effects);
sw.Flush();
}
public static void loadAudio(string path, AudioSource cameraAudio, AudioSource playerAudio)
{
if (File.Exists(path))
{
string[] lines = File.ReadAllLines(path);
cameraAudio.volume = float.Parse(lines[0].Split(':')[1]);
playerAudio.volume = float.Parse(lines[1].Split(':')[1]);
}
else
{
sw = File.CreateText(path);
sw.WriteLine("Music:0.5");
sw.WriteLine("Effects:0.5");
sw.Flush();
}
}
public static string generateJSON(string key, object value)
{
return "\"" + key + "\": " + value;
}
public static bool hasSaveFile()
{
return File.Exists("./save.json");
}
public static void saveTile(string content, string path)
{
sw = new StreamWriter(path);
sw.Write(content);
sw.Flush();
sw.Close();
}
public static void saveNoise(string content, string path)
{
sw = new StreamWriter(path, true);
sw.Write(content);
sw.Flush();
sw.Close();
}
public static void generateDirectory()
{
if (Directory.Exists("./save/"))
{
foreach (string file in Directory.GetFiles("./save/"))
{
File.Delete(file);
}
}
else
{
Directory.CreateDirectory("./save/");
}
}
public static string loadTile(string path)
{
string result = "";
string[] lines = File.ReadAllLines(path);
foreach (string line in lines)
{
result = result + line.Replace("\r\n", "");
}
return result;
}
}
}