mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
* first draft * change requests * actually working draft * duplicated method * use more the new method * - put StateContext class on a separate file - new BidirectionalDictionary<T1,T2> class - other tweaks * - put StateMachineContext class on a separate file - move all asset creations into VirtualAnimationFactory class - added extension method GetName() to IStateConstant - other tweaks * Apply suggestions from code review Co-authored-by: Jeremy Pritts <49847914+ds5678@users.noreply.github.com> * apply requested changes * Apply suggestions from code review Co-authored-by: Jeremy Pritts <49847914+ds5678@users.noreply.github.com> * reorder methods * Update Source/AssetRipper.Processing/AnimatorControllers/AnimatorStateContext.cs Co-authored-by: Jeremy Pritts <49847914+ds5678@users.noreply.github.com> * apply requested changes * IndexedState to StateData[] * Update Source/AssetRipper.Processing/AnimatorControllers/AnimatorStateContext.cs Co-authored-by: Jeremy Pritts <49847914+ds5678@users.noreply.github.com> * apply requested changes * Apply suggestions from code review Co-authored-by: Jeremy Pritts <49847914+ds5678@users.noreply.github.com> * a lot of restructuring and comments * statemachine parenting finished * simplify CreateDefaultAnimatorState * small tweaks --------- Co-authored-by: Jeremy Pritts <49847914+ds5678@users.noreply.github.com>
64 lines
1.6 KiB
C#
64 lines
1.6 KiB
C#
using AssetRipper.SourceGenerated.Classes.ClassID_1107;
|
|
|
|
namespace AssetRipper.SourceGenerated.Extensions
|
|
{
|
|
public static class AnimatorStateMachineExtensions
|
|
{
|
|
public static void SetChildStateCapacity(this IAnimatorStateMachine stateMachine, int c)
|
|
{
|
|
if (stateMachine.Has_ChildStates())
|
|
{
|
|
stateMachine.ChildStates.Capacity = c;
|
|
}
|
|
else
|
|
{
|
|
stateMachine.States.Capacity = c;
|
|
}
|
|
}
|
|
|
|
public static void SetChildStateMachineCapacity(this IAnimatorStateMachine stateMachine, int c)
|
|
{
|
|
if (stateMachine.Has_ChildStateMachines())
|
|
{
|
|
stateMachine.ChildStateMachines.Capacity = c;
|
|
}
|
|
else
|
|
{
|
|
stateMachine.ChildStateMachine.Capacity = c;
|
|
stateMachine.ChildStateMachinePosition.Capacity = c;
|
|
}
|
|
}
|
|
|
|
public static void TrimChildStateMachines(this IAnimatorStateMachine stateMachine)
|
|
{
|
|
stateMachine.SetChildStateMachineCapacity(stateMachine.ChildStateMachinesCount());
|
|
}
|
|
|
|
public static void SetEntryTransitionsCapacity(this IAnimatorStateMachine stateMachine, int c)
|
|
{
|
|
if (stateMachine.Has_EntryTransitions())
|
|
{
|
|
stateMachine.EntryTransitions.Capacity = c;
|
|
}
|
|
}
|
|
|
|
public static int ChildStatesCount(this IAnimatorStateMachine stateMachine)
|
|
{
|
|
if (stateMachine.Has_ChildStates())
|
|
{
|
|
return stateMachine.ChildStates.Count;
|
|
}
|
|
return stateMachine.StatesP.Count;
|
|
}
|
|
|
|
public static int ChildStateMachinesCount(this IAnimatorStateMachine stateMachine)
|
|
{
|
|
if (stateMachine.Has_ChildStateMachines())
|
|
{
|
|
return stateMachine.ChildStateMachines.Count;
|
|
}
|
|
return stateMachine.ChildStateMachine.Count;
|
|
}
|
|
}
|
|
}
|