فهرست منبع

Don't save project settings when not necessary

(cherry picked from commit 4db47eb32e550fb1f2d8967907b66b2d41f09050)
kobewi 4 سال پیش
والد
کامیت
5a290e0a3c
2فایلهای تغییر یافته به همراه16 افزوده شده و 0 حذف شده
  1. 8 0
      core/script_language.cpp
  2. 8 0
      editor/editor_data.cpp

+ 8 - 0
core/script_language.cpp

@@ -276,6 +276,14 @@ void ScriptServer::save_global_classes() {
 		gcarr.push_back(d);
 	}
 
+	Array old;
+	if (ProjectSettings::get_singleton()->has_setting("_global_script_classes")) {
+		old = ProjectSettings::get_singleton()->get("_global_script_classes");
+	}
+	if ((!old.empty() || gcarr.empty()) && gcarr.hash() == old.hash()) {
+		return;
+	}
+
 	if (gcarr.empty()) {
 		if (ProjectSettings::get_singleton()->has_setting("_global_script_classes")) {
 			ProjectSettings::get_singleton()->clear("_global_script_classes");

+ 8 - 0
editor/editor_data.cpp

@@ -986,6 +986,14 @@ void EditorData::script_class_save_icon_paths() {
 			d[E->get()] = _script_class_icon_paths[E->get()];
 	}
 
+	Dictionary old;
+	if (ProjectSettings::get_singleton()->has_setting("_global_script_class_icons")) {
+		old = ProjectSettings::get_singleton()->get("_global_script_class_icons");
+	}
+	if ((!old.empty() || d.empty()) && d.hash() == old.hash()) {
+		return;
+	}
+
 	if (d.empty()) {
 		if (ProjectSettings::get_singleton()->has_setting("_global_script_class_icons")) {
 			ProjectSettings::get_singleton()->clear("_global_script_class_icons");