2323using System ;
2424using System . Collections ;
2525using System . Collections . Generic ;
26+ using System . Globalization ;
2627using System . Text ;
2728using System . Text . RegularExpressions ;
2829
@@ -32,6 +33,7 @@ namespace LunarConsolePluginInternal
3233{
3334 public static class StringUtils
3435 {
36+ private const NumberStyles FLOAT_NUMBER_STYLES = NumberStyles . Integer | NumberStyles . Float | NumberStyles . AllowDecimalPoint ;
3537 private static readonly char [ ] kSpaceSplitChars = { ' ' } ;
3638
3739 internal static string TryFormat ( string format , params object [ ] args )
@@ -116,34 +118,19 @@ public static int ParseInt(string str, out bool succeed)
116118 return 0 ;
117119 }
118120
119- public static float ParseFloat ( string str )
121+ public static float ParseFloat ( string str , float defValue = 0.0f )
120122 {
121- return ParseFloat ( str , 0.0f ) ;
122- }
123-
124- public static float ParseFloat ( string str , float defValue )
125- {
126- if ( ! string . IsNullOrEmpty ( str ) )
123+ if ( ParseFloat ( str , out float result ) )
127124 {
128- float value ;
129- bool succeed = float . TryParse ( str , out value ) ;
130- return succeed ? value : defValue ;
125+ return result ;
131126 }
132-
133127 return defValue ;
134128 }
135129
136- public static float ParseFloat ( string str , out bool succeed )
130+ public static bool ParseFloat ( string str , out float result )
137131 {
138- if ( ! string . IsNullOrEmpty ( str ) )
139- {
140- float value ;
141- succeed = float . TryParse ( str , out value ) ;
142- return succeed ? value : 0.0f ;
143- }
144-
145- succeed = false ;
146- return 0.0f ;
132+ // Force '.' as decimal point
133+ return float . TryParse ( str , FLOAT_NUMBER_STYLES , CultureInfo . InvariantCulture , out result ) ;
147134 }
148135
149136 public static bool ParseBool ( string str )
@@ -543,79 +530,80 @@ internal static string NonNullOrEmpty(string str)
543530
544531 #region string representation
545532
546- internal static string ToString ( object value )
533+ public static string ToString ( object value )
547534 {
548535 return value != null ? value . ToString ( ) : null ;
549536 }
550-
551- internal static string ToString ( int value )
537+
538+ public static string ToString ( int value )
552539 {
553540 return value . ToString ( ) ;
554541 }
555542
556- internal static string ToString ( float value )
543+ public static string ToString ( float value )
557544 {
558- return value . ToString ( "G" ) ;
545+ // For '.' as decimal point
546+ return value . ToString ( "G" , CultureInfo . InvariantCulture ) ;
559547 }
560548
561- internal static string ToString ( bool value )
549+ public static string ToString ( bool value )
562550 {
563551 return value . ToString ( ) ;
564552 }
565553
566- internal static string ToString ( ref Color value )
554+ public static string ToString ( ref Color value )
567555 {
568556 if ( value . a > 0.0f )
569557 {
570558 return string . Format ( "{0} {1} {2} {3}" ,
571- value . r . ToString ( "G" ) ,
572- value . g . ToString ( "G" ) ,
573- value . b . ToString ( "G" ) ,
574- value . a . ToString ( "G" )
559+ ToString ( value . r ) ,
560+ ToString ( value . g ) ,
561+ ToString ( value . b ) ,
562+ ToString ( value . a )
575563 ) ;
576564 }
577565
578- return string . Format ( "{0} {1} {2}" ,
579- value . r . ToString ( "G" ) ,
580- value . g . ToString ( "G" ) ,
581- value . b . ToString ( "G" )
566+ return string . Format ( "{0} {1} {2}" ,
567+ ToString ( value . r ) ,
568+ ToString ( value . g ) ,
569+ ToString ( value . b )
582570 ) ;
583571 }
584572
585- internal static string ToString ( ref Rect value )
573+ public static string ToString ( ref Rect value )
586574 {
587575 return string . Format ( "{0} {1} {2} {3}" ,
588- value . x . ToString ( "G" ) ,
589- value . y . ToString ( "G" ) ,
590- value . width . ToString ( "G" ) ,
591- value . height . ToString ( "G" )
576+ ToString ( value . x ) ,
577+ ToString ( value . y ) ,
578+ ToString ( value . width ) ,
579+ ToString ( value . height )
592580 ) ;
593581 }
594582
595- internal static string ToString ( ref Vector2 value )
583+ public static string ToString ( ref Vector2 value )
596584 {
597585 return string . Format ( "{0} {1}" ,
598- value . x . ToString ( "G" ) ,
599- value . y . ToString ( "G" )
586+ ToString ( value . x ) ,
587+ ToString ( value . y )
600588 ) ;
601589 }
602590
603- internal static string ToString ( ref Vector3 value )
591+ public static string ToString ( ref Vector3 value )
604592 {
605593 return string . Format ( "{0} {1} {2}" ,
606- value . x . ToString ( "G" ) ,
607- value . y . ToString ( "G" ) ,
608- value . z . ToString ( "G" )
594+ ToString ( value . x ) ,
595+ ToString ( value . y ) ,
596+ ToString ( value . z )
609597 ) ;
610598 }
611599
612- internal static string ToString ( ref Vector4 value )
600+ public static string ToString ( ref Vector4 value )
613601 {
614602 return string . Format ( "{0} {1} {2} {3}" ,
615- value . x . ToString ( "G" ) ,
616- value . y . ToString ( "G" ) ,
617- value . z . ToString ( "G" ) ,
618- value . w . ToString ( "G" )
603+ ToString ( value . x ) ,
604+ ToString ( value . y ) ,
605+ ToString ( value . z ) ,
606+ ToString ( value . w )
619607 ) ;
620608 }
621609
0 commit comments