85 lines
2.4 KiB
C#
85 lines
2.4 KiB
C#
using System.Reflection;
|
|
using System.Text.Json;
|
|
using System.Text.Json.Serialization.Metadata;
|
|
using GraphicsManager;
|
|
using GraphicsManager.Objects.Core;
|
|
using Luski.Clesses;
|
|
using Luski.GUI.MainScreen;
|
|
using Luski.net;
|
|
using Luski.net.Enums;
|
|
using OpenTK.Windowing.Common.Input;
|
|
|
|
namespace Luski;
|
|
|
|
public class Globals
|
|
{
|
|
public static bool Download { get; set; } = false;
|
|
public static Server Luski { get; set; } = null!;
|
|
public static MainScreen ms;
|
|
public static Settings Settings { get; set; }
|
|
|
|
public static Font DefaultFont { get; set; }
|
|
public static UpdaterSettings UpdaterSettings { get; set; }
|
|
|
|
public static Texture LuskiTexture;
|
|
|
|
public static TResult GetSettings<TResult>(string path, JsonTypeInfo<TResult> TypeInfo) where TResult : new()
|
|
{
|
|
TResult? @out;
|
|
if (!File.Exists(path))
|
|
{
|
|
@out = new();
|
|
Console.WriteLine("Overiding 1");
|
|
File.WriteAllText(path, JsonSerializer.Serialize(@out, TypeInfo));
|
|
}
|
|
|
|
try
|
|
{
|
|
@out = JsonSerializer.Deserialize(File.ReadAllText(path), TypeInfo);
|
|
Console.WriteLine("Found");
|
|
if (@out is null)
|
|
{
|
|
Console.WriteLine("Overiding 2");
|
|
@out = new();
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
Console.WriteLine("Overiding 3");
|
|
@out = new();
|
|
}
|
|
File.WriteAllText(path, JsonSerializer.Serialize(@out, TypeInfo));
|
|
return @out;
|
|
}
|
|
|
|
public static string JT
|
|
{
|
|
get
|
|
{
|
|
string tmp = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "JacobTech");
|
|
if (OperatingSystem.IsLinux())
|
|
{
|
|
tmp = Path.Combine(Environment.GetEnvironmentVariable("HOME")!, ".config/");
|
|
tmp += "JacobTech";
|
|
}
|
|
|
|
if (!Directory.Exists(tmp)) Directory.CreateDirectory(tmp);
|
|
if (!Directory.Exists(Path.Combine(tmp, "Luski"))) Directory.CreateDirectory(Path.Combine(tmp, "Luski"));
|
|
return tmp;
|
|
}
|
|
}
|
|
public static WindowIcon Icon { get; set; }
|
|
|
|
public static string LuskiPath
|
|
{
|
|
get
|
|
{
|
|
return Path.Combine(JT, "Luski");
|
|
}
|
|
}
|
|
|
|
public static bool Empty(string? str)
|
|
{
|
|
return (string.IsNullOrEmpty(str) || string.IsNullOrWhiteSpace(str));
|
|
}
|
|
} |