@@ -29,8 +29,11 @@ public class InteractiveEnum : InteractiveValue
29
29
private EnumCompleter enumCompleter ;
30
30
31
31
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 ] ;
34
37
35
38
// Setting value from owner
36
39
public override void SetValue ( object value )
@@ -70,13 +73,8 @@ private void SetTogglesForValue(object value)
70
73
{
71
74
try
72
75
{
73
- var split = value . ToString ( ) . Split ( ',' ) ;
74
- var set = new HashSet < string > ( ) ;
75
- foreach ( var s in split )
76
- set . Add ( s . Trim ( ) ) ;
77
-
78
76
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 ) ;
80
78
}
81
79
catch ( Exception ex )
82
80
{
@@ -116,7 +114,7 @@ private void SetValueFromFlags()
116
114
for ( int i = 0 ; i < CurrentValues . Count ; i ++ )
117
115
{
118
116
if ( flagToggles [ i ] . isOn )
119
- values . Add ( ValueAtIdx ( i ) . Name ) ;
117
+ values . Add ( ValueAtIndex ( i ) . Name ) ;
120
118
}
121
119
122
120
CurrentOwner . SetUserValue ( Enum . Parse ( EnumType , string . Join ( ", " , values . ToArray ( ) ) ) ) ;
@@ -166,9 +164,6 @@ public override GameObject CreateContent(GameObject parent)
166
164
return UIRoot ;
167
165
}
168
166
169
- public CachedEnumValue ValueAtIdx ( int idx ) => ( CachedEnumValue ) CurrentValues [ idx ] ;
170
- public CachedEnumValue ValueAtKey ( object key ) => ( CachedEnumValue ) CurrentValues [ key ] ;
171
-
172
167
private void SetupTogglesForEnumType ( )
173
168
{
174
169
toggleHolder . SetActive ( true ) ;
@@ -191,7 +186,7 @@ private void SetupTogglesForEnumType()
191
186
AddToggleRow ( ) ;
192
187
193
188
flagToggles [ i ] . isOn = false ;
194
- flagTexts [ i ] . text = ValueAtIdx ( i ) . Name ;
189
+ flagTexts [ i ] . text = ValueAtIndex ( i ) . Name ;
195
190
}
196
191
}
197
192
0 commit comments