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 layer = TryGetLayer(layerName);
var machinist = new AacFlStateMachine(layer.stateMachine, _emptyClip, new AacBackingAnimator(this), _defaultsProvider); var machinist = new AacFlStateMachine(layer.stateMachine, _emptyClip, new AacBackingAnimator(this), _defaultsProvider);
return machinist _defaultsProvider.ConfigureStateMachine(layer.stateMachine);
.WithAnyStatePosition(0, 7) return machinist;
.WithEntryPosition(0, -1)
.WithExitPosition(7, -1);
} }
private int FindIndexOf(string layerName) private int FindIndexOf(string layerName)
@@ -11,6 +11,7 @@ namespace AnimatorAsCode.V0
string ConvertLayerName(string systemName); string ConvertLayerName(string systemName);
string ConvertLayerNameWithSuffix(string systemName, string suffix); string ConvertLayerNameWithSuffix(string systemName, string suffix);
Vector2 Grid(); Vector2 Grid();
void ConfigureStateMachine(AnimatorStateMachine stateMachine);
} }
public class AacDefaultsProvider : IAacDefaultsProvider public class AacDefaultsProvider : IAacDefaultsProvider
@@ -54,5 +55,14 @@ namespace AnimatorAsCode.V0
{ {
return new Vector2(250, 70); 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; public readonly AnimatorStateMachine Machine;
private readonly AnimationClip _emptyClip; private readonly AnimationClip _emptyClip;
private readonly AacBackingAnimator _backingAnimator; private readonly AacBackingAnimator _backingAnimator;
private readonly IAacDefaultsProvider _defaultsProvider;
private readonly float _gridShiftX; private readonly float _gridShiftX;
private readonly float _gridShiftY; private readonly float _gridShiftY;
@@ -126,6 +127,7 @@ namespace AnimatorAsCode.V0
Machine = machine; Machine = machine;
_emptyClip = emptyClip; _emptyClip = emptyClip;
_backingAnimator = backingAnimator; _backingAnimator = backingAnimator;
_defaultsProvider = defaultsProvider;
var grid = defaultsProvider.Grid(); var grid = defaultsProvider.Grid();
_gridShiftX = grid.x; _gridShiftX = grid.x;
@@ -149,6 +151,7 @@ namespace AnimatorAsCode.V0
{ {
var stateMachine = Machine.AddStateMachine(name, GridPosition(x, y)); var stateMachine = Machine.AddStateMachine(name, GridPosition(x, y));
var aacMachine = new AacFlStateMachine(stateMachine, _emptyClip, _backingAnimator, DefaultsProvider, this); var aacMachine = new AacFlStateMachine(stateMachine, _emptyClip, _backingAnimator, DefaultsProvider, this);
_defaultsProvider.ConfigureStateMachine(stateMachine);
_childNodes.Add(aacMachine); _childNodes.Add(aacMachine);
return aacMachine; return aacMachine;
} }