Skip to content

Commit 62ceb57

Browse files
committed
parameter provider
1 parent e31169f commit 62ceb57

9 files changed

+137
-1
lines changed

Components/AvatarMenuCreatorBase.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,6 @@ public abstract class AvatarMenuCreatorBase : MonoBehaviour, IEditorOnly
3333

3434
public abstract IEnumerable<VRCExpressionParameters.Parameter> GetEffectiveParameterNameAndTypes();
3535

36-
protected string ParameterName => string.IsNullOrEmpty(AvatarMenu.ParameterName) ? name : AvatarMenu.ParameterName;
36+
public string ParameterName => string.IsNullOrEmpty(AvatarMenu.ParameterName) ? name : AvatarMenu.ParameterName;
3737
}
3838
}

Components/Editor/ParameterProviders.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using nadena.dev.ndmf;
2+
using net.narazaka.avatarmenucreator.components;
3+
using net.narazaka.avatarmenucreator.components.editor;
4+
using net.narazaka.avatarmenucreator.editor.util;
5+
using System.Collections.Generic;
6+
using System.Collections.Immutable;
7+
using System.Diagnostics.CodeAnalysis;
8+
using System.Linq;
9+
10+
namespace net.narazaka.avatarmenucreator.editor
11+
{
12+
[ParameterProviderFor(typeof(AvatarMenuCreatorBase))]
13+
internal class AvatarMenuCreatorBaseParameterProvider : IParameterProvider
14+
{
15+
readonly AvatarMenuCreatorBase Menu;
16+
17+
public AvatarMenuCreatorBaseParameterProvider(AvatarMenuCreatorBase c)
18+
{
19+
Menu = c;
20+
}
21+
22+
public IEnumerable<ProvidedParameter> GetSuppliedParameters([AllowNull] BuildContext context = null)
23+
{
24+
return Menu.GetParameterNameAndTypes().Select(p =>
25+
new ProvidedParameter(p.name, ParameterNamespace.Animator, Menu, AvatarMenuCreatorPlugin.Instance, p.valueType.ToAnimatorControllerParameterType())
26+
{
27+
WantSynced = true,
28+
IsHidden = Menu.AvatarMenu.InternalParameter,
29+
}
30+
);
31+
}
32+
33+
public void RemapParameters(ref ImmutableDictionary<(ParameterNamespace, string), ParameterMapping> nameMap,
34+
BuildContext context)
35+
{
36+
// no-op
37+
}
38+
}
39+
}

Components/Editor/ParameterProviders/AvatarMenuCreatorBaseParameterProvider.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"name": "AvatarMenuCreatorForMA.Components.Editor.ParameterProviders",
3+
"rootNamespace": "",
4+
"references": [
5+
"GUID:62ced99b048af7f4d8dfe4bed8373d76",
6+
"GUID:985f17f4bb01d634ba7f213158c15843",
7+
"GUID:87b19a1f46f27504c858f94d991470f0",
8+
"GUID:fe747755f7b44e048820525b07f9b956",
9+
"GUID:901e56b065a857d4483a77f8cae73588",
10+
"GUID:f8d3790345dfe964da49e8037fc71835",
11+
"GUID:3b1fb70803283d049844fb3483347e1c"
12+
],
13+
"includePlatforms": [
14+
"Editor"
15+
],
16+
"excludePlatforms": [],
17+
"allowUnsafeCode": false,
18+
"overrideReferences": false,
19+
"precompiledReferences": [],
20+
"autoReferenced": false,
21+
"defineConstraints": [
22+
"HAS_NDMF_ParameterProvider"
23+
],
24+
"versionDefines": [
25+
{
26+
"name": "nadena.dev.ndmf",
27+
"expression": "[1.4.0-rc.1,2)",
28+
"define": "HAS_NDMF_ParameterProvider"
29+
}
30+
],
31+
"noEngineReferences": false
32+
}

Components/Editor/ParameterProviders/AvatarMenuCreatorForMA.Components.Editor.ParameterProviders.asmdef.meta

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
using nadena.dev.ndmf;
2+
using net.narazaka.avatarmenucreator.components;
3+
4+
namespace net.narazaka.avatarmenucreator.editor
5+
{
6+
[ParameterProviderFor(typeof(AvatarToggleMenuCreator))]
7+
internal class AvatarToggleMenuCreatorParameterProvider : AvatarMenuCreatorBaseParameterProvider
8+
{
9+
public AvatarToggleMenuCreatorParameterProvider(AvatarToggleMenuCreator c) : base(c) { }
10+
}
11+
}

Components/Editor/ParameterProviders/AvatarToggleMenuCreatorParameterProvider.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Editor/Util/Util.cs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Linq;
22
using System.Collections.Generic;
33
using UnityEngine;
4+
using VRC.SDK3.Avatars.ScriptableObjects;
45

56
namespace net.narazaka.avatarmenucreator.editor.util
67
{
@@ -244,5 +245,21 @@ public static IEnumerable<ShaderParameter> ToFlatUniqueShaderParameterValues(thi
244245
descriptions
245246
.SelectMany(desc => desc.ShaderParameters)
246247
.Distinct(new ShaderParameterComparator());
248+
249+
250+
public static AnimatorControllerParameterType ToAnimatorControllerParameterType(this VRCExpressionParameters.ValueType valueType)
251+
{
252+
switch (valueType)
253+
{
254+
case VRCExpressionParameters.ValueType.Bool:
255+
return AnimatorControllerParameterType.Bool;
256+
case VRCExpressionParameters.ValueType.Float:
257+
return AnimatorControllerParameterType.Float;
258+
case VRCExpressionParameters.ValueType.Int:
259+
return AnimatorControllerParameterType.Int;
260+
default:
261+
throw new System.ArgumentOutOfRangeException(nameof(valueType));
262+
}
263+
}
247264
}
248265
}

0 commit comments

Comments
 (0)