Skip to content

Commit 713ed59

Browse files
committed
Remove unnecessary _validate_property() calling
1 parent e45cc68 commit 713ed59

19 files changed

+101
-195
lines changed

doc/classes/AnimationMixer.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@
317317
This is used by the editor. If set to [code]true[/code], the scene will be saved with the effects of the reset animation (the animation with the key [code]"RESET"[/code]) applied as if it had been seeked to time 0, with the editor keeping the values that the scene had before saving.
318318
This makes it more convenient to preview and edit animations in the editor, as changes to the scene will not be saved as long as they are set in the reset animation.
319319
</member>
320-
<member name="root_motion_local" type="bool" setter="set_root_motion_local" getter="is_root_motion_local">
320+
<member name="root_motion_local" type="bool" setter="set_root_motion_local" getter="is_root_motion_local" default="false">
321321
If [code]true[/code], [method get_root_motion_position] value is extracted as a local translation value before blending. In other words, it is treated like the translation is done after the rotation.
322322
</member>
323323
<member name="root_motion_track" type="NodePath" setter="set_root_motion_track" getter="get_root_motion_track" default="NodePath(&quot;&quot;)">

scene/3d/aim_modifier_3d.cpp

Lines changed: 8 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
/**************************************************************************/
3030

3131
#include "aim_modifier_3d.h"
32+
#include "scene/3d/look_at_modifier_3d.h"
3233

3334
bool AimModifier3D::_set(const StringName &p_path, const Variant &p_value) {
3435
String path = p_path;
@@ -76,29 +77,17 @@ bool AimModifier3D::_get(const StringName &p_path, Variant &r_ret) const {
7677
return true;
7778
}
7879

79-
void AimModifier3D::_validate_dynamic_prop(PropertyInfo &p_property) const {
80-
PackedStringArray split = p_property.name.split("/");
81-
if (split.size() == 3 && split[0] == "settings" && (split[2] == "primary_rotation_axis" || split[2] == "use_secondary_rotation")) {
82-
int which = split[1].to_int();
83-
if (!is_using_euler(which)) {
84-
p_property.usage = PROPERTY_USAGE_NONE;
85-
}
86-
}
87-
}
88-
8980
void AimModifier3D::_get_property_list(List<PropertyInfo> *p_list) const {
9081
BoneConstraint3D::get_property_list(p_list);
91-
LocalVector<PropertyInfo> props;
82+
9283
for (int i = 0; i < settings.size(); i++) {
9384
String path = "settings/" + itos(i) + "/";
94-
props.push_back(PropertyInfo(Variant::INT, path + "forward_axis", PROPERTY_HINT_ENUM, "+X,-X,+Y,-Y,+Z,-Z"));
95-
props.push_back(PropertyInfo(Variant::BOOL, path + "use_euler"));
96-
props.push_back(PropertyInfo(Variant::INT, path + "primary_rotation_axis", PROPERTY_HINT_ENUM, "X,Y,Z"));
97-
props.push_back(PropertyInfo(Variant::BOOL, path + "use_secondary_rotation"));
98-
}
99-
for (PropertyInfo &p : props) {
100-
_validate_dynamic_prop(p);
101-
p_list->push_back(p);
85+
int rotation_usage = is_using_euler(i) ? PROPERTY_USAGE_DEFAULT : PROPERTY_USAGE_NONE;
86+
87+
p_list->push_back(PropertyInfo(Variant::INT, path + "forward_axis", PROPERTY_HINT_ENUM, "+X,-X,+Y,-Y,+Z,-Z"));
88+
p_list->push_back(PropertyInfo(Variant::BOOL, path + "use_euler"));
89+
p_list->push_back(PropertyInfo(Variant::INT, path + "primary_rotation_axis", PROPERTY_HINT_ENUM, "X,Y,Z", rotation_usage));
90+
p_list->push_back(PropertyInfo(Variant::BOOL, path + "use_secondary_rotation", PROPERTY_HINT_NONE, "", rotation_usage));
10291
}
10392
}
10493

scene/3d/aim_modifier_3d.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@
3131
#pragma once
3232

3333
#include "scene/3d/bone_constraint_3d.h"
34-
#include "scene/3d/look_at_modifier_3d.h"
3534

3635
class AimModifier3D : public BoneConstraint3D {
3736
GDCLASS(AimModifier3D, BoneConstraint3D);
@@ -49,7 +48,6 @@ class AimModifier3D : public BoneConstraint3D {
4948
bool _set(const StringName &p_path, const Variant &p_value);
5049
virtual PackedStringArray get_configuration_warnings() const override;
5150
void _get_property_list(List<PropertyInfo> *p_list) const;
52-
void _validate_dynamic_prop(PropertyInfo &p_property) const;
5351

5452
static void _bind_methods();
5553

scene/3d/camera_3d.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,8 +139,6 @@ void Camera3D::_validate_property(PropertyInfo &p_property) const {
139139
}
140140
}
141141
}
142-
143-
Node3D::_validate_property(p_property);
144142
}
145143

