55using UnityEditor ;
66using UnityEditor . Animations ;
77using UnityEngine ;
8+ using VRC . SDK3 . Avatars . Components ;
9+ using VRC . SDK3 . Avatars . ScriptableObjects ;
810using VRC . SDK3 . Components ;
9- using VRC . SDK3 . ScriptableObjects ;
1011
1112namespace 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