Make some functions in AacFlLayers return themselves instead of void:

- AacFlLayer.OverrideValue(...) overloads now returns itself.
- AacFlLayer.WithAvatarMask(...) now returns itself.
- AacFlLayer.WithAvatarMaskNoTransforms(...) now returns itself.
- AacFlLayer.ResolveAvatarMask(...) now returns itself.
- Other void-returning functions in AAC do not return themselves because:
  - Some of them are meant to be used for cleanup purposes rather than for build purposes, so returning void here creates a usability gap to draw attention.
  - The ones used in animation keyframes marks it as the last operation that consumes the chain, as further calls would not be logical (i.e. .WithOneFrame(...).WithAnimationCurve(...))
This commit is contained in:
Haï~
2022-05-10 20:02:55 +02:00
parent 8bbf482210
commit 7369355a76
2 changed files with 20 additions and 10 deletions
+15 -5
View File
@@ -141,7 +141,7 @@ namespace AnimatorAsCode.V0
public AacFlIntParameterGroup IntParameters(params AacFlIntParameter[] parameters) => _stateMachine.BackingAnimator().IntParameters(parameters); public AacFlIntParameterGroup IntParameters(params AacFlIntParameter[] parameters) => _stateMachine.BackingAnimator().IntParameters(parameters);
public AacAv3 Av3() => new AacAv3(_stateMachine.BackingAnimator()); public AacAv3 Av3() => new AacAv3(_stateMachine.BackingAnimator());
public void OverrideValue(AacFlBoolParameter toBeForced, bool value) public AacFlLayer OverrideValue(AacFlBoolParameter toBeForced, bool value)
{ {
var parameters = _animatorController.parameters; var parameters = _animatorController.parameters;
foreach (var param in parameters) foreach (var param in parameters)
@@ -153,9 +153,11 @@ namespace AnimatorAsCode.V0
} }
_animatorController.parameters = parameters; _animatorController.parameters = parameters;
return this;
} }
public void OverrideValue(AacFlFloatParameter toBeForced, float value) public AacFlLayer OverrideValue(AacFlFloatParameter toBeForced, float value)
{ {
var parameters = _animatorController.parameters; var parameters = _animatorController.parameters;
foreach (var param in parameters) foreach (var param in parameters)
@@ -167,9 +169,11 @@ namespace AnimatorAsCode.V0
} }
_animatorController.parameters = parameters; _animatorController.parameters = parameters;
return this;
} }
public void OverrideValue(AacFlIntParameter toBeForced, int value) public AacFlLayer OverrideValue(AacFlIntParameter toBeForced, int value)
{ {
var parameters = _animatorController.parameters; var parameters = _animatorController.parameters;
foreach (var param in parameters) foreach (var param in parameters)
@@ -181,6 +185,8 @@ namespace AnimatorAsCode.V0
} }
_animatorController.parameters = parameters; _animatorController.parameters = parameters;
return this;
} }
public AacFlLayer WithAvatarMask(AvatarMask avatarMask) public AacFlLayer WithAvatarMask(AvatarMask avatarMask)
@@ -201,12 +207,14 @@ namespace AnimatorAsCode.V0
return this; return this;
} }
public void WithAvatarMaskNoTransforms() public AacFlLayer WithAvatarMaskNoTransforms()
{ {
ResolveAvatarMask(new Transform[0]); ResolveAvatarMask(new Transform[0]);
return this;
} }
public void ResolveAvatarMask(Transform[] paths) public AacFlLayer ResolveAvatarMask(Transform[] paths)
{ {
// FIXME: Fragile // FIXME: Fragile
var avatarMask = new AvatarMask(); var avatarMask = new AvatarMask();
@@ -238,6 +246,8 @@ namespace AnimatorAsCode.V0
AssetDatabase.AddObjectToAsset(avatarMask, _animatorController); AssetDatabase.AddObjectToAsset(avatarMask, _animatorController);
WithAvatarMask(avatarMask); WithAvatarMask(avatarMask);
return this;
} }
public AacFlLayer WithDefaultState(AacFlState newDefaultState) public AacFlLayer WithDefaultState(AacFlState newDefaultState)
+5 -5
View File
@@ -602,12 +602,12 @@ foreach (var cancelWhenNotAllowed in new[] {auto, reverse, manual, custom, done}
- `AacFlFloatParameterGroup FloatParameters(params AacFlFloatParameter[] parameters)` /// Combine multiple Int parameters into a group. - `AacFlFloatParameterGroup FloatParameters(params AacFlFloatParameter[] parameters)` /// Combine multiple Int parameters into a group.
- `AacFlIntParameterGroup IntParameters(params AacFlIntParameter[] parameters)` /// Combine multiple Int parameters into a group. - `AacFlIntParameterGroup IntParameters(params AacFlIntParameter[] parameters)` /// Combine multiple Int parameters into a group.
- `AacAv3 Av3()` /// Return an AacAv3 object, letting you select various standard Avatars 3.0 Animator Parameters. Subsequently invoking its functions will create invoked parameters in that layer. - `AacAv3 Av3()` /// Return an AacAv3 object, letting you select various standard Avatars 3.0 Animator Parameters. Subsequently invoking its functions will create invoked parameters in that layer.
- `void OverrideValue(AacFlBoolParameter toBeForced, bool value)` /// Set the Bool value of `toBeForced` parameter to `value` in the animator. - `AacFlLayer OverrideValue(AacFlBoolParameter toBeForced, bool value)` /// Set the Bool value of `toBeForced` parameter to `value` in the animator.
- `void OverrideValue(AacFlFloatParameter toBeForced, float value)` /// Set the Float value of `toBeForced` parameter to `value` in the animator. - `AacFlLayer OverrideValue(AacFlFloatParameter toBeForced, float value)` /// Set the Float value of `toBeForced` parameter to `value` in the animator.
- `void OverrideValue(AacFlIntParameter toBeForced, int value)` /// Set the Int value of `toBeForced` parameter to `value` in the animator. - `AacFlLayer OverrideValue(AacFlIntParameter toBeForced, int value)` /// Set the Int value of `toBeForced` parameter to `value` in the animator.
- `AacFlLayer WithAvatarMask(AvatarMask avatarMask)` /// Set the Avatar Mask of the layer. - `AacFlLayer WithAvatarMask(AvatarMask avatarMask)` /// Set the Avatar Mask of the layer.
- `void WithAvatarMaskNoTransforms()` /// Set the Avatar Mask of the layer to be an Avatar Mask which denies all transforms. The asset is generated into the container. - `AacFlLayer WithAvatarMaskNoTransforms()` /// Set the Avatar Mask of the layer to be an Avatar Mask which denies all transforms. The asset is generated into the container.
- `void ResolveAvatarMask(Transform[] paths)` /// Set the Avatar Mask of the layer to be an Avatar Mask that allows the specified transforms. If `paths` is an empty array, all transforms are denied, which is effectively the same as calling `.WithAvatarMaskNoTransforms()`. The asset is generated into the container. - `AacFlLayer ResolveAvatarMask(Transform[] paths)` /// Set the Avatar Mask of the layer to be an Avatar Mask that allows the specified transforms. If `paths` is an empty array, all transforms are denied, which is effectively the same as calling `.WithAvatarMaskNoTransforms()`. The asset is generated into the container.
- `AacFlLayer WithDefaultState(AacFlState newDefaultState)` /// Set the default state of the layer upon entry. Note that the first created state is the default state, so generally no functions need to be invoked onto the first created state. - `AacFlLayer WithDefaultState(AacFlState newDefaultState)` /// Set the default state of the layer upon entry. Note that the first created state is the default state, so generally no functions need to be invoked onto the first created state.
# Avatars 3.0 (AacAv3) # Avatars 3.0 (AacAv3)