This commit is contained in:
Renan Araujo
2018-11-17 19:44:21 -02:00
parent e1d2cf2238
commit 7541e19e33

View File

@ -3,23 +3,23 @@ import 'dart:ui';
import 'package:flame/components/component.dart';
import 'package:flame/components/resizable.dart';
import 'package:flame/game.dart';
import 'package:ordered_set/comparing.dart';
import 'package:ordered_set/ordered_set.dart';
typedef IterateOverComponents = void Function(Component component);
abstract class ComposedComponent extends Component {
/// A component that turns lets your component be composed others
/// It resembles [BaseGame]. It has an [components] property and an [add] method
abstract class ComposedComponent implements Component {
OrderedSet<Component> components = new OrderedSet(Comparing.on((c) => c.priority()));
@override
render(Canvas canvas) {
canvas.save();
components.forEach((comp) => renderComponent(canvas, comp));
components.forEach((comp) => _renderComponent(canvas, comp));
canvas.restore();
}
void renderComponent(Canvas canvas, Component c) {
void _renderComponent(Canvas canvas, Component c) {
c.render(canvas);
canvas.restore();
canvas.save();
@ -43,17 +43,4 @@ abstract class ComposedComponent extends Component {
}
}
void iterateOverComponents ( IterateOverComponents iterateOverComponentsCallback ){
components.forEach(iterateOverComponentsCallback);
}
@override
void resize(Size size) {
if(this is Resizable){
Resizable thisResizable = this as Resizable;
thisResizable.size = size;
components.forEach((c) => c.resize(size));
}
}
}