Put version comparator in utils class

This commit is contained in:
Adrien Ufferte
2025-07-16 16:55:02 +02:00
parent 50eaa68213
commit 930e013be6
2 changed files with 15 additions and 15 deletions
+1 -15
View File
@@ -43,7 +43,7 @@ func purge_user_folders_if_needed() -> void:
var current_version: String = ProjectSettings.get_setting("application/config/version")
var previous_version: String = _device_settings.game_version
if previous_version == "" or compare_versions(previous_version, "2.1.3") < 0:
if previous_version == "" or Utils.compare_versions(previous_version, "2.1.3") < 0:
Logger.trace("UserDataManager: Version difference detected, need to purge user folder to avoid data incompatibility")
var dir: DirAccess = DirAccess.open("user://")
if dir:
@@ -59,20 +59,6 @@ func purge_user_folders_if_needed() -> void:
_device_settings.game_version = current_version
ResourceSaver.save(_device_settings, "user://device_settings.tres")
func compare_versions(version_a: String, version_b: String) -> int:
var va: PackedStringArray = version_a.split(".")
var vb: PackedStringArray = version_b.split(".")
for index: int in range(3):
var ai: int = int(va[index]) if index < va.size() else 0
var bi: int = int(vb[index]) if index < vb.size() else 0
if ai < bi:
return -1
elif ai > bi:
return 1
return 0
func _process(_delta: float) -> void:
if Engine.is_editor_hint():
return # Do nothing in editor mode
+14
View File
@@ -41,3 +41,17 @@ func delete_directory_recursive(path: String) -> void:
Logger.error("Utils: Error " + error_string(err) + " while deleting folder: %s" % path)
else:
Logger.info("Utils: Folder deleted: %s" % path)
## Returns -1 if version_a is lower than version_b, 0 if they are equals, and 1 if version_a is greater than version_b
func compare_versions(version_a: String, version_b: String) -> int:
var va: PackedStringArray = version_a.split(".")
var vb: PackedStringArray = version_b.split(".")
for index: int in range(3):
var ai: int = int(va[index]) if index < va.size() else 0
var bi: int = int(vb[index]) if index < vb.size() else 0
if ai < bi:
return -1
elif ai > bi:
return 1
return 0