|
@@ -979,9 +979,23 @@ void Node::_set_name_nocheck(const StringName &p_name) {
|
|
|
data.name = p_name;
|
|
|
}
|
|
|
|
|
|
+String Node::invalid_character = ". : @ / \"";
|
|
|
+
|
|
|
+bool Node::_validate_node_name(String &p_name) {
|
|
|
+ String name = p_name;
|
|
|
+ Vector<String> chars = Node::invalid_character.split(" ");
|
|
|
+ for (int i = 0; i < chars.size(); i++) {
|
|
|
+ name = name.replace(chars[i], "");
|
|
|
+ }
|
|
|
+ bool is_valid = name == p_name;
|
|
|
+ p_name = name;
|
|
|
+ return is_valid;
|
|
|
+}
|
|
|
+
|
|
|
void Node::set_name(const String &p_name) {
|
|
|
|
|
|
- String name = p_name.replace(":", "").replace("/", "").replace("@", "");
|
|
|
+ String name = p_name;
|
|
|
+ _validate_node_name(name);
|
|
|
|
|
|
ERR_FAIL_COND(name == "");
|
|
|
data.name = name;
|