45 lines
1.1 KiB
Dart
45 lines
1.1 KiB
Dart
import 'package:angular/angular.dart';
|
|
import 'package:angular_components/angular_components.dart';
|
|
import 'package:rules_of_living/service/engine_service.dart';
|
|
import 'package:rules_of_living/src/Engine.dart';
|
|
|
|
@Component(
|
|
selector: 'sim-controls',
|
|
templateUrl: "controls_component.html",
|
|
directives: [coreDirectives, MaterialButtonComponent, MaterialIconComponent, MaterialSliderComponent, MaterialTooltipDirective],
|
|
providers: [],
|
|
styleUrls: const ["controls_component.css"],
|
|
)
|
|
class ControlsComponent {
|
|
final EngineService engineService;
|
|
int simSpeed = 5;
|
|
String get speedSliderTooltip => "Simulation Speed: $simSpeed";
|
|
|
|
Engine get engine => engineService.engine;
|
|
ControlsComponent(this.engineService);
|
|
|
|
void onStartClicked() {
|
|
engine.running = !engine.running;
|
|
}
|
|
|
|
void onStepClicked() {
|
|
engine.step();
|
|
}
|
|
|
|
void onResetClicked() {
|
|
engine.reset();
|
|
}
|
|
|
|
void onRandomClicked() {
|
|
engine.running = false;
|
|
engine.addPattern();
|
|
}
|
|
|
|
void onEdgesClicked() {
|
|
engine.toggleEdgeRendering();
|
|
}
|
|
|
|
void onClearClicked() {
|
|
engine.clear();
|
|
}
|
|
}
|