lap => 0,
laptime => 0,
avg_lap => 0,
+ state => 'greenflag',
car_img => $args->{car_img},
id => $args->{id},
order => $args->{id},
return if $self->{in_pit_lane};
$self->{in_pit_lane} = 1;
- $self->gui->enter_pit_lane($self->{order});
+ $self->print_state;
}
sub leave_pit_lane {
return if !$self->{in_pit_lane};
$self->{in_pit_lane} = 0;
- $self->gui->leave_pit_lane($self->{order});
+ $self->print_state;
}
sub set_order {
$self->gui->set_car_id($self->{order}, $self->{id} + 1);
$self->gui->set_distance($self->{order},
$self->{time_diff}, $self->{lap_diff});
+ $self->gui->set_state($self->{order}, $self->{state});
if ($self->{in_pit_lane}) {
$self->gui->enter_pit_lane;
}
}
+sub print_state {
+ my ($self) = @_;
+
+ if ($self->{in_pit_lane}) {
+ $self->{state} = 'pit';
+ } elsif ($self->{running}) {
+ $self->{state} = 'go';
+ } elsif ($self->{finished}) {
+ $self->{state} = 'finished';
+ } elsif ($self->{early_start}) {
+ $self->{state} = 'disqualified';
+ } else {
+ $self->{state} = 'greenflag';
+ }
+
+ $self->gui->set_state($self->{order}, $self->{state});
+}
+
sub reset {
my ($self) = @_;