remove migration system
This commit is contained in:
parent
7c5f549462
commit
83ee764b45
|
@ -42,7 +42,7 @@ transform = Transform3D(1, -7.45058e-09, -2.22045e-16, 7.45058e-09, 1, 0, 0, 0,
|
||||||
shape = SubResource("CapsuleShape3D_dopke")
|
shape = SubResource("CapsuleShape3D_dopke")
|
||||||
|
|
||||||
[node name="ThumbTip" type="BoneAttachment3D" parent="XRHandLeft"]
|
[node name="ThumbTip" type="BoneAttachment3D" parent="XRHandLeft"]
|
||||||
transform = Transform3D(0.937246, 0.0284254, -0.347508, 0.0184905, 0.991216, 0.130949, 0.348178, -0.129157, 0.928488, 0.0498668, 0.0560917, -0.112777)
|
transform = Transform3D(0.937246, 0.0284254, -0.347508, 0.0184905, 0.991216, 0.130949, 0.348178, -0.129157, 0.928487, 0.0498668, 0.0560917, -0.112777)
|
||||||
bone_name = "Thumb_Tip_L"
|
bone_name = "Thumb_Tip_L"
|
||||||
bone_idx = 4
|
bone_idx = 4
|
||||||
use_external_skeleton = true
|
use_external_skeleton = true
|
||||||
|
@ -52,7 +52,7 @@ external_skeleton = NodePath("../left_hand/Armature_001/Skeleton3D")
|
||||||
gizmo_extents = 0.02
|
gizmo_extents = 0.02
|
||||||
|
|
||||||
[node name="MiddleTip" type="BoneAttachment3D" parent="XRHandLeft"]
|
[node name="MiddleTip" type="BoneAttachment3D" parent="XRHandLeft"]
|
||||||
transform = Transform3D(0.0812012, -0.650531, -0.755125, 0.996577, 0.064817, 0.051326, 0.0155558, -0.756708, 0.653568, 0.032112, 0.00654224, -0.171612)
|
transform = Transform3D(0.0812012, -0.650531, -0.755125, 0.996576, 0.064817, 0.051326, 0.0155558, -0.756708, 0.653567, 0.032112, 0.00654224, -0.171612)
|
||||||
bone_name = "Middle_Tip_L"
|
bone_name = "Middle_Tip_L"
|
||||||
bone_idx = 14
|
bone_idx = 14
|
||||||
use_external_skeleton = true
|
use_external_skeleton = true
|
||||||
|
@ -94,7 +94,7 @@ hand_skeleton = NodePath("right_hand/Armature/Skeleton3D")
|
||||||
transform = Transform3D(1, 0, 4.7579e-13, 0, 1, 0, -1.34149e-12, 1.77636e-15, 1, 0, 0, 0)
|
transform = Transform3D(1, 0, 4.7579e-13, 0, 1, 0, -1.34149e-12, 1.77636e-15, 1, 0, 0, 0)
|
||||||
|
|
||||||
[node name="IndexTip" type="BoneAttachment3D" parent="XRHandRight"]
|
[node name="IndexTip" type="BoneAttachment3D" parent="XRHandRight"]
|
||||||
transform = Transform3D(0.19221, 0.669966, 0.717079, -0.091543, -0.715277, 0.69282, 0.977075, -0.19881, -0.0761527, -0.0345977, -0.164767, -0.0355401)
|
transform = Transform3D(0.19221, 0.669966, 0.717078, -0.091543, -0.715277, 0.69282, 0.977075, -0.19881, -0.0761527, -0.0345978, -0.164767, -0.0355401)
|
||||||
bone_name = "Index_Tip_R"
|
bone_name = "Index_Tip_R"
|
||||||
bone_idx = 9
|
bone_idx = 9
|
||||||
use_external_skeleton = true
|
use_external_skeleton = true
|
||||||
|
|
|
@ -28,7 +28,7 @@ func save():
|
||||||
var save_tree = _generate_save_tree(get_tree().root.get_node("Main"))
|
var save_tree = _generate_save_tree(get_tree().root.get_node("Main"))
|
||||||
|
|
||||||
var json_text = JSON.stringify({
|
var json_text = JSON.stringify({
|
||||||
"version": "1.0.0",
|
"version": get_version(),
|
||||||
"tree": save_tree
|
"tree": save_tree
|
||||||
})
|
})
|
||||||
save_file.store_line(json_text)
|
save_file.store_line(json_text)
|
||||||
|
@ -49,17 +49,15 @@ func load():
|
||||||
var json_text = save_file.get_line()
|
var json_text = save_file.get_line()
|
||||||
var save_data = JSON.parse_string(json_text)
|
var save_data = JSON.parse_string(json_text)
|
||||||
|
|
||||||
save_data = migrate(save_data)
|
|
||||||
|
|
||||||
if save_data == null:
|
|
||||||
save()
|
|
||||||
return
|
|
||||||
|
|
||||||
var save_tree = save_data["tree"]
|
var save_tree = save_data["tree"]
|
||||||
|
|
||||||
if save_tree == null:
|
if save_tree == null:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if save_tree.has("version") == false:
|
||||||
|
save()
|
||||||
|
return
|
||||||
|
|
||||||
if save_tree is Array:
|
if save_tree is Array:
|
||||||
for tree in save_tree:
|
for tree in save_tree:
|
||||||
_build_save_tree(tree)
|
_build_save_tree(tree)
|
||||||
|
@ -69,59 +67,6 @@ func load():
|
||||||
loaded.emit()
|
loaded.emit()
|
||||||
is_loaded = true
|
is_loaded = true
|
||||||
|
|
||||||
func migrate(data: Dictionary):
|
|
||||||
var migration_version = data["migration"]
|
|
||||||
var migrations = load_migrations()
|
|
||||||
|
|
||||||
if migration_version == null || migrations == {}:
|
|
||||||
return null
|
|
||||||
|
|
||||||
var migration_keys = migrations.keys().sort()
|
|
||||||
|
|
||||||
for key in migration_keys:
|
|
||||||
if is_migration_newer(migration_version, key):
|
|
||||||
var migration = migrations[key]
|
|
||||||
|
|
||||||
data = migration.migrate(data)
|
|
||||||
|
|
||||||
data["migration"] = key
|
|
||||||
|
|
||||||
return data
|
|
||||||
|
|
||||||
func is_migration_newer(version, new_version):
|
|
||||||
var version_split = version.split(".")
|
|
||||||
var new_version_split = new_version.split(".")
|
|
||||||
|
|
||||||
for i in range(0, 3):
|
|
||||||
if int(version_split[i]) > int(new_version_split[i]):
|
|
||||||
return false
|
|
||||||
elif int(version_split[i]) < int(new_version_split[i]):
|
|
||||||
return true
|
|
||||||
|
|
||||||
return false
|
|
||||||
|
|
||||||
func load_migrations():
|
|
||||||
var migrations = {}
|
|
||||||
var migrations_dir := DirAccess.open("res://lib/migrations")
|
|
||||||
|
|
||||||
if migrations == null:
|
|
||||||
return {}
|
|
||||||
|
|
||||||
migrations_dir.list_dir_begin()
|
|
||||||
var file_name = migrations_dir.get_next()
|
|
||||||
|
|
||||||
while file_name != "":
|
|
||||||
if file_name.ends_with(".gd"):
|
|
||||||
var version = file_name.substr(0, -3)
|
|
||||||
|
|
||||||
migrations[version] = load("res://lib/migrations/%s" % file_name)
|
|
||||||
|
|
||||||
file_name = migrations_dir.get_next()
|
|
||||||
|
|
||||||
migrations_dir.list_dir_end()
|
|
||||||
|
|
||||||
return migrations
|
|
||||||
|
|
||||||
func get_version():
|
func get_version():
|
||||||
var config_error = export_config.load(export_config_path)
|
var config_error = export_config.load(export_config_path)
|
||||||
|
|
||||||
|
|
|
@ -1,4 +0,0 @@
|
||||||
extends Object
|
|
||||||
|
|
||||||
static func migrate(data: Dictionary):
|
|
||||||
return data
|
|
Loading…
Reference in New Issue
Block a user