From e0b43254a45e54ae103d55b2c046f118edd7d9cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ha=C3=AF=7E?= Date: Wed, 4 Oct 2023 00:36:49 +0200 Subject: [PATCH] Extend name deduplication to sub-state machines --- .../V1/Editor/AacFlStates.cs | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Packages/dev.hai-vr.animator-as-code.v1/V1/Editor/AacFlStates.cs b/Packages/dev.hai-vr.animator-as-code.v1/V1/Editor/AacFlStates.cs index 3615fb8..a9de3c9 100644 --- a/Packages/dev.hai-vr.animator-as-code.v1/V1/Editor/AacFlStates.cs +++ b/Packages/dev.hai-vr.animator-as-code.v1/V1/Editor/AacFlStates.cs @@ -150,7 +150,7 @@ namespace AnimatorAsCode.V1 public AacFlStateMachine NewSubStateMachine(string name, int x, int y) { - var stateMachine = AacInternals.NoUndo(Machine, () => Machine.AddStateMachine(name, GridPosition(x, y))); + var stateMachine = AacInternals.NoUndo(Machine, () => Machine.AddStateMachine(EnsureNameIsDeduplicated(name), GridPosition(x, y))); var aacMachine = new AacFlStateMachine(stateMachine, _emptyClip, _backingAnimator, DefaultsProvider, this); _defaultsProvider.ConfigureStateMachine(stateMachine); _childNodes.Add(aacMachine); @@ -189,22 +189,25 @@ namespace AnimatorAsCode.V1 public AacFlState NewState(string name, int x, int y) { - var state = AacInternals.NoUndo(Machine, () => Machine.AddState(name, GridPosition(x, y))); + var state = AacInternals.NoUndo(Machine, () => Machine.AddState(EnsureNameIsDeduplicated(name), GridPosition(x, y))); DefaultsProvider.ConfigureState(state, _emptyClip); var aacState = new AacFlState(state, this, DefaultsProvider); _childNodes.Add(aacState); - int suffix = 0; - string stateName = name; + return aacState; + } + + private string EnsureNameIsDeduplicated(string name) + { + var suffix = 0; + var stateName = name; while (_stateNames.Contains(stateName)) { stateName = name + " " + (++suffix); } - state.name = stateName; - _stateNames.Add(state.name); - - return aacState; + _stateNames.Add(stateName); + return stateName; } public AacFlTransition AnyTransitionsTo(AacFlState destination)