146144
void Camera3D::_update_camera() {

scene/3d/convert_transform_modifier_3d.cpp

Lines changed: 28 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -122,60 +122,40 @@ bool ConvertTransformModifier3D::_get(const StringName &p_path, Variant &r_ret)
122122
return true;
123123
}
124124

125-
void ConvertTransformModifier3D::_validate_dynamic_prop(PropertyInfo &p_property) const {
126-
PackedStringArray split = p_property.name.split("/");
127-
if (split.size() == 4 && split[0] == "settings") {
128-
int which = split[1].to_int();
129-
bool hide = false;
130-
if (split[2] == "apply") {
131-
if (split[3] == "range_min" || split[3] == "range_max") {
132-
if (get_apply_transform_mode(which) == TRANSFORM_MODE_POSITION) {
133-
p_property.hint_string = HINT_POSITION;
134-
} else if (get_apply_transform_mode(which) == TRANSFORM_MODE_ROTATION) {
135-
p_property.hint_string = HINT_ROTATION;
136-
} else {
137-
p_property.hint_string = HINT_SCALE;
138-
}
139-
}
140-
} else if (split[2] == "reference") {
141-
if (split[3] == "range_min" || split[3] == "range_max") {
142-
if (get_reference_transform_mode(which) == TRANSFORM_MODE_POSITION) {
143-
p_property.hint_string = HINT_POSITION;
144-
} else if (get_reference_transform_mode(which) == TRANSFORM_MODE_ROTATION) {
145-
p_property.hint_string = HINT_ROTATION;
146-
} else {
147-
p_property.hint_string = HINT_SCALE;
148-
}
149-
}
150-
}
151-
if (hide) {
152-
p_property.usage = PROPERTY_USAGE_NONE;
153-
}
154-
}
155-
}
156-
157125
void ConvertTransformModifier3D::_get_property_list(List<PropertyInfo> *p_list) const {
158126
BoneConstraint3D::get_property_list(p_list);
159-
LocalVector<PropertyInfo> props;
127+
160128
for (int i = 0; i < settings.size(); i++) {
161129
String path = "settings/" + itos(i) + "/";
162130

163-
props.push_back(PropertyInfo(Variant::INT, path + "apply/transform_mode", PROPERTY_HINT_ENUM, "Position,Rotation,Scale"));
164-
props.push_back(PropertyInfo(Variant::INT, path + "apply/axis", PROPERTY_HINT_ENUM, "X,Y,Z"));
165-
props.push_back(PropertyInfo(Variant::FLOAT, path + "apply/range_min", PROPERTY_HINT_RANGE, HINT_POSITION));
166-
props.push_back(PropertyInfo(Variant::FLOAT, path + "apply/range_max", PROPERTY_HINT_RANGE, HINT_POSITION));
167-
168-
props.push_back(PropertyInfo(Variant::INT, path + "reference/transform_mode", PROPERTY_HINT_ENUM, "Position,Rotation,Scale"));
169-
props.push_back(PropertyInfo(Variant::INT, path + "reference/axis", PROPERTY_HINT_ENUM, "X,Y,Z"));
170-
props.push_back(PropertyInfo(Variant::FLOAT, path + "reference/range_min", PROPERTY_HINT_RANGE, HINT_POSITION));
171-
props.push_back(PropertyInfo(Variant::FLOAT, path + "reference/range_max", PROPERTY_HINT_RANGE, HINT_POSITION));
131+
String hint_apply_range;
132+
if (get_apply_transform_mode(i) == TRANSFORM_MODE_POSITION) {
133+
hint_apply_range = HINT_POSITION;
134+
} else if (get_apply_transform_mode(i) == TRANSFORM_MODE_ROTATION) {
135+
hint_apply_range = HINT_ROTATION;
136+
} else {
137+
hint_apply_range = HINT_SCALE;
138+
}
139+
p_list->push_back(PropertyInfo(Variant::INT, path + "apply/transform_mode", PROPERTY_HINT_ENUM, "Position,Rotation,Scale"));
140+
p_list->push_back(PropertyInfo(Variant::INT, path + "apply/axis", PROPERTY_HINT_ENUM, "X,Y,Z"));
141+
p_list->push_back(PropertyInfo(Variant::FLOAT, path + "apply/range_min", PROPERTY_HINT_RANGE, hint_apply_range));
142+
p_list->push_back(PropertyInfo(Variant::FLOAT, path + "apply/range_max", PROPERTY_HINT_RANGE, hint_apply_range));
143+
144+
String hint_reference_range;
145+
if (get_reference_transform_mode(i) == TRANSFORM_MODE_POSITION) {
146+
hint_reference_range = HINT_POSITION;
147+
} else if (get_reference_transform_mode(i) == TRANSFORM_MODE_ROTATION) {
148+
hint_reference_range = HINT_ROTATION;
149+
} else {
150+
hint_reference_range = HINT_SCALE;
151+
}
152+
p_list->push_back(PropertyInfo(Variant::INT, path + "reference/transform_mode", PROPERTY_HINT_ENUM, "Position,Rotation,Scale"));
153+
p_list->push_back(PropertyInfo(Variant::INT, path + "reference/axis", PROPERTY_HINT_ENUM, "X,Y,Z"));
154+
p_list->push_back(PropertyInfo(Variant::FLOAT, path + "reference/range_min", PROPERTY_HINT_RANGE, hint_reference_range));
155+
p_list->push_back(PropertyInfo(Variant::FLOAT, path + "reference/range_max", PROPERTY_HINT_RANGE, hint_reference_range));
172156

173-
props.push_back(PropertyInfo(Variant::BOOL, path + "relative"));
174-
props.push_back(PropertyInfo(Variant::BOOL, path + "additive"));
175-
}
176-
for (PropertyInfo &p : props) {
177-
_validate_dynamic_prop(p);
178-
p_list->push_back(p);
157+
p_list->push_back(PropertyInfo(Variant::BOOL, path + "relative"));
158+
p_list->push_back(PropertyInfo(Variant::BOOL, path + "additive"));
179159
}
180160
}
181161

