private void AvatarParameterDriverSettings(VRC_AvatarParameterDriver driver, Animator animator) { if (!_hooked || animator != AvatarAnimator) { return; } foreach (var parameter in driver.parameters) { var param = RadialMenu.GetParam(parameter.name); if (param == null) { continue; } switch (parameter.type) { case VRC_AvatarParameterDriver.ChangeType.Set: param.Set(RadialMenu, parameter.value); break; case VRC_AvatarParameterDriver.ChangeType.Add: param.Add(RadialMenu, parameter.value); break; case VRC_AvatarParameterDriver.ChangeType.Random: param.Random(RadialMenu, parameter.valueMin, parameter.valueMax, parameter.chance); break; default: throw new ArgumentOutOfRangeException(); } } }
private void AvatarParameterDriverInit(VRC_AvatarParameterDriver avatarParameterDriver) => avatarParameterDriver.ApplySettings += AvatarParameterDriverSettings;