@@ -29,8 +29,11 @@ public class InteractiveEnum : InteractiveValue
2929 private EnumCompleter enumCompleter ;
3030
3131 private GameObject toggleHolder ;
32- private readonly List < Toggle > flagToggles = new List < Toggle > ( ) ;
33- private readonly List < Text > flagTexts = new List < Text > ( ) ;
32+ private readonly List < Toggle > flagToggles = new ( ) ;
33+ private readonly List < Text > flagTexts = new ( ) ;
34+
35+ public CachedEnumValue ValueAtIndex ( int idx ) => ( CachedEnumValue ) CurrentValues [ idx ] ;
36+ public CachedEnumValue ValueAtKey ( object key ) => ( CachedEnumValue ) CurrentValues [ key ] ;
3437
3538 // Setting value from owner
3639 public override void SetValue ( object value )
@@ -70,13 +73,8 @@ private void SetTogglesForValue(object value)
7073 {
7174 try
7275 {
73- var split = value . ToString ( ) . Split ( ',' ) ;
74- var set = new HashSet < string > ( ) ;
75- foreach ( var s in split )
76- set . Add ( s . Trim ( ) ) ;
77-
7876 for ( int i = 0 ; i < CurrentValues . Count ; i ++ )
79- flagToggles [ i ] . isOn = set . Contains ( ValueAtIdx ( i ) . Name ) ;
77+ flagToggles [ i ] . isOn = ( value as Enum ) . HasFlag ( ValueAtIndex ( i ) . ActualValue as Enum ) ;
8078 }
8179 catch ( Exception ex )
8280 {
@@ -116,7 +114,7 @@ private void SetValueFromFlags()
116114 for ( int i = 0 ; i < CurrentValues . Count ; i ++ )
117115 {
118116 if ( flagToggles [ i ] . isOn )
119- values . Add ( ValueAtIdx ( i ) . Name ) ;
117+ values . Add ( ValueAtIndex ( i ) . Name ) ;
120118 }
121119
122120 CurrentOwner . SetUserValue ( Enum . Parse ( EnumType , string . Join ( ", " , values . ToArray ( ) ) ) ) ;
@@ -166,9 +164,6 @@ public override GameObject CreateContent(GameObject parent)
166164 return UIRoot ;
167165 }
168166
169- public CachedEnumValue ValueAtIdx ( int idx ) => ( CachedEnumValue ) CurrentValues [ idx ] ;
170- public CachedEnumValue ValueAtKey ( object key ) => ( CachedEnumValue ) CurrentValues [ key ] ;
171-
172167 private void SetupTogglesForEnumType ( )
173168 {
174169 toggleHolder . SetActive ( true ) ;
@@ -191,7 +186,7 @@ private void SetupTogglesForEnumType()
191186 AddToggleRow ( ) ;
192187
193188 flagToggles [ i ] . isOn = false ;
194- flagTexts [ i ] . text = ValueAtIdx ( i ) . Name ;
189+ flagTexts [ i ] . text = ValueAtIndex ( i ) . Name ;
195190 }
196191 }
197192
0 commit comments