Fixed bug #2 by adding check if printer is printing already before refreshing job list
This commit is contained in:
parent
72a25238d3
commit
7173286189
3 changed files with 19 additions and 10 deletions
|
|
@ -5,7 +5,7 @@ signal job_generated(job: Node)
|
||||||
signal job_interact
|
signal job_interact
|
||||||
signal printer_bought(printer: Node)
|
signal printer_bought(printer: Node)
|
||||||
@warning_ignore("unused_signal")
|
@warning_ignore("unused_signal")
|
||||||
signal print_started
|
signal refresh_printer_dropdown
|
||||||
|
|
||||||
# - Variables - Code managed
|
# - Variables - Code managed
|
||||||
var job_spawn_timer: Timer
|
var job_spawn_timer: Timer
|
||||||
|
|
|
||||||
|
|
@ -39,7 +39,7 @@ func calculate_time() -> String:
|
||||||
|
|
||||||
func _on_accept_job_pressed() -> void:
|
func _on_accept_job_pressed() -> void:
|
||||||
job_accepted.emit(self)
|
job_accepted.emit(self)
|
||||||
GameData.print_started.emit()
|
GameData.refresh_printer_dropdown.emit()
|
||||||
|
|
||||||
func _on_skip_job_pressed() -> void:
|
func _on_skip_job_pressed() -> void:
|
||||||
queue_free()
|
queue_free()
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@ var is_printing: bool = false
|
||||||
var time_left: float
|
var time_left: float
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
GameData.print_started.connect(_on_print_started)
|
GameData.refresh_printer_dropdown.connect(_on_refresh_printer_dropdown)
|
||||||
|
|
||||||
func initialize_printer(data: PrinterData) -> void:
|
func initialize_printer(data: PrinterData) -> void:
|
||||||
printer_data = data
|
printer_data = data
|
||||||
|
|
@ -34,8 +34,10 @@ func _process(delta) -> void:
|
||||||
progress_bar.visible = true
|
progress_bar.visible = true
|
||||||
time_left_label.visible = true
|
time_left_label.visible = true
|
||||||
set_status()
|
set_status()
|
||||||
|
|
||||||
var total_time = selected_job.job_time / printer_data.printer_speed
|
var total_time = selected_job.job_time / printer_data.printer_speed
|
||||||
var progress = (total_time - time_left) / total_time
|
var progress = (total_time - time_left) / total_time
|
||||||
|
|
||||||
time_left -= delta
|
time_left -= delta
|
||||||
progress_bar.value = progress
|
progress_bar.value = progress
|
||||||
time_left_label.text = 'Time left: %s' % calculate_time_left(time_left)
|
time_left_label.text = 'Time left: %s' % calculate_time_left(time_left)
|
||||||
|
|
@ -53,7 +55,9 @@ func reset_status() -> void:
|
||||||
time_left_label.visible = false
|
time_left_label.visible = false
|
||||||
progress_bar.visible = false
|
progress_bar.visible = false
|
||||||
progress_bar.value = 0
|
progress_bar.value = 0
|
||||||
|
time_left = 0
|
||||||
select_job.disabled = false
|
select_job.disabled = false
|
||||||
|
start_button.disabled = false
|
||||||
|
|
||||||
func set_status() -> void:
|
func set_status() -> void:
|
||||||
if is_printing:
|
if is_printing:
|
||||||
|
|
@ -72,8 +76,10 @@ func calculate_time_left(time) -> String:
|
||||||
else:
|
else:
|
||||||
return '%.2f s' % time
|
return '%.2f s' % time
|
||||||
|
|
||||||
func _on_print_started() -> void:
|
func _on_refresh_printer_dropdown() -> void:
|
||||||
print("Refresh dropdown")
|
if is_printing:
|
||||||
|
return
|
||||||
|
|
||||||
_on_select_job_pressed()
|
_on_select_job_pressed()
|
||||||
|
|
||||||
func _on_sell_button_pressed() -> void:
|
func _on_sell_button_pressed() -> void:
|
||||||
|
|
@ -101,9 +107,12 @@ func _on_select_job_item_selected(index: int) -> void:
|
||||||
selected_job_index = index
|
selected_job_index = index
|
||||||
|
|
||||||
func _on_start_button_pressed() -> void:
|
func _on_start_button_pressed() -> void:
|
||||||
if not select_job.get_item_text(0) == "No jobs accepted":
|
if select_job.get_item_text(0) == "No jobs accepted":
|
||||||
|
return
|
||||||
|
|
||||||
time_left = selected_job.job_time / printer_data.printer_speed
|
time_left = selected_job.job_time / printer_data.printer_speed
|
||||||
progress_bar.value = 0
|
progress_bar.value = 0
|
||||||
|
start_button.disabled = true
|
||||||
is_printing = true
|
is_printing = true
|
||||||
|
|
||||||
if PlayerData.jobs.size() == 1:
|
if PlayerData.jobs.size() == 1:
|
||||||
|
|
@ -111,4 +120,4 @@ func _on_start_button_pressed() -> void:
|
||||||
else:
|
else:
|
||||||
PlayerData.jobs.remove_at(selected_job_index)
|
PlayerData.jobs.remove_at(selected_job_index)
|
||||||
|
|
||||||
GameData.print_started.emit()
|
GameData.refresh_printer_dropdown.emit()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue