Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class AddToShoppingCartComponent implements Component {}
- class RemoveFromShoppingCartComponent implements Component {}
- class SwitchCurrencyComponent implements UniqueComponent {}
- class AddItemToShoppingCartSystem extends ReactiveSystem {
- @override
- GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
- @override
- EntityMatcher get matcher => EntityMatcher(all: [AddToShoppingCartComponent]);
- @override
- executeWith(List<Entity> entities) {
- for (var e in entities) {
- var newCount = (e.get<CountComponent>()?.value ?? 0) + 1;
- e += CountComponent(newCount);
- }
- }
- }
- class RemoveItemFromShoppingCartSystem extends ReactiveSystem {
- @override
- GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
- @override
- EntityMatcher get matcher => EntityMatcher(all: [RemoveFromShoppingCartComponent]);
- @override
- executeWith(List<Entity> entities) {
- for (var e in entities) {
- final newCount = (e.get<CountComponent>()?.value ?? 0) - 1;
- if (newCount > 0) {
- e += CountComponent(newCount);
- } else {
- e -= CountComponent;
- }
- }
- }
- }
- class SwitchCurrencySystem extends ReactiveSystem {
- @override
- GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
- @override
- EntityMatcher get matcher => EntityMatcher(all: [SwitchCurrencyComponent]);
- @override
- executeWith(List<Entity> entities) {
- final currency = entityManager.getUnique<SelectedCurrencyComponent>().value;
- if ( currency == null) return;
- if (currency == Currency.usd) {
- entityManager.setUnique(SelectedCurrencyComponent(Currency.euro));
- } else {
- entityManager.setUnique(SelectedCurrencyComponent(Currency.usd));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement