44 lines
1.6 KiB
GDScript
44 lines
1.6 KiB
GDScript
extends PanelContainer
|
|
|
|
signal job_accepted
|
|
|
|
var job_data: JobData
|
|
var job_time: String
|
|
var job_material: String
|
|
@onready var job_name: Label = $MarginContainer/VBoxContainer/HBoxContainer2/PartName
|
|
@onready var job_amount: Label = $MarginContainer/VBoxContainer/HBoxContainer3/PartAmount
|
|
@onready var job_reward: Label = $MarginContainer/VBoxContainer/HBoxContainer/RewardLabel
|
|
@onready var job_experience: Label = $MarginContainer/VBoxContainer/HBoxContainer3/PartExperience
|
|
@onready var job_time_label: Label = $MarginContainer/VBoxContainer/HBoxContainer/TimeLabel
|
|
@onready var job_material_label: Label = $MarginContainer/VBoxContainer/HBoxContainer2/PartMaterial
|
|
|
|
|
|
func initialize_job(data: JobData) -> void:
|
|
job_data = data
|
|
job_material = 'PLA'
|
|
job_time = calculate_time()
|
|
job_name.text = job_data.job_name
|
|
job_amount.text = 'Amount: %d pcs' % job_data.job_amount
|
|
job_reward.text = 'Reward: %.2f €' % job_data.job_reward
|
|
job_experience.text = 'Experience: %.0f xp' % job_data.job_experience
|
|
job_time_label.text = 'Time: %s' % job_time
|
|
job_material_label.text = '| %s' % job_material
|
|
|
|
func calculate_time() -> String:
|
|
var print_time: float = sqrt(job_data.job_experience + job_data.job_reward) * job_data.job_amount
|
|
var round_time: float = round(print_time * 100) / 100
|
|
var minutes: int = 0
|
|
|
|
if round_time >= 60:
|
|
while round_time >= 60:
|
|
minutes += 1
|
|
round_time -= 60
|
|
return '%d m %.2f s' % [minutes, round_time]
|
|
else:
|
|
return '%.2f s' % round_time
|
|
|
|
func _on_accept_job_pressed() -> void:
|
|
job_accepted.emit(self)
|
|
|
|
func _on_skip_job_pressed() -> void:
|
|
queue_free()
|