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 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; using Glamourer.State;
namespace Glamourer.Interop.Material; namespace Glamourer.Interop.Material;
public record struct MaterialValueDesign(Vector3 Value, bool Enabled);
public record struct MaterialValueState(Vector3 Game, Vector3 Model, StateSource Source); public record struct MaterialValueState(Vector3 Game, Vector3 Model, StateSource Source);
public readonly struct MaterialValueManager<T> public readonly struct MaterialValueManager<T>
@ -17,6 +18,13 @@ public readonly struct MaterialValueManager<T>
public void Clear() public void Clear()
=> _values.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) public bool TryGetValue(MaterialValueIndex index, out T value)
{ {
if (_values.Count == 0) if (_values.Count == 0)