Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.16 KB | None | 0 0
  1. class ComputeTotalSumSystem extends ReactiveSystem {
  2. @override
  3. GroupChangeEvent get event => GroupChangeEvent.any;
  4.  
  5. @override
  6. executeWith(List<Entity> entities) {
  7. final sum = entityManager.group(all: [CountComponent, AmountInSelectedCurrencyComponent]).entities.fold(0.0, (sum, e) => sum
  8. + (e.get<AmountInSelectedCurrencyComponent>()?.value ?? 0.0)
  9. * (e.get<CountComponent>()?.value ?? 0)
  10. );
  11. entityManager.setUnique(TotalAmountComponent(sum));
  12. }
  13.  
  14. @override
  15. EntityMatcher get matcher => EntityMatcher(all:[CountComponent, AmountInSelectedCurrencyComponent]);
  16.  
  17. }
  18.  
  19. class ComputeTotalSumLabelSystem extends ReactiveSystem {
  20. @override
  21. GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
  22.  
  23. @override
  24. executeWith(List<Entity> entities) {
  25. final currency = entityManager.getUnique<SelectedCurrencyComponent>()?.value;
  26. if (currency == null) return;
  27. final sum = entityManager.getUnique<TotalAmountComponent>()?.value;
  28. if (sum == null) return;
  29. entityManager.setUnique(TotalAmountLabelComponent(priceLabel(currency, sum)));
  30. }
  31.  
  32. @override
  33. EntityMatcher get matcher => EntityMatcher(all:[TotalAmountComponent]);
  34.  
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement