Editor/IconConfiguration.cs
using System.IO;
using System.Text.Json;
using Editor;
using Sandbox;
using Sandbox.Mounting;
using FileSystem = Editor.FileSystem;
namespace IconRenderer;
public class IconConfiguration
{
[Group("Model"), ResourceType("vmdl")] public string Model { get; set; } = "models/citizen/citizen.vmdl";
public Color Color { get; set; } = Color.White;
[Group("Model")] public Angles ModelRotation { get; set; } = Angles.Zero;
[Group("Model")] public Vector3 ModelPosition { get; set; } = Vector3.Zero;
[Group( "Background" )] public bool EnableBackground { get; set; } = false;
[Group("Background")] public Vector2 BackgroundSize { get; set; } = new Vector2( 512, 512 );
[Group("Background")] public Vector3 BackgroundPosition { get; set; } = new Vector3( -256, 0, 0 );
public int RenderResolution { get; set; } = 512;
public float FOV { get; set; } = 90f;
[TextureImagePath, Group("Background")] public string ImageBackground { get; set; } = string.Empty;
public void Save(string path)
{
var json = JsonSerializer.Serialize( this );
System.IO.File.WriteAllText( path, json );
}
public IconConfiguration Load(string iconConfigPath)
{
var json = File.ReadAllText( iconConfigPath );
return JsonSerializer.Deserialize<IconConfiguration>( json );
}
}