@@ -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-
157125void 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
0 commit comments