Advertisement
Guest User

Untitled

a guest
Apr 19th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. class AddToShoppingCartComponent implements Component {}
  2. class RemoveFromShoppingCartComponent implements Component {}
  3. class SwitchCurrencyComponent implements UniqueComponent {}
  4.  
  5. class AddItemToShoppingCartSystem extends ReactiveSystem {
  6. @override
  7. GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
  8. @override
  9. EntityMatcher get matcher => EntityMatcher(all: [AddToShoppingCartComponent]);
  10.  
  11. @override
  12. executeWith(List<Entity> entities) {
  13. for (var e in entities) {
  14. var newCount = (e.get<CountComponent>()?.value ?? 0) + 1;
  15. e += CountComponent(newCount);
  16. }
  17. }
  18. }
  19.  
  20. class RemoveItemFromShoppingCartSystem extends ReactiveSystem {
  21. @override
  22. GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
  23. @override
  24. EntityMatcher get matcher => EntityMatcher(all: [RemoveFromShoppingCartComponent]);
  25.  
  26. @override
  27. executeWith(List<Entity> entities) {
  28. for (var e in entities) {
  29. final newCount = (e.get<CountComponent>()?.value ?? 0) - 1;
  30. if (newCount > 0) {
  31. e += CountComponent(newCount);
  32. } else {
  33. e -= CountComponent;
  34. }
  35. }
  36. }
  37. }
  38.  
  39. class SwitchCurrencySystem extends ReactiveSystem {
  40. @override
  41. GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
  42. @override
  43. EntityMatcher get matcher => EntityMatcher(all: [SwitchCurrencyComponent]);
  44.  
  45. @override
  46. executeWith(List<Entity> entities) {
  47. final currency = entityManager.getUnique<SelectedCurrencyComponent>().value;
  48. if ( currency == null) return;
  49. if (currency == Currency.usd) {
  50. entityManager.setUnique(SelectedCurrencyComponent(Currency.euro));
  51. } else {
  52. entityManager.setUnique(SelectedCurrencyComponent(Currency.usd));
  53. }
  54. }
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement