Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ComputeTotalSumSystem extends ReactiveSystem {
- @override
- GroupChangeEvent get event => GroupChangeEvent.any;
- @override
- executeWith(List<Entity> entities) {
- final sum = entityManager.group(all: [CountComponent, AmountInSelectedCurrencyComponent]).entities.fold(0.0, (sum, e) => sum
- + (e.get<AmountInSelectedCurrencyComponent>()?.value ?? 0.0)
- * (e.get<CountComponent>()?.value ?? 0)
- );
- entityManager.setUnique(TotalAmountComponent(sum));
- }
- @override
- EntityMatcher get matcher => EntityMatcher(all:[CountComponent, AmountInSelectedCurrencyComponent]);
- }
- class ComputeTotalSumLabelSystem extends ReactiveSystem {
- @override
- GroupChangeEvent get event => GroupChangeEvent.addedOrUpdated;
- @override
- executeWith(List<Entity> entities) {
- final currency = entityManager.getUnique<SelectedCurrencyComponent>()?.value;
- if (currency == null) return;
- final sum = entityManager.getUnique<TotalAmountComponent>()?.value;
- if (sum == null) return;
- entityManager.setUnique(TotalAmountLabelComponent(priceLabel(currency, sum)));
- }
- @override
- EntityMatcher get matcher => EntityMatcher(all:[TotalAmountComponent]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement