mirror of
				https://github.com/flame-engine/flame.git
				synced 2025-10-31 08:56:01 +08:00 
			
		
		
		
	refactor: Modernize switch; use switch-expressions and no break; (#3133)
Replaces the switch cases that can be replaces with switch expressions and removes `break;` where it isn't needed. https://dart.dev/language/branches#switch-statements
This commit is contained in:
		| @ -10,29 +10,16 @@ void main() { | |||||||
|   if (page.startsWith('?')) { |   if (page.startsWith('?')) { | ||||||
|     page = page.substring(1); |     page = page.substring(1); | ||||||
|   } |   } | ||||||
|   switch (page) { |   return switch (page) { | ||||||
|     case 'step2': |     'step2' => step2.main(), | ||||||
|       step2.main(); |     'step3' => step3.main(), | ||||||
|       break; |     'step4' => step4.main(), | ||||||
|  |     'step5' => step5.main(), | ||||||
|     case 'step3': |     _ => runApp( | ||||||
|       step3.main(); |  | ||||||
|       break; |  | ||||||
|  |  | ||||||
|     case 'step4': |  | ||||||
|       step4.main(); |  | ||||||
|       break; |  | ||||||
|  |  | ||||||
|     case 'step5': |  | ||||||
|       step5.main(); |  | ||||||
|       break; |  | ||||||
|  |  | ||||||
|     default: |  | ||||||
|       runApp( |  | ||||||
|         Directionality( |         Directionality( | ||||||
|           textDirection: TextDirection.ltr, |           textDirection: TextDirection.ltr, | ||||||
|           child: Text('Error: unknown page name "$page"'), |           child: Text('Error=> unknown page name "$page"'), | ||||||
|         ), |         ), | ||||||
|       ); |       ), | ||||||
|   } |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -97,29 +97,24 @@ class Card extends PositionComponent { | |||||||
|     switch (rank.value) { |     switch (rank.value) { | ||||||
|       case 1: |       case 1: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); | ||||||
|         break; |  | ||||||
|       case 2: |       case 2: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25); |         _drawSprite(canvas, suitSprite, 0.5, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 3: |       case 3: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2); |         _drawSprite(canvas, suitSprite, 0.5, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 4: |       case 4: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 5: |       case 5: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 6: |       case 6: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
| @ -127,7 +122,6 @@ class Card extends PositionComponent { | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 7: |       case 7: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -136,7 +130,6 @@ class Card extends PositionComponent { | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 8: |       case 8: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -146,7 +139,6 @@ class Card extends PositionComponent { | |||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); | ||||||
|         break; |  | ||||||
|       case 9: |       case 9: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -157,7 +149,6 @@ class Card extends PositionComponent { | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 10: |       case 10: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -169,16 +160,12 @@ class Card extends PositionComponent { | |||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 11: |       case 11: | ||||||
|         _drawSprite(canvas, suit.isRed ? redJack : blackJack, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redJack : blackJack, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 12: |       case 12: | ||||||
|         _drawSprite(canvas, suit.isRed ? redQueen : blackQueen, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redQueen : blackQueen, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 13: |       case 13: | ||||||
|         _drawSprite(canvas, suit.isRed ? redKing : blackKing, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redKing : blackKing, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -105,29 +105,24 @@ class Card extends PositionComponent with DragCallbacks { | |||||||
|     switch (rank.value) { |     switch (rank.value) { | ||||||
|       case 1: |       case 1: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); | ||||||
|         break; |  | ||||||
|       case 2: |       case 2: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25); |         _drawSprite(canvas, suitSprite, 0.5, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 3: |       case 3: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2); |         _drawSprite(canvas, suitSprite, 0.5, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 4: |       case 4: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 5: |       case 5: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 6: |       case 6: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
| @ -135,7 +130,6 @@ class Card extends PositionComponent with DragCallbacks { | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 7: |       case 7: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -144,7 +138,6 @@ class Card extends PositionComponent with DragCallbacks { | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 8: |       case 8: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -154,7 +147,6 @@ class Card extends PositionComponent with DragCallbacks { | |||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); | ||||||
|         break; |  | ||||||
|       case 9: |       case 9: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -165,7 +157,6 @@ class Card extends PositionComponent with DragCallbacks { | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 10: |       case 10: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -177,16 +168,12 @@ class Card extends PositionComponent with DragCallbacks { | |||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 11: |       case 11: | ||||||
|         _drawSprite(canvas, suit.isRed ? redJack : blackJack, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redJack : blackJack, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 12: |       case 12: | ||||||
|         _drawSprite(canvas, suit.isRed ? redQueen : blackQueen, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redQueen : blackQueen, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 13: |       case 13: | ||||||
|         _drawSprite(canvas, suit.isRed ? redKing : blackKing, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redKing : blackKing, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -143,29 +143,24 @@ class Card extends PositionComponent | |||||||
|     switch (rank.value) { |     switch (rank.value) { | ||||||
|       case 1: |       case 1: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); | ||||||
|         break; |  | ||||||
|       case 2: |       case 2: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25); |         _drawSprite(canvas, suitSprite, 0.5, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 3: |       case 3: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2); |         _drawSprite(canvas, suitSprite, 0.5, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 4: |       case 4: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 5: |       case 5: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 6: |       case 6: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
| @ -173,7 +168,6 @@ class Card extends PositionComponent | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 7: |       case 7: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -182,7 +176,6 @@ class Card extends PositionComponent | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 8: |       case 8: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -192,7 +185,6 @@ class Card extends PositionComponent | |||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); | ||||||
|         break; |  | ||||||
|       case 9: |       case 9: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -203,7 +195,6 @@ class Card extends PositionComponent | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 10: |       case 10: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -215,16 +206,12 @@ class Card extends PositionComponent | |||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 11: |       case 11: | ||||||
|         _drawSprite(canvas, suit.isRed ? redJack : blackJack, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redJack : blackJack, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 12: |       case 12: | ||||||
|         _drawSprite(canvas, suit.isRed ? redQueen : blackQueen, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redQueen : blackQueen, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 13: |       case 13: | ||||||
|         _drawSprite(canvas, suit.isRed ? redKing : blackKing, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed ? redKing : blackKing, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -401,29 +401,24 @@ of drawing various sprites in different places on the card's face: | |||||||
|     switch (rank.value) { |     switch (rank.value) { | ||||||
|       case 1: |       case 1: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5, scale: 2.5); | ||||||
|         break; |  | ||||||
|       case 2: |       case 2: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25); |         _drawSprite(canvas, suitSprite, 0.5, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 3: |       case 3: | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2); |         _drawSprite(canvas, suitSprite, 0.5, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 4: |       case 4: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 5: |       case 5: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.5); |         _drawSprite(canvas, suitSprite, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 6: |       case 6: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25); |         _drawSprite(canvas, suitSprite, 0.3, 0.25); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25); |         _drawSprite(canvas, suitSprite, 0.7, 0.25); | ||||||
| @ -431,7 +426,6 @@ of drawing various sprites in different places on the card's face: | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.25, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.25, rotate: true); | ||||||
|         break; |  | ||||||
|       case 7: |       case 7: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -440,7 +434,6 @@ of drawing various sprites in different places on the card's face: | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.5); |         _drawSprite(canvas, suitSprite, 0.7, 0.5); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         break; |  | ||||||
|       case 8: |       case 8: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -450,7 +443,6 @@ of drawing various sprites in different places on the card's face: | |||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.35, rotate: true); | ||||||
|         break; |  | ||||||
|       case 9: |       case 9: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -461,7 +453,6 @@ of drawing various sprites in different places on the card's face: | |||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.2, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 10: |       case 10: | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.2); |         _drawSprite(canvas, suitSprite, 0.3, 0.2); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.2); |         _drawSprite(canvas, suitSprite, 0.7, 0.2); | ||||||
| @ -473,16 +464,12 @@ of drawing various sprites in different places on the card's face: | |||||||
|         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); |         _drawSprite(canvas, suitSprite, 0.5, 0.3, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.3, 0.4, rotate: true); | ||||||
|         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); |         _drawSprite(canvas, suitSprite, 0.7, 0.4, rotate: true); | ||||||
|         break; |  | ||||||
|       case 11: |       case 11: | ||||||
|         _drawSprite(canvas, suit.isRed? redJack : blackJack, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed? redJack : blackJack, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 12: |       case 12: | ||||||
|         _drawSprite(canvas, suit.isRed? redQueen : blackQueen, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed? redQueen : blackQueen, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|       case 13: |       case 13: | ||||||
|         _drawSprite(canvas, suit.isRed? redKing : blackKing, 0.5, 0.5); |         _drawSprite(canvas, suit.isRed? redKing : blackKing, 0.5, 0.5); | ||||||
|         break; |  | ||||||
|     } |     } | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
|  | |||||||
| @ -56,40 +56,26 @@ class EmberQuestGame extends FlameGame | |||||||
|  |  | ||||||
|   void loadGameSegments(int segmentIndex, double xPositionOffset) { |   void loadGameSegments(int segmentIndex, double xPositionOffset) { | ||||||
|     for (final block in segments[segmentIndex]) { |     for (final block in segments[segmentIndex]) { | ||||||
|       switch (block.blockType) { |       final component = switch (block.blockType) { | ||||||
|         case GroundBlock: |         GroundBlock => GroundBlock( | ||||||
|           world.add( |  | ||||||
|             GroundBlock( |  | ||||||
|             gridPosition: block.gridPosition, |             gridPosition: block.gridPosition, | ||||||
|             xOffset: xPositionOffset, |             xOffset: xPositionOffset, | ||||||
|           ), |           ), | ||||||
|           ); |         PlatformBlock => PlatformBlock( | ||||||
|           break; |  | ||||||
|         case PlatformBlock: |  | ||||||
|           world.add( |  | ||||||
|             PlatformBlock( |  | ||||||
|             gridPosition: block.gridPosition, |             gridPosition: block.gridPosition, | ||||||
|             xOffset: xPositionOffset, |             xOffset: xPositionOffset, | ||||||
|           ), |           ), | ||||||
|           ); |         Star => Star( | ||||||
|           break; |  | ||||||
|         case Star: |  | ||||||
|           world.add( |  | ||||||
|             Star( |  | ||||||
|             gridPosition: block.gridPosition, |             gridPosition: block.gridPosition, | ||||||
|             xOffset: xPositionOffset, |             xOffset: xPositionOffset, | ||||||
|           ), |           ), | ||||||
|           ); |         WaterEnemy => WaterEnemy( | ||||||
|           break; |  | ||||||
|         case WaterEnemy: |  | ||||||
|           world.add( |  | ||||||
|             WaterEnemy( |  | ||||||
|             gridPosition: block.gridPosition, |             gridPosition: block.gridPosition, | ||||||
|             xOffset: xPositionOffset, |             xOffset: xPositionOffset, | ||||||
|           ), |           ), | ||||||
|           ); |         _ => throw UnimplementedError(), | ||||||
|           break; |       }; | ||||||
|       } |       world.add(component); | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -235,13 +235,9 @@ void loadGameSegments(int segmentIndex, double xPositionOffset) { | |||||||
|     for (final block in segments[segmentIndex]) { |     for (final block in segments[segmentIndex]) { | ||||||
|       switch (block.blockType) { |       switch (block.blockType) { | ||||||
|         case GroundBlock: |         case GroundBlock: | ||||||
|           break; |  | ||||||
|         case PlatformBlock: |         case PlatformBlock: | ||||||
|           break; |  | ||||||
|         case Star: |         case Star: | ||||||
|           break; |  | ||||||
|         case WaterEnemy: |         case WaterEnemy: | ||||||
|           break; |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } |   } | ||||||
| @ -434,7 +430,6 @@ case PlatformBlock: | |||||||
|     gridPosition: block.gridPosition, |     gridPosition: block.gridPosition, | ||||||
|     xOffset: xPositionOffset, |     xOffset: xPositionOffset, | ||||||
|   )); |   )); | ||||||
|   break; |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| If you run your code, you should now see: | If you run your code, you should now see: | ||||||
|  | |||||||
| @ -90,7 +90,6 @@ case Star: | |||||||
|       xOffset: xPositionOffset, |       xOffset: xPositionOffset, | ||||||
|     ), |     ), | ||||||
|   ); |   ); | ||||||
|   break; |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| If you run your game, you should now see pulsating stars! | If you run your game, you should now see pulsating stars! | ||||||
| @ -177,7 +176,6 @@ case WaterEnemy: | |||||||
|        xOffset: xPositionOffset, |        xOffset: xPositionOffset, | ||||||
|       ), |       ), | ||||||
|     ); |     ); | ||||||
|     break; |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| If you run the game now, the Water Enemy should be displayed and moving! | If you run the game now, the Water Enemy should be displayed and moving! | ||||||
| @ -397,7 +395,6 @@ case GroundBlock: | |||||||
|       xOffset: xPositionOffset, |       xOffset: xPositionOffset, | ||||||
|     ), |     ), | ||||||
|   ); |   ); | ||||||
|   break; |  | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| If you run your code, your game should now look like this: | If you run your code, your game should now look like this: | ||||||
|  | |||||||
| @ -14,32 +14,18 @@ void main() { | |||||||
|     page = page.substring(1); |     page = page.substring(1); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   switch (page) { |   return switch (page) { | ||||||
|     case 'step1': |     'step1' => step1.main(), | ||||||
|       step1.main(); |     'step2' => step2.main(), | ||||||
|       break; |     'step3' => step3.main(), | ||||||
|     case 'step2': |     'step4' => step4.main(), | ||||||
|       step2.main(); |     'step5' => step5.main(), | ||||||
|       break; |     'step6' => step6.main(), | ||||||
|     case 'step3': |     _ => runApp( | ||||||
|       step3.main(); |  | ||||||
|       break; |  | ||||||
|     case 'step4': |  | ||||||
|       step4.main(); |  | ||||||
|       break; |  | ||||||
|     case 'step5': |  | ||||||
|       step5.main(); |  | ||||||
|       break; |  | ||||||
|     case 'step6': |  | ||||||
|       step6.main(); |  | ||||||
|       break; |  | ||||||
|  |  | ||||||
|     default: |  | ||||||
|       runApp( |  | ||||||
|         Directionality( |         Directionality( | ||||||
|           textDirection: TextDirection.ltr, |           textDirection: TextDirection.ltr, | ||||||
|           child: Text('Error: unknown page name "$page"'), |           child: Text('Error: unknown page name "$page"'), | ||||||
|         ), |         ), | ||||||
|       ); |       ), | ||||||
|   } |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -8,12 +8,10 @@ enum GameColors { | |||||||
|  |  | ||||||
| extension GameColorExtension on GameColors { | extension GameColorExtension on GameColors { | ||||||
|   Color get color { |   Color get color { | ||||||
|     switch (this) { |     return switch (this) { | ||||||
|       case GameColors.green: |       GameColors.green => ColorExtension.fromRGBHexString('#14F596'), | ||||||
|         return ColorExtension.fromRGBHexString('#14F596'); |       GameColors.blue => ColorExtension.fromRGBHexString('#81DDF9'), | ||||||
|       case GameColors.blue: |     }; | ||||||
|         return ColorExtension.fromRGBHexString('#81DDF9'); |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   Paint get paint => Paint()..color = color; |   Paint get paint => Paint()..color = color; | ||||||
|  | |||||||
| @ -89,19 +89,17 @@ class ObstacleTypeSettings { | |||||||
|   ); |   ); | ||||||
|  |  | ||||||
|   Sprite sprite(Image spriteImage) { |   Sprite sprite(Image spriteImage) { | ||||||
|     switch (type) { |     return switch (type) { | ||||||
|       case ObstacleType.cactusSmall: |       ObstacleType.cactusSmall => Sprite( | ||||||
|         return Sprite( |  | ||||||
|           spriteImage, |           spriteImage, | ||||||
|           srcPosition: Vector2(446.0, 2.0), |           srcPosition: Vector2(446.0, 2.0), | ||||||
|           srcSize: size, |           srcSize: size, | ||||||
|         ); |         ), | ||||||
|       case ObstacleType.cactusLarge: |       ObstacleType.cactusLarge => Sprite( | ||||||
|         return Sprite( |  | ||||||
|           spriteImage, |           spriteImage, | ||||||
|           srcPosition: Vector2(652.0, 2.0), |           srcPosition: Vector2(652.0, 2.0), | ||||||
|           srcSize: size, |           srcSize: size, | ||||||
|         ); |         ), | ||||||
|     } |     }; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  | |||||||
| @ -115,16 +115,10 @@ class CalculatePrimeNumber extends PositionComponent | |||||||
|     final nextInt = _primeData.key + 1; |     final nextInt = _primeData.key + 1; | ||||||
|  |  | ||||||
|     try { |     try { | ||||||
|       final bool isPrime; |       final isPrime = switch (computeType) { | ||||||
|  |         ComputeType.isolate => await isolateCompute(_isPrime, nextInt), | ||||||
|       switch (computeType) { |         ComputeType.synchronous => _isPrime(nextInt), | ||||||
|         case ComputeType.isolate: |       }; | ||||||
|           isPrime = await isolateCompute(_isPrime, nextInt); |  | ||||||
|           break; |  | ||||||
|         case ComputeType.synchronous: |  | ||||||
|           isPrime = _isPrime(nextInt); |  | ||||||
|           break; |  | ||||||
|       } |  | ||||||
|  |  | ||||||
|       _primeData = MapEntry(nextInt, isPrime); |       _primeData = MapEntry(nextInt, isPrime); | ||||||
|     } on BackpressureDropException catch (_) { |     } on BackpressureDropException catch (_) { | ||||||
|  | |||||||
| @ -287,15 +287,13 @@ MyCollidable randomCollidable( | |||||||
|   final rng = random ?? Random(); |   final rng = random ?? Random(); | ||||||
|   final rotationSpeed = 0.5 - rng.nextDouble(); |   final rotationSpeed = 0.5 - rng.nextDouble(); | ||||||
|   final shapeType = Shapes.values[rng.nextInt(Shapes.values.length)]; |   final shapeType = Shapes.values[rng.nextInt(Shapes.values.length)]; | ||||||
|   switch (shapeType) { |   return switch (shapeType) { | ||||||
|     case Shapes.circle: |     Shapes.circle => CollidableCircle(position, size, velocity, screenHitbox) | ||||||
|       return CollidableCircle(position, size, velocity, screenHitbox) |       ..rotationSpeed = rotationSpeed, | ||||||
|         ..rotationSpeed = rotationSpeed; |     Shapes.rectangle => | ||||||
|     case Shapes.rectangle: |       CollidableRectangle(position, size, velocity, screenHitbox) | ||||||
|       return CollidableRectangle(position, size, velocity, screenHitbox) |         ..rotationSpeed = rotationSpeed, | ||||||
|         ..rotationSpeed = rotationSpeed; |     Shapes.polygon => CollidablePolygon(position, size, velocity, screenHitbox) | ||||||
|     case Shapes.polygon: |       ..rotationSpeed = rotationSpeed, | ||||||
|       return CollidablePolygon(position, size, velocity, screenHitbox) |   }; | ||||||
|         ..rotationSpeed = rotationSpeed; |  | ||||||
|   } |  | ||||||
| } | } | ||||||
|  | |||||||
| @ -18,18 +18,15 @@ class SpawnComponentWorld extends World with TapCallbacks { | |||||||
|   @override |   @override | ||||||
|   void onTapDown(TapDownEvent info) { |   void onTapDown(TapDownEvent info) { | ||||||
|     final shapeType = Shapes.values.random(); |     final shapeType = Shapes.values.random(); | ||||||
|     final Shape shape; |  | ||||||
|     final position = info.localPosition; |     final position = info.localPosition; | ||||||
|     switch (shapeType) { |     final shape = switch (shapeType) { | ||||||
|       case Shapes.rectangle: |       Shapes.rectangle => Rectangle.fromCenter( | ||||||
|         shape = Rectangle.fromCenter( |  | ||||||
|           center: position, |           center: position, | ||||||
|           size: Vector2.all(200), |           size: Vector2.all(200), | ||||||
|         ); |         ), | ||||||
|       case Shapes.circle: |       Shapes.circle => Circle(position, 150), | ||||||
|         shape = Circle(position, 150); |       Shapes.polygon => Polygon( | ||||||
|       case Shapes.polygon: |  | ||||||
|         shape = Polygon( |  | ||||||
|           [ |           [ | ||||||
|             Vector2(-1.0, 0.0), |             Vector2(-1.0, 0.0), | ||||||
|             Vector2(-0.8, 0.6), |             Vector2(-0.8, 0.6), | ||||||
| @ -44,8 +41,8 @@ class SpawnComponentWorld extends World with TapCallbacks { | |||||||
|               ..scale(200) |               ..scale(200) | ||||||
|               ..add(position); |               ..add(position); | ||||||
|           }).toList(), |           }).toList(), | ||||||
|         ); |         ), | ||||||
|     } |     }; | ||||||
|  |  | ||||||
|     add( |     add( | ||||||
|       SpawnComponent( |       SpawnComponent( | ||||||
|  | |||||||
| @ -27,21 +27,19 @@ class _GestureHitboxesWorld extends World with TapCallbacks { | |||||||
|     final shapeSize = |     final shapeSize = | ||||||
|         Vector2.all(100) + Vector2.all(50.0).scaled(_rng.nextDouble()); |         Vector2.all(100) + Vector2.all(50.0).scaled(_rng.nextDouble()); | ||||||
|     final shapeAngle = _rng.nextDouble() * 6; |     final shapeAngle = _rng.nextDouble() * 6; | ||||||
|     ShapeHitbox hitbox; |     final hitbox = switch (shapeType) { | ||||||
|     switch (shapeType) { |       Shapes.circle => CircleHitbox(), | ||||||
|       case Shapes.circle: |       Shapes.rectangle => RectangleHitbox(), | ||||||
|         hitbox = CircleHitbox(); |       Shapes.polygon => PolygonHitbox.relative( | ||||||
|       case Shapes.rectangle: |           [ | ||||||
|         hitbox = RectangleHitbox(); |  | ||||||
|       case Shapes.polygon: |  | ||||||
|         final points = [ |  | ||||||
|             -Vector2.random(_rng), |             -Vector2.random(_rng), | ||||||
|             Vector2.random(_rng)..x *= -1, |             Vector2.random(_rng)..x *= -1, | ||||||
|             Vector2.random(_rng), |             Vector2.random(_rng), | ||||||
|             Vector2.random(_rng)..y *= -1, |             Vector2.random(_rng)..y *= -1, | ||||||
|         ]; |           ], | ||||||
|         hitbox = PolygonHitbox.relative(points, parentSize: shapeSize); |           parentSize: shapeSize, | ||||||
|     } |         ), | ||||||
|  |     }; | ||||||
|     return MyShapeComponent( |     return MyShapeComponent( | ||||||
|       hitbox: hitbox, |       hitbox: hitbox, | ||||||
|       position: position, |       position: position, | ||||||
|  | |||||||
| @ -369,18 +369,13 @@ enum _QuadTreeZone { | |||||||
|   const _QuadTreeZone(this.value); |   const _QuadTreeZone(this.value); | ||||||
|  |  | ||||||
|   factory _QuadTreeZone.fromIndex(int i) { |   factory _QuadTreeZone.fromIndex(int i) { | ||||||
|     switch (i) { |     return switch (i) { | ||||||
|       case 0: |       0 => _QuadTreeZone.topLeft, | ||||||
|         return _QuadTreeZone.topLeft; |       1 => _QuadTreeZone.topRight, | ||||||
|       case 1: |       2 => _QuadTreeZone.bottomLeft, | ||||||
|         return _QuadTreeZone.topRight; |       3 => _QuadTreeZone.bottomRight, | ||||||
|       case 2: |       _ => _QuadTreeZone.root, | ||||||
|         return _QuadTreeZone.bottomLeft; |     }; | ||||||
|       case 3: |  | ||||||
|         return _QuadTreeZone.bottomRight; |  | ||||||
|       default: |  | ||||||
|         return _QuadTreeZone.root; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   final int value; |   final int value; | ||||||
|  | |||||||
| @ -86,31 +86,23 @@ class ComponentTreeRoot extends Component { | |||||||
|             _blocked.contains(identityHashCode(parent))) { |             _blocked.contains(identityHashCode(parent))) { | ||||||
|           continue; |           continue; | ||||||
|         } |         } | ||||||
|         var status = LifecycleEventStatus.done; |  | ||||||
|         switch (event.kind) { |         final status = switch (event.kind) { | ||||||
|           case _LifecycleEventKind.add: |           _LifecycleEventKind.add => child.handleLifecycleEventAdd(parent), | ||||||
|             status = child.handleLifecycleEventAdd(parent); |           _LifecycleEventKind.remove => | ||||||
|             break; |             child.handleLifecycleEventRemove(parent), | ||||||
|           case _LifecycleEventKind.remove: |           _LifecycleEventKind.move => child.handleLifecycleEventMove(parent), | ||||||
|             status = child.handleLifecycleEventRemove(parent); |           _LifecycleEventKind.unknown => LifecycleEventStatus.done, | ||||||
|             break; |         }; | ||||||
|           case _LifecycleEventKind.move: |  | ||||||
|             status = child.handleLifecycleEventMove(parent); |  | ||||||
|             break; |  | ||||||
|           case _LifecycleEventKind.unknown: |  | ||||||
|             break; |  | ||||||
|         } |  | ||||||
|         switch (status) { |         switch (status) { | ||||||
|           case LifecycleEventStatus.done: |           case LifecycleEventStatus.done: | ||||||
|             _queue.removeCurrent(); |             _queue.removeCurrent(); | ||||||
|             repeatLoop = true; |             repeatLoop = true; | ||||||
|             break; |  | ||||||
|           case LifecycleEventStatus.block: |           case LifecycleEventStatus.block: | ||||||
|             _blocked.add(identityHashCode(child)); |             _blocked.add(identityHashCode(child)); | ||||||
|             _blocked.add(identityHashCode(parent)); |             _blocked.add(identityHashCode(parent)); | ||||||
|             break; |  | ||||||
|           default: |           default: | ||||||
|             break; |  | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|       _blocked.clear(); |       _blocked.clear(); | ||||||
|  | |||||||
| @ -250,14 +250,11 @@ class ParallaxLayer { | |||||||
|  |  | ||||||
|   void resize(Vector2 size) { |   void resize(Vector2 size) { | ||||||
|     double scale(LayerFill fill) { |     double scale(LayerFill fill) { | ||||||
|       switch (fill) { |       return switch (fill) { | ||||||
|         case LayerFill.height: |         LayerFill.height => parallaxRenderer.image.height / size.y, | ||||||
|           return parallaxRenderer.image.height / size.y; |         LayerFill.width => parallaxRenderer.image.width / size.x, | ||||||
|         case LayerFill.width: |         _ => _scale, | ||||||
|           return parallaxRenderer.image.width / size.x; |       }; | ||||||
|         default: |  | ||||||
|           return _scale; |  | ||||||
|       } |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     _scale = scale(parallaxRenderer.fill); |     _scale = scale(parallaxRenderer.fill); | ||||||
| @ -299,15 +296,11 @@ class ParallaxLayer { | |||||||
|     switch (parallaxRenderer.repeat) { |     switch (parallaxRenderer.repeat) { | ||||||
|       case ImageRepeat.repeat: |       case ImageRepeat.repeat: | ||||||
|         _scroll.setValues(_scroll.x % 1, _scroll.y % 1); |         _scroll.setValues(_scroll.x % 1, _scroll.y % 1); | ||||||
|         break; |  | ||||||
|       case ImageRepeat.repeatX: |       case ImageRepeat.repeatX: | ||||||
|         _scroll.setValues(_scroll.x % 1, _scroll.y); |         _scroll.setValues(_scroll.x % 1, _scroll.y); | ||||||
|         break; |  | ||||||
|       case ImageRepeat.repeatY: |       case ImageRepeat.repeatY: | ||||||
|         _scroll.setValues(_scroll.x, _scroll.y % 1); |         _scroll.setValues(_scroll.x, _scroll.y % 1); | ||||||
|         break; |  | ||||||
|       case ImageRepeat.noRepeat: |       case ImageRepeat.noRepeat: | ||||||
|         break; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     _paintArea = Rect.fromLTWH( |     _paintArea = Rect.fromLTWH( | ||||||
|  | |||||||
| @ -58,20 +58,7 @@ void main() { | |||||||
|       final pixels = Uint8List.fromList( |       final pixels = Uint8List.fromList( | ||||||
|         List<int>.generate( |         List<int>.generate( | ||||||
|           100 * 4, |           100 * 4, | ||||||
|           (index) { |           (index) => _colorBit(index, originalColor), | ||||||
|             switch (index % 4) { |  | ||||||
|               case 0: |  | ||||||
|                 return originalColor.red; |  | ||||||
|               case 1: |  | ||||||
|                 return originalColor.green; |  | ||||||
|               case 2: |  | ||||||
|                 return originalColor.blue; |  | ||||||
|               case 3: |  | ||||||
|                 return originalColor.alpha; |  | ||||||
|               default: |  | ||||||
|                 throw 'No 4 in switch % 4'; |  | ||||||
|             } |  | ||||||
|           }, |  | ||||||
|         ), |         ), | ||||||
|       ); |       ); | ||||||
|       final image = await ImageExtension.fromPixels(pixels, 10, 10); |       final image = await ImageExtension.fromPixels(pixels, 10, 10); | ||||||
| @ -85,20 +72,7 @@ void main() { | |||||||
|       final expectedDarkenPixels = Uint8List.fromList( |       final expectedDarkenPixels = Uint8List.fromList( | ||||||
|         List<int>.generate( |         List<int>.generate( | ||||||
|           100 * 4, |           100 * 4, | ||||||
|           (index) { |           (index) => _colorBit(index, darkenColor), | ||||||
|             switch (index % 4) { |  | ||||||
|               case 0: |  | ||||||
|                 return darkenColor.red; |  | ||||||
|               case 1: |  | ||||||
|                 return darkenColor.green; |  | ||||||
|               case 2: |  | ||||||
|                 return darkenColor.blue; |  | ||||||
|               case 3: |  | ||||||
|                 return darkenColor.alpha; |  | ||||||
|               default: |  | ||||||
|                 throw 'No 4 in switch % 4'; |  | ||||||
|             } |  | ||||||
|           }, |  | ||||||
|         ), |         ), | ||||||
|       ); |       ); | ||||||
|       expect(originalDarkenPixelsList, expectedDarkenPixels); |       expect(originalDarkenPixelsList, expectedDarkenPixels); | ||||||
| @ -109,20 +83,7 @@ void main() { | |||||||
|       final pixels = Uint8List.fromList( |       final pixels = Uint8List.fromList( | ||||||
|         List<int>.generate( |         List<int>.generate( | ||||||
|           100 * 4, |           100 * 4, | ||||||
|           (index) { |           (index) => _colorBit(index, originalColor), | ||||||
|             switch (index % 4) { |  | ||||||
|               case 0: |  | ||||||
|                 return originalColor.red; |  | ||||||
|               case 1: |  | ||||||
|                 return originalColor.green; |  | ||||||
|               case 2: |  | ||||||
|                 return originalColor.blue; |  | ||||||
|               case 3: |  | ||||||
|                 return originalColor.alpha; |  | ||||||
|               default: |  | ||||||
|                 throw 'No 4 in switch % 4'; |  | ||||||
|             } |  | ||||||
|           }, |  | ||||||
|         ), |         ), | ||||||
|       ); |       ); | ||||||
|       final image = await ImageExtension.fromPixels(pixels, 10, 10); |       final image = await ImageExtension.fromPixels(pixels, 10, 10); | ||||||
| @ -136,20 +97,7 @@ void main() { | |||||||
|       final expectedBrightenPixels = Uint8List.fromList( |       final expectedBrightenPixels = Uint8List.fromList( | ||||||
|         List<int>.generate( |         List<int>.generate( | ||||||
|           100 * 4, |           100 * 4, | ||||||
|           (index) { |           (index) => _colorBit(index, brightenColor), | ||||||
|             switch (index % 4) { |  | ||||||
|               case 0: |  | ||||||
|                 return brightenColor.red; |  | ||||||
|               case 1: |  | ||||||
|                 return brightenColor.green; |  | ||||||
|               case 2: |  | ||||||
|                 return brightenColor.blue; |  | ||||||
|               case 3: |  | ||||||
|                 return brightenColor.alpha; |  | ||||||
|               default: |  | ||||||
|                 throw 'No 4 in switch % 4'; |  | ||||||
|             } |  | ||||||
|           }, |  | ||||||
|         ), |         ), | ||||||
|       ); |       ); | ||||||
|       expect(originalBrightenPixelsList, expectedBrightenPixels); |       expect(originalBrightenPixelsList, expectedBrightenPixels); | ||||||
| @ -170,3 +118,13 @@ void main() { | |||||||
|     }); |     }); | ||||||
|   }); |   }); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | int _colorBit(int index, Color color) { | ||||||
|  |   return switch (index % 4) { | ||||||
|  |     0 => color.red, | ||||||
|  |     1 => color.green, | ||||||
|  |     2 => color.blue, | ||||||
|  |     3 => color.alpha, | ||||||
|  |     _ => throw UnimplementedError(), | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | |||||||
| @ -18,16 +18,12 @@ class Inverter extends BaseNode implements NodeInterface { | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   void _invertStatus() { |   void _invertStatus() { | ||||||
|     switch (child.status) { |     status = switch (child.status) { | ||||||
|       case NodeStatus.notStarted: |       NodeStatus.notStarted => NodeStatus.notStarted, | ||||||
|         status = NodeStatus.notStarted; |       NodeStatus.running => NodeStatus.running, | ||||||
|       case NodeStatus.running: |       NodeStatus.success => NodeStatus.failure, | ||||||
|         status = NodeStatus.running; |       NodeStatus.failure => NodeStatus.success, | ||||||
|       case NodeStatus.success: |     }; | ||||||
|         status = NodeStatus.failure; |  | ||||||
|       case NodeStatus.failure: |  | ||||||
|         status = NodeStatus.success; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
|  | |||||||
| @ -26,34 +26,25 @@ class BulletComponent extends SpriteAnimationComponent | |||||||
|   } |   } | ||||||
|  |  | ||||||
|   double _mapWidth() { |   double _mapWidth() { | ||||||
|     switch (weapon) { |     return switch (weapon) { | ||||||
|       case Weapon.bullet: |       Weapon.bullet => 10, | ||||||
|         return 10; |       Weapon.laser || Weapon.plasma => 5, | ||||||
|       case Weapon.laser: |     }; | ||||||
|       case Weapon.plasma: |  | ||||||
|         return 5; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   String _mapSpritePath() { |   String _mapSpritePath() { | ||||||
|     switch (weapon) { |     return switch (weapon) { | ||||||
|       case Weapon.bullet: |       Weapon.bullet => 'bullet.png', | ||||||
|         return 'bullet.png'; |       Weapon.laser => 'laser.png', | ||||||
|       case Weapon.laser: |       Weapon.plasma => 'plasma.png', | ||||||
|         return 'laser.png'; |     }; | ||||||
|       case Weapon.plasma: |  | ||||||
|         return 'plasma.png'; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   double _mapSpriteWidth() { |   double _mapSpriteWidth() { | ||||||
|     switch (weapon) { |     return switch (weapon) { | ||||||
|       case Weapon.bullet: |       Weapon.bullet => 8, | ||||||
|         return 8; |       Weapon.laser || Weapon.plasma => 4, | ||||||
|       case Weapon.laser: |     }; | ||||||
|       case Weapon.plasma: |  | ||||||
|         return 4; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
|  | |||||||
| @ -6,25 +6,19 @@ class Inventory extends StatelessWidget { | |||||||
|   const Inventory({super.key}); |   const Inventory({super.key}); | ||||||
|  |  | ||||||
|   Color _mapWeaponColor(Weapon weapon) { |   Color _mapWeaponColor(Weapon weapon) { | ||||||
|     switch (weapon) { |     return switch (weapon) { | ||||||
|       case Weapon.bullet: |       Weapon.bullet => Colors.orange, | ||||||
|         return Colors.orange; |       Weapon.laser => Colors.red, | ||||||
|       case Weapon.laser: |       Weapon.plasma => Colors.blue, | ||||||
|         return Colors.red; |     }; | ||||||
|       case Weapon.plasma: |  | ||||||
|         return Colors.blue; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   String _mapWeaponName(Weapon weapon) { |   String _mapWeaponName(Weapon weapon) { | ||||||
|     switch (weapon) { |     return switch (weapon) { | ||||||
|       case Weapon.bullet: |       Weapon.bullet => 'Kinetic', | ||||||
|         return 'Kinetic'; |       Weapon.laser => 'Laser', | ||||||
|       case Weapon.laser: |       Weapon.plasma => 'Plasma', | ||||||
|         return 'Laser'; |     }; | ||||||
|       case Weapon.plasma: |  | ||||||
|         return 'Plasma'; |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
|  | |||||||
| @ -135,16 +135,12 @@ class BodyComponent<T extends Forge2DGame> extends Component | |||||||
|     switch (fixture.type) { |     switch (fixture.type) { | ||||||
|       case ShapeType.chain: |       case ShapeType.chain: | ||||||
|         _renderChain(canvas, fixture); |         _renderChain(canvas, fixture); | ||||||
|         break; |  | ||||||
|       case ShapeType.circle: |       case ShapeType.circle: | ||||||
|         _renderCircle(canvas, fixture); |         _renderCircle(canvas, fixture); | ||||||
|         break; |  | ||||||
|       case ShapeType.edge: |       case ShapeType.edge: | ||||||
|         _renderEdge(canvas, fixture); |         _renderEdge(canvas, fixture); | ||||||
|         break; |  | ||||||
|       case ShapeType.polygon: |       case ShapeType.polygon: | ||||||
|         _renderPolygon(canvas, fixture); |         _renderPolygon(canvas, fixture); | ||||||
|         break; |  | ||||||
|     } |     } | ||||||
|     canvas.restore(); |     canvas.restore(); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -95,26 +95,19 @@ class WorkerOvermind extends Component | |||||||
|           pathFinderData: game.pathFinderData, |           pathFinderData: game.pathFinderData, | ||||||
|         ); |         ); | ||||||
|  |  | ||||||
|         final List<List<IntVector2>> paths; |         final paths = switch (isolateHud.computeType) { | ||||||
|         switch (isolateHud.computeType) { |           ComputeType.isolate => await isolateCompute( | ||||||
|           case ComputeType.isolate: |  | ||||||
|             paths = await isolateCompute( |  | ||||||
|               _calculateWork, |               _calculateWork, | ||||||
|               calculateWorkData, |               calculateWorkData, | ||||||
|             ); |             ), | ||||||
|             break; |           ComputeType.synchronous => _calculateWork( | ||||||
|           case ComputeType.synchronous: |  | ||||||
|             paths = _calculateWork( |  | ||||||
|               calculateWorkData, |               calculateWorkData, | ||||||
|             ); |             ), | ||||||
|             break; |           ComputeType.compute => await compute( | ||||||
|           case ComputeType.compute: |  | ||||||
|             paths = await compute( |  | ||||||
|               _calculateWork, |               _calculateWork, | ||||||
|               calculateWorkData, |               calculateWorkData, | ||||||
|             ); |             ), | ||||||
|             break; |         }; | ||||||
|         } |  | ||||||
|  |  | ||||||
|         for (var i = 0; i < paths.length; i++) { |         for (var i = 0; i < paths.length; i++) { | ||||||
|           idleWorkers[i].issueWork( |           idleWorkers[i].issueWork( | ||||||
|  | |||||||
| @ -205,7 +205,6 @@ class _Cmd { | |||||||
|               'which is not a boolean', |               'which is not a boolean', | ||||||
|             ); |             ); | ||||||
|           } |           } | ||||||
|           break; |  | ||||||
|         case _Type.integer: |         case _Type.integer: | ||||||
|           final value = int.tryParse(strValue); |           final value = int.tryParse(strValue); | ||||||
|           if (value == null) { |           if (value == null) { | ||||||
| @ -215,7 +214,6 @@ class _Cmd { | |||||||
|             ); |             ); | ||||||
|           } |           } | ||||||
|           _arguments[i] = value; |           _arguments[i] = value; | ||||||
|           break; |  | ||||||
|         case _Type.double: |         case _Type.double: | ||||||
|           final value = double.tryParse(strValue); |           final value = double.tryParse(strValue); | ||||||
|           if (value == null) { |           if (value == null) { | ||||||
| @ -225,7 +223,6 @@ class _Cmd { | |||||||
|             ); |             ); | ||||||
|           } |           } | ||||||
|           _arguments[i] = value; |           _arguments[i] = value; | ||||||
|           break; |  | ||||||
|         case _Type.numeric: |         case _Type.numeric: | ||||||
|           final value = num.tryParse(strValue); |           final value = num.tryParse(strValue); | ||||||
|           if (value == null) { |           if (value == null) { | ||||||
| @ -235,10 +232,8 @@ class _Cmd { | |||||||
|             ); |             ); | ||||||
|           } |           } | ||||||
|           _arguments[i] = value; |           _arguments[i] = value; | ||||||
|           break; |  | ||||||
|         case _Type.string: |         case _Type.string: | ||||||
|           _arguments[i] = strValue; |           _arguments[i] = strValue; | ||||||
|           break; |  | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     return _arguments; |     return _arguments; | ||||||
|  | |||||||
| @ -99,16 +99,12 @@ class FunctionStorage { | |||||||
|     return (List<FunctionArgument> args, YarnProject yarn, ErrorFn errorFn) { |     return (List<FunctionArgument> args, YarnProject yarn, ErrorFn errorFn) { | ||||||
|       final arguments = function.checkAndUnpackArguments(args, errorFn); |       final arguments = function.checkAndUnpackArguments(args, errorFn); | ||||||
|       function.useYarnProject(yarn); |       function.useYarnProject(yarn); | ||||||
|       switch (function.returnType) { |       return switch (function.returnType) { | ||||||
|         case ExpressionType.boolean: |         ExpressionType.boolean => BooleanUserDefinedFn(function, arguments), | ||||||
|           return BooleanUserDefinedFn(function, arguments); |         ExpressionType.numeric => NumericUserDefinedFn(function, arguments), | ||||||
|         case ExpressionType.numeric: |         ExpressionType.string => StringUserDefinedFn(function, arguments), | ||||||
|           return NumericUserDefinedFn(function, arguments); |         _ => throw AssertionError('Bad return type'), // coverage:ignore-line | ||||||
|         case ExpressionType.string: |       }; | ||||||
|           return StringUserDefinedFn(function, arguments); |  | ||||||
|         default: |  | ||||||
|           throw AssertionError('Bad return type'); // coverage:ignore-line |  | ||||||
|       } |  | ||||||
|     }; |     }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | |||||||
| @ -45,30 +45,18 @@ class FlameMarkdown { | |||||||
|         .map(_castCheck<InlineTextNode>) |         .map(_castCheck<InlineTextNode>) | ||||||
|         .toList(); |         .toList(); | ||||||
|     final child = _groupInlineChildren(children); |     final child = _groupInlineChildren(children); | ||||||
|     switch (element.tag) { |     return switch (element.tag) { | ||||||
|       case 'h1': |       'h1' => HeaderNode(child, level: 1), | ||||||
|         return HeaderNode(child, level: 1); |       'h2' => HeaderNode(child, level: 2), | ||||||
|       case 'h2': |       'h3' => HeaderNode(child, level: 3), | ||||||
|         return HeaderNode(child, level: 2); |       'h4' => HeaderNode(child, level: 4), | ||||||
|       case 'h3': |       'h5' => HeaderNode(child, level: 5), | ||||||
|         return HeaderNode(child, level: 3); |       'h6' => HeaderNode(child, level: 6), | ||||||
|       case 'h4': |       'p' => ParagraphNode(child), | ||||||
|         return HeaderNode(child, level: 4); |       'em' || 'i' => ItalicTextNode(child), | ||||||
|       case 'h5': |       'strong' || 'b' => BoldTextNode(child), | ||||||
|         return HeaderNode(child, level: 5); |       _ => throw Exception('Unknown element tag: ${element.tag}'), | ||||||
|       case 'h6': |     } as TextNode; | ||||||
|         return HeaderNode(child, level: 6); |  | ||||||
|       case 'p': |  | ||||||
|         return ParagraphNode(child); |  | ||||||
|       case 'em': |  | ||||||
|       case 'i': |  | ||||||
|         return ItalicTextNode(child); |  | ||||||
|       case 'strong': |  | ||||||
|       case 'b': |  | ||||||
|         return BoldTextNode(child); |  | ||||||
|       default: |  | ||||||
|         throw Exception('Unknown element tag: ${element.tag}'); |  | ||||||
|     } |  | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   static PlainTextNode _convertText(Text text) { |   static PlainTextNode _convertText(Text text) { | ||||||
|  | |||||||
| @ -112,33 +112,26 @@ class RiveArtboardRenderer { | |||||||
|       case BoxFit.fill: |       case BoxFit.fill: | ||||||
|         scaleX = size.width / contentWidth; |         scaleX = size.width / contentWidth; | ||||||
|         scaleY = size.height / contentHeight; |         scaleY = size.height / contentHeight; | ||||||
|         break; |  | ||||||
|       case BoxFit.contain: |       case BoxFit.contain: | ||||||
|         final minScale = |         final minScale = | ||||||
|             min(size.width / contentWidth, size.height / contentHeight); |             min(size.width / contentWidth, size.height / contentHeight); | ||||||
|         scaleX = scaleY = minScale; |         scaleX = scaleY = minScale; | ||||||
|         break; |  | ||||||
|       case BoxFit.cover: |       case BoxFit.cover: | ||||||
|         final maxScale = |         final maxScale = | ||||||
|             max(size.width / contentWidth, size.height / contentHeight); |             max(size.width / contentWidth, size.height / contentHeight); | ||||||
|         scaleX = scaleY = maxScale; |         scaleX = scaleY = maxScale; | ||||||
|         break; |  | ||||||
|       case BoxFit.fitHeight: |       case BoxFit.fitHeight: | ||||||
|         final minScale = size.height / contentHeight; |         final minScale = size.height / contentHeight; | ||||||
|         scaleX = scaleY = minScale; |         scaleX = scaleY = minScale; | ||||||
|         break; |  | ||||||
|       case BoxFit.fitWidth: |       case BoxFit.fitWidth: | ||||||
|         final minScale = size.width / contentWidth; |         final minScale = size.width / contentWidth; | ||||||
|         scaleX = scaleY = minScale; |         scaleX = scaleY = minScale; | ||||||
|         break; |  | ||||||
|       case BoxFit.none: |       case BoxFit.none: | ||||||
|         scaleX = scaleY = 1.0; |         scaleX = scaleY = 1.0; | ||||||
|         break; |  | ||||||
|       case BoxFit.scaleDown: |       case BoxFit.scaleDown: | ||||||
|         final minScale = |         final minScale = | ||||||
|             min(size.width / contentWidth, size.height / contentHeight); |             min(size.width / contentWidth, size.height / contentHeight); | ||||||
|         scaleX = scaleY = minScale < 1.0 ? minScale : 1.0; |         scaleX = scaleY = minScale < 1.0 ? minScale : 1.0; | ||||||
|         break; |  | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     Mat2D.setIdentity(_transform); |     Mat2D.setIdentity(_transform); | ||||||
|  | |||||||
| @ -71,9 +71,8 @@ abstract class FlameTileLayer extends RenderableLayer<TileLayer> { | |||||||
|       throw StateError('Map orientation should be present'); |       throw StateError('Map orientation should be present'); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     switch (mapOrientation) { |     return switch (mapOrientation) { | ||||||
|       case MapOrientation.isometric: |       MapOrientation.isometric => IsometricTileLayer( | ||||||
|         return IsometricTileLayer( |  | ||||||
|           layer: layer, |           layer: layer, | ||||||
|           parent: parent, |           parent: parent, | ||||||
|           map: map, |           map: map, | ||||||
| @ -83,9 +82,8 @@ abstract class FlameTileLayer extends RenderableLayer<TileLayer> { | |||||||
|           ignoreFlip: ignoreFlip, |           ignoreFlip: ignoreFlip, | ||||||
|           filterQuality: filterQuality, |           filterQuality: filterQuality, | ||||||
|           layerPaintFactory: layerPaintFactory, |           layerPaintFactory: layerPaintFactory, | ||||||
|         ); |         ), | ||||||
|       case MapOrientation.staggered: |       MapOrientation.staggered => StaggeredTileLayer( | ||||||
|         return StaggeredTileLayer( |  | ||||||
|           layer: layer, |           layer: layer, | ||||||
|           parent: parent, |           parent: parent, | ||||||
|           map: map, |           map: map, | ||||||
| @ -95,9 +93,8 @@ abstract class FlameTileLayer extends RenderableLayer<TileLayer> { | |||||||
|           ignoreFlip: ignoreFlip, |           ignoreFlip: ignoreFlip, | ||||||
|           filterQuality: filterQuality, |           filterQuality: filterQuality, | ||||||
|           layerPaintFactory: layerPaintFactory, |           layerPaintFactory: layerPaintFactory, | ||||||
|         ); |         ), | ||||||
|       case MapOrientation.hexagonal: |       MapOrientation.hexagonal => HexagonalTileLayer( | ||||||
|         return HexagonalTileLayer( |  | ||||||
|           layer: layer, |           layer: layer, | ||||||
|           parent: parent, |           parent: parent, | ||||||
|           map: map, |           map: map, | ||||||
| @ -107,9 +104,8 @@ abstract class FlameTileLayer extends RenderableLayer<TileLayer> { | |||||||
|           ignoreFlip: ignoreFlip, |           ignoreFlip: ignoreFlip, | ||||||
|           filterQuality: filterQuality, |           filterQuality: filterQuality, | ||||||
|           layerPaintFactory: layerPaintFactory, |           layerPaintFactory: layerPaintFactory, | ||||||
|         ); |         ), | ||||||
|       case MapOrientation.orthogonal: |       MapOrientation.orthogonal => OrthogonalTileLayer( | ||||||
|         return OrthogonalTileLayer( |  | ||||||
|           layer: layer, |           layer: layer, | ||||||
|           parent: parent, |           parent: parent, | ||||||
|           map: map, |           map: map, | ||||||
| @ -119,8 +115,8 @@ abstract class FlameTileLayer extends RenderableLayer<TileLayer> { | |||||||
|           ignoreFlip: ignoreFlip, |           ignoreFlip: ignoreFlip, | ||||||
|           filterQuality: filterQuality, |           filterQuality: filterQuality, | ||||||
|           layerPaintFactory: layerPaintFactory, |           layerPaintFactory: layerPaintFactory, | ||||||
|         ); |         ), | ||||||
|     } |     }; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|   @override |   @override | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Lukas Klingsbo
					Lukas Klingsbo