@@ -37,6 +37,9 @@ final class AlphabetComponent {
3737 public var scaleX : Float ;
3838 public var scaleY : Float ;
3939
40+ public var flipX : Bool ;
41+ public var flipY : Bool ;
42+
4043 public var hasColorMode : Bool ;
4144 public var colorMode : ColorMode ;
4245}
@@ -346,9 +349,9 @@ class Alphabet extends FlxSprite {
346349
347350 _matrix .translate (_frame .frame .width * - 0.5 , _frame .frame .height * - 0.5 );
348351 if (__useDrawScale )
349- _matrix .scale (__drawScale .x , __drawScale .y );
352+ _matrix .scale (__drawScale .x * ( __component . flipX ? - 1 : 1 ) , __drawScale .y * ( __component . flipY ? - 1 : 1 ) );
350353 else
351- _matrix .scale (__component .scaleX , __component .scaleY );
354+ _matrix .scale (__component .scaleX * ( __component . flipX ? - 1 : 1 ) , __component .scaleY * ( __component . flipY ? - 1 : 1 ) );
352355 if (__component .shouldRotate )
353356 _matrix .rotateWithTrig (__component .cos , __component .sin );
354357 _matrix .translate (_frame .frame .width * 0.5 , _frame .frame .height * 0.5 );
@@ -558,6 +561,9 @@ class Alphabet extends FlxSprite {
558561 cos : angleCos ,
559562 sin : angleSin ,
560563
564+ flipX : node .get (" flipX" ) == " true" ,
565+ flipY : node .get (" flipY" ) == " true" ,
566+
561567 hasColorMode : false ,
562568 colorMode : 0
563569 }],
@@ -593,6 +599,9 @@ class Alphabet extends FlxSprite {
593599
594600 var colorMode = [" tint" , " offsets" , " none" ].indexOf (component .get (" colorMode" ));
595601
602+ var xFlip = component .get (" flipX" ) == " true" ;
603+ var yFlip = component .get (" flipY" ) == " true" ;
604+
596605 if (component .get (" hasOutline" ) == " true" ) {
597606 components .insert (startIndex , {
598607 refIndex : componentsPushed ,
@@ -608,6 +617,9 @@ class Alphabet extends FlxSprite {
608617 cos : angleCos ,
609618 sin : angleSin ,
610619
620+ flipX : xFlip ,
621+ flipY : yFlip ,
622+
611623 hasColorMode : colorMode >= 0 ,
612624 colorMode : colorMode ,
613625 });
@@ -628,6 +640,9 @@ class Alphabet extends FlxSprite {
628640 cos : angleCos ,
629641 sin : angleSin ,
630642
643+ flipX : xFlip ,
644+ flipY : yFlip ,
645+
631646 hasColorMode : colorMode >= 0 ,
632647 colorMode : colorMode ,
633648 });
@@ -659,6 +674,9 @@ class Alphabet extends FlxSprite {
659674 var yScale : Float = Std .parseFloat (node .get (" scaleY" )).getDefaultFloat (1.0 );
660675 var advance : Float = Std .parseFloat (node .get (" advance" ));
661676
677+ var xFlip = node .get (" flipX" ) == " true" ;
678+ var yFlip = node .get (" flipY" ) == " true" ;
679+
662680 var colorMode = [" tint" , " offsets" , " none" ].indexOf (node .get (" colorMode" ));
663681
664682 var components : Array <AlphabetComponent > = [];
@@ -677,6 +695,9 @@ class Alphabet extends FlxSprite {
677695 cos : angleCos ,
678696 sin : angleSin ,
679697
698+ flipX : xFlip ,
699+ flipY : yFlip ,
700+
680701 hasColorMode : colorMode >= 0 ,
681702 colorMode : colorMode ,
682703 });
@@ -696,6 +717,9 @@ class Alphabet extends FlxSprite {
696717 cos : angleCos ,
697718 sin : angleSin ,
698719
720+ flipX : xFlip ,
721+ flipY : yFlip ,
722+
699723 hasColorMode : colorMode >= 0 ,
700724 colorMode : colorMode ,
701725 });
@@ -758,7 +782,7 @@ class Alphabet extends FlxSprite {
758782 }
759783
760784 private static var alphabetProperties : Array <String > = [" fps" , " advance" , " lineGap" , " forceCasing" , " useColorOffsets" , " antialiasing" ];
761- private static var componentProperties : Array <String > = [" name" , " anim" , " x" , " y" , " scaleX" , " scaleY" , " angle" , " offsetX" , " offsetY" ];
785+ private static var componentProperties : Array <String > = [" name" , " anim" , " x" , " y" , " scaleX" , " scaleY" , " angle" , " offsetX" , " offsetY" , " flipX " , " flipY " ];
762786
763787 public function buildXML (): Xml {
764788 var xml = Xml .createElement (" alphabet" );
0 commit comments