Jobs now go to PlayerData array and are listed in printer dropdown
This commit is contained in:
parent
882f784b42
commit
e4b1a2cee2
4 changed files with 75 additions and 17 deletions
|
|
@ -15,6 +15,10 @@ extends Node
|
|||
level = value
|
||||
level_changed.emit(level)
|
||||
|
||||
@export var sell_multiplier: float = 0.5
|
||||
|
||||
var jobs: Array[JobData]
|
||||
|
||||
signal xp_changed(new_xp)
|
||||
signal money_changed(new_money)
|
||||
signal level_changed(new_level)
|
||||
|
|
|
|||
40
printer.gd
40
printer.gd
|
|
@ -1,9 +1,45 @@
|
|||
extends PanelContainer
|
||||
|
||||
@onready var printer_name_label: Label = $MarginContainer/MainArea/TopInfo/PrinterLabel
|
||||
@onready var printer_model_label: Label = $MarginContainer/MainArea/PrinterModelLabel
|
||||
@onready var progress_bar: ProgressBar = $MarginContainer/MainArea/PrintInfo/ProgressBar
|
||||
@onready var select_job: OptionButton = $MarginContainer/MainArea/SelectJob
|
||||
|
||||
var printer_data: PrinterData
|
||||
@onready var model: Label = $MarginContainer/VBoxContainer/HBoxContainer/Model
|
||||
var selected_job: JobData
|
||||
|
||||
func initialize_printer(data: PrinterData) -> void:
|
||||
printer_data = data
|
||||
#print("Creating bought printer: " + printer_data.printer_manufacturer)
|
||||
model.text = printer_data.printer_manufacturer + printer_data.printer_type
|
||||
printer_name_label.text = printer_data.printer_manufacturer
|
||||
printer_model_label.text = printer_data.printer_type
|
||||
progress_bar.value = 0
|
||||
_on_select_job_pressed()
|
||||
|
||||
func _on_sell_button_pressed() -> void:
|
||||
PlayerData.give_money.emit(printer_data.printer_price * PlayerData.sell_multiplier)
|
||||
queue_free()
|
||||
|
||||
func _on_select_job_pressed() -> void:
|
||||
select_job.clear()
|
||||
|
||||
if PlayerData.jobs.is_empty():
|
||||
select_job.add_item("No jobs accepted")
|
||||
else:
|
||||
for job in PlayerData.jobs:
|
||||
var item_text = '%s (XP: %d | %d €)' % [job.job_name, job.job_experience, job.job_reward]
|
||||
select_job.add_item(item_text)
|
||||
|
||||
var current_index = select_job.item_count - 1
|
||||
select_job.set_item_metadata(current_index, job)
|
||||
|
||||
func _on_start_button_pressed() -> void:
|
||||
if select_job.get_item_text(0) == "No jobs accepted":
|
||||
print("No job selected")
|
||||
else:
|
||||
PlayerData.give_money.emit(selected_job.job_reward)
|
||||
|
||||
|
||||
func _on_select_job_item_selected(index: int) -> void:
|
||||
selected_job = select_job.get_item_metadata(index)
|
||||
print(selected_job)
|
||||
|
|
|
|||
42
printer.tscn
42
printer.tscn
|
|
@ -16,52 +16,68 @@ theme_override_constants/margin_top = 10
|
|||
theme_override_constants/margin_right = 10
|
||||
theme_override_constants/margin_bottom = 10
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer" unique_id=2137617795]
|
||||
[node name="MainArea" type="VBoxContainer" parent="MarginContainer" unique_id=2137617795]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="HBoxContainer" type="HBoxContainer" parent="MarginContainer/VBoxContainer" unique_id=1033555892]
|
||||
[node name="TopInfo" type="HBoxContainer" parent="MarginContainer/MainArea" unique_id=1033555892]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Model" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer" unique_id=397114791]
|
||||
[node name="PrinterLabel" type="Label" parent="MarginContainer/MainArea/TopInfo" unique_id=397114791]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
theme_override_font_sizes/font_size = 30
|
||||
text = "Printer #1"
|
||||
|
||||
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/HBoxContainer" unique_id=2117616913]
|
||||
[node name="StatusLabel" type="Label" parent="MarginContainer/MainArea/TopInfo" unique_id=2117616913]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Status: Free"
|
||||
horizontal_alignment = 2
|
||||
|
||||
[node name="VBoxContainer" type="VBoxContainer" parent="MarginContainer/VBoxContainer" unique_id=1502076264]
|
||||
[node name="PrinterModelLabel" type="Label" parent="MarginContainer/MainArea" unique_id=666140345]
|
||||
layout_mode = 2
|
||||
text = "Printer model"
|
||||
|
||||
[node name="PrintInfo" type="VBoxContainer" parent="MarginContainer/MainArea" unique_id=1502076264]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Label" type="Label" parent="MarginContainer/VBoxContainer/VBoxContainer" unique_id=181392172]
|
||||
[node name="FilamentLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo" unique_id=181392172]
|
||||
layout_mode = 2
|
||||
text = "Material: PLA"
|
||||
|
||||
[node name="Label2" type="Label" parent="MarginContainer/VBoxContainer/VBoxContainer" unique_id=1516591173]
|
||||
[node name="JobLabel" type="Label" parent="MarginContainer/MainArea/PrintInfo" unique_id=1516591173]
|
||||
layout_mode = 2
|
||||
text = "Time left: 15.0"
|
||||
|
||||
[node name="ProgressBar" type="ProgressBar" parent="MarginContainer/VBoxContainer/VBoxContainer" unique_id=768246659]
|
||||
[node name="ProgressBar" type="ProgressBar" parent="MarginContainer/MainArea/PrintInfo" unique_id=768246659]
|
||||
layout_mode = 2
|
||||
value = 67.0
|
||||
|
||||
[node name="HBoxContainer2" type="HBoxContainer" parent="MarginContainer/VBoxContainer" unique_id=248340191]
|
||||
[node name="Buttons" type="HBoxContainer" parent="MarginContainer/MainArea" unique_id=248340191]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Button" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2" unique_id=500388805]
|
||||
[node name="StartButton" type="Button" parent="MarginContainer/MainArea/Buttons" unique_id=1943803675]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Start job"
|
||||
text = "Start print"
|
||||
|
||||
[node name="Button2" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2" unique_id=765929805]
|
||||
[node name="UpgradeButton" type="Button" parent="MarginContainer/MainArea/Buttons" unique_id=765929805]
|
||||
visible = false
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Upgrade"
|
||||
|
||||
[node name="Button3" type="Button" parent="MarginContainer/VBoxContainer/HBoxContainer2" unique_id=929234066]
|
||||
[node name="SellButton" type="Button" parent="MarginContainer/MainArea/Buttons" unique_id=929234066]
|
||||
layout_mode = 2
|
||||
size_flags_horizontal = 3
|
||||
text = "Sell printer"
|
||||
|
||||
[node name="SelectJob" type="OptionButton" parent="MarginContainer/MainArea" unique_id=1500040832]
|
||||
layout_mode = 2
|
||||
|
||||
[node name="Timer" type="Timer" parent="." unique_id=425740035]
|
||||
|
||||
[connection signal="pressed" from="MarginContainer/MainArea/Buttons/StartButton" to="." method="_on_start_button_pressed"]
|
||||
[connection signal="pressed" from="MarginContainer/MainArea/Buttons/SellButton" to="." method="_on_sell_button_pressed"]
|
||||
[connection signal="item_selected" from="MarginContainer/MainArea/SelectJob" to="." method="_on_select_job_item_selected"]
|
||||
[connection signal="pressed" from="MarginContainer/MainArea/SelectJob" to="." method="_on_select_job_pressed"]
|
||||
|
|
|
|||
6
ui.gd
6
ui.gd
|
|
@ -39,8 +39,10 @@ func _on_money_changed(money):
|
|||
|
||||
func _on_job_accepted_pressed(accepted_job):
|
||||
print("Job accepted")
|
||||
PlayerData.give_experience.emit(accepted_job.job_data.job_experience)
|
||||
PlayerData.give_money.emit(accepted_job.job_data.job_reward)
|
||||
#PlayerData.give_experience.emit(accepted_job.job_data.job_experience)
|
||||
#PlayerData.give_money.emit(accepted_job.job_data.job_reward)
|
||||
PlayerData.jobs.append(accepted_job.job_data)
|
||||
print(PlayerData.jobs[0].job_name)
|
||||
|
||||
accepted_job.queue_free()
|
||||
var job_count = %JobContainer.get_child_count() - 1
|
||||
|
|
|
|||
Loading…
Reference in a new issue