Refactor save management; update validation logic in save_manager.gd and enhance action handling in actions.gd for improved data integrity and user experience

This commit is contained in:
Kirill
2026-09-14 07:47:21 +03:00
parent dea744bc30
commit 85a13eb241
6 changed files with 160 additions and 61 deletions
+10 -4
View File
@@ -23,9 +23,14 @@ var action_values: Dictionary = {
}
func set_actions(item_id: String, value: float) -> void:
func set_actions(item_id: String, value: float, preview: Callable = Callable()) -> void:
current_item_id = item_id
_set_action_values(_get_distribution(value))
var requests: Array = _get_distribution(value)
var displayed: Array = requests.duplicate()
if preview.is_valid():
for i in range(displayed.size()):
displayed[i] = preview.call(requests[i]) if requests[i] > 0.0 else 0.0
_set_action_values(requests, displayed)
func _get_distribution(value: float) -> Array:
if value <= 0.0 or not is_finite(value):
@@ -38,10 +43,11 @@ func _get_distribution(value: float) -> Array:
distribution.push_front(pow(10.0, ev))
return distribution
func _set_action_values(values: Array) -> void:
func _set_action_values(values: Array, displayed: Array) -> void:
for ind in range(0, 5):
action_values[ind] = values[ind]
action_labels[ind].text = Global.format_number(values[ind]) if values[ind] > 0 else ""
# Keep the original request for execution; show the exact planned output.
action_labels[ind].text = Global.format_number(displayed[ind]) if displayed[ind] > 0 else ""
func _on_action_button_pressed(button_id: int) -> void: