Connect paid food purchasing, kitchen production, and porter deliveries
This commit is contained in:
+42
-3
@@ -3,6 +3,7 @@ extends Control
|
||||
const OpeningGuideScript := preload("res://scripts/ui/inn_opening_guide.gd")
|
||||
const OperatingLedgerPanelScript := preload("res://scripts/ui/operating_ledger_panel.gd")
|
||||
const StaffManagementPanelScript := preload("res://scripts/ui/staff_management_panel.gd")
|
||||
const SupplyManagementPanelScript := preload("res://scripts/ui/supply_management_panel.gd")
|
||||
const WorldPreviewScript := preload("res://scenes/main/world_preview.gd")
|
||||
const DefaultVisualTheme := preload("res://assets/themes/japanese_fantasy/visual-theme-v1.tres")
|
||||
const MANUAL_SAVE_PATH := "user://saves/manual_ui"
|
||||
@@ -128,6 +129,8 @@ var build_buttons: Dictionary = {}
|
||||
var navigation_buttons: Dictionary = {}
|
||||
var opening_guide: Control
|
||||
var operating_ledger_panel: VBoxContainer
|
||||
var supply_management_panel: VBoxContainer
|
||||
var _supply_panel_open := false
|
||||
var operations_controls: VBoxContainer
|
||||
var _ledger_panel_open := false
|
||||
var management_panel: Control
|
||||
@@ -531,6 +534,12 @@ func _create_side_panel() -> Control:
|
||||
root_column.add_child(operating_ledger_panel)
|
||||
operating_ledger_panel.setup(_runtime, GameClock)
|
||||
operating_ledger_panel.visible = false
|
||||
supply_management_panel = SupplyManagementPanelScript.new()
|
||||
supply_management_panel.configure(_runtime, _apply_button_style)
|
||||
supply_management_panel.status_requested.connect(_on_staff_management_status)
|
||||
supply_management_panel.action_requested.connect(_activate_management_mode)
|
||||
supply_management_panel.visible = false
|
||||
root_column.add_child(supply_management_panel)
|
||||
return panel
|
||||
|
||||
|
||||
@@ -630,10 +639,12 @@ func _set_management_panel_open(open: bool) -> void:
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
|
||||
|
||||
func _activate_management_mode(mode: StringName) -> void:
|
||||
_set_management_panel_open(mode != &"facility")
|
||||
_set_supply_panel_open(mode == &"product")
|
||||
_set_ledger_panel_open(mode == &"ledger")
|
||||
for raw_mode: Variant in navigation_buttons:
|
||||
(navigation_buttons[raw_mode] as Button).set_pressed_no_signal(StringName(raw_mode) == mode)
|
||||
@@ -645,7 +656,7 @@ func _activate_management_mode(mode: StringName) -> void:
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_status("建築する施設を下のパレットから選んでください。", true, true)
|
||||
&"product":
|
||||
_set_status("商品管理は一覧画面の実装準備中です。", true, true)
|
||||
_set_status("倉庫への仕入れ、厨房の自動生産、施設への配送を確認できます。", true, true)
|
||||
&"explore":
|
||||
_set_status("探索管理は一覧画面の実装準備中です。", true, true)
|
||||
&"investment":
|
||||
@@ -656,19 +667,37 @@ func _activate_management_mode(mode: StringName) -> void:
|
||||
|
||||
func _set_ledger_panel_open(open: bool) -> void:
|
||||
_ledger_panel_open = open
|
||||
if open:
|
||||
_set_supply_panel_open(false)
|
||||
if operating_ledger_panel != null:
|
||||
operating_ledger_panel.visible = open
|
||||
if open:
|
||||
operating_ledger_panel.refresh()
|
||||
if operations_controls != null:
|
||||
operations_controls.visible = not open
|
||||
operations_controls.visible = not open and not _supply_panel_open
|
||||
if dashboard_summary_label != null:
|
||||
dashboard_summary_label.visible = not open
|
||||
dashboard_summary_label.visible = not open and not _supply_panel_open
|
||||
if open:
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
|
||||
|
||||
func _set_supply_panel_open(open: bool) -> void:
|
||||
_supply_panel_open = open
|
||||
if open:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
if supply_management_panel != null:
|
||||
supply_management_panel.visible = open
|
||||
if open:
|
||||
supply_management_panel.refresh()
|
||||
if operations_controls != null:
|
||||
operations_controls.visible = not open and not _ledger_panel_open
|
||||
if dashboard_summary_label != null:
|
||||
dashboard_summary_label.visible = not open and not _ledger_panel_open
|
||||
|
||||
|
||||
func _on_opening_action(action: StringName) -> void:
|
||||
match action:
|
||||
&"build_reception", &"build_room", &"build_corridor":
|
||||
@@ -821,6 +850,7 @@ func _set_staff_management_panel_open(open: bool) -> void:
|
||||
staff_management_toggle_button.set_pressed_no_signal(open)
|
||||
if open:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_management_panel_open(true)
|
||||
staff_management_panel.refresh()
|
||||
@@ -842,6 +872,7 @@ func _set_staff_candidate_panel_open(open: bool) -> void:
|
||||
_refresh_staff_candidates()
|
||||
if open:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
_set_management_panel_open(true)
|
||||
_set_status("雇用候補を選んでください。契約金と日給は確定前に表示されます。", true, true)
|
||||
@@ -1001,6 +1032,9 @@ func _clear_build_selection(announce := true) -> void:
|
||||
|
||||
|
||||
func _clear_active_tool() -> void:
|
||||
if _supply_panel_open:
|
||||
_set_management_panel_open(false)
|
||||
return
|
||||
if _staff_management_panel_open:
|
||||
_set_staff_management_panel_open(false)
|
||||
return
|
||||
@@ -1193,6 +1227,7 @@ func _excavation_idempotency_key(cell: Vector3i) -> StringName:
|
||||
|
||||
func _on_facility_selected(instance_id: StringName) -> void:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_management_panel_open(true)
|
||||
_set_excavation_mode(false, false)
|
||||
_selected_entity_id = instance_id
|
||||
@@ -1202,6 +1237,7 @@ func _on_facility_selected(instance_id: StringName) -> void:
|
||||
|
||||
func _on_construction_selected(job_id: StringName) -> void:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_management_panel_open(true)
|
||||
_set_excavation_mode(false, false)
|
||||
_selected_entity_id = job_id
|
||||
@@ -1301,6 +1337,7 @@ func _refresh_foreground_event(event_service: Variant) -> void:
|
||||
return
|
||||
foreground_event_panel.visible = true
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_management_panel_open(true)
|
||||
var actors: Array[String] = []
|
||||
for actor_value: Variant in foreground.actor_ids:
|
||||
@@ -1695,6 +1732,8 @@ func _load_manual() -> void:
|
||||
_synchronize_ui_command_state()
|
||||
if staff_management_panel != null:
|
||||
staff_management_panel.refresh()
|
||||
if supply_management_panel != null:
|
||||
supply_management_panel.refresh()
|
||||
_selected_entity_id = &""
|
||||
_selected_entity_kind = &""
|
||||
world_preview.selected_entity_id = &""
|
||||
|
||||
Reference in New Issue
Block a user