Add clone function to MaterialValueManager.

This commit is contained in:
Ottermandias 2024-01-30 16:09:58 +01:00
parent eea4de63d5
commit 994b7bfb6c

View file

@ -1,10 +1,11 @@
global using StateMaterialManager = Glamourer.Interop.Material.MaterialValueManager<Glamourer.Interop.Material.MaterialValueState>;
global using DesignMaterialManager = Glamourer.Interop.Material.MaterialValueManager<System.Numerics.Vector3>;
global using DesignMaterialManager = Glamourer.Interop.Material.MaterialValueManager<Glamourer.Interop.Material.MaterialValueDesign>;
using Glamourer.State;
namespace Glamourer.Interop.Material;
public record struct MaterialValueDesign(Vector3 Value, bool Enabled);
public record struct MaterialValueState(Vector3 Game, Vector3 Model, StateSource Source);
public readonly struct MaterialValueManager<T>
@ -17,6 +18,13 @@ public readonly struct MaterialValueManager<T>
public void Clear()
=> _values.Clear();
public MaterialValueManager<T> Clone()
{
var ret = new MaterialValueManager<T>();
ret._values.AddRange(_values);
return ret;
}
public bool TryGetValue(MaterialValueIndex index, out T value)
{
if (_values.Count == 0)