Beispiel #1
0
        public static void AddParametersToLastEmptySpace(this VRCExpressionParameters obj, string name, VRCExpressionParameters.ValueType type)
        {
            var last = obj.GetLastEmptyParameter();

            if (last == null)
            {
                throw new ArgumentOutOfRangeException($"This exceeds the maximum number that can be set in {nameof(VRCExpressionParameters)}");
            }

            last.name      = name;
            last.valueType = type;
        }
Beispiel #2
0
 protected BaseParam(string paramName, VRCExpressionParameters.ValueType paramType)
 {
     _paramName = paramName;
     _paramType = paramType;
     ResetParam();
 }
        public static VRCExpressionParameters.Parameter AddVRCExpressionsParameter(VRCAvatarDescriptor avatarDescriptor, VRCExpressionParameters.ValueType type, string name, List <Object> dirtyAssets)
        {
            VRCExpressionParameters parameters = avatarDescriptor.expressionParameters;

            VRCExpressionParameters.Parameter parameter = parameters.FindParameter(name);

            if (parameter == null)
            {
                var list = parameters.parameters.Where(e => e != null && !string.IsNullOrEmpty(e.name)).ToList();
                parameter = new VRCExpressionParameters.Parameter
                {
                    name      = name,
                    valueType = type,
                };
                list.Add(parameter);
                parameters.parameters = list.ToArray();
            }

            dirtyAssets.Add(parameters);
            dirtyAssets.Add(avatarDescriptor.gameObject);
            return(parameter);
        }
Beispiel #4
0
        public static (int, VRCExpressionParameters.Parameter) FindParam(string paramName, VRCExpressionParameters.ValueType paramType)
        {
            VRCExpressionParameters.Parameter[] parameters = VRCPlayer.field_Internal_Static_VRCPlayer_0
                                                             ?.prop_VRCAvatarManager_0?.prop_VRCAvatarDescriptor_0?.expressionParameters
                                                             ?.parameters;

            if (parameters == null)
            {
                return(-1, null);
            }

            for (var i = 0; i < parameters.Length; i++)
            {
                var param = parameters[i];
                if (param.name == null)
                {
                    continue;
                }
                if (param.name == paramName && param.valueType == paramType)
                {
                    return(i, parameters[i]);