Skip to content
This repository was archived by the owner on Jul 16, 2021. It is now read-only.

Commit 9557b3f

Browse files
committed
Fix inventory generator for new av3 beta's changes
1 parent ba07647 commit 9557b3f

File tree

1 file changed

+19
-16
lines changed

1 file changed

+19
-16
lines changed

Assets/Merlin/Inventory/InventoryDescriptor.cs

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,9 @@
55
using UnityEditor;
66
using UnityEditor.Animations;
77
using UnityEngine;
8+
using VRC.SDK3.Avatars.Components;
9+
using VRC.SDK3.Avatars.ScriptableObjects;
810
using VRC.SDK3.Components;
9-
using VRC.SDK3.ScriptableObjects;
1011

1112
namespace Merlin
1213
{
@@ -25,7 +26,7 @@ public class InventorySlot
2526
public bool advancedMode = false;
2627
public AnimatorController basisAnimator;
2728
public VRCExpressionsMenu basisMenu;
28-
public VRCStageParameters basisStageParameters;
29+
public VRCExpressionParameters basisStageParameters;
2930
public VRCAvatarDescriptor.AnimLayerType inventoryAnimLayer = VRCAvatarDescriptor.AnimLayerType.Gesture;
3031
public InventorySlot[] inventorySlots;
3132
public string descriptorGUID;
@@ -48,27 +49,30 @@ public void GenerateInventory()
4849
}
4950

5051
// Generate the stage parameters for the inventory toggles
51-
VRCStageParameters inventoryStageParams;
52+
VRCExpressionParameters inventoryStageParams;
5253
string stageParameterPath = $"{generatedDirPath}/customStageParams.asset";
5354

5455
if (basisStageParameters != null)
5556
{
5657
AssetDatabase.CopyAsset(AssetDatabase.GetAssetPath(basisStageParameters), stageParameterPath);
57-
inventoryStageParams = AssetDatabase.LoadAssetAtPath<VRCStageParameters>(stageParameterPath);
58+
inventoryStageParams = AssetDatabase.LoadAssetAtPath<VRCExpressionParameters>(stageParameterPath);
5859
}
5960
else
6061
{
61-
inventoryStageParams = ScriptableObject.CreateInstance<VRCStageParameters>();
62+
inventoryStageParams = ScriptableObject.CreateInstance<VRCExpressionParameters>();
6263
AssetDatabase.CreateAsset(inventoryStageParams, $"{generatedDirPath}/customStageParams.asset");
6364
}
6465

65-
List<VRCStageParameters.Parameter> originalParams = new List<VRCStageParameters.Parameter>();
66+
List<VRCExpressionParameters.Parameter> originalParams = new List<VRCExpressionParameters.Parameter>();
6667

67-
foreach (VRCStageParameters.Parameter param in inventoryStageParams.stageParameters)
68+
if (inventoryStageParams.parameters != null)
6869
{
69-
if (!string.IsNullOrEmpty(param.name))
70+
foreach (VRCExpressionParameters.Parameter param in inventoryStageParams.parameters)
7071
{
71-
originalParams.Add(new VRCStageParameters.Parameter() { name = param.name, valueType = param.valueType });
72+
if (!string.IsNullOrEmpty(param.name))
73+
{
74+
originalParams.Add(new VRCExpressionParameters.Parameter() { name = param.name, valueType = param.valueType });
75+
}
7276
}
7377
}
7478

@@ -78,16 +82,16 @@ public void GenerateInventory()
7882
return;
7983
}
8084

81-
VRCStageParameters.Parameter[] basisParameters = inventoryStageParams.stageParameters;
82-
inventoryStageParams.stageParameters = new VRCStageParameters.Parameter[16];
85+
VRCExpressionParameters.Parameter[] basisParameters = inventoryStageParams.parameters;
86+
inventoryStageParams.parameters = new VRCExpressionParameters.Parameter[16];
8387

84-
for (int i = 0; i < originalParams.Count; ++i) inventoryStageParams.stageParameters[i] = originalParams[i];
88+
for (int i = 0; i < originalParams.Count; ++i) inventoryStageParams.parameters[i] = originalParams[i];
8589

8690
for (int i = originalParams.Count; i < inventorySlots.Length + originalParams.Count; ++i)
87-
inventoryStageParams.stageParameters[i] = new VRCStageParameters.Parameter() { name = $"GenInventorySlot{i - originalParams.Count}", valueType = VRCStageParameters.Parameter.ValyeType.Int };
91+
inventoryStageParams.parameters[i] = new VRCExpressionParameters.Parameter() { name = $"GenInventorySlot{i - originalParams.Count}", valueType = VRCExpressionParameters.ValueType.Int };
8892

8993
for (int i = originalParams.Count + inventorySlots.Length; i < 16; ++i) // Clear out empty params
90-
inventoryStageParams.stageParameters[i] = new VRCStageParameters.Parameter() { name = "", valueType = VRCStageParameters.Parameter.ValyeType.Float };
94+
inventoryStageParams.parameters[i] = new VRCExpressionParameters.Parameter() { name = "", valueType = VRCExpressionParameters.ValueType.Float };
9195

9296
// Generate menu asset
9397
VRCExpressionsMenu menuAsset;
@@ -102,8 +106,6 @@ public void GenerateInventory()
102106
menuAsset = ScriptableObject.CreateInstance<VRCExpressionsMenu>();
103107
AssetDatabase.CreateAsset(menuAsset, menuPath);
104108
}
105-
106-
menuAsset.stageParameters = inventoryStageParams;
107109

108110
for (int i = 0; i < inventorySlots.Length; ++i)
109111
{
@@ -210,6 +212,7 @@ public void GenerateInventory()
210212
VRCAvatarDescriptor descriptor = GetComponent<VRCAvatarDescriptor>();
211213

212214
descriptor.expressionsMenu = menuAsset;
215+
descriptor.expressionParameters = inventoryStageParams;
213216

214217
VRCAvatarDescriptor.CustomAnimLayer layer = new VRCAvatarDescriptor.CustomAnimLayer();
215218
layer.isDefault = false;

0 commit comments

Comments
 (0)