Add IAacDefaultsProvider.ConfigureStateMachine(...) to position the core nodes

This commit is contained in:
Haï~
2022-05-10 20:06:47 +02:00
parent 955655fd6f
commit 77d68dcc0f
3 changed files with 15 additions and 4 deletions
+2 -4
View File
@@ -634,10 +634,8 @@ namespace AnimatorAsCode.V0
var layer = TryGetLayer(layerName);
var machinist = new AacFlStateMachine(layer.stateMachine, _emptyClip, new AacBackingAnimator(this), _defaultsProvider);
return machinist
.WithAnyStatePosition(0, 7)
.WithEntryPosition(0, -1)
.WithExitPosition(7, -1);
_defaultsProvider.ConfigureStateMachine(layer.stateMachine);
return machinist;
}
private int FindIndexOf(string layerName)
@@ -11,6 +11,7 @@ namespace AnimatorAsCode.V0
string ConvertLayerName(string systemName);
string ConvertLayerNameWithSuffix(string systemName, string suffix);
Vector2 Grid();
void ConfigureStateMachine(AnimatorStateMachine stateMachine);
}
public class AacDefaultsProvider : IAacDefaultsProvider
@@ -54,5 +55,14 @@ namespace AnimatorAsCode.V0
{
return new Vector2(250, 70);
}
public void ConfigureStateMachine(AnimatorStateMachine stateMachine)
{
var grid = Grid();
stateMachine.anyStatePosition = grid * new Vector2(0, 7);
stateMachine.entryPosition = grid * new Vector2(0, -1);
stateMachine.exitPosition = grid * new Vector2(7, -1);
stateMachine.parentStateMachinePosition = grid * new Vector2(3, -1);
}
}
}
+3
View File
@@ -115,6 +115,7 @@ namespace AnimatorAsCode.V0
public readonly AnimatorStateMachine Machine;
private readonly AnimationClip _emptyClip;
private readonly AacBackingAnimator _backingAnimator;
private readonly IAacDefaultsProvider _defaultsProvider;
private readonly float _gridShiftX;
private readonly float _gridShiftY;
@@ -126,6 +127,7 @@ namespace AnimatorAsCode.V0
Machine = machine;
_emptyClip = emptyClip;
_backingAnimator = backingAnimator;
_defaultsProvider = defaultsProvider;
var grid = defaultsProvider.Grid();
_gridShiftX = grid.x;
@@ -149,6 +151,7 @@ namespace AnimatorAsCode.V0
{
var stateMachine = Machine.AddStateMachine(name, GridPosition(x, y));
var aacMachine = new AacFlStateMachine(stateMachine, _emptyClip, _backingAnimator, DefaultsProvider, this);
_defaultsProvider.ConfigureStateMachine(stateMachine);
_childNodes.Add(aacMachine);
return aacMachine;
}