scene/3d/convert_transform_modifier_3d.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ class ConvertTransformModifier3D : public BoneConstraint3D {
6161
bool _get(const StringName &p_path, Variant &r_ret) const;
6262
bool _set(const StringName &p_path, const Variant &p_value);
6363
void _get_property_list(List<PropertyInfo> *p_list) const;
64-
void _validate_dynamic_prop(PropertyInfo &p_property) const;
6564

6665
static void _bind_methods();
6766

scene/3d/copy_transform_modifier_3d.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,6 @@ void CopyTransformModifier3D::_get_property_list(List<PropertyInfo> *p_list) con
9191
p_list->push_back(PropertyInfo(Variant::BOOL, path + "relative"));
9292
p_list->push_back(PropertyInfo(Variant::BOOL, path + "additive"));
9393
}
94-
95-
for (PropertyInfo &E : *p_list) {
96-
_validate_property(E);
97-
}
9894
}
9995

10096
void CopyTransformModifier3D::_validate_setting(int p_index) {

scene/3d/look_at_modifier_3d.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131
#include "look_at_modifier_3d.h"
3232

3333
void LookAtModifier3D::_validate_property(PropertyInfo &p_property) const {
34-
SkeletonModifier3D::_validate_property(p_property);
35-
3634
if (p_property.name == "bone_name" || p_property.name == "origin_bone_name") {
3735
Skeleton3D *skeleton = get_skeleton();
3836
if (skeleton) {

scene/3d/skeleton_3d.cpp

Lines changed: 15 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -182,56 +182,29 @@ bool Skeleton3D::_get(const StringName &p_path, Variant &r_ret) const {
182182
void Skeleton3D::_get_property_list(List<PropertyInfo> *p_list) const {
183183
for (uint32_t i = 0; i < bones.size(); i++) {
184184
const String prep = vformat("%s/%d/", "bones", i);
185+
186+
int enabled_usage = PROPERTY_USAGE_NO_EDITOR;
187+
int xform_usage = PROPERTY_USAGE_NO_EDITOR;
188+
if (is_show_rest_only()) {
189+
enabled_usage |= PROPERTY_USAGE_READ_ONLY;
190+
xform_usage |= PROPERTY_USAGE_READ_ONLY;
191+
} else if (!is_bone_enabled(i)) {
192+
xform_usage |= PROPERTY_USAGE_READ_ONLY;
193+
}
194+
185195
p_list->push_back(PropertyInfo(Variant::STRING, prep + "name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR));
186196
p_list->push_back(PropertyInfo(Variant::INT, prep + "parent", PROPERTY_HINT_RANGE, "-1," + itos(bones.size() - 1) + ",1", PROPERTY_USAGE_NO_EDITOR));
187-
p_list->push_back(PropertyInfo(Variant::TRANSFORM3D, prep + "rest", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR));
188-
p_list->push_back(PropertyInfo(Variant::BOOL, prep + "enabled", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR));
189-
p_list->push_back(PropertyInfo(Variant::VECTOR3, prep + "position", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR));
190-
p_list->push_back(PropertyInfo(Variant::QUATERNION, prep + "rotation", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR));
191-
p_list->push_back(PropertyInfo(Variant::VECTOR3, prep + "scale", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR));
197+
p_list->push_back(PropertyInfo(Variant::TRANSFORM3D, prep + "rest", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR | PROPERTY_USAGE_READ_ONLY));
198+
p_list->push_back(PropertyInfo(Variant::BOOL, prep + "enabled", PROPERTY_HINT_NONE, "", enabled_usage));
199+
p_list->push_back(PropertyInfo(Variant::VECTOR3, prep + "position", PROPERTY_HINT_NONE, "", xform_usage));
200+
p_list->push_back(PropertyInfo(Variant::QUATERNION, prep + "rotation", PROPERTY_HINT_NONE, "", xform_usage));
201+
p_list->push_back(PropertyInfo(Variant::VECTOR3, prep + "scale", PROPERTY_HINT_NONE, "", xform_usage));
192202

193203
for (const KeyValue<StringName, Variant> &K : bones[i].metadata) {
194204
PropertyInfo pi = PropertyInfo(bones[i].metadata[K.key].get_type(), prep + "bone_meta/" + K.key, PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR);
195205
p_list->push_back(pi);
196206
}
197207
}
198-
199-
for (PropertyInfo &E : *p_list) {
200-
_validate_property(E);
201-
}
202-
}
203-
204-
void Skeleton3D::_validate_property(PropertyInfo &p_property) const {
205-
PackedStringArray split = p_property.name.split("/");
206-
if (split.size() == 3 && split[0] == "bones") {
207-
if (split[2] == "rest") {
208-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
209-
}
210-
if (is_show_rest_only()) {
211-
if (split[2] == "enabled") {
212-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
213-
}
214-
if (split[2] == "position") {
215-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
216-
}
217-
if (split[2] == "rotation") {
218-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
219-
}
220-
if (split[2] == "scale") {
221-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
222-
}
223-
} else if (!is_bone_enabled(split[1].to_int())) {
224-
if (split[2] == "position") {
225-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
226-
}
227-
if (split[2] == "rotation") {
228-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
229-
}
230-
if (split[2] == "scale") {
231-
p_property.usage |= PROPERTY_USAGE_READ_ONLY;
232-
}
233-
}
234-
}
235208
}
236209

237210
void Skeleton3D::_update_process_order() const {

scene/3d/skeleton_3d.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,6 @@ class Skeleton3D : public Node3D {
208208
bool _get(const StringName &p_path, Variant &r_ret) const;
209209
bool _set(const StringName &p_path, const Variant &p_value);
210210
void _get_property_list(List<PropertyInfo> *p_list) const;
211-
void _validate_property(PropertyInfo &p_property) const;
212211
void _notification(int p_what);
213212
TypedArray<StringName> _get_bone_meta_list_bind(int p_bone) const;
214213
static void _bind_methods();

0 commit comments

Comments
 (0)