mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
65 lines
1.9 KiB
C#
65 lines
1.9 KiB
C#
using AssetRipper.SourceGenerated.Subclasses.BlendTreeNodeConstant;
|
|
using System.Numerics;
|
|
using BlendTreeType = AssetRipper.SourceGenerated.Enums.BlendTreeType_1;
|
|
|
|
namespace AssetRipper.SourceGenerated.Extensions;
|
|
|
|
public static class BlendTreeNodeConstantExtensions
|
|
{
|
|
public static float GetThreshold(this IBlendTreeNodeConstant constant, int index)
|
|
{
|
|
if (constant.Has_Blend1dData())
|
|
{
|
|
if (constant.BlendTypeE == BlendTreeType.Simple1D)
|
|
{
|
|
return constant.Blend1dData.Data.ChildThresholdArray[index];
|
|
}
|
|
}
|
|
else if (constant.Has_ChildThresholdArray())
|
|
{
|
|
return constant.ChildThresholdArray[index];
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
public static Vector2 GetPosition(this IBlendTreeNodeConstant constant, int index)
|
|
{
|
|
if (constant.Has_Blend2dData() && constant.BlendTypeE != BlendTreeType.Simple1D && constant.BlendTypeE != BlendTreeType.Direct)
|
|
{
|
|
return constant.Blend2dData.Data.ChildPositionArray[index];
|
|
}
|
|
return default;
|
|
}
|
|
|
|
public static float GetMinThreshold(this IBlendTreeNodeConstant constant)
|
|
{
|
|
if (constant.Has_Blend1dData() && constant.BlendTypeE == BlendTreeType.Simple1D)
|
|
{
|
|
return constant.Blend1dData.Data.ChildThresholdArray.Min();
|
|
}
|
|
return 0.0f;
|
|
}
|
|
|
|
public static float GetMaxThreshold(this IBlendTreeNodeConstant constant)
|
|
{
|
|
if (constant.Has_Blend1dData() && constant.BlendTypeE == BlendTreeType.Simple1D)
|
|
{
|
|
return constant.Blend1dData.Data.ChildThresholdArray.Max();
|
|
}
|
|
return 1.0f;
|
|
}
|
|
|
|
public static bool TryGetDirectBlendParameter(this IBlendTreeNodeConstant constant, int index, out uint parameter)
|
|
{
|
|
if (constant.Has_BlendDirectData() && constant.BlendTypeE == BlendTreeType.Direct)
|
|
{
|
|
parameter = constant.BlendDirectData.Data.ChildBlendEventIDArray[index];
|
|
return true;
|
|
}
|
|
parameter = default;
|
|
return false;
|
|
}
|
|
|
|
public static bool IsBlendTree(this IBlendTreeNodeConstant constant) => constant.ChildIndices.Count > 0;
|
|
}
|