Code/FXParameter.cs
using System;
using Sandbox;
using System.Collections.Generic;
using System.Linq;

namespace fxbox;

/// <summary>
/// A named float parameter that can be used to control particle values
/// </summary>
public class FloatParameter
{
	[Property] public string Name { get; set; } = "Parameter";
	[Property] public float DefaultValue { get; set; } = 1.0f;
	[Hide] public string Identifier { get; set; } = Guid.NewGuid().ToString();
}

/// <summary>
/// A named vector parameter that can be used to control particle values
/// </summary>
public class VectorParameter
{
	[Property] public string Name { get; set; } = "VectorParameter";
	[Property] public Vector3 DefaultValue { get; set; } = Vector3.One;
	[Hide] public string Identifier { get; set; } = Guid.NewGuid().ToString();
}

/// <summary>
/// A named color parameter that can be used to control particle values
/// </summary>
public class ColorParameter
{
	[Property] public string Name { get; set; } = "ColorParameter";
	[Property] public ParticleGradient DefaultValue { get; set; } = Color.White;
	[Hide] public string Identifier { get; set; } = Guid.NewGuid().ToString();
}