forked from bdunderscore/ndmf
/
ContactParameterProvider.cs
45 lines (38 loc) · 1.4 KB
/
ContactParameterProvider.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#region
using System;
using System.Collections.Generic;
using System.Collections.Immutable;
using VRC.SDK3.Dynamics.Contact.Components;
using VRC.Dynamics;
using UnityEngine;
#endregion
namespace nadena.dev.ndmf.VRChatProviders
{
[ParameterProviderFor(typeof(VRCContactReceiver))]
internal class ContactParameterProvider : IParameterProvider
{
private readonly VRCContactReceiver _component;
public ContactParameterProvider(VRCContactReceiver receiver)
{
_component = receiver;
}
public IEnumerable<ProvidedParameter> GetSuppliedParameters(BuildContext context)
{
if (string.IsNullOrEmpty(_component.parameter)) return Array.Empty<ProvidedParameter>();
return new[]
{
new ProvidedParameter(_component.parameter, ParameterNamespace.Animator, _component,
VRChatBuiltinProviderPlugin.Instance, _component.receiverType == ContactReceiver.ReceiverType.Proximity ? AnimatorControllerParameterType.Float : AnimatorControllerParameterType.Bool)
{
IsAnimatorOnly = true,
WantSynced = false,
}
};
}
public void RemapParameters(ref ImmutableDictionary<(ParameterNamespace, string), ParameterMapping> nameMap,
BuildContext context)
{
// no-op
}
}
}