Add business pricing and closure controls with compatible digest optimization
This commit is contained in:
+43
-6
@@ -4,6 +4,7 @@ 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 BusinessManagementPanelScript := preload("res://scripts/ui/business_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"
|
||||
@@ -130,6 +131,8 @@ var navigation_buttons: Dictionary = {}
|
||||
var opening_guide: Control
|
||||
var operating_ledger_panel: VBoxContainer
|
||||
var supply_management_panel: VBoxContainer
|
||||
var business_management_panel: VBoxContainer
|
||||
var _business_panel_open := false
|
||||
var _supply_panel_open := false
|
||||
var operations_controls: VBoxContainer
|
||||
var _ledger_panel_open := false
|
||||
@@ -394,6 +397,7 @@ func _create_navigation_rail() -> Control:
|
||||
[&"staff", "従業員"],
|
||||
[&"facility", "施設"],
|
||||
[&"product", "商品"],
|
||||
[&"business", "営業"],
|
||||
[&"explore", "探索"],
|
||||
[&"investment", "投資"],
|
||||
[&"ledger", "帳簿"],
|
||||
@@ -404,7 +408,7 @@ func _create_navigation_rail() -> Control:
|
||||
button.custom_minimum_size.y = 46
|
||||
button.toggle_mode = true
|
||||
button.add_theme_font_size_override("font_size", 12)
|
||||
_apply_button_icon(button, visual_theme.navigation_icon(mode) if visual_theme != null else null, 16)
|
||||
_apply_button_icon(button, visual_theme.navigation_icon(&"ledger" if mode == &"business" else mode) if visual_theme != null else null, 16)
|
||||
navigation_buttons[mode] = button
|
||||
column.add_child(button)
|
||||
var nav_spacer := Control.new()
|
||||
@@ -540,6 +544,12 @@ func _create_side_panel() -> Control:
|
||||
supply_management_panel.action_requested.connect(_activate_management_mode)
|
||||
supply_management_panel.visible = false
|
||||
root_column.add_child(supply_management_panel)
|
||||
business_management_panel = BusinessManagementPanelScript.new()
|
||||
business_management_panel.configure(_runtime, _apply_button_style)
|
||||
business_management_panel.status_requested.connect(_on_staff_management_status)
|
||||
business_management_panel.action_requested.connect(_activate_management_mode)
|
||||
business_management_panel.visible = false
|
||||
root_column.add_child(business_management_panel)
|
||||
return panel
|
||||
|
||||
|
||||
@@ -640,11 +650,13 @@ func _set_management_panel_open(open: bool) -> void:
|
||||
_set_staff_management_panel_open(false)
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_business_panel_open(false)
|
||||
|
||||
|
||||
func _activate_management_mode(mode: StringName) -> void:
|
||||
_set_management_panel_open(mode != &"facility")
|
||||
_set_supply_panel_open(mode == &"product")
|
||||
_set_business_panel_open(mode == &"business")
|
||||
_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)
|
||||
@@ -655,6 +667,8 @@ func _activate_management_mode(mode: StringName) -> void:
|
||||
_set_build_palette_open(true)
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_status("建築する施設を下のパレットから選んでください。", true, true)
|
||||
&"business":
|
||||
_set_status("施設ごとの料金と新規受付の開閉を設定できます。", true, true)
|
||||
&"product":
|
||||
_set_status("倉庫への仕入れ、厨房の自動生産、施設への配送を確認できます。", true, true)
|
||||
&"explore":
|
||||
@@ -669,14 +683,15 @@ func _set_ledger_panel_open(open: bool) -> void:
|
||||
_ledger_panel_open = open
|
||||
if open:
|
||||
_set_supply_panel_open(false)
|
||||
_set_business_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 and not _supply_panel_open
|
||||
operations_controls.visible = not open and not _supply_panel_open and not _business_panel_open
|
||||
if dashboard_summary_label != null:
|
||||
dashboard_summary_label.visible = not open and not _supply_panel_open
|
||||
dashboard_summary_label.visible = not open and not _supply_panel_open and not _business_panel_open
|
||||
if open:
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
@@ -685,6 +700,7 @@ func _set_ledger_panel_open(open: bool) -> void:
|
||||
func _set_supply_panel_open(open: bool) -> void:
|
||||
_supply_panel_open = open
|
||||
if open:
|
||||
_set_business_panel_open(false)
|
||||
_set_ledger_panel_open(false)
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
@@ -693,9 +709,26 @@ func _set_supply_panel_open(open: bool) -> void:
|
||||
if open:
|
||||
supply_management_panel.refresh()
|
||||
if operations_controls != null:
|
||||
operations_controls.visible = not open and not _ledger_panel_open
|
||||
operations_controls.visible = not open and not _ledger_panel_open and not _business_panel_open
|
||||
if dashboard_summary_label != null:
|
||||
dashboard_summary_label.visible = not open and not _ledger_panel_open
|
||||
dashboard_summary_label.visible = not open and not _ledger_panel_open and not _business_panel_open
|
||||
|
||||
|
||||
func _set_business_panel_open(open: bool) -> void:
|
||||
_business_panel_open = open
|
||||
if open:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
if business_management_panel != null:
|
||||
business_management_panel.visible = open
|
||||
if open:
|
||||
business_management_panel.refresh()
|
||||
if operations_controls != null:
|
||||
operations_controls.visible = not open and not _ledger_panel_open and not _supply_panel_open
|
||||
if dashboard_summary_label != null:
|
||||
dashboard_summary_label.visible = not open and not _ledger_panel_open and not _supply_panel_open
|
||||
|
||||
|
||||
func _on_opening_action(action: StringName) -> void:
|
||||
@@ -851,6 +884,7 @@ func _set_staff_management_panel_open(open: bool) -> void:
|
||||
if open:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_business_panel_open(false)
|
||||
_set_staff_candidate_panel_open(false)
|
||||
_set_management_panel_open(true)
|
||||
staff_management_panel.refresh()
|
||||
@@ -873,6 +907,7 @@ func _set_staff_candidate_panel_open(open: bool) -> void:
|
||||
if open:
|
||||
_set_ledger_panel_open(false)
|
||||
_set_supply_panel_open(false)
|
||||
_set_business_panel_open(false)
|
||||
_set_staff_management_panel_open(false)
|
||||
_set_management_panel_open(true)
|
||||
_set_status("雇用候補を選んでください。契約金と日給は確定前に表示されます。", true, true)
|
||||
@@ -1032,7 +1067,7 @@ func _clear_build_selection(announce := true) -> void:
|
||||
|
||||
|
||||
func _clear_active_tool() -> void:
|
||||
if _supply_panel_open:
|
||||
if _supply_panel_open or _business_panel_open:
|
||||
_set_management_panel_open(false)
|
||||
return
|
||||
if _staff_management_panel_open:
|
||||
@@ -1734,6 +1769,8 @@ func _load_manual() -> void:
|
||||
staff_management_panel.refresh()
|
||||
if supply_management_panel != null:
|
||||
supply_management_panel.refresh()
|
||||
if business_management_panel != null:
|
||||
business_management_panel.refresh()
|
||||
_selected_entity_id = &""
|
||||
_selected_entity_kind = &""
|
||||
world_preview.selected_entity_id = &""
|
||||
|
||||
Reference in New Issue
Block a user