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:
+10
-4
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user