diff options
Diffstat (limited to 'scene')
370 files changed, 0 insertions, 9270 deletions
diff --git a/scene/2d/animated_sprite_2d.cpp b/scene/2d/animated_sprite_2d.cpp index fc34f967ce..842740aa5e 100644 --- a/scene/2d/animated_sprite_2d.cpp +++ b/scene/2d/animated_sprite_2d.cpp @@ -103,7 +103,6 @@ Rect2 AnimatedSprite2D::_get_rect() const { } void SpriteFrames::add_frame(const StringName &p_anim, const Ref<Texture2D> &p_frame, int p_at_pos) { - Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_MSG(!E, "Animation '" + String(p_anim) + "' doesn't exist."); @@ -123,7 +122,6 @@ int SpriteFrames::get_frame_count(const StringName &p_anim) const { } void SpriteFrames::remove_frame(const StringName &p_anim, int p_idx) { - Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_MSG(!E, "Animation '" + String(p_anim) + "' doesn't exist."); @@ -131,7 +129,6 @@ void SpriteFrames::remove_frame(const StringName &p_anim, int p_idx) { emit_changed(); } void SpriteFrames::clear(const StringName &p_anim) { - Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_MSG(!E, "Animation '" + String(p_anim) + "' doesn't exist."); @@ -140,13 +137,11 @@ void SpriteFrames::clear(const StringName &p_anim) { } void SpriteFrames::clear_all() { - animations.clear(); add_animation("default"); } void SpriteFrames::add_animation(const StringName &p_anim) { - ERR_FAIL_COND_MSG(animations.has(p_anim), "SpriteFrames already has animation '" + p_anim + "'."); animations[p_anim] = Anim(); @@ -155,16 +150,13 @@ void SpriteFrames::add_animation(const StringName &p_anim) { } bool SpriteFrames::has_animation(const StringName &p_anim) const { - return animations.has(p_anim); } void SpriteFrames::remove_animation(const StringName &p_anim) { - animations.erase(p_anim); } void SpriteFrames::rename_animation(const StringName &p_prev, const StringName &p_next) { - ERR_FAIL_COND_MSG(!animations.has(p_prev), "SpriteFrames doesn't have animation '" + String(p_prev) + "'."); ERR_FAIL_COND_MSG(animations.has(p_next), "Animation '" + String(p_next) + "' already exists."); @@ -176,12 +168,10 @@ void SpriteFrames::rename_animation(const StringName &p_prev, const StringName & } Vector<String> SpriteFrames::_get_animation_list() const { - Vector<String> ret; List<StringName> al; get_animation_list(&al); for (List<StringName>::Element *E = al.front(); E; E = E->next()) { - ret.push_back(E->get()); } @@ -189,14 +179,12 @@ Vector<String> SpriteFrames::_get_animation_list() const { } void SpriteFrames::get_animation_list(List<StringName> *r_animations) const { - for (const Map<StringName, Anim>::Element *E = animations.front(); E; E = E->next()) { r_animations->push_back(E->key()); } } Vector<String> SpriteFrames::get_animation_names() const { - Vector<String> names; for (const Map<StringName, Anim>::Element *E = animations.front(); E; E = E->next()) { names.push_back(E->key()); @@ -206,14 +194,12 @@ Vector<String> SpriteFrames::get_animation_names() const { } void SpriteFrames::set_animation_speed(const StringName &p_anim, float p_fps) { - ERR_FAIL_COND_MSG(p_fps < 0, "Animation speed cannot be negative (" + itos(p_fps) + ")."); Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_MSG(!E, "Animation '" + String(p_anim) + "' doesn't exist."); E->get().speed = p_fps; } float SpriteFrames::get_animation_speed(const StringName &p_anim) const { - const Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_V_MSG(!E, 0, "Animation '" + String(p_anim) + "' doesn't exist."); return E->get().speed; @@ -231,7 +217,6 @@ bool SpriteFrames::get_animation_loop(const StringName &p_anim) const { } void SpriteFrames::_set_frames(const Array &p_frames) { - clear_all(); Map<StringName, Anim>::Element *E = animations.find(SceneStringNames::get_singleton()->_default); ERR_FAIL_COND(!E); @@ -241,12 +226,10 @@ void SpriteFrames::_set_frames(const Array &p_frames) { E->get().frames.write[i] = p_frames[i]; } Array SpriteFrames::_get_frames() const { - return Array(); } Array SpriteFrames::_get_animations() const { - Array anims; for (Map<StringName, Anim>::Element *E = animations.front(); E; E = E->next()) { Dictionary d; @@ -264,10 +247,8 @@ Array SpriteFrames::_get_animations() const { return anims; } void SpriteFrames::_set_animations(const Array &p_animations) { - animations.clear(); for (int i = 0; i < p_animations.size(); i++) { - Dictionary d = p_animations[i]; ERR_CONTINUE(!d.has("name")); @@ -280,7 +261,6 @@ void SpriteFrames::_set_animations(const Array &p_animations) { anim.loop = d["loop"]; Array frames = d["frames"]; for (int j = 0; j < frames.size(); j++) { - RES res = frames[j]; anim.frames.push_back(res); } @@ -290,7 +270,6 @@ void SpriteFrames::_set_animations(const Array &p_animations) { } void SpriteFrames::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_animation", "anim"), &SpriteFrames::add_animation); ClassDB::bind_method(D_METHOD("has_animation", "anim"), &SpriteFrames::has_animation); ClassDB::bind_method(D_METHOD("remove_animation", "anim"), &SpriteFrames::remove_animation); @@ -324,16 +303,13 @@ void SpriteFrames::_bind_methods() { } SpriteFrames::SpriteFrames() { - add_animation(SceneStringNames::get_singleton()->_default); } void AnimatedSprite2D::_validate_property(PropertyInfo &property) const { - if (!frames.is_valid()) return; if (property.name == "animation") { - property.hint = PROPERTY_HINT_ENUM; List<StringName> names; frames->get_animation_list(&names); @@ -371,10 +347,8 @@ void AnimatedSprite2D::_validate_property(PropertyInfo &property) const { } void AnimatedSprite2D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_INTERNAL_PROCESS: { - if (frames.is_null()) return; if (!frames->has_animation(animation)) @@ -389,9 +363,7 @@ void AnimatedSprite2D::_notification(int p_what) { float remaining = get_process_delta_time(); while (remaining) { - if (timeout <= 0) { - timeout = _get_frame_duration(); int fc = frames->get_frame_count(animation); @@ -433,7 +405,6 @@ void AnimatedSprite2D::_notification(int p_what) { } break; case NOTIFICATION_DRAW: { - if (frames.is_null()) return; if (frame < 0) @@ -473,7 +444,6 @@ void AnimatedSprite2D::_notification(int p_what) { } void AnimatedSprite2D::set_sprite_frames(const Ref<SpriteFrames> &p_frames) { - if (frames.is_valid()) frames->disconnect("changed", callable_mp(this, &AnimatedSprite2D::_res_changed)); frames = p_frames; @@ -493,12 +463,10 @@ void AnimatedSprite2D::set_sprite_frames(const Ref<SpriteFrames> &p_frames) { } Ref<SpriteFrames> AnimatedSprite2D::get_sprite_frames() const { - return frames; } void AnimatedSprite2D::set_frame(int p_frame) { - if (!frames.is_valid()) { return; } @@ -522,12 +490,10 @@ void AnimatedSprite2D::set_frame(int p_frame) { emit_signal(SceneStringNames::get_singleton()->frame_changed); } int AnimatedSprite2D::get_frame() const { - return frame; } void AnimatedSprite2D::set_speed_scale(float p_speed_scale) { - float elapsed = _get_frame_duration() - timeout; speed_scale = MAX(p_speed_scale, 0.0f); @@ -538,56 +504,46 @@ void AnimatedSprite2D::set_speed_scale(float p_speed_scale) { } float AnimatedSprite2D::get_speed_scale() const { - return speed_scale; } void AnimatedSprite2D::set_centered(bool p_center) { - centered = p_center; update(); item_rect_changed(); } bool AnimatedSprite2D::is_centered() const { - return centered; } void AnimatedSprite2D::set_offset(const Point2 &p_offset) { - offset = p_offset; update(); item_rect_changed(); _change_notify("offset"); } Point2 AnimatedSprite2D::get_offset() const { - return offset; } void AnimatedSprite2D::set_flip_h(bool p_flip) { - hflip = p_flip; update(); } bool AnimatedSprite2D::is_flipped_h() const { - return hflip; } void AnimatedSprite2D::set_flip_v(bool p_flip) { - vflip = p_flip; update(); } bool AnimatedSprite2D::is_flipped_v() const { - return vflip; } void AnimatedSprite2D::_res_changed() { - set_frame(frame); _change_notify("frame"); _change_notify("animation"); @@ -595,7 +551,6 @@ void AnimatedSprite2D::_res_changed() { } void AnimatedSprite2D::_set_playing(bool p_playing) { - if (playing == p_playing) return; playing = p_playing; @@ -604,12 +559,10 @@ void AnimatedSprite2D::_set_playing(bool p_playing) { } bool AnimatedSprite2D::_is_playing() const { - return playing; } void AnimatedSprite2D::play(const StringName &p_animation, const bool p_backwards) { - backwards = p_backwards; if (p_animation) { @@ -622,12 +575,10 @@ void AnimatedSprite2D::play(const StringName &p_animation, const bool p_backward } void AnimatedSprite2D::stop() { - _set_playing(false); } bool AnimatedSprite2D::is_playing() const { - return playing; } @@ -642,7 +593,6 @@ float AnimatedSprite2D::_get_frame_duration() { } void AnimatedSprite2D::_reset_timeout() { - if (!playing) return; @@ -651,7 +601,6 @@ void AnimatedSprite2D::_reset_timeout() { } void AnimatedSprite2D::set_animation(const StringName &p_animation) { - ERR_FAIL_COND_MSG(frames == nullptr, vformat("There is no animation with name '%s'.", p_animation)); ERR_FAIL_COND_MSG(frames->get_animation_names().find(p_animation) == -1, vformat("There is no animation with name '%s'.", p_animation)); @@ -665,12 +614,10 @@ void AnimatedSprite2D::set_animation(const StringName &p_animation) { update(); } StringName AnimatedSprite2D::get_animation() const { - return animation; } String AnimatedSprite2D::get_configuration_warning() const { - if (frames.is_null()) { return TTR("A SpriteFrames resource must be created or set in the \"Frames\" property in order for AnimatedSprite to display frames."); } @@ -697,7 +644,6 @@ float AnimatedSprite2D::get_shininess() const { } void AnimatedSprite2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_sprite_frames", "sprite_frames"), &AnimatedSprite2D::set_sprite_frames); ClassDB::bind_method(D_METHOD("get_sprite_frames"), &AnimatedSprite2D::get_sprite_frames); @@ -755,7 +701,6 @@ void AnimatedSprite2D::_bind_methods() { } AnimatedSprite2D::AnimatedSprite2D() { - centered = true; hflip = false; vflip = false; diff --git a/scene/2d/animated_sprite_2d.h b/scene/2d/animated_sprite_2d.h index 726ecefd32..fae334498d 100644 --- a/scene/2d/animated_sprite_2d.h +++ b/scene/2d/animated_sprite_2d.h @@ -35,11 +35,9 @@ #include "scene/resources/texture.h" class SpriteFrames : public Resource { - GDCLASS(SpriteFrames, Resource); struct Anim { - float speed; bool loop; Vector<Ref<Texture2D>> frames; @@ -87,7 +85,6 @@ public: void add_frame(const StringName &p_anim, const Ref<Texture2D> &p_frame, int p_at_pos = -1); int get_frame_count(const StringName &p_anim) const; _FORCE_INLINE_ Ref<Texture2D> get_frame(const StringName &p_anim, int p_idx) const { - const Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_V_MSG(!E, Ref<Texture2D>(), "Animation '" + String(p_anim) + "' doesn't exist."); ERR_FAIL_COND_V(p_idx < 0, Ref<Texture2D>()); @@ -98,7 +95,6 @@ public: } _FORCE_INLINE_ Ref<Texture2D> get_normal_frame(const StringName &p_anim, int p_idx) const { - const Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_V_MSG(!E, Ref<Texture2D>(), "Animation '" + String(p_anim) + "' doesn't exist."); ERR_FAIL_COND_V(p_idx < 0, Ref<Texture2D>()); @@ -112,7 +108,6 @@ public: } _FORCE_INLINE_ Ref<Texture2D> get_specular_frame(const StringName &p_anim, int p_idx) const { - const Map<StringName, Anim>::Element *E = animations.find(p_anim); ERR_FAIL_COND_V(!E, Ref<Texture2D>()); ERR_FAIL_COND_V(p_idx < 0, Ref<Texture2D>()); @@ -141,7 +136,6 @@ public: }; class AnimatedSprite2D : public Node2D { - GDCLASS(AnimatedSprite2D, Node2D); Ref<SpriteFrames> frames; diff --git a/scene/2d/area_2d.cpp b/scene/2d/area_2d.cpp index 8ba334bc67..90af1ff274 100644 --- a/scene/2d/area_2d.cpp +++ b/scene/2d/area_2d.cpp @@ -35,27 +35,22 @@ #include "servers/physics_server_2d.h" void Area2D::set_space_override_mode(SpaceOverride p_mode) { - space_override = p_mode; PhysicsServer2D::get_singleton()->area_set_space_override_mode(get_rid(), PhysicsServer2D::AreaSpaceOverrideMode(p_mode)); } Area2D::SpaceOverride Area2D::get_space_override_mode() const { - return space_override; } void Area2D::set_gravity_is_point(bool p_enabled) { - gravity_is_point = p_enabled; PhysicsServer2D::get_singleton()->area_set_param(get_rid(), PhysicsServer2D::AREA_PARAM_GRAVITY_IS_POINT, p_enabled); } bool Area2D::is_gravity_a_point() const { - return gravity_is_point; } void Area2D::set_gravity_distance_scale(real_t p_scale) { - gravity_distance_scale = p_scale; PhysicsServer2D::get_singleton()->area_set_param(get_rid(), PhysicsServer2D::AREA_PARAM_GRAVITY_DISTANCE_SCALE, p_scale); } @@ -65,58 +60,47 @@ real_t Area2D::get_gravity_distance_scale() const { } void Area2D::set_gravity_vector(const Vector2 &p_vec) { - gravity_vec = p_vec; PhysicsServer2D::get_singleton()->area_set_param(get_rid(), PhysicsServer2D::AREA_PARAM_GRAVITY_VECTOR, p_vec); } Vector2 Area2D::get_gravity_vector() const { - return gravity_vec; } void Area2D::set_gravity(real_t p_gravity) { - gravity = p_gravity; PhysicsServer2D::get_singleton()->area_set_param(get_rid(), PhysicsServer2D::AREA_PARAM_GRAVITY, p_gravity); } real_t Area2D::get_gravity() const { - return gravity; } void Area2D::set_linear_damp(real_t p_linear_damp) { - linear_damp = p_linear_damp; PhysicsServer2D::get_singleton()->area_set_param(get_rid(), PhysicsServer2D::AREA_PARAM_LINEAR_DAMP, p_linear_damp); } real_t Area2D::get_linear_damp() const { - return linear_damp; } void Area2D::set_angular_damp(real_t p_angular_damp) { - angular_damp = p_angular_damp; PhysicsServer2D::get_singleton()->area_set_param(get_rid(), PhysicsServer2D::AREA_PARAM_ANGULAR_DAMP, p_angular_damp); } real_t Area2D::get_angular_damp() const { - return angular_damp; } void Area2D::set_priority(real_t p_priority) { - priority = p_priority; PhysicsServer2D::get_singleton()->area_set_param(get_rid(), PhysicsServer2D::AREA_PARAM_PRIORITY, p_priority); } real_t Area2D::get_priority() const { - return priority; } void Area2D::_body_enter_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -128,13 +112,11 @@ void Area2D::_body_enter_tree(ObjectID p_id) { E->get().in_tree = true; emit_signal(SceneStringNames::get_singleton()->body_entered, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_entered, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape); } } void Area2D::_body_exit_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -144,13 +126,11 @@ void Area2D::_body_exit_tree(ObjectID p_id) { E->get().in_tree = false; emit_signal(SceneStringNames::get_singleton()->body_exited, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_exited, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape); } } void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, int p_body_shape, int p_area_shape) { - bool body_in = p_status == PhysicsServer2D::AREA_BODY_ADDED; ObjectID objid = p_instance; @@ -167,7 +147,6 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i if (body_in) { if (!E) { - E = body_map.insert(objid, BodyState()); E->get().rc = 0; E->get().in_tree = node && node->is_inside_tree(); @@ -188,7 +167,6 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i } } else { - E->get().rc--; if (node) @@ -197,7 +175,6 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i bool eraseit = false; if (E->get().rc == 0) { - if (node) { node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_body_enter_tree)); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_body_exit_tree)); @@ -219,7 +196,6 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i } void Area2D::_area_enter_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -231,13 +207,11 @@ void Area2D::_area_enter_tree(ObjectID p_id) { E->get().in_tree = true; emit_signal(SceneStringNames::get_singleton()->area_entered, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->area_shape_entered, p_id, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape); } } void Area2D::_area_exit_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -247,13 +221,11 @@ void Area2D::_area_exit_tree(ObjectID p_id) { E->get().in_tree = false; emit_signal(SceneStringNames::get_singleton()->area_exited, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->area_shape_exited, p_id, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape); } } void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, int p_area_shape, int p_self_shape) { - bool area_in = p_status == PhysicsServer2D::AREA_BODY_ADDED; ObjectID objid = p_instance; @@ -269,7 +241,6 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i if (area_in) { if (!E) { - E = area_map.insert(objid, AreaState()); E->get().rc = 0; E->get().in_tree = node && node->is_inside_tree(); @@ -290,7 +261,6 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i } } else { - E->get().rc--; if (node) @@ -299,7 +269,6 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i bool eraseit = false; if (E->get().rc == 0) { - if (node) { node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area2D::_area_enter_tree)); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area2D::_area_exit_tree)); @@ -321,7 +290,6 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i } void Area2D::_clear_monitoring() { - ERR_FAIL_COND_MSG(locked, "This function can't be used during the in/out signal."); { @@ -330,7 +298,6 @@ void Area2D::_clear_monitoring() { //disconnect all monitored stuff for (Map<ObjectID, BodyState>::Element *E = bmcopy.front(); E; E = E->next()) { - Object *obj = ObjectDB::get_instance(E->key()); Node *node = Object::cast_to<Node>(obj); @@ -344,7 +311,6 @@ void Area2D::_clear_monitoring() { continue; for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_exited, E->key(), node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape); } @@ -353,13 +319,11 @@ void Area2D::_clear_monitoring() { } { - Map<ObjectID, AreaState> bmcopy = area_map; area_map.clear(); //disconnect all monitored stuff for (Map<ObjectID, AreaState>::Element *E = bmcopy.front(); E; E = E->next()) { - Object *obj = ObjectDB::get_instance(E->key()); Node *node = Object::cast_to<Node>(obj); @@ -373,7 +337,6 @@ void Area2D::_clear_monitoring() { continue; for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->area_shape_exited, E->key(), node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape); } @@ -383,18 +346,14 @@ void Area2D::_clear_monitoring() { } void Area2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_EXIT_TREE: { - _clear_monitoring(); } break; } } void Area2D::set_monitoring(bool p_enable) { - if (p_enable == monitoring) return; ERR_FAIL_COND_MSG(locked, "Function blocked during in/out signal. Use set_deferred(\"monitoring\", true/false)."); @@ -402,7 +361,6 @@ void Area2D::set_monitoring(bool p_enable) { monitoring = p_enable; if (monitoring) { - PhysicsServer2D::get_singleton()->area_set_monitor_callback(get_rid(), this, SceneStringNames::get_singleton()->_body_inout); PhysicsServer2D::get_singleton()->area_set_area_monitor_callback(get_rid(), this, SceneStringNames::get_singleton()->_area_inout); @@ -414,12 +372,10 @@ void Area2D::set_monitoring(bool p_enable) { } bool Area2D::is_monitoring() const { - return monitoring; } void Area2D::set_monitorable(bool p_enable) { - ERR_FAIL_COND_MSG(locked || (is_inside_tree() && PhysicsServer2D::get_singleton()->is_flushing_queries()), "Function blocked during in/out signal. Use set_deferred(\"monitorable\", true/false)."); if (p_enable == monitorable) @@ -431,12 +387,10 @@ void Area2D::set_monitorable(bool p_enable) { } bool Area2D::is_monitorable() const { - return monitorable; } TypedArray<Node2D> Area2D::get_overlapping_bodies() const { - ERR_FAIL_COND_V_MSG(!monitoring, Array(), "Can't find overlapping bodies when monitoring is off."); TypedArray<Node2D> ret; ret.resize(body_map.size()); @@ -454,7 +408,6 @@ TypedArray<Node2D> Area2D::get_overlapping_bodies() const { } TypedArray<Area2D> Area2D::get_overlapping_areas() const { - ERR_FAIL_COND_V_MSG(!monitoring, Array(), "Can't find overlapping bodies when monitoring is off."); TypedArray<Area2D> ret; ret.resize(area_map.size()); @@ -472,7 +425,6 @@ TypedArray<Area2D> Area2D::get_overlapping_areas() const { } bool Area2D::overlaps_area(Node *p_area) const { - ERR_FAIL_NULL_V(p_area, false); const Map<ObjectID, AreaState>::Element *E = area_map.find(p_area->get_instance_id()); if (!E) @@ -481,7 +433,6 @@ bool Area2D::overlaps_area(Node *p_area) const { } bool Area2D::overlaps_body(Node *p_body) const { - ERR_FAIL_NULL_V(p_body, false); const Map<ObjectID, BodyState>::Element *E = body_map.find(p_body->get_instance_id()); if (!E) @@ -490,29 +441,24 @@ bool Area2D::overlaps_body(Node *p_body) const { } void Area2D::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; PhysicsServer2D::get_singleton()->area_set_collision_mask(get_rid(), p_mask); } uint32_t Area2D::get_collision_mask() const { - return collision_mask; } void Area2D::set_collision_layer(uint32_t p_layer) { - collision_layer = p_layer; PhysicsServer2D::get_singleton()->area_set_collision_layer(get_rid(), p_layer); } uint32_t Area2D::get_collision_layer() const { - return collision_layer; } void Area2D::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -522,12 +468,10 @@ void Area2D::set_collision_mask_bit(int p_bit, bool p_value) { } bool Area2D::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } void Area2D::set_collision_layer_bit(int p_bit, bool p_value) { - uint32_t layer = get_collision_layer(); if (p_value) layer |= 1 << p_bit; @@ -537,27 +481,22 @@ void Area2D::set_collision_layer_bit(int p_bit, bool p_value) { } bool Area2D::get_collision_layer_bit(int p_bit) const { - return get_collision_layer() & (1 << p_bit); } void Area2D::set_audio_bus_override(bool p_override) { - audio_bus_override = p_override; } bool Area2D::is_overriding_audio_bus() const { - return audio_bus_override; } void Area2D::set_audio_bus_name(const StringName &p_audio_bus) { - audio_bus = p_audio_bus; } StringName Area2D::get_audio_bus_name() const { - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (AudioServer::get_singleton()->get_bus_name(i) == audio_bus) { return audio_bus; @@ -567,9 +506,7 @@ StringName Area2D::get_audio_bus_name() const { } void Area2D::_validate_property(PropertyInfo &property) const { - if (property.name == "audio_bus_name") { - String options; for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (i > 0) @@ -677,7 +614,6 @@ void Area2D::_bind_methods() { Area2D::Area2D() : CollisionObject2D(PhysicsServer2D::get_singleton()->area_create(), true) { - space_override = SPACE_OVERRIDE_DISABLED; set_gravity(98); set_gravity_vector(Vector2(0, 1)); diff --git a/scene/2d/area_2d.h b/scene/2d/area_2d.h index 0e2c0ac672..3b9b57cab4 100644 --- a/scene/2d/area_2d.h +++ b/scene/2d/area_2d.h @@ -35,7 +35,6 @@ #include "scene/2d/collision_object_2d.h" class Area2D : public CollisionObject2D { - GDCLASS(Area2D, CollisionObject2D); public: @@ -68,7 +67,6 @@ private: void _body_exit_tree(ObjectID p_id); struct ShapePair { - int body_shape; int area_shape; bool operator<(const ShapePair &p_sp) const { @@ -86,7 +84,6 @@ private: }; struct BodyState { - int rc; bool in_tree; VSet<ShapePair> shapes; @@ -100,7 +97,6 @@ private: void _area_exit_tree(ObjectID p_id); struct AreaShapePair { - int area_shape; int self_shape; bool operator<(const AreaShapePair &p_sp) const { @@ -118,7 +114,6 @@ private: }; struct AreaState { - int rc; bool in_tree; VSet<AreaShapePair> shapes; diff --git a/scene/2d/audio_stream_player_2d.cpp b/scene/2d/audio_stream_player_2d.cpp index 55d111439a..b1ca2912e9 100644 --- a/scene/2d/audio_stream_player_2d.cpp +++ b/scene/2d/audio_stream_player_2d.cpp @@ -35,7 +35,6 @@ #include "scene/main/window.h" void AudioStreamPlayer2D::_mix_audio() { - if (!stream_playback.is_valid() || !active || (stream_paused && !stream_paused_fade_out)) { return; @@ -59,7 +58,6 @@ void AudioStreamPlayer2D::_mix_audio() { //write all outputs for (int i = 0; i < output_count; i++) { - Output current = outputs[i]; //see if current output exists, to keep volume ramp @@ -98,7 +96,6 @@ void AudioStreamPlayer2D::_mix_audio() { AudioFrame *target = AudioServer::get_singleton()->thread_get_channel_mix_buffer(current.bus_index, 0); for (int j = 0; j < buffer_size; j++) { - target[j] += buffer[j] * vol; vol += vol_inc; } @@ -120,7 +117,6 @@ void AudioStreamPlayer2D::_mix_audio() { continue; for (int j = 0; j < buffer_size; j++) { - AudioFrame frame = buffer[j] * vol; for (int k = 0; k < cc; k++) { targets[k][j] += frame; @@ -145,9 +141,7 @@ void AudioStreamPlayer2D::_mix_audio() { } void AudioStreamPlayer2D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - AudioServer::get_singleton()->add_callback(_mix_audios, this); if (autoplay && !Engine::get_singleton()->is_editor_hint()) { play(); @@ -155,7 +149,6 @@ void AudioStreamPlayer2D::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - AudioServer::get_singleton()->remove_callback(_mix_audios, this); } @@ -171,7 +164,6 @@ void AudioStreamPlayer2D::_notification(int p_what) { } if (p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { - //update anything related to position first, if possible of course if (!output_ready) { @@ -194,7 +186,6 @@ void AudioStreamPlayer2D::_notification(int p_what) { int areas = space_state->intersect_point(global_pos, sr, MAX_INTERSECT_AREAS, Set<RID>(), area_mask, false, true); for (int i = 0; i < areas; i++) { - Area2D *area2d = Object::cast_to<Area2D>(sr[i].collider); if (!area2d) continue; @@ -209,10 +200,8 @@ void AudioStreamPlayer2D::_notification(int p_what) { world_2d->get_viewport_list(&viewports); for (List<Viewport *>::Element *E = viewports.front(); E; E = E->next()) { - Viewport *vp = E->get(); if (vp->is_audio_listener_2d()) { - //compute matrix to convert to screen Transform2D to_screen = vp->get_global_canvas_transform() * vp->get_canvas_transform(); Vector2 screen_size = vp->get_visible_rect().size; @@ -269,7 +258,6 @@ void AudioStreamPlayer2D::_notification(int p_what) { } void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) { - AudioServer::get_singleton()->lock(); mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size()); @@ -294,16 +282,13 @@ void AudioStreamPlayer2D::set_stream(Ref<AudioStream> p_stream) { } Ref<AudioStream> AudioStreamPlayer2D::get_stream() const { - return stream; } void AudioStreamPlayer2D::set_volume_db(float p_volume) { - volume_db = p_volume; } float AudioStreamPlayer2D::get_volume_db() const { - return volume_db; } @@ -316,7 +301,6 @@ float AudioStreamPlayer2D::get_pitch_scale() const { } void AudioStreamPlayer2D::play(float p_from_pos) { - if (!is_playing()) { // Reset the prev_output_count if the stream is stopped prev_output_count = 0; @@ -331,14 +315,12 @@ void AudioStreamPlayer2D::play(float p_from_pos) { } void AudioStreamPlayer2D::seek(float p_seconds) { - if (stream_playback.is_valid()) { setseek = p_seconds; } } void AudioStreamPlayer2D::stop() { - if (stream_playback.is_valid()) { active = false; set_physics_process_internal(false); @@ -347,7 +329,6 @@ void AudioStreamPlayer2D::stop() { } bool AudioStreamPlayer2D::is_playing() const { - if (stream_playback.is_valid()) { return active; // && stream_playback->is_playing(); } @@ -356,7 +337,6 @@ bool AudioStreamPlayer2D::is_playing() const { } float AudioStreamPlayer2D::get_playback_position() { - if (stream_playback.is_valid()) { return stream_playback->get_playback_position(); } @@ -365,14 +345,12 @@ float AudioStreamPlayer2D::get_playback_position() { } void AudioStreamPlayer2D::set_bus(const StringName &p_bus) { - //if audio is active, must lock this AudioServer::get_singleton()->lock(); bus = p_bus; AudioServer::get_singleton()->unlock(); } StringName AudioStreamPlayer2D::get_bus() const { - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (AudioServer::get_singleton()->get_bus_name(i) == bus) { return bus; @@ -382,30 +360,24 @@ StringName AudioStreamPlayer2D::get_bus() const { } void AudioStreamPlayer2D::set_autoplay(bool p_enable) { - autoplay = p_enable; } bool AudioStreamPlayer2D::is_autoplay_enabled() { - return autoplay; } void AudioStreamPlayer2D::_set_playing(bool p_enable) { - if (p_enable) play(); else stop(); } bool AudioStreamPlayer2D::_is_active() const { - return active; } void AudioStreamPlayer2D::_validate_property(PropertyInfo &property) const { - if (property.name == "bus") { - String options; for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (i > 0) @@ -419,42 +391,34 @@ void AudioStreamPlayer2D::_validate_property(PropertyInfo &property) const { } void AudioStreamPlayer2D::_bus_layout_changed() { - _change_notify(); } void AudioStreamPlayer2D::set_max_distance(float p_pixels) { - ERR_FAIL_COND(p_pixels <= 0.0); max_distance = p_pixels; } float AudioStreamPlayer2D::get_max_distance() const { - return max_distance; } void AudioStreamPlayer2D::set_attenuation(float p_curve) { - attenuation = p_curve; } float AudioStreamPlayer2D::get_attenuation() const { - return attenuation; } void AudioStreamPlayer2D::set_area_mask(uint32_t p_mask) { - area_mask = p_mask; } uint32_t AudioStreamPlayer2D::get_area_mask() const { - return area_mask; } void AudioStreamPlayer2D::set_stream_paused(bool p_pause) { - if (p_pause != stream_paused) { stream_paused = p_pause; stream_paused_fade_in = !p_pause; @@ -463,7 +427,6 @@ void AudioStreamPlayer2D::set_stream_paused(bool p_pause) { } bool AudioStreamPlayer2D::get_stream_paused() const { - return stream_paused; } @@ -472,7 +435,6 @@ Ref<AudioStreamPlayback> AudioStreamPlayer2D::get_stream_playback() { } void AudioStreamPlayer2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_stream", "stream"), &AudioStreamPlayer2D::set_stream); ClassDB::bind_method(D_METHOD("get_stream"), &AudioStreamPlayer2D::get_stream); @@ -527,7 +489,6 @@ void AudioStreamPlayer2D::_bind_methods() { } AudioStreamPlayer2D::AudioStreamPlayer2D() { - volume_db = 0; pitch_scale = 1.0; autoplay = false; diff --git a/scene/2d/audio_stream_player_2d.h b/scene/2d/audio_stream_player_2d.h index 86e931b3c6..7f0b6f5897 100644 --- a/scene/2d/audio_stream_player_2d.h +++ b/scene/2d/audio_stream_player_2d.h @@ -36,7 +36,6 @@ #include "servers/audio_server.h" class AudioStreamPlayer2D : public Node2D { - GDCLASS(AudioStreamPlayer2D, Node2D); private: @@ -47,7 +46,6 @@ private: }; struct Output { - AudioFrame vol; int bus_index; Viewport *viewport; //pointer only used for reference to previous mix diff --git a/scene/2d/back_buffer_copy.cpp b/scene/2d/back_buffer_copy.cpp index 4c952b7ca6..0bcb42e563 100644 --- a/scene/2d/back_buffer_copy.cpp +++ b/scene/2d/back_buffer_copy.cpp @@ -31,19 +31,14 @@ #include "back_buffer_copy.h" void BackBufferCopy::_update_copy_mode() { - switch (copy_mode) { - case COPY_MODE_DISABLED: { - RS::get_singleton()->canvas_item_set_copy_to_backbuffer(get_canvas_item(), false, Rect2()); } break; case COPY_MODE_RECT: { - RS::get_singleton()->canvas_item_set_copy_to_backbuffer(get_canvas_item(), true, rect); } break; case COPY_MODE_VIEWPORT: { - RS::get_singleton()->canvas_item_set_copy_to_backbuffer(get_canvas_item(), true, Rect2()); } break; @@ -52,7 +47,6 @@ void BackBufferCopy::_update_copy_mode() { #ifdef TOOLS_ENABLED Rect2 BackBufferCopy::_edit_get_rect() const { - return rect; } @@ -62,12 +56,10 @@ bool BackBufferCopy::_edit_use_rect() const { #endif Rect2 BackBufferCopy::get_anchorable_rect() const { - return rect; } void BackBufferCopy::set_rect(const Rect2 &p_rect) { - rect = p_rect; _update_copy_mode(); } @@ -77,17 +69,14 @@ Rect2 BackBufferCopy::get_rect() const { } void BackBufferCopy::set_copy_mode(CopyMode p_mode) { - copy_mode = p_mode; _update_copy_mode(); } BackBufferCopy::CopyMode BackBufferCopy::get_copy_mode() const { - return copy_mode; } void BackBufferCopy::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_rect", "rect"), &BackBufferCopy::set_rect); ClassDB::bind_method(D_METHOD("get_rect"), &BackBufferCopy::get_rect); @@ -103,7 +92,6 @@ void BackBufferCopy::_bind_methods() { } BackBufferCopy::BackBufferCopy() { - rect = Rect2(-100, -100, 200, 200); copy_mode = COPY_MODE_RECT; _update_copy_mode(); diff --git a/scene/2d/camera_2d.cpp b/scene/2d/camera_2d.cpp index d8af14a3fb..eeb87a7396 100644 --- a/scene/2d/camera_2d.cpp +++ b/scene/2d/camera_2d.cpp @@ -36,7 +36,6 @@ #include "servers/rendering_server.h" void Camera2D::_update_scroll() { - if (!is_inside_tree()) return; @@ -49,7 +48,6 @@ void Camera2D::_update_scroll() { return; if (current) { - ERR_FAIL_COND(custom_viewport && !ObjectDB::get_instance(custom_viewport_id)); Transform2D xform = get_camera_transform(); @@ -64,7 +62,6 @@ void Camera2D::_update_scroll() { } void Camera2D::_update_process_mode() { - if (Engine::get_singleton()->is_editor_hint()) { set_process_internal(false); set_physics_process_internal(false); @@ -78,7 +75,6 @@ void Camera2D::_update_process_mode() { } void Camera2D::set_zoom(const Vector2 &p_zoom) { - zoom = p_zoom; Point2 old_smoothed_camera_pos = smoothed_camera_pos; _update_scroll(); @@ -86,12 +82,10 @@ void Camera2D::set_zoom(const Vector2 &p_zoom) { }; Vector2 Camera2D::get_zoom() const { - return zoom; }; Transform2D Camera2D::get_camera_transform() { - if (!get_tree()) return Transform2D(); @@ -103,14 +97,11 @@ Transform2D Camera2D::get_camera_transform() { Point2 ret_camera_pos; if (!first) { - if (anchor_mode == ANCHOR_MODE_DRAG_CENTER) { - if (h_drag_enabled && !Engine::get_singleton()->is_editor_hint() && !h_offset_changed) { camera_pos.x = MIN(camera_pos.x, (new_camera_pos.x + screen_size.x * 0.5 * zoom.x * drag_margin[MARGIN_LEFT])); camera_pos.x = MAX(camera_pos.x, (new_camera_pos.x - screen_size.x * 0.5 * zoom.x * drag_margin[MARGIN_RIGHT])); } else { - if (h_ofs < 0) { camera_pos.x = new_camera_pos.x + screen_size.x * 0.5 * drag_margin[MARGIN_RIGHT] * h_ofs; } else { @@ -121,12 +112,10 @@ Transform2D Camera2D::get_camera_transform() { } if (v_drag_enabled && !Engine::get_singleton()->is_editor_hint() && !v_offset_changed) { - camera_pos.y = MIN(camera_pos.y, (new_camera_pos.y + screen_size.y * 0.5 * zoom.y * drag_margin[MARGIN_TOP])); camera_pos.y = MAX(camera_pos.y, (new_camera_pos.y - screen_size.y * 0.5 * zoom.y * drag_margin[MARGIN_BOTTOM])); } else { - if (v_ofs < 0) { camera_pos.y = new_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_BOTTOM] * v_ofs; } else { @@ -137,7 +126,6 @@ Transform2D Camera2D::get_camera_transform() { } } else if (anchor_mode == ANCHOR_MODE_FIXED_TOP_LEFT) { - camera_pos = new_camera_pos; } @@ -159,13 +147,11 @@ Transform2D Camera2D::get_camera_transform() { } if (smoothing_enabled && !Engine::get_singleton()->is_editor_hint()) { - float c = smoothing * (process_mode == CAMERA2D_PROCESS_PHYSICS ? get_physics_process_delta_time() : get_process_delta_time()); smoothed_camera_pos = ((camera_pos - smoothed_camera_pos) * c) + smoothed_camera_pos; ret_camera_pos = smoothed_camera_pos; //camera_pos=camera_pos*(1.0-smoothing)+new_camera_pos*smoothing; } else { - ret_camera_pos = smoothed_camera_pos = camera_pos; } @@ -218,23 +204,18 @@ Transform2D Camera2D::get_camera_transform() { } void Camera2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_INTERNAL_PROCESS: case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { - _update_scroll(); } break; case NOTIFICATION_TRANSFORM_CHANGED: { - if (!is_processing_internal() && !is_physics_processing_internal()) _update_scroll(); } break; case NOTIFICATION_ENTER_TREE: { - if (custom_viewport && ObjectDB::get_instance(custom_viewport_id)) { viewport = custom_viewport; } else { @@ -256,7 +237,6 @@ void Camera2D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - if (is_current()) { if (viewport && !(custom_viewport && !ObjectDB::get_instance(custom_viewport_id))) { viewport->set_canvas_transform(Transform2D()); @@ -268,7 +248,6 @@ void Camera2D::_notification(int p_what) { } break; case NOTIFICATION_DRAW: { - if (!is_inside_tree() || !Engine::get_singleton()->is_editor_hint()) break; @@ -349,40 +328,33 @@ void Camera2D::_notification(int p_what) { } void Camera2D::set_offset(const Vector2 &p_offset) { - offset = p_offset; _update_scroll(); } Vector2 Camera2D::get_offset() const { - return offset; } void Camera2D::set_anchor_mode(AnchorMode p_anchor_mode) { - anchor_mode = p_anchor_mode; _update_scroll(); } Camera2D::AnchorMode Camera2D::get_anchor_mode() const { - return anchor_mode; } void Camera2D::set_rotating(bool p_rotating) { - rotating = p_rotating; _update_scroll(); } bool Camera2D::is_rotating() const { - return rotating; } void Camera2D::set_process_mode(Camera2DProcessMode p_mode) { - if (process_mode == p_mode) return; @@ -391,14 +363,11 @@ void Camera2D::set_process_mode(Camera2DProcessMode p_mode) { } Camera2D::Camera2DProcessMode Camera2D::get_process_mode() const { - return process_mode; } void Camera2D::_make_current(Object *p_which) { - if (p_which == this) { - current = true; } else { current = false; @@ -406,7 +375,6 @@ void Camera2D::_make_current(Object *p_which) { } void Camera2D::_set_current(bool p_current) { - if (p_current) make_current(); @@ -415,12 +383,10 @@ void Camera2D::_set_current(bool p_current) { } bool Camera2D::is_current() const { - return current; } void Camera2D::make_current() { - if (!is_inside_tree()) { current = true; } else { @@ -430,7 +396,6 @@ void Camera2D::make_current() { } void Camera2D::clear_current() { - current = false; if (is_inside_tree()) { get_tree()->call_group_flags(SceneTree::GROUP_CALL_REALTIME, group_name, "_make_current", (Object *)nullptr); @@ -438,60 +403,50 @@ void Camera2D::clear_current() { } void Camera2D::set_limit(Margin p_margin, int p_limit) { - ERR_FAIL_INDEX((int)p_margin, 4); limit[p_margin] = p_limit; update(); } int Camera2D::get_limit(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0); return limit[p_margin]; } void Camera2D::set_limit_smoothing_enabled(bool enable) { - limit_smoothing_enabled = enable; _update_scroll(); } bool Camera2D::is_limit_smoothing_enabled() const { - return limit_smoothing_enabled; } void Camera2D::set_drag_margin(Margin p_margin, float p_drag_margin) { - ERR_FAIL_INDEX((int)p_margin, 4); drag_margin[p_margin] = p_drag_margin; update(); } float Camera2D::get_drag_margin(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0); return drag_margin[p_margin]; } Vector2 Camera2D::get_camera_position() const { - return camera_pos; } void Camera2D::force_update_scroll() { - _update_scroll(); } void Camera2D::reset_smoothing() { - smoothed_camera_pos = camera_pos; _update_scroll(); } void Camera2D::align() { - ERR_FAIL_COND(custom_viewport && !ObjectDB::get_instance(custom_viewport_id)); Size2 screen_size = viewport->get_visible_rect().size; @@ -509,7 +464,6 @@ void Camera2D::align() { camera_pos.y = current_camera_pos.y + screen_size.y * 0.5 * drag_margin[MARGIN_BOTTOM] * v_ofs; } } else if (anchor_mode == ANCHOR_MODE_FIXED_TOP_LEFT) { - camera_pos = current_camera_pos; } @@ -517,7 +471,6 @@ void Camera2D::align() { } void Camera2D::set_follow_smoothing(float p_speed) { - smoothing = p_speed; if (smoothing > 0 && !(is_inside_tree() && Engine::get_singleton()->is_editor_hint())) set_process_internal(true); @@ -526,55 +479,45 @@ void Camera2D::set_follow_smoothing(float p_speed) { } float Camera2D::get_follow_smoothing() const { - return smoothing; } Point2 Camera2D::get_camera_screen_center() const { - return camera_screen_center; } void Camera2D::set_h_drag_enabled(bool p_enabled) { - h_drag_enabled = p_enabled; } bool Camera2D::is_h_drag_enabled() const { - return h_drag_enabled; } void Camera2D::set_v_drag_enabled(bool p_enabled) { - v_drag_enabled = p_enabled; } bool Camera2D::is_v_drag_enabled() const { - return v_drag_enabled; } void Camera2D::set_v_offset(float p_offset) { - v_ofs = p_offset; v_offset_changed = true; _update_scroll(); } float Camera2D::get_v_offset() const { - return v_ofs; } void Camera2D::set_h_offset(float p_offset) { - h_ofs = p_offset; h_offset_changed = true; _update_scroll(); } float Camera2D::get_h_offset() const { - return h_ofs; } @@ -587,12 +530,10 @@ void Camera2D::_set_old_smoothing(float p_enable) { } void Camera2D::set_enable_follow_smoothing(bool p_enabled) { - smoothing_enabled = p_enabled; } bool Camera2D::is_follow_smoothing_enabled() const { - return smoothing_enabled; } @@ -612,7 +553,6 @@ void Camera2D::set_custom_viewport(Node *p_viewport) { } if (is_inside_tree()) { - if (custom_viewport) viewport = custom_viewport; else @@ -627,7 +567,6 @@ void Camera2D::set_custom_viewport(Node *p_viewport) { } Node *Camera2D::get_custom_viewport() const { - return custom_viewport; } @@ -659,7 +598,6 @@ bool Camera2D::is_margin_drawing_enabled() const { } void Camera2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_offset", "offset"), &Camera2D::set_offset); ClassDB::bind_method(D_METHOD("get_offset"), &Camera2D::get_offset); @@ -777,7 +715,6 @@ void Camera2D::_bind_methods() { } Camera2D::Camera2D() { - anchor_mode = ANCHOR_MODE_DRAG_CENTER; rotating = false; current = false; diff --git a/scene/2d/camera_2d.h b/scene/2d/camera_2d.h index 7a106ef79a..0a4e269c40 100644 --- a/scene/2d/camera_2d.h +++ b/scene/2d/camera_2d.h @@ -35,7 +35,6 @@ #include "scene/main/window.h" class Camera2D : public Node2D { - GDCLASS(Camera2D, Node2D); public: diff --git a/scene/2d/canvas_modulate.cpp b/scene/2d/canvas_modulate.cpp index 05f8804e2a..2ed2eaef42 100644 --- a/scene/2d/canvas_modulate.cpp +++ b/scene/2d/canvas_modulate.cpp @@ -31,22 +31,18 @@ #include "canvas_modulate.h" void CanvasModulate::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_CANVAS) { - if (is_visible_in_tree()) { RS::get_singleton()->canvas_set_modulate(get_canvas(), color); add_to_group("_canvas_modulate_" + itos(get_canvas().get_id())); } } else if (p_what == NOTIFICATION_EXIT_CANVAS) { - if (is_visible_in_tree()) { RS::get_singleton()->canvas_set_modulate(get_canvas(), Color(1, 1, 1, 1)); remove_from_group("_canvas_modulate_" + itos(get_canvas().get_id())); } } else if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - if (is_visible_in_tree()) { RS::get_singleton()->canvas_set_modulate(get_canvas(), color); add_to_group("_canvas_modulate_" + itos(get_canvas().get_id())); @@ -60,7 +56,6 @@ void CanvasModulate::_notification(int p_what) { } void CanvasModulate::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_color", "color"), &CanvasModulate::set_color); ClassDB::bind_method(D_METHOD("get_color"), &CanvasModulate::get_color); @@ -68,19 +63,16 @@ void CanvasModulate::_bind_methods() { } void CanvasModulate::set_color(const Color &p_color) { - color = p_color; if (is_visible_in_tree()) { RS::get_singleton()->canvas_set_modulate(get_canvas(), color); } } Color CanvasModulate::get_color() const { - return color; } String CanvasModulate::get_configuration_warning() const { - if (!is_visible_in_tree() || !is_inside_tree()) return String(); diff --git a/scene/2d/canvas_modulate.h b/scene/2d/canvas_modulate.h index ada6e27760..a0b61f43ba 100644 --- a/scene/2d/canvas_modulate.h +++ b/scene/2d/canvas_modulate.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class CanvasModulate : public Node2D { - GDCLASS(CanvasModulate, Node2D); Color color; diff --git a/scene/2d/collision_object_2d.cpp b/scene/2d/collision_object_2d.cpp index d82f4a2f2b..2f20a48139 100644 --- a/scene/2d/collision_object_2d.cpp +++ b/scene/2d/collision_object_2d.cpp @@ -34,11 +34,8 @@ #include "servers/physics_server_2d.h" void CollisionObject2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - Transform2D global_transform = get_global_transform(); if (area) @@ -58,7 +55,6 @@ void CollisionObject2D::_notification(int p_what) { } break; case NOTIFICATION_ENTER_CANVAS: { - if (area) PhysicsServer2D::get_singleton()->area_attach_canvas_instance_id(rid, get_canvas_layer_instance_id()); else @@ -66,11 +62,9 @@ void CollisionObject2D::_notification(int p_what) { } break; case NOTIFICATION_VISIBILITY_CHANGED: { - _update_pickable(); } break; case NOTIFICATION_TRANSFORM_CHANGED: { - if (only_update_transform_changes) { return; } @@ -84,7 +78,6 @@ void CollisionObject2D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - if (area) { PhysicsServer2D::get_singleton()->area_set_space(rid, RID()); } else @@ -93,7 +86,6 @@ void CollisionObject2D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_CANVAS: { - if (area) PhysicsServer2D::get_singleton()->area_attach_canvas_instance_id(rid, ObjectID()); else @@ -103,7 +95,6 @@ void CollisionObject2D::_notification(int p_what) { } uint32_t CollisionObject2D::create_shape_owner(Object *p_owner) { - ShapeData sd; uint32_t id; @@ -121,7 +112,6 @@ uint32_t CollisionObject2D::create_shape_owner(Object *p_owner) { } void CollisionObject2D::remove_shape_owner(uint32_t owner) { - ERR_FAIL_COND(!shapes.has(owner)); shape_owner_clear_shapes(owner); @@ -144,14 +134,12 @@ void CollisionObject2D::shape_owner_set_disabled(uint32_t p_owner, bool p_disabl } bool CollisionObject2D::is_shape_owner_disabled(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), false); return shapes[p_owner].disabled; } void CollisionObject2D::shape_owner_set_one_way_collision(uint32_t p_owner, bool p_enable) { - if (area) return; //not for areas @@ -165,14 +153,12 @@ void CollisionObject2D::shape_owner_set_one_way_collision(uint32_t p_owner, bool } bool CollisionObject2D::is_shape_owner_one_way_collision_enabled(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), false); return shapes[p_owner].one_way_collision; } void CollisionObject2D::shape_owner_set_one_way_collision_margin(uint32_t p_owner, float p_margin) { - if (area) return; //not for areas @@ -186,21 +172,18 @@ void CollisionObject2D::shape_owner_set_one_way_collision_margin(uint32_t p_owne } float CollisionObject2D::get_shape_owner_one_way_collision_margin(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), 0); return shapes[p_owner].one_way_collision_margin; } void CollisionObject2D::get_shape_owners(List<uint32_t> *r_owners) { - for (Map<uint32_t, ShapeData>::Element *E = shapes.front(); E; E = E->next()) { r_owners->push_back(E->key()); } } Array CollisionObject2D::_get_shape_owners() { - Array ret; for (Map<uint32_t, ShapeData>::Element *E = shapes.front(); E; E = E->next()) { ret.push_back(E->key()); @@ -210,7 +193,6 @@ Array CollisionObject2D::_get_shape_owners() { } void CollisionObject2D::shape_owner_set_transform(uint32_t p_owner, const Transform2D &p_transform) { - ERR_FAIL_COND(!shapes.has(p_owner)); ShapeData &sd = shapes[p_owner]; @@ -225,21 +207,18 @@ void CollisionObject2D::shape_owner_set_transform(uint32_t p_owner, const Transf } } Transform2D CollisionObject2D::shape_owner_get_transform(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), Transform2D()); return shapes[p_owner].xform; } Object *CollisionObject2D::shape_owner_get_owner(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), nullptr); return shapes[p_owner].owner; } void CollisionObject2D::shape_owner_add_shape(uint32_t p_owner, const Ref<Shape2D> &p_shape) { - ERR_FAIL_COND(!shapes.has(p_owner)); ERR_FAIL_COND(p_shape.is_null()); @@ -257,20 +236,17 @@ void CollisionObject2D::shape_owner_add_shape(uint32_t p_owner, const Ref<Shape2 total_subshapes++; } int CollisionObject2D::shape_owner_get_shape_count(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), 0); return shapes[p_owner].shapes.size(); } Ref<Shape2D> CollisionObject2D::shape_owner_get_shape(uint32_t p_owner, int p_shape) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), Ref<Shape2D>()); ERR_FAIL_INDEX_V(p_shape, shapes[p_owner].shapes.size(), Ref<Shape2D>()); return shapes[p_owner].shapes[p_shape].shape; } int CollisionObject2D::shape_owner_get_shape_index(uint32_t p_owner, int p_shape) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), -1); ERR_FAIL_INDEX_V(p_shape, shapes[p_owner].shapes.size(), -1); @@ -278,7 +254,6 @@ int CollisionObject2D::shape_owner_get_shape_index(uint32_t p_owner, int p_shape } void CollisionObject2D::shape_owner_remove_shape(uint32_t p_owner, int p_shape) { - ERR_FAIL_COND(!shapes.has(p_owner)); ERR_FAIL_INDEX(p_shape, shapes[p_owner].shapes.size()); @@ -303,7 +278,6 @@ void CollisionObject2D::shape_owner_remove_shape(uint32_t p_owner, int p_shape) } void CollisionObject2D::shape_owner_clear_shapes(uint32_t p_owner) { - ERR_FAIL_COND(!shapes.has(p_owner)); while (shape_owner_get_shape_count(p_owner) > 0) { @@ -312,7 +286,6 @@ void CollisionObject2D::shape_owner_clear_shapes(uint32_t p_owner) { } uint32_t CollisionObject2D::shape_find_owner(int p_shape_index) const { - ERR_FAIL_INDEX_V(p_shape_index, total_subshapes, 0); for (const Map<uint32_t, ShapeData>::Element *E = shapes.front(); E; E = E->next()) { @@ -328,7 +301,6 @@ uint32_t CollisionObject2D::shape_find_owner(int p_shape_index) const { } void CollisionObject2D::set_pickable(bool p_enabled) { - if (pickable == p_enabled) return; @@ -337,12 +309,10 @@ void CollisionObject2D::set_pickable(bool p_enabled) { } bool CollisionObject2D::is_pickable() const { - return pickable; } void CollisionObject2D::_input_event(Node *p_viewport, const Ref<InputEvent> &p_input_event, int p_shape) { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_input_event, p_viewport, p_input_event, p_shape); } @@ -350,7 +320,6 @@ void CollisionObject2D::_input_event(Node *p_viewport, const Ref<InputEvent> &p_ } void CollisionObject2D::_mouse_enter() { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_mouse_enter); } @@ -358,7 +327,6 @@ void CollisionObject2D::_mouse_enter() { } void CollisionObject2D::_mouse_exit() { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_mouse_exit); } @@ -381,7 +349,6 @@ void CollisionObject2D::_update_pickable() { } String CollisionObject2D::get_configuration_warning() const { - String warning = Node2D::get_configuration_warning(); if (shapes.empty()) { @@ -395,7 +362,6 @@ String CollisionObject2D::get_configuration_warning() const { } void CollisionObject2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_rid"), &CollisionObject2D::get_rid); ClassDB::bind_method(D_METHOD("set_pickable", "enabled"), &CollisionObject2D::set_pickable); @@ -432,7 +398,6 @@ void CollisionObject2D::_bind_methods() { } CollisionObject2D::CollisionObject2D(RID p_rid, bool p_area) { - rid = p_rid; area = p_area; pickable = true; @@ -441,7 +406,6 @@ CollisionObject2D::CollisionObject2D(RID p_rid, bool p_area) { only_update_transform_changes = false; if (p_area) { - PhysicsServer2D::get_singleton()->area_attach_object_instance_id(rid, get_instance_id()); } else { PhysicsServer2D::get_singleton()->body_attach_object_instance_id(rid, get_instance_id()); @@ -449,13 +413,11 @@ CollisionObject2D::CollisionObject2D(RID p_rid, bool p_area) { } CollisionObject2D::CollisionObject2D() { - //owner= set_notify_transform(true); } CollisionObject2D::~CollisionObject2D() { - PhysicsServer2D::get_singleton()->free(rid); } diff --git a/scene/2d/collision_object_2d.h b/scene/2d/collision_object_2d.h index e931f20f40..d7af2f3a2a 100644 --- a/scene/2d/collision_object_2d.h +++ b/scene/2d/collision_object_2d.h @@ -35,7 +35,6 @@ #include "scene/resources/shape_2d.h" class CollisionObject2D : public Node2D { - GDCLASS(CollisionObject2D, Node2D); bool area; @@ -43,7 +42,6 @@ class CollisionObject2D : public Node2D { bool pickable; struct ShapeData { - Object *owner; Transform2D xform; struct Shape { diff --git a/scene/2d/collision_polygon_2d.cpp b/scene/2d/collision_polygon_2d.cpp index 1e48b2d67f..e5acfafa21 100644 --- a/scene/2d/collision_polygon_2d.cpp +++ b/scene/2d/collision_polygon_2d.cpp @@ -38,7 +38,6 @@ #include "thirdparty/misc/triangulator.h" void CollisionPolygon2D::_build_polygon() { - parent->shape_owner_clear_shapes(owner_id); if (polygon.size() == 0) @@ -47,7 +46,6 @@ void CollisionPolygon2D::_build_polygon() { bool solids = build_mode == BUILD_SOLIDS; if (solids) { - //here comes the sun, lalalala //decompose concave into multiple convex polygons and add them Vector<Vector<Vector2>> decomp = _decompose_in_convex(); @@ -58,7 +56,6 @@ void CollisionPolygon2D::_build_polygon() { } } else { - Ref<ConcavePolygonShape2D> concave = memnew(ConcavePolygonShape2D); Vector<Vector2> segments; @@ -82,7 +79,6 @@ Vector<Vector<Vector2>> CollisionPolygon2D::_decompose_in_convex() { } void CollisionPolygon2D::_update_in_shape_owner(bool p_xform_only) { - parent->shape_owner_set_transform(owner_id, get_transform()); if (p_xform_only) return; @@ -92,10 +88,8 @@ void CollisionPolygon2D::_update_in_shape_owner(bool p_xform_only) { } void CollisionPolygon2D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_PARENTED: { - parent = Object::cast_to<CollisionObject2D>(get_parent()); if (parent) { owner_id = parent->create_shape_owner(this); @@ -111,14 +105,12 @@ void CollisionPolygon2D::_notification(int p_what) { } break; case NOTIFICATION_ENTER_TREE: { - if (parent) { _update_in_shape_owner(); } } break; case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: { - if (parent) { _update_in_shape_owner(true); } @@ -133,13 +125,11 @@ void CollisionPolygon2D::_notification(int p_what) { } break; case NOTIFICATION_DRAW: { - if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) { break; } for (int i = 0; i < polygon.size(); i++) { - Vector2 p = polygon[i]; Vector2 n = polygon[(i + 1) % polygon.size()]; // draw line with width <= 1, so it does not scale with zoom and break pixel exact editing @@ -152,7 +142,6 @@ void CollisionPolygon2D::_notification(int p_what) { Color c(0.4, 0.9, 0.1); for (int i = 0; i < decomp.size(); i++) { - c.set_hsv(Math::fmod(c.get_h() + 0.738, 1), c.get_s(), c.get_v(), 0.5); draw_colored_polygon(decomp[i], c); } @@ -181,7 +170,6 @@ void CollisionPolygon2D::_notification(int p_what) { } void CollisionPolygon2D::set_polygon(const Vector<Point2> &p_polygon) { - polygon = p_polygon; { @@ -192,7 +180,6 @@ void CollisionPolygon2D::set_polygon(const Vector<Point2> &p_polygon) { aabb.expand_to(polygon[i]); } if (aabb == Rect2()) { - aabb = Rect2(-10, -10, 20, 20); } else { aabb.position -= aabb.size * 0.3; @@ -208,12 +195,10 @@ void CollisionPolygon2D::set_polygon(const Vector<Point2> &p_polygon) { } Vector<Point2> CollisionPolygon2D::get_polygon() const { - return polygon; } void CollisionPolygon2D::set_build_mode(BuildMode p_mode) { - ERR_FAIL_INDEX((int)p_mode, 2); build_mode = p_mode; if (parent) { @@ -222,13 +207,11 @@ void CollisionPolygon2D::set_build_mode(BuildMode p_mode) { } CollisionPolygon2D::BuildMode CollisionPolygon2D::get_build_mode() const { - return build_mode; } #ifdef TOOLS_ENABLED Rect2 CollisionPolygon2D::_edit_get_rect() const { - return aabb; } @@ -237,13 +220,11 @@ bool CollisionPolygon2D::_edit_use_rect() const { } bool CollisionPolygon2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - return Geometry::is_point_in_polygon(p_point, Variant(polygon)); } #endif String CollisionPolygon2D::get_configuration_warning() const { - if (!Object::cast_to<CollisionObject2D>(get_parent())) { return TTR("CollisionPolygon2D only serves to provide a collision shape to a CollisionObject2D derived node. Please only use it as a child of Area2D, StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."); } @@ -276,7 +257,6 @@ void CollisionPolygon2D::set_one_way_collision(bool p_enable) { } bool CollisionPolygon2D::is_one_way_collision_enabled() const { - return one_way_collision; } @@ -291,7 +271,6 @@ float CollisionPolygon2D::get_one_way_collision_margin() const { return one_way_collision_margin; } void CollisionPolygon2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_polygon", "polygon"), &CollisionPolygon2D::set_polygon); ClassDB::bind_method(D_METHOD("get_polygon"), &CollisionPolygon2D::get_polygon); @@ -315,7 +294,6 @@ void CollisionPolygon2D::_bind_methods() { } CollisionPolygon2D::CollisionPolygon2D() { - aabb = Rect2(-10, -10, 20, 20); build_mode = BUILD_SOLIDS; set_notify_local_transform(true); diff --git a/scene/2d/collision_polygon_2d.h b/scene/2d/collision_polygon_2d.h index 92a2758813..bf3e560a93 100644 --- a/scene/2d/collision_polygon_2d.h +++ b/scene/2d/collision_polygon_2d.h @@ -37,7 +37,6 @@ class CollisionObject2D; class CollisionPolygon2D : public Node2D { - GDCLASS(CollisionPolygon2D, Node2D); public: diff --git a/scene/2d/collision_shape_2d.cpp b/scene/2d/collision_shape_2d.cpp index b1dbc57c94..43c8db18be 100644 --- a/scene/2d/collision_shape_2d.cpp +++ b/scene/2d/collision_shape_2d.cpp @@ -41,12 +41,10 @@ #include "scene/resources/segment_shape_2d.h" void CollisionShape2D::_shape_changed() { - update(); } void CollisionShape2D::_update_in_shape_owner(bool p_xform_only) { - parent->shape_owner_set_transform(owner_id, get_transform()); if (p_xform_only) return; @@ -56,11 +54,8 @@ void CollisionShape2D::_update_in_shape_owner(bool p_xform_only) { } void CollisionShape2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_PARENTED: { - parent = Object::cast_to<CollisionObject2D>(get_parent()); if (parent) { owner_id = parent->create_shape_owner(this); @@ -78,14 +73,12 @@ void CollisionShape2D::_notification(int p_what) { } break; case NOTIFICATION_ENTER_TREE: { - if (parent) { _update_in_shape_owner(); } } break; case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: { - if (parent) { _update_in_shape_owner(true); } @@ -100,7 +93,6 @@ void CollisionShape2D::_notification(int p_what) { } break; case NOTIFICATION_DRAW: { - if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) { break; } @@ -147,7 +139,6 @@ void CollisionShape2D::_notification(int p_what) { } void CollisionShape2D::set_shape(const Ref<Shape2D> &p_shape) { - if (shape.is_valid()) shape->disconnect("changed", callable_mp(this, &CollisionShape2D::_shape_changed)); shape = p_shape; @@ -166,12 +157,10 @@ void CollisionShape2D::set_shape(const Ref<Shape2D> &p_shape) { } Ref<Shape2D> CollisionShape2D::get_shape() const { - return shape; } bool CollisionShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - if (!shape.is_valid()) return false; @@ -179,7 +168,6 @@ bool CollisionShape2D::_edit_is_selected_on_click(const Point2 &p_point, double } String CollisionShape2D::get_configuration_warning() const { - if (!Object::cast_to<CollisionObject2D>(get_parent())) { return TTR("CollisionShape2D only serves to provide a collision shape to a CollisionObject2D derived node. Please only use it as a child of Area2D, StaticBody2D, RigidBody2D, KinematicBody2D, etc. to give them a shape."); } @@ -212,7 +200,6 @@ void CollisionShape2D::set_one_way_collision(bool p_enable) { } bool CollisionShape2D::is_one_way_collision_enabled() const { - return one_way_collision; } @@ -228,7 +215,6 @@ float CollisionShape2D::get_one_way_collision_margin() const { } void CollisionShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_shape", "shape"), &CollisionShape2D::set_shape); ClassDB::bind_method(D_METHOD("get_shape"), &CollisionShape2D::get_shape); ClassDB::bind_method(D_METHOD("set_disabled", "disabled"), &CollisionShape2D::set_disabled); @@ -245,7 +231,6 @@ void CollisionShape2D::_bind_methods() { } CollisionShape2D::CollisionShape2D() { - rect = Rect2(-Point2(10, 10), Point2(20, 20)); set_notify_local_transform(true); owner_id = 0; diff --git a/scene/2d/collision_shape_2d.h b/scene/2d/collision_shape_2d.h index 80bea0a979..ec7808ee7c 100644 --- a/scene/2d/collision_shape_2d.h +++ b/scene/2d/collision_shape_2d.h @@ -37,7 +37,6 @@ class CollisionObject2D; class CollisionShape2D : public Node2D { - GDCLASS(CollisionShape2D, Node2D); Ref<Shape2D> shape; Rect2 rect; diff --git a/scene/2d/cpu_particles_2d.cpp b/scene/2d/cpu_particles_2d.cpp index c37cd398c4..ecc78809e7 100644 --- a/scene/2d/cpu_particles_2d.cpp +++ b/scene/2d/cpu_particles_2d.cpp @@ -37,7 +37,6 @@ #include "servers/rendering_server.h" void CPUParticles2D::set_emitting(bool p_emitting) { - if (emitting == p_emitting) return; @@ -47,7 +46,6 @@ void CPUParticles2D::set_emitting(bool p_emitting) { } void CPUParticles2D::set_amount(int p_amount) { - ERR_FAIL_COND_MSG(p_amount < 1, "Amount of particles must be greater than 0."); particles.resize(p_amount); @@ -65,99 +63,78 @@ void CPUParticles2D::set_amount(int p_amount) { particle_order.resize(p_amount); } void CPUParticles2D::set_lifetime(float p_lifetime) { - ERR_FAIL_COND_MSG(p_lifetime <= 0, "Particles lifetime must be greater than 0."); lifetime = p_lifetime; } void CPUParticles2D::set_one_shot(bool p_one_shot) { - one_shot = p_one_shot; } void CPUParticles2D::set_pre_process_time(float p_time) { - pre_process_time = p_time; } void CPUParticles2D::set_explosiveness_ratio(float p_ratio) { - explosiveness_ratio = p_ratio; } void CPUParticles2D::set_randomness_ratio(float p_ratio) { - randomness_ratio = p_ratio; } void CPUParticles2D::set_lifetime_randomness(float p_random) { - lifetime_randomness = p_random; } void CPUParticles2D::set_use_local_coordinates(bool p_enable) { - local_coords = p_enable; set_notify_transform(!p_enable); } void CPUParticles2D::set_speed_scale(float p_scale) { - speed_scale = p_scale; } bool CPUParticles2D::is_emitting() const { - return emitting; } int CPUParticles2D::get_amount() const { - return particles.size(); } float CPUParticles2D::get_lifetime() const { - return lifetime; } bool CPUParticles2D::get_one_shot() const { - return one_shot; } float CPUParticles2D::get_pre_process_time() const { - return pre_process_time; } float CPUParticles2D::get_explosiveness_ratio() const { - return explosiveness_ratio; } float CPUParticles2D::get_randomness_ratio() const { - return randomness_ratio; } float CPUParticles2D::get_lifetime_randomness() const { - return lifetime_randomness; } bool CPUParticles2D::get_use_local_coordinates() const { - return local_coords; } float CPUParticles2D::get_speed_scale() const { - return speed_scale; } void CPUParticles2D::set_draw_order(DrawOrder p_order) { - draw_order = p_order; } CPUParticles2D::DrawOrder CPUParticles2D::get_draw_order() const { - return draw_order; } void CPUParticles2D::_update_mesh_texture() { - Size2 tex_size; if (texture.is_valid()) { tex_size = texture->get_size(); @@ -225,7 +202,6 @@ void CPUParticles2D::set_texture(const Ref<Texture2D> &p_texture) { } void CPUParticles2D::_texture_changed() { - if (texture.is_valid()) { update(); _update_mesh_texture(); @@ -233,18 +209,15 @@ void CPUParticles2D::_texture_changed() { } Ref<Texture2D> CPUParticles2D::get_texture() const { - return texture; } void CPUParticles2D::set_normalmap(const Ref<Texture2D> &p_normalmap) { - normalmap = p_normalmap; update(); } Ref<Texture2D> CPUParticles2D::get_normalmap() const { - return normalmap; } @@ -265,7 +238,6 @@ bool CPUParticles2D::get_fractional_delta() const { } String CPUParticles2D::get_configuration_warning() const { - String warnings; CanvasItemMaterial *mat = Object::cast_to<CanvasItemMaterial>(get_material().ptr()); @@ -283,7 +255,6 @@ String CPUParticles2D::get_configuration_warning() const { } void CPUParticles2D::restart() { - time = 0; inactive_time = 0; frame_remainder = 0; @@ -303,53 +274,44 @@ void CPUParticles2D::restart() { } void CPUParticles2D::set_direction(Vector2 p_direction) { - direction = p_direction; } Vector2 CPUParticles2D::get_direction() const { - return direction; } void CPUParticles2D::set_spread(float p_spread) { - spread = p_spread; } float CPUParticles2D::get_spread() const { - return spread; } void CPUParticles2D::set_param(Parameter p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); parameters[p_param] = p_value; } float CPUParticles2D::get_param(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return parameters[p_param]; } void CPUParticles2D::set_param_randomness(Parameter p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); randomness[p_param] = p_value; } float CPUParticles2D::get_param_randomness(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return randomness[p_param]; } static void _adjust_curve_range(const Ref<Curve> &p_curve, float p_min, float p_max) { - Ref<Curve> curve = p_curve; if (!curve.is_valid()) return; @@ -358,7 +320,6 @@ static void _adjust_curve_range(const Ref<Curve> &p_curve, float p_min, float p_ } void CPUParticles2D::set_param_curve(Parameter p_param, const Ref<Curve> &p_curve) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); curve_parameters[p_param] = p_curve; @@ -389,7 +350,6 @@ void CPUParticles2D::set_param_curve(Parameter p_param, const Ref<Curve> &p_curv _adjust_curve_range(p_curve, -360, 360); } break; case PARAM_SCALE: { - } break; case PARAM_HUE_VARIATION: { _adjust_curve_range(p_curve, -1, 1); @@ -404,29 +364,24 @@ void CPUParticles2D::set_param_curve(Parameter p_param, const Ref<Curve> &p_curv } } Ref<Curve> CPUParticles2D::get_param_curve(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, Ref<Curve>()); return curve_parameters[p_param]; } void CPUParticles2D::set_color(const Color &p_color) { - color = p_color; } Color CPUParticles2D::get_color() const { - return color; } void CPUParticles2D::set_color_ramp(const Ref<Gradient> &p_ramp) { - color_ramp = p_ramp; } Ref<Gradient> CPUParticles2D::get_color_ramp() const { - return color_ramp; } @@ -447,49 +402,39 @@ void CPUParticles2D::set_emission_shape(EmissionShape p_shape) { } void CPUParticles2D::set_emission_sphere_radius(float p_radius) { - emission_sphere_radius = p_radius; } void CPUParticles2D::set_emission_rect_extents(Vector2 p_extents) { - emission_rect_extents = p_extents; } void CPUParticles2D::set_emission_points(const Vector<Vector2> &p_points) { - emission_points = p_points; } void CPUParticles2D::set_emission_normals(const Vector<Vector2> &p_normals) { - emission_normals = p_normals; } void CPUParticles2D::set_emission_colors(const Vector<Color> &p_colors) { - emission_colors = p_colors; } float CPUParticles2D::get_emission_sphere_radius() const { - return emission_sphere_radius; } Vector2 CPUParticles2D::get_emission_rect_extents() const { - return emission_rect_extents; } Vector<Vector2> CPUParticles2D::get_emission_points() const { - return emission_points; } Vector<Vector2> CPUParticles2D::get_emission_normals() const { - return emission_normals; } Vector<Color> CPUParticles2D::get_emission_colors() const { - return emission_colors; } @@ -497,17 +442,14 @@ CPUParticles2D::EmissionShape CPUParticles2D::get_emission_shape() const { return emission_shape; } void CPUParticles2D::set_gravity(const Vector2 &p_gravity) { - gravity = p_gravity; } Vector2 CPUParticles2D::get_gravity() const { - return gravity; } void CPUParticles2D::_validate_property(PropertyInfo &property) const { - if (property.name == "color" && color_ramp.is_valid()) { property.usage = 0; } @@ -538,7 +480,6 @@ void CPUParticles2D::_validate_property(PropertyInfo &property) const { } static uint32_t idhash(uint32_t x) { - x = ((x >> uint32_t(16)) ^ x) * uint32_t(0x45d9f3b); x = ((x >> uint32_t(16)) ^ x) * uint32_t(0x45d9f3b); x = (x >> uint32_t(16)) ^ x; @@ -559,7 +500,6 @@ static float rand_from_seed(uint32_t &seed) { } void CPUParticles2D::_update_internal() { - if (particles.size() == 0 || !is_visible_in_tree()) { _set_redraw(false); return; @@ -585,7 +525,6 @@ void CPUParticles2D::_update_internal() { _set_redraw(true); if (time == 0 && pre_process_time > 0.0) { - float frame_time; if (fixed_fps > 0) frame_time = 1.0 / fixed_fps; @@ -627,7 +566,6 @@ void CPUParticles2D::_update_internal() { } void CPUParticles2D::_particles_process(float p_delta) { - p_delta *= speed_scale; int pcount = particles.size(); @@ -657,7 +595,6 @@ void CPUParticles2D::_particles_process(float p_delta) { float system_phase = time / lifetime; for (int i = 0; i < pcount; i++) { - Particle &p = parray[i]; if (!emitting && !p.active) @@ -715,7 +652,6 @@ void CPUParticles2D::_particles_process(float p_delta) { } if (restart) { - if (!emitting) { p.active = false; continue; @@ -774,7 +710,6 @@ void CPUParticles2D::_particles_process(float p_delta) { } break; case EMISSION_SHAPE_POINTS: case EMISSION_SHAPE_DIRECTED_POINTS: { - int pc = emission_points.size(); if (pc == 0) break; @@ -806,7 +741,6 @@ void CPUParticles2D::_particles_process(float p_delta) { } else if (p.time > p.lifetime) { p.active = false; } else { - uint32_t alt_seed = p.seed; p.time += local_delta; @@ -890,7 +824,6 @@ void CPUParticles2D::_particles_process(float p_delta) { } if (parameters[PARAM_DAMPING] + tex_damping > 0.0) { - float v = p.velocity.length(); float damp = (parameters[PARAM_DAMPING] + tex_damping) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_DAMPING]); v -= damp * local_delta; @@ -949,7 +882,6 @@ void CPUParticles2D::_particles_process(float p_delta) { if (flags[FLAG_ALIGN_Y_TO_VELOCITY]) { if (p.velocity.length() > 0.0) { - p.transform.elements[1] = p.velocity.normalized(); p.transform.elements[0] = p.transform.elements[1].tangent(); } @@ -998,7 +930,6 @@ void CPUParticles2D::_update_particle_data_buffer() { } for (int i = 0; i < pc; i++) { - int idx = order ? order[i] : i; Transform2D t = r[idx].transform; @@ -1008,7 +939,6 @@ void CPUParticles2D::_update_particle_data_buffer() { } if (r[idx].active) { - ptr[0] = t.elements[0][0]; ptr[1] = t.elements[1][0]; ptr[2] = 0; @@ -1065,14 +995,12 @@ void CPUParticles2D::_set_redraw(bool p_redraw) { } void CPUParticles2D::_update_render_thread() { - MutexLock lock(update_mutex); RS::get_singleton()->multimesh_set_buffer(multimesh, particle_data); } void CPUParticles2D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { set_process_internal(emitting); } @@ -1107,11 +1035,9 @@ void CPUParticles2D::_notification(int p_what) { } if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { - inv_emission_transform = get_global_transform().affine_inverse(); if (!local_coords) { - int pc = particles.size(); float *w = particle_data.ptrw(); @@ -1119,11 +1045,9 @@ void CPUParticles2D::_notification(int p_what) { float *ptr = w; for (int i = 0; i < pc; i++) { - Transform2D t = inv_emission_transform * r[i].transform; if (r[i].active) { - ptr[0] = t.elements[0][0]; ptr[1] = t.elements[1][0]; ptr[2] = 0; @@ -1144,7 +1068,6 @@ void CPUParticles2D::_notification(int p_what) { } void CPUParticles2D::convert_from_particles(Node *p_particles) { - GPUParticles2D *particles = Object::cast_to<GPUParticles2D>(p_particles); ERR_FAIL_COND_MSG(!particles, "Only GPUParticles2D nodes can be converted to CPUParticles2D."); @@ -1219,7 +1142,6 @@ void CPUParticles2D::convert_from_particles(Node *p_particles) { } void CPUParticles2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_emitting", "emitting"), &CPUParticles2D::set_emitting); ClassDB::bind_method(D_METHOD("set_amount", "amount"), &CPUParticles2D::set_amount); ClassDB::bind_method(D_METHOD("set_lifetime", "secs"), &CPUParticles2D::set_lifetime); @@ -1422,7 +1344,6 @@ void CPUParticles2D::_bind_methods() { } CPUParticles2D::CPUParticles2D() { - time = 0; inactive_time = 0; frame_remainder = 0; diff --git a/scene/2d/cpu_particles_2d.h b/scene/2d/cpu_particles_2d.h index 18d0caceed..747f06b90d 100644 --- a/scene/2d/cpu_particles_2d.h +++ b/scene/2d/cpu_particles_2d.h @@ -124,7 +124,6 @@ private: const Particle *particles; Vector2 axis; bool operator()(int p_a, int p_b) const { - return axis.dot(particles[p_a].transform[2]) < axis.dot(particles[p_b].transform[2]); } }; diff --git a/scene/2d/gpu_particles_2d.cpp b/scene/2d/gpu_particles_2d.cpp index de3f8fa09e..a76114a6c3 100644 --- a/scene/2d/gpu_particles_2d.cpp +++ b/scene/2d/gpu_particles_2d.cpp @@ -39,7 +39,6 @@ #endif void GPUParticles2D::set_emitting(bool p_emitting) { - RS::get_singleton()->particles_set_emitting(particles, p_emitting); if (p_emitting && one_shot) { @@ -50,25 +49,21 @@ void GPUParticles2D::set_emitting(bool p_emitting) { } void GPUParticles2D::set_amount(int p_amount) { - ERR_FAIL_COND_MSG(p_amount < 1, "Amount of particles cannot be smaller than 1."); amount = p_amount; RS::get_singleton()->particles_set_amount(particles, amount); } void GPUParticles2D::set_lifetime(float p_lifetime) { - ERR_FAIL_COND_MSG(p_lifetime <= 0, "Particles lifetime must be greater than 0."); lifetime = p_lifetime; RS::get_singleton()->particles_set_lifetime(particles, lifetime); } void GPUParticles2D::set_one_shot(bool p_enable) { - one_shot = p_enable; RS::get_singleton()->particles_set_one_shot(particles, one_shot); if (is_emitting()) { - set_process_internal(true); if (!one_shot) RenderingServer::get_singleton()->particles_restart(particles); @@ -78,22 +73,18 @@ void GPUParticles2D::set_one_shot(bool p_enable) { set_process_internal(false); } void GPUParticles2D::set_pre_process_time(float p_time) { - pre_process_time = p_time; RS::get_singleton()->particles_set_pre_process_time(particles, pre_process_time); } void GPUParticles2D::set_explosiveness_ratio(float p_ratio) { - explosiveness_ratio = p_ratio; RS::get_singleton()->particles_set_explosiveness_ratio(particles, explosiveness_ratio); } void GPUParticles2D::set_randomness_ratio(float p_ratio) { - randomness_ratio = p_ratio; RS::get_singleton()->particles_set_randomness_ratio(particles, randomness_ratio); } void GPUParticles2D::set_visibility_rect(const Rect2 &p_visibility_rect) { - visibility_rect = p_visibility_rect; AABB aabb; aabb.position.x = p_visibility_rect.position.x; @@ -107,7 +98,6 @@ void GPUParticles2D::set_visibility_rect(const Rect2 &p_visibility_rect) { update(); } void GPUParticles2D::set_use_local_coordinates(bool p_enable) { - local_coords = p_enable; RS::get_singleton()->particles_set_use_local_coordinates(particles, local_coords); set_notify_transform(!p_enable); @@ -117,7 +107,6 @@ void GPUParticles2D::set_use_local_coordinates(bool p_enable) { } void GPUParticles2D::_update_particle_emission_transform() { - Transform2D xf2d = get_global_transform(); Transform xf; xf.basis.set_axis(0, Vector3(xf2d.get_axis(0).x, xf2d.get_axis(0).y, 0)); @@ -128,7 +117,6 @@ void GPUParticles2D::_update_particle_emission_transform() { } void GPUParticles2D::set_process_material(const Ref<Material> &p_material) { - process_material = p_material; Ref<ParticlesMaterial> pm = p_material; if (pm.is_valid() && !pm->get_flag(ParticlesMaterial::FLAG_DISABLE_Z) && pm->get_gravity() == Vector3(0, -9.8, 0)) { @@ -145,66 +133,52 @@ void GPUParticles2D::set_process_material(const Ref<Material> &p_material) { } void GPUParticles2D::set_speed_scale(float p_scale) { - speed_scale = p_scale; RS::get_singleton()->particles_set_speed_scale(particles, p_scale); } bool GPUParticles2D::is_emitting() const { - return RS::get_singleton()->particles_get_emitting(particles); } int GPUParticles2D::get_amount() const { - return amount; } float GPUParticles2D::get_lifetime() const { - return lifetime; } bool GPUParticles2D::get_one_shot() const { - return one_shot; } float GPUParticles2D::get_pre_process_time() const { - return pre_process_time; } float GPUParticles2D::get_explosiveness_ratio() const { - return explosiveness_ratio; } float GPUParticles2D::get_randomness_ratio() const { - return randomness_ratio; } Rect2 GPUParticles2D::get_visibility_rect() const { - return visibility_rect; } bool GPUParticles2D::get_use_local_coordinates() const { - return local_coords; } Ref<Material> GPUParticles2D::get_process_material() const { - return process_material; } float GPUParticles2D::get_speed_scale() const { - return speed_scale; } void GPUParticles2D::set_draw_order(DrawOrder p_order) { - draw_order = p_order; RS::get_singleton()->particles_set_draw_order(particles, RS::ParticlesDrawOrder(p_order)); } GPUParticles2D::DrawOrder GPUParticles2D::get_draw_order() const { - return draw_order; } @@ -227,7 +201,6 @@ bool GPUParticles2D::get_fractional_delta() const { } String GPUParticles2D::get_configuration_warning() const { - if (RenderingServer::get_singleton()->is_low_end()) { return TTR("GPU-based particles are not supported by the GLES2 video driver.\nUse the CPUParticles2D node instead. You can use the \"Convert to CPUParticles2D\" option for this purpose."); } @@ -239,7 +212,6 @@ String GPUParticles2D::get_configuration_warning() const { warnings += "\n"; warnings += "- " + TTR("A material to process the particles is not assigned, so no behavior is imprinted."); } else { - CanvasItemMaterial *mat = Object::cast_to<CanvasItemMaterial>(get_material().ptr()); if (get_material().is_null() || (mat && !mat->get_particles_animation())) { @@ -258,7 +230,6 @@ String GPUParticles2D::get_configuration_warning() const { } Rect2 GPUParticles2D::capture_rect() const { - AABB aabb = RS::get_singleton()->particles_get_current_aabb(particles); Rect2 r; r.position.x = aabb.position.x; @@ -278,7 +249,6 @@ Ref<Texture2D> GPUParticles2D::get_texture() const { } void GPUParticles2D::set_normal_map(const Ref<Texture2D> &p_normal_map) { - normal_map = p_normal_map; update(); } @@ -296,9 +266,7 @@ void GPUParticles2D::restart() { } void GPUParticles2D::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - RID texture_rid; if (texture.is_valid()) texture_rid = texture->get_rid(); @@ -310,7 +278,6 @@ void GPUParticles2D::_notification(int p_what) { #ifdef TOOLS_ENABLED if (Engine::get_singleton()->is_editor_hint() && (this == get_tree()->get_edited_scene_root() || get_tree()->get_edited_scene_root()->is_a_parent_of(this))) { - draw_rect(visibility_rect, Color(0, 0.7, 0.9, 0.4), false); } #endif @@ -320,7 +287,6 @@ void GPUParticles2D::_notification(int p_what) { if (can_process()) { RS::get_singleton()->particles_set_speed_scale(particles, speed_scale); } else { - RS::get_singleton()->particles_set_speed_scale(particles, 0); } } @@ -330,7 +296,6 @@ void GPUParticles2D::_notification(int p_what) { } if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - if (one_shot && !is_emitting()) { _change_notify(); set_process_internal(false); @@ -339,7 +304,6 @@ void GPUParticles2D::_notification(int p_what) { } void GPUParticles2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_emitting", "emitting"), &GPUParticles2D::set_emitting); ClassDB::bind_method(D_METHOD("set_amount", "amount"), &GPUParticles2D::set_amount); ClassDB::bind_method(D_METHOD("set_lifetime", "secs"), &GPUParticles2D::set_lifetime); @@ -407,7 +371,6 @@ void GPUParticles2D::_bind_methods() { } GPUParticles2D::GPUParticles2D() { - particles = RS::get_singleton()->particles_create(); one_shot = false; // Needed so that set_emitting doesn't access uninitialized values @@ -427,6 +390,5 @@ GPUParticles2D::GPUParticles2D() { } GPUParticles2D::~GPUParticles2D() { - RS::get_singleton()->free(particles); } diff --git a/scene/2d/joints_2d.cpp b/scene/2d/joints_2d.cpp index 4d49f4762f..07a6926d4f 100644 --- a/scene/2d/joints_2d.cpp +++ b/scene/2d/joints_2d.cpp @@ -35,7 +35,6 @@ #include "servers/physics_server_2d.h" void Joint2D::_update_joint(bool p_only_free) { - if (joint.is_valid()) { if (ba.is_valid() && bb.is_valid() && exclude_from_collision) PhysicsServer2D::get_singleton()->joint_disable_collisions_between_bodies(joint, false); @@ -75,7 +74,6 @@ void Joint2D::_update_joint(bool p_only_free) { } void Joint2D::set_node_a(const NodePath &p_node_a) { - if (a == p_node_a) return; @@ -84,26 +82,21 @@ void Joint2D::set_node_a(const NodePath &p_node_a) { } NodePath Joint2D::get_node_a() const { - return a; } void Joint2D::set_node_b(const NodePath &p_node_b) { - if (b == p_node_b) return; b = p_node_b; _update_joint(); } NodePath Joint2D::get_node_b() const { - return b; } void Joint2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_READY: { _update_joint(); } break; @@ -116,19 +109,16 @@ void Joint2D::_notification(int p_what) { } void Joint2D::set_bias(real_t p_bias) { - bias = p_bias; if (joint.is_valid()) PhysicsServer2D::get_singleton()->get_singleton()->joint_set_param(joint, PhysicsServer2D::JOINT_PARAM_BIAS, bias); } real_t Joint2D::get_bias() const { - return bias; } void Joint2D::set_exclude_nodes_from_collision(bool p_enable) { - if (exclude_from_collision == p_enable) return; @@ -138,12 +128,10 @@ void Joint2D::set_exclude_nodes_from_collision(bool p_enable) { } bool Joint2D::get_exclude_nodes_from_collision() const { - return exclude_from_collision; } void Joint2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_node_a", "node"), &Joint2D::set_node_a); ClassDB::bind_method(D_METHOD("get_node_a"), &Joint2D::get_node_a); @@ -163,7 +151,6 @@ void Joint2D::_bind_methods() { } Joint2D::Joint2D() { - bias = 0; exclude_from_collision = true; } @@ -173,10 +160,8 @@ Joint2D::Joint2D() { /////////////////////////////////////////////////////////////////////////////// void PinJoint2D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_DRAW: { - if (!is_inside_tree()) break; @@ -191,14 +176,12 @@ void PinJoint2D::_notification(int p_what) { } RID PinJoint2D::_configure_joint(PhysicsBody2D *body_a, PhysicsBody2D *body_b) { - RID pj = PhysicsServer2D::get_singleton()->pin_joint_create(get_global_transform().get_origin(), body_a->get_rid(), body_b ? body_b->get_rid() : RID()); PhysicsServer2D::get_singleton()->pin_joint_set_param(pj, PhysicsServer2D::PIN_JOINT_SOFTNESS, softness); return pj; } void PinJoint2D::set_softness(real_t p_softness) { - softness = p_softness; update(); if (get_joint().is_valid()) @@ -206,12 +189,10 @@ void PinJoint2D::set_softness(real_t p_softness) { } real_t PinJoint2D::get_softness() const { - return softness; } void PinJoint2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_softness", "softness"), &PinJoint2D::set_softness); ClassDB::bind_method(D_METHOD("get_softness"), &PinJoint2D::get_softness); @@ -219,7 +200,6 @@ void PinJoint2D::_bind_methods() { } PinJoint2D::PinJoint2D() { - softness = 0; } @@ -228,7 +208,6 @@ PinJoint2D::PinJoint2D() { /////////////////////////////////////////////////////////////////////////////// void GrooveJoint2D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_DRAW: { if (!is_inside_tree()) @@ -247,7 +226,6 @@ void GrooveJoint2D::_notification(int p_what) { } RID GrooveJoint2D::_configure_joint(PhysicsBody2D *body_a, PhysicsBody2D *body_b) { - Transform2D gt = get_global_transform(); Vector2 groove_A1 = gt.get_origin(); Vector2 groove_A2 = gt.xform(Vector2(0, length)); @@ -257,29 +235,24 @@ RID GrooveJoint2D::_configure_joint(PhysicsBody2D *body_a, PhysicsBody2D *body_b } void GrooveJoint2D::set_length(real_t p_length) { - length = p_length; update(); } real_t GrooveJoint2D::get_length() const { - return length; } void GrooveJoint2D::set_initial_offset(real_t p_initial_offset) { - initial_offset = p_initial_offset; update(); } real_t GrooveJoint2D::get_initial_offset() const { - return initial_offset; } void GrooveJoint2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_length", "length"), &GrooveJoint2D::set_length); ClassDB::bind_method(D_METHOD("get_length"), &GrooveJoint2D::get_length); ClassDB::bind_method(D_METHOD("set_initial_offset", "offset"), &GrooveJoint2D::set_initial_offset); @@ -290,7 +263,6 @@ void GrooveJoint2D::_bind_methods() { } GrooveJoint2D::GrooveJoint2D() { - length = 50; initial_offset = 25; } @@ -300,10 +272,8 @@ GrooveJoint2D::GrooveJoint2D() { /////////////////////////////////////////////////////////////////////////////// void DampedSpringJoint2D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_DRAW: { - if (!is_inside_tree()) break; @@ -319,7 +289,6 @@ void DampedSpringJoint2D::_notification(int p_what) { } RID DampedSpringJoint2D::_configure_joint(PhysicsBody2D *body_a, PhysicsBody2D *body_b) { - Transform2D gt = get_global_transform(); Vector2 anchor_A = gt.get_origin(); Vector2 anchor_B = gt.xform(Vector2(0, length)); @@ -334,18 +303,15 @@ RID DampedSpringJoint2D::_configure_joint(PhysicsBody2D *body_a, PhysicsBody2D * } void DampedSpringJoint2D::set_length(real_t p_length) { - length = p_length; update(); } real_t DampedSpringJoint2D::get_length() const { - return length; } void DampedSpringJoint2D::set_rest_length(real_t p_rest_length) { - rest_length = p_rest_length; update(); if (get_joint().is_valid()) @@ -353,12 +319,10 @@ void DampedSpringJoint2D::set_rest_length(real_t p_rest_length) { } real_t DampedSpringJoint2D::get_rest_length() const { - return rest_length; } void DampedSpringJoint2D::set_stiffness(real_t p_stiffness) { - stiffness = p_stiffness; update(); if (get_joint().is_valid()) @@ -366,12 +330,10 @@ void DampedSpringJoint2D::set_stiffness(real_t p_stiffness) { } real_t DampedSpringJoint2D::get_stiffness() const { - return stiffness; } void DampedSpringJoint2D::set_damping(real_t p_damping) { - damping = p_damping; update(); if (get_joint().is_valid()) @@ -379,12 +341,10 @@ void DampedSpringJoint2D::set_damping(real_t p_damping) { } real_t DampedSpringJoint2D::get_damping() const { - return damping; } void DampedSpringJoint2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_length", "length"), &DampedSpringJoint2D::set_length); ClassDB::bind_method(D_METHOD("get_length"), &DampedSpringJoint2D::get_length); ClassDB::bind_method(D_METHOD("set_rest_length", "rest_length"), &DampedSpringJoint2D::set_rest_length); @@ -401,7 +361,6 @@ void DampedSpringJoint2D::_bind_methods() { } DampedSpringJoint2D::DampedSpringJoint2D() { - length = 50; rest_length = 0; stiffness = 20; diff --git a/scene/2d/joints_2d.h b/scene/2d/joints_2d.h index f1750e56b6..9a3bea4407 100644 --- a/scene/2d/joints_2d.h +++ b/scene/2d/joints_2d.h @@ -36,7 +36,6 @@ class PhysicsBody2D; class Joint2D : public Node2D { - GDCLASS(Joint2D, Node2D); RID joint; @@ -74,7 +73,6 @@ public: }; class PinJoint2D : public Joint2D { - GDCLASS(PinJoint2D, Joint2D); real_t softness; @@ -92,7 +90,6 @@ public: }; class GrooveJoint2D : public Joint2D { - GDCLASS(GrooveJoint2D, Joint2D); real_t length; @@ -114,7 +111,6 @@ public: }; class DampedSpringJoint2D : public Joint2D { - GDCLASS(DampedSpringJoint2D, Joint2D); real_t stiffness; diff --git a/scene/2d/light_2d.cpp b/scene/2d/light_2d.cpp index b3d54b81f8..ed69a4544e 100644 --- a/scene/2d/light_2d.cpp +++ b/scene/2d/light_2d.cpp @@ -80,7 +80,6 @@ Rect2 Light2D::get_anchorable_rect() const { } void Light2D::_update_light_visibility() { - if (!is_inside_tree()) return; @@ -104,29 +103,24 @@ void Light2D::_update_light_visibility() { } void Light2D::set_enabled(bool p_enabled) { - enabled = p_enabled; _update_light_visibility(); } bool Light2D::is_enabled() const { - return enabled; } void Light2D::set_editor_only(bool p_editor_only) { - editor_only = p_editor_only; _update_light_visibility(); } bool Light2D::is_editor_only() const { - return editor_only; } void Light2D::set_texture(const Ref<Texture2D> &p_texture) { - texture = p_texture; if (texture.is_valid()) RS::get_singleton()->canvas_light_set_texture(canvas_light, texture->get_rid()); @@ -137,12 +131,10 @@ void Light2D::set_texture(const Ref<Texture2D> &p_texture) { } Ref<Texture2D> Light2D::get_texture() const { - return texture; } void Light2D::set_texture_offset(const Vector2 &p_offset) { - texture_offset = p_offset; RS::get_singleton()->canvas_light_set_texture_offset(canvas_light, texture_offset); item_rect_changed(); @@ -150,44 +142,36 @@ void Light2D::set_texture_offset(const Vector2 &p_offset) { } Vector2 Light2D::get_texture_offset() const { - return texture_offset; } void Light2D::set_color(const Color &p_color) { - color = p_color; RS::get_singleton()->canvas_light_set_color(canvas_light, color); } Color Light2D::get_color() const { - return color; } void Light2D::set_height(float p_height) { - height = p_height; RS::get_singleton()->canvas_light_set_height(canvas_light, height); } float Light2D::get_height() const { - return height; } void Light2D::set_energy(float p_energy) { - energy = p_energy; RS::get_singleton()->canvas_light_set_energy(canvas_light, energy); } float Light2D::get_energy() const { - return energy; } void Light2D::set_texture_scale(float p_scale) { - _scale = p_scale; // Avoid having 0 scale values, can lead to errors in physics and rendering. if (_scale == 0) { @@ -198,101 +182,82 @@ void Light2D::set_texture_scale(float p_scale) { } float Light2D::get_texture_scale() const { - return _scale; } void Light2D::set_z_range_min(int p_min_z) { - z_min = p_min_z; RS::get_singleton()->canvas_light_set_z_range(canvas_light, z_min, z_max); } int Light2D::get_z_range_min() const { - return z_min; } void Light2D::set_z_range_max(int p_max_z) { - z_max = p_max_z; RS::get_singleton()->canvas_light_set_z_range(canvas_light, z_min, z_max); } int Light2D::get_z_range_max() const { - return z_max; } void Light2D::set_layer_range_min(int p_min_layer) { - layer_min = p_min_layer; RS::get_singleton()->canvas_light_set_layer_range(canvas_light, layer_min, layer_max); } int Light2D::get_layer_range_min() const { - return layer_min; } void Light2D::set_layer_range_max(int p_max_layer) { - layer_max = p_max_layer; RS::get_singleton()->canvas_light_set_layer_range(canvas_light, layer_min, layer_max); } int Light2D::get_layer_range_max() const { - return layer_max; } void Light2D::set_item_cull_mask(int p_mask) { - item_mask = p_mask; RS::get_singleton()->canvas_light_set_item_cull_mask(canvas_light, item_mask); } int Light2D::get_item_cull_mask() const { - return item_mask; } void Light2D::set_item_shadow_cull_mask(int p_mask) { - item_shadow_mask = p_mask; RS::get_singleton()->canvas_light_set_item_shadow_cull_mask(canvas_light, item_shadow_mask); } int Light2D::get_item_shadow_cull_mask() const { - return item_shadow_mask; } void Light2D::set_mode(Mode p_mode) { - mode = p_mode; RS::get_singleton()->canvas_light_set_mode(canvas_light, RS::CanvasLightMode(p_mode)); } Light2D::Mode Light2D::get_mode() const { - return mode; } void Light2D::set_shadow_enabled(bool p_enabled) { - shadow = p_enabled; RS::get_singleton()->canvas_light_set_shadow_enabled(canvas_light, shadow); } bool Light2D::is_shadow_enabled() const { - return shadow; } void Light2D::set_shadow_buffer_size(int p_size) { - shadow_buffer_size = p_size; RS::get_singleton()->canvas_light_set_shadow_buffer_size(canvas_light, shadow_buffer_size); } int Light2D::get_shadow_buffer_size() const { - return shadow_buffer_size; } @@ -303,7 +268,6 @@ void Light2D::set_shadow_filter(ShadowFilter p_filter) { } Light2D::ShadowFilter Light2D::get_shadow_filter() const { - return shadow_filter; } @@ -317,31 +281,25 @@ Color Light2D::get_shadow_color() const { } void Light2D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - RS::get_singleton()->canvas_light_attach_to_canvas(canvas_light, get_canvas()); _update_light_visibility(); } if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { - RS::get_singleton()->canvas_light_set_transform(canvas_light, get_global_transform()); } if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - _update_light_visibility(); } if (p_what == NOTIFICATION_EXIT_TREE) { - RS::get_singleton()->canvas_light_attach_to_canvas(canvas_light, RID()); _update_light_visibility(); } } String Light2D::get_configuration_warning() const { - if (!texture.is_valid()) { return TTR("A texture with the shape of the light must be supplied to the \"Texture\" property."); } @@ -350,18 +308,15 @@ String Light2D::get_configuration_warning() const { } void Light2D::set_shadow_smooth(float p_amount) { - shadow_smooth = p_amount; RS::get_singleton()->canvas_light_set_shadow_smooth(canvas_light, shadow_smooth); } float Light2D::get_shadow_smooth() const { - return shadow_smooth; } void Light2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_enabled", "enabled"), &Light2D::set_enabled); ClassDB::bind_method(D_METHOD("is_enabled"), &Light2D::is_enabled); @@ -457,7 +412,6 @@ void Light2D::_bind_methods() { } Light2D::Light2D() { - canvas_light = RenderingServer::get_singleton()->canvas_light_create(); enabled = true; editor_only = false; @@ -482,6 +436,5 @@ Light2D::Light2D() { } Light2D::~Light2D() { - RenderingServer::get_singleton()->free(canvas_light); } diff --git a/scene/2d/light_2d.h b/scene/2d/light_2d.h index 7134029441..0d5e8d674a 100644 --- a/scene/2d/light_2d.h +++ b/scene/2d/light_2d.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class Light2D : public Node2D { - GDCLASS(Light2D, Node2D); public: diff --git a/scene/2d/light_occluder_2d.cpp b/scene/2d/light_occluder_2d.cpp index bd1a820aec..80a0c0c40a 100644 --- a/scene/2d/light_occluder_2d.cpp +++ b/scene/2d/light_occluder_2d.cpp @@ -36,7 +36,6 @@ #ifdef TOOLS_ENABLED Rect2 OccluderPolygon2D::_edit_get_rect() const { - if (rect_cache_dirty) { if (closed) { const Vector2 *r = polygon.ptr(); @@ -67,7 +66,6 @@ Rect2 OccluderPolygon2D::_edit_get_rect() const { } bool OccluderPolygon2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - if (closed) { return Geometry::is_point_in_polygon(p_point, Variant(polygon)); } else { @@ -85,7 +83,6 @@ bool OccluderPolygon2D::_edit_is_selected_on_click(const Point2 &p_point, double #endif void OccluderPolygon2D::set_polygon(const Vector<Vector2> &p_polygon) { - polygon = p_polygon; rect_cache_dirty = true; RS::get_singleton()->canvas_occluder_polygon_set_shape(occ_polygon, p_polygon, closed); @@ -93,12 +90,10 @@ void OccluderPolygon2D::set_polygon(const Vector<Vector2> &p_polygon) { } Vector<Vector2> OccluderPolygon2D::get_polygon() const { - return polygon; } void OccluderPolygon2D::set_closed(bool p_closed) { - if (closed == p_closed) return; closed = p_closed; @@ -108,28 +103,23 @@ void OccluderPolygon2D::set_closed(bool p_closed) { } bool OccluderPolygon2D::is_closed() const { - return closed; } void OccluderPolygon2D::set_cull_mode(CullMode p_mode) { - cull = p_mode; RS::get_singleton()->canvas_occluder_polygon_set_cull_mode(occ_polygon, RS::CanvasOccluderPolygonCullMode(p_mode)); } OccluderPolygon2D::CullMode OccluderPolygon2D::get_cull_mode() const { - return cull; } RID OccluderPolygon2D::get_rid() const { - return occ_polygon; } void OccluderPolygon2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_closed", "closed"), &OccluderPolygon2D::set_closed); ClassDB::bind_method(D_METHOD("is_closed"), &OccluderPolygon2D::is_closed); @@ -149,7 +139,6 @@ void OccluderPolygon2D::_bind_methods() { } OccluderPolygon2D::OccluderPolygon2D() { - occ_polygon = RS::get_singleton()->canvas_occluder_polygon_create(); closed = true; cull = CULL_DISABLED; @@ -157,40 +146,31 @@ OccluderPolygon2D::OccluderPolygon2D() { } OccluderPolygon2D::~OccluderPolygon2D() { - RS::get_singleton()->free(occ_polygon); } void LightOccluder2D::_poly_changed() { - #ifdef DEBUG_ENABLED update(); #endif } void LightOccluder2D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_CANVAS) { - RS::get_singleton()->canvas_light_occluder_attach_to_canvas(occluder, get_canvas()); RS::get_singleton()->canvas_light_occluder_set_transform(occluder, get_global_transform()); RS::get_singleton()->canvas_light_occluder_set_enabled(occluder, is_visible_in_tree()); } if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { - RS::get_singleton()->canvas_light_occluder_set_transform(occluder, get_global_transform()); } if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - RS::get_singleton()->canvas_light_occluder_set_enabled(occluder, is_visible_in_tree()); } if (p_what == NOTIFICATION_DRAW) { - if (Engine::get_singleton()->is_editor_hint()) { - if (occluder_polygon.is_valid()) { - Vector<Vector2> poly = occluder_polygon->get_polygon(); if (poly.size()) { @@ -199,11 +179,9 @@ void LightOccluder2D::_notification(int p_what) { color.push_back(Color(0, 0, 0, 0.6)); draw_polygon(Variant(poly), color); } else { - int ps = poly.size(); const Vector2 *r = poly.ptr(); for (int i = 0; i < ps - 1; i++) { - draw_line(r[i], r[i + 1], Color(0, 0, 0, 0.6), 3); } } @@ -213,25 +191,21 @@ void LightOccluder2D::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_CANVAS) { - RS::get_singleton()->canvas_light_occluder_attach_to_canvas(occluder, RID()); } } #ifdef TOOLS_ENABLED Rect2 LightOccluder2D::_edit_get_rect() const { - return occluder_polygon.is_valid() ? occluder_polygon->_edit_get_rect() : Rect2(); } bool LightOccluder2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - return occluder_polygon.is_valid() ? occluder_polygon->_edit_is_selected_on_click(p_point, p_tolerance) : false; } #endif void LightOccluder2D::set_occluder_polygon(const Ref<OccluderPolygon2D> &p_polygon) { - #ifdef DEBUG_ENABLED if (occluder_polygon.is_valid()) occluder_polygon->disconnect("changed", callable_mp(this, &LightOccluder2D::_poly_changed)); @@ -251,23 +225,19 @@ void LightOccluder2D::set_occluder_polygon(const Ref<OccluderPolygon2D> &p_polyg } Ref<OccluderPolygon2D> LightOccluder2D::get_occluder_polygon() const { - return occluder_polygon; } void LightOccluder2D::set_occluder_light_mask(int p_mask) { - mask = p_mask; RS::get_singleton()->canvas_light_occluder_set_light_mask(occluder, mask); } int LightOccluder2D::get_occluder_light_mask() const { - return mask; } String LightOccluder2D::get_configuration_warning() const { - if (!occluder_polygon.is_valid()) { return TTR("An occluder polygon must be set (or drawn) for this occluder to take effect."); } @@ -280,7 +250,6 @@ String LightOccluder2D::get_configuration_warning() const { } void LightOccluder2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_occluder_polygon", "polygon"), &LightOccluder2D::set_occluder_polygon); ClassDB::bind_method(D_METHOD("get_occluder_polygon"), &LightOccluder2D::get_occluder_polygon); @@ -292,13 +261,11 @@ void LightOccluder2D::_bind_methods() { } LightOccluder2D::LightOccluder2D() { - occluder = RS::get_singleton()->canvas_light_occluder_create(); mask = 1; set_notify_transform(true); } LightOccluder2D::~LightOccluder2D() { - RS::get_singleton()->free(occluder); } diff --git a/scene/2d/light_occluder_2d.h b/scene/2d/light_occluder_2d.h index 83702f2875..eba67edfe4 100644 --- a/scene/2d/light_occluder_2d.h +++ b/scene/2d/light_occluder_2d.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class OccluderPolygon2D : public Resource { - GDCLASS(OccluderPolygon2D, Resource); public: diff --git a/scene/2d/line_2d.cpp b/scene/2d/line_2d.cpp index 43c54ffd17..0ec58ec176 100644 --- a/scene/2d/line_2d.cpp +++ b/scene/2d/line_2d.cpp @@ -52,7 +52,6 @@ Line2D::Line2D() { #ifdef TOOLS_ENABLED Rect2 Line2D::_edit_get_rect() const { - if (_points.size() == 0) return Rect2(0, 0, 0, 0); Vector2 d = Vector2(_width, _width); @@ -69,7 +68,6 @@ bool Line2D::_edit_use_rect() const { } bool Line2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - const real_t d = _width / 2 + p_tolerance; const Vector2 *points = _points.ptr(); for (int i = 0; i < _points.size() - 1; i++) { @@ -168,7 +166,6 @@ Color Line2D::get_default_color() const { } void Line2D::set_gradient(const Ref<Gradient> &p_gradient) { - // Cleanup previous connection if any if (_gradient.is_valid()) { _gradient->disconnect(CoreStringNames::get_singleton()->changed, callable_mp(this, &Line2D::_gradient_changed)); @@ -350,7 +347,6 @@ void Line2D::_curve_changed() { // static void Line2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_points", "points"), &Line2D::set_points); ClassDB::bind_method(D_METHOD("get_points"), &Line2D::get_points); diff --git a/scene/2d/line_2d.h b/scene/2d/line_2d.h index 51706befdb..bccbcbdcb9 100644 --- a/scene/2d/line_2d.h +++ b/scene/2d/line_2d.h @@ -34,7 +34,6 @@ #include "node_2d.h" class Line2D : public Node2D { - GDCLASS(Line2D, Node2D); public: diff --git a/scene/2d/line_builder.cpp b/scene/2d/line_builder.cpp index 6b06f2227a..56293a7b8d 100644 --- a/scene/2d/line_builder.cpp +++ b/scene/2d/line_builder.cpp @@ -117,7 +117,6 @@ void LineBuilder::clear_output() { } void LineBuilder::build() { - // Need at least 2 points to draw a line if (points.size() < 2) { clear_output(); @@ -220,7 +219,6 @@ void LineBuilder::build() { // For each additional segment for (int i = 1; i < len - 1; ++i) { - pos1 = points[i]; Vector2 pos2 = points[i + 1]; @@ -359,7 +357,6 @@ void LineBuilder::build() { // Add joint geometry if (current_joint_mode != Line2D::LINE_JOINT_SHARP) { - /* ________________ cbegin * / \ * / \ @@ -541,7 +538,6 @@ void LineBuilder::strip_add_tri(Vector2 up, Orientation orientation) { } void LineBuilder::strip_add_arc(Vector2 center, float angle_delta, Orientation orientation) { - // Take the two last vertices and extrude an arc made of triangles // that all share one of the initial vertices @@ -570,7 +566,6 @@ void LineBuilder::strip_add_arc(Vector2 center, float angle_delta, Orientation o } void LineBuilder::new_arc(Vector2 center, Vector2 vbegin, float angle_delta, Color color, Rect2 uv_rect) { - // Make a standalone arc that doesn't use existing vertices, // with undistorted UVs from within a square section diff --git a/scene/2d/mesh_instance_2d.cpp b/scene/2d/mesh_instance_2d.cpp index 5e258be700..b4dd09c513 100644 --- a/scene/2d/mesh_instance_2d.cpp +++ b/scene/2d/mesh_instance_2d.cpp @@ -31,7 +31,6 @@ #include "mesh_instance_2d.h" void MeshInstance2D::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { if (mesh.is_valid()) { draw_mesh(mesh, texture, normal_map); @@ -40,7 +39,6 @@ void MeshInstance2D::_notification(int p_what) { } void MeshInstance2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_mesh", "mesh"), &MeshInstance2D::set_mesh); ClassDB::bind_method(D_METHOD("get_mesh"), &MeshInstance2D::get_mesh); @@ -58,18 +56,15 @@ void MeshInstance2D::_bind_methods() { } void MeshInstance2D::set_mesh(const Ref<Mesh> &p_mesh) { - mesh = p_mesh; update(); } Ref<Mesh> MeshInstance2D::get_mesh() const { - return mesh; } void MeshInstance2D::set_texture(const Ref<Texture2D> &p_texture) { - if (p_texture == texture) return; texture = p_texture; @@ -79,24 +74,20 @@ void MeshInstance2D::set_texture(const Ref<Texture2D> &p_texture) { } void MeshInstance2D::set_normal_map(const Ref<Texture2D> &p_texture) { - normal_map = p_texture; update(); } Ref<Texture2D> MeshInstance2D::get_normal_map() const { - return normal_map; } Ref<Texture2D> MeshInstance2D::get_texture() const { - return texture; } #ifdef TOOLS_ENABLED Rect2 MeshInstance2D::_edit_get_rect() const { - if (mesh.is_valid()) { AABB aabb = mesh->get_aabb(); return Rect2(aabb.position.x, aabb.position.y, aabb.size.x, aabb.size.y); diff --git a/scene/2d/multimesh_instance_2d.cpp b/scene/2d/multimesh_instance_2d.cpp index 6620027020..d99d5b9b30 100644 --- a/scene/2d/multimesh_instance_2d.cpp +++ b/scene/2d/multimesh_instance_2d.cpp @@ -31,7 +31,6 @@ #include "multimesh_instance_2d.h" void MultiMeshInstance2D::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { if (multimesh.is_valid()) { draw_multimesh(multimesh, texture, normal_map); @@ -40,7 +39,6 @@ void MultiMeshInstance2D::_notification(int p_what) { } void MultiMeshInstance2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_multimesh", "multimesh"), &MultiMeshInstance2D::set_multimesh); ClassDB::bind_method(D_METHOD("get_multimesh"), &MultiMeshInstance2D::get_multimesh); @@ -58,18 +56,15 @@ void MultiMeshInstance2D::_bind_methods() { } void MultiMeshInstance2D::set_multimesh(const Ref<MultiMesh> &p_multimesh) { - multimesh = p_multimesh; update(); } Ref<MultiMesh> MultiMeshInstance2D::get_multimesh() const { - return multimesh; } void MultiMeshInstance2D::set_texture(const Ref<Texture2D> &p_texture) { - if (p_texture == texture) return; texture = p_texture; @@ -79,24 +74,20 @@ void MultiMeshInstance2D::set_texture(const Ref<Texture2D> &p_texture) { } Ref<Texture2D> MultiMeshInstance2D::get_texture() const { - return texture; } void MultiMeshInstance2D::set_normal_map(const Ref<Texture2D> &p_texture) { - normal_map = p_texture; update(); } Ref<Texture2D> MultiMeshInstance2D::get_normal_map() const { - return normal_map; } #ifdef TOOLS_ENABLED Rect2 MultiMeshInstance2D::_edit_get_rect() const { - if (multimesh.is_valid()) { AABB aabb = multimesh->get_aabb(); return Rect2(aabb.position.x, aabb.position.y, aabb.size.x, aabb.size.y); diff --git a/scene/2d/navigation_2d.cpp b/scene/2d/navigation_2d.cpp index ae9fc0f32c..039c6f2e53 100644 --- a/scene/2d/navigation_2d.cpp +++ b/scene/2d/navigation_2d.cpp @@ -54,7 +54,6 @@ void Navigation2D::_notification(int p_what) { NavigationServer2D::get_singleton()->map_set_active(map, true); } break; case NOTIFICATION_EXIT_TREE: { - NavigationServer2D::get_singleton()->map_set_active(map, false); } break; } @@ -83,7 +82,6 @@ RID Navigation2D::get_closest_point_owner(const Vector2 &p_point) const { } Navigation2D::Navigation2D() { - map = NavigationServer2D::get_singleton()->map_create(); set_cell_size(10); // Ten pixels set_edge_connection_margin(100); diff --git a/scene/2d/navigation_2d.h b/scene/2d/navigation_2d.h index 1da13fc78a..6046bddb32 100644 --- a/scene/2d/navigation_2d.h +++ b/scene/2d/navigation_2d.h @@ -35,7 +35,6 @@ #include "scene/2d/node_2d.h" class Navigation2D : public Node2D { - GDCLASS(Navigation2D, Node2D); RID map; diff --git a/scene/2d/navigation_agent_2d.cpp b/scene/2d/navigation_agent_2d.cpp index dfeb5eea45..42dabeb488 100644 --- a/scene/2d/navigation_agent_2d.cpp +++ b/scene/2d/navigation_agent_2d.cpp @@ -35,7 +35,6 @@ #include "servers/navigation_server_2d.h" void NavigationAgent2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_target_desired_distance", "desired_distance"), &NavigationAgent2D::set_target_desired_distance); ClassDB::bind_method(D_METHOD("get_target_desired_distance"), &NavigationAgent2D::get_target_desired_distance); @@ -91,7 +90,6 @@ void NavigationAgent2D::_bind_methods() { void NavigationAgent2D::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { - agent_parent = Object::cast_to<Node2D>(get_parent()); NavigationServer2D::get_singleton()->agent_set_callback(agent, this, "_avoidance_done"); @@ -120,7 +118,6 @@ void NavigationAgent2D::_notification(int p_what) { } break; case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { if (agent_parent) { - NavigationServer2D::get_singleton()->agent_set_position(agent, agent_parent->get_global_transform().get_origin()); if (!target_reached) { if (distance_to_target() < target_desired_distance) { @@ -279,7 +276,6 @@ String NavigationAgent2D::get_configuration_warning() const { } void NavigationAgent2D::update_navigation() { - if (agent_parent == nullptr) return; if (navigation == nullptr) diff --git a/scene/2d/navigation_obstacle_2d.cpp b/scene/2d/navigation_obstacle_2d.cpp index 3eb3ef332f..2352064ae6 100644 --- a/scene/2d/navigation_obstacle_2d.cpp +++ b/scene/2d/navigation_obstacle_2d.cpp @@ -36,7 +36,6 @@ #include "servers/navigation_server_2d.h" void NavigationObstacle2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_navigation", "navigation"), &NavigationObstacle2D::set_navigation_node); ClassDB::bind_method(D_METHOD("get_navigation"), &NavigationObstacle2D::get_navigation_node); } @@ -44,7 +43,6 @@ void NavigationObstacle2D::_bind_methods() { void NavigationObstacle2D::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { - update_agent_shape(); // Search the navigation node and set it diff --git a/scene/2d/navigation_region_2d.cpp b/scene/2d/navigation_region_2d.cpp index f3f335e66a..29f23050da 100644 --- a/scene/2d/navigation_region_2d.cpp +++ b/scene/2d/navigation_region_2d.cpp @@ -40,7 +40,6 @@ #ifdef TOOLS_ENABLED Rect2 NavigationPolygon::_edit_get_rect() const { - if (rect_cache_dirty) { item_rect = Rect2(); bool first = true; @@ -67,7 +66,6 @@ Rect2 NavigationPolygon::_edit_get_rect() const { } bool NavigationPolygon::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - for (int i = 0; i < outlines.size(); i++) { const Vector<Vector2> &outline = outlines[i]; const int outline_size = outline.size(); @@ -81,7 +79,6 @@ bool NavigationPolygon::_edit_is_selected_on_click(const Point2 &p_point, double #endif void NavigationPolygon::set_vertices(const Vector<Vector2> &p_vertices) { - { MutexLock lock(navmesh_generation); navmesh.unref(); @@ -91,12 +88,10 @@ void NavigationPolygon::set_vertices(const Vector<Vector2> &p_vertices) { } Vector<Vector2> NavigationPolygon::get_vertices() const { - return vertices; } void NavigationPolygon::_set_polygons(const TypedArray<Vector<int32_t>> &p_array) { - { MutexLock lock(navmesh_generation); navmesh.unref(); @@ -108,7 +103,6 @@ void NavigationPolygon::_set_polygons(const TypedArray<Vector<int32_t>> &p_array } Array NavigationPolygon::_get_polygons() const { - Array ret; ret.resize(polygons.size()); for (int i = 0; i < ret.size(); i++) { @@ -119,7 +113,6 @@ Array NavigationPolygon::_get_polygons() const { } void NavigationPolygon::_set_outlines(const TypedArray<Vector<Vector2>> &p_array) { - outlines.resize(p_array.size()); for (int i = 0; i < p_array.size(); i++) { outlines.write[i] = p_array[i]; @@ -128,7 +121,6 @@ void NavigationPolygon::_set_outlines(const TypedArray<Vector<Vector2>> &p_array } Array NavigationPolygon::_get_outlines() const { - Array ret; ret.resize(outlines.size()); for (int i = 0; i < ret.size(); i++) { @@ -139,7 +131,6 @@ Array NavigationPolygon::_get_outlines() const { } void NavigationPolygon::add_polygon(const Vector<int> &p_polygon) { - Polygon polygon; polygon.indices = p_polygon; polygons.push_back(polygon); @@ -150,22 +141,18 @@ void NavigationPolygon::add_polygon(const Vector<int> &p_polygon) { } void NavigationPolygon::add_outline_at_index(const Vector<Vector2> &p_outline, int p_index) { - outlines.insert(p_index, p_outline); rect_cache_dirty = true; } int NavigationPolygon::get_polygon_count() const { - return polygons.size(); } Vector<int> NavigationPolygon::get_polygon(int p_idx) { - ERR_FAIL_INDEX_V(p_idx, polygons.size(), Vector<int>()); return polygons[p_idx].indices; } void NavigationPolygon::clear_polygons() { - polygons.clear(); { MutexLock lock(navmesh_generation); @@ -200,13 +187,11 @@ Ref<NavigationMesh> NavigationPolygon::get_mesh() { } void NavigationPolygon::add_outline(const Vector<Vector2> &p_outline) { - outlines.push_back(p_outline); rect_cache_dirty = true; } int NavigationPolygon::get_outline_count() const { - return outlines.size(); } @@ -217,7 +202,6 @@ void NavigationPolygon::set_outline(int p_idx, const Vector<Vector2> &p_outline) } void NavigationPolygon::remove_outline(int p_idx) { - ERR_FAIL_INDEX(p_idx, outlines.size()); outlines.remove(p_idx); rect_cache_dirty = true; @@ -229,12 +213,10 @@ Vector<Vector2> NavigationPolygon::get_outline(int p_idx) const { } void NavigationPolygon::clear_outlines() { - outlines.clear(); rect_cache_dirty = true; } void NavigationPolygon::make_polygons_from_outlines() { - { MutexLock lock(navmesh_generation); navmesh.unref(); @@ -244,7 +226,6 @@ void NavigationPolygon::make_polygons_from_outlines() { Vector2 outside_point(-1e10, -1e10); for (int i = 0; i < outlines.size(); i++) { - Vector<Vector2> ol = outlines[i]; int olsize = ol.size(); if (olsize < 3) @@ -259,7 +240,6 @@ void NavigationPolygon::make_polygons_from_outlines() { outside_point += Vector2(0.7239784, 0.819238); //avoid precision issues for (int i = 0; i < outlines.size(); i++) { - Vector<Vector2> ol = outlines[i]; int olsize = ol.size(); if (olsize < 3) @@ -269,7 +249,6 @@ void NavigationPolygon::make_polygons_from_outlines() { int interscount = 0; //test if this is an outer outline for (int k = 0; k < outlines.size(); k++) { - if (i == k) continue; //no self intersect @@ -280,7 +259,6 @@ void NavigationPolygon::make_polygons_from_outlines() { const Vector2 *r2 = ol2.ptr(); for (int l = 0; l < olsize2; l++) { - if (Geometry::segment_intersects_segment_2d(r[0], outside_point, r2[l], r2[(l + 1) % olsize2], nullptr)) { interscount++; } @@ -316,13 +294,11 @@ void NavigationPolygon::make_polygons_from_outlines() { Map<Vector2, int> points; for (List<TriangulatorPoly>::Element *I = out_poly.front(); I; I = I->next()) { - TriangulatorPoly &tp = I->get(); struct Polygon p; for (int64_t i = 0; i < tp.GetNumPoints(); i++) { - Map<Vector2, int>::Element *E = points.find(tp[i]); if (!E) { E = points.insert(tp[i], vertices.size()); @@ -338,7 +314,6 @@ void NavigationPolygon::make_polygons_from_outlines() { } void NavigationPolygon::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_vertices", "vertices"), &NavigationPolygon::set_vertices); ClassDB::bind_method(D_METHOD("get_vertices"), &NavigationPolygon::get_vertices); @@ -368,7 +343,6 @@ void NavigationPolygon::_bind_methods() { } void NavigationRegion2D::set_enabled(bool p_enabled) { - if (enabled == p_enabled) return; enabled = p_enabled; @@ -377,12 +351,9 @@ void NavigationRegion2D::set_enabled(bool p_enabled) { return; if (!enabled) { - NavigationServer2D::get_singleton()->region_set_map(region, RID()); } else { - if (navigation) { - NavigationServer2D::get_singleton()->region_set_map(region, navigation->get_rid()); } } @@ -392,36 +363,28 @@ void NavigationRegion2D::set_enabled(bool p_enabled) { } bool NavigationRegion2D::is_enabled() const { - return enabled; } ///////////////////////////// #ifdef TOOLS_ENABLED Rect2 NavigationRegion2D::_edit_get_rect() const { - return navpoly.is_valid() ? navpoly->_edit_get_rect() : Rect2(); } bool NavigationRegion2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - return navpoly.is_valid() ? navpoly->_edit_is_selected_on_click(p_point, p_tolerance) : false; } #endif void NavigationRegion2D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_ENTER_TREE: { - Node2D *c = this; while (c) { - navigation = Object::cast_to<Navigation2D>(c); if (navigation) { - if (enabled) { - NavigationServer2D::get_singleton()->region_set_map(region, navigation->get_rid()); } break; @@ -432,22 +395,17 @@ void NavigationRegion2D::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - NavigationServer2D::get_singleton()->region_set_transform(region, get_global_transform()); } break; case NOTIFICATION_EXIT_TREE: { - if (navigation) { - NavigationServer2D::get_singleton()->region_set_map(region, RID()); } navigation = nullptr; } break; case NOTIFICATION_DRAW: { - if (is_inside_tree() && (Engine::get_singleton()->is_editor_hint() || get_tree()->is_debugging_navigation_hint()) && navpoly.is_valid()) { - Vector<Vector2> verts = navpoly->get_vertices(); int vsize = verts.size(); if (vsize < 3) @@ -477,10 +435,8 @@ void NavigationRegion2D::_notification(int p_what) { Vector<int> polygon = navpoly->get_polygon(i); for (int j = 2; j < polygon.size(); j++) { - int kofs[3] = { 0, j - 1, j }; for (int k = 0; k < 3; k++) { - int idx = polygon[kofs[k]]; ERR_FAIL_INDEX(idx, vsize); indices.push_back(idx); @@ -494,7 +450,6 @@ void NavigationRegion2D::_notification(int p_what) { } void NavigationRegion2D::set_navigation_polygon(const Ref<NavigationPolygon> &p_navpoly) { - if (p_navpoly == navpoly) { return; } @@ -516,18 +471,15 @@ void NavigationRegion2D::set_navigation_polygon(const Ref<NavigationPolygon> &p_ } Ref<NavigationPolygon> NavigationRegion2D::get_navigation_polygon() const { - return navpoly; } void NavigationRegion2D::_navpoly_changed() { - if (is_inside_tree() && (Engine::get_singleton()->is_editor_hint() || get_tree()->is_debugging_navigation_hint())) update(); } String NavigationRegion2D::get_configuration_warning() const { - if (!is_visible_in_tree() || !is_inside_tree()) return String(); @@ -536,7 +488,6 @@ String NavigationRegion2D::get_configuration_warning() const { } const Node2D *c = this; while (c) { - if (Object::cast_to<Navigation2D>(c)) { return String(); } @@ -548,7 +499,6 @@ String NavigationRegion2D::get_configuration_warning() const { } void NavigationRegion2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_navigation_polygon", "navpoly"), &NavigationRegion2D::set_navigation_polygon); ClassDB::bind_method(D_METHOD("get_navigation_polygon"), &NavigationRegion2D::get_navigation_polygon); diff --git a/scene/2d/navigation_region_2d.h b/scene/2d/navigation_region_2d.h index 54d2ac11f8..07cf4d6668 100644 --- a/scene/2d/navigation_region_2d.h +++ b/scene/2d/navigation_region_2d.h @@ -35,7 +35,6 @@ #include "scene/resources/navigation_mesh.h" class NavigationPolygon : public Resource { - GDCLASS(NavigationPolygon, Resource); Vector<Vector2> vertices; @@ -95,7 +94,6 @@ public: class Navigation2D; class NavigationRegion2D : public Node2D { - GDCLASS(NavigationRegion2D, Node2D); bool enabled = true; diff --git a/scene/2d/node_2d.cpp b/scene/2d/node_2d.cpp index 1ea51be148..b500266620 100644 --- a/scene/2d/node_2d.cpp +++ b/scene/2d/node_2d.cpp @@ -37,7 +37,6 @@ #ifdef TOOLS_ENABLED Dictionary Node2D::_edit_get_state() const { - Dictionary state; state["position"] = get_position(); state["rotation"] = get_rotation(); @@ -48,7 +47,6 @@ Dictionary Node2D::_edit_get_state() const { } void Node2D::_edit_set_state(const Dictionary &p_state) { - pos = p_state["position"]; angle = p_state["rotation"]; _scale = p_state["scale"]; @@ -128,7 +126,6 @@ void Node2D::_edit_set_rect(const Rect2 &p_edit_rect) { #endif void Node2D::_update_xform_values() { - pos = _mat.elements[2]; angle = _mat.get_rotation(); _scale = _mat.get_scale(); @@ -137,7 +134,6 @@ void Node2D::_update_xform_values() { } void Node2D::_update_transform() { - _mat.set_rotation_scale_and_skew(angle, _scale, skew); _mat.elements[2] = pos; @@ -150,7 +146,6 @@ void Node2D::_update_transform() { } void Node2D::set_position(const Point2 &p_pos) { - if (_xform_dirty) ((Node2D *)this)->_update_xform_values(); pos = p_pos; @@ -159,7 +154,6 @@ void Node2D::set_position(const Point2 &p_pos) { } void Node2D::set_rotation(float p_radians) { - if (_xform_dirty) ((Node2D *)this)->_update_xform_values(); angle = p_radians; @@ -169,7 +163,6 @@ void Node2D::set_rotation(float p_radians) { } void Node2D::set_skew(float p_radians) { - if (_xform_dirty) ((Node2D *)this)->_update_xform_values(); skew = p_radians; @@ -179,17 +172,14 @@ void Node2D::set_skew(float p_radians) { } void Node2D::set_rotation_degrees(float p_degrees) { - set_rotation(Math::deg2rad(p_degrees)); } void Node2D::set_skew_degrees(float p_degrees) { - set_skew(Math::deg2rad(p_degrees)); } void Node2D::set_scale(const Size2 &p_scale) { - if (_xform_dirty) ((Node2D *)this)->_update_xform_values(); _scale = p_scale; @@ -203,7 +193,6 @@ void Node2D::set_scale(const Size2 &p_scale) { } Point2 Node2D::get_position() const { - if (_xform_dirty) ((Node2D *)this)->_update_xform_values(); return pos; @@ -224,12 +213,10 @@ float Node2D::get_skew() const { } float Node2D::get_rotation_degrees() const { - return Math::rad2deg(get_rotation()); } float Node2D::get_skew_degrees() const { - return Math::rad2deg(get_skew()); } Size2 Node2D::get_scale() const { @@ -240,32 +227,26 @@ Size2 Node2D::get_scale() const { } Transform2D Node2D::get_transform() const { - return _mat; } void Node2D::rotate(float p_radians) { - set_rotation(get_rotation() + p_radians); } void Node2D::translate(const Vector2 &p_amount) { - set_position(get_position() + p_amount); } void Node2D::global_translate(const Vector2 &p_amount) { - set_global_position(get_global_position() + p_amount); } void Node2D::apply_scale(const Size2 &p_amount) { - set_scale(get_scale() * p_amount); } void Node2D::move_x(float p_delta, bool p_scaled) { - Transform2D t = get_transform(); Vector2 m = t[0]; if (!p_scaled) @@ -274,7 +255,6 @@ void Node2D::move_x(float p_delta, bool p_scaled) { } void Node2D::move_y(float p_delta, bool p_scaled) { - Transform2D t = get_transform(); Vector2 m = t[1]; if (!p_scaled) @@ -283,12 +263,10 @@ void Node2D::move_y(float p_delta, bool p_scaled) { } Point2 Node2D::get_global_position() const { - return get_global_transform().get_origin(); } void Node2D::set_global_position(const Point2 &p_pos) { - Transform2D inv; CanvasItem *pi = get_parent_item(); if (pi) { @@ -300,12 +278,10 @@ void Node2D::set_global_position(const Point2 &p_pos) { } float Node2D::get_global_rotation() const { - return get_global_transform().get_rotation(); } void Node2D::set_global_rotation(float p_radians) { - CanvasItem *pi = get_parent_item(); if (pi) { const float parent_global_rot = pi->get_global_transform().get_rotation(); @@ -316,22 +292,18 @@ void Node2D::set_global_rotation(float p_radians) { } float Node2D::get_global_rotation_degrees() const { - return Math::rad2deg(get_global_rotation()); } void Node2D::set_global_rotation_degrees(float p_degrees) { - set_global_rotation(Math::deg2rad(p_degrees)); } Size2 Node2D::get_global_scale() const { - return get_global_transform().get_scale(); } void Node2D::set_global_scale(const Size2 &p_scale) { - CanvasItem *pi = get_parent_item(); if (pi) { const Size2 parent_global_scale = pi->get_global_transform().get_scale(); @@ -342,7 +314,6 @@ void Node2D::set_global_scale(const Size2 &p_scale) { } void Node2D::set_transform(const Transform2D &p_transform) { - _mat = p_transform; _xform_dirty = true; @@ -355,7 +326,6 @@ void Node2D::set_transform(const Transform2D &p_transform) { } void Node2D::set_global_transform(const Transform2D &p_transform) { - CanvasItem *pi = get_parent_item(); if (pi) set_transform(pi->get_global_transform().affine_inverse() * p_transform); @@ -364,7 +334,6 @@ void Node2D::set_global_transform(const Transform2D &p_transform) { } void Node2D::set_z_index(int p_z) { - ERR_FAIL_COND(p_z < RS::CANVAS_ITEM_Z_MIN); ERR_FAIL_COND(p_z > RS::CANVAS_ITEM_Z_MAX); z_index = p_z; @@ -373,7 +342,6 @@ void Node2D::set_z_index(int p_z) { } void Node2D::set_z_as_relative(bool p_enabled) { - if (z_relative == p_enabled) return; z_relative = p_enabled; @@ -381,17 +349,14 @@ void Node2D::set_z_as_relative(bool p_enabled) { } bool Node2D::is_z_relative() const { - return z_relative; } int Node2D::get_z_index() const { - return z_index; } Transform2D Node2D::get_relative_transform_to_parent(const Node *p_parent) const { - if (p_parent == this) return Transform2D(); @@ -405,27 +370,22 @@ Transform2D Node2D::get_relative_transform_to_parent(const Node *p_parent) const } void Node2D::look_at(const Vector2 &p_pos) { - rotate(get_angle_to(p_pos)); } float Node2D::get_angle_to(const Vector2 &p_pos) const { - return (to_local(p_pos) * get_scale()).angle(); } Point2 Node2D::to_local(Point2 p_global) const { - return get_global_transform().affine_inverse().xform(p_global); } Point2 Node2D::to_global(Point2 p_local) const { - return get_global_transform().xform(p_local); } void Node2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_position", "position"), &Node2D::set_position); ClassDB::bind_method(D_METHOD("set_rotation", "radians"), &Node2D::set_rotation); ClassDB::bind_method(D_METHOD("set_rotation_degrees", "degrees"), &Node2D::set_rotation_degrees); @@ -494,7 +454,6 @@ void Node2D::_bind_methods() { } Node2D::Node2D() { - angle = 0; _scale = Vector2(1, 1); skew = 0; diff --git a/scene/2d/node_2d.h b/scene/2d/node_2d.h index 0afec36254..827c192585 100644 --- a/scene/2d/node_2d.h +++ b/scene/2d/node_2d.h @@ -34,7 +34,6 @@ #include "scene/main/canvas_item.h" class Node2D : public CanvasItem { - GDCLASS(Node2D, CanvasItem); Point2 pos; diff --git a/scene/2d/parallax_background.cpp b/scene/2d/parallax_background.cpp index 0d5f74a265..6930307840 100644 --- a/scene/2d/parallax_background.cpp +++ b/scene/2d/parallax_background.cpp @@ -32,24 +32,19 @@ #include "parallax_layer.h" void ParallaxBackground::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - group_name = "__cameras_" + itos(get_viewport().get_id()); add_to_group(group_name); } break; case NOTIFICATION_EXIT_TREE: { - remove_from_group(group_name); } break; } } void ParallaxBackground::_camera_moved(const Transform2D &p_transform, const Point2 &p_screen_offset) { - screen_offset = p_screen_offset; set_scroll_scale(p_transform.get_scale().dot(Vector2(0.5, 0.5))); @@ -57,24 +52,20 @@ void ParallaxBackground::_camera_moved(const Transform2D &p_transform, const Poi } void ParallaxBackground::set_scroll_scale(float p_scale) { - scale = p_scale; } float ParallaxBackground::get_scroll_scale() const { - return scale; } void ParallaxBackground::set_scroll_offset(const Point2 &p_ofs) { - offset = p_ofs; _update_scroll(); } void ParallaxBackground::_update_scroll() { - if (!is_inside_tree()) return; @@ -84,7 +75,6 @@ void ParallaxBackground::_update_scroll() { ofs = -ofs; if (limit_begin.x < limit_end.x) { - if (ofs.x < limit_begin.x) ofs.x = limit_begin.x; else if (ofs.x + vps.x > limit_end.x) @@ -92,7 +82,6 @@ void ParallaxBackground::_update_scroll() { } if (limit_begin.y < limit_end.y) { - if (ofs.y < limit_begin.y) ofs.y = limit_begin.y; else if (ofs.y + vps.y > limit_end.y) @@ -103,7 +92,6 @@ void ParallaxBackground::_update_scroll() { final_offset = ofs; for (int i = 0; i < get_child_count(); i++) { - ParallaxLayer *l = Object::cast_to<ParallaxLayer>(get_child(i)); if (!l) continue; @@ -116,71 +104,58 @@ void ParallaxBackground::_update_scroll() { } Point2 ParallaxBackground::get_scroll_offset() const { - return offset; } void ParallaxBackground::set_scroll_base_offset(const Point2 &p_ofs) { - base_offset = p_ofs; _update_scroll(); } Point2 ParallaxBackground::get_scroll_base_offset() const { - return base_offset; } void ParallaxBackground::set_scroll_base_scale(const Point2 &p_ofs) { - base_scale = p_ofs; _update_scroll(); } Point2 ParallaxBackground::get_scroll_base_scale() const { - return base_scale; } void ParallaxBackground::set_limit_begin(const Point2 &p_ofs) { - limit_begin = p_ofs; _update_scroll(); } Point2 ParallaxBackground::get_limit_begin() const { - return limit_begin; } void ParallaxBackground::set_limit_end(const Point2 &p_ofs) { - limit_end = p_ofs; _update_scroll(); } Point2 ParallaxBackground::get_limit_end() const { - return limit_end; } void ParallaxBackground::set_ignore_camera_zoom(bool ignore) { - ignore_camera_zoom = ignore; } bool ParallaxBackground::is_ignore_camera_zoom() { - return ignore_camera_zoom; } Vector2 ParallaxBackground::get_final_offset() const { - return final_offset; } void ParallaxBackground::_bind_methods() { - ClassDB::bind_method(D_METHOD("_camera_moved"), &ParallaxBackground::_camera_moved); ClassDB::bind_method(D_METHOD("set_scroll_offset", "ofs"), &ParallaxBackground::set_scroll_offset); ClassDB::bind_method(D_METHOD("get_scroll_offset"), &ParallaxBackground::get_scroll_offset); @@ -205,7 +180,6 @@ void ParallaxBackground::_bind_methods() { } ParallaxBackground::ParallaxBackground() { - scale = 1.0; set_layer(-100); //behind all by default diff --git a/scene/2d/parallax_background.h b/scene/2d/parallax_background.h index 25ccd910d1..1667880ddb 100644 --- a/scene/2d/parallax_background.h +++ b/scene/2d/parallax_background.h @@ -36,7 +36,6 @@ #include "scene/main/canvas_layer.h" class ParallaxBackground : public CanvasLayer { - GDCLASS(ParallaxBackground, CanvasLayer); Point2 offset; diff --git a/scene/2d/parallax_layer.cpp b/scene/2d/parallax_layer.cpp index 181f0f158c..ffc6e50da2 100644 --- a/scene/2d/parallax_layer.cpp +++ b/scene/2d/parallax_layer.cpp @@ -34,7 +34,6 @@ #include "parallax_background.h" void ParallaxLayer::set_motion_scale(const Size2 &p_scale) { - motion_scale = p_scale; ParallaxBackground *pb = Object::cast_to<ParallaxBackground>(get_parent()); @@ -46,12 +45,10 @@ void ParallaxLayer::set_motion_scale(const Size2 &p_scale) { } Size2 ParallaxLayer::get_motion_scale() const { - return motion_scale; } void ParallaxLayer::set_motion_offset(const Size2 &p_offset) { - motion_offset = p_offset; ParallaxBackground *pb = Object::cast_to<ParallaxBackground>(get_parent()); @@ -63,18 +60,15 @@ void ParallaxLayer::set_motion_offset(const Size2 &p_offset) { } Size2 ParallaxLayer::get_motion_offset() const { - return motion_offset; } void ParallaxLayer::_update_mirroring() { - if (!is_inside_tree()) return; ParallaxBackground *pb = Object::cast_to<ParallaxBackground>(get_parent()); if (pb) { - RID c = pb->get_canvas(); RID ci = get_canvas_item(); Point2 mirrorScale = mirroring * get_scale(); @@ -83,7 +77,6 @@ void ParallaxLayer::_update_mirroring() { } void ParallaxLayer::set_mirroring(const Size2 &p_mirroring) { - mirroring = p_mirroring; if (mirroring.x < 0) mirroring.x = 0; @@ -94,22 +87,17 @@ void ParallaxLayer::set_mirroring(const Size2 &p_mirroring) { } Size2 ParallaxLayer::get_mirroring() const { - return mirroring; } void ParallaxLayer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - orig_offset = get_position(); orig_scale = get_scale(); _update_mirroring(); } break; case NOTIFICATION_EXIT_TREE: { - set_position(orig_offset); set_scale(orig_scale); } break; @@ -143,7 +131,6 @@ void ParallaxLayer::set_base_offset_and_scale(const Point2 &p_offset, float p_sc } String ParallaxLayer::get_configuration_warning() const { - if (!Object::cast_to<ParallaxBackground>(get_parent())) { return TTR("ParallaxLayer node only works when set as child of a ParallaxBackground node."); } @@ -152,7 +139,6 @@ String ParallaxLayer::get_configuration_warning() const { } void ParallaxLayer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_motion_scale", "scale"), &ParallaxLayer::set_motion_scale); ClassDB::bind_method(D_METHOD("get_motion_scale"), &ParallaxLayer::get_motion_scale); ClassDB::bind_method(D_METHOD("set_motion_offset", "offset"), &ParallaxLayer::set_motion_offset); diff --git a/scene/2d/parallax_layer.h b/scene/2d/parallax_layer.h index ba59184649..1f001943b5 100644 --- a/scene/2d/parallax_layer.h +++ b/scene/2d/parallax_layer.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class ParallaxLayer : public Node2D { - GDCLASS(ParallaxLayer, Node2D); Point2 orig_offset; diff --git a/scene/2d/path_2d.cpp b/scene/2d/path_2d.cpp index 149d5c6b0d..a914da8fe0 100644 --- a/scene/2d/path_2d.cpp +++ b/scene/2d/path_2d.cpp @@ -39,16 +39,13 @@ #ifdef TOOLS_ENABLED Rect2 Path2D::_edit_get_rect() const { - if (!curve.is_valid() || curve->get_point_count() == 0) return Rect2(0, 0, 0, 0); Rect2 aabb = Rect2(curve->get_point_position(0), Vector2(0, 0)); for (int i = 0; i < curve->get_point_count(); i++) { - for (int j = 0; j <= 8; j++) { - real_t frac = j / 8.0; Vector2 p = curve->interpolate(i, frac); aabb.expand_to(p); @@ -63,7 +60,6 @@ bool Path2D::_edit_use_rect() const { } bool Path2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - if (curve.is_null()) { return false; } @@ -89,7 +85,6 @@ bool Path2D::_edit_is_selected_on_click(const Point2 &p_point, double p_toleranc #endif void Path2D::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW && curve.is_valid()) { //draw the curve!! @@ -105,11 +100,9 @@ void Path2D::_notification(int p_what) { const Color color = Color(0.5, 0.6, 1.0, 0.7); for (int i = 0; i < curve->get_point_count(); i++) { - Vector2 prev_p = curve->get_point_position(i); for (int j = 1; j <= 8; j++) { - real_t frac = j / 8.0; Vector2 p = curve->interpolate(i, frac); draw_line(prev_p, p, color, line_width); @@ -132,7 +125,6 @@ void Path2D::_curve_changed() { } void Path2D::set_curve(const Ref<Curve2D> &p_curve) { - if (curve.is_valid()) { curve->disconnect("changed", callable_mp(this, &Path2D::_curve_changed)); } @@ -147,12 +139,10 @@ void Path2D::set_curve(const Ref<Curve2D> &p_curve) { } Ref<Curve2D> Path2D::get_curve() const { - return curve; } void Path2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_curve", "curve"), &Path2D::set_curve); ClassDB::bind_method(D_METHOD("get_curve"), &Path2D::get_curve); @@ -160,14 +150,12 @@ void Path2D::_bind_methods() { } Path2D::Path2D() { - set_curve(Ref<Curve2D>(memnew(Curve2D))); //create one by default } ///////////////////////////////////////////////////////////////////////////////// void PathFollow2D::_update_transform() { - if (!path) return; @@ -219,7 +207,6 @@ void PathFollow2D::_update_transform() { set_rotation(tangent_to_curve.angle()); } else { - pos.x += h_offset; pos.y += v_offset; } @@ -228,11 +215,8 @@ void PathFollow2D::_update_transform() { } void PathFollow2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - path = Object::cast_to<Path2D>(get_parent()); if (path) { _update_transform(); @@ -240,26 +224,21 @@ void PathFollow2D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - path = nullptr; } break; } } void PathFollow2D::set_cubic_interpolation(bool p_enable) { - cubic = p_enable; } bool PathFollow2D::get_cubic_interpolation() const { - return cubic; } void PathFollow2D::_validate_property(PropertyInfo &property) const { - if (property.name == "offset") { - float max = 10000; if (path && path->get_curve().is_valid()) max = path->get_curve()->get_baked_length(); @@ -269,7 +248,6 @@ void PathFollow2D::_validate_property(PropertyInfo &property) const { } String PathFollow2D::get_configuration_warning() const { - if (!is_visible_in_tree() || !is_inside_tree()) return String(); @@ -281,7 +259,6 @@ String PathFollow2D::get_configuration_warning() const { } void PathFollow2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_offset", "offset"), &PathFollow2D::set_offset); ClassDB::bind_method(D_METHOD("get_offset"), &PathFollow2D::get_offset); @@ -317,7 +294,6 @@ void PathFollow2D::_bind_methods() { } void PathFollow2D::set_offset(float p_offset) { - offset = p_offset; if (path) { if (path->get_curve().is_valid()) { @@ -340,42 +316,35 @@ void PathFollow2D::set_offset(float p_offset) { } void PathFollow2D::set_h_offset(float p_h_offset) { - h_offset = p_h_offset; if (path) _update_transform(); } float PathFollow2D::get_h_offset() const { - return h_offset; } void PathFollow2D::set_v_offset(float p_v_offset) { - v_offset = p_v_offset; if (path) _update_transform(); } float PathFollow2D::get_v_offset() const { - return v_offset; } float PathFollow2D::get_offset() const { - return offset; } void PathFollow2D::set_unit_offset(float p_unit_offset) { - if (path && path->get_curve().is_valid() && path->get_curve()->get_baked_length()) set_offset(p_unit_offset * path->get_curve()->get_baked_length()); } float PathFollow2D::get_unit_offset() const { - if (path && path->get_curve().is_valid() && path->get_curve()->get_baked_length()) return get_offset() / path->get_curve()->get_baked_length(); else @@ -383,38 +352,31 @@ float PathFollow2D::get_unit_offset() const { } void PathFollow2D::set_lookahead(float p_lookahead) { - lookahead = p_lookahead; } float PathFollow2D::get_lookahead() const { - return lookahead; } void PathFollow2D::set_rotate(bool p_rotate) { - rotate = p_rotate; _update_transform(); } bool PathFollow2D::is_rotating() const { - return rotate; } void PathFollow2D::set_loop(bool p_loop) { - loop = p_loop; } bool PathFollow2D::has_loop() const { - return loop; } PathFollow2D::PathFollow2D() { - offset = 0; h_offset = 0; v_offset = 0; diff --git a/scene/2d/path_2d.h b/scene/2d/path_2d.h index 35cf8211f4..288ef698e7 100644 --- a/scene/2d/path_2d.h +++ b/scene/2d/path_2d.h @@ -35,7 +35,6 @@ #include "scene/resources/curve.h" class Path2D : public Node2D { - GDCLASS(Path2D, Node2D); Ref<Curve2D> curve; @@ -60,7 +59,6 @@ public: }; class PathFollow2D : public Node2D { - GDCLASS(PathFollow2D, Node2D); public: diff --git a/scene/2d/physics_body_2d.cpp b/scene/2d/physics_body_2d.cpp index 4198eb6c06..23da6ced5b 100644 --- a/scene/2d/physics_body_2d.cpp +++ b/scene/2d/physics_body_2d.cpp @@ -43,18 +43,15 @@ void PhysicsBody2D::_notification(int p_what) { } void PhysicsBody2D::_set_layers(uint32_t p_mask) { - set_collision_layer(p_mask); set_collision_mask(p_mask); } uint32_t PhysicsBody2D::_get_layers() const { - return get_collision_layer(); } void PhysicsBody2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_collision_layer", "layer"), &PhysicsBody2D::set_collision_layer); ClassDB::bind_method(D_METHOD("get_collision_layer"), &PhysicsBody2D::get_collision_layer); ClassDB::bind_method(D_METHOD("set_collision_mask", "mask"), &PhysicsBody2D::set_collision_mask); @@ -80,29 +77,24 @@ void PhysicsBody2D::_bind_methods() { } void PhysicsBody2D::set_collision_layer(uint32_t p_layer) { - collision_layer = p_layer; PhysicsServer2D::get_singleton()->body_set_collision_layer(get_rid(), p_layer); } uint32_t PhysicsBody2D::get_collision_layer() const { - return collision_layer; } void PhysicsBody2D::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; PhysicsServer2D::get_singleton()->body_set_collision_mask(get_rid(), p_mask); } uint32_t PhysicsBody2D::get_collision_mask() const { - return collision_mask; } void PhysicsBody2D::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -111,12 +103,10 @@ void PhysicsBody2D::set_collision_mask_bit(int p_bit, bool p_value) { set_collision_mask(mask); } bool PhysicsBody2D::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } void PhysicsBody2D::set_collision_layer_bit(int p_bit, bool p_value) { - uint32_t collision_layer = get_collision_layer(); if (p_value) collision_layer |= 1 << p_bit; @@ -126,13 +116,11 @@ void PhysicsBody2D::set_collision_layer_bit(int p_bit, bool p_value) { } bool PhysicsBody2D::get_collision_layer_bit(int p_bit) const { - return get_collision_layer() & (1 << p_bit); } PhysicsBody2D::PhysicsBody2D(PhysicsServer2D::BodyMode p_mode) : CollisionObject2D(PhysicsServer2D::get_singleton()->body_create(), false) { - PhysicsServer2D::get_singleton()->body_set_mode(get_rid(), p_mode); collision_layer = 1; collision_mask = 1; @@ -154,7 +142,6 @@ TypedArray<PhysicsBody2D> PhysicsBody2D::get_collision_exceptions() { } void PhysicsBody2D::add_collision_exception_with(Node *p_node) { - ERR_FAIL_NULL(p_node); PhysicsBody2D *physics_body = Object::cast_to<PhysicsBody2D>(p_node); ERR_FAIL_COND_MSG(!physics_body, "Collision exception only works between two objects of PhysicsBody2D type."); @@ -162,7 +149,6 @@ void PhysicsBody2D::add_collision_exception_with(Node *p_node) { } void PhysicsBody2D::remove_collision_exception_with(Node *p_node) { - ERR_FAIL_NULL(p_node); PhysicsBody2D *physics_body = Object::cast_to<PhysicsBody2D>(p_node); ERR_FAIL_COND_MSG(!physics_body, "Collision exception only works between two objects of PhysicsBody2D type."); @@ -170,23 +156,19 @@ void PhysicsBody2D::remove_collision_exception_with(Node *p_node) { } void StaticBody2D::set_constant_linear_velocity(const Vector2 &p_vel) { - constant_linear_velocity = p_vel; PhysicsServer2D::get_singleton()->body_set_state(get_rid(), PhysicsServer2D::BODY_STATE_LINEAR_VELOCITY, constant_linear_velocity); } void StaticBody2D::set_constant_angular_velocity(real_t p_vel) { - constant_angular_velocity = p_vel; PhysicsServer2D::get_singleton()->body_set_state(get_rid(), PhysicsServer2D::BODY_STATE_ANGULAR_VELOCITY, constant_angular_velocity); } Vector2 StaticBody2D::get_constant_linear_velocity() const { - return constant_linear_velocity; } real_t StaticBody2D::get_constant_angular_velocity() const { - return constant_angular_velocity; } @@ -210,7 +192,6 @@ Ref<PhysicsMaterial> StaticBody2D::get_physics_material_override() const { } void StaticBody2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant_linear_velocity", "vel"), &StaticBody2D::set_constant_linear_velocity); ClassDB::bind_method(D_METHOD("set_constant_angular_velocity", "vel"), &StaticBody2D::set_constant_angular_velocity); ClassDB::bind_method(D_METHOD("get_constant_linear_velocity"), &StaticBody2D::get_constant_linear_velocity); @@ -226,7 +207,6 @@ void StaticBody2D::_bind_methods() { StaticBody2D::StaticBody2D() : PhysicsBody2D(PhysicsServer2D::BODY_MODE_STATIC) { - constant_angular_velocity = 0; } @@ -244,7 +224,6 @@ void StaticBody2D::_reload_physics_characteristics() { } void RigidBody2D::_body_enter_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -260,7 +239,6 @@ void RigidBody2D::_body_enter_tree(ObjectID p_id) { emit_signal(SceneStringNames::get_singleton()->body_entered, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_entered, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].local_shape); } @@ -268,7 +246,6 @@ void RigidBody2D::_body_enter_tree(ObjectID p_id) { } void RigidBody2D::_body_exit_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -283,7 +260,6 @@ void RigidBody2D::_body_exit_tree(ObjectID p_id) { emit_signal(SceneStringNames::get_singleton()->body_exited, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_exited, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].local_shape); } @@ -291,7 +267,6 @@ void RigidBody2D::_body_exit_tree(ObjectID p_id) { } void RigidBody2D::_body_inout(int p_status, ObjectID p_instance, int p_body_shape, int p_local_shape) { - bool body_in = p_status == 1; ObjectID objid = p_instance; @@ -305,7 +280,6 @@ void RigidBody2D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap if (body_in) { if (!E) { - E = contact_monitor->body_map.insert(objid, BodyState()); //E->get().rc=0; E->get().in_scene = node && node->is_inside_tree(); @@ -328,7 +302,6 @@ void RigidBody2D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap } } else { - //E->get().rc--; if (node) @@ -337,7 +310,6 @@ void RigidBody2D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap bool in_scene = E->get().in_scene; if (E->get().shapes.empty()) { - if (node) { node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody2D::_body_enter_tree)); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody2D::_body_exit_tree)); @@ -354,14 +326,12 @@ void RigidBody2D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap } struct _RigidBody2DInOut { - ObjectID id; int shape; int local_shape; }; bool RigidBody2D::_test_motion(const Vector2 &p_motion, bool p_infinite_inertia, float p_margin, const Ref<PhysicsTestMotionResult2D> &p_result) { - PhysicsServer2D::MotionResult *r = nullptr; if (p_result.is_valid()) r = p_result->get_result_ptr(); @@ -369,7 +339,6 @@ bool RigidBody2D::_test_motion(const Vector2 &p_motion, bool p_infinite_inertia, } void RigidBody2D::_direct_state_changed(Object *p_state) { - #ifdef DEBUG_ENABLED state = Object::cast_to<PhysicsDirectBodyState2D>(p_state); #else @@ -390,15 +359,12 @@ void RigidBody2D::_direct_state_changed(Object *p_state) { set_block_transform_notify(false); // want it back if (contact_monitor) { - contact_monitor->locked = true; //untag all int rc = 0; for (Map<ObjectID, BodyState>::Element *E = contact_monitor->body_map.front(); E; E = E->next()) { - for (int i = 0; i < E->get().shapes.size(); i++) { - E->get().shapes[i].tagged = false; rc++; } @@ -412,7 +378,6 @@ void RigidBody2D::_direct_state_changed(Object *p_state) { //put the ones to add for (int i = 0; i < state->get_contact_count(); i++) { - ObjectID obj = state->get_contact_collider_id(i); int local_shape = state->get_contact_local_shape(i); int shape = state->get_contact_collider_shape(i); @@ -431,7 +396,6 @@ void RigidBody2D::_direct_state_changed(Object *p_state) { ShapePair sp(shape, local_shape); int idx = E->get().shapes.find(sp); if (idx == -1) { - toadd[toadd_count].local_shape = local_shape; toadd[toadd_count].id = obj; toadd[toadd_count].shape = shape; @@ -445,11 +409,8 @@ void RigidBody2D::_direct_state_changed(Object *p_state) { //put the ones to remove for (Map<ObjectID, BodyState>::Element *E = contact_monitor->body_map.front(); E; E = E->next()) { - for (int i = 0; i < E->get().shapes.size(); i++) { - if (!E->get().shapes[i].tagged) { - toremove[toremove_count].body_id = E->key(); toremove[toremove_count].pair = E->get().shapes[i]; toremove_count++; @@ -460,14 +421,12 @@ void RigidBody2D::_direct_state_changed(Object *p_state) { //process remotions for (int i = 0; i < toremove_count; i++) { - _body_inout(0, toremove[i].body_id, toremove[i].pair.body_shape, toremove[i].pair.local_shape); } //process aditions for (int i = 0; i < toadd_count; i++) { - _body_inout(1, toadd[i].id, toadd[i].shape, toadd[i].local_shape); } @@ -478,21 +437,16 @@ void RigidBody2D::_direct_state_changed(Object *p_state) { } void RigidBody2D::set_mode(Mode p_mode) { - mode = p_mode; switch (p_mode) { - case MODE_RIGID: { - PhysicsServer2D::get_singleton()->body_set_mode(get_rid(), PhysicsServer2D::BODY_MODE_RIGID); } break; case MODE_STATIC: { - PhysicsServer2D::get_singleton()->body_set_mode(get_rid(), PhysicsServer2D::BODY_MODE_STATIC); } break; case MODE_KINEMATIC: { - PhysicsServer2D::get_singleton()->body_set_mode(get_rid(), PhysicsServer2D::BODY_MODE_KINEMATIC); } break; @@ -504,12 +458,10 @@ void RigidBody2D::set_mode(Mode p_mode) { } RigidBody2D::Mode RigidBody2D::get_mode() const { - return mode; } void RigidBody2D::set_mass(real_t p_mass) { - ERR_FAIL_COND(p_mass <= 0); mass = p_mass; _change_notify("mass"); @@ -517,28 +469,23 @@ void RigidBody2D::set_mass(real_t p_mass) { PhysicsServer2D::get_singleton()->body_set_param(get_rid(), PhysicsServer2D::BODY_PARAM_MASS, mass); } real_t RigidBody2D::get_mass() const { - return mass; } void RigidBody2D::set_inertia(real_t p_inertia) { - ERR_FAIL_COND(p_inertia < 0); PhysicsServer2D::get_singleton()->body_set_param(get_rid(), PhysicsServer2D::BODY_PARAM_INERTIA, p_inertia); } real_t RigidBody2D::get_inertia() const { - return PhysicsServer2D::get_singleton()->body_get_param(get_rid(), PhysicsServer2D::BODY_PARAM_INERTIA); } void RigidBody2D::set_weight(real_t p_weight) { - set_mass(p_weight / (real_t(GLOBAL_DEF("physics/2d/default_gravity", 98)) / 10)); } real_t RigidBody2D::get_weight() const { - return mass * (real_t(GLOBAL_DEF("physics/2d/default_gravity", 98)) / 10); } @@ -562,39 +509,32 @@ Ref<PhysicsMaterial> RigidBody2D::get_physics_material_override() const { } void RigidBody2D::set_gravity_scale(real_t p_gravity_scale) { - gravity_scale = p_gravity_scale; PhysicsServer2D::get_singleton()->body_set_param(get_rid(), PhysicsServer2D::BODY_PARAM_GRAVITY_SCALE, gravity_scale); } real_t RigidBody2D::get_gravity_scale() const { - return gravity_scale; } void RigidBody2D::set_linear_damp(real_t p_linear_damp) { - ERR_FAIL_COND(p_linear_damp < -1); linear_damp = p_linear_damp; PhysicsServer2D::get_singleton()->body_set_param(get_rid(), PhysicsServer2D::BODY_PARAM_LINEAR_DAMP, linear_damp); } real_t RigidBody2D::get_linear_damp() const { - return linear_damp; } void RigidBody2D::set_angular_damp(real_t p_angular_damp) { - ERR_FAIL_COND(p_angular_damp < -1); angular_damp = p_angular_damp; PhysicsServer2D::get_singleton()->body_set_param(get_rid(), PhysicsServer2D::BODY_PARAM_ANGULAR_DAMP, angular_damp); } real_t RigidBody2D::get_angular_damp() const { - return angular_damp; } void RigidBody2D::set_axis_velocity(const Vector2 &p_axis) { - Vector2 v = state ? state->get_linear_velocity() : linear_velocity; Vector2 axis = p_axis.normalized(); v -= axis * axis.dot(v); @@ -608,23 +548,19 @@ void RigidBody2D::set_axis_velocity(const Vector2 &p_axis) { } void RigidBody2D::set_linear_velocity(const Vector2 &p_velocity) { - linear_velocity = p_velocity; if (state) state->set_linear_velocity(linear_velocity); else { - PhysicsServer2D::get_singleton()->body_set_state(get_rid(), PhysicsServer2D::BODY_STATE_LINEAR_VELOCITY, linear_velocity); } } Vector2 RigidBody2D::get_linear_velocity() const { - return linear_velocity; } void RigidBody2D::set_angular_velocity(real_t p_velocity) { - angular_velocity = p_velocity; if (state) state->set_angular_velocity(angular_velocity); @@ -632,12 +568,10 @@ void RigidBody2D::set_angular_velocity(real_t p_velocity) { PhysicsServer2D::get_singleton()->body_set_state(get_rid(), PhysicsServer2D::BODY_STATE_ANGULAR_VELOCITY, angular_velocity); } real_t RigidBody2D::get_angular_velocity() const { - return angular_velocity; } void RigidBody2D::set_use_custom_integrator(bool p_enable) { - if (custom_integrator == p_enable) return; @@ -645,40 +579,33 @@ void RigidBody2D::set_use_custom_integrator(bool p_enable) { PhysicsServer2D::get_singleton()->body_set_omit_force_integration(get_rid(), p_enable); } bool RigidBody2D::is_using_custom_integrator() { - return custom_integrator; } void RigidBody2D::set_sleeping(bool p_sleeping) { - sleeping = p_sleeping; PhysicsServer2D::get_singleton()->body_set_state(get_rid(), PhysicsServer2D::BODY_STATE_SLEEPING, sleeping); } void RigidBody2D::set_can_sleep(bool p_active) { - can_sleep = p_active; PhysicsServer2D::get_singleton()->body_set_state(get_rid(), PhysicsServer2D::BODY_STATE_CAN_SLEEP, p_active); } bool RigidBody2D::is_able_to_sleep() const { - return can_sleep; } bool RigidBody2D::is_sleeping() const { - return sleeping; } void RigidBody2D::set_max_contacts_reported(int p_amount) { - max_contacts_reported = p_amount; PhysicsServer2D::get_singleton()->body_set_max_contacts_reported(get_rid(), p_amount); } int RigidBody2D::get_max_contacts_reported() const { - return max_contacts_reported; } @@ -687,7 +614,6 @@ void RigidBody2D::apply_central_impulse(const Vector2 &p_impulse) { } void RigidBody2D::apply_impulse(const Vector2 &p_offset, const Vector2 &p_impulse) { - PhysicsServer2D::get_singleton()->body_apply_impulse(get_rid(), p_offset, p_impulse); } @@ -696,22 +622,18 @@ void RigidBody2D::apply_torque_impulse(float p_torque) { } void RigidBody2D::set_applied_force(const Vector2 &p_force) { - PhysicsServer2D::get_singleton()->body_set_applied_force(get_rid(), p_force); }; Vector2 RigidBody2D::get_applied_force() const { - return PhysicsServer2D::get_singleton()->body_get_applied_force(get_rid()); }; void RigidBody2D::set_applied_torque(const float p_torque) { - PhysicsServer2D::get_singleton()->body_set_applied_torque(get_rid(), p_torque); }; float RigidBody2D::get_applied_torque() const { - return PhysicsServer2D::get_singleton()->body_get_applied_torque(get_rid()); }; @@ -720,7 +642,6 @@ void RigidBody2D::add_central_force(const Vector2 &p_force) { } void RigidBody2D::add_force(const Vector2 &p_offset, const Vector2 &p_force) { - PhysicsServer2D::get_singleton()->body_add_force(get_rid(), p_offset, p_force); } @@ -729,18 +650,15 @@ void RigidBody2D::add_torque(const float p_torque) { } void RigidBody2D::set_continuous_collision_detection_mode(CCDMode p_mode) { - ccd_mode = p_mode; PhysicsServer2D::get_singleton()->body_set_continuous_collision_detection_mode(get_rid(), PhysicsServer2D::CCDMode(p_mode)); } RigidBody2D::CCDMode RigidBody2D::get_continuous_collision_detection_mode() const { - return ccd_mode; } TypedArray<Node2D> RigidBody2D::get_colliding_bodies() const { - ERR_FAIL_COND_V(!contact_monitor, Array()); TypedArray<Node2D> ret; @@ -759,16 +677,13 @@ TypedArray<Node2D> RigidBody2D::get_colliding_bodies() const { } void RigidBody2D::set_contact_monitor(bool p_enabled) { - if (p_enabled == is_contact_monitor_enabled()) return; if (!p_enabled) { - ERR_FAIL_COND_MSG(contact_monitor->locked, "Can't disable contact monitoring during in/out callback. Use call_deferred(\"set_contact_monitor\", false) instead."); for (Map<ObjectID, BodyState>::Element *E = contact_monitor->body_map.front(); E; E = E->next()) { - //clean up mess Object *obj = ObjectDB::get_instance(E->key()); Node *node = Object::cast_to<Node>(obj); @@ -782,19 +697,16 @@ void RigidBody2D::set_contact_monitor(bool p_enabled) { memdelete(contact_monitor); contact_monitor = nullptr; } else { - contact_monitor = memnew(ContactMonitor); contact_monitor->locked = false; } } bool RigidBody2D::is_contact_monitor_enabled() const { - return contact_monitor != nullptr; } void RigidBody2D::_notification(int p_what) { - #ifdef TOOLS_ENABLED if (p_what == NOTIFICATION_ENTER_TREE) { if (Engine::get_singleton()->is_editor_hint()) { @@ -812,7 +724,6 @@ void RigidBody2D::_notification(int p_what) { } String RigidBody2D::get_configuration_warning() const { - Transform2D t = get_transform(); String warning = CollisionObject2D::get_configuration_warning(); @@ -828,7 +739,6 @@ String RigidBody2D::get_configuration_warning() const { } void RigidBody2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_mode", "mode"), &RigidBody2D::set_mode); ClassDB::bind_method(D_METHOD("get_mode"), &RigidBody2D::get_mode); @@ -940,7 +850,6 @@ void RigidBody2D::_bind_methods() { RigidBody2D::RigidBody2D() : PhysicsBody2D(PhysicsServer2D::BODY_MODE_RIGID) { - mode = MODE_RIGID; mass = 1; @@ -964,7 +873,6 @@ RigidBody2D::RigidBody2D() : } RigidBody2D::~RigidBody2D() { - if (contact_monitor) memdelete(contact_monitor); } @@ -982,7 +890,6 @@ void RigidBody2D::_reload_physics_characteristics() { ////////////////////////// Ref<KinematicCollision2D> KinematicBody2D::_move(const Vector2 &p_motion, bool p_infinite_inertia, bool p_exclude_raycast_shapes, bool p_test_only) { - Collision col; if (move_and_collide(p_motion, p_infinite_inertia, col, p_exclude_raycast_shapes, p_test_only)) { @@ -1000,7 +907,6 @@ Ref<KinematicCollision2D> KinematicBody2D::_move(const Vector2 &p_motion, bool p } bool KinematicBody2D::separate_raycast_shapes(bool p_infinite_inertia, Collision &r_collision) { - PhysicsServer2D::SeparationResult sep_res[8]; //max 8 rays Transform2D gt = get_global_transform(); @@ -1037,7 +943,6 @@ bool KinematicBody2D::separate_raycast_shapes(bool p_infinite_inertia, Collision } bool KinematicBody2D::move_and_collide(const Vector2 &p_motion, bool p_infinite_inertia, Collision &r_collision, bool p_exclude_raycast_shapes, bool p_test_only) { - if (sync_to_physics) { ERR_PRINT("Functions move_and_slide and move_and_collide do not work together with 'sync to physics' option. Please read the documentation."); } @@ -1070,7 +975,6 @@ bool KinematicBody2D::move_and_collide(const Vector2 &p_motion, bool p_infinite_ #define FLOOR_ANGLE_THRESHOLD 0.01 Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const Vector2 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) { - Vector2 body_velocity = p_linear_velocity; Vector2 body_velocity_normal = body_velocity.normalized(); @@ -1095,7 +999,6 @@ Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const floor_velocity = Vector2(); while (p_max_slides) { - Collision collision; bool found_collision = false; @@ -1161,7 +1064,6 @@ Vector2 KinematicBody2D::move_and_slide(const Vector2 &p_linear_velocity, const } Vector2 KinematicBody2D::move_and_slide_with_snap(const Vector2 &p_linear_velocity, const Vector2 &p_snap, const Vector2 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) { - bool was_on_floor = on_floor; Vector2 ret = move_and_slide(p_linear_velocity, p_up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia); @@ -1201,47 +1103,38 @@ Vector2 KinematicBody2D::move_and_slide_with_snap(const Vector2 &p_linear_veloci } bool KinematicBody2D::is_on_floor() const { - return on_floor; } bool KinematicBody2D::is_on_wall() const { - return on_wall; } bool KinematicBody2D::is_on_ceiling() const { - return on_ceiling; } Vector2 KinematicBody2D::get_floor_normal() const { - return floor_normal; } Vector2 KinematicBody2D::get_floor_velocity() const { - return floor_velocity; } bool KinematicBody2D::test_move(const Transform2D &p_from, const Vector2 &p_motion, bool p_infinite_inertia) { - ERR_FAIL_COND_V(!is_inside_tree(), false); return PhysicsServer2D::get_singleton()->body_test_motion(get_rid(), p_from, p_motion, p_infinite_inertia, margin); } void KinematicBody2D::set_safe_margin(float p_margin) { - margin = p_margin; } float KinematicBody2D::get_safe_margin() const { - return margin; } int KinematicBody2D::get_slide_count() const { - return colliders.size(); } @@ -1251,7 +1144,6 @@ KinematicBody2D::Collision KinematicBody2D::get_slide_collision(int p_bounce) co } Ref<KinematicCollision2D> KinematicBody2D::_get_slide_collision(int p_bounce) { - ERR_FAIL_INDEX_V(p_bounce, colliders.size(), Ref<KinematicCollision2D>()); if (p_bounce >= slide_colliders.size()) { slide_colliders.resize(p_bounce + 1); @@ -1267,7 +1159,6 @@ Ref<KinematicCollision2D> KinematicBody2D::_get_slide_collision(int p_bounce) { } void KinematicBody2D::set_sync_to_physics(bool p_enable) { - if (sync_to_physics == p_enable) { return; } @@ -1292,7 +1183,6 @@ bool KinematicBody2D::is_sync_to_physics_enabled() const { } void KinematicBody2D::_direct_state_changed(Object *p_state) { - if (!sync_to_physics) return; @@ -1328,7 +1218,6 @@ void KinematicBody2D::_notification(int p_what) { } } void KinematicBody2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("move_and_collide", "rel_vec", "infinite_inertia", "exclude_raycast_shapes", "test_only"), &KinematicBody2D::_move, DEFVAL(true), DEFVAL(true), DEFVAL(false)); ClassDB::bind_method(D_METHOD("move_and_slide", "linear_velocity", "up_direction", "stop_on_slope", "max_slides", "floor_max_angle", "infinite_inertia"), &KinematicBody2D::move_and_slide, DEFVAL(Vector2(0, 0)), DEFVAL(false), DEFVAL(4), DEFVAL(Math::deg2rad((float)45)), DEFVAL(true)); ClassDB::bind_method(D_METHOD("move_and_slide_with_snap", "linear_velocity", "snap", "up_direction", "stop_on_slope", "max_slides", "floor_max_angle", "infinite_inertia"), &KinematicBody2D::move_and_slide_with_snap, DEFVAL(Vector2(0, 0)), DEFVAL(false), DEFVAL(4), DEFVAL(Math::deg2rad((float)45)), DEFVAL(true)); @@ -1358,7 +1247,6 @@ void KinematicBody2D::_bind_methods() { KinematicBody2D::KinematicBody2D() : PhysicsBody2D(PhysicsServer2D::BODY_MODE_KINEMATIC) { - margin = 0.08; on_floor = false; @@ -1381,7 +1269,6 @@ KinematicBody2D::~KinematicBody2D() { //////////////////////// Vector2 KinematicCollision2D::get_position() const { - return collision.collision; } Vector2 KinematicCollision2D::get_normal() const { @@ -1401,7 +1288,6 @@ Object *KinematicCollision2D::get_local_shape() const { } Object *KinematicCollision2D::get_collider() const { - if (collision.collider.is_valid()) { return ObjectDB::get_instance(collision.collider); } @@ -1409,11 +1295,9 @@ Object *KinematicCollision2D::get_collider() const { return nullptr; } ObjectID KinematicCollision2D::get_collider_id() const { - return collision.collider; } Object *KinematicCollision2D::get_collider_shape() const { - Object *collider = get_collider(); if (collider) { CollisionObject2D *obj2d = Object::cast_to<CollisionObject2D>(collider); @@ -1426,20 +1310,16 @@ Object *KinematicCollision2D::get_collider_shape() const { return nullptr; } int KinematicCollision2D::get_collider_shape_index() const { - return collision.collider_shape; } Vector2 KinematicCollision2D::get_collider_velocity() const { - return collision.collider_vel; } Variant KinematicCollision2D::get_collider_metadata() const { - return Variant(); } void KinematicCollision2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_position"), &KinematicCollision2D::get_position); ClassDB::bind_method(D_METHOD("get_normal"), &KinematicCollision2D::get_normal); ClassDB::bind_method(D_METHOD("get_travel"), &KinematicCollision2D::get_travel); @@ -1466,7 +1346,6 @@ void KinematicCollision2D::_bind_methods() { } KinematicCollision2D::KinematicCollision2D() { - collision.collider_shape = 0; collision.local_shape = 0; owner = nullptr; diff --git a/scene/2d/physics_body_2d.h b/scene/2d/physics_body_2d.h index 75f4f778bf..f3bdeb4528 100644 --- a/scene/2d/physics_body_2d.h +++ b/scene/2d/physics_body_2d.h @@ -39,7 +39,6 @@ class KinematicCollision2D; class PhysicsBody2D : public CollisionObject2D { - GDCLASS(PhysicsBody2D, CollisionObject2D); uint32_t collision_layer; @@ -75,7 +74,6 @@ public: }; class StaticBody2D : public PhysicsBody2D { - GDCLASS(StaticBody2D, PhysicsBody2D); Vector2 constant_linear_velocity; @@ -104,7 +102,6 @@ private: }; class RigidBody2D : public PhysicsBody2D { - GDCLASS(RigidBody2D, PhysicsBody2D); public: @@ -143,7 +140,6 @@ private: CCDMode ccd_mode; struct ShapePair { - int body_shape; int local_shape; bool tagged; @@ -161,19 +157,16 @@ private: } }; struct RigidBody2D_RemoveAction { - ObjectID body_id; ShapePair pair; }; struct BodyState { - //int rc; bool in_scene; VSet<ShapePair> shapes; }; struct ContactMonitor { - bool locked; Map<ObjectID, BodyState> body_map; }; @@ -271,7 +264,6 @@ VARIANT_ENUM_CAST(RigidBody2D::Mode); VARIANT_ENUM_CAST(RigidBody2D::CCDMode); class KinematicBody2D : public PhysicsBody2D { - GDCLASS(KinematicBody2D, PhysicsBody2D); public: @@ -344,7 +336,6 @@ public: }; class KinematicCollision2D : public Reference { - GDCLASS(KinematicCollision2D, Reference); KinematicBody2D *owner; diff --git a/scene/2d/polygon_2d.cpp b/scene/2d/polygon_2d.cpp index cec598774e..c05bbb3cd4 100644 --- a/scene/2d/polygon_2d.cpp +++ b/scene/2d/polygon_2d.cpp @@ -81,7 +81,6 @@ bool Polygon2D::_edit_use_rect() const { } bool Polygon2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - Vector<Vector2> polygon2d = Variant(polygon); if (internal_vertices > 0) { polygon2d.resize(polygon2d.size() - internal_vertices); @@ -95,11 +94,8 @@ void Polygon2D::_skeleton_bone_setup_changed() { } void Polygon2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_DRAW: { - if (polygon.size() < 3) return; @@ -147,7 +143,6 @@ void Polygon2D::_notification(int p_what) { points.resize(len); { - const Vector2 *polyr = polygon.ptr(); for (int i = 0; i < len; i++) { points.write[i] = polyr[i] + offset; @@ -155,7 +150,6 @@ void Polygon2D::_notification(int p_what) { } if (invert) { - Rect2 bounds; int highest_idx = -1; float highest_y = -1e20; @@ -195,12 +189,10 @@ void Polygon2D::_notification(int p_what) { points.resize(points.size() + 7); for (int i = points.size() - 1; i >= highest_idx + 7; i--) { - points.write[i] = points[i - 7]; } for (int i = 0; i < 7; i++) { - points.write[highest_idx + i + 1] = ep[i]; } @@ -208,7 +200,6 @@ void Polygon2D::_notification(int p_what) { } if (texture.is_valid()) { - Transform2D texmat(tex_rot, tex_ofs); texmat.scale(tex_scale); Size2 tex_size = texture->get_size(); @@ -216,7 +207,6 @@ void Polygon2D::_notification(int p_what) { uvs.resize(len); if (points.size() == uv.size()) { - const Vector2 *uvr = uv.ptr(); for (int i = 0; i < len; i++) { @@ -356,12 +346,10 @@ void Polygon2D::set_polygon(const Vector<Vector2> &p_polygon) { } Vector<Vector2> Polygon2D::get_polygon() const { - return polygon; } void Polygon2D::set_internal_vertex_count(int p_count) { - internal_vertices = p_count; } @@ -370,49 +358,40 @@ int Polygon2D::get_internal_vertex_count() const { } void Polygon2D::set_uv(const Vector<Vector2> &p_uv) { - uv = p_uv; update(); } Vector<Vector2> Polygon2D::get_uv() const { - return uv; } void Polygon2D::set_polygons(const Array &p_polygons) { - polygons = p_polygons; update(); } Array Polygon2D::get_polygons() const { - return polygons; } void Polygon2D::set_color(const Color &p_color) { - color = p_color; update(); } Color Polygon2D::get_color() const { - return color; } void Polygon2D::set_vertex_colors(const Vector<Color> &p_colors) { - vertex_colors = p_colors; update(); } Vector<Color> Polygon2D::get_vertex_colors() const { - return vertex_colors; } void Polygon2D::set_texture(const Ref<Texture2D> &p_texture) { - texture = p_texture; /*if (texture.is_valid()) { @@ -426,7 +405,6 @@ void Polygon2D::set_texture(const Ref<Texture2D> &p_texture) { update(); } Ref<Texture2D> Polygon2D::get_texture() const { - return texture; } @@ -467,76 +445,61 @@ float Polygon2D::get_shininess() const { } void Polygon2D::set_texture_offset(const Vector2 &p_offset) { - tex_ofs = p_offset; update(); } Vector2 Polygon2D::get_texture_offset() const { - return tex_ofs; } void Polygon2D::set_texture_rotation(float p_rot) { - tex_rot = p_rot; update(); } float Polygon2D::get_texture_rotation() const { - return tex_rot; } void Polygon2D::set_texture_rotation_degrees(float p_rot) { - set_texture_rotation(Math::deg2rad(p_rot)); } float Polygon2D::get_texture_rotation_degrees() const { - return Math::rad2deg(get_texture_rotation()); } void Polygon2D::set_texture_scale(const Size2 &p_scale) { - tex_scale = p_scale; update(); } Size2 Polygon2D::get_texture_scale() const { - return tex_scale; } void Polygon2D::set_invert(bool p_invert) { - invert = p_invert; update(); } bool Polygon2D::get_invert() const { - return invert; } void Polygon2D::set_antialiased(bool p_antialiased) { - antialiased = p_antialiased; update(); } bool Polygon2D::get_antialiased() const { - return antialiased; } void Polygon2D::set_invert_border(float p_invert_border) { - invert_border = p_invert_border; update(); } float Polygon2D::get_invert_border() const { - return invert_border; } void Polygon2D::set_offset(const Vector2 &p_offset) { - offset = p_offset; rect_cache_dirty = true; update(); @@ -544,12 +507,10 @@ void Polygon2D::set_offset(const Vector2 &p_offset) { } Vector2 Polygon2D::get_offset() const { - return offset; } void Polygon2D::add_bone(const NodePath &p_path, const Vector<float> &p_weights) { - Bone bone; bone.path = p_path; bone.weights = p_weights; @@ -563,12 +524,10 @@ NodePath Polygon2D::get_bone_path(int p_index) const { return bone_weights[p_index].path; } Vector<float> Polygon2D::get_bone_weights(int p_index) const { - ERR_FAIL_INDEX_V(p_index, bone_weights.size(), Vector<float>()); return bone_weights[p_index].weights; } void Polygon2D::erase_bone(int p_idx) { - ERR_FAIL_INDEX(p_idx, bone_weights.size()); bone_weights.remove(p_idx); } @@ -597,7 +556,6 @@ Array Polygon2D::_get_bones() const { return bones; } void Polygon2D::_set_bones(const Array &p_bones) { - ERR_FAIL_COND(p_bones.size() & 1); clear_bones(); for (int i = 0; i < p_bones.size(); i += 2) { @@ -617,7 +575,6 @@ NodePath Polygon2D::get_skeleton() const { } void Polygon2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_polygon", "polygon"), &Polygon2D::set_polygon); ClassDB::bind_method(D_METHOD("get_polygon"), &Polygon2D::get_polygon); @@ -722,7 +679,6 @@ void Polygon2D::_bind_methods() { } Polygon2D::Polygon2D() { - invert = false; invert_border = 100; antialiased = false; diff --git a/scene/2d/polygon_2d.h b/scene/2d/polygon_2d.h index 777c1f82f3..dafec1c343 100644 --- a/scene/2d/polygon_2d.h +++ b/scene/2d/polygon_2d.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class Polygon2D : public Node2D { - GDCLASS(Polygon2D, Node2D); Vector<Vector2> polygon; diff --git a/scene/2d/position_2d.cpp b/scene/2d/position_2d.cpp index 9e95a55d9f..4cd46171c6 100644 --- a/scene/2d/position_2d.cpp +++ b/scene/2d/position_2d.cpp @@ -36,7 +36,6 @@ const float DEFAULT_GIZMO_EXTENTS = 10.0; void Position2D::_draw_cross() { - float extents = get_gizmo_extents(); // Colors taken from `axis_x_color` and `axis_y_color` (defined in `editor/editor_themes.cpp`) draw_line(Point2(-extents, 0), Point2(+extents, 0), Color(0.96, 0.20, 0.32)); @@ -45,7 +44,6 @@ void Position2D::_draw_cross() { #ifdef TOOLS_ENABLED Rect2 Position2D::_edit_get_rect() const { - float extents = get_gizmo_extents(); return Rect2(Point2(-extents, -extents), Size2(extents * 2, extents * 2)); } @@ -56,11 +54,8 @@ bool Position2D::_edit_use_rect() const { #endif void Position2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - update(); } break; case NOTIFICATION_DRAW: { @@ -92,7 +87,6 @@ float Position2D::get_gizmo_extents() const { } void Position2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("_set_gizmo_extents", "extents"), &Position2D::set_gizmo_extents); ClassDB::bind_method(D_METHOD("_get_gizmo_extents"), &Position2D::get_gizmo_extents); diff --git a/scene/2d/position_2d.h b/scene/2d/position_2d.h index 3ea636171d..b53fa4c0e2 100644 --- a/scene/2d/position_2d.h +++ b/scene/2d/position_2d.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class Position2D : public Node2D { - GDCLASS(Position2D, Node2D); void _draw_cross(); diff --git a/scene/2d/ray_cast_2d.cpp b/scene/2d/ray_cast_2d.cpp index 9d6c7304ce..707b6da67d 100644 --- a/scene/2d/ray_cast_2d.cpp +++ b/scene/2d/ray_cast_2d.cpp @@ -36,29 +36,24 @@ #include "servers/physics_server_2d.h" void RayCast2D::set_cast_to(const Vector2 &p_point) { - cast_to = p_point; if (is_inside_tree() && (Engine::get_singleton()->is_editor_hint() || get_tree()->is_debugging_collisions_hint())) update(); } Vector2 RayCast2D::get_cast_to() const { - return cast_to; } void RayCast2D::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; } uint32_t RayCast2D::get_collision_mask() const { - return collision_mask; } void RayCast2D::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -68,16 +63,13 @@ void RayCast2D::set_collision_mask_bit(int p_bit, bool p_value) { } bool RayCast2D::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } bool RayCast2D::is_colliding() const { - return collided; } Object *RayCast2D::get_collider() const { - if (against.is_null()) return nullptr; @@ -85,20 +77,16 @@ Object *RayCast2D::get_collider() const { } int RayCast2D::get_collider_shape() const { - return against_shape; } Vector2 RayCast2D::get_collision_point() const { - return collision_point; } Vector2 RayCast2D::get_collision_normal() const { - return collision_normal; } void RayCast2D::set_enabled(bool p_enabled) { - enabled = p_enabled; update(); if (is_inside_tree() && !Engine::get_singleton()->is_editor_hint()) @@ -108,12 +96,10 @@ void RayCast2D::set_enabled(bool p_enabled) { } bool RayCast2D::is_enabled() const { - return enabled; } void RayCast2D::set_exclude_parent_body(bool p_exclude_parent_body) { - if (exclude_parent_body == p_exclude_parent_body) return; @@ -131,16 +117,12 @@ void RayCast2D::set_exclude_parent_body(bool p_exclude_parent_body) { } bool RayCast2D::get_exclude_parent_body() const { - return exclude_parent_body; } void RayCast2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - if (enabled && !Engine::get_singleton()->is_editor_hint()) set_physics_process_internal(true); else @@ -154,14 +136,12 @@ void RayCast2D::_notification(int p_what) { } } break; case NOTIFICATION_EXIT_TREE: { - if (enabled) set_physics_process_internal(false); } break; case NOTIFICATION_DRAW: { - if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) break; Transform2D xf; @@ -191,7 +171,6 @@ void RayCast2D::_notification(int p_what) { } break; case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { - if (!enabled) break; @@ -217,7 +196,6 @@ void RayCast2D::_update_raycast_state() { PhysicsDirectSpaceState2D::RayResult rr; if (dss->intersect_ray(gt.get_origin(), gt.xform(to), rr, exclude, collision_mask, collide_with_bodies, collide_with_areas)) { - collided = true; against = rr.collider_id; collision_point = rr.position; @@ -235,12 +213,10 @@ void RayCast2D::force_raycast_update() { } void RayCast2D::add_exception_rid(const RID &p_rid) { - exclude.insert(p_rid); } void RayCast2D::add_exception(const Object *p_object) { - ERR_FAIL_NULL(p_object); const CollisionObject2D *co = Object::cast_to<CollisionObject2D>(p_object); if (!co) @@ -249,12 +225,10 @@ void RayCast2D::add_exception(const Object *p_object) { } void RayCast2D::remove_exception_rid(const RID &p_rid) { - exclude.erase(p_rid); } void RayCast2D::remove_exception(const Object *p_object) { - ERR_FAIL_NULL(p_object); const CollisionObject2D *co = Object::cast_to<CollisionObject2D>(p_object); if (!co) @@ -263,32 +237,26 @@ void RayCast2D::remove_exception(const Object *p_object) { } void RayCast2D::clear_exceptions() { - exclude.clear(); } void RayCast2D::set_collide_with_areas(bool p_clip) { - collide_with_areas = p_clip; } bool RayCast2D::is_collide_with_areas_enabled() const { - return collide_with_areas; } void RayCast2D::set_collide_with_bodies(bool p_clip) { - collide_with_bodies = p_clip; } bool RayCast2D::is_collide_with_bodies_enabled() const { - return collide_with_bodies; } void RayCast2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_enabled", "enabled"), &RayCast2D::set_enabled); ClassDB::bind_method(D_METHOD("is_enabled"), &RayCast2D::is_enabled); @@ -337,7 +305,6 @@ void RayCast2D::_bind_methods() { } RayCast2D::RayCast2D() { - enabled = false; collided = false; diff --git a/scene/2d/ray_cast_2d.h b/scene/2d/ray_cast_2d.h index 20f05e7525..6accc264a0 100644 --- a/scene/2d/ray_cast_2d.h +++ b/scene/2d/ray_cast_2d.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class RayCast2D : public Node2D { - GDCLASS(RayCast2D, Node2D); bool enabled; diff --git a/scene/2d/remote_transform_2d.cpp b/scene/2d/remote_transform_2d.cpp index ec50f5f922..d9b73a5e6e 100644 --- a/scene/2d/remote_transform_2d.cpp +++ b/scene/2d/remote_transform_2d.cpp @@ -32,7 +32,6 @@ #include "scene/scene_string_names.h" void RemoteTransform2D::_update_cache() { - cache = ObjectID(); if (has_node(remote_node)) { Node *node = get_node(remote_node); @@ -45,7 +44,6 @@ void RemoteTransform2D::_update_cache() { } void RemoteTransform2D::_update_remote() { - if (!is_inside_tree()) return; @@ -61,7 +59,6 @@ void RemoteTransform2D::_update_remote() { //todo make faster if (use_global_coordinates) { - if (update_remote_position && update_remote_rotation && update_remote_scale) { n->set_global_transform(get_global_transform()); } else { @@ -83,7 +80,6 @@ void RemoteTransform2D::_update_remote() { } } else { - if (update_remote_position && update_remote_rotation && update_remote_scale) { n->set_transform(get_transform()); } else { @@ -107,11 +103,8 @@ void RemoteTransform2D::_update_remote() { } void RemoteTransform2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - _update_cache(); } break; @@ -120,7 +113,6 @@ void RemoteTransform2D::_notification(int p_what) { break; if (cache.is_valid()) { - _update_remote(); } @@ -129,7 +121,6 @@ void RemoteTransform2D::_notification(int p_what) { } void RemoteTransform2D::set_remote_node(const NodePath &p_remote_node) { - remote_node = p_remote_node; if (is_inside_tree()) { _update_cache(); @@ -140,7 +131,6 @@ void RemoteTransform2D::set_remote_node(const NodePath &p_remote_node) { } NodePath RemoteTransform2D::get_remote_node() const { - return remote_node; } @@ -185,7 +175,6 @@ void RemoteTransform2D::force_update_cache() { } String RemoteTransform2D::get_configuration_warning() const { - if (!has_node(remote_node) || !Object::cast_to<Node2D>(get_node(remote_node))) { return TTR("Path property must point to a valid Node2D node to work."); } @@ -194,7 +183,6 @@ String RemoteTransform2D::get_configuration_warning() const { } void RemoteTransform2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_remote_node", "path"), &RemoteTransform2D::set_remote_node); ClassDB::bind_method(D_METHOD("get_remote_node"), &RemoteTransform2D::get_remote_node); ClassDB::bind_method(D_METHOD("force_update_cache"), &RemoteTransform2D::force_update_cache); @@ -219,7 +207,6 @@ void RemoteTransform2D::_bind_methods() { } RemoteTransform2D::RemoteTransform2D() { - use_global_coordinates = true; update_remote_position = true; update_remote_rotation = true; diff --git a/scene/2d/remote_transform_2d.h b/scene/2d/remote_transform_2d.h index f5b949d10b..caaa0394f2 100644 --- a/scene/2d/remote_transform_2d.h +++ b/scene/2d/remote_transform_2d.h @@ -34,7 +34,6 @@ #include "scene/2d/node_2d.h" class RemoteTransform2D : public Node2D { - GDCLASS(RemoteTransform2D, Node2D); NodePath remote_node; diff --git a/scene/2d/skeleton_2d.cpp b/scene/2d/skeleton_2d.cpp index 86c9ff6076..e21f7ff836 100644 --- a/scene/2d/skeleton_2d.cpp +++ b/scene/2d/skeleton_2d.cpp @@ -31,7 +31,6 @@ #include "skeleton_2d.h" void Bone2D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { Node *parent = get_parent(); parent_bone = Object::cast_to<Bone2D>(parent); @@ -79,7 +78,6 @@ void Bone2D::_notification(int p_what) { } } void Bone2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_rest", "rest"), &Bone2D::set_rest); ClassDB::bind_method(D_METHOD("get_rest"), &Bone2D::get_rest); ClassDB::bind_method(D_METHOD("apply_rest"), &Bone2D::apply_rest); @@ -106,7 +104,6 @@ Transform2D Bone2D::get_rest() const { } Transform2D Bone2D::get_skeleton_rest() const { - if (parent_bone) { return parent_bone->get_skeleton_rest() * rest; } else { @@ -119,7 +116,6 @@ void Bone2D::apply_rest() { } void Bone2D::set_default_length(float p_length) { - default_length = p_length; } @@ -133,7 +129,6 @@ int Bone2D::get_index_in_skeleton() const { return skeleton_index; } String Bone2D::get_configuration_warning() const { - String warning = Node2D::get_configuration_warning(); if (!skeleton) { if (warning != String()) { @@ -171,7 +166,6 @@ Bone2D::Bone2D() { ////////////////////////////////////// void Skeleton2D::_make_bone_setup_dirty() { - if (bone_setup_dirty) return; bone_setup_dirty = true; @@ -181,7 +175,6 @@ void Skeleton2D::_make_bone_setup_dirty() { } void Skeleton2D::_update_bone_setup() { - if (!bone_setup_dirty) return; @@ -207,7 +200,6 @@ void Skeleton2D::_update_bone_setup() { } void Skeleton2D::_make_transform_dirty() { - if (transform_dirty) return; transform_dirty = true; @@ -217,7 +209,6 @@ void Skeleton2D::_make_transform_dirty() { } void Skeleton2D::_update_transform() { - if (bone_setup_dirty) { _update_bone_setup(); return; //above will update transform anyway @@ -228,7 +219,6 @@ void Skeleton2D::_update_transform() { transform_dirty = false; for (int i = 0; i < bones.size(); i++) { - ERR_CONTINUE(bones[i].parent_index >= i); if (bones[i].parent_index >= 0) { bones.write[i].accum_transform = bones[bones[i].parent_index].accum_transform * bones[i].bone->get_transform(); @@ -238,14 +228,12 @@ void Skeleton2D::_update_transform() { } for (int i = 0; i < bones.size(); i++) { - Transform2D final_xform = bones[i].accum_transform * bones[i].rest_inverse; RS::get_singleton()->skeleton_bone_set_transform_2d(skeleton, i, final_xform); } } int Skeleton2D::get_bone_count() const { - ERR_FAIL_COND_V(!is_inside_tree(), 0); if (bone_setup_dirty) { @@ -256,7 +244,6 @@ int Skeleton2D::get_bone_count() const { } Bone2D *Skeleton2D::get_bone(int p_idx) { - ERR_FAIL_COND_V(!is_inside_tree(), nullptr); ERR_FAIL_INDEX_V(p_idx, bones.size(), nullptr); @@ -264,9 +251,7 @@ Bone2D *Skeleton2D::get_bone(int p_idx) { } void Skeleton2D::_notification(int p_what) { - if (p_what == NOTIFICATION_READY) { - if (bone_setup_dirty) _update_bone_setup(); if (transform_dirty) @@ -284,7 +269,6 @@ RID Skeleton2D::get_skeleton() const { return skeleton; } void Skeleton2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("_update_bone_setup"), &Skeleton2D::_update_bone_setup); ClassDB::bind_method(D_METHOD("_update_transform"), &Skeleton2D::_update_transform); @@ -305,6 +289,5 @@ Skeleton2D::Skeleton2D() { } Skeleton2D::~Skeleton2D() { - RS::get_singleton()->free(skeleton); } diff --git a/scene/2d/sprite_2d.cpp b/scene/2d/sprite_2d.cpp index df8859bd9a..4df66057f0 100644 --- a/scene/2d/sprite_2d.cpp +++ b/scene/2d/sprite_2d.cpp @@ -61,7 +61,6 @@ bool Sprite2D::_edit_use_pivot() const { } bool Sprite2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - return is_pixel_opaque(p_point); } @@ -79,7 +78,6 @@ Rect2 Sprite2D::get_anchorable_rect() const { } void Sprite2D::_get_rects(Rect2 &r_src_rect, Rect2 &r_dst_rect, bool &r_filter_clip) const { - Rect2 base_rect; if (region) { @@ -113,11 +111,8 @@ void Sprite2D::_get_rects(Rect2 &r_src_rect, Rect2 &r_dst_rect, bool &r_filter_c } void Sprite2D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_DRAW: { - if (texture.is_null()) return; @@ -138,7 +133,6 @@ void Sprite2D::_notification(int p_what) { } void Sprite2D::set_texture(const Ref<Texture2D> &p_texture) { - if (p_texture == texture) return; @@ -157,24 +151,20 @@ void Sprite2D::set_texture(const Ref<Texture2D> &p_texture) { } void Sprite2D::set_normal_map(const Ref<Texture2D> &p_texture) { - normal_map = p_texture; update(); } Ref<Texture2D> Sprite2D::get_normal_map() const { - return normal_map; } void Sprite2D::set_specular_map(const Ref<Texture2D> &p_texture) { - specular = p_texture; update(); } Ref<Texture2D> Sprite2D::get_specular_map() const { - return specular; } @@ -197,56 +187,46 @@ float Sprite2D::get_shininess() const { } Ref<Texture2D> Sprite2D::get_texture() const { - return texture; } void Sprite2D::set_centered(bool p_center) { - centered = p_center; update(); item_rect_changed(); } bool Sprite2D::is_centered() const { - return centered; } void Sprite2D::set_offset(const Point2 &p_offset) { - offset = p_offset; update(); item_rect_changed(); _change_notify("offset"); } Point2 Sprite2D::get_offset() const { - return offset; } void Sprite2D::set_flip_h(bool p_flip) { - hflip = p_flip; update(); } bool Sprite2D::is_flipped_h() const { - return hflip; } void Sprite2D::set_flip_v(bool p_flip) { - vflip = p_flip; update(); } bool Sprite2D::is_flipped_v() const { - return vflip; } void Sprite2D::set_region(bool p_region) { - if (p_region == region) return; @@ -255,12 +235,10 @@ void Sprite2D::set_region(bool p_region) { } bool Sprite2D::is_region() const { - return region; } void Sprite2D::set_region_rect(const Rect2 &p_region_rect) { - if (region_rect == p_region_rect) return; @@ -273,7 +251,6 @@ void Sprite2D::set_region_rect(const Rect2 &p_region_rect) { } Rect2 Sprite2D::get_region_rect() const { - return region_rect; } @@ -287,7 +264,6 @@ bool Sprite2D::is_region_filter_clip_enabled() const { } void Sprite2D::set_frame(int p_frame) { - ERR_FAIL_INDEX(p_frame, vframes * hframes); if (frame != p_frame) @@ -301,7 +277,6 @@ void Sprite2D::set_frame(int p_frame) { } int Sprite2D::get_frame() const { - return frame; } @@ -317,7 +292,6 @@ Vector2 Sprite2D::get_frame_coords() const { } void Sprite2D::set_vframes(int p_amount) { - ERR_FAIL_COND_MSG(p_amount < 1, "Amount of vframes cannot be smaller than 1."); vframes = p_amount; update(); @@ -325,12 +299,10 @@ void Sprite2D::set_vframes(int p_amount) { _change_notify(); } int Sprite2D::get_vframes() const { - return vframes; } void Sprite2D::set_hframes(int p_amount) { - ERR_FAIL_COND_MSG(p_amount < 1, "Amount of hframes cannot be smaller than 1."); hframes = p_amount; update(); @@ -338,12 +310,10 @@ void Sprite2D::set_hframes(int p_amount) { _change_notify(); } int Sprite2D::get_hframes() const { - return hframes; } bool Sprite2D::is_pixel_opaque(const Point2 &p_point) const { - if (texture.is_null()) return false; @@ -393,7 +363,6 @@ bool Sprite2D::is_pixel_opaque(const Point2 &p_point) const { } Rect2 Sprite2D::get_rect() const { - if (texture.is_null()) return Rect2(0, 0, 1, 1); @@ -418,7 +387,6 @@ Rect2 Sprite2D::get_rect() const { } void Sprite2D::_validate_property(PropertyInfo &property) const { - if (property.name == "frame") { property.hint = PROPERTY_HINT_RANGE; property.hint_string = "0," + itos(vframes * hframes - 1) + ",1"; @@ -431,7 +399,6 @@ void Sprite2D::_validate_property(PropertyInfo &property) const { } void Sprite2D::_texture_changed() { - // Changes to the texture need to trigger an update to make // the editor redraw the sprite with the updated texture. if (texture.is_valid()) { @@ -440,7 +407,6 @@ void Sprite2D::_texture_changed() { } void Sprite2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_texture", "texture"), &Sprite2D::set_texture); ClassDB::bind_method(D_METHOD("get_texture"), &Sprite2D::get_texture); @@ -520,7 +486,6 @@ void Sprite2D::_bind_methods() { } Sprite2D::Sprite2D() { - centered = true; hflip = false; vflip = false; diff --git a/scene/2d/sprite_2d.h b/scene/2d/sprite_2d.h index 599a9e937e..c72e956307 100644 --- a/scene/2d/sprite_2d.h +++ b/scene/2d/sprite_2d.h @@ -35,7 +35,6 @@ #include "scene/resources/texture.h" class Sprite2D : public Node2D { - GDCLASS(Sprite2D, Node2D); Ref<Texture2D> texture; diff --git a/scene/2d/tile_map.cpp b/scene/2d/tile_map.cpp index 869f290f97..fa66a2af22 100644 --- a/scene/2d/tile_map.cpp +++ b/scene/2d/tile_map.cpp @@ -39,7 +39,6 @@ #include "servers/physics_server_2d.h" int TileMap::_get_quadrant_size() const { - if (use_y_sort) return 1; else @@ -47,14 +46,10 @@ int TileMap::_get_quadrant_size() const { } void TileMap::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - Node2D *c = this; while (c) { - navigation = Object::cast_to<Navigation2D>(c); if (navigation) { break; @@ -79,14 +74,11 @@ void TileMap::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - _update_quadrant_space(RID()); for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); if (navigation) { for (Map<PosKey, Quadrant::NavPoly>::Element *F = q.navpoly_ids.front(); F; F = F->next()) { - NavigationServer2D::get_singleton()->region_set_map(F->get().region, RID()); } q.navpoly_ids.clear(); @@ -109,13 +101,11 @@ void TileMap::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - //move stuff _update_quadrant_transform(); } break; case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: { - if (use_parent) { _recreate_quadrants(); } @@ -125,10 +115,8 @@ void TileMap::_notification(int p_what) { } void TileMap::_update_quadrant_space(const RID &p_space) { - if (!use_parent) { for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); PhysicsServer2D::get_singleton()->body_set_space(q.body, p_space); } @@ -136,7 +124,6 @@ void TileMap::_update_quadrant_space(const RID &p_space) { } void TileMap::_update_quadrant_transform() { - if (!is_inside_tree()) return; @@ -151,7 +138,6 @@ void TileMap::_update_quadrant_transform() { nav_rel = get_relative_transform_to_parent(navigation); for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); Transform2D xform; xform.set_origin(q.pos); @@ -163,7 +149,6 @@ void TileMap::_update_quadrant_transform() { if (navigation) { for (Map<PosKey, Quadrant::NavPoly>::Element *F = q.navpoly_ids.front(); F; F = F->next()) { - NavigationServer2D::get_singleton()->region_set_transform(F->get().region, nav_rel * F->get().xform); } } @@ -175,7 +160,6 @@ void TileMap::_update_quadrant_transform() { } void TileMap::set_tileset(const Ref<TileSet> &p_tileset) { - if (tile_set.is_valid()) { tile_set->disconnect("changed", callable_mp(this, &TileMap::_recreate_quadrants)); tile_set->remove_change_receptor(this); @@ -196,12 +180,10 @@ void TileMap::set_tileset(const Ref<TileSet> &p_tileset) { } Ref<TileSet> TileMap::get_tileset() const { - return tile_set; } void TileMap::set_cell_size(Size2 p_size) { - ERR_FAIL_COND(p_size.x < 1 || p_size.y < 1); _clear_quadrants(); @@ -211,12 +193,10 @@ void TileMap::set_cell_size(Size2 p_size) { } Size2 TileMap::get_cell_size() const { - return cell_size; } void TileMap::set_quadrant_size(int p_size) { - ERR_FAIL_COND_MSG(p_size < 1, "Quadrant size cannot be smaller than 1."); _clear_quadrants(); @@ -226,17 +206,14 @@ void TileMap::set_quadrant_size(int p_size) { } int TileMap::get_quadrant_size() const { - return quadrant_size; } void TileMap::_fix_cell_transform(Transform2D &xform, const Cell &p_cell, const Vector2 &p_offset, const Size2 &p_sc) { - Size2 s = p_sc; Vector2 offset = p_offset; if (compatibility_mode && !centered_textures) { - if (tile_origin == TILE_ORIGIN_BOTTOM_LEFT) { offset.y += cell_size.y; } else if (tile_origin == TILE_ORIGIN_CENTER) { @@ -326,7 +303,6 @@ void TileMap::_add_shape(int &shape_idx, const Quadrant &p_q, const Ref<Shape2D> } void TileMap::update_dirty_quadrants() { - if (!pending_update) return; if (!is_inside_tree() || !tile_set.is_valid()) { @@ -358,11 +334,9 @@ void TileMap::update_dirty_quadrants() { } while (dirty_quadrant_list.first()) { - Quadrant &q = *dirty_quadrant_list.first()->self(); for (List<RID>::Element *E = q.canvas_items.front(); E; E = E->next()) { - vs->free(E->get()); } @@ -377,7 +351,6 @@ void TileMap::update_dirty_quadrants() { if (navigation) { for (Map<PosKey, Quadrant::NavPoly>::Element *E = q.navpoly_ids.front(); E; E = E->next()) { - NavigationServer2D::get_singleton()->region_set_map(E->get().region, RID()); } q.navpoly_ids.clear(); @@ -393,7 +366,6 @@ void TileMap::update_dirty_quadrants() { RID prev_debug_canvas_item; for (int i = 0; i < q.cells.size(); i++) { - Map<PosKey, Cell>::Element *E = tile_map.find(q.cells[i]); Cell &c = E->get(); //moment of truth @@ -420,7 +392,6 @@ void TileMap::update_dirty_quadrants() { RID debug_canvas_item; if (prev_canvas_item == RID() || prev_material != mat || prev_z_index != z_index) { - canvas_item = vs->canvas_item_create(); if (mat.is_valid()) vs->canvas_item_set_material(canvas_item, mat->get_rid()); @@ -435,7 +406,6 @@ void TileMap::update_dirty_quadrants() { q.canvas_items.push_back(canvas_item); if (debug_shapes) { - debug_canvas_item = vs->canvas_item_create(); vs->canvas_item_set_parent(debug_canvas_item, canvas_item); vs->canvas_item_set_z_as_relative_to_parent(debug_canvas_item, false); @@ -509,7 +479,6 @@ void TileMap::update_dirty_quadrants() { rect.position += tile_ofs; } else if (tile_origin == TILE_ORIGIN_BOTTOM_LEFT) { - rect.position += tile_ofs; if (c.transpose) { @@ -525,7 +494,6 @@ void TileMap::update_dirty_quadrants() { } } else if (tile_origin == TILE_ORIGIN_CENTER) { - rect.position += tile_ofs; if (c.flip_h) @@ -651,10 +619,8 @@ void TileMap::update_dirty_quadrants() { Vector<int> polygon = navpoly->get_polygon(j); for (int k = 2; k < polygon.size(); k++) { - int kofs[3] = { 0, k - 1, k }; for (int l = 0; l < 3; l++) { - int idx = polygon[kofs[l]]; ERR_FAIL_INDEX(idx, vsize); indices.push_back(idx); @@ -704,13 +670,10 @@ void TileMap::update_dirty_quadrants() { pending_update = false; if (quadrant_order_dirty) { - int index = -(int64_t)0x80000000; //always must be drawn below children for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); for (List<RID>::Element *F = q.canvas_items.front(); F; F = F->next()) { - RS::get_singleton()->canvas_item_set_draw_index(F->get(), index++); } } @@ -722,7 +685,6 @@ void TileMap::update_dirty_quadrants() { } void TileMap::_recompute_rect_cache() { - #ifdef DEBUG_ENABLED if (!rect_cache_dirty) @@ -730,7 +692,6 @@ void TileMap::_recompute_rect_cache() { Rect2 r_total; for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Rect2 r; r.position = _map_to_world(E->key().x * _get_quadrant_size(), E->key().y * _get_quadrant_size()); r.expand_to(_map_to_world(E->key().x * _get_quadrant_size() + _get_quadrant_size(), E->key().y * _get_quadrant_size())); @@ -751,7 +712,6 @@ void TileMap::_recompute_rect_cache() { } Map<TileMap::PosKey, TileMap::Quadrant>::Element *TileMap::_create_quadrant(const PosKey &p_qk) { - Transform2D xform; //xform.set_origin(Point2(p_qk.x,p_qk.y)*cell_size*quadrant_size); Quadrant q; @@ -794,7 +754,6 @@ Map<TileMap::PosKey, TileMap::Quadrant>::Element *TileMap::_create_quadrant(cons } void TileMap::_erase_quadrant(Map<PosKey, Quadrant>::Element *Q) { - Quadrant &q = Q->get(); if (!use_parent) { PhysicsServer2D::get_singleton()->free(q.body); @@ -803,7 +762,6 @@ void TileMap::_erase_quadrant(Map<PosKey, Quadrant>::Element *Q) { } for (List<RID>::Element *E = q.canvas_items.front(); E; E = E->next()) { - RenderingServer::get_singleton()->free(E->get()); } q.canvas_items.clear(); @@ -812,7 +770,6 @@ void TileMap::_erase_quadrant(Map<PosKey, Quadrant>::Element *Q) { if (navigation) { for (Map<PosKey, Quadrant::NavPoly>::Element *E = q.navpoly_ids.front(); E; E = E->next()) { - NavigationServer2D::get_singleton()->region_set_map(E->get().region, RID()); } q.navpoly_ids.clear(); @@ -828,7 +785,6 @@ void TileMap::_erase_quadrant(Map<PosKey, Quadrant>::Element *Q) { } void TileMap::_make_quadrant_dirty(Map<PosKey, Quadrant>::Element *Q, bool update) { - Quadrant &q = Q->get(); if (!q.dirty_list.in_list()) dirty_quadrant_list.add(&q.dirty_list); @@ -845,12 +801,10 @@ void TileMap::_make_quadrant_dirty(Map<PosKey, Quadrant>::Element *Q, bool updat } void TileMap::set_cellv(const Vector2 &p_pos, int p_tile, bool p_flip_x, bool p_flip_y, bool p_transpose) { - set_cell(p_pos.x, p_pos.y, p_tile, p_flip_x, p_flip_y, p_transpose); } void TileMap::_set_celld(const Vector2 &p_pos, const Dictionary &p_data) { - Variant v_pos_x = p_pos.x, v_pos_y = p_pos.y, v_tile = p_data["id"], v_flip_h = p_data["flip_h"], v_flip_v = p_data["flip_y"], v_transpose = p_data["transpose"], v_autotile_coord = p_data["auto_coord"]; const Variant *args[7] = { &v_pos_x, &v_pos_y, &v_tile, &v_flip_h, &v_flip_v, &v_transpose, &v_autotile_coord }; Callable::CallError ce; @@ -858,7 +812,6 @@ void TileMap::_set_celld(const Vector2 &p_pos, const Dictionary &p_data) { } void TileMap::set_cell(int p_x, int p_y, int p_tile, bool p_flip_x, bool p_flip_y, bool p_transpose, Vector2 p_autotile_coord) { - PosKey pk(p_x, p_y); Map<PosKey, Cell>::Element *E = tile_map.find(pk); @@ -912,12 +865,10 @@ void TileMap::set_cell(int p_x, int p_y, int p_tile, bool p_flip_x, bool p_flip_ } int TileMap::get_cellv(const Vector2 &p_pos) const { - return get_cell(p_pos.x, p_pos.y); } void TileMap::make_bitmask_area_dirty(const Vector2 &p_pos) { - for (int x = p_pos.x - 1; x <= p_pos.x + 1; x++) { for (int y = p_pos.y - 1; y <= p_pos.y + 1; y++) { PosKey p(x, y); @@ -929,7 +880,6 @@ void TileMap::make_bitmask_area_dirty(const Vector2 &p_pos) { } void TileMap::update_bitmask_area(const Vector2 &p_pos) { - for (int x = p_pos.x - 1; x <= p_pos.x + 1; x++) { for (int y = p_pos.y - 1; y <= p_pos.y + 1; y++) { update_cell_bitmask(x, y); @@ -938,7 +888,6 @@ void TileMap::update_bitmask_area(const Vector2 &p_pos) { } void TileMap::update_bitmask_region(const Vector2 &p_start, const Vector2 &p_end) { - if ((p_end.x < p_start.x || p_end.y < p_start.y) || (p_end.x == p_start.x && p_end.y == p_start.y)) { Array a = get_used_cells(); for (int i = 0; i < a.size(); i++) { @@ -955,7 +904,6 @@ void TileMap::update_bitmask_region(const Vector2 &p_start, const Vector2 &p_end } void TileMap::update_cell_bitmask(int p_x, int p_y) { - ERR_FAIL_COND_MSG(tile_set.is_null(), "Cannot update cell bitmask if Tileset is not open."); PosKey p(p_x, p_y); Map<PosKey, Cell>::Element *E = tile_map.find(p); @@ -1027,11 +975,9 @@ void TileMap::update_cell_bitmask(int p_x, int p_y) { _make_quadrant_dirty(Q); } else if (tile_set->tile_get_tile_mode(id) == TileSet::SINGLE_TILE) { - E->get().autotile_coord_x = 0; E->get().autotile_coord_y = 0; } else if (tile_set->tile_get_tile_mode(id) == TileSet::ATLAS_TILE) { - if (tile_set->autotile_get_bitmask(id, Vector2(p_x, p_y)) == TileSet::BIND_CENTER) { Vector2 coord = tile_set->atlastile_get_subtile_by_priority(id, this, Vector2(p_x, p_y)); @@ -1043,7 +989,6 @@ void TileMap::update_cell_bitmask(int p_x, int p_y) { } void TileMap::update_dirty_bitmask() { - while (dirty_bitmask.size() > 0) { update_cell_bitmask(dirty_bitmask[0].x, dirty_bitmask[0].y); dirty_bitmask.pop_front(); @@ -1051,10 +996,8 @@ void TileMap::update_dirty_bitmask() { } void TileMap::fix_invalid_tiles() { - ERR_FAIL_COND_MSG(tile_set.is_null(), "Cannot fix invalid tiles if Tileset is not open."); for (Map<PosKey, Cell>::Element *E = tile_map.front(); E; E = E->next()) { - if (!tile_set->has_tile(get_cell(E->key().x, E->key().y))) { set_cell(E->key().x, E->key().y, INVALID_CELL); } @@ -1062,7 +1005,6 @@ void TileMap::fix_invalid_tiles() { } int TileMap::get_cell(int p_x, int p_y) const { - PosKey pk(p_x, p_y); const Map<PosKey, Cell>::Element *E = tile_map.find(pk); @@ -1073,7 +1015,6 @@ int TileMap::get_cell(int p_x, int p_y) const { return E->get().id; } bool TileMap::is_cell_x_flipped(int p_x, int p_y) const { - PosKey pk(p_x, p_y); const Map<PosKey, Cell>::Element *E = tile_map.find(pk); @@ -1084,7 +1025,6 @@ bool TileMap::is_cell_x_flipped(int p_x, int p_y) const { return E->get().flip_h; } bool TileMap::is_cell_y_flipped(int p_x, int p_y) const { - PosKey pk(p_x, p_y); const Map<PosKey, Cell>::Element *E = tile_map.find(pk); @@ -1095,7 +1035,6 @@ bool TileMap::is_cell_y_flipped(int p_x, int p_y) const { return E->get().flip_v; } bool TileMap::is_cell_transposed(int p_x, int p_y) const { - PosKey pk(p_x, p_y); const Map<PosKey, Cell>::Element *E = tile_map.find(pk); @@ -1107,7 +1046,6 @@ bool TileMap::is_cell_transposed(int p_x, int p_y) const { } void TileMap::set_cell_autotile_coord(int p_x, int p_y, const Vector2 &p_coord) { - PosKey pk(p_x, p_y); const Map<PosKey, Cell>::Element *E = tile_map.find(pk); @@ -1130,7 +1068,6 @@ void TileMap::set_cell_autotile_coord(int p_x, int p_y, const Vector2 &p_coord) } Vector2 TileMap::get_cell_autotile_coord(int p_x, int p_y) const { - PosKey pk(p_x, p_y); const Map<PosKey, Cell>::Element *E = tile_map.find(pk); @@ -1142,11 +1079,9 @@ Vector2 TileMap::get_cell_autotile_coord(int p_x, int p_y) const { } void TileMap::_recreate_quadrants() { - _clear_quadrants(); for (Map<PosKey, Cell>::Element *E = tile_map.front(); E; E = E->next()) { - PosKey qk = PosKey(E->key().x, E->key().y).to_quadrant(_get_quadrant_size()); Map<PosKey, Quadrant>::Element *Q = quadrant_map.find(qk); @@ -1162,50 +1097,41 @@ void TileMap::_recreate_quadrants() { } void TileMap::_clear_quadrants() { - while (quadrant_map.size()) { _erase_quadrant(quadrant_map.front()); } } void TileMap::set_material(const Ref<Material> &p_material) { - CanvasItem::set_material(p_material); _update_all_items_material_state(); } void TileMap::set_use_parent_material(bool p_use_parent_material) { - CanvasItem::set_use_parent_material(p_use_parent_material); _update_all_items_material_state(); } void TileMap::_update_all_items_material_state() { - for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); for (List<RID>::Element *F = q.canvas_items.front(); F; F = F->next()) { - _update_item_material_state(F->get()); } } } void TileMap::_update_item_material_state(const RID &p_canvas_item) { - RS::get_singleton()->canvas_item_set_use_parent_material(p_canvas_item, get_use_parent_material() || get_material().is_valid()); } void TileMap::clear() { - _clear_quadrants(); tile_map.clear(); used_size_cache_dirty = true; } void TileMap::_set_tile_data(const Vector<int> &p_data) { - ERR_FAIL_COND(format > FORMAT_2); int c = p_data.size(); @@ -1215,7 +1141,6 @@ void TileMap::_set_tile_data(const Vector<int> &p_data) { clear(); for (int i = 0; i < c; i += offset) { - const uint8_t *ptr = (const uint8_t *)&r[i]; uint8_t local[12]; for (int j = 0; j < ((format == FORMAT_2) ? 12 : 8); j++) @@ -1253,7 +1178,6 @@ void TileMap::_set_tile_data(const Vector<int> &p_data) { } Vector<int> TileMap::_get_tile_data() const { - Vector<int> data; data.resize(tile_map.size() * 3); int *w = data.ptrw(); @@ -1293,11 +1217,9 @@ Rect2 TileMap::_edit_get_rect() const { #endif void TileMap::set_collision_layer(uint32_t p_layer) { - collision_layer = p_layer; if (!use_parent) { for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); PhysicsServer2D::get_singleton()->body_set_collision_layer(q.body, collision_layer); } @@ -1305,11 +1227,9 @@ void TileMap::set_collision_layer(uint32_t p_layer) { } void TileMap::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; if (!use_parent) { for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); PhysicsServer2D::get_singleton()->body_set_collision_mask(q.body, collision_mask); } @@ -1317,7 +1237,6 @@ void TileMap::set_collision_mask(uint32_t p_mask) { } void TileMap::set_collision_layer_bit(int p_bit, bool p_value) { - uint32_t layer = get_collision_layer(); if (p_value) layer |= 1 << p_bit; @@ -1327,7 +1246,6 @@ void TileMap::set_collision_layer_bit(int p_bit, bool p_value) { } void TileMap::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -1337,24 +1255,20 @@ void TileMap::set_collision_mask_bit(int p_bit, bool p_value) { } bool TileMap::get_collision_use_kinematic() const { - return use_kinematic; } void TileMap::set_collision_use_kinematic(bool p_use_kinematic) { - _clear_quadrants(); use_kinematic = p_use_kinematic; _recreate_quadrants(); } bool TileMap::get_collision_use_parent() const { - return use_parent; } void TileMap::set_collision_use_parent(bool p_use_parent) { - if (use_parent == p_use_parent) return; @@ -1375,11 +1289,9 @@ void TileMap::set_collision_use_parent(bool p_use_parent) { } void TileMap::set_collision_friction(float p_friction) { - friction = p_friction; if (!use_parent) { for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); PhysicsServer2D::get_singleton()->body_set_param(q.body, PhysicsServer2D::BODY_PARAM_FRICTION, p_friction); } @@ -1387,48 +1299,39 @@ void TileMap::set_collision_friction(float p_friction) { } float TileMap::get_collision_friction() const { - return friction; } void TileMap::set_collision_bounce(float p_bounce) { - bounce = p_bounce; if (!use_parent) { for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - Quadrant &q = E->get(); PhysicsServer2D::get_singleton()->body_set_param(q.body, PhysicsServer2D::BODY_PARAM_BOUNCE, p_bounce); } } } float TileMap::get_collision_bounce() const { - return bounce; } uint32_t TileMap::get_collision_layer() const { - return collision_layer; } uint32_t TileMap::get_collision_mask() const { - return collision_mask; } bool TileMap::get_collision_layer_bit(int p_bit) const { - return get_collision_layer() & (1 << p_bit); } bool TileMap::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } void TileMap::set_mode(Mode p_mode) { - _clear_quadrants(); mode = p_mode; _recreate_quadrants(); @@ -1440,7 +1343,6 @@ TileMap::Mode TileMap::get_mode() const { } void TileMap::set_half_offset(HalfOffset p_half_offset) { - _clear_quadrants(); half_offset = p_half_offset; _recreate_quadrants(); @@ -1448,7 +1350,6 @@ void TileMap::set_half_offset(HalfOffset p_half_offset) { } void TileMap::set_tile_origin(TileOrigin p_tile_origin) { - _clear_quadrants(); tile_origin = p_tile_origin; _recreate_quadrants(); @@ -1456,25 +1357,19 @@ void TileMap::set_tile_origin(TileOrigin p_tile_origin) { } TileMap::TileOrigin TileMap::get_tile_origin() const { - return tile_origin; } Vector2 TileMap::get_cell_draw_offset() const { - switch (mode) { - case MODE_SQUARE: { - return Vector2(); } break; case MODE_ISOMETRIC: { - return Vector2(-cell_size.x * 0.5, 0); } break; case MODE_CUSTOM: { - Vector2 min; min.x = MIN(custom_transform[0].x, min.x); min.y = MIN(custom_transform[0].y, min.y); @@ -1492,18 +1387,14 @@ TileMap::HalfOffset TileMap::get_half_offset() const { } Transform2D TileMap::get_cell_transform() const { - switch (mode) { - case MODE_SQUARE: { - Transform2D m; m[0] *= cell_size.x; m[1] *= cell_size.y; return m; } break; case MODE_ISOMETRIC: { - //isometric only makes sense when y is positive in both x and y vectors, otherwise //the drawing of tiles will overlap Transform2D m; @@ -1513,7 +1404,6 @@ Transform2D TileMap::get_cell_transform() const { } break; case MODE_CUSTOM: { - return custom_transform; } break; } @@ -1522,7 +1412,6 @@ Transform2D TileMap::get_cell_transform() const { } void TileMap::set_custom_transform(const Transform2D &p_xform) { - _clear_quadrants(); custom_transform = p_xform; _recreate_quadrants(); @@ -1530,20 +1419,16 @@ void TileMap::set_custom_transform(const Transform2D &p_xform) { } Transform2D TileMap::get_custom_transform() const { - return custom_transform; } Vector2 TileMap::_map_to_world(int p_x, int p_y, bool p_ignore_ofs) const { - Vector2 ret = get_cell_transform().xform(Vector2(p_x, p_y)); if (!p_ignore_ofs) { switch (half_offset) { - case HALF_OFFSET_X: case HALF_OFFSET_NEGATIVE_X: { if (ABS(p_y) & 1) { - ret += get_cell_transform()[0] * (half_offset == HALF_OFFSET_X ? 0.5 : -0.5); } } break; @@ -1562,7 +1447,6 @@ Vector2 TileMap::_map_to_world(int p_x, int p_y, bool p_ignore_ofs) const { } bool TileMap::_set(const StringName &p_name, const Variant &p_value) { - if (p_name == "format") { if (p_value.get_type() == Variant::INT) { format = (DataFormat)(p_value.operator int64_t()); // Set format used for loading @@ -1579,7 +1463,6 @@ bool TileMap::_set(const StringName &p_name, const Variant &p_value) { } bool TileMap::_get(const StringName &p_name, Variant &r_ret) const { - if (p_name == "format") { r_ret = FORMAT_2; // When saving, always save highest format return true; @@ -1591,7 +1474,6 @@ bool TileMap::_get(const StringName &p_name, Variant &r_ret) const { } void TileMap::_get_property_list(List<PropertyInfo> *p_list) const { - PropertyInfo p(Variant::INT, "format", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL); p_list->push_back(p); @@ -1606,16 +1488,13 @@ void TileMap::_validate_property(PropertyInfo &property) const { } Vector2 TileMap::map_to_world(const Vector2 &p_pos, bool p_ignore_ofs) const { - return _map_to_world(p_pos.x, p_pos.y, p_ignore_ofs); } Vector2 TileMap::world_to_map(const Vector2 &p_pos) const { - Vector2 ret = get_cell_transform().affine_inverse().xform(p_pos); switch (half_offset) { - case HALF_OFFSET_X: { if (int(floor(ret.y)) & 1) { ret.x -= 0.5; @@ -1650,7 +1529,6 @@ Vector2 TileMap::world_to_map(const Vector2 &p_pos) const { } void TileMap::set_y_sort_enabled(bool p_enable) { - _clear_quadrants(); use_y_sort = p_enable; RS::get_singleton()->canvas_item_set_sort_children_by_y(get_canvas_item(), use_y_sort); @@ -1659,12 +1537,10 @@ void TileMap::set_y_sort_enabled(bool p_enable) { } bool TileMap::is_y_sort_enabled() const { - return use_y_sort; } void TileMap::set_compatibility_mode(bool p_enable) { - _clear_quadrants(); compatibility_mode = p_enable; _recreate_quadrants(); @@ -1672,12 +1548,10 @@ void TileMap::set_compatibility_mode(bool p_enable) { } bool TileMap::is_compatibility_mode_enabled() const { - return compatibility_mode; } void TileMap::set_centered_textures(bool p_enable) { - _clear_quadrants(); centered_textures = p_enable; _recreate_quadrants(); @@ -1685,17 +1559,14 @@ void TileMap::set_centered_textures(bool p_enable) { } bool TileMap::is_centered_textures_enabled() const { - return centered_textures; } TypedArray<Vector2i> TileMap::get_used_cells() const { - TypedArray<Vector2i> a; a.resize(tile_map.size()); int i = 0; for (Map<PosKey, Cell>::Element *E = tile_map.front(); E; E = E->next()) { - Vector2i p(E->key().x, E->key().y); a[i++] = p; } @@ -1704,10 +1575,8 @@ TypedArray<Vector2i> TileMap::get_used_cells() const { } TypedArray<Vector2i> TileMap::get_used_cells_by_index(int p_id) const { - TypedArray<Vector2i> a; for (Map<PosKey, Cell>::Element *E = tile_map.front(); E; E = E->next()) { - if (E->value().id == p_id) { Vector2i p(E->key().x, E->key().y); a.push_back(p); @@ -1739,10 +1608,8 @@ Rect2 TileMap::get_used_rect() { // Not const because of cache } void TileMap::set_occluder_light_mask(int p_mask) { - occluder_light_mask = p_mask; for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - for (Map<PosKey, Quadrant::Occluder>::Element *F = E->get().occluder_instances.front(); F; F = F->next()) { RenderingServer::get_singleton()->canvas_light_occluder_set_light_mask(F->get().id, occluder_light_mask); } @@ -1750,15 +1617,12 @@ void TileMap::set_occluder_light_mask(int p_mask) { } int TileMap::get_occluder_light_mask() const { - return occluder_light_mask; } void TileMap::set_light_mask(int p_light_mask) { - CanvasItem::set_light_mask(p_light_mask); for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) { - for (List<RID>::Element *F = E->get().canvas_items.front(); F; F = F->next()) { RenderingServer::get_singleton()->canvas_item_set_light_mask(F->get(), get_light_mask()); } @@ -1766,7 +1630,6 @@ void TileMap::set_light_mask(int p_light_mask) { } void TileMap::set_clip_uv(bool p_enable) { - if (clip_uv == p_enable) return; @@ -1776,12 +1639,10 @@ void TileMap::set_clip_uv(bool p_enable) { } bool TileMap::get_clip_uv() const { - return clip_uv; } String TileMap::get_configuration_warning() const { - String warning = Node2D::get_configuration_warning(); if (use_parent && !collision_parent) { @@ -1795,7 +1656,6 @@ String TileMap::get_configuration_warning() const { } void TileMap::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_tileset", "tileset"), &TileMap::set_tileset); ClassDB::bind_method(D_METHOD("get_tileset"), &TileMap::get_tileset); @@ -1942,7 +1802,6 @@ void TileMap::_changed_callback(Object *p_changed, const char *p_prop) { } TileMap::TileMap() { - rect_cache_dirty = true; used_size_cache_dirty = true; pending_update = false; @@ -1974,7 +1833,6 @@ TileMap::TileMap() { } TileMap::~TileMap() { - if (tile_set.is_valid()) tile_set->remove_change_receptor(this); diff --git a/scene/2d/tile_map.h b/scene/2d/tile_map.h index 16784571bf..24d4dc09db 100644 --- a/scene/2d/tile_map.h +++ b/scene/2d/tile_map.h @@ -40,7 +40,6 @@ class CollisionObject2D; class TileMap : public Node2D { - GDCLASS(TileMap, Node2D); public: @@ -82,7 +81,6 @@ private: Navigation2D *navigation; union PosKey { - struct { int16_t x; int16_t y; @@ -112,7 +110,6 @@ private: }; union Cell { - struct { int32_t id : 24; bool flip_h : 1; @@ -130,7 +127,6 @@ private: List<PosKey> dirty_bitmask; struct Quadrant { - Vector2 pos; List<RID> canvas_items; RID body; diff --git a/scene/2d/touch_screen_button.cpp b/scene/2d/touch_screen_button.cpp index 590cc1e6c4..2d8a47ee98 100644 --- a/scene/2d/touch_screen_button.cpp +++ b/scene/2d/touch_screen_button.cpp @@ -36,39 +36,32 @@ #include "scene/main/window.h" # void TouchScreenButton::set_texture(const Ref<Texture2D> &p_texture) { - texture = p_texture; update(); } Ref<Texture2D> TouchScreenButton::get_texture() const { - return texture; } void TouchScreenButton::set_texture_pressed(const Ref<Texture2D> &p_texture_pressed) { - texture_pressed = p_texture_pressed; update(); } Ref<Texture2D> TouchScreenButton::get_texture_pressed() const { - return texture_pressed; } void TouchScreenButton::set_bitmask(const Ref<BitMap> &p_bitmask) { - bitmask = p_bitmask; } Ref<BitMap> TouchScreenButton::get_bitmask() const { - return bitmask; } void TouchScreenButton::set_shape(const Ref<Shape2D> &p_shape) { - if (shape.is_valid()) shape->disconnect("changed", callable_mp((CanvasItem *)this, &CanvasItem::update)); @@ -81,45 +74,36 @@ void TouchScreenButton::set_shape(const Ref<Shape2D> &p_shape) { } Ref<Shape2D> TouchScreenButton::get_shape() const { - return shape; } void TouchScreenButton::set_shape_centered(bool p_shape_centered) { - shape_centered = p_shape_centered; update(); } bool TouchScreenButton::is_shape_visible() const { - return shape_visible; } void TouchScreenButton::set_shape_visible(bool p_shape_visible) { - shape_visible = p_shape_visible; update(); } bool TouchScreenButton::is_shape_centered() const { - return shape_centered; } void TouchScreenButton::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_DRAW: { - if (!is_inside_tree()) return; if (!Engine::get_singleton()->is_editor_hint() && !!DisplayServer::get_singleton()->screen_is_touchscreen(DisplayServer::get_singleton()->window_get_current_screen(get_viewport()->get_window_id())) && visibility == VISIBILITY_TOUCHSCREEN_ONLY) return; if (finger_pressed != -1) { - if (texture_pressed.is_valid()) draw_texture(texture_pressed, Point2()); else if (texture.is_valid()) @@ -145,7 +129,6 @@ void TouchScreenButton::_notification(int p_what) { } break; case NOTIFICATION_ENTER_TREE: { - if (!Engine::get_singleton()->is_editor_hint() && !!DisplayServer::get_singleton()->screen_is_touchscreen(DisplayServer::get_singleton()->window_get_current_screen(get_viewport()->get_window_id())) && visibility == VISIBILITY_TOUCHSCREEN_ONLY) return; update(); @@ -177,22 +160,18 @@ void TouchScreenButton::_notification(int p_what) { } bool TouchScreenButton::is_pressed() const { - return finger_pressed != -1; } void TouchScreenButton::set_action(const String &p_action) { - action = p_action; } String TouchScreenButton::get_action() const { - return action; } void TouchScreenButton::_input(const Ref<InputEvent> &p_event) { - if (!get_tree()) return; @@ -204,21 +183,17 @@ void TouchScreenButton::_input(const Ref<InputEvent> &p_event) { const InputEventScreenTouch *st = Object::cast_to<InputEventScreenTouch>(*p_event); if (passby_press) { - const InputEventScreenDrag *sd = Object::cast_to<InputEventScreenDrag>(*p_event); if (st && !st->is_pressed() && finger_pressed == st->get_index()) { - _release(); } if ((st && st->is_pressed()) || sd) { - int index = st ? st->get_index() : sd->get_index(); Point2 coord = st ? st->get_position() : sd->get_position(); if (finger_pressed == -1 || index == finger_pressed) { - if (_is_point_inside(coord)) { if (finger_pressed == -1) { _press(index); @@ -232,11 +207,8 @@ void TouchScreenButton::_input(const Ref<InputEvent> &p_event) { } } else { - if (st) { - if (st->is_pressed()) { - const bool can_press = finger_pressed == -1; if (!can_press) return; //already fingering @@ -268,10 +240,8 @@ bool TouchScreenButton::_is_point_inside(const Point2 &p_point) { } if (bitmask.is_valid()) { - check_rect = false; if (!touched && Rect2(Point2(), bitmask->get_size()).has_point(coord)) { - if (bitmask->get_bit(coord)) touched = true; } @@ -286,11 +256,9 @@ bool TouchScreenButton::_is_point_inside(const Point2 &p_point) { } void TouchScreenButton::_press(int p_finger_pressed) { - finger_pressed = p_finger_pressed; if (action != StringName()) { - Input::get_singleton()->action_press(action); Ref<InputEventAction> iea; iea.instance(); @@ -304,14 +272,11 @@ void TouchScreenButton::_press(int p_finger_pressed) { } void TouchScreenButton::_release(bool p_exiting_tree) { - finger_pressed = -1; if (action != StringName()) { - Input::get_singleton()->action_release(action); if (!p_exiting_tree) { - Ref<InputEventAction> iea; iea.instance(); iea->set_action(action); @@ -352,22 +317,18 @@ void TouchScreenButton::set_visibility_mode(VisibilityMode p_mode) { } TouchScreenButton::VisibilityMode TouchScreenButton::get_visibility_mode() const { - return visibility; } void TouchScreenButton::set_passby_press(bool p_enable) { - passby_press = p_enable; } bool TouchScreenButton::is_passby_press_enabled() const { - return passby_press; } void TouchScreenButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_texture", "texture"), &TouchScreenButton::set_texture); ClassDB::bind_method(D_METHOD("get_texture"), &TouchScreenButton::get_texture); @@ -417,7 +378,6 @@ void TouchScreenButton::_bind_methods() { } TouchScreenButton::TouchScreenButton() { - finger_pressed = -1; passby_press = false; visibility = VISIBILITY_ALWAYS; diff --git a/scene/2d/touch_screen_button.h b/scene/2d/touch_screen_button.h index 42e93f7048..d9c7ef7034 100644 --- a/scene/2d/touch_screen_button.h +++ b/scene/2d/touch_screen_button.h @@ -37,7 +37,6 @@ #include "scene/resources/texture.h" class TouchScreenButton : public Node2D { - GDCLASS(TouchScreenButton, Node2D); public: diff --git a/scene/2d/visibility_notifier_2d.cpp b/scene/2d/visibility_notifier_2d.cpp index 780d08693d..6b03d86e8b 100644 --- a/scene/2d/visibility_notifier_2d.cpp +++ b/scene/2d/visibility_notifier_2d.cpp @@ -49,7 +49,6 @@ bool VisibilityNotifier2D::_edit_use_rect() const { #endif void VisibilityNotifier2D::_enter_viewport(Viewport *p_viewport) { - ERR_FAIL_COND(viewports.has(p_viewport)); viewports.insert(p_viewport); @@ -65,7 +64,6 @@ void VisibilityNotifier2D::_enter_viewport(Viewport *p_viewport) { } void VisibilityNotifier2D::_exit_viewport(Viewport *p_viewport) { - ERR_FAIL_COND(!viewports.has(p_viewport)); viewports.erase(p_viewport); @@ -81,7 +79,6 @@ void VisibilityNotifier2D::_exit_viewport(Viewport *p_viewport) { } void VisibilityNotifier2D::set_rect(const Rect2 &p_rect) { - rect = p_rect; if (is_inside_tree()) { get_world_2d()->_update_notifier(this, get_global_transform().xform(rect)); @@ -95,44 +92,35 @@ void VisibilityNotifier2D::set_rect(const Rect2 &p_rect) { } Rect2 VisibilityNotifier2D::get_rect() const { - return rect; } void VisibilityNotifier2D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_ENTER_TREE: { - //get_world_2d()-> get_world_2d()->_register_notifier(this, get_global_transform().xform(rect)); } break; case NOTIFICATION_TRANSFORM_CHANGED: { - //get_world_2d()-> get_world_2d()->_update_notifier(this, get_global_transform().xform(rect)); } break; case NOTIFICATION_DRAW: { - if (Engine::get_singleton()->is_editor_hint()) { - draw_rect(rect, Color(1, 0.5, 1, 0.2)); } } break; case NOTIFICATION_EXIT_TREE: { - get_world_2d()->_remove_notifier(this); } break; } } bool VisibilityNotifier2D::is_on_screen() const { - return viewports.size() > 0; } void VisibilityNotifier2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_rect", "rect"), &VisibilityNotifier2D::set_rect); ClassDB::bind_method(D_METHOD("get_rect"), &VisibilityNotifier2D::get_rect); ClassDB::bind_method(D_METHOD("is_on_screen"), &VisibilityNotifier2D::is_on_screen); @@ -146,7 +134,6 @@ void VisibilityNotifier2D::_bind_methods() { } VisibilityNotifier2D::VisibilityNotifier2D() { - rect = Rect2(-10, -10, 20, 20); set_notify_transform(true); } @@ -154,9 +141,7 @@ VisibilityNotifier2D::VisibilityNotifier2D() { ////////////////////////////////////// void VisibilityEnabler2D::_screen_enter() { - for (Map<Node *, Variant>::Element *E = nodes.front(); E; E = E->next()) { - _change_node_state(E->key(), true); } @@ -169,9 +154,7 @@ void VisibilityEnabler2D::_screen_enter() { } void VisibilityEnabler2D::_screen_exit() { - for (Map<Node *, Variant>::Element *E = nodes.front(); E; E = E->next()) { - _change_node_state(E->key(), false); } @@ -184,14 +167,12 @@ void VisibilityEnabler2D::_screen_exit() { } void VisibilityEnabler2D::_find_nodes(Node *p_node) { - bool add = false; Variant meta; { RigidBody2D *rb2d = Object::cast_to<RigidBody2D>(p_node); if (rb2d && ((rb2d->get_mode() == RigidBody2D::MODE_CHARACTER || rb2d->get_mode() == RigidBody2D::MODE_RIGID))) { - add = true; meta = rb2d->get_mode(); } @@ -219,7 +200,6 @@ void VisibilityEnabler2D::_find_nodes(Node *p_node) { } if (add) { - p_node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler2D::_node_removed), varray(p_node), CONNECT_ONESHOT); nodes[p_node] = meta; _change_node_state(p_node, false); @@ -235,9 +215,7 @@ void VisibilityEnabler2D::_find_nodes(Node *p_node) { } void VisibilityEnabler2D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - if (Engine::get_singleton()->is_editor_hint()) return; @@ -264,12 +242,10 @@ void VisibilityEnabler2D::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - if (Engine::get_singleton()->is_editor_hint()) return; for (Map<Node *, Variant>::Element *E = nodes.front(); E; E = E->next()) { - if (!visible) _change_node_state(E->key(), true); E->key()->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler2D::_node_removed)); @@ -280,13 +256,11 @@ void VisibilityEnabler2D::_notification(int p_what) { } void VisibilityEnabler2D::_change_node_state(Node *p_node, bool p_enabled) { - ERR_FAIL_COND(!nodes.has(p_node)); if (enabler[ENABLER_FREEZE_BODIES]) { RigidBody2D *rb = Object::cast_to<RigidBody2D>(p_node); if (rb) { - rb->set_sleeping(!p_enabled); } } @@ -295,7 +269,6 @@ void VisibilityEnabler2D::_change_node_state(Node *p_node, bool p_enabled) { AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node); if (ap) { - ap->set_active(p_enabled); } } @@ -304,7 +277,6 @@ void VisibilityEnabler2D::_change_node_state(Node *p_node, bool p_enabled) { AnimatedSprite2D *as = Object::cast_to<AnimatedSprite2D>(p_node); if (as) { - if (p_enabled) as->play(); else @@ -316,14 +288,12 @@ void VisibilityEnabler2D::_change_node_state(Node *p_node, bool p_enabled) { GPUParticles2D *ps = Object::cast_to<GPUParticles2D>(p_node); if (ps) { - ps->set_emitting(p_enabled); } } } void VisibilityEnabler2D::_node_removed(Node *p_node) { - if (!visible) _change_node_state(p_node, true); nodes.erase(p_node); @@ -339,7 +309,6 @@ String VisibilityEnabler2D::get_configuration_warning() const { } void VisibilityEnabler2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_enabler", "enabler", "enabled"), &VisibilityEnabler2D::set_enabler); ClassDB::bind_method(D_METHOD("is_enabler_enabled", "enabler"), &VisibilityEnabler2D::is_enabler_enabled); ClassDB::bind_method(D_METHOD("_node_removed"), &VisibilityEnabler2D::_node_removed); @@ -361,18 +330,15 @@ void VisibilityEnabler2D::_bind_methods() { } void VisibilityEnabler2D::set_enabler(Enabler p_enabler, bool p_enable) { - ERR_FAIL_INDEX(p_enabler, ENABLER_MAX); enabler[p_enabler] = p_enable; } bool VisibilityEnabler2D::is_enabler_enabled(Enabler p_enabler) const { - ERR_FAIL_INDEX_V(p_enabler, ENABLER_MAX, false); return enabler[p_enabler]; } VisibilityEnabler2D::VisibilityEnabler2D() { - for (int i = 0; i < ENABLER_MAX; i++) enabler[i] = true; enabler[ENABLER_PARENT_PROCESS] = false; diff --git a/scene/2d/visibility_notifier_2d.h b/scene/2d/visibility_notifier_2d.h index a3b79d29e9..fb6e48f5e8 100644 --- a/scene/2d/visibility_notifier_2d.h +++ b/scene/2d/visibility_notifier_2d.h @@ -35,7 +35,6 @@ class Viewport; class VisibilityNotifier2D : public Node2D { - GDCLASS(VisibilityNotifier2D, Node2D); Set<Viewport *> viewports; @@ -69,7 +68,6 @@ public: }; class VisibilityEnabler2D : public VisibilityNotifier2D { - GDCLASS(VisibilityEnabler2D, VisibilityNotifier2D); public: diff --git a/scene/2d/y_sort.cpp b/scene/2d/y_sort.cpp index 15d97eeaa0..7c2b41db70 100644 --- a/scene/2d/y_sort.cpp +++ b/scene/2d/y_sort.cpp @@ -31,18 +31,15 @@ #include "y_sort.h" void YSort::set_sort_enabled(bool p_enabled) { - sort_enabled = p_enabled; RS::get_singleton()->canvas_item_set_sort_children_by_y(get_canvas_item(), sort_enabled); } bool YSort::is_sort_enabled() const { - return sort_enabled; } void YSort::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_sort_enabled", "enabled"), &YSort::set_sort_enabled); ClassDB::bind_method(D_METHOD("is_sort_enabled"), &YSort::is_sort_enabled); @@ -51,7 +48,6 @@ void YSort::_bind_methods() { } YSort::YSort() { - sort_enabled = true; RS::get_singleton()->canvas_item_set_sort_children_by_y(get_canvas_item(), true); } diff --git a/scene/3d/area_3d.cpp b/scene/3d/area_3d.cpp index b72483d71b..4592b12bf8 100644 --- a/scene/3d/area_3d.cpp +++ b/scene/3d/area_3d.cpp @@ -35,27 +35,22 @@ #include "servers/physics_server_3d.h" void Area3D::set_space_override_mode(SpaceOverride p_mode) { - space_override = p_mode; PhysicsServer3D::get_singleton()->area_set_space_override_mode(get_rid(), PhysicsServer3D::AreaSpaceOverrideMode(p_mode)); } Area3D::SpaceOverride Area3D::get_space_override_mode() const { - return space_override; } void Area3D::set_gravity_is_point(bool p_enabled) { - gravity_is_point = p_enabled; PhysicsServer3D::get_singleton()->area_set_param(get_rid(), PhysicsServer3D::AREA_PARAM_GRAVITY_IS_POINT, p_enabled); } bool Area3D::is_gravity_a_point() const { - return gravity_is_point; } void Area3D::set_gravity_distance_scale(real_t p_scale) { - gravity_distance_scale = p_scale; PhysicsServer3D::get_singleton()->area_set_param(get_rid(), PhysicsServer3D::AREA_PARAM_GRAVITY_DISTANCE_SCALE, p_scale); } @@ -65,57 +60,46 @@ real_t Area3D::get_gravity_distance_scale() const { } void Area3D::set_gravity_vector(const Vector3 &p_vec) { - gravity_vec = p_vec; PhysicsServer3D::get_singleton()->area_set_param(get_rid(), PhysicsServer3D::AREA_PARAM_GRAVITY_VECTOR, p_vec); } Vector3 Area3D::get_gravity_vector() const { - return gravity_vec; } void Area3D::set_gravity(real_t p_gravity) { - gravity = p_gravity; PhysicsServer3D::get_singleton()->area_set_param(get_rid(), PhysicsServer3D::AREA_PARAM_GRAVITY, p_gravity); } real_t Area3D::get_gravity() const { - return gravity; } void Area3D::set_linear_damp(real_t p_linear_damp) { - linear_damp = p_linear_damp; PhysicsServer3D::get_singleton()->area_set_param(get_rid(), PhysicsServer3D::AREA_PARAM_LINEAR_DAMP, p_linear_damp); } real_t Area3D::get_linear_damp() const { - return linear_damp; } void Area3D::set_angular_damp(real_t p_angular_damp) { - angular_damp = p_angular_damp; PhysicsServer3D::get_singleton()->area_set_param(get_rid(), PhysicsServer3D::AREA_PARAM_ANGULAR_DAMP, p_angular_damp); } real_t Area3D::get_angular_damp() const { - return angular_damp; } void Area3D::set_priority(real_t p_priority) { - priority = p_priority; PhysicsServer3D::get_singleton()->area_set_param(get_rid(), PhysicsServer3D::AREA_PARAM_PRIORITY, p_priority); } real_t Area3D::get_priority() const { - return priority; } void Area3D::_body_enter_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -127,13 +111,11 @@ void Area3D::_body_enter_tree(ObjectID p_id) { E->get().in_tree = true; emit_signal(SceneStringNames::get_singleton()->body_entered, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_entered, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape); } } void Area3D::_body_exit_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -143,13 +125,11 @@ void Area3D::_body_exit_tree(ObjectID p_id) { E->get().in_tree = false; emit_signal(SceneStringNames::get_singleton()->body_exited, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_exited, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape); } } void Area3D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, int p_body_shape, int p_area_shape) { - bool body_in = p_status == PhysicsServer3D::AREA_BODY_ADDED; ObjectID objid = p_instance; @@ -166,7 +146,6 @@ void Area3D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i if (body_in) { if (!E) { - E = body_map.insert(objid, BodyState()); E->get().rc = 0; E->get().in_tree = node && node->is_inside_tree(); @@ -187,7 +166,6 @@ void Area3D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i } } else { - E->get().rc--; if (node) @@ -196,7 +174,6 @@ void Area3D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i bool eraseit = false; if (E->get().rc == 0) { - if (node) { node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area3D::_body_enter_tree)); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area3D::_body_exit_tree)); @@ -218,7 +195,6 @@ void Area3D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i } void Area3D::_clear_monitoring() { - ERR_FAIL_COND_MSG(locked, "This function can't be used during the in/out signal."); { @@ -227,7 +203,6 @@ void Area3D::_clear_monitoring() { //disconnect all monitored stuff for (Map<ObjectID, BodyState>::Element *E = bmcopy.front(); E; E = E->next()) { - Object *obj = ObjectDB::get_instance(E->key()); Node *node = Object::cast_to<Node>(obj); @@ -239,7 +214,6 @@ void Area3D::_clear_monitoring() { continue; for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_exited, E->key(), node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape); } @@ -251,13 +225,11 @@ void Area3D::_clear_monitoring() { } { - Map<ObjectID, AreaState> bmcopy = area_map; area_map.clear(); //disconnect all monitored stuff for (Map<ObjectID, AreaState>::Element *E = bmcopy.front(); E; E = E->next()) { - Object *obj = ObjectDB::get_instance(E->key()); Node *node = Object::cast_to<Node>(obj); @@ -269,7 +241,6 @@ void Area3D::_clear_monitoring() { continue; for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->area_shape_exited, E->key(), node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape); } @@ -281,14 +252,12 @@ void Area3D::_clear_monitoring() { } } void Area3D::_notification(int p_what) { - if (p_what == NOTIFICATION_EXIT_TREE) { _clear_monitoring(); } } void Area3D::set_monitoring(bool p_enable) { - ERR_FAIL_COND_MSG(locked, "Function blocked during in/out signal. Use set_deferred(\"monitoring\", true/false)."); if (p_enable == monitoring) @@ -297,7 +266,6 @@ void Area3D::set_monitoring(bool p_enable) { monitoring = p_enable; if (monitoring) { - PhysicsServer3D::get_singleton()->area_set_monitor_callback(get_rid(), this, SceneStringNames::get_singleton()->_body_inout); PhysicsServer3D::get_singleton()->area_set_area_monitor_callback(get_rid(), this, SceneStringNames::get_singleton()->_area_inout); } else { @@ -308,7 +276,6 @@ void Area3D::set_monitoring(bool p_enable) { } void Area3D::_area_enter_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -320,13 +287,11 @@ void Area3D::_area_enter_tree(ObjectID p_id) { E->get().in_tree = true; emit_signal(SceneStringNames::get_singleton()->area_entered, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->area_shape_entered, p_id, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape); } } void Area3D::_area_exit_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -336,13 +301,11 @@ void Area3D::_area_exit_tree(ObjectID p_id) { E->get().in_tree = false; emit_signal(SceneStringNames::get_singleton()->area_exited, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->area_shape_exited, p_id, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape); } } void Area3D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, int p_area_shape, int p_self_shape) { - bool area_in = p_status == PhysicsServer3D::AREA_BODY_ADDED; ObjectID objid = p_instance; @@ -359,7 +322,6 @@ void Area3D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i if (area_in) { if (!E) { - E = area_map.insert(objid, AreaState()); E->get().rc = 0; E->get().in_tree = node && node->is_inside_tree(); @@ -380,7 +342,6 @@ void Area3D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i } } else { - E->get().rc--; if (node) @@ -389,7 +350,6 @@ void Area3D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i bool eraseit = false; if (E->get().rc == 0) { - if (node) { node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area3D::_area_enter_tree)); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area3D::_area_exit_tree)); @@ -412,12 +372,10 @@ void Area3D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i } bool Area3D::is_monitoring() const { - return monitoring; } TypedArray<Node3D> Area3D::get_overlapping_bodies() const { - ERR_FAIL_COND_V(!monitoring, Array()); Array ret; ret.resize(body_map.size()); @@ -435,7 +393,6 @@ TypedArray<Node3D> Area3D::get_overlapping_bodies() const { } void Area3D::set_monitorable(bool p_enable) { - ERR_FAIL_COND_MSG(locked || (is_inside_tree() && PhysicsServer3D::get_singleton()->is_flushing_queries()), "Function blocked during in/out signal. Use set_deferred(\"monitorable\", true/false)."); if (p_enable == monitorable) @@ -447,12 +404,10 @@ void Area3D::set_monitorable(bool p_enable) { } bool Area3D::is_monitorable() const { - return monitorable; } TypedArray<Area3D> Area3D::get_overlapping_areas() const { - ERR_FAIL_COND_V(!monitoring, Array()); Array ret; ret.resize(area_map.size()); @@ -470,7 +425,6 @@ TypedArray<Area3D> Area3D::get_overlapping_areas() const { } bool Area3D::overlaps_area(Node *p_area) const { - ERR_FAIL_NULL_V(p_area, false); const Map<ObjectID, AreaState>::Element *E = area_map.find(p_area->get_instance_id()); if (!E) @@ -479,7 +433,6 @@ bool Area3D::overlaps_area(Node *p_area) const { } bool Area3D::overlaps_body(Node *p_body) const { - ERR_FAIL_NULL_V(p_body, false); const Map<ObjectID, BodyState>::Element *E = body_map.find(p_body->get_instance_id()); if (!E) @@ -487,28 +440,23 @@ bool Area3D::overlaps_body(Node *p_body) const { return E->get().in_tree; } void Area3D::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; PhysicsServer3D::get_singleton()->area_set_collision_mask(get_rid(), p_mask); } uint32_t Area3D::get_collision_mask() const { - return collision_mask; } void Area3D::set_collision_layer(uint32_t p_layer) { - collision_layer = p_layer; PhysicsServer3D::get_singleton()->area_set_collision_layer(get_rid(), p_layer); } uint32_t Area3D::get_collision_layer() const { - return collision_layer; } void Area3D::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -518,12 +466,10 @@ void Area3D::set_collision_mask_bit(int p_bit, bool p_value) { } bool Area3D::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } void Area3D::set_collision_layer_bit(int p_bit, bool p_value) { - uint32_t layer = get_collision_layer(); if (p_value) layer |= 1 << p_bit; @@ -533,26 +479,21 @@ void Area3D::set_collision_layer_bit(int p_bit, bool p_value) { } bool Area3D::get_collision_layer_bit(int p_bit) const { - return get_collision_layer() & (1 << p_bit); } void Area3D::set_audio_bus_override(bool p_override) { - audio_bus_override = p_override; } bool Area3D::is_overriding_audio_bus() const { - return audio_bus_override; } void Area3D::set_audio_bus(const StringName &p_audio_bus) { - audio_bus = p_audio_bus; } StringName Area3D::get_audio_bus() const { - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (AudioServer::get_singleton()->get_bus_name(i) == audio_bus) { return audio_bus; @@ -562,20 +503,16 @@ StringName Area3D::get_audio_bus() const { } void Area3D::set_use_reverb_bus(bool p_enable) { - use_reverb_bus = p_enable; } bool Area3D::is_using_reverb_bus() const { - return use_reverb_bus; } void Area3D::set_reverb_bus(const StringName &p_audio_bus) { - reverb_bus = p_audio_bus; } StringName Area3D::get_reverb_bus() const { - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (AudioServer::get_singleton()->get_bus_name(i) == reverb_bus) { return reverb_bus; @@ -585,27 +522,21 @@ StringName Area3D::get_reverb_bus() const { } void Area3D::set_reverb_amount(float p_amount) { - reverb_amount = p_amount; } float Area3D::get_reverb_amount() const { - return reverb_amount; } void Area3D::set_reverb_uniformity(float p_uniformity) { - reverb_uniformity = p_uniformity; } float Area3D::get_reverb_uniformity() const { - return reverb_uniformity; } void Area3D::_validate_property(PropertyInfo &property) const { - if (property.name == "audio_bus_name" || property.name == "reverb_bus_name") { - String options; for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (i > 0) @@ -729,7 +660,6 @@ void Area3D::_bind_methods() { Area3D::Area3D() : CollisionObject3D(PhysicsServer3D::get_singleton()->area_create(), true) { - space_override = SPACE_OVERRIDE_DISABLED; set_gravity(9.8); locked = false; diff --git a/scene/3d/area_3d.h b/scene/3d/area_3d.h index f6503c6d2d..377cf3ccbb 100644 --- a/scene/3d/area_3d.h +++ b/scene/3d/area_3d.h @@ -35,7 +35,6 @@ #include "scene/3d/collision_object_3d.h" class Area3D : public CollisionObject3D { - GDCLASS(Area3D, CollisionObject3D); public: @@ -68,7 +67,6 @@ private: void _body_exit_tree(ObjectID p_id); struct ShapePair { - int body_shape; int area_shape; bool operator<(const ShapePair &p_sp) const { @@ -86,7 +84,6 @@ private: }; struct BodyState { - int rc; bool in_tree; VSet<ShapePair> shapes; @@ -100,7 +97,6 @@ private: void _area_exit_tree(ObjectID p_id); struct AreaShapePair { - int area_shape; int self_shape; bool operator<(const AreaShapePair &p_sp) const { @@ -118,7 +114,6 @@ private: }; struct AreaState { - int rc; bool in_tree; VSet<AreaShapePair> shapes; diff --git a/scene/3d/audio_stream_player_3d.cpp b/scene/3d/audio_stream_player_3d.cpp index 8a00d67e12..83cf5b0142 100644 --- a/scene/3d/audio_stream_player_3d.cpp +++ b/scene/3d/audio_stream_player_3d.cpp @@ -138,7 +138,6 @@ void AudioStreamPlayer3D::_calc_output_vol(const Vector3 &source_dir, real_t tig } void AudioStreamPlayer3D::_mix_audio() { - if (!stream_playback.is_valid() || !active || (stream_paused && !stream_paused_fade_out)) { return; @@ -162,7 +161,6 @@ void AudioStreamPlayer3D::_mix_audio() { // Mix if we're not paused or we're fading out if ((output_count > 0 || out_of_range_mode == OUT_OF_RANGE_MIX)) { - float output_pitch_scale = 0.0; if (output_count) { //used for doppler, not realistic but good enough @@ -179,7 +177,6 @@ void AudioStreamPlayer3D::_mix_audio() { //write all outputs for (int i = 0; i < output_count; i++) { - Output current = outputs[i]; //see if current output exists, to keep volume ramp @@ -228,7 +225,6 @@ void AudioStreamPlayer3D::_mix_audio() { current.filter.set_gain(current.filter_gain); if (interpolate_filter) { - current.filter_process[k * 2 + 0] = prev_outputs[i].filter_process[k * 2 + 0]; current.filter_process[k * 2 + 1] = prev_outputs[i].filter_process[k * 2 + 1]; @@ -238,7 +234,6 @@ void AudioStreamPlayer3D::_mix_audio() { current.filter_process[k * 2 + 0].update_coeffs(buffer_size); current.filter_process[k * 2 + 1].update_coeffs(buffer_size); for (int j = 0; j < buffer_size; j++) { - AudioFrame f = buffer[j] * vol; current.filter_process[k * 2 + 0].process_one_interp(f.l); current.filter_process[k * 2 + 1].process_one_interp(f.r); @@ -253,7 +248,6 @@ void AudioStreamPlayer3D::_mix_audio() { current.filter_process[k * 2 + 0].update_coeffs(); current.filter_process[k * 2 + 1].update_coeffs(); for (int j = 0; j < buffer_size; j++) { - AudioFrame f = buffer[j] * vol; current.filter_process[k * 2 + 0].process_one(f.l); current.filter_process[k * 2 + 1].process_one(f.r); @@ -264,7 +258,6 @@ void AudioStreamPlayer3D::_mix_audio() { } if (current.reverb_bus_index >= 0) { - if (!AudioServer::get_singleton()->thread_has_channel_mix_buffer(current.reverb_bus_index, k)) continue; //may have been deleted, will be updated on process @@ -275,15 +268,12 @@ void AudioStreamPlayer3D::_mix_audio() { AudioFrame rvol = prev_outputs[i].reverb_vol[k]; for (int j = 0; j < buffer_size; j++) { - rtarget[j] += buffer[j] * rvol; rvol += rvol_inc; } } else { - AudioFrame rvol = current.reverb_vol[k]; for (int j = 0; j < buffer_size; j++) { - rtarget[j] += buffer[j] * rvol; } } @@ -306,7 +296,6 @@ void AudioStreamPlayer3D::_mix_audio() { } float AudioStreamPlayer3D::_get_attenuation_db(float p_distance) const { - float att = 0; switch (attenuation_model) { case ATTENUATION_INVERSE_DISTANCE: { @@ -340,9 +329,7 @@ void _update_sound() { } void AudioStreamPlayer3D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - velocity_tracker->reset(get_global_transform().origin); AudioServer::get_singleton()->add_callback(_mix_audios, this); if (autoplay && !Engine::get_singleton()->is_editor_hint()) { @@ -351,7 +338,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - AudioServer::get_singleton()->remove_callback(_mix_audios, this); } @@ -367,18 +353,15 @@ void AudioStreamPlayer3D::_notification(int p_what) { } if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { - if (doppler_tracking != DOPPLER_TRACKING_DISABLED) { velocity_tracker->update_position(get_global_transform().origin); } } if (p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { - //update anything related to position first, if possible of course if (!output_ready) { - Vector3 linear_velocity; //compute linear velocity for doppler @@ -423,7 +406,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { world_3d->get_camera_list(&cameras); for (List<Camera3D *>::Element *E = cameras.front(); E; E = E->next()) { - Camera3D *camera = E->get(); Viewport *vp = camera->get_viewport(); if (!vp->is_audio_listener()) @@ -451,7 +433,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { } if (max_distance > 0) { - float total_max = max_distance; if (area && area->is_using_reverb_bus() && area->get_reverb_uniformity() > 0) { @@ -497,7 +478,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { int vol_index_max = AudioServer::get_singleton()->get_speaker_mode() + 1; if (area) { - if (area->is_overriding_audio_bus()) { //override audio bus StringName bus_name = area->get_audio_bus(); @@ -505,7 +485,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { } if (area->is_using_reverb_bus()) { - filled_reverb = true; StringName bus_name = area->get_reverb_bus(); output.reverb_bus_index = AudioServer::get_singleton()->thread_find_bus_index(bus_name); @@ -514,7 +493,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { float area_send = area->get_reverb_amount(); if (uniformity > 0.0) { - float distance = listener_area_pos.length(); float attenuation = Math::db2linear(_get_attenuation_db(distance)); @@ -556,26 +534,21 @@ void AudioStreamPlayer3D::_notification(int p_what) { } for (int i = 0; i < vol_index_max; i++) { - output.reverb_vol[i] = output.reverb_vol[i].lerp(center_frame, attenuation); } } else { for (int i = 0; i < vol_index_max; i++) { - output.reverb_vol[i] = center_frame; } } for (int i = 0; i < vol_index_max; i++) { - output.reverb_vol[i] = output.vol[i].lerp(output.reverb_vol[i] * attenuation, uniformity); output.reverb_vol[i] *= area_send; } } else { - for (int i = 0; i < vol_index_max; i++) { - output.reverb_vol[i] = output.vol[i] * area_send; } } @@ -583,7 +556,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { } if (doppler_tracking != DOPPLER_TRACKING_DISABLED) { - Vector3 listener_velocity; if (listener_is_camera) { @@ -608,9 +580,7 @@ void AudioStreamPlayer3D::_notification(int p_what) { } if (!filled_reverb) { - for (int i = 0; i < vol_index_max; i++) { - output.reverb_vol[i] = AudioFrame(0, 0); } } @@ -645,7 +615,6 @@ void AudioStreamPlayer3D::_notification(int p_what) { } void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) { - AudioServer::get_singleton()->lock(); mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size()); @@ -670,34 +639,27 @@ void AudioStreamPlayer3D::set_stream(Ref<AudioStream> p_stream) { } Ref<AudioStream> AudioStreamPlayer3D::get_stream() const { - return stream; } void AudioStreamPlayer3D::set_unit_db(float p_volume) { - unit_db = p_volume; } float AudioStreamPlayer3D::get_unit_db() const { - return unit_db; } void AudioStreamPlayer3D::set_unit_size(float p_volume) { - unit_size = p_volume; } float AudioStreamPlayer3D::get_unit_size() const { - return unit_size; } void AudioStreamPlayer3D::set_max_db(float p_boost) { - max_db = p_boost; } float AudioStreamPlayer3D::get_max_db() const { - return max_db; } @@ -710,7 +672,6 @@ float AudioStreamPlayer3D::get_pitch_scale() const { } void AudioStreamPlayer3D::play(float p_from_pos) { - if (!is_playing()) { // Reset the prev_output_count if the stream is stopped prev_output_count = 0; @@ -725,14 +686,12 @@ void AudioStreamPlayer3D::play(float p_from_pos) { } void AudioStreamPlayer3D::seek(float p_seconds) { - if (stream_playback.is_valid()) { setseek = p_seconds; } } void AudioStreamPlayer3D::stop() { - if (stream_playback.is_valid()) { active = false; set_physics_process_internal(false); @@ -741,7 +700,6 @@ void AudioStreamPlayer3D::stop() { } bool AudioStreamPlayer3D::is_playing() const { - if (stream_playback.is_valid()) { return active; // && stream_playback->is_playing(); } @@ -750,7 +708,6 @@ bool AudioStreamPlayer3D::is_playing() const { } float AudioStreamPlayer3D::get_playback_position() { - if (stream_playback.is_valid()) { return stream_playback->get_playback_position(); } @@ -759,14 +716,12 @@ float AudioStreamPlayer3D::get_playback_position() { } void AudioStreamPlayer3D::set_bus(const StringName &p_bus) { - //if audio is active, must lock this AudioServer::get_singleton()->lock(); bus = p_bus; AudioServer::get_singleton()->unlock(); } StringName AudioStreamPlayer3D::get_bus() const { - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (AudioServer::get_singleton()->get_bus_name(i) == bus) { return bus; @@ -776,30 +731,24 @@ StringName AudioStreamPlayer3D::get_bus() const { } void AudioStreamPlayer3D::set_autoplay(bool p_enable) { - autoplay = p_enable; } bool AudioStreamPlayer3D::is_autoplay_enabled() { - return autoplay; } void AudioStreamPlayer3D::_set_playing(bool p_enable) { - if (p_enable) play(); else stop(); } bool AudioStreamPlayer3D::_is_active() const { - return active; } void AudioStreamPlayer3D::_validate_property(PropertyInfo &property) const { - if (property.name == "bus") { - String options; for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (i > 0) @@ -813,28 +762,23 @@ void AudioStreamPlayer3D::_validate_property(PropertyInfo &property) const { } void AudioStreamPlayer3D::_bus_layout_changed() { - _change_notify(); } void AudioStreamPlayer3D::set_max_distance(float p_metres) { - ERR_FAIL_COND(p_metres < 0.0); max_distance = p_metres; } float AudioStreamPlayer3D::get_max_distance() const { - return max_distance; } void AudioStreamPlayer3D::set_area_mask(uint32_t p_mask) { - area_mask = p_mask; } uint32_t AudioStreamPlayer3D::get_area_mask() const { - return area_mask; } @@ -859,30 +803,24 @@ float AudioStreamPlayer3D::get_emission_angle() const { } void AudioStreamPlayer3D::set_emission_angle_filter_attenuation_db(float p_angle_attenuation_db) { - emission_angle_filter_attenuation_db = p_angle_attenuation_db; } float AudioStreamPlayer3D::get_emission_angle_filter_attenuation_db() const { - return emission_angle_filter_attenuation_db; } void AudioStreamPlayer3D::set_attenuation_filter_cutoff_hz(float p_hz) { - attenuation_filter_cutoff_hz = p_hz; } float AudioStreamPlayer3D::get_attenuation_filter_cutoff_hz() const { - return attenuation_filter_cutoff_hz; } void AudioStreamPlayer3D::set_attenuation_filter_db(float p_db) { - attenuation_filter_db = p_db; } float AudioStreamPlayer3D::get_attenuation_filter_db() const { - return attenuation_filter_db; } @@ -896,18 +834,15 @@ AudioStreamPlayer3D::AttenuationModel AudioStreamPlayer3D::get_attenuation_model } void AudioStreamPlayer3D::set_out_of_range_mode(OutOfRangeMode p_mode) { - ERR_FAIL_INDEX((int)p_mode, 2); out_of_range_mode = p_mode; } AudioStreamPlayer3D::OutOfRangeMode AudioStreamPlayer3D::get_out_of_range_mode() const { - return out_of_range_mode; } void AudioStreamPlayer3D::set_doppler_tracking(DopplerTracking p_tracking) { - if (doppler_tracking == p_tracking) return; @@ -925,12 +860,10 @@ void AudioStreamPlayer3D::set_doppler_tracking(DopplerTracking p_tracking) { } AudioStreamPlayer3D::DopplerTracking AudioStreamPlayer3D::get_doppler_tracking() const { - return doppler_tracking; } void AudioStreamPlayer3D::set_stream_paused(bool p_pause) { - if (p_pause != stream_paused) { stream_paused = p_pause; stream_paused_fade_in = !stream_paused; @@ -939,7 +872,6 @@ void AudioStreamPlayer3D::set_stream_paused(bool p_pause) { } bool AudioStreamPlayer3D::get_stream_paused() const { - return stream_paused; } @@ -948,7 +880,6 @@ Ref<AudioStreamPlayback> AudioStreamPlayer3D::get_stream_playback() { } void AudioStreamPlayer3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_stream", "stream"), &AudioStreamPlayer3D::set_stream); ClassDB::bind_method(D_METHOD("get_stream"), &AudioStreamPlayer3D::get_stream); @@ -1054,7 +985,6 @@ void AudioStreamPlayer3D::_bind_methods() { } AudioStreamPlayer3D::AudioStreamPlayer3D() { - unit_db = 0; unit_size = 1; attenuation_model = ATTENUATION_INVERSE_DISTANCE; diff --git a/scene/3d/audio_stream_player_3d.h b/scene/3d/audio_stream_player_3d.h index 13e08339e2..9f261c54b4 100644 --- a/scene/3d/audio_stream_player_3d.h +++ b/scene/3d/audio_stream_player_3d.h @@ -39,7 +39,6 @@ class Camera3D; class AudioStreamPlayer3D : public Node3D { - GDCLASS(AudioStreamPlayer3D, Node3D); public: @@ -69,7 +68,6 @@ private: }; struct Output { - AudioFilterSW filter; AudioFilterSW::Processor filter_process[8]; AudioFrame vol[4]; diff --git a/scene/3d/baked_lightmap.cpp b/scene/3d/baked_lightmap.cpp index 82a9a1e589..8838295e93 100644 --- a/scene/3d/baked_lightmap.cpp +++ b/scene/3d/baked_lightmap.cpp @@ -41,7 +41,6 @@ #include "lightmap_probe.h" void BakedLightmapData::add_user(const NodePath &p_path, const Rect2 &p_uv_scale, int p_slice_index, int32_t p_sub_instance) { - User user; user.path = p_path; user.uv_scale = p_uv_scale; @@ -51,29 +50,24 @@ void BakedLightmapData::add_user(const NodePath &p_path, const Rect2 &p_uv_scale } int BakedLightmapData::get_user_count() const { - return users.size(); } NodePath BakedLightmapData::get_user_path(int p_user) const { - ERR_FAIL_INDEX_V(p_user, users.size(), NodePath()); return users[p_user].path; } int32_t BakedLightmapData::get_user_sub_instance(int p_user) const { - ERR_FAIL_INDEX_V(p_user, users.size(), -1); return users[p_user].sub_instance; } Rect2 BakedLightmapData::get_user_lightmap_uv_scale(int p_user) const { - ERR_FAIL_INDEX_V(p_user, users.size(), Rect2()); return users[p_user].uv_scale; } int BakedLightmapData::get_user_lightmap_slice_index(int p_user) const { - ERR_FAIL_INDEX_V(p_user, users.size(), -1); return users[p_user].slice_index; } @@ -83,7 +77,6 @@ void BakedLightmapData::clear_users() { } void BakedLightmapData::_set_user_data(const Array &p_data) { - ERR_FAIL_COND((p_data.size() % 4) != 0); for (int i = 0; i < p_data.size(); i += 4) { @@ -92,7 +85,6 @@ void BakedLightmapData::_set_user_data(const Array &p_data) { } Array BakedLightmapData::_get_user_data() const { - Array ret; for (int i = 0; i < users.size(); i++) { ret.push_back(users[i].path); @@ -190,7 +182,6 @@ Dictionary BakedLightmapData::_get_probe_data() const { return d; } void BakedLightmapData::_bind_methods() { - ClassDB::bind_method(D_METHOD("_set_user_data", "data"), &BakedLightmapData::_set_user_data); ClassDB::bind_method(D_METHOD("_get_user_data"), &BakedLightmapData::_get_user_data); @@ -215,28 +206,23 @@ void BakedLightmapData::_bind_methods() { } BakedLightmapData::BakedLightmapData() { - lightmap = RS::get_singleton()->lightmap_create(); } BakedLightmapData::~BakedLightmapData() { - RS::get_singleton()->free(lightmap); } /////////////////////////// void BakedLightmap::_find_meshes_and_lights(Node *p_at_node, Vector<MeshesFound> &meshes, Vector<LightsFound> &lights, Vector<Vector3> &probes) { - MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(p_at_node); if (mi && mi->get_gi_mode() == GeometryInstance3D::GI_MODE_BAKED && mi->is_visible_in_tree()) { Ref<Mesh> mesh = mi->get_mesh(); if (mesh.is_valid()) { - bool all_have_uv2_and_normal = true; bool surfaces_found = false; for (int i = 0; i < mesh->get_surface_count(); i++) { - if (mesh->surface_get_primitive_type(i) != Mesh::PRIMITIVE_TRIANGLES) { continue; } @@ -284,7 +270,6 @@ void BakedLightmap::_find_meshes_and_lights(Node *p_at_node, Vector<MeshesFound> if (bmeshes.size() && (bmeshes.size() & 1) == 0) { Transform xf = get_global_transform().affine_inverse() * s->get_global_transform(); for (int i = 0; i < bmeshes.size(); i += 2) { - Ref<Mesh> mesh = bmeshes[i]; if (!mesh.is_valid()) continue; @@ -306,7 +291,6 @@ void BakedLightmap::_find_meshes_and_lights(Node *p_at_node, Vector<MeshesFound> Light3D *light = Object::cast_to<Light3D>(p_at_node); if (light && light->get_bake_mode() != Light3D::BAKE_DISABLED) { - LightsFound lf; lf.xform = get_global_transform().affine_inverse() * light->get_global_transform(); lf.light = light; @@ -321,7 +305,6 @@ void BakedLightmap::_find_meshes_and_lights(Node *p_at_node, Vector<MeshesFound> } for (int i = 0; i < p_at_node->get_child_count(); i++) { - Node *child = p_at_node->get_child(i); if (!child->get_owner()) continue; //maybe a helper @@ -331,7 +314,6 @@ void BakedLightmap::_find_meshes_and_lights(Node *p_at_node, Vector<MeshesFound> } int BakedLightmap::_bsp_get_simplex_side(const Vector<Vector3> &p_points, const LocalVector<BSPSimplex> &p_simplices, const Plane &p_plane, uint32_t p_simplex) const { - int over = 0; int under = 0; int coplanar = 0; @@ -360,7 +342,6 @@ int BakedLightmap::_bsp_get_simplex_side(const Vector<Vector3> &p_points, const //#define DEBUG_BSP int32_t BakedLightmap::_compute_bsp_tree(const Vector<Vector3> &p_points, const LocalVector<Plane> &p_planes, LocalVector<int32_t> &planes_tested, const LocalVector<BSPSimplex> &p_simplices, const LocalVector<int32_t> &p_simplex_indices, LocalVector<BSPNode> &bsp_nodes) { - //if we reach here, it means there is more than one simplex int32_t node_index = (int32_t)bsp_nodes.size(); bsp_nodes.push_back(BSPNode()); @@ -427,7 +408,6 @@ int32_t BakedLightmap::_compute_bsp_tree(const Vector<Vector3> &p_points, const //score *= Math::sqrt(float(over_count + under_count) / p_simplex_indices.size()); //also multiply score if (score > best_plane_score) { - best_plane = plane; best_plane_score = score; } @@ -439,7 +419,6 @@ int32_t BakedLightmap::_compute_bsp_tree(const Vector<Vector3> &p_points, const //split again, but add to list for (uint32_t i = 0; i < p_simplex_indices.size(); i++) { - uint32_t index = p_simplex_indices[i]; int side = _bsp_get_simplex_side(p_points, p_simplices, best_plane, index); @@ -478,7 +457,6 @@ int32_t BakedLightmap::_compute_bsp_tree(const Vector<Vector3> &p_points, const for (uint32_t i = 0; i < p_simplex_indices.size(); i++) { AABB bounds; for (uint32_t j = 0; j < 4; j++) { - Vector3 p = p_points[p_simplices[p_simplex_indices[i]].vertices[j]]; if (j == 0) { bounds.position = p; @@ -549,7 +527,6 @@ int32_t BakedLightmap::_compute_bsp_tree(const Vector<Vector3> &p_points, const } bool BakedLightmap::_lightmap_bake_step_function(float p_completion, const String &p_text, void *ud, bool p_refresh) { - BakeStepUD *bsud = (BakeStepUD *)ud; bool ret = false; if (bsud->func) { @@ -559,7 +536,6 @@ bool BakedLightmap::_lightmap_bake_step_function(float p_completion, const Strin } void BakedLightmap::_plot_triangle_into_octree(GenProbesOctree *p_cell, float p_cell_size, const Vector3 *p_triangle) { - for (int i = 0; i < 8; i++) { Vector3i pos = p_cell->offset; uint32_t half_size = p_cell->size / 2; @@ -594,9 +570,7 @@ void BakedLightmap::_plot_triangle_into_octree(GenProbesOctree *p_cell, float p_ } } void BakedLightmap::_gen_new_positions_from_octree(const GenProbesOctree *p_cell, float p_cell_size, const Vector<Vector3> &probe_positions, LocalVector<Vector3> &new_probe_positions, HashMap<Vector3i, bool, Vector3iHash> &positions_used, const AABB &p_bounds) { - for (int i = 0; i < 8; i++) { - Vector3i pos = p_cell->offset; if (i & 1) { pos.x += p_cell->size; @@ -616,7 +590,6 @@ void BakedLightmap::_gen_new_positions_from_octree(const GenProbesOctree *p_cell const Vector3 *pp = probe_positions.ptr(); bool exists = false; for (int j = 0; j < ppcount; j++) { - if (pp[j].distance_to(real_pos) < CMP_EPSILON) { exists = true; break; @@ -636,13 +609,11 @@ void BakedLightmap::_gen_new_positions_from_octree(const GenProbesOctree *p_cell } } BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_data_path, Lightmapper::BakeStepFunc p_bake_step, void *p_bake_userdata) { - if (p_image_data_path == "" && (get_light_data().is_null() || !get_light_data()->get_path().is_resource_file())) { return BAKE_ERROR_NO_SAVE_PATH; } if (p_image_data_path == "") { - if (get_light_data().is_null()) { return BAKE_ERROR_NO_SAVE_PATH; } @@ -681,7 +652,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d //get the base material textures, help compute altlas size and bounds for (int m_i = 0; m_i < meshes_found.size(); m_i++) { - if (p_bake_step) { float p = (float)(m_i) / meshes_found.size(); p_bake_step(p * 0.1, vformat(TTR("Preparing geometry %d/%d"), m_i, meshes_found.size()), p_bake_userdata, false); @@ -718,7 +688,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d } { - if (albedo->get_format() != Image::FORMAT_RGBA8) { albedo->convert(Image::FORMAT_RGBA8); } @@ -779,7 +748,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d const int *ir = nullptr; if (index.size()) { - facecount = index.size() / 3; ir = index.ptr(); } else { @@ -787,7 +755,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d } for (int j = 0; j < facecount; j++) { - uint32_t vidx[3]; if (ir) { @@ -893,7 +860,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d } //skip first level, since probes are always added at bounds endpoints anyway (code above this) for (int i = 0; i < 8; i++) { - if (octree.children[i]) { _gen_new_positions_from_octree(octree.children[i], subdiv_cell_size, probes_found, new_probe_positions, positions_used, bounds); } @@ -910,7 +876,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d } { - for (int i = 0; i < mesh_data.size(); i++) { lightmapper->add_mesh(mesh_data[i]); } @@ -995,7 +960,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d Ref<TextureLayered> texture; { - Vector<Ref<Image>> images; for (int i = 0; i < lightmapper->get_bake_texture_count(); i++) { images.push_back(lightmapper->get_bake_texture(i)); @@ -1016,7 +980,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d config.instance(); if (FileAccess::exists(base_path + ".import")) { - config->load(base_path + ".import"); } @@ -1095,7 +1058,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d PackedInt32Array tetrahedrons; for (int i = 0; i < solved_simplices.size(); i++) { - //Prepare a special representation of the simplex, which uses a BSP Tree BSPSimplex bsp_simplex; for (int j = 0; j < 4; j++) { @@ -1117,7 +1079,6 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d Plane p(a, b, c); int plane_index = -1; for (uint32_t k = 0; k < bsp_planes.size(); k++) { - if (bsp_planes[k].is_equal_approx_any_side(p)) { plane_index = k; break; @@ -1218,14 +1179,12 @@ BakedLightmap::BakeError BakedLightmap::bake(Node *p_from_node, String p_image_d void BakedLightmap::_notification(int p_what) { if (p_what == NOTIFICATION_POST_ENTER_TREE) { - if (light_data.is_valid()) { _assign_lightmaps(); } } if (p_what == NOTIFICATION_EXIT_TREE) { - if (light_data.is_valid()) { _clear_lightmaps(); } @@ -1233,11 +1192,9 @@ void BakedLightmap::_notification(int p_what) { } void BakedLightmap::_assign_lightmaps() { - ERR_FAIL_COND(!light_data.is_valid()); for (int i = 0; i < light_data->get_user_count(); i++) { - Node *node = get_node(light_data->get_user_path(i)); int instance_idx = light_data->get_user_sub_instance(i); if (instance_idx >= 0) { @@ -1272,7 +1229,6 @@ void BakedLightmap::_clear_lightmaps() { } void BakedLightmap::set_light_data(const Ref<BakedLightmapData> &p_data) { - if (light_data.is_valid()) { if (is_inside_tree()) { _clear_lightmaps(); @@ -1292,7 +1248,6 @@ void BakedLightmap::set_light_data(const Ref<BakedLightmapData> &p_data) { } Ref<BakedLightmapData> BakedLightmap::get_light_data() const { - return light_data; } @@ -1312,12 +1267,10 @@ Vector<Face3> BakedLightmap::get_faces(uint32_t p_usage_flags) const { } void BakedLightmap::set_use_denoiser(bool p_enable) { - use_denoiser = p_enable; } bool BakedLightmap::is_using_denoiser() const { - return use_denoiser; } @@ -1415,7 +1368,6 @@ void BakedLightmap::_validate_property(PropertyInfo &property) const { } void BakedLightmap::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_light_data", "data"), &BakedLightmap::set_light_data); ClassDB::bind_method(D_METHOD("get_light_data"), &BakedLightmap::get_light_data); @@ -1501,7 +1453,6 @@ void BakedLightmap::_bind_methods() { } BakedLightmap::BakedLightmap() { - environment_mode = ENVIRONMENT_MODE_DISABLED; environment_custom_color = Color(0.2, 0.7, 1.0); environment_custom_energy = 1.0; diff --git a/scene/3d/baked_lightmap.h b/scene/3d/baked_lightmap.h index 748fdf913f..08098c3d5d 100644 --- a/scene/3d/baked_lightmap.h +++ b/scene/3d/baked_lightmap.h @@ -52,7 +52,6 @@ class BakedLightmapData : public Resource { AABB bounds; struct User { - NodePath path; int32_t sub_instance; Rect2 uv_scale; diff --git a/scene/3d/bone_attachment_3d.cpp b/scene/3d/bone_attachment_3d.cpp index 825cb39e2d..5e4b995aa1 100644 --- a/scene/3d/bone_attachment_3d.cpp +++ b/scene/3d/bone_attachment_3d.cpp @@ -31,12 +31,10 @@ #include "bone_attachment_3d.h" void BoneAttachment3D::_validate_property(PropertyInfo &property) const { - if (property.name == "bone_name") { Skeleton3D *parent = Object::cast_to<Skeleton3D>(get_parent()); if (parent) { - String names; for (int i = 0; i < parent->get_bone_count(); i++) { if (i > 0) @@ -47,7 +45,6 @@ void BoneAttachment3D::_validate_property(PropertyInfo &property) const { property.hint = PROPERTY_HINT_ENUM; property.hint_string = names; } else { - property.hint = PROPERTY_HINT_NONE; property.hint_string = ""; } @@ -55,10 +52,8 @@ void BoneAttachment3D::_validate_property(PropertyInfo &property) const { } void BoneAttachment3D::_check_bind() { - Skeleton3D *sk = Object::cast_to<Skeleton3D>(get_parent()); if (sk) { - int idx = sk->find_bone(bone_name); if (idx != -1) { sk->bind_child_node_to_bone(idx, this); @@ -69,12 +64,9 @@ void BoneAttachment3D::_check_bind() { } void BoneAttachment3D::_check_unbind() { - if (bound) { - Skeleton3D *sk = Object::cast_to<Skeleton3D>(get_parent()); if (sk) { - int idx = sk->find_bone(bone_name); if (idx != -1) { sk->unbind_child_node_from_bone(idx, this); @@ -85,7 +77,6 @@ void BoneAttachment3D::_check_unbind() { } void BoneAttachment3D::set_bone_name(const String &p_name) { - if (is_inside_tree()) _check_unbind(); @@ -96,20 +87,15 @@ void BoneAttachment3D::set_bone_name(const String &p_name) { } String BoneAttachment3D::get_bone_name() const { - return bone_name; } void BoneAttachment3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - _check_bind(); } break; case NOTIFICATION_EXIT_TREE: { - _check_unbind(); } break; } diff --git a/scene/3d/bone_attachment_3d.h b/scene/3d/bone_attachment_3d.h index d2a3ffec90..fec59217d2 100644 --- a/scene/3d/bone_attachment_3d.h +++ b/scene/3d/bone_attachment_3d.h @@ -34,7 +34,6 @@ #include "scene/3d/skeleton_3d.h" class BoneAttachment3D : public Node3D { - GDCLASS(BoneAttachment3D, Node3D); bool bound; diff --git a/scene/3d/camera_3d.cpp b/scene/3d/camera_3d.cpp index 871f3119bc..0f7aa28bf3 100644 --- a/scene/3d/camera_3d.cpp +++ b/scene/3d/camera_3d.cpp @@ -39,16 +39,13 @@ void Camera3D::_update_audio_listener_state() { } void Camera3D::_request_camera_update() { - _update_camera(); } void Camera3D::_update_camera_mode() { - force_change = true; switch (mode) { case PROJECTION_PERSPECTIVE: { - set_perspective(fov, near, far); } break; @@ -78,7 +75,6 @@ void Camera3D::_validate_property(PropertyInfo &p_property) const { } void Camera3D::_update_camera() { - if (!is_inside_tree()) return; @@ -101,11 +97,8 @@ void Camera3D::_update_camera() { } void Camera3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_WORLD: { - // Needs to track the Viewport because it's needed on NOTIFICATION_EXIT_WORLD // and Spatial will handle it first, including clearing its reference to the Viewport, // therefore making it impossible to subclasses to access it @@ -118,14 +111,12 @@ void Camera3D::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - _request_camera_update(); if (doppler_tracking != DOPPLER_TRACKING_DISABLED) { velocity_tracker->update_position(get_global_transform().origin); } } break; case NOTIFICATION_EXIT_WORLD: { - if (!get_tree()->is_node_being_edited(this)) { if (is_current()) { clear_current(); @@ -156,7 +147,6 @@ void Camera3D::_notification(int p_what) { } Transform Camera3D::get_camera_transform() const { - Transform tr = get_global_transform().orthonormalized(); tr.origin += tr.basis.get_axis(1) * v_offset; tr.origin += tr.basis.get_axis(0) * h_offset; @@ -164,7 +154,6 @@ Transform Camera3D::get_camera_transform() const { } void Camera3D::set_perspective(float p_fovy_degrees, float p_z_near, float p_z_far) { - if (!force_change && fov == p_fovy_degrees && p_z_near == near && p_z_far == far && mode == PROJECTION_PERSPECTIVE) return; @@ -178,7 +167,6 @@ void Camera3D::set_perspective(float p_fovy_degrees, float p_z_near, float p_z_f force_change = false; } void Camera3D::set_orthogonal(float p_size, float p_z_near, float p_z_far) { - if (!force_change && size == p_size && p_z_near == near && p_z_far == far && mode == PROJECTION_ORTHOGONAL) return; @@ -218,12 +206,10 @@ void Camera3D::set_projection(Camera3D::Projection p_mode) { } RID Camera3D::get_camera() const { - return camera; }; void Camera3D::make_current() { - current = true; if (!is_inside_tree()) @@ -235,7 +221,6 @@ void Camera3D::make_current() { } void Camera3D::clear_current(bool p_enable_next) { - current = false; if (!is_inside_tree()) return; @@ -258,27 +243,22 @@ void Camera3D::set_current(bool p_current) { } bool Camera3D::is_current() const { - if (is_inside_tree() && !get_tree()->is_node_being_edited(this)) { - return get_viewport()->get_camera() == this; } else return current; } bool Camera3D::_can_gizmo_scale() const { - return false; } Vector3 Camera3D::project_ray_normal(const Point2 &p_pos) const { - Vector3 ray = project_local_ray_normal(p_pos); return get_camera_transform().basis.xform(ray).normalized(); }; Vector3 Camera3D::project_local_ray_normal(const Point2 &p_pos) const { - ERR_FAIL_COND_V_MSG(!is_inside_tree(), Vector3(), "Camera is not inside scene."); Size2 viewport_size = get_viewport()->get_camera_rect_size(); @@ -286,7 +266,6 @@ Vector3 Camera3D::project_local_ray_normal(const Point2 &p_pos) const { Vector3 ray; if (mode == PROJECTION_ORTHOGONAL) { - ray = Vector3(0, 0, -1); } else { CameraMatrix cm; @@ -299,7 +278,6 @@ Vector3 Camera3D::project_local_ray_normal(const Point2 &p_pos) const { }; Vector3 Camera3D::project_ray_origin(const Point2 &p_pos) const { - ERR_FAIL_COND_V_MSG(!is_inside_tree(), Vector3(), "Camera is not inside scene."); Size2 viewport_size = get_viewport()->get_camera_rect_size(); @@ -307,10 +285,8 @@ Vector3 Camera3D::project_ray_origin(const Point2 &p_pos) const { ERR_FAIL_COND_V(viewport_size.y == 0, Vector3()); if (mode == PROJECTION_PERSPECTIVE) { - return get_camera_transform().origin; } else { - Vector2 pos = cpos / viewport_size; float vsize, hsize; if (keep_aspect == KEEP_WIDTH) { @@ -331,7 +307,6 @@ Vector3 Camera3D::project_ray_origin(const Point2 &p_pos) const { }; bool Camera3D::is_position_behind(const Vector3 &p_pos) const { - Transform t = get_global_transform(); Vector3 eyedir = -get_global_transform().basis.get_axis(2).normalized(); return eyedir.dot(p_pos) < (eyedir.dot(t.origin) + near); @@ -361,7 +336,6 @@ Vector<Vector3> Camera3D::get_near_plane_points() const { } Point2 Camera3D::unproject_position(const Vector3 &p_pos) const { - ERR_FAIL_COND_V_MSG(!is_inside_tree(), Vector2(), "Camera is not inside scene."); Size2 viewport_size = get_viewport()->get_visible_rect().size; @@ -386,7 +360,6 @@ Point2 Camera3D::unproject_position(const Vector3 &p_pos) const { } Vector3 Camera3D::project_position(const Point2 &p_point, float p_z_depth) const { - ERR_FAIL_COND_V_MSG(!is_inside_tree(), Vector3(), "Camera is not inside scene."); if (p_z_depth == 0 && mode != PROJECTION_ORTHOGONAL) { @@ -414,7 +387,6 @@ Vector3 Camera3D::project_position(const Point2 &p_point, float p_z_depth) const } void Camera3D::set_environment(const Ref<Environment> &p_environment) { - environment = p_environment; if (environment.is_valid()) RS::get_singleton()->camera_set_environment(camera, environment->get_rid()); @@ -424,12 +396,10 @@ void Camera3D::set_environment(const Ref<Environment> &p_environment) { } Ref<Environment> Camera3D::get_environment() const { - return environment; } void Camera3D::set_effects(const Ref<CameraEffects> &p_effects) { - effects = p_effects; if (effects.is_valid()) RS::get_singleton()->camera_set_camera_effects(camera, effects->get_rid()); @@ -439,7 +409,6 @@ void Camera3D::set_effects(const Ref<CameraEffects> &p_effects) { } Ref<CameraEffects> Camera3D::get_effects() const { - return effects; } @@ -451,12 +420,10 @@ void Camera3D::set_keep_aspect_mode(KeepAspect p_aspect) { } Camera3D::KeepAspect Camera3D::get_keep_aspect_mode() const { - return keep_aspect; } void Camera3D::set_doppler_tracking(DopplerTracking p_tracking) { - if (doppler_tracking == p_tracking) return; @@ -475,7 +442,6 @@ Camera3D::DopplerTracking Camera3D::get_doppler_tracking() const { } void Camera3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("project_ray_normal", "screen_point"), &Camera3D::project_ray_normal); ClassDB::bind_method(D_METHOD("project_local_ray_normal", "screen_point"), &Camera3D::project_local_ray_normal); ClassDB::bind_method(D_METHOD("project_ray_origin", "screen_point"), &Camera3D::project_ray_origin); @@ -552,17 +518,14 @@ void Camera3D::_bind_methods() { } float Camera3D::get_fov() const { - return fov; } float Camera3D::get_size() const { - return size; } float Camera3D::get_znear() const { - return near; } @@ -571,12 +534,10 @@ Vector2 Camera3D::get_frustum_offset() const { } float Camera3D::get_zfar() const { - return far; } Camera3D::Projection Camera3D::get_projection() const { - return mode; } @@ -616,7 +577,6 @@ void Camera3D::set_cull_mask(uint32_t p_layers) { } uint32_t Camera3D::get_cull_mask() const { - return layers; } @@ -635,7 +595,6 @@ bool Camera3D::get_cull_mask_bit(int p_layer) const { } Vector<Plane> Camera3D::get_frustum() const { - ERR_FAIL_COND_V(!is_inside_world(), Vector<Plane>()); Size2 viewport_size = get_viewport()->get_visible_rect().size; @@ -649,13 +608,11 @@ Vector<Plane> Camera3D::get_frustum() const { } void Camera3D::set_v_offset(float p_offset) { - v_offset = p_offset; _update_camera(); } float Camera3D::get_v_offset() const { - return v_offset; } @@ -665,12 +622,10 @@ void Camera3D::set_h_offset(float p_offset) { } float Camera3D::get_h_offset() const { - return h_offset; } Vector3 Camera3D::get_doppler_tracked_velocity() const { - if (doppler_tracking != DOPPLER_TRACKING_DISABLED) { return velocity_tracker->get_tracked_linear_velocity(); } else { @@ -678,7 +633,6 @@ Vector3 Camera3D::get_doppler_tracked_velocity() const { } } Camera3D::Camera3D() { - camera = RenderingServer::get_singleton()->camera_create(); size = 1; fov = 0; @@ -703,7 +657,6 @@ Camera3D::Camera3D() { } Camera3D::~Camera3D() { - RenderingServer::get_singleton()->free(camera); } @@ -716,7 +669,6 @@ float ClippedCamera3D::get_margin() const { return margin; } void ClippedCamera3D::set_process_mode(ProcessMode p_mode) { - if (process_mode == p_mode) { return; } @@ -729,7 +681,6 @@ ClippedCamera3D::ProcessMode ClippedCamera3D::get_process_mode() const { } Transform ClippedCamera3D::get_camera_transform() const { - Transform t = Camera3D::get_camera_transform(); t.origin += -t.basis.get_axis(Vector3::AXIS_Z).normalized() * clip_offset; return t; @@ -737,7 +688,6 @@ Transform ClippedCamera3D::get_camera_transform() const { void ClippedCamera3D::_notification(int p_what) { if (p_what == NOTIFICATION_INTERNAL_PROCESS || p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { - Node3D *parent = Object::cast_to<Node3D>(get_parent()); if (!parent) { return; @@ -797,17 +747,14 @@ void ClippedCamera3D::_notification(int p_what) { } void ClippedCamera3D::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; } uint32_t ClippedCamera3D::get_collision_mask() const { - return collision_mask; } void ClippedCamera3D::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -817,17 +764,14 @@ void ClippedCamera3D::set_collision_mask_bit(int p_bit, bool p_value) { } bool ClippedCamera3D::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } void ClippedCamera3D::add_exception_rid(const RID &p_rid) { - exclude.insert(p_rid); } void ClippedCamera3D::add_exception(const Object *p_object) { - ERR_FAIL_NULL(p_object); const CollisionObject3D *co = Object::cast_to<CollisionObject3D>(p_object); if (!co) @@ -836,12 +780,10 @@ void ClippedCamera3D::add_exception(const Object *p_object) { } void ClippedCamera3D::remove_exception_rid(const RID &p_rid) { - exclude.erase(p_rid); } void ClippedCamera3D::remove_exception(const Object *p_object) { - ERR_FAIL_NULL(p_object); const CollisionObject3D *co = Object::cast_to<CollisionObject3D>(p_object); if (!co) @@ -850,37 +792,30 @@ void ClippedCamera3D::remove_exception(const Object *p_object) { } void ClippedCamera3D::clear_exceptions() { - exclude.clear(); } float ClippedCamera3D::get_clip_offset() const { - return clip_offset; } void ClippedCamera3D::set_clip_to_areas(bool p_clip) { - clip_to_areas = p_clip; } bool ClippedCamera3D::is_clip_to_areas_enabled() const { - return clip_to_areas; } void ClippedCamera3D::set_clip_to_bodies(bool p_clip) { - clip_to_bodies = p_clip; } bool ClippedCamera3D::is_clip_to_bodies_enabled() const { - return clip_to_bodies; } void ClippedCamera3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_margin", "margin"), &ClippedCamera3D::set_margin); ClassDB::bind_method(D_METHOD("get_margin"), &ClippedCamera3D::get_margin); diff --git a/scene/3d/camera_3d.h b/scene/3d/camera_3d.h index 9a005226cb..138b1b8a7a 100644 --- a/scene/3d/camera_3d.h +++ b/scene/3d/camera_3d.h @@ -37,7 +37,6 @@ #include "scene/resources/environment.h" class Camera3D : public Node3D { - GDCLASS(Camera3D, Node3D); public: @@ -184,7 +183,6 @@ VARIANT_ENUM_CAST(Camera3D::KeepAspect); VARIANT_ENUM_CAST(Camera3D::DopplerTracking); class ClippedCamera3D : public Camera3D { - GDCLASS(ClippedCamera3D, Camera3D); public: diff --git a/scene/3d/collision_object_3d.cpp b/scene/3d/collision_object_3d.cpp index 5d050e32b0..9aaa182a13 100644 --- a/scene/3d/collision_object_3d.cpp +++ b/scene/3d/collision_object_3d.cpp @@ -34,11 +34,8 @@ #include "servers/physics_server_3d.h" void CollisionObject3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_WORLD: { - if (area) PhysicsServer3D::get_singleton()->area_set_transform(rid, get_global_transform()); else @@ -55,7 +52,6 @@ void CollisionObject3D::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - if (area) PhysicsServer3D::get_singleton()->area_set_transform(rid, get_global_transform()); else @@ -63,12 +59,10 @@ void CollisionObject3D::_notification(int p_what) { } break; case NOTIFICATION_VISIBILITY_CHANGED: { - _update_pickable(); } break; case NOTIFICATION_EXIT_WORLD: { - if (area) { PhysicsServer3D::get_singleton()->area_set_space(rid, RID()); } else @@ -79,7 +73,6 @@ void CollisionObject3D::_notification(int p_what) { } void CollisionObject3D::_input_event(Node *p_camera, const Ref<InputEvent> &p_input_event, const Vector3 &p_pos, const Vector3 &p_normal, int p_shape) { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_input_event, p_camera, p_input_event, p_pos, p_normal, p_shape); } @@ -87,7 +80,6 @@ void CollisionObject3D::_input_event(Node *p_camera, const Ref<InputEvent> &p_in } void CollisionObject3D::_mouse_enter() { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_mouse_enter); } @@ -95,7 +87,6 @@ void CollisionObject3D::_mouse_enter() { } void CollisionObject3D::_mouse_exit() { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_mouse_exit); } @@ -114,18 +105,15 @@ void CollisionObject3D::_update_pickable() { } void CollisionObject3D::set_ray_pickable(bool p_ray_pickable) { - ray_pickable = p_ray_pickable; _update_pickable(); } bool CollisionObject3D::is_ray_pickable() const { - return ray_pickable; } void CollisionObject3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_ray_pickable", "ray_pickable"), &CollisionObject3D::set_ray_pickable); ClassDB::bind_method(D_METHOD("is_ray_pickable"), &CollisionObject3D::is_ray_pickable); ClassDB::bind_method(D_METHOD("set_capture_input_on_drag", "enable"), &CollisionObject3D::set_capture_input_on_drag); @@ -158,7 +146,6 @@ void CollisionObject3D::_bind_methods() { } uint32_t CollisionObject3D::create_shape_owner(Object *p_owner) { - ShapeData sd; uint32_t id; @@ -176,7 +163,6 @@ uint32_t CollisionObject3D::create_shape_owner(Object *p_owner) { } void CollisionObject3D::remove_shape_owner(uint32_t owner) { - ERR_FAIL_COND(!shapes.has(owner)); shape_owner_clear_shapes(owner); @@ -199,21 +185,18 @@ void CollisionObject3D::shape_owner_set_disabled(uint32_t p_owner, bool p_disabl } bool CollisionObject3D::is_shape_owner_disabled(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), false); return shapes[p_owner].disabled; } void CollisionObject3D::get_shape_owners(List<uint32_t> *r_owners) { - for (Map<uint32_t, ShapeData>::Element *E = shapes.front(); E; E = E->next()) { r_owners->push_back(E->key()); } } Array CollisionObject3D::_get_shape_owners() { - Array ret; for (Map<uint32_t, ShapeData>::Element *E = shapes.front(); E; E = E->next()) { ret.push_back(E->key()); @@ -223,7 +206,6 @@ Array CollisionObject3D::_get_shape_owners() { } void CollisionObject3D::shape_owner_set_transform(uint32_t p_owner, const Transform &p_transform) { - ERR_FAIL_COND(!shapes.has(p_owner)); ShapeData &sd = shapes[p_owner]; @@ -237,21 +219,18 @@ void CollisionObject3D::shape_owner_set_transform(uint32_t p_owner, const Transf } } Transform CollisionObject3D::shape_owner_get_transform(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), Transform()); return shapes[p_owner].xform; } Object *CollisionObject3D::shape_owner_get_owner(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), nullptr); return shapes[p_owner].owner; } void CollisionObject3D::shape_owner_add_shape(uint32_t p_owner, const Ref<Shape3D> &p_shape) { - ERR_FAIL_COND(!shapes.has(p_owner)); ERR_FAIL_COND(p_shape.is_null()); @@ -269,20 +248,17 @@ void CollisionObject3D::shape_owner_add_shape(uint32_t p_owner, const Ref<Shape3 total_subshapes++; } int CollisionObject3D::shape_owner_get_shape_count(uint32_t p_owner) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), 0); return shapes[p_owner].shapes.size(); } Ref<Shape3D> CollisionObject3D::shape_owner_get_shape(uint32_t p_owner, int p_shape) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), Ref<Shape3D>()); ERR_FAIL_INDEX_V(p_shape, shapes[p_owner].shapes.size(), Ref<Shape3D>()); return shapes[p_owner].shapes[p_shape].shape; } int CollisionObject3D::shape_owner_get_shape_index(uint32_t p_owner, int p_shape) const { - ERR_FAIL_COND_V(!shapes.has(p_owner), -1); ERR_FAIL_INDEX_V(p_shape, shapes[p_owner].shapes.size(), -1); @@ -290,7 +266,6 @@ int CollisionObject3D::shape_owner_get_shape_index(uint32_t p_owner, int p_shape } void CollisionObject3D::shape_owner_remove_shape(uint32_t p_owner, int p_shape) { - ERR_FAIL_COND(!shapes.has(p_owner)); ERR_FAIL_INDEX(p_shape, shapes[p_owner].shapes.size()); @@ -315,7 +290,6 @@ void CollisionObject3D::shape_owner_remove_shape(uint32_t p_owner, int p_shape) } void CollisionObject3D::shape_owner_clear_shapes(uint32_t p_owner) { - ERR_FAIL_COND(!shapes.has(p_owner)); while (shape_owner_get_shape_count(p_owner) > 0) { @@ -324,7 +298,6 @@ void CollisionObject3D::shape_owner_clear_shapes(uint32_t p_owner) { } uint32_t CollisionObject3D::shape_find_owner(int p_shape_index) const { - ERR_FAIL_INDEX_V(p_shape_index, total_subshapes, 0); for (const Map<uint32_t, ShapeData>::Element *E = shapes.front(); E; E = E->next()) { @@ -340,7 +313,6 @@ uint32_t CollisionObject3D::shape_find_owner(int p_shape_index) const { } CollisionObject3D::CollisionObject3D(RID p_rid, bool p_area) { - rid = p_rid; area = p_area; capture_input_on_drag = false; @@ -357,17 +329,14 @@ CollisionObject3D::CollisionObject3D(RID p_rid, bool p_area) { } void CollisionObject3D::set_capture_input_on_drag(bool p_capture) { - capture_input_on_drag = p_capture; } bool CollisionObject3D::get_capture_input_on_drag() const { - return capture_input_on_drag; } String CollisionObject3D::get_configuration_warning() const { - String warning = Node3D::get_configuration_warning(); if (shapes.empty()) { @@ -381,7 +350,6 @@ String CollisionObject3D::get_configuration_warning() const { } CollisionObject3D::CollisionObject3D() { - capture_input_on_drag = false; ray_pickable = true; set_notify_transform(true); @@ -391,6 +359,5 @@ CollisionObject3D::CollisionObject3D() { } CollisionObject3D::~CollisionObject3D() { - PhysicsServer3D::get_singleton()->free(rid); } diff --git a/scene/3d/collision_object_3d.h b/scene/3d/collision_object_3d.h index 67d3aed3c8..8bcbef0e98 100644 --- a/scene/3d/collision_object_3d.h +++ b/scene/3d/collision_object_3d.h @@ -35,7 +35,6 @@ #include "scene/resources/shape_3d.h" class CollisionObject3D : public Node3D { - GDCLASS(CollisionObject3D, Node3D); bool area; @@ -43,7 +42,6 @@ class CollisionObject3D : public Node3D { RID rid; struct ShapeData { - Object *owner; Transform xform; struct ShapeBase { diff --git a/scene/3d/collision_polygon_3d.cpp b/scene/3d/collision_polygon_3d.cpp index 66bd903eeb..bf123fa417 100644 --- a/scene/3d/collision_polygon_3d.cpp +++ b/scene/3d/collision_polygon_3d.cpp @@ -35,7 +35,6 @@ #include "scene/resources/convex_polygon_shape_3d.h" void CollisionPolygon3D::_build_polygon() { - if (!parent) return; @@ -60,7 +59,6 @@ void CollisionPolygon3D::_build_polygon() { Vector3 *w = cp.ptrw(); int idx = 0; for (int j = 0; j < cs; j++) { - Vector2 d = decomp[i][j]; w[idx++] = Vector3(d.x, d.y, depth * 0.5); w[idx++] = Vector3(d.x, d.y, -depth * 0.5); @@ -74,7 +72,6 @@ void CollisionPolygon3D::_build_polygon() { } void CollisionPolygon3D::_update_in_shape_owner(bool p_xform_only) { - parent->shape_owner_set_transform(owner_id, get_transform()); if (p_xform_only) return; @@ -82,9 +79,7 @@ void CollisionPolygon3D::_update_in_shape_owner(bool p_xform_only) { } void CollisionPolygon3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_PARENTED: { parent = Object::cast_to<CollisionObject3D>(get_parent()); if (parent) { @@ -94,14 +89,12 @@ void CollisionPolygon3D::_notification(int p_what) { } } break; case NOTIFICATION_ENTER_TREE: { - if (parent) { _update_in_shape_owner(); } } break; case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: { - if (parent) { _update_in_shape_owner(true); } @@ -118,7 +111,6 @@ void CollisionPolygon3D::_notification(int p_what) { } void CollisionPolygon3D::set_polygon(const Vector<Point2> &p_polygon) { - polygon = p_polygon; if (parent) { _build_polygon(); @@ -128,24 +120,20 @@ void CollisionPolygon3D::set_polygon(const Vector<Point2> &p_polygon) { } Vector<Point2> CollisionPolygon3D::get_polygon() const { - return polygon; } AABB CollisionPolygon3D::get_item_rect() const { - return aabb; } void CollisionPolygon3D::set_depth(float p_depth) { - depth = p_depth; _build_polygon(); update_gizmo(); } float CollisionPolygon3D::get_depth() const { - return depth; } @@ -163,7 +151,6 @@ bool CollisionPolygon3D::is_disabled() const { } String CollisionPolygon3D::get_configuration_warning() const { - if (!Object::cast_to<CollisionObject3D>(get_parent())) { return TTR("CollisionPolygon3D only serves to provide a collision shape to a CollisionObject3D derived node. Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, KinematicBody3D, etc. to give them a shape."); } @@ -179,7 +166,6 @@ bool CollisionPolygon3D::_is_editable_3d_polygon() const { return true; } void CollisionPolygon3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_depth", "depth"), &CollisionPolygon3D::set_depth); ClassDB::bind_method(D_METHOD("get_depth"), &CollisionPolygon3D::get_depth); @@ -197,7 +183,6 @@ void CollisionPolygon3D::_bind_methods() { } CollisionPolygon3D::CollisionPolygon3D() { - aabb = AABB(Vector3(-1, -1, -1), Vector3(2, 2, 2)); depth = 1.0; set_notify_local_transform(true); diff --git a/scene/3d/collision_polygon_3d.h b/scene/3d/collision_polygon_3d.h index 256aee3d7e..0cd9aee111 100644 --- a/scene/3d/collision_polygon_3d.h +++ b/scene/3d/collision_polygon_3d.h @@ -36,7 +36,6 @@ class CollisionObject3D; class CollisionPolygon3D : public Node3D { - GDCLASS(CollisionPolygon3D, Node3D); protected: diff --git a/scene/3d/collision_shape_3d.cpp b/scene/3d/collision_shape_3d.cpp index a66e84ac3c..711dfd6fb9 100644 --- a/scene/3d/collision_shape_3d.cpp +++ b/scene/3d/collision_shape_3d.cpp @@ -45,20 +45,16 @@ //TODO: Implement CylinderShape and HeightMapShape? void CollisionShape3D::make_convex_from_brothers() { - Node *p = get_parent(); if (!p) return; for (int i = 0; i < p->get_child_count(); i++) { - Node *n = p->get_child(i); MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(n); if (mi) { - Ref<Mesh> m = mi->get_mesh(); if (m.is_valid()) { - Ref<Shape3D> s = m->create_convex_shape(); set_shape(s); } @@ -74,9 +70,7 @@ void CollisionShape3D::_update_in_shape_owner(bool p_xform_only) { } void CollisionShape3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_PARENTED: { parent = Object::cast_to<CollisionObject3D>(get_parent()); if (parent) { @@ -111,12 +105,10 @@ void CollisionShape3D::_notification(int p_what) { } void CollisionShape3D::resource_changed(RES res) { - update_gizmo(); } String CollisionShape3D::get_configuration_warning() const { - if (!Object::cast_to<CollisionObject3D>(get_parent())) { return TTR("CollisionShape3D only serves to provide a collision shape to a CollisionObject3D derived node. Please only use it as a child of Area3D, StaticBody3D, RigidBody3D, KinematicBody3D, etc. to give them a shape."); } @@ -137,7 +129,6 @@ String CollisionShape3D::get_configuration_warning() const { } void CollisionShape3D::_bind_methods() { - //not sure if this should do anything ClassDB::bind_method(D_METHOD("resource_changed", "resource"), &CollisionShape3D::resource_changed); ClassDB::bind_method(D_METHOD("set_shape", "shape"), &CollisionShape3D::set_shape); @@ -154,7 +145,6 @@ void CollisionShape3D::_bind_methods() { } void CollisionShape3D::set_shape(const Ref<Shape3D> &p_shape) { - if (!shape.is_null()) { shape->unregister_owner(this); shape->disconnect("changed", callable_mp(this, &CollisionShape3D::_shape_changed)); @@ -178,12 +168,10 @@ void CollisionShape3D::set_shape(const Ref<Shape3D> &p_shape) { } Ref<Shape3D> CollisionShape3D::get_shape() const { - return shape; } void CollisionShape3D::set_disabled(bool p_disabled) { - disabled = p_disabled; update_gizmo(); if (parent) { @@ -192,12 +180,10 @@ void CollisionShape3D::set_disabled(bool p_disabled) { } bool CollisionShape3D::is_disabled() const { - return disabled; } CollisionShape3D::CollisionShape3D() { - //indicator = RenderingServer::get_singleton()->mesh_create(); disabled = false; debug_shape = nullptr; diff --git a/scene/3d/collision_shape_3d.h b/scene/3d/collision_shape_3d.h index 8515d292af..4ed2f4007b 100644 --- a/scene/3d/collision_shape_3d.h +++ b/scene/3d/collision_shape_3d.h @@ -35,7 +35,6 @@ #include "scene/resources/shape_3d.h" class CollisionObject3D; class CollisionShape3D : public Node3D { - GDCLASS(CollisionShape3D, Node3D); OBJ_CATEGORY("3D Physics Nodes"); diff --git a/scene/3d/cpu_particles_3d.cpp b/scene/3d/cpu_particles_3d.cpp index 414dc6f97b..631ab4e0f7 100644 --- a/scene/3d/cpu_particles_3d.cpp +++ b/scene/3d/cpu_particles_3d.cpp @@ -36,16 +36,13 @@ #include "servers/rendering_server.h" AABB CPUParticles3D::get_aabb() const { - return AABB(); } Vector<Face3> CPUParticles3D::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } void CPUParticles3D::set_emitting(bool p_emitting) { - if (emitting == p_emitting) return; @@ -60,7 +57,6 @@ void CPUParticles3D::set_emitting(bool p_emitting) { } void CPUParticles3D::set_amount(int p_amount) { - ERR_FAIL_COND_MSG(p_amount < 1, "Amount of particles must be greater than 0."); particles.resize(p_amount); @@ -79,97 +75,76 @@ void CPUParticles3D::set_amount(int p_amount) { particle_order.resize(p_amount); } void CPUParticles3D::set_lifetime(float p_lifetime) { - ERR_FAIL_COND_MSG(p_lifetime <= 0, "Particles lifetime must be greater than 0."); lifetime = p_lifetime; } void CPUParticles3D::set_one_shot(bool p_one_shot) { - one_shot = p_one_shot; } void CPUParticles3D::set_pre_process_time(float p_time) { - pre_process_time = p_time; } void CPUParticles3D::set_explosiveness_ratio(float p_ratio) { - explosiveness_ratio = p_ratio; } void CPUParticles3D::set_randomness_ratio(float p_ratio) { - randomness_ratio = p_ratio; } void CPUParticles3D::set_lifetime_randomness(float p_random) { - lifetime_randomness = p_random; } void CPUParticles3D::set_use_local_coordinates(bool p_enable) { - local_coords = p_enable; } void CPUParticles3D::set_speed_scale(float p_scale) { - speed_scale = p_scale; } bool CPUParticles3D::is_emitting() const { - return emitting; } int CPUParticles3D::get_amount() const { - return particles.size(); } float CPUParticles3D::get_lifetime() const { - return lifetime; } bool CPUParticles3D::get_one_shot() const { - return one_shot; } float CPUParticles3D::get_pre_process_time() const { - return pre_process_time; } float CPUParticles3D::get_explosiveness_ratio() const { - return explosiveness_ratio; } float CPUParticles3D::get_randomness_ratio() const { - return randomness_ratio; } float CPUParticles3D::get_lifetime_randomness() const { - return lifetime_randomness; } bool CPUParticles3D::get_use_local_coordinates() const { - return local_coords; } float CPUParticles3D::get_speed_scale() const { - return speed_scale; } void CPUParticles3D::set_draw_order(DrawOrder p_order) { - draw_order = p_order; } CPUParticles3D::DrawOrder CPUParticles3D::get_draw_order() const { - return draw_order; } void CPUParticles3D::set_mesh(const Ref<Mesh> &p_mesh) { - mesh = p_mesh; if (mesh.is_valid()) { RS::get_singleton()->multimesh_set_mesh(multimesh, mesh->get_rid()); @@ -179,7 +154,6 @@ void CPUParticles3D::set_mesh(const Ref<Mesh> &p_mesh) { } Ref<Mesh> CPUParticles3D::get_mesh() const { - return mesh; } @@ -200,7 +174,6 @@ bool CPUParticles3D::get_fractional_delta() const { } String CPUParticles3D::get_configuration_warning() const { - String warnings; bool mesh_found = false; @@ -236,7 +209,6 @@ String CPUParticles3D::get_configuration_warning() const { } void CPUParticles3D::restart() { - time = 0; inactive_time = 0; frame_remainder = 0; @@ -256,62 +228,51 @@ void CPUParticles3D::restart() { } void CPUParticles3D::set_direction(Vector3 p_direction) { - direction = p_direction; } Vector3 CPUParticles3D::get_direction() const { - return direction; } void CPUParticles3D::set_spread(float p_spread) { - spread = p_spread; } float CPUParticles3D::get_spread() const { - return spread; } void CPUParticles3D::set_flatness(float p_flatness) { - flatness = p_flatness; } float CPUParticles3D::get_flatness() const { - return flatness; } void CPUParticles3D::set_param(Parameter p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); parameters[p_param] = p_value; } float CPUParticles3D::get_param(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return parameters[p_param]; } void CPUParticles3D::set_param_randomness(Parameter p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); randomness[p_param] = p_value; } float CPUParticles3D::get_param_randomness(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return randomness[p_param]; } static void _adjust_curve_range(const Ref<Curve> &p_curve, float p_min, float p_max) { - Ref<Curve> curve = p_curve; if (!curve.is_valid()) return; @@ -320,7 +281,6 @@ static void _adjust_curve_range(const Ref<Curve> &p_curve, float p_min, float p_ } void CPUParticles3D::set_param_curve(Parameter p_param, const Ref<Curve> &p_curve) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); curve_parameters[p_param] = p_curve; @@ -351,7 +311,6 @@ void CPUParticles3D::set_param_curve(Parameter p_param, const Ref<Curve> &p_curv _adjust_curve_range(p_curve, -360, 360); } break; case PARAM_SCALE: { - } break; case PARAM_HUE_VARIATION: { _adjust_curve_range(p_curve, -1, 1); @@ -366,29 +325,24 @@ void CPUParticles3D::set_param_curve(Parameter p_param, const Ref<Curve> &p_curv } } Ref<Curve> CPUParticles3D::get_param_curve(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, Ref<Curve>()); return curve_parameters[p_param]; } void CPUParticles3D::set_color(const Color &p_color) { - color = p_color; } Color CPUParticles3D::get_color() const { - return color; } void CPUParticles3D::set_color_ramp(const Ref<Gradient> &p_ramp) { - color_ramp = p_ramp; } Ref<Gradient> CPUParticles3D::get_color_ramp() const { - return color_ramp; } @@ -411,49 +365,39 @@ void CPUParticles3D::set_emission_shape(EmissionShape p_shape) { } void CPUParticles3D::set_emission_sphere_radius(float p_radius) { - emission_sphere_radius = p_radius; } void CPUParticles3D::set_emission_box_extents(Vector3 p_extents) { - emission_box_extents = p_extents; } void CPUParticles3D::set_emission_points(const Vector<Vector3> &p_points) { - emission_points = p_points; } void CPUParticles3D::set_emission_normals(const Vector<Vector3> &p_normals) { - emission_normals = p_normals; } void CPUParticles3D::set_emission_colors(const Vector<Color> &p_colors) { - emission_colors = p_colors; } float CPUParticles3D::get_emission_sphere_radius() const { - return emission_sphere_radius; } Vector3 CPUParticles3D::get_emission_box_extents() const { - return emission_box_extents; } Vector<Vector3> CPUParticles3D::get_emission_points() const { - return emission_points; } Vector<Vector3> CPUParticles3D::get_emission_normals() const { - return emission_normals; } Vector<Color> CPUParticles3D::get_emission_colors() const { - return emission_colors; } @@ -461,17 +405,14 @@ CPUParticles3D::EmissionShape CPUParticles3D::get_emission_shape() const { return emission_shape; } void CPUParticles3D::set_gravity(const Vector3 &p_gravity) { - gravity = p_gravity; } Vector3 CPUParticles3D::get_gravity() const { - return gravity; } void CPUParticles3D::_validate_property(PropertyInfo &property) const { - if (property.name == "color" && color_ramp.is_valid()) { property.usage = 0; } @@ -498,7 +439,6 @@ void CPUParticles3D::_validate_property(PropertyInfo &property) const { } static uint32_t idhash(uint32_t x) { - x = ((x >> uint32_t(16)) ^ x) * uint32_t(0x45d9f3b); x = ((x >> uint32_t(16)) ^ x) * uint32_t(0x45d9f3b); x = (x >> uint32_t(16)) ^ x; @@ -519,7 +459,6 @@ static float rand_from_seed(uint32_t &seed) { } void CPUParticles3D::_update_internal() { - if (particles.size() == 0 || !is_visible_in_tree()) { _set_redraw(false); return; @@ -547,7 +486,6 @@ void CPUParticles3D::_update_internal() { bool processed = false; if (time == 0 && pre_process_time > 0.0) { - float frame_time; if (fixed_fps > 0) frame_time = 1.0 / fixed_fps; @@ -594,7 +532,6 @@ void CPUParticles3D::_update_internal() { } void CPUParticles3D::_particles_process(float p_delta) { - p_delta *= speed_scale; int pcount = particles.size(); @@ -623,7 +560,6 @@ void CPUParticles3D::_particles_process(float p_delta) { float system_phase = time / lifetime; for (int i = 0; i < pcount; i++) { - Particle &p = parray[i]; if (!emitting && !p.active) @@ -681,7 +617,6 @@ void CPUParticles3D::_particles_process(float p_delta) { } if (restart) { - if (!emitting) { p.active = false; continue; @@ -750,7 +685,6 @@ void CPUParticles3D::_particles_process(float p_delta) { } break; case EMISSION_SHAPE_POINTS: case EMISSION_SHAPE_DIRECTED_POINTS: { - int pc = emission_points.size(); if (pc == 0) break; @@ -805,7 +739,6 @@ void CPUParticles3D::_particles_process(float p_delta) { } else if (p.time > p.lifetime) { p.active = false; } else { - uint32_t alt_seed = p.seed; p.time += local_delta; @@ -875,7 +808,6 @@ void CPUParticles3D::_particles_process(float p_delta) { force += diff.length() > 0.0 ? diff.normalized() * (parameters[PARAM_RADIAL_ACCEL] + tex_radial_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_RADIAL_ACCEL]) : Vector3(); //apply tangential acceleration; if (flags[FLAG_DISABLE_Z]) { - Vector2 yx = Vector2(diff.y, diff.x); Vector2 yx2 = (yx * Vector2(-1.0, 1.0)).normalized(); force += yx.length() > 0.0 ? Vector3(yx2.x, yx2.y, 0.0) * ((parameters[PARAM_TANGENTIAL_ACCEL] + tex_tangential_accel) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_TANGENTIAL_ACCEL])) : Vector3(); @@ -903,7 +835,6 @@ void CPUParticles3D::_particles_process(float p_delta) { p.velocity = p.velocity.normalized() * tex_linear_velocity; } if (parameters[PARAM_DAMPING] + tex_damping > 0.0) { - float v = p.velocity.length(); float damp = (parameters[PARAM_DAMPING] + tex_damping) * Math::lerp(1.0f, rand_from_seed(alt_seed), randomness[PARAM_DAMPING]); v -= damp * local_delta; @@ -960,7 +891,6 @@ void CPUParticles3D::_particles_process(float p_delta) { p.color *= p.base_color; if (flags[FLAG_DISABLE_Z]) { - if (flags[FLAG_ALIGN_Y_TO_VELOCITY]) { if (p.velocity.length() > 0.0) { p.transform.basis.set_axis(1, p.velocity.normalized()); @@ -1047,7 +977,6 @@ void CPUParticles3D::_update_particle_data_buffer() { Vector3 dir = c->get_global_transform().basis.get_axis(2); //far away to close if (local_coords) { - // will look different from Particles in editor as this is based on the camera in the scenetree // and not the editor camera dir = inv_emission_transform.xform(dir).normalized(); @@ -1064,7 +993,6 @@ void CPUParticles3D::_update_particle_data_buffer() { } for (int i = 0; i < pc; i++) { - int idx = order ? order[i] : i; Transform t = r[idx].transform; @@ -1131,7 +1059,6 @@ void CPUParticles3D::_set_redraw(bool p_redraw) { } void CPUParticles3D::_update_render_thread() { - MutexLock lock(update_mutex); if (can_update) { @@ -1141,7 +1068,6 @@ void CPUParticles3D::_update_render_thread() { } void CPUParticles3D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { set_process_internal(emitting); @@ -1165,11 +1091,9 @@ void CPUParticles3D::_notification(int p_what) { } if (p_what == NOTIFICATION_TRANSFORM_CHANGED) { - inv_emission_transform = get_global_transform().affine_inverse(); if (!local_coords) { - int pc = particles.size(); float *w = particle_data.ptrw(); @@ -1177,7 +1101,6 @@ void CPUParticles3D::_notification(int p_what) { float *ptr = w; for (int i = 0; i < pc; i++) { - Transform t = inv_emission_transform * r[i].transform; if (r[i].active) { @@ -1206,7 +1129,6 @@ void CPUParticles3D::_notification(int p_what) { } void CPUParticles3D::convert_from_particles(Node *p_particles) { - GPUParticles3D *particles = Object::cast_to<GPUParticles3D>(p_particles); ERR_FAIL_COND_MSG(!particles, "Only GPUParticles3D nodes can be converted to CPUParticles3D."); @@ -1276,7 +1198,6 @@ void CPUParticles3D::convert_from_particles(Node *p_particles) { } void CPUParticles3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_emitting", "emitting"), &CPUParticles3D::set_emitting); ClassDB::bind_method(D_METHOD("set_amount", "amount"), &CPUParticles3D::set_amount); ClassDB::bind_method(D_METHOD("set_lifetime", "secs"), &CPUParticles3D::set_lifetime); @@ -1481,7 +1402,6 @@ void CPUParticles3D::_bind_methods() { } CPUParticles3D::CPUParticles3D() { - time = 0; inactive_time = 0; frame_remainder = 0; diff --git a/scene/3d/cpu_particles_3d.h b/scene/3d/cpu_particles_3d.h index ffe0ecc9a9..2afb6846c0 100644 --- a/scene/3d/cpu_particles_3d.h +++ b/scene/3d/cpu_particles_3d.h @@ -122,7 +122,6 @@ private: const Particle *particles; Vector3 axis; bool operator()(int p_a, int p_b) const { - return axis.dot(particles[p_a].transform.origin) < axis.dot(particles[p_b].transform.origin); } }; diff --git a/scene/3d/decal.cpp b/scene/3d/decal.cpp index 4c824aedc4..b97859f44a 100644 --- a/scene/3d/decal.cpp +++ b/scene/3d/decal.cpp @@ -134,19 +134,16 @@ uint32_t Decal::get_cull_mask() const { } AABB Decal::get_aabb() const { - AABB aabb; aabb.position = -extents; aabb.size = extents * 2.0; return aabb; } Vector<Face3> Decal::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } void Decal::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_extents", "extents"), &Decal::set_extents); ClassDB::bind_method(D_METHOD("get_extents"), &Decal::get_extents); @@ -212,7 +209,6 @@ void Decal::_bind_methods() { } Decal::Decal() { - extents = Vector3(1, 1, 1); emission_energy = 1.0; modulate = Color(1, 1, 1, 1); @@ -230,6 +226,5 @@ Decal::Decal() { } Decal::~Decal() { - RS::get_singleton()->free(decal); } diff --git a/scene/3d/gi_probe.cpp b/scene/3d/gi_probe.cpp index 65a330ddc0..0ba1b3d984 100644 --- a/scene/3d/gi_probe.cpp +++ b/scene/3d/gi_probe.cpp @@ -212,7 +212,6 @@ bool GIProbeData::is_using_two_bounces() const { } RID GIProbeData::get_rid() const { - return probe; } @@ -283,7 +282,6 @@ void GIProbeData::_bind_methods() { } GIProbeData::GIProbeData() { - ao = 0.0; ao_size = 0.5; dynamic_range = 4; @@ -299,7 +297,6 @@ GIProbeData::GIProbeData() { } GIProbeData::~GIProbeData() { - RS::get_singleton()->free(probe); } @@ -307,7 +304,6 @@ GIProbeData::~GIProbeData() { ////////////////////// void GIProbe::set_probe_data(const Ref<GIProbeData> &p_data) { - if (p_data.is_valid()) { RS::get_singleton()->instance_set_base(get_instance(), p_data->get_rid()); } else { @@ -318,41 +314,34 @@ void GIProbe::set_probe_data(const Ref<GIProbeData> &p_data) { } Ref<GIProbeData> GIProbe::get_probe_data() const { - return probe_data; } void GIProbe::set_subdiv(Subdiv p_subdiv) { - ERR_FAIL_INDEX(p_subdiv, SUBDIV_MAX); subdiv = p_subdiv; update_gizmo(); } GIProbe::Subdiv GIProbe::get_subdiv() const { - return subdiv; } void GIProbe::set_extents(const Vector3 &p_extents) { - extents = p_extents; update_gizmo(); _change_notify("extents"); } Vector3 GIProbe::get_extents() const { - return extents; } void GIProbe::_find_meshes(Node *p_at_node, List<PlotMesh> &plot_meshes) { - MeshInstance3D *mi = Object::cast_to<MeshInstance3D>(p_at_node); if (mi && mi->get_gi_mode() == GeometryInstance3D::GI_MODE_BAKED && mi->is_visible_in_tree()) { Ref<Mesh> mesh = mi->get_mesh(); if (mesh.is_valid()) { - AABB aabb = mesh->get_aabb(); Transform xf = get_global_transform().affine_inverse() * mi->get_global_transform(); @@ -372,12 +361,9 @@ void GIProbe::_find_meshes(Node *p_at_node, List<PlotMesh> &plot_meshes) { Node3D *s = Object::cast_to<Node3D>(p_at_node); if (s) { - if (s->is_visible_in_tree()) { - Array meshes = p_at_node->call("get_meshes"); for (int i = 0; i < meshes.size(); i += 2) { - Transform mxf = meshes[i]; Ref<Mesh> mesh = meshes[i + 1]; if (!mesh.is_valid()) @@ -416,7 +402,6 @@ Vector3i GIProbe::get_estimated_cell_size() const { axis_cell_size[longest_axis] = 1 << cell_subdiv; for (int i = 0; i < 3; i++) { - if (i == longest_axis) continue; @@ -433,7 +418,6 @@ Vector3i GIProbe::get_estimated_cell_size() const { return Vector3i(axis_cell_size[0], axis_cell_size[1], axis_cell_size[2]); } void GIProbe::bake(Node *p_from_node, bool p_create_visual_debug) { - static const int subdiv_value[SUBDIV_MAX] = { 6, 7, 8, 9 }; Voxelizer baker; @@ -451,7 +435,6 @@ void GIProbe::bake(Node *p_from_node, bool p_create_visual_debug) { int pmc = 0; for (List<PlotMesh>::Element *E = mesh_list.front(); E; E = E->next()) { - if (bake_step_function) { bake_step_function(pmc, RTR("Plotting Meshes") + " " + itos(pmc) + "/" + itos(mesh_list.size())); } @@ -483,7 +466,6 @@ void GIProbe::bake(Node *p_from_node, bool p_create_visual_debug) { #endif } else { - Ref<GIProbeData> probe_data = get_probe_data(); if (probe_data.is_null()) @@ -511,22 +493,18 @@ void GIProbe::bake(Node *p_from_node, bool p_create_visual_debug) { } void GIProbe::_debug_bake() { - bake(nullptr, true); } AABB GIProbe::get_aabb() const { - return AABB(-extents, extents * 2); } Vector<Face3> GIProbe::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } String GIProbe::get_configuration_warning() const { - if (RenderingServer::get_singleton()->is_low_end()) { return TTR("GIProbes are not supported by the GLES2 video driver.\nUse a BakedLightmap instead."); } @@ -534,7 +512,6 @@ String GIProbe::get_configuration_warning() const { } void GIProbe::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_probe_data", "data"), &GIProbe::set_probe_data); ClassDB::bind_method(D_METHOD("get_probe_data"), &GIProbe::get_probe_data); @@ -560,7 +537,6 @@ void GIProbe::_bind_methods() { } GIProbe::GIProbe() { - subdiv = SUBDIV_128; extents = Vector3(10, 10, 10); diff --git a/scene/3d/gi_probe.h b/scene/3d/gi_probe.h index 28b533e82d..b7abfbd01b 100644 --- a/scene/3d/gi_probe.h +++ b/scene/3d/gi_probe.h @@ -35,7 +35,6 @@ #include "scene/3d/visual_instance_3d.h" class GIProbeData : public Resource { - GDCLASS(GIProbeData, Resource); RID probe; diff --git a/scene/3d/gpu_particles_3d.cpp b/scene/3d/gpu_particles_3d.cpp index 01886a730f..1ce25f1e6e 100644 --- a/scene/3d/gpu_particles_3d.cpp +++ b/scene/3d/gpu_particles_3d.cpp @@ -36,16 +36,13 @@ #include "servers/rendering_server.h" AABB GPUParticles3D::get_aabb() const { - return AABB(); } Vector<Face3> GPUParticles3D::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } void GPUParticles3D::set_emitting(bool p_emitting) { - RS::get_singleton()->particles_set_emitting(particles, p_emitting); if (p_emitting && one_shot) { @@ -56,25 +53,21 @@ void GPUParticles3D::set_emitting(bool p_emitting) { } void GPUParticles3D::set_amount(int p_amount) { - ERR_FAIL_COND_MSG(p_amount < 1, "Amount of particles cannot be smaller than 1."); amount = p_amount; RS::get_singleton()->particles_set_amount(particles, amount); } void GPUParticles3D::set_lifetime(float p_lifetime) { - ERR_FAIL_COND_MSG(p_lifetime <= 0, "Particles lifetime must be greater than 0."); lifetime = p_lifetime; RS::get_singleton()->particles_set_lifetime(particles, lifetime); } void GPUParticles3D::set_one_shot(bool p_one_shot) { - one_shot = p_one_shot; RS::get_singleton()->particles_set_one_shot(particles, one_shot); if (is_emitting()) { - set_process_internal(true); if (!one_shot) RenderingServer::get_singleton()->particles_restart(particles); @@ -85,34 +78,28 @@ void GPUParticles3D::set_one_shot(bool p_one_shot) { } void GPUParticles3D::set_pre_process_time(float p_time) { - pre_process_time = p_time; RS::get_singleton()->particles_set_pre_process_time(particles, pre_process_time); } void GPUParticles3D::set_explosiveness_ratio(float p_ratio) { - explosiveness_ratio = p_ratio; RS::get_singleton()->particles_set_explosiveness_ratio(particles, explosiveness_ratio); } void GPUParticles3D::set_randomness_ratio(float p_ratio) { - randomness_ratio = p_ratio; RS::get_singleton()->particles_set_randomness_ratio(particles, randomness_ratio); } void GPUParticles3D::set_visibility_aabb(const AABB &p_aabb) { - visibility_aabb = p_aabb; RS::get_singleton()->particles_set_custom_aabb(particles, visibility_aabb); update_gizmo(); _change_notify("visibility_aabb"); } void GPUParticles3D::set_use_local_coordinates(bool p_enable) { - local_coords = p_enable; RS::get_singleton()->particles_set_use_local_coordinates(particles, local_coords); } void GPUParticles3D::set_process_material(const Ref<Material> &p_material) { - process_material = p_material; RID material_rid; if (process_material.is_valid()) @@ -123,83 +110,66 @@ void GPUParticles3D::set_process_material(const Ref<Material> &p_material) { } void GPUParticles3D::set_speed_scale(float p_scale) { - speed_scale = p_scale; RS::get_singleton()->particles_set_speed_scale(particles, p_scale); } bool GPUParticles3D::is_emitting() const { - return RS::get_singleton()->particles_get_emitting(particles); } int GPUParticles3D::get_amount() const { - return amount; } float GPUParticles3D::get_lifetime() const { - return lifetime; } bool GPUParticles3D::get_one_shot() const { - return one_shot; } float GPUParticles3D::get_pre_process_time() const { - return pre_process_time; } float GPUParticles3D::get_explosiveness_ratio() const { - return explosiveness_ratio; } float GPUParticles3D::get_randomness_ratio() const { - return randomness_ratio; } AABB GPUParticles3D::get_visibility_aabb() const { - return visibility_aabb; } bool GPUParticles3D::get_use_local_coordinates() const { - return local_coords; } Ref<Material> GPUParticles3D::get_process_material() const { - return process_material; } float GPUParticles3D::get_speed_scale() const { - return speed_scale; } void GPUParticles3D::set_draw_order(DrawOrder p_order) { - draw_order = p_order; RS::get_singleton()->particles_set_draw_order(particles, RS::ParticlesDrawOrder(p_order)); } GPUParticles3D::DrawOrder GPUParticles3D::get_draw_order() const { - return draw_order; } void GPUParticles3D::set_draw_passes(int p_count) { - ERR_FAIL_COND(p_count < 1); draw_passes.resize(p_count); RS::get_singleton()->particles_set_draw_passes(particles, p_count); _change_notify(); } int GPUParticles3D::get_draw_passes() const { - return draw_passes.size(); } void GPUParticles3D::set_draw_pass_mesh(int p_pass, const Ref<Mesh> &p_mesh) { - ERR_FAIL_INDEX(p_pass, draw_passes.size()); draw_passes.write[p_pass] = p_mesh; @@ -214,7 +184,6 @@ void GPUParticles3D::set_draw_pass_mesh(int p_pass, const Ref<Mesh> &p_mesh) { } Ref<Mesh> GPUParticles3D::get_draw_pass_mesh(int p_pass) const { - ERR_FAIL_INDEX_V(p_pass, draw_passes.size(), Ref<Mesh>()); return draw_passes[p_pass]; @@ -239,7 +208,6 @@ bool GPUParticles3D::get_fractional_delta() const { } String GPUParticles3D::get_configuration_warning() const { - if (RenderingServer::get_singleton()->is_low_end()) { return TTR("GPU-based particles are not supported by the GLES2 video driver.\nUse the CPUParticles3D node instead. You can use the \"Convert to CPUParticles3D\" option for this purpose."); } @@ -291,18 +259,15 @@ String GPUParticles3D::get_configuration_warning() const { } void GPUParticles3D::restart() { - RenderingServer::get_singleton()->particles_restart(particles); RenderingServer::get_singleton()->particles_set_emitting(particles, true); } AABB GPUParticles3D::capture_aabb() const { - return RS::get_singleton()->particles_get_current_aabb(particles); } void GPUParticles3D::_validate_property(PropertyInfo &property) const { - if (property.name.begins_with("draw_pass_")) { int index = property.name.get_slicec('_', 2).to_int() - 1; if (index >= draw_passes.size()) { @@ -313,12 +278,10 @@ void GPUParticles3D::_validate_property(PropertyInfo &property) const { } void GPUParticles3D::_notification(int p_what) { - if (p_what == NOTIFICATION_PAUSED || p_what == NOTIFICATION_UNPAUSED) { if (can_process()) { RS::get_singleton()->particles_set_speed_scale(particles, speed_scale); } else { - RS::get_singleton()->particles_set_speed_scale(particles, 0); } } @@ -326,7 +289,6 @@ void GPUParticles3D::_notification(int p_what) { // Use internal process when emitting and one_shot are on so that when // the shot ends the editor can properly update if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - if (one_shot && !is_emitting()) { _change_notify(); set_process_internal(false); @@ -342,7 +304,6 @@ void GPUParticles3D::_notification(int p_what) { } void GPUParticles3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_emitting", "emitting"), &GPUParticles3D::set_emitting); ClassDB::bind_method(D_METHOD("set_amount", "amount"), &GPUParticles3D::set_amount); ClassDB::bind_method(D_METHOD("set_lifetime", "secs"), &GPUParticles3D::set_lifetime); @@ -404,7 +365,6 @@ void GPUParticles3D::_bind_methods() { ADD_GROUP("Draw Passes", "draw_"); ADD_PROPERTY(PropertyInfo(Variant::INT, "draw_passes", PROPERTY_HINT_RANGE, "0," + itos(MAX_DRAW_PASSES) + ",1"), "set_draw_passes", "get_draw_passes"); for (int i = 0; i < MAX_DRAW_PASSES; i++) { - ADD_PROPERTYI(PropertyInfo(Variant::OBJECT, "draw_pass_" + itos(i + 1), PROPERTY_HINT_RESOURCE_TYPE, "Mesh"), "set_draw_pass_mesh", "get_draw_pass_mesh", i); } @@ -416,7 +376,6 @@ void GPUParticles3D::_bind_methods() { } GPUParticles3D::GPUParticles3D() { - particles = RS::get_singleton()->particles_create(); set_base(particles); one_shot = false; // Needed so that set_emitting doesn't access uninitialized values @@ -437,6 +396,5 @@ GPUParticles3D::GPUParticles3D() { } GPUParticles3D::~GPUParticles3D() { - RS::get_singleton()->free(particles); } diff --git a/scene/3d/immediate_geometry_3d.cpp b/scene/3d/immediate_geometry_3d.cpp index 63d4b1ac84..0d0ce1505f 100644 --- a/scene/3d/immediate_geometry_3d.cpp +++ b/scene/3d/immediate_geometry_3d.cpp @@ -31,39 +31,32 @@ #include "immediate_geometry_3d.h" void ImmediateGeometry3D::begin(Mesh::PrimitiveType p_primitive, const Ref<Texture2D> &p_texture) { - RS::get_singleton()->immediate_begin(im, (RS::PrimitiveType)p_primitive, p_texture.is_valid() ? p_texture->get_rid() : RID()); if (p_texture.is_valid()) cached_textures.push_back(p_texture); } void ImmediateGeometry3D::set_normal(const Vector3 &p_normal) { - RS::get_singleton()->immediate_normal(im, p_normal); } void ImmediateGeometry3D::set_tangent(const Plane &p_tangent) { - RS::get_singleton()->immediate_tangent(im, p_tangent); } void ImmediateGeometry3D::set_color(const Color &p_color) { - RS::get_singleton()->immediate_color(im, p_color); } void ImmediateGeometry3D::set_uv(const Vector2 &p_uv) { - RS::get_singleton()->immediate_uv(im, p_uv); } void ImmediateGeometry3D::set_uv2(const Vector2 &p_uv2) { - RS::get_singleton()->immediate_uv2(im, p_uv2); } void ImmediateGeometry3D::add_vertex(const Vector3 &p_vertex) { - RS::get_singleton()->immediate_vertex(im, p_vertex); if (empty) { aabb.position = p_vertex; @@ -75,28 +68,23 @@ void ImmediateGeometry3D::add_vertex(const Vector3 &p_vertex) { } void ImmediateGeometry3D::end() { - RS::get_singleton()->immediate_end(im); } void ImmediateGeometry3D::clear() { - RS::get_singleton()->immediate_clear(im); empty = true; cached_textures.clear(); } AABB ImmediateGeometry3D::get_aabb() const { - return aabb; } Vector<Face3> ImmediateGeometry3D::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } void ImmediateGeometry3D::add_sphere(int p_lats, int p_lons, float p_radius, bool p_add_uv) { - for (int i = 1; i <= p_lats; i++) { double lat0 = Math_PI * (-0.5 + (double)(i - 1) / p_lats); double z0 = Math::sin(lat0); @@ -107,7 +95,6 @@ void ImmediateGeometry3D::add_sphere(int p_lats, int p_lons, float p_radius, boo double zr1 = Math::cos(lat1); for (int j = p_lons; j >= 1; j--) { - double lng0 = 2 * Math_PI * (double)(j - 1) / p_lons; double x0 = Math::cos(lng0); double y0 = Math::sin(lng0); @@ -143,7 +130,6 @@ void ImmediateGeometry3D::add_sphere(int p_lats, int p_lons, float p_radius, boo } void ImmediateGeometry3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("begin", "primitive", "texture"), &ImmediateGeometry3D::begin, DEFVAL(Ref<Texture2D>())); ClassDB::bind_method(D_METHOD("set_normal", "normal"), &ImmediateGeometry3D::set_normal); ClassDB::bind_method(D_METHOD("set_tangent", "tangent"), &ImmediateGeometry3D::set_tangent); @@ -157,13 +143,11 @@ void ImmediateGeometry3D::_bind_methods() { } ImmediateGeometry3D::ImmediateGeometry3D() { - im = RenderingServer::get_singleton()->immediate_create(); set_base(im); empty = true; } ImmediateGeometry3D::~ImmediateGeometry3D() { - RenderingServer::get_singleton()->free(im); } diff --git a/scene/3d/immediate_geometry_3d.h b/scene/3d/immediate_geometry_3d.h index 6e15450a5b..7c9e8851a2 100644 --- a/scene/3d/immediate_geometry_3d.h +++ b/scene/3d/immediate_geometry_3d.h @@ -35,7 +35,6 @@ #include "scene/resources/mesh.h" class ImmediateGeometry3D : public GeometryInstance3D { - GDCLASS(ImmediateGeometry3D, GeometryInstance3D); RID im; diff --git a/scene/3d/light_3d.cpp b/scene/3d/light_3d.cpp index 0aa0f7e5ac..1fa50b6872 100644 --- a/scene/3d/light_3d.cpp +++ b/scene/3d/light_3d.cpp @@ -35,12 +35,10 @@ #include "scene/resources/surface_tool.h" bool Light3D::_can_gizmo_scale() const { - return false; } void Light3D::set_param(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); param[p_param] = p_value; @@ -60,13 +58,11 @@ void Light3D::set_param(Param p_param, float p_value) { } float Light3D::get_param(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return param[p_param]; } void Light3D::set_shadow(bool p_enable) { - shadow = p_enable; RS::get_singleton()->light_set_shadow(light, p_enable); @@ -75,50 +71,41 @@ void Light3D::set_shadow(bool p_enable) { } } bool Light3D::has_shadow() const { - return shadow; } void Light3D::set_negative(bool p_enable) { - negative = p_enable; RS::get_singleton()->light_set_negative(light, p_enable); } bool Light3D::is_negative() const { - return negative; } void Light3D::set_cull_mask(uint32_t p_cull_mask) { - cull_mask = p_cull_mask; RS::get_singleton()->light_set_cull_mask(light, p_cull_mask); } uint32_t Light3D::get_cull_mask() const { - return cull_mask; } void Light3D::set_color(const Color &p_color) { - color = p_color; RS::get_singleton()->light_set_color(light, p_color); // The gizmo color depends on the light color, so update it. update_gizmo(); } Color Light3D::get_color() const { - return color; } void Light3D::set_shadow_color(const Color &p_shadow_color) { - shadow_color = p_shadow_color; RS::get_singleton()->light_set_shadow_color(light, p_shadow_color); } Color Light3D::get_shadow_color() const { - return shadow_color; } @@ -128,22 +115,17 @@ void Light3D::set_shadow_reverse_cull_face(bool p_enable) { } bool Light3D::get_shadow_reverse_cull_face() const { - return reverse_cull; } AABB Light3D::get_aabb() const { - if (type == RenderingServer::LIGHT_DIRECTIONAL) { - return AABB(Vector3(-1, -1, -1), Vector3(2, 2, 2)); } else if (type == RenderingServer::LIGHT_OMNI) { - return AABB(Vector3(-1, -1, -1) * param[PARAM_RANGE], Vector3(2, 2, 2) * param[PARAM_RANGE]); } else if (type == RenderingServer::LIGHT_SPOT) { - float len = param[PARAM_RANGE]; float size = Math::tan(Math::deg2rad(param[PARAM_SPOT_ANGLE])) * len; return AABB(Vector3(-size, -size, -len), Vector3(size * 2, size * 2, len)); @@ -153,7 +135,6 @@ AABB Light3D::get_aabb() const { } Vector<Face3> Light3D::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } @@ -167,7 +148,6 @@ Light3D::BakeMode Light3D::get_bake_mode() const { } void Light3D::set_projector(const Ref<Texture2D> &p_texture) { - projector = p_texture; RID tex_id = projector.is_valid() ? projector->get_rid() : RID(); RS::get_singleton()->light_set_projector(light, tex_id); @@ -179,7 +159,6 @@ Ref<Texture2D> Light3D::get_projector() const { } void Light3D::_update_visibility() { - if (!is_inside_tree()) return; @@ -205,9 +184,7 @@ void Light3D::_update_visibility() { } void Light3D::_notification(int p_what) { - if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - _update_visibility(); } @@ -217,18 +194,15 @@ void Light3D::_notification(int p_what) { } void Light3D::set_editor_only(bool p_editor_only) { - editor_only = p_editor_only; _update_visibility(); } bool Light3D::is_editor_only() const { - return editor_only; } void Light3D::_validate_property(PropertyInfo &property) const { - if (get_light_type() == RS::LIGHT_DIRECTIONAL && property.name == "light_size") { property.usage = 0; } @@ -243,7 +217,6 @@ void Light3D::_validate_property(PropertyInfo &property) const { } void Light3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_editor_only", "editor_only"), &Light3D::set_editor_only); ClassDB::bind_method(D_METHOD("is_editor_only"), &Light3D::is_editor_only); @@ -323,7 +296,6 @@ void Light3D::_bind_methods() { } Light3D::Light3D(RenderingServer::LightType p_type) { - type = p_type; switch (p_type) { case RS::LIGHT_DIRECTIONAL: @@ -373,13 +345,11 @@ Light3D::Light3D(RenderingServer::LightType p_type) { } Light3D::Light3D() { - type = RenderingServer::LIGHT_DIRECTIONAL; ERR_PRINT("Light3D should not be instanced directly; use the DirectionalLight3D, OmniLight3D or SpotLight3D subtypes instead."); } Light3D::~Light3D() { - RS::get_singleton()->instance_set_base(get_instance(), RID()); if (light.is_valid()) @@ -388,13 +358,11 @@ Light3D::~Light3D() { ///////////////////////////////////////// void DirectionalLight3D::set_shadow_mode(ShadowMode p_mode) { - shadow_mode = p_mode; RS::get_singleton()->light_directional_set_shadow_mode(light, RS::LightDirectionalShadowMode(p_mode)); } DirectionalLight3D::ShadowMode DirectionalLight3D::get_shadow_mode() const { - return shadow_mode; } @@ -404,23 +372,19 @@ void DirectionalLight3D::set_shadow_depth_range(ShadowDepthRange p_range) { } DirectionalLight3D::ShadowDepthRange DirectionalLight3D::get_shadow_depth_range() const { - return shadow_depth_range; } void DirectionalLight3D::set_blend_splits(bool p_enable) { - blend_splits = p_enable; RS::get_singleton()->light_directional_set_blend_splits(light, p_enable); } bool DirectionalLight3D::is_blend_splits_enabled() const { - return blend_splits; } void DirectionalLight3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_shadow_mode", "mode"), &DirectionalLight3D::set_shadow_mode); ClassDB::bind_method(D_METHOD("get_shadow_mode"), &DirectionalLight3D::get_shadow_mode); @@ -451,7 +415,6 @@ void DirectionalLight3D::_bind_methods() { DirectionalLight3D::DirectionalLight3D() : Light3D(RenderingServer::LIGHT_DIRECTIONAL) { - set_param(PARAM_SHADOW_MAX_DISTANCE, 100); set_param(PARAM_SHADOW_FADE_START, 0.8); set_shadow_mode(SHADOW_PARALLEL_4_SPLITS); @@ -461,13 +424,11 @@ DirectionalLight3D::DirectionalLight3D() : } void OmniLight3D::set_shadow_mode(ShadowMode p_mode) { - shadow_mode = p_mode; RS::get_singleton()->light_omni_set_shadow_mode(light, RS::LightOmniShadowMode(p_mode)); } OmniLight3D::ShadowMode OmniLight3D::get_shadow_mode() const { - return shadow_mode; } @@ -485,7 +446,6 @@ String OmniLight3D::get_configuration_warning() const { } void OmniLight3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_shadow_mode", "mode"), &OmniLight3D::set_shadow_mode); ClassDB::bind_method(D_METHOD("get_shadow_mode"), &OmniLight3D::get_shadow_mode); @@ -500,7 +460,6 @@ void OmniLight3D::_bind_methods() { OmniLight3D::OmniLight3D() : Light3D(RenderingServer::LIGHT_OMNI) { - set_shadow_mode(SHADOW_CUBE); } @@ -526,7 +485,6 @@ String SpotLight3D::get_configuration_warning() const { } void SpotLight3D::_bind_methods() { - ADD_GROUP("Spot", "spot_"); ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "spot_range", PROPERTY_HINT_EXP_RANGE, "0,4096,0.1,or_greater"), "set_param", "get_param", PARAM_RANGE); ADD_PROPERTYI(PropertyInfo(Variant::FLOAT, "spot_attenuation", PROPERTY_HINT_EXP_EASING, "attenuation"), "set_param", "get_param", PARAM_ATTENUATION); diff --git a/scene/3d/light_3d.h b/scene/3d/light_3d.h index 6e78217342..f16773f6ae 100644 --- a/scene/3d/light_3d.h +++ b/scene/3d/light_3d.h @@ -36,7 +36,6 @@ #include "servers/rendering_server.h" class Light3D : public VisualInstance3D { - GDCLASS(Light3D, VisualInstance3D); OBJ_CATEGORY("3D Light Nodes"); @@ -140,7 +139,6 @@ VARIANT_ENUM_CAST(Light3D::Param); VARIANT_ENUM_CAST(Light3D::BakeMode); class DirectionalLight3D : public Light3D { - GDCLASS(DirectionalLight3D, Light3D); public: @@ -180,7 +178,6 @@ VARIANT_ENUM_CAST(DirectionalLight3D::ShadowMode) VARIANT_ENUM_CAST(DirectionalLight3D::ShadowDepthRange) class OmniLight3D : public Light3D { - GDCLASS(OmniLight3D, Light3D); public: @@ -208,7 +205,6 @@ public: VARIANT_ENUM_CAST(OmniLight3D::ShadowMode) class SpotLight3D : public Light3D { - GDCLASS(SpotLight3D, Light3D); protected: diff --git a/scene/3d/listener_3d.cpp b/scene/3d/listener_3d.cpp index 426e34ea80..6a5307565b 100644 --- a/scene/3d/listener_3d.cpp +++ b/scene/3d/listener_3d.cpp @@ -36,12 +36,10 @@ void Listener3D::_update_audio_listener_state() { } void Listener3D::_request_listener_update() { - _update_listener(); } bool Listener3D::_set(const StringName &p_name, const Variant &p_value) { - if (p_name == "current") { if (p_value.operator bool()) { make_current(); @@ -54,7 +52,6 @@ bool Listener3D::_set(const StringName &p_name, const Variant &p_value) { return true; } bool Listener3D::_get(const StringName &p_name, Variant &r_ret) const { - if (p_name == "current") { if (is_inside_tree() && get_tree()->is_node_being_edited(this)) { r_ret = current; @@ -68,21 +65,17 @@ bool Listener3D::_get(const StringName &p_name, Variant &r_ret) const { } void Listener3D::_get_property_list(List<PropertyInfo> *p_list) const { - p_list->push_back(PropertyInfo(Variant::BOOL, "current")); } void Listener3D::_update_listener() { - if (is_inside_tree() && is_current()) { get_viewport()->_listener_transform_changed_notify(); } } void Listener3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_WORLD: { bool first_listener = get_viewport()->_listener_add(this); if (!get_tree()->is_node_being_edited(this) && (current || first_listener)) @@ -92,7 +85,6 @@ void Listener3D::_notification(int p_what) { _request_listener_update(); } break; case NOTIFICATION_EXIT_WORLD: { - if (!get_tree()->is_node_being_edited(this)) { if (is_current()) { clear_current(); @@ -110,12 +102,10 @@ void Listener3D::_notification(int p_what) { } Transform Listener3D::get_listener_transform() const { - return get_global_transform().orthonormalized(); } void Listener3D::make_current() { - current = true; if (!is_inside_tree()) @@ -125,7 +115,6 @@ void Listener3D::make_current() { } void Listener3D::clear_current() { - current = false; if (!is_inside_tree()) return; @@ -137,9 +126,7 @@ void Listener3D::clear_current() { } bool Listener3D::is_current() const { - if (is_inside_tree() && !get_tree()->is_node_being_edited(this)) { - return get_viewport()->get_listener() == this; } else return current; @@ -148,7 +135,6 @@ bool Listener3D::is_current() const { } bool Listener3D::_can_gizmo_scale() const { - return false; } @@ -159,7 +145,6 @@ RES Listener3D::_get_gizmo_geometry() const { } void Listener3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("make_current"), &Listener3D::make_current); ClassDB::bind_method(D_METHOD("clear_current"), &Listener3D::clear_current); ClassDB::bind_method(D_METHOD("is_current"), &Listener3D::is_current); @@ -167,7 +152,6 @@ void Listener3D::_bind_methods() { } Listener3D::Listener3D() { - current = false; force_change = false; set_notify_transform(true); diff --git a/scene/3d/listener_3d.h b/scene/3d/listener_3d.h index 3383d6725e..4b6923d6e8 100644 --- a/scene/3d/listener_3d.h +++ b/scene/3d/listener_3d.h @@ -35,7 +35,6 @@ #include "scene/main/window.h" class Listener3D : public Node3D { - GDCLASS(Listener3D, Node3D); private: diff --git a/scene/3d/mesh_instance_3d.cpp b/scene/3d/mesh_instance_3d.cpp index cdc8db8aea..08a2426e1c 100644 --- a/scene/3d/mesh_instance_3d.cpp +++ b/scene/3d/mesh_instance_3d.cpp @@ -37,7 +37,6 @@ #include "skeleton_3d.h" bool MeshInstance3D::_set(const StringName &p_name, const Variant &p_value) { - //this is not _too_ bad performance wise, really. it only arrives here if the property was not set anywhere else. //add to it that it's probably found on first call to _set anyway. @@ -64,7 +63,6 @@ bool MeshInstance3D::_set(const StringName &p_name, const Variant &p_value) { } bool MeshInstance3D::_get(const StringName &p_name, Variant &r_ret) const { - if (!get_instance().is_valid()) return false; @@ -85,10 +83,8 @@ bool MeshInstance3D::_get(const StringName &p_name, Variant &r_ret) const { } void MeshInstance3D::_get_property_list(List<PropertyInfo> *p_list) const { - List<String> ls; for (const Map<StringName, BlendShapeTrack>::Element *E = blend_shape_tracks.front(); E; E = E->next()) { - ls.push_back(E->key()); } @@ -106,7 +102,6 @@ void MeshInstance3D::_get_property_list(List<PropertyInfo> *p_list) const { } void MeshInstance3D::set_mesh(const Ref<Mesh> &p_mesh) { - if (mesh == p_mesh) return; @@ -119,9 +114,7 @@ void MeshInstance3D::set_mesh(const Ref<Mesh> &p_mesh) { blend_shape_tracks.clear(); if (mesh.is_valid()) { - for (int i = 0; i < mesh->get_blend_shape_count(); i++) { - BlendShapeTrack mt; mt.idx = i; mt.value = 0; @@ -133,7 +126,6 @@ void MeshInstance3D::set_mesh(const Ref<Mesh> &p_mesh) { set_base(mesh->get_rid()); } else { - set_base(RID()); } @@ -142,12 +134,10 @@ void MeshInstance3D::set_mesh(const Ref<Mesh> &p_mesh) { _change_notify(); } Ref<Mesh> MeshInstance3D::get_mesh() const { - return mesh; } void MeshInstance3D::_resolve_skeleton_path() { - Ref<SkinReference> new_skin_reference; if (!skeleton_path.is_empty()) { @@ -184,7 +174,6 @@ Ref<Skin> MeshInstance3D::get_skin() const { } void MeshInstance3D::set_skeleton_path(const NodePath &p_skeleton) { - skeleton_path = p_skeleton; if (!is_inside_tree()) return; @@ -196,7 +185,6 @@ NodePath MeshInstance3D::get_skeleton_path() { } AABB MeshInstance3D::get_aabb() const { - if (!mesh.is_null()) return mesh->get_aabb(); @@ -204,7 +192,6 @@ AABB MeshInstance3D::get_aabb() const { } Vector<Face3> MeshInstance3D::get_faces(uint32_t p_usage_flags) const { - if (!(p_usage_flags & (FACES_SOLID | FACES_ENCLOSING))) return Vector<Face3>(); @@ -215,7 +202,6 @@ Vector<Face3> MeshInstance3D::get_faces(uint32_t p_usage_flags) const { } Node *MeshInstance3D::create_trimesh_collision_node() { - if (mesh.is_null()) return nullptr; @@ -231,7 +217,6 @@ Node *MeshInstance3D::create_trimesh_collision_node() { } void MeshInstance3D::create_trimesh_collision() { - StaticBody3D *static_body = Object::cast_to<StaticBody3D>(create_trimesh_collision_node()); ERR_FAIL_COND(!static_body); static_body->set_name(String(get_name()) + "_col"); @@ -245,7 +230,6 @@ void MeshInstance3D::create_trimesh_collision() { } Node *MeshInstance3D::create_convex_collision_node() { - if (mesh.is_null()) return nullptr; @@ -261,7 +245,6 @@ Node *MeshInstance3D::create_convex_collision_node() { } void MeshInstance3D::create_convex_collision() { - StaticBody3D *static_body = Object::cast_to<StaticBody3D>(create_convex_collision_node()); ERR_FAIL_COND(!static_body); static_body->set_name(String(get_name()) + "_col"); @@ -275,19 +258,16 @@ void MeshInstance3D::create_convex_collision() { } void MeshInstance3D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { _resolve_skeleton_path(); } } int MeshInstance3D::get_surface_material_count() const { - return materials.size(); } void MeshInstance3D::set_surface_material(int p_surface, const Ref<Material> &p_material) { - ERR_FAIL_INDEX(p_surface, materials.size()); materials.write[p_surface] = p_material; @@ -299,14 +279,12 @@ void MeshInstance3D::set_surface_material(int p_surface, const Ref<Material> &p_ } Ref<Material> MeshInstance3D::get_surface_material(int p_surface) const { - ERR_FAIL_INDEX_V(p_surface, materials.size(), Ref<Material>()); return materials[p_surface]; } Ref<Material> MeshInstance3D::get_active_material(int p_surface) const { - Ref<Material> material_override = get_material_override(); if (material_override.is_valid()) { return material_override; @@ -326,12 +304,10 @@ Ref<Material> MeshInstance3D::get_active_material(int p_surface) const { } void MeshInstance3D::_mesh_changed() { - materials.resize(mesh->get_surface_count()); } void MeshInstance3D::create_debug_tangents() { - Vector<Vector3> lines; Vector<Color> colors; @@ -373,7 +349,6 @@ void MeshInstance3D::create_debug_tangents() { } if (lines.size()) { - Ref<StandardMaterial3D> sm; sm.instance(); @@ -406,7 +381,6 @@ void MeshInstance3D::create_debug_tangents() { } void MeshInstance3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_mesh", "mesh"), &MeshInstance3D::set_mesh); ClassDB::bind_method(D_METHOD("get_mesh"), &MeshInstance3D::get_mesh); ClassDB::bind_method(D_METHOD("set_skeleton_path", "skeleton_path"), &MeshInstance3D::set_skeleton_path); diff --git a/scene/3d/mesh_instance_3d.h b/scene/3d/mesh_instance_3d.h index 914148f427..e29204f702 100644 --- a/scene/3d/mesh_instance_3d.h +++ b/scene/3d/mesh_instance_3d.h @@ -37,7 +37,6 @@ #include "scene/resources/skin.h" class MeshInstance3D : public GeometryInstance3D { - GDCLASS(MeshInstance3D, GeometryInstance3D); protected: @@ -48,7 +47,6 @@ protected: NodePath skeleton_path; struct BlendShapeTrack { - int idx; float value; BlendShapeTrack() { diff --git a/scene/3d/multimesh_instance_3d.cpp b/scene/3d/multimesh_instance_3d.cpp index a625a34283..9892323173 100644 --- a/scene/3d/multimesh_instance_3d.cpp +++ b/scene/3d/multimesh_instance_3d.cpp @@ -31,14 +31,12 @@ #include "multimesh_instance_3d.h" void MultiMeshInstance3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_multimesh", "multimesh"), &MultiMeshInstance3D::set_multimesh); ClassDB::bind_method(D_METHOD("get_multimesh"), &MultiMeshInstance3D::get_multimesh); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "multimesh", PROPERTY_HINT_RESOURCE_TYPE, "MultiMesh"), "set_multimesh", "get_multimesh"); } void MultiMeshInstance3D::set_multimesh(const Ref<MultiMesh> &p_multimesh) { - multimesh = p_multimesh; if (multimesh.is_valid()) set_base(multimesh->get_rid()); @@ -47,17 +45,14 @@ void MultiMeshInstance3D::set_multimesh(const Ref<MultiMesh> &p_multimesh) { } Ref<MultiMesh> MultiMeshInstance3D::get_multimesh() const { - return multimesh; } Vector<Face3> MultiMeshInstance3D::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } AABB MultiMeshInstance3D::get_aabb() const { - if (multimesh.is_null()) return AABB(); else diff --git a/scene/3d/navigation_3d.cpp b/scene/3d/navigation_3d.cpp index f880f65d37..07a4824c28 100644 --- a/scene/3d/navigation_3d.cpp +++ b/scene/3d/navigation_3d.cpp @@ -33,7 +33,6 @@ #include "servers/navigation_server_3d.h" Vector<Vector3> Navigation3D::get_simple_path(const Vector3 &p_start, const Vector3 &p_end, bool p_optimize) const { - return NavigationServer3D::get_singleton()->map_get_path(map, p_start, p_end, p_optimize); } @@ -54,13 +53,11 @@ RID Navigation3D::get_closest_point_owner(const Vector3 &p_point) const { } void Navigation3D::set_up_vector(const Vector3 &p_up) { - up = p_up; NavigationServer3D::get_singleton()->map_set_up(map, up); } Vector3 Navigation3D::get_up_vector() const { - return up; } @@ -75,7 +72,6 @@ void Navigation3D::set_edge_connection_margin(float p_edge_connection_margin) { } void Navigation3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_rid"), &Navigation3D::get_rid); ClassDB::bind_method(D_METHOD("get_simple_path", "start", "end", "optimize"), &Navigation3D::get_simple_path, DEFVAL(true)); @@ -104,14 +100,12 @@ void Navigation3D::_notification(int p_what) { NavigationServer3D::get_singleton()->map_set_active(map, true); } break; case NOTIFICATION_EXIT_TREE: { - NavigationServer3D::get_singleton()->map_set_active(map, false); } break; } } Navigation3D::Navigation3D() { - map = NavigationServer3D::get_singleton()->map_create(); set_cell_size(0.3); diff --git a/scene/3d/navigation_3d.h b/scene/3d/navigation_3d.h index daa9558125..890caed171 100644 --- a/scene/3d/navigation_3d.h +++ b/scene/3d/navigation_3d.h @@ -35,7 +35,6 @@ #include "scene/3d/node_3d.h" class Navigation3D : public Node3D { - GDCLASS(Navigation3D, Node3D); RID map; diff --git a/scene/3d/navigation_agent_3d.cpp b/scene/3d/navigation_agent_3d.cpp index 020d598f00..4b1e602f77 100644 --- a/scene/3d/navigation_agent_3d.cpp +++ b/scene/3d/navigation_agent_3d.cpp @@ -35,7 +35,6 @@ #include "servers/navigation_server_3d.h" void NavigationAgent3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_target_desired_distance", "desired_distance"), &NavigationAgent3D::set_target_desired_distance); ClassDB::bind_method(D_METHOD("get_target_desired_distance"), &NavigationAgent3D::get_target_desired_distance); @@ -99,7 +98,6 @@ void NavigationAgent3D::_bind_methods() { void NavigationAgent3D::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { - agent_parent = Object::cast_to<Node3D>(get_parent()); NavigationServer3D::get_singleton()->agent_set_callback(agent, this, "_avoidance_done"); @@ -128,7 +126,6 @@ void NavigationAgent3D::_notification(int p_what) { } break; case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { if (agent_parent) { - NavigationServer3D::get_singleton()->agent_set_position(agent, agent_parent->get_global_transform().origin); if (!target_reached) { if (distance_to_target() < target_desired_distance) { @@ -296,7 +293,6 @@ String NavigationAgent3D::get_configuration_warning() const { } void NavigationAgent3D::update_navigation() { - if (agent_parent == nullptr) return; if (navigation == nullptr) diff --git a/scene/3d/navigation_obstacle_3d.cpp b/scene/3d/navigation_obstacle_3d.cpp index 2f99a5f99e..daa9222d84 100644 --- a/scene/3d/navigation_obstacle_3d.cpp +++ b/scene/3d/navigation_obstacle_3d.cpp @@ -36,7 +36,6 @@ #include "servers/navigation_server_3d.h" void NavigationObstacle3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_navigation", "navigation"), &NavigationObstacle3D::set_navigation_node); ClassDB::bind_method(D_METHOD("get_navigation"), &NavigationObstacle3D::get_navigation_node); } @@ -44,7 +43,6 @@ void NavigationObstacle3D::_bind_methods() { void NavigationObstacle3D::_notification(int p_what) { switch (p_what) { case NOTIFICATION_READY: { - update_agent_shape(); // Search the navigation node and set it @@ -76,7 +74,6 @@ void NavigationObstacle3D::_notification(int p_what) { PhysicsBody3D *rigid = Object::cast_to<PhysicsBody3D>(get_parent()); if (rigid) { - Vector3 v = rigid->get_linear_velocity(); NavigationServer3D::get_singleton()->agent_set_velocity(agent, v); NavigationServer3D::get_singleton()->agent_set_target_velocity(agent, v); @@ -115,7 +112,6 @@ Node *NavigationObstacle3D::get_navigation_node() const { String NavigationObstacle3D::get_configuration_warning() const { if (!Object::cast_to<Node3D>(get_parent())) { - return TTR("The NavigationObstacle3D only serves to provide collision avoidance to a spatial object."); } diff --git a/scene/3d/navigation_region_3d.cpp b/scene/3d/navigation_region_3d.cpp index b15fa6166f..bc13b7097f 100644 --- a/scene/3d/navigation_region_3d.cpp +++ b/scene/3d/navigation_region_3d.cpp @@ -36,7 +36,6 @@ #include "servers/navigation_server_3d.h" void NavigationRegion3D::set_enabled(bool p_enabled) { - if (enabled == p_enabled) return; enabled = p_enabled; @@ -45,12 +44,9 @@ void NavigationRegion3D::set_enabled(bool p_enabled) { return; if (!enabled) { - NavigationServer3D::get_singleton()->region_set_map(region, RID()); } else { - if (navigation) { - NavigationServer3D::get_singleton()->region_set_map(region, navigation->get_rid()); } } @@ -68,25 +64,19 @@ void NavigationRegion3D::set_enabled(bool p_enabled) { } bool NavigationRegion3D::is_enabled() const { - return enabled; } ///////////////////////////// void NavigationRegion3D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_ENTER_TREE: { - Node3D *c = this; while (c) { - navigation = Object::cast_to<Navigation3D>(c); if (navigation) { - if (enabled) { - NavigationServer3D::get_singleton()->region_set_map(region, navigation->get_rid()); } break; @@ -96,7 +86,6 @@ void NavigationRegion3D::_notification(int p_what) { } if (navmesh.is_valid() && get_tree()->is_debugging_navigation_hint()) { - MeshInstance3D *dm = memnew(MeshInstance3D); dm->set_mesh(navmesh->get_debug_mesh()); if (is_enabled()) { @@ -110,14 +99,11 @@ void NavigationRegion3D::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - NavigationServer3D::get_singleton()->region_set_transform(region, get_global_transform()); } break; case NOTIFICATION_EXIT_TREE: { - if (navigation) { - NavigationServer3D::get_singleton()->region_set_map(region, RID()); } @@ -131,7 +117,6 @@ void NavigationRegion3D::_notification(int p_what) { } void NavigationRegion3D::set_navigation_mesh(const Ref<NavigationMesh> &p_navmesh) { - if (p_navmesh == navmesh) return; @@ -158,7 +143,6 @@ void NavigationRegion3D::set_navigation_mesh(const Ref<NavigationMesh> &p_navmes } Ref<NavigationMesh> NavigationRegion3D::get_navigation_mesh() const { - return navmesh; } @@ -176,7 +160,6 @@ void _bake_navigation_mesh(void *p_user_data) { args->nav_region->call_deferred("_bake_finished", nav_mesh); memdelete(args); } else { - ERR_PRINT("Can't bake the navigation mesh if the `NavigationMesh` resource doesn't exist"); args->nav_region->call_deferred("_bake_finished", Ref<NavigationMesh>()); memdelete(args); @@ -199,7 +182,6 @@ void NavigationRegion3D::_bake_finished(Ref<NavigationMesh> p_nav_mesh) { } String NavigationRegion3D::get_configuration_warning() const { - if (!is_visible_in_tree() || !is_inside_tree()) return String(); @@ -208,7 +190,6 @@ String NavigationRegion3D::get_configuration_warning() const { } const Node3D *c = this; while (c) { - if (Object::cast_to<Navigation3D>(c)) return String(); @@ -219,7 +200,6 @@ String NavigationRegion3D::get_configuration_warning() const { } void NavigationRegion3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_navigation_mesh", "navmesh"), &NavigationRegion3D::set_navigation_mesh); ClassDB::bind_method(D_METHOD("get_navigation_mesh"), &NavigationRegion3D::get_navigation_mesh); diff --git a/scene/3d/navigation_region_3d.h b/scene/3d/navigation_region_3d.h index a7b5077f53..fcd2efd4ef 100644 --- a/scene/3d/navigation_region_3d.h +++ b/scene/3d/navigation_region_3d.h @@ -38,7 +38,6 @@ class Navigation3D; class NavigationRegion3D : public Node3D { - GDCLASS(NavigationRegion3D, Node3D); bool enabled = true; diff --git a/scene/3d/node_3d.cpp b/scene/3d/node_3d.cpp index 913a3ea49f..c823e7e532 100644 --- a/scene/3d/node_3d.cpp +++ b/scene/3d/node_3d.cpp @@ -74,7 +74,6 @@ Node3DGizmo::Node3DGizmo() { } void Node3D::_notify_dirty() { - #ifdef TOOLS_ENABLED if ((data.gizmo.is_valid() || data.notify_transform) && !data.ignore_notification && !xform_change.in_list()) { #else @@ -91,7 +90,6 @@ void Node3D::_update_local_transform() const { data.dirty &= ~DIRTY_LOCAL; } void Node3D::_propagate_transform_changed(Node3D *p_origin) { - if (!is_inside_tree()) { return; } @@ -104,7 +102,6 @@ void Node3D::_propagate_transform_changed(Node3D *p_origin) { data.children_lock++; for (List<Node3D *>::Element *E = data.children.front(); E; E = E->next()) { - if (E->get()->data.toplevel_active) continue; //don't propagate to a toplevel E->get()->_propagate_transform_changed(p_origin); @@ -122,7 +119,6 @@ void Node3D::_propagate_transform_changed(Node3D *p_origin) { } void Node3D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_ENTER_TREE: { ERR_FAIL_COND(!get_tree()); @@ -137,7 +133,6 @@ void Node3D::_notification(int p_what) { data.C = nullptr; if (data.toplevel && !Engine::get_singleton()->is_editor_hint()) { - if (data.parent) { data.local_transform = data.parent->get_global_transform() * get_transform(); data.dirty = DIRTY_VECTORS; //global is always dirty upon entering a scene @@ -152,7 +147,6 @@ void Node3D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - notification(NOTIFICATION_EXIT_WORLD, true); if (xform_change.in_list()) get_tree()->xform_change_list.remove(&xform_change); @@ -163,7 +157,6 @@ void Node3D::_notification(int p_what) { data.toplevel_active = false; } break; case NOTIFICATION_ENTER_WORLD: { - data.inside_world = true; data.viewport = nullptr; Node *parent = get_parent(); @@ -175,16 +168,13 @@ void Node3D::_notification(int p_what) { ERR_FAIL_COND(!data.viewport); if (get_script_instance()) { - get_script_instance()->call_multilevel(SceneStringNames::get_singleton()->_enter_world, nullptr, 0); } #ifdef TOOLS_ENABLED if (Engine::get_singleton()->is_editor_hint() && get_tree()->is_node_being_edited(this)) { - //get_scene()->call_group(SceneMainLoop::GROUP_CALL_REALTIME,SceneStringNames::get_singleton()->_spatial_editor_group,SceneStringNames::get_singleton()->_request_gizmo,this); get_tree()->call_group_flags(0, SceneStringNames::get_singleton()->_spatial_editor_group, SceneStringNames::get_singleton()->_request_gizmo, this); if (!data.gizmo_disabled) { - if (data.gizmo.is_valid()) { data.gizmo->create(); if (is_visible_in_tree()) { @@ -198,7 +188,6 @@ void Node3D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_WORLD: { - #ifdef TOOLS_ENABLED if (data.gizmo.is_valid()) { data.gizmo->free(); @@ -207,7 +196,6 @@ void Node3D::_notification(int p_what) { #endif if (get_script_instance()) { - get_script_instance()->call_multilevel(SceneStringNames::get_singleton()->_exit_world, nullptr, 0); } @@ -217,7 +205,6 @@ void Node3D::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - #ifdef TOOLS_ENABLED if (data.gizmo.is_valid()) { data.gizmo->transform(); @@ -231,7 +218,6 @@ void Node3D::_notification(int p_what) { } void Node3D::set_transform(const Transform &p_transform) { - data.local_transform = p_transform; data.dirty |= DIRTY_VECTORS; _change_notify("translation"); @@ -245,7 +231,6 @@ void Node3D::set_transform(const Transform &p_transform) { } void Node3D::set_global_transform(const Transform &p_transform) { - Transform xform = (data.parent && !data.toplevel_active) ? data.parent->get_global_transform().affine_inverse() * p_transform : @@ -255,30 +240,23 @@ void Node3D::set_global_transform(const Transform &p_transform) { } Transform Node3D::get_transform() const { - if (data.dirty & DIRTY_LOCAL) { - _update_local_transform(); } return data.local_transform; } Transform Node3D::get_global_transform() const { - ERR_FAIL_COND_V(!is_inside_tree(), Transform()); if (data.dirty & DIRTY_GLOBAL) { - if (data.dirty & DIRTY_LOCAL) { - _update_local_transform(); } if (data.parent && !data.toplevel_active) { - data.global_transform = data.parent->get_global_transform() * data.local_transform; } else { - data.global_transform = data.local_transform; } @@ -303,12 +281,10 @@ Transform Node3D::get_local_gizmo_transform() const { #endif Node3D *Node3D::get_parent_spatial() const { - return data.parent; } Transform Node3D::get_relative_transform(const Node *p_parent) const { - if (p_parent == this) return Transform(); @@ -321,7 +297,6 @@ Transform Node3D::get_relative_transform(const Node *p_parent) const { } void Node3D::set_translation(const Vector3 &p_translation) { - data.local_transform.origin = p_translation; _change_notify("transform"); _propagate_transform_changed(this); @@ -331,7 +306,6 @@ void Node3D::set_translation(const Vector3 &p_translation) { } void Node3D::set_rotation(const Vector3 &p_euler_rad) { - if (data.dirty & DIRTY_VECTORS) { data.scale = data.local_transform.basis.get_scale(); data.dirty &= ~DIRTY_VECTORS; @@ -347,12 +321,10 @@ void Node3D::set_rotation(const Vector3 &p_euler_rad) { } void Node3D::set_rotation_degrees(const Vector3 &p_euler_deg) { - set_rotation(p_euler_deg * Math_PI / 180.0); } void Node3D::set_scale(const Vector3 &p_scale) { - if (data.dirty & DIRTY_VECTORS) { data.rotation = data.local_transform.basis.get_rotation(); data.dirty &= ~DIRTY_VECTORS; @@ -368,12 +340,10 @@ void Node3D::set_scale(const Vector3 &p_scale) { } Vector3 Node3D::get_translation() const { - return data.local_transform.origin; } Vector3 Node3D::get_rotation() const { - if (data.dirty & DIRTY_VECTORS) { data.scale = data.local_transform.basis.get_scale(); data.rotation = data.local_transform.basis.get_rotation(); @@ -385,12 +355,10 @@ Vector3 Node3D::get_rotation() const { } Vector3 Node3D::get_rotation_degrees() const { - return get_rotation() * 180.0 / Math_PI; } Vector3 Node3D::get_scale() const { - if (data.dirty & DIRTY_VECTORS) { data.scale = data.local_transform.basis.get_scale(); data.rotation = data.local_transform.basis.get_rotation(); @@ -402,7 +370,6 @@ Vector3 Node3D::get_scale() const { } void Node3D::update_gizmo() { - #ifdef TOOLS_ENABLED if (!is_inside_world()) return; @@ -418,7 +385,6 @@ void Node3D::update_gizmo() { } void Node3D::set_gizmo(const Ref<Node3DGizmo> &p_gizmo) { - #ifdef TOOLS_ENABLED if (data.gizmo_disabled) @@ -427,7 +393,6 @@ void Node3D::set_gizmo(const Ref<Node3DGizmo> &p_gizmo) { data.gizmo->free(); data.gizmo = p_gizmo; if (data.gizmo.is_valid() && is_inside_world()) { - data.gizmo->create(); if (is_visible_in_tree()) { data.gizmo->redraw(); @@ -439,7 +404,6 @@ void Node3D::set_gizmo(const Ref<Node3DGizmo> &p_gizmo) { } Ref<Node3DGizmo> Node3D::get_gizmo() const { - #ifdef TOOLS_ENABLED return data.gizmo; @@ -450,7 +414,6 @@ Ref<Node3DGizmo> Node3D::get_gizmo() const { } void Node3D::_update_gizmo() { - #ifdef TOOLS_ENABLED if (!is_inside_world()) return; @@ -466,7 +429,6 @@ void Node3D::_update_gizmo() { #ifdef TOOLS_ENABLED void Node3D::set_disable_gizmo(bool p_enabled) { - data.gizmo_disabled = p_enabled; if (!p_enabled && data.gizmo.is_valid()) data.gizmo = Ref<Node3DGizmo>(); @@ -475,7 +437,6 @@ void Node3D::set_disable_gizmo(bool p_enabled) { #endif void Node3D::set_disable_scale(bool p_enabled) { - data.disable_scale = p_enabled; } @@ -484,11 +445,9 @@ bool Node3D::is_scale_disabled() const { } void Node3D::set_as_toplevel(bool p_enabled) { - if (data.toplevel == p_enabled) return; if (is_inside_tree() && !Engine::get_singleton()->is_editor_hint()) { - if (p_enabled) set_transform(get_global_transform()); else if (data.parent) @@ -503,12 +462,10 @@ void Node3D::set_as_toplevel(bool p_enabled) { } bool Node3D::is_set_as_toplevel() const { - return data.toplevel; } Ref<World3D> Node3D::get_world_3d() const { - ERR_FAIL_COND_V(!is_inside_world(), Ref<World3D>()); ERR_FAIL_COND_V(!data.viewport, Ref<World3D>()); @@ -516,7 +473,6 @@ Ref<World3D> Node3D::get_world_3d() const { } void Node3D::_propagate_visibility_changed() { - notification(NOTIFICATION_VISIBILITY_CHANGED); emit_signal(SceneStringNames::get_singleton()->visibility_changed); _change_notify("visible"); @@ -526,7 +482,6 @@ void Node3D::_propagate_visibility_changed() { #endif for (List<Node3D *>::Element *E = data.children.front(); E; E = E->next()) { - Node3D *c = E->get(); if (!c || !c->data.visible) continue; @@ -535,7 +490,6 @@ void Node3D::_propagate_visibility_changed() { } void Node3D::show() { - if (data.visible) return; @@ -548,7 +502,6 @@ void Node3D::show() { } void Node3D::hide() { - if (!data.visible) return; @@ -561,7 +514,6 @@ void Node3D::hide() { } bool Node3D::is_visible_in_tree() const { - const Node3D *s = this; while (s) { @@ -575,7 +527,6 @@ bool Node3D::is_visible_in_tree() const { } void Node3D::set_visible(bool p_visible) { - if (p_visible) show(); else @@ -583,7 +534,6 @@ void Node3D::set_visible(bool p_visible) { } bool Node3D::is_visible() const { - return data.visible; } @@ -594,34 +544,29 @@ void Node3D::rotate_object_local(const Vector3 &p_axis, float p_angle) { } void Node3D::rotate(const Vector3 &p_axis, float p_angle) { - Transform t = get_transform(); t.basis.rotate(p_axis, p_angle); set_transform(t); } void Node3D::rotate_x(float p_angle) { - Transform t = get_transform(); t.basis.rotate(Vector3(1, 0, 0), p_angle); set_transform(t); } void Node3D::rotate_y(float p_angle) { - Transform t = get_transform(); t.basis.rotate(Vector3(0, 1, 0), p_angle); set_transform(t); } void Node3D::rotate_z(float p_angle) { - Transform t = get_transform(); t.basis.rotate(Vector3(0, 0, 1), p_angle); set_transform(t); } void Node3D::translate(const Vector3 &p_offset) { - Transform t = get_transform(); t.translate(p_offset); set_transform(t); @@ -636,7 +581,6 @@ void Node3D::translate_object_local(const Vector3 &p_offset) { } void Node3D::scale(const Vector3 &p_ratio) { - Transform t = get_transform(); t.basis.scale(p_ratio); set_transform(t); @@ -649,14 +593,12 @@ void Node3D::scale_object_local(const Vector3 &p_scale) { } void Node3D::global_rotate(const Vector3 &p_axis, float p_angle) { - Transform t = get_global_transform(); t.basis.rotate(p_axis, p_angle); set_global_transform(t); } void Node3D::global_scale(const Vector3 &p_scale) { - Transform t = get_global_transform(); t.basis.scale(p_scale); set_global_transform(t); @@ -669,25 +611,21 @@ void Node3D::global_translate(const Vector3 &p_offset) { } void Node3D::orthonormalize() { - Transform t = get_transform(); t.orthonormalize(); set_transform(t); } void Node3D::set_identity() { - set_transform(Transform()); } void Node3D::look_at(const Vector3 &p_target, const Vector3 &p_up) { - Vector3 origin(get_global_transform().origin); look_at_from_position(origin, p_target, p_up); } void Node3D::look_at_from_position(const Vector3 &p_pos, const Vector3 &p_target, const Vector3 &p_up) { - ERR_FAIL_COND_MSG(p_pos == p_target, "Node origin and target are in the same position, look_at() failed."); ERR_FAIL_COND_MSG(p_up.cross(p_target - p_pos) == Vector3(), "Up vector and direction between node origin and target are aligned, look_at() failed."); @@ -701,12 +639,10 @@ void Node3D::look_at_from_position(const Vector3 &p_pos, const Vector3 &p_target } Vector3 Node3D::to_local(Vector3 p_global) const { - return get_global_transform().affine_inverse().xform(p_global); } Vector3 Node3D::to_global(Vector3 p_local) const { - return get_global_transform().xform(p_local); } @@ -737,7 +673,6 @@ void Node3D::force_update_transform() { } void Node3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_transform", "local"), &Node3D::set_transform); ClassDB::bind_method(D_METHOD("get_transform"), &Node3D::get_transform); ClassDB::bind_method(D_METHOD("set_translation", "translation"), &Node3D::set_translation); @@ -821,7 +756,6 @@ void Node3D::_bind_methods() { Node3D::Node3D() : xform_change(this) { - data.dirty = DIRTY_NONE; data.children_lock = 0; diff --git a/scene/3d/node_3d.h b/scene/3d/node_3d.h index a4191eb2b3..327d4671e9 100644 --- a/scene/3d/node_3d.h +++ b/scene/3d/node_3d.h @@ -35,7 +35,6 @@ #include "scene/main/scene_tree.h" class Node3DGizmo : public Reference { - GDCLASS(Node3DGizmo, Reference); public: @@ -50,7 +49,6 @@ public: }; class Node3D : public Node { - GDCLASS(Node3D, Node); OBJ_CATEGORY("3D"); @@ -64,7 +62,6 @@ class Node3D : public Node { mutable SelfList<Node> xform_change; struct Data { - mutable Transform global_transform; mutable Transform local_transform; mutable Vector3 rotation; diff --git a/scene/3d/path_3d.cpp b/scene/3d/path_3d.cpp index 4a425d1e0e..6f57bf81c4 100644 --- a/scene/3d/path_3d.cpp +++ b/scene/3d/path_3d.cpp @@ -37,7 +37,6 @@ void Path3D::_notification(int p_what) { } void Path3D::_curve_changed() { - if (is_inside_tree() && Engine::get_singleton()->is_editor_hint()) update_gizmo(); if (is_inside_tree()) { @@ -57,7 +56,6 @@ void Path3D::_curve_changed() { } void Path3D::set_curve(const Ref<Curve3D> &p_curve) { - if (curve.is_valid()) { curve->disconnect("changed", callable_mp(this, &Path3D::_curve_changed)); } @@ -71,12 +69,10 @@ void Path3D::set_curve(const Ref<Curve3D> &p_curve) { } Ref<Curve3D> Path3D::get_curve() const { - return curve; } void Path3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_curve", "curve"), &Path3D::set_curve); ClassDB::bind_method(D_METHOD("get_curve"), &Path3D::get_curve); @@ -86,14 +82,12 @@ void Path3D::_bind_methods() { } Path3D::Path3D() { - set_curve(Ref<Curve3D>(memnew(Curve3D))); //create one by default } ////////////// void PathFollow3D::_update_transform() { - if (!path) return; @@ -124,7 +118,6 @@ void PathFollow3D::_update_transform() { // will be replaced by "Vector3(h_offset, v_offset, 0)" where it was formerly used if (rotation_mode == ROTATION_ORIENTED) { - Vector3 forward = c->interpolate_baked(o_next, cubic) - pos; if (forward.length_squared() < CMP_EPSILON2) @@ -213,11 +206,8 @@ void PathFollow3D::_update_transform() { } void PathFollow3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - Node *parent = get_parent(); if (parent) { path = Object::cast_to<Path3D>(parent); @@ -228,26 +218,21 @@ void PathFollow3D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - path = nullptr; } break; } } void PathFollow3D::set_cubic_interpolation(bool p_enable) { - cubic = p_enable; } bool PathFollow3D::get_cubic_interpolation() const { - return cubic; } void PathFollow3D::_validate_property(PropertyInfo &property) const { - if (property.name == "offset") { - float max = 10000; if (path && path->get_curve().is_valid()) max = path->get_curve()->get_baked_length(); @@ -257,7 +242,6 @@ void PathFollow3D::_validate_property(PropertyInfo &property) const { } String PathFollow3D::get_configuration_warning() const { - if (!is_visible_in_tree() || !is_inside_tree()) return String(); @@ -274,7 +258,6 @@ String PathFollow3D::get_configuration_warning() const { } void PathFollow3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_offset", "offset"), &PathFollow3D::set_offset); ClassDB::bind_method(D_METHOD("get_offset"), &PathFollow3D::get_offset); @@ -336,42 +319,35 @@ void PathFollow3D::set_offset(float p_offset) { } void PathFollow3D::set_h_offset(float p_h_offset) { - h_offset = p_h_offset; if (path) _update_transform(); } float PathFollow3D::get_h_offset() const { - return h_offset; } void PathFollow3D::set_v_offset(float p_v_offset) { - v_offset = p_v_offset; if (path) _update_transform(); } float PathFollow3D::get_v_offset() const { - return v_offset; } float PathFollow3D::get_offset() const { - return offset; } void PathFollow3D::set_unit_offset(float p_unit_offset) { - if (path && path->get_curve().is_valid() && path->get_curve()->get_baked_length()) set_offset(p_unit_offset * path->get_curve()->get_baked_length()); } float PathFollow3D::get_unit_offset() const { - if (path && path->get_curve().is_valid() && path->get_curve()->get_baked_length()) return get_offset() / path->get_curve()->get_baked_length(); else @@ -379,7 +355,6 @@ float PathFollow3D::get_unit_offset() const { } void PathFollow3D::set_rotation_mode(RotationMode p_rotation_mode) { - rotation_mode = p_rotation_mode; update_configuration_warning(); @@ -387,22 +362,18 @@ void PathFollow3D::set_rotation_mode(RotationMode p_rotation_mode) { } PathFollow3D::RotationMode PathFollow3D::get_rotation_mode() const { - return rotation_mode; } void PathFollow3D::set_loop(bool p_loop) { - loop = p_loop; } bool PathFollow3D::has_loop() const { - return loop; } PathFollow3D::PathFollow3D() { - offset = 0; delta_offset = 0; h_offset = 0; diff --git a/scene/3d/path_3d.h b/scene/3d/path_3d.h index 6f0db8c5c2..5a33016bc6 100644 --- a/scene/3d/path_3d.h +++ b/scene/3d/path_3d.h @@ -35,7 +35,6 @@ #include "scene/resources/curve.h" class Path3D : public Node3D { - GDCLASS(Path3D, Node3D); Ref<Curve3D> curve; @@ -54,7 +53,6 @@ public: }; class PathFollow3D : public Node3D { - GDCLASS(PathFollow3D, Node3D); public: diff --git a/scene/3d/physics_body_3d.cpp b/scene/3d/physics_body_3d.cpp index d672c6f6b5..01e456debc 100644 --- a/scene/3d/physics_body_3d.cpp +++ b/scene/3d/physics_body_3d.cpp @@ -45,43 +45,35 @@ #endif Vector3 PhysicsBody3D::get_linear_velocity() const { - return Vector3(); } Vector3 PhysicsBody3D::get_angular_velocity() const { - return Vector3(); } float PhysicsBody3D::get_inverse_mass() const { - return 0; } void PhysicsBody3D::set_collision_layer(uint32_t p_layer) { - collision_layer = p_layer; PhysicsServer3D::get_singleton()->body_set_collision_layer(get_rid(), p_layer); } uint32_t PhysicsBody3D::get_collision_layer() const { - return collision_layer; } void PhysicsBody3D::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; PhysicsServer3D::get_singleton()->body_set_collision_mask(get_rid(), p_mask); } uint32_t PhysicsBody3D::get_collision_mask() const { - return collision_mask; } void PhysicsBody3D::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -91,12 +83,10 @@ void PhysicsBody3D::set_collision_mask_bit(int p_bit, bool p_value) { } bool PhysicsBody3D::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } void PhysicsBody3D::set_collision_layer_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_layer(); if (p_value) mask |= 1 << p_bit; @@ -106,7 +96,6 @@ void PhysicsBody3D::set_collision_layer_bit(int p_bit, bool p_value) { } bool PhysicsBody3D::get_collision_layer_bit(int p_bit) const { - return get_collision_layer() & (1 << p_bit); } @@ -125,7 +114,6 @@ TypedArray<PhysicsBody3D> PhysicsBody3D::get_collision_exceptions() { } void PhysicsBody3D::add_collision_exception_with(Node *p_node) { - ERR_FAIL_NULL(p_node); CollisionObject3D *collision_object = Object::cast_to<CollisionObject3D>(p_node); ERR_FAIL_COND_MSG(!collision_object, "Collision exception only works between two CollisionObject3Ds."); @@ -133,7 +121,6 @@ void PhysicsBody3D::add_collision_exception_with(Node *p_node) { } void PhysicsBody3D::remove_collision_exception_with(Node *p_node) { - ERR_FAIL_NULL(p_node); CollisionObject3D *collision_object = Object::cast_to<CollisionObject3D>(p_node); ERR_FAIL_COND_MSG(!collision_object, "Collision exception only works between two CollisionObject3Ds."); @@ -146,7 +133,6 @@ void PhysicsBody3D::_set_layers(uint32_t p_mask) { } uint32_t PhysicsBody3D::_get_layers() const { - return get_collision_layer(); } @@ -173,7 +159,6 @@ void PhysicsBody3D::_bind_methods() { PhysicsBody3D::PhysicsBody3D(PhysicsServer3D::BodyMode p_mode) : CollisionObject3D(PhysicsServer3D::get_singleton()->body_create(p_mode), false) { - collision_layer = 1; collision_mask = 1; } @@ -198,28 +183,23 @@ Ref<PhysicsMaterial> StaticBody3D::get_physics_material_override() const { } void StaticBody3D::set_constant_linear_velocity(const Vector3 &p_vel) { - constant_linear_velocity = p_vel; PhysicsServer3D::get_singleton()->body_set_state(get_rid(), PhysicsServer3D::BODY_STATE_LINEAR_VELOCITY, constant_linear_velocity); } void StaticBody3D::set_constant_angular_velocity(const Vector3 &p_vel) { - constant_angular_velocity = p_vel; PhysicsServer3D::get_singleton()->body_set_state(get_rid(), PhysicsServer3D::BODY_STATE_ANGULAR_VELOCITY, constant_angular_velocity); } Vector3 StaticBody3D::get_constant_linear_velocity() const { - return constant_linear_velocity; } Vector3 StaticBody3D::get_constant_angular_velocity() const { - return constant_angular_velocity; } void StaticBody3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant_linear_velocity", "vel"), &StaticBody3D::set_constant_linear_velocity); ClassDB::bind_method(D_METHOD("set_constant_angular_velocity", "vel"), &StaticBody3D::set_constant_angular_velocity); ClassDB::bind_method(D_METHOD("get_constant_linear_velocity"), &StaticBody3D::get_constant_linear_velocity); @@ -254,7 +234,6 @@ void StaticBody3D::_reload_physics_characteristics() { } void RigidBody3D::_body_enter_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -271,7 +250,6 @@ void RigidBody3D::_body_enter_tree(ObjectID p_id) { emit_signal(SceneStringNames::get_singleton()->body_entered, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_entered, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].local_shape); } @@ -279,7 +257,6 @@ void RigidBody3D::_body_enter_tree(ObjectID p_id) { } void RigidBody3D::_body_exit_tree(ObjectID p_id) { - Object *obj = ObjectDB::get_instance(p_id); Node *node = Object::cast_to<Node>(obj); ERR_FAIL_COND(!node); @@ -294,7 +271,6 @@ void RigidBody3D::_body_exit_tree(ObjectID p_id) { emit_signal(SceneStringNames::get_singleton()->body_exited, node); for (int i = 0; i < E->get().shapes.size(); i++) { - emit_signal(SceneStringNames::get_singleton()->body_shape_exited, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].local_shape); } @@ -302,7 +278,6 @@ void RigidBody3D::_body_exit_tree(ObjectID p_id) { } void RigidBody3D::_body_inout(int p_status, ObjectID p_instance, int p_body_shape, int p_local_shape) { - bool body_in = p_status == 1; ObjectID objid = p_instance; @@ -316,7 +291,6 @@ void RigidBody3D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap if (body_in) { if (!E) { - E = contact_monitor->body_map.insert(objid, BodyState()); //E->get().rc=0; E->get().in_tree = node && node->is_inside_tree(); @@ -337,7 +311,6 @@ void RigidBody3D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap } } else { - //E->get().rc--; if (node) @@ -346,7 +319,6 @@ void RigidBody3D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap bool in_tree = E->get().in_tree; if (E->get().shapes.empty()) { - if (node) { node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &RigidBody3D::_body_enter_tree)); node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &RigidBody3D::_body_exit_tree)); @@ -363,14 +335,12 @@ void RigidBody3D::_body_inout(int p_status, ObjectID p_instance, int p_body_shap } struct _RigidBodyInOut { - ObjectID id; int shape; int local_shape; }; void RigidBody3D::_direct_state_changed(Object *p_state) { - #ifdef DEBUG_ENABLED state = Object::cast_to<PhysicsDirectBodyState3D>(p_state); #else @@ -390,15 +360,12 @@ void RigidBody3D::_direct_state_changed(Object *p_state) { set_ignore_transform_notification(false); if (contact_monitor) { - contact_monitor->locked = true; //untag all int rc = 0; for (Map<ObjectID, BodyState>::Element *E = contact_monitor->body_map.front(); E; E = E->next()) { - for (int i = 0; i < E->get().shapes.size(); i++) { - E->get().shapes[i].tagged = false; rc++; } @@ -412,7 +379,6 @@ void RigidBody3D::_direct_state_changed(Object *p_state) { //put the ones to add for (int i = 0; i < state->get_contact_count(); i++) { - ObjectID obj = state->get_contact_collider_id(i); int local_shape = state->get_contact_local_shape(i); int shape = state->get_contact_collider_shape(i); @@ -431,7 +397,6 @@ void RigidBody3D::_direct_state_changed(Object *p_state) { ShapePair sp(shape, local_shape); int idx = E->get().shapes.find(sp); if (idx == -1) { - toadd[toadd_count].local_shape = local_shape; toadd[toadd_count].id = obj; toadd[toadd_count].shape = shape; @@ -445,11 +410,8 @@ void RigidBody3D::_direct_state_changed(Object *p_state) { //put the ones to remove for (Map<ObjectID, BodyState>::Element *E = contact_monitor->body_map.front(); E; E = E->next()) { - for (int i = 0; i < E->get().shapes.size(); i++) { - if (!E->get().shapes[i].tagged) { - toremove[toremove_count].body_id = E->key(); toremove[toremove_count].pair = E->get().shapes[i]; toremove_count++; @@ -460,14 +422,12 @@ void RigidBody3D::_direct_state_changed(Object *p_state) { //process remotions for (int i = 0; i < toremove_count; i++) { - _body_inout(0, toremove[i].body_id, toremove[i].pair.body_shape, toremove[i].pair.local_shape); } //process aditions for (int i = 0; i < toadd_count; i++) { - _body_inout(1, toadd[i].id, toadd[i].shape, toadd[i].local_shape); } @@ -478,7 +438,6 @@ void RigidBody3D::_direct_state_changed(Object *p_state) { } void RigidBody3D::_notification(int p_what) { - #ifdef TOOLS_ENABLED if (p_what == NOTIFICATION_ENTER_TREE) { if (Engine::get_singleton()->is_editor_hint()) { @@ -496,16 +455,12 @@ void RigidBody3D::_notification(int p_what) { } void RigidBody3D::set_mode(Mode p_mode) { - mode = p_mode; switch (p_mode) { - case MODE_RIGID: { - PhysicsServer3D::get_singleton()->body_set_mode(get_rid(), PhysicsServer3D::BODY_MODE_RIGID); } break; case MODE_STATIC: { - PhysicsServer3D::get_singleton()->body_set_mode(get_rid(), PhysicsServer3D::BODY_MODE_STATIC); } break; @@ -514,7 +469,6 @@ void RigidBody3D::set_mode(Mode p_mode) { } break; case MODE_KINEMATIC: { - PhysicsServer3D::get_singleton()->body_set_mode(get_rid(), PhysicsServer3D::BODY_MODE_KINEMATIC); } break; } @@ -522,12 +476,10 @@ void RigidBody3D::set_mode(Mode p_mode) { } RigidBody3D::Mode RigidBody3D::get_mode() const { - return mode; } void RigidBody3D::set_mass(real_t p_mass) { - ERR_FAIL_COND(p_mass <= 0); mass = p_mass; _change_notify("mass"); @@ -535,16 +487,13 @@ void RigidBody3D::set_mass(real_t p_mass) { PhysicsServer3D::get_singleton()->body_set_param(get_rid(), PhysicsServer3D::BODY_PARAM_MASS, mass); } real_t RigidBody3D::get_mass() const { - return mass; } void RigidBody3D::set_weight(real_t p_weight) { - set_mass(p_weight / real_t(GLOBAL_DEF("physics/3d/default_gravity", 9.8))); } real_t RigidBody3D::get_weight() const { - return mass * real_t(GLOBAL_DEF("physics/3d/default_gravity", 9.8)); } @@ -568,39 +517,32 @@ Ref<PhysicsMaterial> RigidBody3D::get_physics_material_override() const { } void RigidBody3D::set_gravity_scale(real_t p_gravity_scale) { - gravity_scale = p_gravity_scale; PhysicsServer3D::get_singleton()->body_set_param(get_rid(), PhysicsServer3D::BODY_PARAM_GRAVITY_SCALE, gravity_scale); } real_t RigidBody3D::get_gravity_scale() const { - return gravity_scale; } void RigidBody3D::set_linear_damp(real_t p_linear_damp) { - ERR_FAIL_COND(p_linear_damp < -1); linear_damp = p_linear_damp; PhysicsServer3D::get_singleton()->body_set_param(get_rid(), PhysicsServer3D::BODY_PARAM_LINEAR_DAMP, linear_damp); } real_t RigidBody3D::get_linear_damp() const { - return linear_damp; } void RigidBody3D::set_angular_damp(real_t p_angular_damp) { - ERR_FAIL_COND(p_angular_damp < -1); angular_damp = p_angular_damp; PhysicsServer3D::get_singleton()->body_set_param(get_rid(), PhysicsServer3D::BODY_PARAM_ANGULAR_DAMP, angular_damp); } real_t RigidBody3D::get_angular_damp() const { - return angular_damp; } void RigidBody3D::set_axis_velocity(const Vector3 &p_axis) { - Vector3 v = state ? state->get_linear_velocity() : linear_velocity; Vector3 axis = p_axis.normalized(); v -= axis * axis.dot(v); @@ -614,7 +556,6 @@ void RigidBody3D::set_axis_velocity(const Vector3 &p_axis) { } void RigidBody3D::set_linear_velocity(const Vector3 &p_velocity) { - linear_velocity = p_velocity; if (state) state->set_linear_velocity(linear_velocity); @@ -623,12 +564,10 @@ void RigidBody3D::set_linear_velocity(const Vector3 &p_velocity) { } Vector3 RigidBody3D::get_linear_velocity() const { - return linear_velocity; } void RigidBody3D::set_angular_velocity(const Vector3 &p_velocity) { - angular_velocity = p_velocity; if (state) state->set_angular_velocity(angular_velocity); @@ -636,12 +575,10 @@ void RigidBody3D::set_angular_velocity(const Vector3 &p_velocity) { PhysicsServer3D::get_singleton()->body_set_state(get_rid(), PhysicsServer3D::BODY_STATE_ANGULAR_VELOCITY, angular_velocity); } Vector3 RigidBody3D::get_angular_velocity() const { - return angular_velocity; } void RigidBody3D::set_use_custom_integrator(bool p_enable) { - if (custom_integrator == p_enable) return; @@ -649,40 +586,33 @@ void RigidBody3D::set_use_custom_integrator(bool p_enable) { PhysicsServer3D::get_singleton()->body_set_omit_force_integration(get_rid(), p_enable); } bool RigidBody3D::is_using_custom_integrator() { - return custom_integrator; } void RigidBody3D::set_sleeping(bool p_sleeping) { - sleeping = p_sleeping; PhysicsServer3D::get_singleton()->body_set_state(get_rid(), PhysicsServer3D::BODY_STATE_SLEEPING, sleeping); } void RigidBody3D::set_can_sleep(bool p_active) { - can_sleep = p_active; PhysicsServer3D::get_singleton()->body_set_state(get_rid(), PhysicsServer3D::BODY_STATE_CAN_SLEEP, p_active); } bool RigidBody3D::is_able_to_sleep() const { - return can_sleep; } bool RigidBody3D::is_sleeping() const { - return sleeping; } void RigidBody3D::set_max_contacts_reported(int p_amount) { - max_contacts_reported = p_amount; PhysicsServer3D::get_singleton()->body_set_max_contacts_reported(get_rid(), p_amount); } int RigidBody3D::get_max_contacts_reported() const { - return max_contacts_reported; } @@ -703,7 +633,6 @@ void RigidBody3D::apply_central_impulse(const Vector3 &p_impulse) { } void RigidBody3D::apply_impulse(const Vector3 &p_pos, const Vector3 &p_impulse) { - PhysicsServer3D::get_singleton()->body_apply_impulse(get_rid(), p_pos, p_impulse); } @@ -712,27 +641,22 @@ void RigidBody3D::apply_torque_impulse(const Vector3 &p_impulse) { } void RigidBody3D::set_use_continuous_collision_detection(bool p_enable) { - ccd = p_enable; PhysicsServer3D::get_singleton()->body_set_enable_continuous_collision_detection(get_rid(), p_enable); } bool RigidBody3D::is_using_continuous_collision_detection() const { - return ccd; } void RigidBody3D::set_contact_monitor(bool p_enabled) { - if (p_enabled == is_contact_monitor_enabled()) return; if (!p_enabled) { - ERR_FAIL_COND_MSG(contact_monitor->locked, "Can't disable contact monitoring during in/out callback. Use call_deferred(\"set_contact_monitor\", false) instead."); for (Map<ObjectID, BodyState>::Element *E = contact_monitor->body_map.front(); E; E = E->next()) { - //clean up mess Object *obj = ObjectDB::get_instance(E->key()); Node *node = Object::cast_to<Node>(obj); @@ -746,14 +670,12 @@ void RigidBody3D::set_contact_monitor(bool p_enabled) { memdelete(contact_monitor); contact_monitor = nullptr; } else { - contact_monitor = memnew(ContactMonitor); contact_monitor->locked = false; } } bool RigidBody3D::is_contact_monitor_enabled() const { - return contact_monitor != nullptr; } @@ -766,7 +688,6 @@ bool RigidBody3D::get_axis_lock(PhysicsServer3D::BodyAxis p_axis) const { } Array RigidBody3D::get_colliding_bodies() const { - ERR_FAIL_COND_V(!contact_monitor, Array()); Array ret; @@ -785,7 +706,6 @@ Array RigidBody3D::get_colliding_bodies() const { } String RigidBody3D::get_configuration_warning() const { - Transform t = get_transform(); String warning = CollisionObject3D::get_configuration_warning(); @@ -801,7 +721,6 @@ String RigidBody3D::get_configuration_warning() const { } void RigidBody3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_mode", "mode"), &RigidBody3D::set_mode); ClassDB::bind_method(D_METHOD("get_mode"), &RigidBody3D::get_mode); @@ -905,7 +824,6 @@ void RigidBody3D::_bind_methods() { RigidBody3D::RigidBody3D() : PhysicsBody3D(PhysicsServer3D::BODY_MODE_RIGID) { - mode = MODE_RIGID; mass = 1; @@ -928,7 +846,6 @@ RigidBody3D::RigidBody3D() : } RigidBody3D::~RigidBody3D() { - if (contact_monitor) memdelete(contact_monitor); } @@ -947,7 +864,6 @@ void RigidBody3D::_reload_physics_characteristics() { ////////////////////////// Ref<KinematicCollision3D> KinematicBody3D::_move(const Vector3 &p_motion, bool p_infinite_inertia, bool p_exclude_raycast_shapes, bool p_test_only) { - Collision col; if (move_and_collide(p_motion, p_infinite_inertia, col, p_exclude_raycast_shapes, p_test_only)) { if (motion_cache.is_null()) { @@ -972,7 +888,6 @@ Vector3 KinematicBody3D::get_angular_velocity() const { } bool KinematicBody3D::move_and_collide(const Vector3 &p_motion, bool p_infinite_inertia, Collision &r_collision, bool p_exclude_raycast_shapes, bool p_test_only) { - Transform gt = get_global_transform(); PhysicsServer3D::MotionResult result; bool colliding = PhysicsServer3D::get_singleton()->body_test_motion(get_rid(), gt, p_motion, p_infinite_inertia, &result, p_exclude_raycast_shapes); @@ -1008,7 +923,6 @@ bool KinematicBody3D::move_and_collide(const Vector3 &p_motion, bool p_infinite_ #define FLOOR_ANGLE_THRESHOLD 0.01 Vector3 KinematicBody3D::move_and_slide(const Vector3 &p_linear_velocity, const Vector3 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) { - Vector3 body_velocity = p_linear_velocity; Vector3 body_velocity_normal = body_velocity.normalized(); @@ -1030,7 +944,6 @@ Vector3 KinematicBody3D::move_and_slide(const Vector3 &p_linear_velocity, const floor_velocity = Vector3(); while (p_max_slides) { - Collision collision; bool found_collision = false; @@ -1102,7 +1015,6 @@ Vector3 KinematicBody3D::move_and_slide(const Vector3 &p_linear_velocity, const } Vector3 KinematicBody3D::move_and_slide_with_snap(const Vector3 &p_linear_velocity, const Vector3 &p_snap, const Vector3 &p_up_direction, bool p_stop_on_slope, int p_max_slides, float p_floor_max_angle, bool p_infinite_inertia) { - bool was_on_floor = on_floor; Vector3 ret = move_and_slide(p_linear_velocity, p_up_direction, p_stop_on_slope, p_max_slides, p_floor_max_angle, p_infinite_inertia); @@ -1114,7 +1026,6 @@ Vector3 KinematicBody3D::move_and_slide_with_snap(const Vector3 &p_linear_veloci Transform gt = get_global_transform(); if (move_and_collide(p_snap, p_infinite_inertia, col, false, true)) { - bool apply = true; if (p_up_direction != Vector3()) { if (Math::acos(p_up_direction.normalized().dot(col.normal)) < p_floor_max_angle) { @@ -1141,38 +1052,31 @@ Vector3 KinematicBody3D::move_and_slide_with_snap(const Vector3 &p_linear_veloci } bool KinematicBody3D::is_on_floor() const { - return on_floor; } bool KinematicBody3D::is_on_wall() const { - return on_wall; } bool KinematicBody3D::is_on_ceiling() const { - return on_ceiling; } Vector3 KinematicBody3D::get_floor_normal() const { - return floor_normal; } Vector3 KinematicBody3D::get_floor_velocity() const { - return floor_velocity; } bool KinematicBody3D::test_move(const Transform &p_from, const Vector3 &p_motion, bool p_infinite_inertia) { - ERR_FAIL_COND_V(!is_inside_tree(), false); return PhysicsServer3D::get_singleton()->body_test_motion(get_rid(), p_from, p_motion, p_infinite_inertia); } bool KinematicBody3D::separate_raycast_shapes(bool p_infinite_inertia, Collision &r_collision) { - PhysicsServer3D::SeparationResult sep_res[8]; //max 8 rays Transform gt = get_global_transform(); @@ -1217,17 +1121,14 @@ bool KinematicBody3D::get_axis_lock(PhysicsServer3D::BodyAxis p_axis) const { } void KinematicBody3D::set_safe_margin(float p_margin) { - margin = p_margin; PhysicsServer3D::get_singleton()->body_set_kinematic_safe_margin(get_rid(), margin); } float KinematicBody3D::get_safe_margin() const { - return margin; } int KinematicBody3D::get_slide_count() const { - return colliders.size(); } @@ -1237,7 +1138,6 @@ KinematicBody3D::Collision KinematicBody3D::get_slide_collision(int p_bounce) co } Ref<KinematicCollision3D> KinematicBody3D::_get_slide_collision(int p_bounce) { - ERR_FAIL_INDEX_V(p_bounce, colliders.size(), Ref<KinematicCollision3D>()); if (p_bounce >= slide_colliders.size()) { slide_colliders.resize(p_bounce + 1); @@ -1265,7 +1165,6 @@ void KinematicBody3D::_notification(int p_what) { } void KinematicBody3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("_direct_state_changed"), &KinematicBody3D::_direct_state_changed); ClassDB::bind_method(D_METHOD("move_and_collide", "rel_vec", "infinite_inertia", "exclude_raycast_shapes", "test_only"), &KinematicBody3D::_move, DEFVAL(true), DEFVAL(true), DEFVAL(false)); @@ -1309,7 +1208,6 @@ void KinematicBody3D::_direct_state_changed(Object *p_state) { KinematicBody3D::KinematicBody3D() : PhysicsBody3D(PhysicsServer3D::BODY_MODE_KINEMATIC) { - margin = 0.001; locked_axis = 0; on_floor = false; @@ -1319,7 +1217,6 @@ KinematicBody3D::KinematicBody3D() : PhysicsServer3D::get_singleton()->body_set_force_integration_callback(get_rid(), this, "_direct_state_changed"); } KinematicBody3D::~KinematicBody3D() { - if (motion_cache.is_valid()) { motion_cache->owner = nullptr; } @@ -1333,7 +1230,6 @@ KinematicBody3D::~KinematicBody3D() { /////////////////////////////////////// Vector3 KinematicCollision3D::get_position() const { - return collision.collision; } Vector3 KinematicCollision3D::get_normal() const { @@ -1353,7 +1249,6 @@ Object *KinematicCollision3D::get_local_shape() const { } Object *KinematicCollision3D::get_collider() const { - if (collision.collider.is_valid()) { return ObjectDB::get_instance(collision.collider); } @@ -1361,11 +1256,9 @@ Object *KinematicCollision3D::get_collider() const { return nullptr; } ObjectID KinematicCollision3D::get_collider_id() const { - return collision.collider; } Object *KinematicCollision3D::get_collider_shape() const { - Object *collider = get_collider(); if (collider) { CollisionObject3D *obj2d = Object::cast_to<CollisionObject3D>(collider); @@ -1378,20 +1271,16 @@ Object *KinematicCollision3D::get_collider_shape() const { return nullptr; } int KinematicCollision3D::get_collider_shape_index() const { - return collision.collider_shape; } Vector3 KinematicCollision3D::get_collider_velocity() const { - return collision.collider_vel; } Variant KinematicCollision3D::get_collider_metadata() const { - return Variant(); } void KinematicCollision3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_position"), &KinematicCollision3D::get_position); ClassDB::bind_method(D_METHOD("get_normal"), &KinematicCollision3D::get_normal); ClassDB::bind_method(D_METHOD("get_travel"), &KinematicCollision3D::get_travel); @@ -1418,7 +1307,6 @@ void KinematicCollision3D::_bind_methods() { } KinematicCollision3D::KinematicCollision3D() { - collision.collider_shape = 0; collision.local_shape = 0; owner = nullptr; @@ -2039,11 +1927,9 @@ bool PhysicalBone3D::_get(const StringName &p_name, Variant &r_ret) const { } void PhysicalBone3D::_get_property_list(List<PropertyInfo> *p_list) const { - Skeleton3D *parent = find_skeleton_parent(get_parent()); if (parent) { - String names; for (int i = 0; i < parent->get_bone_count(); i++) { if (i > 0) @@ -2053,7 +1939,6 @@ void PhysicalBone3D::_get_property_list(List<PropertyInfo> *p_list) const { p_list->push_back(PropertyInfo(Variant::STRING_NAME, "bone_name", PROPERTY_HINT_ENUM, names)); } else { - p_list->push_back(PropertyInfo(Variant::STRING_NAME, "bone_name")); } @@ -2087,7 +1972,6 @@ void PhysicalBone3D::_notification(int p_what) { break; case NOTIFICATION_TRANSFORM_CHANGED: if (Engine::get_singleton()->is_editor_hint()) { - update_offset(); } break; @@ -2095,7 +1979,6 @@ void PhysicalBone3D::_notification(int p_what) { } void PhysicalBone3D::_direct_state_changed(Object *p_state) { - if (!simulate_physics || !_internal_simulate_physics) { return; } @@ -2238,7 +2121,6 @@ void PhysicalBone3D::_fix_joint_offset() { } void PhysicalBone3D::_reload_joint() { - if (joint.is_valid()) { PhysicsServer3D::get_singleton()->free(joint); joint = RID(); @@ -2259,7 +2141,6 @@ void PhysicalBone3D::_reload_joint() { switch (get_joint_type()) { case JOINT_TYPE_PIN: { - joint = PhysicsServer3D::get_singleton()->joint_create_pin(body_a->get_rid(), local_a.origin, get_rid(), joint_offset.origin); const PinJointData *pjd(static_cast<const PinJointData *>(joint_data)); PhysicsServer3D::get_singleton()->pin_joint_set_param(joint, PhysicsServer3D::PIN_JOINT_BIAS, pjd->bias); @@ -2268,7 +2149,6 @@ void PhysicalBone3D::_reload_joint() { } break; case JOINT_TYPE_CONE: { - joint = PhysicsServer3D::get_singleton()->joint_create_cone_twist(body_a->get_rid(), local_a, get_rid(), joint_offset); const ConeJointData *cjd(static_cast<const ConeJointData *>(joint_data)); PhysicsServer3D::get_singleton()->cone_twist_joint_set_param(joint, PhysicsServer3D::CONE_TWIST_JOINT_SWING_SPAN, cjd->swing_span); @@ -2279,7 +2159,6 @@ void PhysicalBone3D::_reload_joint() { } break; case JOINT_TYPE_HINGE: { - joint = PhysicsServer3D::get_singleton()->joint_create_hinge(body_a->get_rid(), local_a, get_rid(), joint_offset); const HingeJointData *hjd(static_cast<const HingeJointData *>(joint_data)); PhysicsServer3D::get_singleton()->hinge_joint_set_flag(joint, PhysicsServer3D::HINGE_JOINT_FLAG_USE_LIMIT, hjd->angular_limit_enabled); @@ -2291,7 +2170,6 @@ void PhysicalBone3D::_reload_joint() { } break; case JOINT_TYPE_SLIDER: { - joint = PhysicsServer3D::get_singleton()->joint_create_slider(body_a->get_rid(), local_a, get_rid(), joint_offset); const SliderJointData *sjd(static_cast<const SliderJointData *>(joint_data)); PhysicsServer3D::get_singleton()->slider_joint_set_param(joint, PhysicsServer3D::SLIDER_JOINT_LINEAR_LIMIT_UPPER, sjd->linear_limit_upper); @@ -2307,7 +2185,6 @@ void PhysicalBone3D::_reload_joint() { } break; case JOINT_TYPE_6DOF: { - joint = PhysicsServer3D::get_singleton()->joint_create_generic_6dof(body_a->get_rid(), local_a, get_rid(), joint_offset); const SixDOFJointData *g6dofjd(static_cast<const SixDOFJointData *>(joint_data)); for (int axis = 0; axis < 3; ++axis) { @@ -2370,7 +2247,6 @@ Skeleton3D *PhysicalBone3D::find_skeleton_parent() { } void PhysicalBone3D::set_joint_type(JointType p_joint_type) { - if (p_joint_type == get_joint_type()) return; @@ -2469,7 +2345,6 @@ bool PhysicalBone3D::is_simulating_physics() { } void PhysicalBone3D::set_bone_name(const String &p_name) { - bone_name = p_name; bone_id = -1; @@ -2478,34 +2353,28 @@ void PhysicalBone3D::set_bone_name(const String &p_name) { } const String &PhysicalBone3D::get_bone_name() const { - return bone_name; } void PhysicalBone3D::set_mass(real_t p_mass) { - ERR_FAIL_COND(p_mass <= 0); mass = p_mass; PhysicsServer3D::get_singleton()->body_set_param(get_rid(), PhysicsServer3D::BODY_PARAM_MASS, mass); } real_t PhysicalBone3D::get_mass() const { - return mass; } void PhysicalBone3D::set_weight(real_t p_weight) { - set_mass(p_weight / real_t(GLOBAL_DEF("physics/3d/default_gravity", 9.8))); } real_t PhysicalBone3D::get_weight() const { - return mass * real_t(GLOBAL_DEF("physics/3d/default_gravity", 9.8)); } void PhysicalBone3D::set_friction(real_t p_friction) { - ERR_FAIL_COND(p_friction < 0 || p_friction > 1); friction = p_friction; @@ -2513,12 +2382,10 @@ void PhysicalBone3D::set_friction(real_t p_friction) { } real_t PhysicalBone3D::get_friction() const { - return friction; } void PhysicalBone3D::set_bounce(real_t p_bounce) { - ERR_FAIL_COND(p_bounce < 0 || p_bounce > 1); bounce = p_bounce; @@ -2526,18 +2393,15 @@ void PhysicalBone3D::set_bounce(real_t p_bounce) { } real_t PhysicalBone3D::get_bounce() const { - return bounce; } void PhysicalBone3D::set_gravity_scale(real_t p_gravity_scale) { - gravity_scale = p_gravity_scale; PhysicsServer3D::get_singleton()->body_set_param(get_rid(), PhysicsServer3D::BODY_PARAM_GRAVITY_SCALE, gravity_scale); } real_t PhysicalBone3D::get_gravity_scale() const { - return gravity_scale; } @@ -2614,7 +2478,6 @@ void PhysicalBone3D::update_bone_id() { void PhysicalBone3D::update_offset() { #ifdef TOOLS_ENABLED if (parent_skeleton) { - Transform bone_transform(parent_skeleton->get_global_transform()); if (-1 != bone_id) bone_transform *= parent_skeleton->get_bone_global_pose(bone_id); diff --git a/scene/3d/physics_body_3d.h b/scene/3d/physics_body_3d.h index 205052f798..3a5b94e3b7 100644 --- a/scene/3d/physics_body_3d.h +++ b/scene/3d/physics_body_3d.h @@ -38,7 +38,6 @@ #include "skeleton_3d.h" class PhysicsBody3D : public CollisionObject3D { - GDCLASS(PhysicsBody3D, CollisionObject3D); uint32_t collision_layer; @@ -76,7 +75,6 @@ public: }; class StaticBody3D : public PhysicsBody3D { - GDCLASS(StaticBody3D, PhysicsBody3D); Vector3 constant_linear_velocity; @@ -105,7 +103,6 @@ private: }; class RigidBody3D : public PhysicsBody3D { - GDCLASS(RigidBody3D, PhysicsBody3D); public: @@ -138,7 +135,6 @@ protected: bool custom_integrator; struct ShapePair { - int body_shape; int local_shape; bool tagged; @@ -157,19 +153,16 @@ protected: } }; struct RigidBody3D_RemoveAction { - ObjectID body_id; ShapePair pair; }; struct BodyState { - //int rc; bool in_tree; VSet<ShapePair> shapes; }; struct ContactMonitor { - bool locked; Map<ObjectID, BodyState> body_map; }; @@ -261,7 +254,6 @@ VARIANT_ENUM_CAST(RigidBody3D::Mode); class KinematicCollision3D; class KinematicBody3D : public PhysicsBody3D { - GDCLASS(KinematicBody3D, PhysicsBody3D); public: @@ -338,7 +330,6 @@ public: }; class KinematicCollision3D : public Reference { - GDCLASS(KinematicCollision3D, Reference); KinematicBody3D *owner; @@ -365,7 +356,6 @@ public: }; class PhysicalBone3D : public PhysicsBody3D { - GDCLASS(PhysicalBone3D, PhysicsBody3D); public: diff --git a/scene/3d/physics_joint_3d.cpp b/scene/3d/physics_joint_3d.cpp index b6953fafac..d1a26f33bf 100644 --- a/scene/3d/physics_joint_3d.cpp +++ b/scene/3d/physics_joint_3d.cpp @@ -31,7 +31,6 @@ #include "physics_joint_3d.h" void Joint3D::_update_joint(bool p_only_free) { - if (joint.is_valid()) { if (ba.is_valid() && bb.is_valid()) PhysicsServer3D::get_singleton()->body_remove_collision_exception(ba, bb); @@ -72,7 +71,6 @@ void Joint3D::_update_joint(bool p_only_free) { } void Joint3D::set_node_a(const NodePath &p_node_a) { - if (a == p_node_a) return; @@ -81,38 +79,31 @@ void Joint3D::set_node_a(const NodePath &p_node_a) { } NodePath Joint3D::get_node_a() const { - return a; } void Joint3D::set_node_b(const NodePath &p_node_b) { - if (b == p_node_b) return; b = p_node_b; _update_joint(); } NodePath Joint3D::get_node_b() const { - return b; } void Joint3D::set_solver_priority(int p_priority) { - solver_priority = p_priority; if (joint.is_valid()) PhysicsServer3D::get_singleton()->joint_set_solver_priority(joint, solver_priority); } int Joint3D::get_solver_priority() const { - return solver_priority; } void Joint3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_READY: { _update_joint(); } break; @@ -125,7 +116,6 @@ void Joint3D::_notification(int p_what) { } void Joint3D::set_exclude_nodes_from_collision(bool p_enable) { - if (exclude_from_collision == p_enable) return; exclude_from_collision = p_enable; @@ -133,12 +123,10 @@ void Joint3D::set_exclude_nodes_from_collision(bool p_enable) { } bool Joint3D::get_exclude_nodes_from_collision() const { - return exclude_from_collision; } void Joint3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_node_a", "node"), &Joint3D::set_node_a); ClassDB::bind_method(D_METHOD("get_node_a"), &Joint3D::get_node_a); @@ -159,7 +147,6 @@ void Joint3D::_bind_methods() { } Joint3D::Joint3D() { - exclude_from_collision = true; solver_priority = 1; set_notify_transform(true); @@ -168,7 +155,6 @@ Joint3D::Joint3D() { /////////////////////////////////// void PinJoint3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_param", "param", "value"), &PinJoint3D::set_param); ClassDB::bind_method(D_METHOD("get_param", "param"), &PinJoint3D::get_param); @@ -182,20 +168,17 @@ void PinJoint3D::_bind_methods() { } void PinJoint3D::set_param(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, 3); params[p_param] = p_value; if (get_joint().is_valid()) PhysicsServer3D::get_singleton()->pin_joint_set_param(get_joint(), PhysicsServer3D::PinJointParam(p_param), p_value); } float PinJoint3D::get_param(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, 3, 0); return params[p_param]; } RID PinJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b) { - Vector3 pinpos = get_global_transform().origin; Vector3 local_a = body_a->get_global_transform().affine_inverse().xform(pinpos); Vector3 local_b; @@ -213,7 +196,6 @@ RID PinJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b) { } PinJoint3D::PinJoint3D() { - params[PARAM_BIAS] = 0.3; params[PARAM_DAMPING] = 1; params[PARAM_IMPULSE_CLAMP] = 0; @@ -224,27 +206,22 @@ PinJoint3D::PinJoint3D() { /////////////////////////////////// void HingeJoint3D::_set_upper_limit(float p_limit) { - set_param(PARAM_LIMIT_UPPER, Math::deg2rad(p_limit)); } float HingeJoint3D::_get_upper_limit() const { - return Math::rad2deg(get_param(PARAM_LIMIT_UPPER)); } void HingeJoint3D::_set_lower_limit(float p_limit) { - set_param(PARAM_LIMIT_LOWER, Math::deg2rad(p_limit)); } float HingeJoint3D::_get_lower_limit() const { - return Math::rad2deg(get_param(PARAM_LIMIT_LOWER)); } void HingeJoint3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_param", "param", "value"), &HingeJoint3D::set_param); ClassDB::bind_method(D_METHOD("get_param", "param"), &HingeJoint3D::get_param); @@ -286,7 +263,6 @@ void HingeJoint3D::_bind_methods() { } void HingeJoint3D::set_param(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); params[p_param] = p_value; if (get_joint().is_valid()) @@ -295,13 +271,11 @@ void HingeJoint3D::set_param(Param p_param, float p_value) { update_gizmo(); } float HingeJoint3D::get_param(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return params[p_param]; } void HingeJoint3D::set_flag(Flag p_flag, bool p_value) { - ERR_FAIL_INDEX(p_flag, FLAG_MAX); flags[p_flag] = p_value; if (get_joint().is_valid()) @@ -310,13 +284,11 @@ void HingeJoint3D::set_flag(Flag p_flag, bool p_value) { update_gizmo(); } bool HingeJoint3D::get_flag(Flag p_flag) const { - ERR_FAIL_INDEX_V(p_flag, FLAG_MAX, false); return flags[p_flag]; } RID HingeJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b) { - Transform gt = get_global_transform(); Transform ainv = body_a->get_global_transform().affine_inverse(); @@ -343,7 +315,6 @@ RID HingeJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b) } HingeJoint3D::HingeJoint3D() { - params[PARAM_BIAS] = 0.3; params[PARAM_LIMIT_UPPER] = Math_PI * 0.5; params[PARAM_LIMIT_LOWER] = -Math_PI * 0.5; @@ -362,27 +333,22 @@ HingeJoint3D::HingeJoint3D() { ////////////////////////////////// void SliderJoint3D::_set_upper_limit_angular(float p_limit_angular) { - set_param(PARAM_ANGULAR_LIMIT_UPPER, Math::deg2rad(p_limit_angular)); } float SliderJoint3D::_get_upper_limit_angular() const { - return Math::rad2deg(get_param(PARAM_ANGULAR_LIMIT_UPPER)); } void SliderJoint3D::_set_lower_limit_angular(float p_limit_angular) { - set_param(PARAM_ANGULAR_LIMIT_LOWER, Math::deg2rad(p_limit_angular)); } float SliderJoint3D::_get_lower_limit_angular() const { - return Math::rad2deg(get_param(PARAM_ANGULAR_LIMIT_LOWER)); } void SliderJoint3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_param", "param", "value"), &SliderJoint3D::set_param); ClassDB::bind_method(D_METHOD("get_param", "param"), &SliderJoint3D::get_param); @@ -444,7 +410,6 @@ void SliderJoint3D::_bind_methods() { } void SliderJoint3D::set_param(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); params[p_param] = p_value; if (get_joint().is_valid()) @@ -452,13 +417,11 @@ void SliderJoint3D::set_param(Param p_param, float p_value) { update_gizmo(); } float SliderJoint3D::get_param(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return params[p_param]; } RID SliderJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b) { - Transform gt = get_global_transform(); Transform ainv = body_a->get_global_transform().affine_inverse(); @@ -482,7 +445,6 @@ RID SliderJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b } SliderJoint3D::SliderJoint3D() { - params[PARAM_LINEAR_LIMIT_UPPER] = 1.0; params[PARAM_LINEAR_LIMIT_LOWER] = -1.0; params[PARAM_LINEAR_LIMIT_SOFTNESS] = 1.0; @@ -511,27 +473,22 @@ SliderJoint3D::SliderJoint3D() { ////////////////////////////////// void ConeTwistJoint3D::_set_swing_span(float p_limit_angular) { - set_param(PARAM_SWING_SPAN, Math::deg2rad(p_limit_angular)); } float ConeTwistJoint3D::_get_swing_span() const { - return Math::rad2deg(get_param(PARAM_SWING_SPAN)); } void ConeTwistJoint3D::_set_twist_span(float p_limit_angular) { - set_param(PARAM_TWIST_SPAN, Math::deg2rad(p_limit_angular)); } float ConeTwistJoint3D::_get_twist_span() const { - return Math::rad2deg(get_param(PARAM_TWIST_SPAN)); } void ConeTwistJoint3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_param", "param", "value"), &ConeTwistJoint3D::set_param); ClassDB::bind_method(D_METHOD("get_param", "param"), &ConeTwistJoint3D::get_param); @@ -557,7 +514,6 @@ void ConeTwistJoint3D::_bind_methods() { } void ConeTwistJoint3D::set_param(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); params[p_param] = p_value; if (get_joint().is_valid()) @@ -566,13 +522,11 @@ void ConeTwistJoint3D::set_param(Param p_param, float p_value) { update_gizmo(); } float ConeTwistJoint3D::get_param(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return params[p_param]; } RID ConeTwistJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b) { - Transform gt = get_global_transform(); //Vector3 cone_twistpos = gt.origin; //Vector3 cone_twistdir = gt.basis.get_axis(2); @@ -599,7 +553,6 @@ RID ConeTwistJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *bod } ConeTwistJoint3D::ConeTwistJoint3D() { - params[PARAM_SWING_SPAN] = Math_PI * 0.25; params[PARAM_TWIST_SPAN] = Math_PI; params[PARAM_BIAS] = 0.3; @@ -610,67 +563,54 @@ ConeTwistJoint3D::ConeTwistJoint3D() { ///////////////////////////////////////////////////////////////////// void Generic6DOFJoint3D::_set_angular_hi_limit_x(float p_limit_angular) { - set_param_x(PARAM_ANGULAR_UPPER_LIMIT, Math::deg2rad(p_limit_angular)); } float Generic6DOFJoint3D::_get_angular_hi_limit_x() const { - return Math::rad2deg(get_param_x(PARAM_ANGULAR_UPPER_LIMIT)); } void Generic6DOFJoint3D::_set_angular_lo_limit_x(float p_limit_angular) { - set_param_x(PARAM_ANGULAR_LOWER_LIMIT, Math::deg2rad(p_limit_angular)); } float Generic6DOFJoint3D::_get_angular_lo_limit_x() const { - return Math::rad2deg(get_param_x(PARAM_ANGULAR_LOWER_LIMIT)); } void Generic6DOFJoint3D::_set_angular_hi_limit_y(float p_limit_angular) { - set_param_y(PARAM_ANGULAR_UPPER_LIMIT, Math::deg2rad(p_limit_angular)); } float Generic6DOFJoint3D::_get_angular_hi_limit_y() const { - return Math::rad2deg(get_param_y(PARAM_ANGULAR_UPPER_LIMIT)); } void Generic6DOFJoint3D::_set_angular_lo_limit_y(float p_limit_angular) { - set_param_y(PARAM_ANGULAR_LOWER_LIMIT, Math::deg2rad(p_limit_angular)); } float Generic6DOFJoint3D::_get_angular_lo_limit_y() const { - return Math::rad2deg(get_param_y(PARAM_ANGULAR_LOWER_LIMIT)); } void Generic6DOFJoint3D::_set_angular_hi_limit_z(float p_limit_angular) { - set_param_z(PARAM_ANGULAR_UPPER_LIMIT, Math::deg2rad(p_limit_angular)); } float Generic6DOFJoint3D::_get_angular_hi_limit_z() const { - return Math::rad2deg(get_param_z(PARAM_ANGULAR_UPPER_LIMIT)); } void Generic6DOFJoint3D::_set_angular_lo_limit_z(float p_limit_angular) { - set_param_z(PARAM_ANGULAR_LOWER_LIMIT, Math::deg2rad(p_limit_angular)); } float Generic6DOFJoint3D::_get_angular_lo_limit_z() const { - return Math::rad2deg(get_param_z(PARAM_ANGULAR_LOWER_LIMIT)); } void Generic6DOFJoint3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("_set_angular_hi_limit_x", "angle"), &Generic6DOFJoint3D::_set_angular_hi_limit_x); ClassDB::bind_method(D_METHOD("_get_angular_hi_limit_x"), &Generic6DOFJoint3D::_get_angular_hi_limit_x); @@ -834,7 +774,6 @@ void Generic6DOFJoint3D::_bind_methods() { } void Generic6DOFJoint3D::set_param_x(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); params_x[p_param] = p_value; if (get_joint().is_valid()) @@ -843,13 +782,11 @@ void Generic6DOFJoint3D::set_param_x(Param p_param, float p_value) { update_gizmo(); } float Generic6DOFJoint3D::get_param_x(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return params_x[p_param]; } void Generic6DOFJoint3D::set_param_y(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); params_y[p_param] = p_value; if (get_joint().is_valid()) @@ -857,13 +794,11 @@ void Generic6DOFJoint3D::set_param_y(Param p_param, float p_value) { update_gizmo(); } float Generic6DOFJoint3D::get_param_y(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return params_y[p_param]; } void Generic6DOFJoint3D::set_param_z(Param p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); params_z[p_param] = p_value; if (get_joint().is_valid()) @@ -871,13 +806,11 @@ void Generic6DOFJoint3D::set_param_z(Param p_param, float p_value) { update_gizmo(); } float Generic6DOFJoint3D::get_param_z(Param p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return params_z[p_param]; } void Generic6DOFJoint3D::set_flag_x(Flag p_flag, bool p_enabled) { - ERR_FAIL_INDEX(p_flag, FLAG_MAX); flags_x[p_flag] = p_enabled; if (get_joint().is_valid()) @@ -885,13 +818,11 @@ void Generic6DOFJoint3D::set_flag_x(Flag p_flag, bool p_enabled) { update_gizmo(); } bool Generic6DOFJoint3D::get_flag_x(Flag p_flag) const { - ERR_FAIL_INDEX_V(p_flag, FLAG_MAX, false); return flags_x[p_flag]; } void Generic6DOFJoint3D::set_flag_y(Flag p_flag, bool p_enabled) { - ERR_FAIL_INDEX(p_flag, FLAG_MAX); flags_y[p_flag] = p_enabled; if (get_joint().is_valid()) @@ -899,13 +830,11 @@ void Generic6DOFJoint3D::set_flag_y(Flag p_flag, bool p_enabled) { update_gizmo(); } bool Generic6DOFJoint3D::get_flag_y(Flag p_flag) const { - ERR_FAIL_INDEX_V(p_flag, FLAG_MAX, false); return flags_y[p_flag]; } void Generic6DOFJoint3D::set_flag_z(Flag p_flag, bool p_enabled) { - ERR_FAIL_INDEX(p_flag, FLAG_MAX); flags_z[p_flag] = p_enabled; if (get_joint().is_valid()) @@ -913,7 +842,6 @@ void Generic6DOFJoint3D::set_flag_z(Flag p_flag, bool p_enabled) { update_gizmo(); } bool Generic6DOFJoint3D::get_flag_z(Flag p_flag) const { - ERR_FAIL_INDEX_V(p_flag, FLAG_MAX, false); return flags_z[p_flag]; } @@ -927,7 +855,6 @@ void Generic6DOFJoint3D::set_precision(int p_precision) { } RID Generic6DOFJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *body_b) { - Transform gt = get_global_transform(); //Vector3 cone_twistpos = gt.origin; //Vector3 cone_twistdir = gt.basis.get_axis(2); @@ -961,7 +888,6 @@ RID Generic6DOFJoint3D::_configure_joint(PhysicsBody3D *body_a, PhysicsBody3D *b } Generic6DOFJoint3D::Generic6DOFJoint3D() { - set_param_x(PARAM_LINEAR_LOWER_LIMIT, 0); set_param_x(PARAM_LINEAR_UPPER_LIMIT, 0); set_param_x(PARAM_LINEAR_LIMIT_SOFTNESS, 0.7); diff --git a/scene/3d/physics_joint_3d.h b/scene/3d/physics_joint_3d.h index 38a3f314ba..a3225ab01c 100644 --- a/scene/3d/physics_joint_3d.h +++ b/scene/3d/physics_joint_3d.h @@ -35,7 +35,6 @@ #include "scene/3d/physics_body_3d.h" class Joint3D : public Node3D { - GDCLASS(Joint3D, Node3D); RID ba, bb; @@ -77,7 +76,6 @@ public: /////////////////////////////////////////// class PinJoint3D : public Joint3D { - GDCLASS(PinJoint3D, Joint3D); public: @@ -102,7 +100,6 @@ public: VARIANT_ENUM_CAST(PinJoint3D::Param); class HingeJoint3D : public Joint3D { - GDCLASS(HingeJoint3D, Joint3D); public: @@ -150,7 +147,6 @@ VARIANT_ENUM_CAST(HingeJoint3D::Param); VARIANT_ENUM_CAST(HingeJoint3D::Flag); class SliderJoint3D : public Joint3D { - GDCLASS(SliderJoint3D, Joint3D); public: @@ -203,7 +199,6 @@ public: VARIANT_ENUM_CAST(SliderJoint3D::Param); class ConeTwistJoint3D : public Joint3D { - GDCLASS(ConeTwistJoint3D, Joint3D); public: @@ -238,7 +233,6 @@ public: VARIANT_ENUM_CAST(ConeTwistJoint3D::Param); class Generic6DOFJoint3D : public Joint3D { - GDCLASS(Generic6DOFJoint3D, Joint3D); public: diff --git a/scene/3d/position_3d.h b/scene/3d/position_3d.h index 9c806723fb..1c5f05ef95 100644 --- a/scene/3d/position_3d.h +++ b/scene/3d/position_3d.h @@ -34,7 +34,6 @@ #include "scene/3d/node_3d.h" class Position3D : public Node3D { - GDCLASS(Position3D, Node3D); public: diff --git a/scene/3d/proximity_group_3d.cpp b/scene/3d/proximity_group_3d.cpp index 44ffabb655..cef3381fc1 100644 --- a/scene/3d/proximity_group_3d.cpp +++ b/scene/3d/proximity_group_3d.cpp @@ -33,7 +33,6 @@ #include "core/math/math_funcs.h" void ProximityGroup3D::clear_groups() { - Map<StringName, uint32_t>::Element *E; { @@ -42,7 +41,6 @@ void ProximityGroup3D::clear_groups() { E = groups.front(); int num = 0; while (E && num < size) { - if (E->get() != group_version) { remove_list[num++] = E->key(); }; @@ -50,7 +48,6 @@ void ProximityGroup3D::clear_groups() { E = E->next(); }; for (int i = 0; i < num; i++) { - groups.erase(remove_list[i]); }; }; @@ -61,7 +58,6 @@ void ProximityGroup3D::clear_groups() { }; void ProximityGroup3D::update_groups() { - if (grid_radius == Vector3(0, 0, 0)) return; @@ -77,10 +73,8 @@ void ProximityGroup3D::update_groups() { }; void ProximityGroup3D::add_groups(int *p_cell, String p_base, int p_depth) { - p_base = p_base + "|"; if (grid_radius[p_depth] == 0) { - if (p_depth == 2) { _new_group(p_base); } else { @@ -92,7 +86,6 @@ void ProximityGroup3D::add_groups(int *p_cell, String p_base, int p_depth) { int end = p_cell[p_depth] + grid_radius[p_depth]; for (int i = start; i <= end; i++) { - String gname = p_base + itos(i); if (p_depth == 2) { _new_group(gname); @@ -103,7 +96,6 @@ void ProximityGroup3D::add_groups(int *p_cell, String p_base, int p_depth) { }; void ProximityGroup3D::_new_group(StringName p_name) { - const Map<StringName, uint32_t>::Element *E = groups.find(p_name); if (!E) { add_to_group(p_name); @@ -113,9 +105,7 @@ void ProximityGroup3D::_new_group(StringName p_name) { }; void ProximityGroup3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_EXIT_TREE: ++group_version; clear_groups(); @@ -127,59 +117,47 @@ void ProximityGroup3D::_notification(int p_what) { }; void ProximityGroup3D::broadcast(String p_name, Variant p_params) { - Map<StringName, uint32_t>::Element *E; E = groups.front(); while (E) { - get_tree()->call_group_flags(SceneTree::GROUP_CALL_DEFAULT, E->key(), "_proximity_group_broadcast", p_name, p_params); E = E->next(); }; }; void ProximityGroup3D::_proximity_group_broadcast(String p_name, Variant p_params) { - if (dispatch_mode == MODE_PROXY) { - get_parent()->call(p_name, p_params); } else { - emit_signal("broadcast", p_name, p_params); }; }; void ProximityGroup3D::set_group_name(const String &p_group_name) { - group_name = p_group_name; }; String ProximityGroup3D::get_group_name() const { - return group_name; }; void ProximityGroup3D::set_dispatch_mode(DispatchMode p_mode) { - dispatch_mode = p_mode; }; ProximityGroup3D::DispatchMode ProximityGroup3D::get_dispatch_mode() const { - return dispatch_mode; }; void ProximityGroup3D::set_grid_radius(const Vector3 &p_radius) { - grid_radius = p_radius; }; Vector3 ProximityGroup3D::get_grid_radius() const { - return grid_radius; }; void ProximityGroup3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_group_name", "name"), &ProximityGroup3D::set_group_name); ClassDB::bind_method(D_METHOD("get_group_name"), &ProximityGroup3D::get_group_name); ClassDB::bind_method(D_METHOD("set_dispatch_mode", "mode"), &ProximityGroup3D::set_dispatch_mode); @@ -200,7 +178,6 @@ void ProximityGroup3D::_bind_methods() { }; ProximityGroup3D::ProximityGroup3D() { - group_version = 0; dispatch_mode = MODE_PROXY; diff --git a/scene/3d/proximity_group_3d.h b/scene/3d/proximity_group_3d.h index 751bfbdb52..780c65e92b 100644 --- a/scene/3d/proximity_group_3d.h +++ b/scene/3d/proximity_group_3d.h @@ -34,7 +34,6 @@ #include "node_3d.h" class ProximityGroup3D : public Node3D { - GDCLASS(ProximityGroup3D, Node3D); OBJ_CATEGORY("3D"); diff --git a/scene/3d/ray_cast_3d.cpp b/scene/3d/ray_cast_3d.cpp index 304a5e1254..7693906f6f 100644 --- a/scene/3d/ray_cast_3d.cpp +++ b/scene/3d/ray_cast_3d.cpp @@ -36,7 +36,6 @@ #include "servers/physics_server_3d.h" void RayCast3D::set_cast_to(const Vector3 &p_point) { - cast_to = p_point; if (is_inside_tree() && (Engine::get_singleton()->is_editor_hint() || get_tree()->is_debugging_collisions_hint())) update_gizmo(); @@ -45,22 +44,18 @@ void RayCast3D::set_cast_to(const Vector3 &p_point) { } Vector3 RayCast3D::get_cast_to() const { - return cast_to; } void RayCast3D::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; } uint32_t RayCast3D::get_collision_mask() const { - return collision_mask; } void RayCast3D::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -70,16 +65,13 @@ void RayCast3D::set_collision_mask_bit(int p_bit, bool p_value) { } bool RayCast3D::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } bool RayCast3D::is_colliding() const { - return collided; } Object *RayCast3D::get_collider() const { - if (against.is_null()) return nullptr; @@ -87,20 +79,16 @@ Object *RayCast3D::get_collider() const { } int RayCast3D::get_collider_shape() const { - return against_shape; } Vector3 RayCast3D::get_collision_point() const { - return collision_point; } Vector3 RayCast3D::get_collision_normal() const { - return collision_normal; } void RayCast3D::set_enabled(bool p_enabled) { - enabled = p_enabled; update_gizmo(); @@ -118,12 +106,10 @@ void RayCast3D::set_enabled(bool p_enabled) { } bool RayCast3D::is_enabled() const { - return enabled; } void RayCast3D::set_exclude_parent_body(bool p_exclude_parent_body) { - if (exclude_parent_body == p_exclude_parent_body) return; @@ -141,16 +127,12 @@ void RayCast3D::set_exclude_parent_body(bool p_exclude_parent_body) { } bool RayCast3D::get_exclude_parent_body() const { - return exclude_parent_body; } void RayCast3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - if (enabled && !Engine::get_singleton()->is_editor_hint()) { set_physics_process_internal(true); @@ -168,7 +150,6 @@ void RayCast3D::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - if (enabled) { set_physics_process_internal(false); } @@ -178,7 +159,6 @@ void RayCast3D::_notification(int p_what) { } break; case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { - if (!enabled) break; @@ -211,7 +191,6 @@ void RayCast3D::_update_raycast_state() { PhysicsDirectSpaceState3D::RayResult rr; if (dss->intersect_ray(gt.get_origin(), gt.xform(to), rr, exclude, collision_mask, collide_with_bodies, collide_with_areas)) { - collided = true; against = rr.collider_id; collision_point = rr.position; @@ -229,12 +208,10 @@ void RayCast3D::force_raycast_update() { } void RayCast3D::add_exception_rid(const RID &p_rid) { - exclude.insert(p_rid); } void RayCast3D::add_exception(const Object *p_object) { - ERR_FAIL_NULL(p_object); const CollisionObject3D *co = Object::cast_to<CollisionObject3D>(p_object); if (!co) @@ -243,12 +220,10 @@ void RayCast3D::add_exception(const Object *p_object) { } void RayCast3D::remove_exception_rid(const RID &p_rid) { - exclude.erase(p_rid); } void RayCast3D::remove_exception(const Object *p_object) { - ERR_FAIL_NULL(p_object); const CollisionObject3D *co = Object::cast_to<CollisionObject3D>(p_object); if (!co) @@ -257,32 +232,26 @@ void RayCast3D::remove_exception(const Object *p_object) { } void RayCast3D::clear_exceptions() { - exclude.clear(); } void RayCast3D::set_collide_with_areas(bool p_clip) { - collide_with_areas = p_clip; } bool RayCast3D::is_collide_with_areas_enabled() const { - return collide_with_areas; } void RayCast3D::set_collide_with_bodies(bool p_clip) { - collide_with_bodies = p_clip; } bool RayCast3D::is_collide_with_bodies_enabled() const { - return collide_with_bodies; } void RayCast3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_enabled", "enabled"), &RayCast3D::set_enabled); ClassDB::bind_method(D_METHOD("is_enabled"), &RayCast3D::is_enabled); @@ -331,7 +300,6 @@ void RayCast3D::_bind_methods() { } void RayCast3D::_create_debug_shape() { - if (!debug_material.is_valid()) { debug_material = Ref<StandardMaterial3D>(memnew(StandardMaterial3D)); @@ -350,7 +318,6 @@ void RayCast3D::_create_debug_shape() { } void RayCast3D::_update_debug_shape() { - if (!enabled) return; @@ -377,7 +344,6 @@ void RayCast3D::_update_debug_shape() { } void RayCast3D::_clear_debug_shape() { - if (!debug_shape) return; @@ -391,7 +357,6 @@ void RayCast3D::_clear_debug_shape() { } RayCast3D::RayCast3D() { - enabled = false; collided = false; diff --git a/scene/3d/ray_cast_3d.h b/scene/3d/ray_cast_3d.h index f8bfb7846a..8f617e5491 100644 --- a/scene/3d/ray_cast_3d.h +++ b/scene/3d/ray_cast_3d.h @@ -34,7 +34,6 @@ #include "scene/3d/node_3d.h" class RayCast3D : public Node3D { - GDCLASS(RayCast3D, Node3D); bool enabled; diff --git a/scene/3d/reflection_probe.cpp b/scene/3d/reflection_probe.cpp index 24bf8b43d1..2cc7913d1c 100644 --- a/scene/3d/reflection_probe.cpp +++ b/scene/3d/reflection_probe.cpp @@ -31,18 +31,15 @@ #include "reflection_probe.h" void ReflectionProbe::set_intensity(float p_intensity) { - intensity = p_intensity; RS::get_singleton()->reflection_probe_set_intensity(probe, p_intensity); } float ReflectionProbe::get_intensity() const { - return intensity; } void ReflectionProbe::set_interior_ambient(Color p_ambient) { - interior_ambient = p_ambient; RS::get_singleton()->reflection_probe_set_interior_ambient(probe, p_ambient); } @@ -57,33 +54,27 @@ float ReflectionProbe::get_interior_ambient_energy() const { } Color ReflectionProbe::get_interior_ambient() const { - return interior_ambient; } void ReflectionProbe::set_interior_ambient_probe_contribution(float p_contribution) { - interior_ambient_probe_contribution = p_contribution; RS::get_singleton()->reflection_probe_set_interior_ambient_probe_contribution(probe, p_contribution); } float ReflectionProbe::get_interior_ambient_probe_contribution() const { - return interior_ambient_probe_contribution; } void ReflectionProbe::set_max_distance(float p_distance) { - max_distance = p_distance; RS::get_singleton()->reflection_probe_set_max_distance(probe, p_distance); } float ReflectionProbe::get_max_distance() const { - return max_distance; } void ReflectionProbe::set_extents(const Vector3 &p_extents) { - extents = p_extents; for (int i = 0; i < 3; i++) { @@ -103,16 +94,13 @@ void ReflectionProbe::set_extents(const Vector3 &p_extents) { update_gizmo(); } Vector3 ReflectionProbe::get_extents() const { - return extents; } void ReflectionProbe::set_origin_offset(const Vector3 &p_extents) { - origin_offset = p_extents; for (int i = 0; i < 3; i++) { - if (extents[i] - 0.01 < ABS(origin_offset[i])) { origin_offset[i] = SGN(origin_offset[i]) * (extents[i] - 0.01); } @@ -124,49 +112,40 @@ void ReflectionProbe::set_origin_offset(const Vector3 &p_extents) { update_gizmo(); } Vector3 ReflectionProbe::get_origin_offset() const { - return origin_offset; } void ReflectionProbe::set_enable_box_projection(bool p_enable) { - box_projection = p_enable; RS::get_singleton()->reflection_probe_set_enable_box_projection(probe, p_enable); } bool ReflectionProbe::is_box_projection_enabled() const { - return box_projection; } void ReflectionProbe::set_as_interior(bool p_enable) { - interior = p_enable; RS::get_singleton()->reflection_probe_set_as_interior(probe, interior); _change_notify(); } bool ReflectionProbe::is_set_as_interior() const { - return interior; } void ReflectionProbe::set_enable_shadows(bool p_enable) { - enable_shadows = p_enable; RS::get_singleton()->reflection_probe_set_enable_shadows(probe, p_enable); } bool ReflectionProbe::are_shadows_enabled() const { - return enable_shadows; } void ReflectionProbe::set_cull_mask(uint32_t p_layers) { - cull_mask = p_layers; RS::get_singleton()->reflection_probe_set_cull_mask(probe, p_layers); } uint32_t ReflectionProbe::get_cull_mask() const { - return cull_mask; } @@ -180,19 +159,16 @@ ReflectionProbe::UpdateMode ReflectionProbe::get_update_mode() const { } AABB ReflectionProbe::get_aabb() const { - AABB aabb; aabb.position = -origin_offset; aabb.size = origin_offset + extents; return aabb; } Vector<Face3> ReflectionProbe::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } void ReflectionProbe::_validate_property(PropertyInfo &property) const { - if (property.name == "interior/ambient_color" || property.name == "interior/ambient_energy" || property.name == "interior/ambient_contrib") { if (!interior) { property.usage = PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL; @@ -201,7 +177,6 @@ void ReflectionProbe::_validate_property(PropertyInfo &property) const { } void ReflectionProbe::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_intensity", "intensity"), &ReflectionProbe::set_intensity); ClassDB::bind_method(D_METHOD("get_intensity"), &ReflectionProbe::get_intensity); @@ -258,7 +233,6 @@ void ReflectionProbe::_bind_methods() { } ReflectionProbe::ReflectionProbe() { - intensity = 1.0; interior_ambient = Color(0, 0, 0); interior_ambient_probe_contribution = 0; @@ -278,6 +252,5 @@ ReflectionProbe::ReflectionProbe() { } ReflectionProbe::~ReflectionProbe() { - RS::get_singleton()->free(probe); } diff --git a/scene/3d/remote_transform_3d.cpp b/scene/3d/remote_transform_3d.cpp index 38792bbb58..7872a8ee1c 100644 --- a/scene/3d/remote_transform_3d.cpp +++ b/scene/3d/remote_transform_3d.cpp @@ -43,7 +43,6 @@ void RemoteTransform3D::_update_cache() { } void RemoteTransform3D::_update_remote() { - if (!is_inside_tree()) return; @@ -59,7 +58,6 @@ void RemoteTransform3D::_update_remote() { //todo make faster if (use_global_coordinates) { - if (update_remote_position && update_remote_rotation && update_remote_scale) { n->set_global_transform(get_global_transform()); } else { @@ -102,11 +100,8 @@ void RemoteTransform3D::_update_remote() { } void RemoteTransform3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - _update_cache(); } break; @@ -115,7 +110,6 @@ void RemoteTransform3D::_notification(int p_what) { break; if (cache.is_valid()) { - _update_remote(); } @@ -124,7 +118,6 @@ void RemoteTransform3D::_notification(int p_what) { } void RemoteTransform3D::set_remote_node(const NodePath &p_remote_node) { - remote_node = p_remote_node; if (is_inside_tree()) { _update_cache(); @@ -135,7 +128,6 @@ void RemoteTransform3D::set_remote_node(const NodePath &p_remote_node) { } NodePath RemoteTransform3D::get_remote_node() const { - return remote_node; } @@ -179,7 +171,6 @@ void RemoteTransform3D::force_update_cache() { } String RemoteTransform3D::get_configuration_warning() const { - if (!has_node(remote_node) || !Object::cast_to<Node3D>(get_node(remote_node))) { return TTR("The \"Remote Path\" property must point to a valid Node3D or Node3D-derived node to work."); } @@ -188,7 +179,6 @@ String RemoteTransform3D::get_configuration_warning() const { } void RemoteTransform3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_remote_node", "path"), &RemoteTransform3D::set_remote_node); ClassDB::bind_method(D_METHOD("get_remote_node"), &RemoteTransform3D::get_remote_node); ClassDB::bind_method(D_METHOD("force_update_cache"), &RemoteTransform3D::force_update_cache); @@ -213,7 +203,6 @@ void RemoteTransform3D::_bind_methods() { } RemoteTransform3D::RemoteTransform3D() { - use_global_coordinates = true; update_remote_position = true; update_remote_rotation = true; diff --git a/scene/3d/skeleton_3d.cpp b/scene/3d/skeleton_3d.cpp index 973822653a..c834dad2d0 100644 --- a/scene/3d/skeleton_3d.cpp +++ b/scene/3d/skeleton_3d.cpp @@ -67,7 +67,6 @@ SkinReference::~SkinReference() { } bool Skeleton3D::_set(const StringName &p_path, const Variant &p_value) { - String path = p_path; if (!path.begins_with("bones/")) @@ -77,7 +76,6 @@ bool Skeleton3D::_set(const StringName &p_path, const Variant &p_value) { String what = path.get_slicec('/', 2); if (which == bones.size() && what == "name") { - add_bone(p_value); return true; } @@ -99,7 +97,6 @@ bool Skeleton3D::_set(const StringName &p_path, const Variant &p_value) { bones.write[which].nodes_bound.clear(); for (int i = 0; i < children.size(); i++) { - NodePath npath = children[i]; ERR_CONTINUE(npath.operator String() == ""); Node *node = get_node(npath); @@ -115,7 +112,6 @@ bool Skeleton3D::_set(const StringName &p_path, const Variant &p_value) { } bool Skeleton3D::_get(const StringName &p_path, Variant &r_ret) const { - String path = p_path; if (!path.begins_with("bones/")) @@ -140,7 +136,6 @@ bool Skeleton3D::_get(const StringName &p_path, Variant &r_ret) const { Array children; for (const List<ObjectID>::Element *E = bones[which].nodes_bound.front(); E; E = E->next()) { - Object *obj = ObjectDB::get_instance(E->get()); ERR_CONTINUE(!obj); Node *node = Object::cast_to<Node>(obj); @@ -156,9 +151,7 @@ bool Skeleton3D::_get(const StringName &p_path, Variant &r_ret) const { return true; } void Skeleton3D::_get_property_list(List<PropertyInfo> *p_list) const { - for (int i = 0; i < bones.size(); i++) { - String prep = "bones/" + itos(i) + "/"; p_list->push_back(PropertyInfo(Variant::STRING, prep + "name")); p_list->push_back(PropertyInfo(Variant::INT, prep + "parent", PROPERTY_HINT_RANGE, "-1," + itos(bones.size() - 1) + ",1")); @@ -170,7 +163,6 @@ void Skeleton3D::_get_property_list(List<PropertyInfo> *p_list) const { } void Skeleton3D::_update_process_order() { - if (!process_order_dirty) return; @@ -180,7 +172,6 @@ void Skeleton3D::_update_process_order() { process_order.resize(len); int *order = process_order.ptrw(); for (int i = 0; i < len; i++) { - if (bonesptr[i].parent >= len) { //validate this just in case ERR_PRINT("Bone " + itos(i) + " has invalid parent: " + itos(bonesptr[i].parent)); @@ -223,11 +214,8 @@ void Skeleton3D::_update_process_order() { } void Skeleton3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_UPDATE_SKELETON: { - RenderingServer *vs = RenderingServer::get_singleton(); Bone *bonesptr = bones.ptrw(); int len = bones.size(); @@ -237,7 +225,6 @@ void Skeleton3D::_notification(int p_what) { const int *order = process_order.ptr(); for (int i = 0; i < len; i++) { - Bone &b = bonesptr[order[i]]; if (b.global_pose_override_amount >= 0.999) { @@ -245,50 +232,38 @@ void Skeleton3D::_notification(int p_what) { } else { if (b.disable_rest) { if (b.enabled) { - Transform pose = b.pose; if (b.custom_pose_enable) { pose = b.custom_pose * pose; } if (b.parent >= 0) { - b.pose_global = bonesptr[b.parent].pose_global * pose; } else { - b.pose_global = pose; } } else { - if (b.parent >= 0) { - b.pose_global = bonesptr[b.parent].pose_global; } else { - b.pose_global = Transform(); } } } else { if (b.enabled) { - Transform pose = b.pose; if (b.custom_pose_enable) { pose = b.custom_pose * pose; } if (b.parent >= 0) { - b.pose_global = bonesptr[b.parent].pose_global * (b.rest * pose); } else { - b.pose_global = b.rest * pose; } } else { - if (b.parent >= 0) { - b.pose_global = bonesptr[b.parent].pose_global * b.rest; } else { - b.pose_global = b.rest; } } @@ -304,7 +279,6 @@ void Skeleton3D::_notification(int p_what) { } for (List<ObjectID>::Element *E = b.nodes_bound.front(); E; E = E->next()) { - Object *obj = ObjectDB::get_instance(E->get()); ERR_CONTINUE(!obj); Node3D *sp = Object::cast_to<Node3D>(obj); @@ -315,7 +289,6 @@ void Skeleton3D::_notification(int p_what) { //update skins for (Set<SkinReference *>::Element *E = skin_bindings.front(); E; E = E->next()) { - const Skin *skin = E->get()->skin.operator->(); RID skeleton = E->get()->skeleton; uint32_t bind_count = skin->get_bind_count(); @@ -328,7 +301,6 @@ void Skeleton3D::_notification(int p_what) { } if (E->get()->skeleton_version != version) { - for (uint32_t i = 0; i < bind_count; i++) { StringName bind_name = skin->get_bind_name(i); @@ -405,7 +377,6 @@ void Skeleton3D::clear_bones_global_pose_override() { } void Skeleton3D::set_bone_global_pose_override(int p_bone, const Transform &p_pose, float p_amount, bool p_persistent) { - ERR_FAIL_INDEX(p_bone, bones.size()); bones.write[p_bone].global_pose_override_amount = p_amount; bones.write[p_bone].global_pose_override = p_pose; @@ -414,7 +385,6 @@ void Skeleton3D::set_bone_global_pose_override(int p_bone, const Transform &p_po } Transform Skeleton3D::get_bone_global_pose(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), Transform()); if (dirty) const_cast<Skeleton3D *>(this)->notification(NOTIFICATION_UPDATE_SKELETON); @@ -423,11 +393,9 @@ Transform Skeleton3D::get_bone_global_pose(int p_bone) const { // skeleton creation api void Skeleton3D::add_bone(const String &p_name) { - ERR_FAIL_COND(p_name == "" || p_name.find(":") != -1 || p_name.find("/") != -1); for (int i = 0; i < bones.size(); i++) { - ERR_FAIL_COND(bones[i].name == p_name); } @@ -440,9 +408,7 @@ void Skeleton3D::add_bone(const String &p_name) { update_gizmo(); } int Skeleton3D::find_bone(const String &p_name) const { - for (int i = 0; i < bones.size(); i++) { - if (bones[i].name == p_name) return i; } @@ -450,14 +416,12 @@ int Skeleton3D::find_bone(const String &p_name) const { return -1; } String Skeleton3D::get_bone_name(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), ""); return bones[p_bone].name; } bool Skeleton3D::is_bone_parent_of(int p_bone, int p_parent_bone_id) const { - int parent_of_bone = get_bone_parent(p_bone); if (-1 == parent_of_bone) @@ -470,12 +434,10 @@ bool Skeleton3D::is_bone_parent_of(int p_bone, int p_parent_bone_id) const { } int Skeleton3D::get_bone_count() const { - return bones.size(); } void Skeleton3D::set_bone_parent(int p_bone, int p_parent) { - ERR_FAIL_INDEX(p_bone, bones.size()); ERR_FAIL_COND(p_parent != -1 && (p_parent < 0)); @@ -485,7 +447,6 @@ void Skeleton3D::set_bone_parent(int p_bone, int p_parent) { } void Skeleton3D::unparent_bone_and_rest(int p_bone) { - ERR_FAIL_INDEX(p_bone, bones.size()); _update_process_order(); @@ -503,60 +464,51 @@ void Skeleton3D::unparent_bone_and_rest(int p_bone) { } void Skeleton3D::set_bone_disable_rest(int p_bone, bool p_disable) { - ERR_FAIL_INDEX(p_bone, bones.size()); bones.write[p_bone].disable_rest = p_disable; } bool Skeleton3D::is_bone_rest_disabled(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), false); return bones[p_bone].disable_rest; } int Skeleton3D::get_bone_parent(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), -1); return bones[p_bone].parent; } void Skeleton3D::set_bone_rest(int p_bone, const Transform &p_rest) { - ERR_FAIL_INDEX(p_bone, bones.size()); bones.write[p_bone].rest = p_rest; _make_dirty(); } Transform Skeleton3D::get_bone_rest(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), Transform()); return bones[p_bone].rest; } void Skeleton3D::set_bone_enabled(int p_bone, bool p_enabled) { - ERR_FAIL_INDEX(p_bone, bones.size()); bones.write[p_bone].enabled = p_enabled; _make_dirty(); } bool Skeleton3D::is_bone_enabled(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), false); return bones[p_bone].enabled; } void Skeleton3D::bind_child_node_to_bone(int p_bone, Node *p_node) { - ERR_FAIL_NULL(p_node); ERR_FAIL_INDEX(p_bone, bones.size()); ObjectID id = p_node->get_instance_id(); for (const List<ObjectID>::Element *E = bones[p_bone].nodes_bound.front(); E; E = E->next()) { - if (E->get() == id) return; // already here } @@ -564,7 +516,6 @@ void Skeleton3D::bind_child_node_to_bone(int p_bone, Node *p_node) { bones.write[p_bone].nodes_bound.push_back(id); } void Skeleton3D::unbind_child_node_from_bone(int p_bone, Node *p_node) { - ERR_FAIL_NULL(p_node); ERR_FAIL_INDEX(p_bone, bones.size()); @@ -572,11 +523,9 @@ void Skeleton3D::unbind_child_node_from_bone(int p_bone, Node *p_node) { bones.write[p_bone].nodes_bound.erase(id); } void Skeleton3D::get_bound_child_nodes_to_bone(int p_bone, List<Node *> *p_bound) const { - ERR_FAIL_INDEX(p_bone, bones.size()); for (const List<ObjectID>::Element *E = bones[p_bone].nodes_bound.front(); E; E = E->next()) { - Object *obj = ObjectDB::get_instance(E->get()); ERR_CONTINUE(!obj); p_bound->push_back(Object::cast_to<Node>(obj)); @@ -584,7 +533,6 @@ void Skeleton3D::get_bound_child_nodes_to_bone(int p_bone, List<Node *> *p_bound } void Skeleton3D::clear_bones() { - bones.clear(); process_order_dirty = true; version++; @@ -594,7 +542,6 @@ void Skeleton3D::clear_bones() { // posing api void Skeleton3D::set_bone_pose(int p_bone, const Transform &p_pose) { - ERR_FAIL_INDEX(p_bone, bones.size()); bones.write[p_bone].pose = p_pose; @@ -603,13 +550,11 @@ void Skeleton3D::set_bone_pose(int p_bone, const Transform &p_pose) { } } Transform Skeleton3D::get_bone_pose(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), Transform()); return bones[p_bone].pose; } void Skeleton3D::set_bone_custom_pose(int p_bone, const Transform &p_custom_pose) { - ERR_FAIL_INDEX(p_bone, bones.size()); //ERR_FAIL_COND( !is_inside_scene() ); @@ -620,13 +565,11 @@ void Skeleton3D::set_bone_custom_pose(int p_bone, const Transform &p_custom_pose } Transform Skeleton3D::get_bone_custom_pose(int p_bone) const { - ERR_FAIL_INDEX_V(p_bone, bones.size(), Transform()); return bones[p_bone].custom_pose; } void Skeleton3D::_make_dirty() { - if (dirty) return; @@ -641,7 +584,6 @@ int Skeleton3D::get_process_order(int p_idx) { } void Skeleton3D::localize_rests() { - _update_process_order(); for (int i = bones.size() - 1; i >= 0; i--) { @@ -736,7 +678,6 @@ void Skeleton3D::_rebuild_physical_bones_cache() { } void _pb_stop_simulation(Node *p_node) { - for (int i = p_node->get_child_count() - 1; 0 <= i; --i) { _pb_stop_simulation(p_node->get_child(i)); } @@ -755,7 +696,6 @@ void Skeleton3D::physical_bones_stop_simulation() { } void _pb_start_simulation(const Skeleton3D *p_skeleton, Node *p_node, const Vector<int> &p_sim_bones) { - for (int i = p_node->get_child_count() - 1; 0 <= i; --i) { _pb_start_simulation(p_skeleton, p_node->get_child(i), p_sim_bones); } @@ -792,7 +732,6 @@ void Skeleton3D::physical_bones_start_simulation_on(const TypedArray<StringName> } void _physical_bones_add_remove_collision_exception(bool p_add, Node *p_node, RID p_exception) { - for (int i = p_node->get_child_count() - 1; 0 <= i; --i) { _physical_bones_add_remove_collision_exception(p_add, p_node->get_child(i), p_exception); } @@ -822,7 +761,6 @@ void Skeleton3D::_skin_changed() { } Ref<SkinReference> Skeleton3D::register_skin(const Ref<Skin> &p_skin) { - for (Set<SkinReference *>::Element *E = skin_bindings.front(); E; E = E->next()) { if (E->get()->skin == p_skin) { return Ref<SkinReference>(E->get()); @@ -883,7 +821,6 @@ Ref<SkinReference> Skeleton3D::register_skin(const Ref<Skin> &p_skin) { } void Skeleton3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_bone", "name"), &Skeleton3D::add_bone); ClassDB::bind_method(D_METHOD("find_bone", "name"), &Skeleton3D::find_bone); ClassDB::bind_method(D_METHOD("get_bone_name", "bone_idx"), &Skeleton3D::get_bone_name); @@ -938,7 +875,6 @@ void Skeleton3D::_bind_methods() { } Skeleton3D::Skeleton3D() { - animate_physical_bones = true; dirty = false; version = 1; @@ -946,7 +882,6 @@ Skeleton3D::Skeleton3D() { } Skeleton3D::~Skeleton3D() { - //some skins may remain bound for (Set<SkinReference *>::Element *E = skin_bindings.front(); E; E = E->next()) { E->get()->skeleton_node = nullptr; diff --git a/scene/3d/skeleton_3d.h b/scene/3d/skeleton_3d.h index 0bccd3f8fc..1e864c1c48 100644 --- a/scene/3d/skeleton_3d.h +++ b/scene/3d/skeleton_3d.h @@ -66,7 +66,6 @@ public: }; class Skeleton3D : public Node3D { - GDCLASS(Skeleton3D, Node3D); private: @@ -77,7 +76,6 @@ private: void _skin_changed(); struct Bone { - String name; bool enabled; @@ -130,13 +128,11 @@ private: // bind helpers Array _get_bound_child_nodes_to_bone(int p_bone) const { - Array bound; List<Node *> children; get_bound_child_nodes_to_bone(p_bone, &children); for (int i = 0; i < children.size(); i++) { - bound.push_back(children[i]); } return bound; diff --git a/scene/3d/skeleton_ik_3d.cpp b/scene/3d/skeleton_ik_3d.cpp index 5c0e48a5df..40c91fca69 100644 --- a/scene/3d/skeleton_ik_3d.cpp +++ b/scene/3d/skeleton_ik_3d.cpp @@ -55,7 +55,6 @@ FabrikInverseKinematic::ChainItem *FabrikInverseKinematic::ChainItem::add_child( /// Build a chain that starts from the root to tip bool FabrikInverseKinematic::build_chain(Task *p_task, bool p_force_simple_chain) { - ERR_FAIL_COND_V(-1 == p_task->root_bone, false); Chain &chain(p_task->chain); @@ -75,7 +74,6 @@ bool FabrikInverseKinematic::build_chain(Task *p_task, bool p_force_simple_chain chain_ids.resize(p_task->skeleton->get_bone_count()); for (int x = p_task->end_effectors.size() - 1; 0 <= x; --x) { - const EndEffector *ee(&p_task->end_effectors[x]); ERR_FAIL_COND_V(p_task->root_bone >= ee->tip_bone, false); ERR_FAIL_INDEX_V(ee->tip_bone, p_task->skeleton->get_bone_count(), false); @@ -84,7 +82,6 @@ bool FabrikInverseKinematic::build_chain(Task *p_task, bool p_force_simple_chain // Picks all IDs that composing a single chain in reverse order (except the root) BoneId chain_sub_tip(ee->tip_bone); while (chain_sub_tip > p_task->root_bone) { - chain_ids.write[sub_chain_size++] = chain_sub_tip; chain_sub_tip = p_task->skeleton->get_bone_parent(chain_sub_tip); } @@ -95,10 +92,8 @@ bool FabrikInverseKinematic::build_chain(Task *p_task, bool p_force_simple_chain // For each chain item id will be created a ChainItem if doesn't exists ChainItem *sub_chain(&chain.chain_root); for (int i = sub_chain_size - 1; 0 <= i; --i) { - ChainItem *child_ci(sub_chain->find_child(chain_ids[i])); if (!child_ci) { - child_ci = sub_chain->add_child(chain_ids[i]); child_ci->pb = p_task->skeleton->get_physical_bone(child_ci->bone); @@ -137,7 +132,6 @@ bool FabrikInverseKinematic::build_chain(Task *p_task, bool p_force_simple_chain } void FabrikInverseKinematic::update_chain(const Skeleton3D *p_sk, ChainItem *p_chain_item) { - if (!p_chain_item) return; @@ -151,7 +145,6 @@ void FabrikInverseKinematic::update_chain(const Skeleton3D *p_sk, ChainItem *p_c } void FabrikInverseKinematic::solve_simple(Task *p_task, bool p_solve_magnet) { - real_t distance_to_goal(1e4); real_t previous_distance_to_goal(0); int can_solve(p_task->max_iterations); @@ -167,7 +160,6 @@ void FabrikInverseKinematic::solve_simple(Task *p_task, bool p_solve_magnet) { } void FabrikInverseKinematic::solve_simple_backwards(Chain &r_chain, bool p_solve_magnet) { - if (p_solve_magnet && !r_chain.middle_chain_item) { return; } @@ -200,7 +192,6 @@ void FabrikInverseKinematic::solve_simple_backwards(Chain &r_chain, bool p_solve } void FabrikInverseKinematic::solve_simple_forwards(Chain &r_chain, bool p_solve_magnet) { - if (p_solve_magnet && !r_chain.middle_chain_item) { return; } @@ -212,7 +203,6 @@ void FabrikInverseKinematic::solve_simple_forwards(Chain &r_chain, bool p_solve_ sub_chain_root->current_pos = origin; if (!sub_chain_root->children.empty()) { - ChainItem &child(sub_chain_root->children.write[0]); // Is not tip @@ -231,7 +221,6 @@ void FabrikInverseKinematic::solve_simple_forwards(Chain &r_chain, bool p_solve_ sub_chain_root = &child; } } else { - // Is tip sub_chain_root = nullptr; } @@ -239,7 +228,6 @@ void FabrikInverseKinematic::solve_simple_forwards(Chain &r_chain, bool p_solve_ } FabrikInverseKinematic::Task *FabrikInverseKinematic::create_simple_task(Skeleton3D *p_sk, BoneId root_bone, BoneId tip_bone, const Transform &goal_transform) { - FabrikInverseKinematic::EndEffector ee; ee.tip_bone = tip_bone; @@ -267,12 +255,10 @@ void FabrikInverseKinematic::set_goal(Task *p_task, const Transform &p_goal) { } void FabrikInverseKinematic::make_goal(Task *p_task, const Transform &p_inverse_transf, real_t blending_delta) { - if (blending_delta >= 0.99f) { // Update the end_effector (local transform) without blending p_task->end_effectors.write[0].goal_transform = p_inverse_transf * p_task->goal_global_transform; } else { - // End effector in local transform const Transform end_effector_pose(p_task->skeleton->get_bone_global_pose(p_task->end_effectors.write[0].tip_bone)); @@ -282,7 +268,6 @@ void FabrikInverseKinematic::make_goal(Task *p_task, const Transform &p_inverse_ } void FabrikInverseKinematic::solve(Task *p_task, real_t blending_delta, bool override_tip_basis, bool p_use_magnet, const Vector3 &p_magnet_position) { - if (blending_delta <= 0.01f) { return; // Skip solving } @@ -314,7 +299,6 @@ void FabrikInverseKinematic::solve(Task *p_task, real_t blending_delta, bool ove new_bone_pose.origin = ci->current_pos; if (!ci->children.empty()) { - /// Rotate basis const Vector3 initial_ori((ci->children[0].initial_transform.origin - ci->initial_transform.origin).normalized()); const Vector3 rot_axis(initial_ori.cross(ci->current_ori).normalized()); @@ -341,11 +325,8 @@ void FabrikInverseKinematic::solve(Task *p_task, real_t blending_delta, bool ove } void SkeletonIK3D::_validate_property(PropertyInfo &property) const { - if (property.name == "root_bone" || property.name == "tip_bone") { - if (skeleton) { - String names("--,"); for (int i = 0; i < skeleton->get_bone_count(); i++) { if (i > 0) @@ -356,7 +337,6 @@ void SkeletonIK3D::_validate_property(PropertyInfo &property) const { property.hint = PROPERTY_HINT_ENUM; property.hint_string = names; } else { - property.hint = PROPERTY_HINT_NONE; property.hint_string = ""; } @@ -364,7 +344,6 @@ void SkeletonIK3D::_validate_property(PropertyInfo &property) const { } void SkeletonIK3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_root_bone", "root_bone"), &SkeletonIK3D::set_root_bone); ClassDB::bind_method(D_METHOD("get_root_bone"), &SkeletonIK3D::get_root_bone); @@ -421,7 +400,6 @@ void SkeletonIK3D::_notification(int p_what) { reload_chain(); } break; case NOTIFICATION_INTERNAL_PROCESS: { - if (target_node_override) reload_goal(); @@ -537,7 +515,6 @@ void SkeletonIK3D::stop() { } Transform SkeletonIK3D::_get_target_transform() { - if (!target_node_override && !target_node_path_override.is_empty()) target_node_override = Object::cast_to<Node3D>(get_node(target_node_path_override)); @@ -548,7 +525,6 @@ Transform SkeletonIK3D::_get_target_transform() { } void SkeletonIK3D::reload_chain() { - FabrikInverseKinematic::free_task(task); task = nullptr; diff --git a/scene/3d/skeleton_ik_3d.h b/scene/3d/skeleton_ik_3d.h index ad2623193b..0d948f13a9 100644 --- a/scene/3d/skeleton_ik_3d.h +++ b/scene/3d/skeleton_ik_3d.h @@ -41,14 +41,12 @@ #include "scene/3d/skeleton_3d.h" class FabrikInverseKinematic { - struct EndEffector { BoneId tip_bone; Transform goal_transform; }; struct ChainItem { - Vector<ChainItem> children; ChainItem *parent_item = nullptr; diff --git a/scene/3d/soft_body_3d.cpp b/scene/3d/soft_body_3d.cpp index 91b8b5c859..ea89f07266 100644 --- a/scene/3d/soft_body_3d.cpp +++ b/scene/3d/soft_body_3d.cpp @@ -65,7 +65,6 @@ void SoftBodyRenderingServerHandler::prepare(RID p_mesh, int p_surface) { } void SoftBodyRenderingServerHandler::clear() { - if (mesh.is_valid()) { buffer.resize(0); } @@ -127,11 +126,9 @@ bool SoftBody3D::_set(const StringName &p_name, const Variant &p_value) { String which = name.get_slicec('/', 0); if ("pinned_points" == which) { - return _set_property_pinned_points_indices(p_value); } else if ("attachments" == which) { - int idx = name.get_slicec('/', 1).to_int(); String what = name.get_slicec('/', 2); @@ -159,7 +156,6 @@ bool SoftBody3D::_get(const StringName &p_name, Variant &r_ret) const { return true; } else if ("attachments" == which) { - int idx = name.get_slicec('/', 1).to_int(); String what = name.get_slicec('/', 2); @@ -170,7 +166,6 @@ bool SoftBody3D::_get(const StringName &p_name, Variant &r_ret) const { } void SoftBody3D::_get_property_list(List<PropertyInfo> *p_list) const { - const int pinned_points_indices_size = pinned_points.size(); p_list->push_back(PropertyInfo(Variant::PACKED_INT32_ARRAY, "pinned_points")); @@ -183,7 +178,6 @@ void SoftBody3D::_get_property_list(List<PropertyInfo> *p_list) const { } bool SoftBody3D::_set_property_pinned_points_indices(const Array &p_indices) { - const int p_indices_size = p_indices.size(); { // Remove the pined points on physics server that will be removed by resize @@ -262,9 +256,7 @@ void SoftBody3D::_changed_callback(Object *p_changed, const char *p_prop) { void SoftBody3D::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_WORLD: { - if (Engine::get_singleton()->is_editor_hint()) { - add_change_receptor(this); } @@ -278,7 +270,6 @@ void SoftBody3D::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - if (Engine::get_singleton()->is_editor_hint()) { _reset_points_offsets(); return; @@ -294,12 +285,10 @@ void SoftBody3D::_notification(int p_what) { } break; case NOTIFICATION_VISIBILITY_CHANGED: { - _update_pickable(); } break; case NOTIFICATION_EXIT_WORLD: { - PhysicsServer3D::get_singleton()->soft_body_set_space(physics_rid, RID()); } break; @@ -317,7 +306,6 @@ void SoftBody3D::_notification(int p_what) { } void SoftBody3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_collision_mask", "collision_mask"), &SoftBody3D::set_collision_mask); ClassDB::bind_method(D_METHOD("get_collision_mask"), &SoftBody3D::get_collision_mask); @@ -386,7 +374,6 @@ void SoftBody3D::_bind_methods() { } String SoftBody3D::get_configuration_warning() const { - String warning = MeshInstance3D::get_configuration_warning(); if (get_mesh().is_null()) { @@ -427,7 +414,6 @@ void SoftBody3D::_draw_soft_mesh() { return; if (!rendering_server_handler.is_ready()) { - rendering_server_handler.prepare(get_mesh()->get_rid(), 0); /// Necessary in order to render the mesh correctly (Soft body nodes are in global space) @@ -446,9 +432,7 @@ void SoftBody3D::_draw_soft_mesh() { } void SoftBody3D::prepare_physics_server() { - if (Engine::get_singleton()->is_editor_hint()) { - if (get_mesh().is_valid()) PhysicsServer3D::get_singleton()->soft_body_set_mesh(physics_rid, get_mesh()); else @@ -458,12 +442,10 @@ void SoftBody3D::prepare_physics_server() { } if (get_mesh().is_valid()) { - become_mesh_owner(); PhysicsServer3D::get_singleton()->soft_body_set_mesh(physics_rid, get_mesh()); RS::get_singleton()->connect("frame_pre_draw", callable_mp(this, &SoftBody3D::_draw_soft_mesh)); } else { - PhysicsServer3D::get_singleton()->soft_body_set_mesh(physics_rid, nullptr); if (RS::get_singleton()->is_connected("frame_pre_draw", callable_mp(this, &SoftBody3D::_draw_soft_mesh))) { RS::get_singleton()->disconnect("frame_pre_draw", callable_mp(this, &SoftBody3D::_draw_soft_mesh)); @@ -689,19 +671,16 @@ bool SoftBody3D::is_point_pinned(int p_point_index) const { } void SoftBody3D::set_ray_pickable(bool p_ray_pickable) { - ray_pickable = p_ray_pickable; _update_pickable(); } bool SoftBody3D::is_ray_pickable() const { - return ray_pickable; } SoftBody3D::SoftBody3D() : physics_rid(PhysicsServer3D::get_singleton()->soft_body_create()) { - PhysicsServer3D::get_singleton()->body_attach_object_instance_id(physics_rid, get_instance_id()); } @@ -729,7 +708,6 @@ void SoftBody3D::_update_cache_pin_points_datas() { PinnedPoint *w = pinned_points.ptrw(); for (int i = pinned_points.size() - 1; 0 <= i; --i) { - if (!w[i].spatial_attachment_path.is_empty()) { w[i].spatial_attachment = Object::cast_to<Node3D>(get_node(w[i].spatial_attachment_path)); } @@ -746,7 +724,6 @@ void SoftBody3D::_pin_point_on_physics_server(int p_point_index, bool pin) { void SoftBody3D::_add_pinned_point(int p_point_index, const NodePath &p_spatial_attachment_path) { SoftBody3D::PinnedPoint *pinned_point; if (-1 == _get_pinned_point(p_point_index, pinned_point)) { - // Create new PinnedPoint pp; pp.point_index = p_point_index; @@ -760,7 +737,6 @@ void SoftBody3D::_add_pinned_point(int p_point_index, const NodePath &p_spatial_ pinned_points.push_back(pp); } else { - pinned_point->point_index = p_point_index; pinned_point->spatial_attachment_path = p_spatial_attachment_path; @@ -772,14 +748,12 @@ void SoftBody3D::_add_pinned_point(int p_point_index, const NodePath &p_spatial_ } void SoftBody3D::_reset_points_offsets() { - if (!Engine::get_singleton()->is_editor_hint()) return; const PinnedPoint *r = pinned_points.ptr(); PinnedPoint *w = pinned_points.ptrw(); for (int i = pinned_points.size() - 1; 0 <= i; --i) { - if (!r[i].spatial_attachment) w[i].spatial_attachment = Object::cast_to<Node3D>(get_node(r[i].spatial_attachment_path)); diff --git a/scene/3d/soft_body_3d.h b/scene/3d/soft_body_3d.h index 485f7427f8..0063e342f2 100644 --- a/scene/3d/soft_body_3d.h +++ b/scene/3d/soft_body_3d.h @@ -36,7 +36,6 @@ class SoftBody3D; class SoftBodyRenderingServerHandler { - friend class SoftBody3D; RID mesh; diff --git a/scene/3d/spring_arm_3d.cpp b/scene/3d/spring_arm_3d.cpp index f61e6eb2a7..3f94645bae 100644 --- a/scene/3d/spring_arm_3d.cpp +++ b/scene/3d/spring_arm_3d.cpp @@ -54,7 +54,6 @@ void SpringArm3D::_notification(int p_what) { } void SpringArm3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_hit_length"), &SpringArm3D::get_hit_length); ClassDB::bind_method(D_METHOD("set_length", "length"), &SpringArm3D::set_length); @@ -157,7 +156,6 @@ void SpringArm3D::process_spring() { childs_transform.origin = get_global_transform().origin + cast_direction * (spring_length * motion_delta); for (int i = get_child_count() - 1; 0 <= i; --i) { - Node3D *child = Object::cast_to<Node3D>(get_child(i)); if (child) { childs_transform.basis = child->get_global_transform().basis; diff --git a/scene/3d/sprite_3d.cpp b/scene/3d/sprite_3d.cpp index 85e5ebc475..9764bf77c5 100644 --- a/scene/3d/sprite_3d.cpp +++ b/scene/3d/sprite_3d.cpp @@ -34,7 +34,6 @@ #include "scene/scene_string_names.h" Color SpriteBase3D::_get_color_accum() { - if (!color_dirty) return color_accum; @@ -52,7 +51,6 @@ Color SpriteBase3D::_get_color_accum() { } void SpriteBase3D::_propagate_color_changed() { - if (color_dirty) return; @@ -60,15 +58,12 @@ void SpriteBase3D::_propagate_color_changed() { _queue_update(); for (List<SpriteBase3D *>::Element *E = children.front(); E; E = E->next()) { - E->get()->_propagate_color_changed(); } } void SpriteBase3D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - if (!pending_update) _im_update(); @@ -79,9 +74,7 @@ void SpriteBase3D::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - if (parent_sprite) { - parent_sprite->children.erase(pI); pI = nullptr; parent_sprite = nullptr; @@ -90,98 +83,80 @@ void SpriteBase3D::_notification(int p_what) { } void SpriteBase3D::set_centered(bool p_center) { - centered = p_center; _queue_update(); } bool SpriteBase3D::is_centered() const { - return centered; } void SpriteBase3D::set_offset(const Point2 &p_offset) { - offset = p_offset; _queue_update(); } Point2 SpriteBase3D::get_offset() const { - return offset; } void SpriteBase3D::set_flip_h(bool p_flip) { - hflip = p_flip; _queue_update(); } bool SpriteBase3D::is_flipped_h() const { - return hflip; } void SpriteBase3D::set_flip_v(bool p_flip) { - vflip = p_flip; _queue_update(); } bool SpriteBase3D::is_flipped_v() const { - return vflip; } void SpriteBase3D::set_modulate(const Color &p_color) { - modulate = p_color; _propagate_color_changed(); _queue_update(); } Color SpriteBase3D::get_modulate() const { - return modulate; } void SpriteBase3D::set_pixel_size(float p_amount) { - pixel_size = p_amount; _queue_update(); } float SpriteBase3D::get_pixel_size() const { - return pixel_size; } void SpriteBase3D::set_opacity(float p_amount) { - opacity = p_amount; _queue_update(); } float SpriteBase3D::get_opacity() const { - return opacity; } void SpriteBase3D::set_axis(Vector3::Axis p_axis) { - ERR_FAIL_INDEX(p_axis, 3); axis = p_axis; _queue_update(); } Vector3::Axis SpriteBase3D::get_axis() const { - return axis; } void SpriteBase3D::_im_update() { - _draw(); pending_update = false; } void SpriteBase3D::_queue_update() { - if (pending_update) return; @@ -193,11 +168,9 @@ void SpriteBase3D::_queue_update() { } AABB SpriteBase3D::get_aabb() const { - return aabb; } Vector<Face3> SpriteBase3D::get_faces(uint32_t p_usage_flags) const { - return Vector<Face3>(); } @@ -260,7 +233,6 @@ Ref<TriangleMesh> SpriteBase3D::generate_triangle_mesh() const { } void SpriteBase3D::set_draw_flag(DrawFlags p_flag, bool p_enable) { - ERR_FAIL_INDEX(p_flag, FLAG_MAX); flags[p_flag] = p_enable; _queue_update(); @@ -272,31 +244,26 @@ bool SpriteBase3D::get_draw_flag(DrawFlags p_flag) const { } void SpriteBase3D::set_alpha_cut_mode(AlphaCutMode p_mode) { - ERR_FAIL_INDEX(p_mode, 3); alpha_cut = p_mode; _queue_update(); } SpriteBase3D::AlphaCutMode SpriteBase3D::get_alpha_cut_mode() const { - return alpha_cut; } void SpriteBase3D::set_billboard_mode(StandardMaterial3D::BillboardMode p_mode) { - ERR_FAIL_INDEX(p_mode, 3); billboard_mode = p_mode; _queue_update(); } StandardMaterial3D::BillboardMode SpriteBase3D::get_billboard_mode() const { - return billboard_mode; } void SpriteBase3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_centered", "centered"), &SpriteBase3D::set_centered); ClassDB::bind_method(D_METHOD("is_centered"), &SpriteBase3D::is_centered); @@ -359,7 +326,6 @@ void SpriteBase3D::_bind_methods() { } SpriteBase3D::SpriteBase3D() { - color_dirty = true; centered = true; hflip = false; @@ -382,14 +348,12 @@ SpriteBase3D::SpriteBase3D() { } SpriteBase3D::~SpriteBase3D() { - RenderingServer::get_singleton()->free(immediate); } /////////////////////////////////////////// void Sprite3D::_draw() { - RID immediate = get_immediate(); RS::get_singleton()->immediate_clear(immediate); @@ -458,7 +422,6 @@ void Sprite3D::_draw() { SWAP(uvs[2], uvs[3]); } if (is_flipped_v()) { - SWAP(uvs[0], uvs[3]); SWAP(uvs[1], uvs[2]); } @@ -499,7 +462,6 @@ void Sprite3D::_draw() { AABB aabb; for (int i = 0; i < 6; i++) { - static const int index[6] = { 0, 1, 2, 0, 2, 3 }; RS::get_singleton()->immediate_normal(immediate, normal); @@ -527,7 +489,6 @@ void Sprite3D::_texture_changed() { } void Sprite3D::set_texture(const Ref<Texture2D> &p_texture) { - if (p_texture == texture) return; if (texture.is_valid()) { @@ -541,12 +502,10 @@ void Sprite3D::set_texture(const Ref<Texture2D> &p_texture) { } Ref<Texture2D> Sprite3D::get_texture() const { - return texture; } void Sprite3D::set_region(bool p_region) { - if (p_region == region) return; @@ -555,12 +514,10 @@ void Sprite3D::set_region(bool p_region) { } bool Sprite3D::is_region() const { - return region; } void Sprite3D::set_region_rect(const Rect2 &p_region_rect) { - bool changed = region_rect != p_region_rect; region_rect = p_region_rect; if (region && changed) { @@ -569,12 +526,10 @@ void Sprite3D::set_region_rect(const Rect2 &p_region_rect) { } Rect2 Sprite3D::get_region_rect() const { - return region_rect; } void Sprite3D::set_frame(int p_frame) { - ERR_FAIL_INDEX(p_frame, int64_t(vframes) * hframes); frame = p_frame; @@ -587,7 +542,6 @@ void Sprite3D::set_frame(int p_frame) { } int Sprite3D::get_frame() const { - return frame; } @@ -603,31 +557,26 @@ Vector2 Sprite3D::get_frame_coords() const { } void Sprite3D::set_vframes(int p_amount) { - ERR_FAIL_COND(p_amount < 1); vframes = p_amount; _queue_update(); _change_notify(); } int Sprite3D::get_vframes() const { - return vframes; } void Sprite3D::set_hframes(int p_amount) { - ERR_FAIL_COND(p_amount < 1); hframes = p_amount; _queue_update(); _change_notify(); } int Sprite3D::get_hframes() const { - return hframes; } Rect2 Sprite3D::get_item_rect() const { - if (texture.is_null()) return Rect2(0, 0, 1, 1); /* @@ -638,7 +587,6 @@ Rect2 Sprite3D::get_item_rect() const { Size2i s; if (region) { - s = region_rect.size; } else { s = texture->get_size(); @@ -656,7 +604,6 @@ Rect2 Sprite3D::get_item_rect() const { } void Sprite3D::_validate_property(PropertyInfo &property) const { - if (property.name == "frame") { property.hint = PROPERTY_HINT_RANGE; property.hint_string = "0," + itos(vframes * hframes - 1) + ",1"; @@ -669,7 +616,6 @@ void Sprite3D::_validate_property(PropertyInfo &property) const { } void Sprite3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_texture", "texture"), &Sprite3D::set_texture); ClassDB::bind_method(D_METHOD("get_texture"), &Sprite3D::get_texture); @@ -705,7 +651,6 @@ void Sprite3D::_bind_methods() { } Sprite3D::Sprite3D() { - region = false; frame = 0; vframes = 1; @@ -715,7 +660,6 @@ Sprite3D::Sprite3D() { //////////////////////////////////////// void AnimatedSprite3D::_draw() { - RID immediate = get_immediate(); RS::get_singleton()->immediate_clear(immediate); @@ -792,7 +736,6 @@ void AnimatedSprite3D::_draw() { SWAP(uvs[2], uvs[3]); } if (is_flipped_v()) { - SWAP(uvs[0], uvs[3]); SWAP(uvs[1], uvs[2]); } @@ -834,7 +777,6 @@ void AnimatedSprite3D::_draw() { AABB aabb; for (int i = 0; i < 6; i++) { - static const int indices[6] = { 0, 1, 2, 0, 2, 3 @@ -861,11 +803,9 @@ void AnimatedSprite3D::_draw() { } void AnimatedSprite3D::_validate_property(PropertyInfo &property) const { - if (!frames.is_valid()) return; if (property.name == "animation") { - property.hint = PROPERTY_HINT_ENUM; List<StringName> names; frames->get_animation_list(&names); @@ -903,10 +843,8 @@ void AnimatedSprite3D::_validate_property(PropertyInfo &property) const { } void AnimatedSprite3D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_INTERNAL_PROCESS: { - if (frames.is_null()) return; if (!frames->has_animation(animation)) @@ -921,9 +859,7 @@ void AnimatedSprite3D::_notification(int p_what) { float remaining = get_process_delta_time(); while (remaining) { - if (timeout <= 0) { - timeout = 1.0 / speed; int fc = frames->get_frame_count(animation); @@ -950,7 +886,6 @@ void AnimatedSprite3D::_notification(int p_what) { } void AnimatedSprite3D::set_sprite_frames(const Ref<SpriteFrames> &p_frames) { - if (frames.is_valid()) frames->disconnect("changed", callable_mp(this, &AnimatedSprite3D::_res_changed)); frames = p_frames; @@ -970,12 +905,10 @@ void AnimatedSprite3D::set_sprite_frames(const Ref<SpriteFrames> &p_frames) { } Ref<SpriteFrames> AnimatedSprite3D::get_sprite_frames() const { - return frames; } void AnimatedSprite3D::set_frame(int p_frame) { - if (!frames.is_valid()) { return; } @@ -999,12 +932,10 @@ void AnimatedSprite3D::set_frame(int p_frame) { emit_signal(SceneStringNames::get_singleton()->frame_changed); } int AnimatedSprite3D::get_frame() const { - return frame; } Rect2 AnimatedSprite3D::get_item_rect() const { - if (!frames.is_valid() || !frames->has_animation(animation) || frame < 0 || frame >= frames->get_frame_count(animation)) { return Rect2(0, 0, 1, 1); } @@ -1027,7 +958,6 @@ Rect2 AnimatedSprite3D::get_item_rect() const { } void AnimatedSprite3D::_res_changed() { - set_frame(frame); _change_notify("frame"); _change_notify("animation"); @@ -1035,7 +965,6 @@ void AnimatedSprite3D::_res_changed() { } void AnimatedSprite3D::_set_playing(bool p_playing) { - if (playing == p_playing) return; playing = p_playing; @@ -1044,29 +973,24 @@ void AnimatedSprite3D::_set_playing(bool p_playing) { } bool AnimatedSprite3D::_is_playing() const { - return playing; } void AnimatedSprite3D::play(const StringName &p_animation) { - if (p_animation) set_animation(p_animation); _set_playing(true); } void AnimatedSprite3D::stop() { - _set_playing(false); } bool AnimatedSprite3D::is_playing() const { - return is_processing(); } void AnimatedSprite3D::_reset_timeout() { - if (!playing) return; @@ -1083,7 +1007,6 @@ void AnimatedSprite3D::_reset_timeout() { } void AnimatedSprite3D::set_animation(const StringName &p_animation) { - if (animation == p_animation) return; @@ -1094,12 +1017,10 @@ void AnimatedSprite3D::set_animation(const StringName &p_animation) { _queue_update(); } StringName AnimatedSprite3D::get_animation() const { - return animation; } String AnimatedSprite3D::get_configuration_warning() const { - if (frames.is_null()) { return TTR("A SpriteFrames resource must be created or set in the \"Frames\" property in order for AnimatedSprite3D to display frames."); } @@ -1108,7 +1029,6 @@ String AnimatedSprite3D::get_configuration_warning() const { } void AnimatedSprite3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_sprite_frames", "sprite_frames"), &AnimatedSprite3D::set_sprite_frames); ClassDB::bind_method(D_METHOD("get_sprite_frames"), &AnimatedSprite3D::get_sprite_frames); @@ -1134,7 +1054,6 @@ void AnimatedSprite3D::_bind_methods() { } AnimatedSprite3D::AnimatedSprite3D() { - frame = 0; playing = false; animation = "default"; diff --git a/scene/3d/sprite_3d.h b/scene/3d/sprite_3d.h index 64bef41fd8..721bed56f1 100644 --- a/scene/3d/sprite_3d.h +++ b/scene/3d/sprite_3d.h @@ -35,7 +35,6 @@ #include "scene/3d/visual_instance_3d.h" class SpriteBase3D : public GeometryInstance3D { - GDCLASS(SpriteBase3D, GeometryInstance3D); mutable Ref<TriangleMesh> triangle_mesh; //cached @@ -145,7 +144,6 @@ public: }; class Sprite3D : public SpriteBase3D { - GDCLASS(Sprite3D, SpriteBase3D); Ref<Texture2D> texture; @@ -194,7 +192,6 @@ public: }; class AnimatedSprite3D : public SpriteBase3D { - GDCLASS(AnimatedSprite3D, SpriteBase3D); Ref<SpriteFrames> frames; diff --git a/scene/3d/vehicle_body_3d.cpp b/scene/3d/vehicle_body_3d.cpp index 66fcf0e40b..186bb48744 100644 --- a/scene/3d/vehicle_body_3d.cpp +++ b/scene/3d/vehicle_body_3d.cpp @@ -79,9 +79,7 @@ public: }; void VehicleWheel3D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - VehicleBody3D *cb = Object::cast_to<VehicleBody3D>(get_parent()); if (!cb) return; @@ -94,7 +92,6 @@ void VehicleWheel3D::_notification(int p_what) { m_wheelAxleCS = get_transform().basis.get_axis(Vector3::AXIS_X).normalized(); } if (p_what == NOTIFICATION_EXIT_TREE) { - VehicleBody3D *cb = Object::cast_to<VehicleBody3D>(get_parent()); if (!cb) return; @@ -112,7 +109,6 @@ String VehicleWheel3D::get_configuration_warning() const { } void VehicleWheel3D::_update(PhysicsDirectBodyState3D *s) { - if (m_raycastInfo.m_isInContact) { @@ -145,77 +141,61 @@ void VehicleWheel3D::_update(PhysicsDirectBodyState3D *s) { } void VehicleWheel3D::set_radius(float p_radius) { - m_wheelRadius = p_radius; update_gizmo(); } float VehicleWheel3D::get_radius() const { - return m_wheelRadius; } void VehicleWheel3D::set_suspension_rest_length(float p_length) { - m_suspensionRestLength = p_length; update_gizmo(); } float VehicleWheel3D::get_suspension_rest_length() const { - return m_suspensionRestLength; } void VehicleWheel3D::set_suspension_travel(float p_length) { - m_maxSuspensionTravelCm = p_length / 0.01; } float VehicleWheel3D::get_suspension_travel() const { - return m_maxSuspensionTravelCm * 0.01; } void VehicleWheel3D::set_suspension_stiffness(float p_value) { - m_suspensionStiffness = p_value; } float VehicleWheel3D::get_suspension_stiffness() const { - return m_suspensionStiffness; } void VehicleWheel3D::set_suspension_max_force(float p_value) { - m_maxSuspensionForce = p_value; } float VehicleWheel3D::get_suspension_max_force() const { - return m_maxSuspensionForce; } void VehicleWheel3D::set_damping_compression(float p_value) { - m_wheelsDampingCompression = p_value; } float VehicleWheel3D::get_damping_compression() const { - return m_wheelsDampingCompression; } void VehicleWheel3D::set_damping_relaxation(float p_value) { - m_wheelsDampingRelaxation = p_value; } float VehicleWheel3D::get_damping_relaxation() const { - return m_wheelsDampingRelaxation; } void VehicleWheel3D::set_friction_slip(float p_value) { - m_frictionSlip = p_value; } float VehicleWheel3D::get_friction_slip() const { - return m_frictionSlip; } @@ -232,7 +212,6 @@ bool VehicleWheel3D::is_in_contact() const { } void VehicleWheel3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_radius", "length"), &VehicleWheel3D::set_radius); ClassDB::bind_method(D_METHOD("get_radius"), &VehicleWheel3D::get_radius); @@ -303,65 +282,52 @@ void VehicleWheel3D::_bind_methods() { } void VehicleWheel3D::set_engine_force(float p_engine_force) { - m_engineForce = p_engine_force; } float VehicleWheel3D::get_engine_force() const { - return m_engineForce; } void VehicleWheel3D::set_brake(float p_brake) { - m_brake = p_brake; } float VehicleWheel3D::get_brake() const { - return m_brake; } void VehicleWheel3D::set_steering(float p_steering) { - m_steering = p_steering; } float VehicleWheel3D::get_steering() const { - return m_steering; } void VehicleWheel3D::set_use_as_traction(bool p_enable) { - engine_traction = p_enable; } bool VehicleWheel3D::is_used_as_traction() const { - return engine_traction; } void VehicleWheel3D::set_use_as_steering(bool p_enabled) { - steers = p_enabled; } bool VehicleWheel3D::is_used_as_steering() const { - return steers; } float VehicleWheel3D::get_skidinfo() const { - return m_skidInfo; } float VehicleWheel3D::get_rpm() const { - return m_rpm; } VehicleWheel3D::VehicleWheel3D() { - steers = false; engine_traction = false; m_steering = real_t(0.); @@ -389,7 +355,6 @@ VehicleWheel3D::VehicleWheel3D() { } void VehicleBody3D::_update_wheel_transform(VehicleWheel3D &wheel, PhysicsDirectBodyState3D *s) { - wheel.m_raycastInfo.m_isInContact = false; Transform chassisTrans = s->get_transform(); @@ -406,7 +371,6 @@ void VehicleBody3D::_update_wheel_transform(VehicleWheel3D &wheel, PhysicsDirect } void VehicleBody3D::_update_wheel(int p_idx, PhysicsDirectBodyState3D *s) { - VehicleWheel3D &wheel = *wheels[p_idx]; _update_wheel_transform(wheel, s); @@ -431,7 +395,6 @@ void VehicleBody3D::_update_wheel(int p_idx, PhysicsDirectBodyState3D *s) { } real_t VehicleBody3D::_ray_cast(int p_idx, PhysicsDirectBodyState3D *s) { - VehicleWheel3D &wheel = *wheels[p_idx]; _update_wheel_transform(wheel, s); @@ -514,7 +477,6 @@ real_t VehicleBody3D::_ray_cast(int p_idx, PhysicsDirectBodyState3D *s) { } void VehicleBody3D::_update_suspension(PhysicsDirectBodyState3D *s) { - real_t chassisMass = mass; for (int w_it = 0; w_it < wheels.size(); w_it++) { @@ -560,7 +522,6 @@ void VehicleBody3D::_update_suspension(PhysicsDirectBodyState3D *s) { //bilateral constraint between two dynamic objects void VehicleBody3D::_resolve_single_bilateral(PhysicsDirectBodyState3D *s, const Vector3 &pos1, PhysicsBody3D *body2, const Vector3 &pos2, const Vector3 &normal, real_t &impulse, const real_t p_rollInfluence) { - real_t normalLenSqr = normal.length_squared(); //ERR_FAIL_COND( normalLenSqr < real_t(1.1)); @@ -668,7 +629,6 @@ VehicleBody3D::btVehicleWheelContactPoint::btVehicleWheelContactPoint(PhysicsDir } real_t VehicleBody3D::_calc_rolling_friction(btVehicleWheelContactPoint &contactPoint) { - real_t j1 = 0.f; const Vector3 &contactPosWorld = contactPoint.m_frictionPositionWorld; @@ -699,7 +659,6 @@ real_t VehicleBody3D::_calc_rolling_friction(btVehicleWheelContactPoint &contact static const real_t sideFrictionStiffness2 = real_t(1.0); void VehicleBody3D::_update_friction(PhysicsDirectBodyState3D *s) { - //calculate the impulse, so that the wheels don't move sidewards int numWheel = wheels.size(); if (!numWheel) @@ -717,13 +676,10 @@ void VehicleBody3D::_update_friction(PhysicsDirectBodyState3D *s) { } { - for (int i = 0; i < wheels.size(); i++) { - VehicleWheel3D &wheelInfo = *wheels[i]; if (wheelInfo.m_raycastInfo.m_isInContact) { - //const btTransform& wheelTrans = getWheelTransformWS( i ); Basis wheelBasis0 = wheelInfo.m_worldTransform.basis; //get_global_transform().basis; @@ -851,7 +807,6 @@ void VehicleBody3D::_update_friction(PhysicsDirectBodyState3D *s) { } void VehicleBody3D::_direct_state_changed(Object *p_state) { - RigidBody3D::_direct_state_changed(p_state); state = Object::cast_to<PhysicsDirectBodyState3D>(p_state); @@ -859,12 +814,10 @@ void VehicleBody3D::_direct_state_changed(Object *p_state) { float step = state->get_step(); for (int i = 0; i < wheels.size(); i++) { - _update_wheel(i, state); } for (int i = 0; i < wheels.size(); i++) { - _ray_cast(i, state); wheels[i]->set_transform(state->get_transform().inverse() * wheels[i]->m_worldTransform); } @@ -872,7 +825,6 @@ void VehicleBody3D::_direct_state_changed(Object *p_state) { _update_suspension(state); for (int i = 0; i < wheels.size(); i++) { - //apply suspension force VehicleWheel3D &wheel = *wheels[i]; @@ -921,7 +873,6 @@ void VehicleBody3D::_direct_state_changed(Object *p_state) { } void VehicleBody3D::set_engine_force(float p_engine_force) { - engine_force = p_engine_force; for (int i = 0; i < wheels.size(); i++) { VehicleWheel3D &wheelInfo = *wheels[i]; @@ -931,12 +882,10 @@ void VehicleBody3D::set_engine_force(float p_engine_force) { } float VehicleBody3D::get_engine_force() const { - return engine_force; } void VehicleBody3D::set_brake(float p_brake) { - brake = p_brake; for (int i = 0; i < wheels.size(); i++) { VehicleWheel3D &wheelInfo = *wheels[i]; @@ -944,12 +893,10 @@ void VehicleBody3D::set_brake(float p_brake) { } } float VehicleBody3D::get_brake() const { - return brake; } void VehicleBody3D::set_steering(float p_steering) { - m_steeringValue = p_steering; for (int i = 0; i < wheels.size(); i++) { VehicleWheel3D &wheelInfo = *wheels[i]; @@ -958,12 +905,10 @@ void VehicleBody3D::set_steering(float p_steering) { } } float VehicleBody3D::get_steering() const { - return m_steeringValue; } void VehicleBody3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_engine_force", "engine_force"), &VehicleBody3D::set_engine_force); ClassDB::bind_method(D_METHOD("get_engine_force"), &VehicleBody3D::get_engine_force); @@ -980,7 +925,6 @@ void VehicleBody3D::_bind_methods() { } VehicleBody3D::VehicleBody3D() { - m_pitchControl = 0; m_currentVehicleSpeedKmHour = real_t(0.); m_steeringValue = real_t(0.); diff --git a/scene/3d/vehicle_body_3d.h b/scene/3d/vehicle_body_3d.h index d5e896263d..e76f44acfd 100644 --- a/scene/3d/vehicle_body_3d.h +++ b/scene/3d/vehicle_body_3d.h @@ -36,7 +36,6 @@ class VehicleBody3D; class VehicleWheel3D : public Node3D { - GDCLASS(VehicleWheel3D, Node3D); friend class VehicleBody3D; @@ -152,7 +151,6 @@ public: }; class VehicleBody3D : public RigidBody3D { - GDCLASS(VehicleBody3D, RigidBody3D); float engine_force; diff --git a/scene/3d/velocity_tracker_3d.cpp b/scene/3d/velocity_tracker_3d.cpp index c9b95e6397..f4f3c7a200 100644 --- a/scene/3d/velocity_tracker_3d.cpp +++ b/scene/3d/velocity_tracker_3d.cpp @@ -32,16 +32,13 @@ #include "core/engine.h" void VelocityTracker3D::set_track_physics_step(bool p_track_physics_step) { - physics_step = p_track_physics_step; } bool VelocityTracker3D::is_tracking_physics_step() const { - return physics_step; } void VelocityTracker3D::update_position(const Vector3 &p_position) { - PositionHistory ph; ph.position = p_position; if (physics_step) { @@ -60,7 +57,6 @@ void VelocityTracker3D::update_position(const Vector3 &p_position) { position_history.write[0] = ph; } Vector3 VelocityTracker3D::get_tracked_linear_velocity() const { - Vector3 linear_velocity; float max_time = 1 / 5.0; //maximum time to interpolate a velocity @@ -105,7 +101,6 @@ Vector3 VelocityTracker3D::get_tracked_linear_velocity() const { } void VelocityTracker3D::reset(const Vector3 &p_new_pos) { - PositionHistory ph; ph.position = p_new_pos; if (physics_step) { @@ -119,7 +114,6 @@ void VelocityTracker3D::reset(const Vector3 &p_new_pos) { } void VelocityTracker3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_track_physics_step", "enable"), &VelocityTracker3D::set_track_physics_step); ClassDB::bind_method(D_METHOD("is_tracking_physics_step"), &VelocityTracker3D::is_tracking_physics_step); ClassDB::bind_method(D_METHOD("update_position", "position"), &VelocityTracker3D::update_position); diff --git a/scene/3d/visibility_notifier_3d.cpp b/scene/3d/visibility_notifier_3d.cpp index 2707a0a514..9c2035f1d8 100644 --- a/scene/3d/visibility_notifier_3d.cpp +++ b/scene/3d/visibility_notifier_3d.cpp @@ -37,7 +37,6 @@ #include "scene/scene_string_names.h" void VisibilityNotifier3D::_enter_camera(Camera3D *p_camera) { - ERR_FAIL_COND(cameras.has(p_camera)); cameras.insert(p_camera); if (cameras.size() == 1) { @@ -49,7 +48,6 @@ void VisibilityNotifier3D::_enter_camera(Camera3D *p_camera) { } void VisibilityNotifier3D::_exit_camera(Camera3D *p_camera) { - ERR_FAIL_COND(!cameras.has(p_camera)); cameras.erase(p_camera); @@ -62,7 +60,6 @@ void VisibilityNotifier3D::_exit_camera(Camera3D *p_camera) { } void VisibilityNotifier3D::set_aabb(const AABB &p_aabb) { - if (aabb == p_aabb) return; aabb = p_aabb; @@ -76,35 +73,28 @@ void VisibilityNotifier3D::set_aabb(const AABB &p_aabb) { } AABB VisibilityNotifier3D::get_aabb() const { - return aabb; } void VisibilityNotifier3D::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_ENTER_WORLD: { - get_world_3d()->_register_notifier(this, get_global_transform().xform(aabb)); } break; case NOTIFICATION_TRANSFORM_CHANGED: { - get_world_3d()->_update_notifier(this, get_global_transform().xform(aabb)); } break; case NOTIFICATION_EXIT_WORLD: { - get_world_3d()->_remove_notifier(this); } break; } } bool VisibilityNotifier3D::is_on_screen() const { - return cameras.size() != 0; } void VisibilityNotifier3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_aabb", "rect"), &VisibilityNotifier3D::set_aabb); ClassDB::bind_method(D_METHOD("get_aabb"), &VisibilityNotifier3D::get_aabb); ClassDB::bind_method(D_METHOD("is_on_screen"), &VisibilityNotifier3D::is_on_screen); @@ -118,7 +108,6 @@ void VisibilityNotifier3D::_bind_methods() { } VisibilityNotifier3D::VisibilityNotifier3D() { - aabb = AABB(Vector3(-1, -1, -1), Vector3(2, 2, 2)); set_notify_transform(true); } @@ -126,9 +115,7 @@ VisibilityNotifier3D::VisibilityNotifier3D() { ////////////////////////////////////// void VisibilityEnabler3D::_screen_enter() { - for (Map<Node *, Variant>::Element *E = nodes.front(); E; E = E->next()) { - _change_node_state(E->key(), true); } @@ -136,9 +123,7 @@ void VisibilityEnabler3D::_screen_enter() { } void VisibilityEnabler3D::_screen_exit() { - for (Map<Node *, Variant>::Element *E = nodes.front(); E; E = E->next()) { - _change_node_state(E->key(), false); } @@ -146,14 +131,12 @@ void VisibilityEnabler3D::_screen_exit() { } void VisibilityEnabler3D::_find_nodes(Node *p_node) { - bool add = false; Variant meta; { RigidBody3D *rb = Object::cast_to<RigidBody3D>(p_node); if (rb && ((rb->get_mode() == RigidBody3D::MODE_CHARACTER || rb->get_mode() == RigidBody3D::MODE_RIGID))) { - add = true; meta = rb->get_mode(); } @@ -167,7 +150,6 @@ void VisibilityEnabler3D::_find_nodes(Node *p_node) { } if (add) { - p_node->connect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler3D::_node_removed), varray(p_node), CONNECT_ONESHOT); nodes[p_node] = meta; _change_node_state(p_node, false); @@ -183,9 +165,7 @@ void VisibilityEnabler3D::_find_nodes(Node *p_node) { } void VisibilityEnabler3D::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - if (Engine::get_singleton()->is_editor_hint()) return; @@ -198,12 +178,10 @@ void VisibilityEnabler3D::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - if (Engine::get_singleton()->is_editor_hint()) return; for (Map<Node *, Variant>::Element *E = nodes.front(); E; E = E->next()) { - if (!visible) _change_node_state(E->key(), true); E->key()->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &VisibilityEnabler3D::_node_removed)); @@ -214,7 +192,6 @@ void VisibilityEnabler3D::_notification(int p_what) { } void VisibilityEnabler3D::_change_node_state(Node *p_node, bool p_enabled) { - ERR_FAIL_COND(!nodes.has(p_node)); if (enabler[ENABLER_FREEZE_BODIES]) { @@ -228,21 +205,18 @@ void VisibilityEnabler3D::_change_node_state(Node *p_node, bool p_enabled) { AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node); if (ap) { - ap->set_active(p_enabled); } } } void VisibilityEnabler3D::_node_removed(Node *p_node) { - if (!visible) _change_node_state(p_node, true); nodes.erase(p_node); } void VisibilityEnabler3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_enabler", "enabler", "enabled"), &VisibilityEnabler3D::set_enabler); ClassDB::bind_method(D_METHOD("is_enabler_enabled", "enabler"), &VisibilityEnabler3D::is_enabler_enabled); @@ -255,18 +229,15 @@ void VisibilityEnabler3D::_bind_methods() { } void VisibilityEnabler3D::set_enabler(Enabler p_enabler, bool p_enable) { - ERR_FAIL_INDEX(p_enabler, ENABLER_MAX); enabler[p_enabler] = p_enable; } bool VisibilityEnabler3D::is_enabler_enabled(Enabler p_enabler) const { - ERR_FAIL_INDEX_V(p_enabler, ENABLER_MAX, false); return enabler[p_enabler]; } VisibilityEnabler3D::VisibilityEnabler3D() { - for (int i = 0; i < ENABLER_MAX; i++) enabler[i] = true; diff --git a/scene/3d/visibility_notifier_3d.h b/scene/3d/visibility_notifier_3d.h index 19204a6a4e..3864b398f4 100644 --- a/scene/3d/visibility_notifier_3d.h +++ b/scene/3d/visibility_notifier_3d.h @@ -35,7 +35,6 @@ class Camera3D; class VisibilityNotifier3D : public Node3D { - GDCLASS(VisibilityNotifier3D, Node3D); Set<Camera3D *> cameras; @@ -62,7 +61,6 @@ public: }; class VisibilityEnabler3D : public VisibilityNotifier3D { - GDCLASS(VisibilityEnabler3D, VisibilityNotifier3D); public: diff --git a/scene/3d/visual_instance_3d.cpp b/scene/3d/visual_instance_3d.cpp index 4724c88a30..3af0c0dff0 100644 --- a/scene/3d/visual_instance_3d.cpp +++ b/scene/3d/visual_instance_3d.cpp @@ -35,12 +35,10 @@ #include "skeleton_3d.h" AABB VisualInstance3D::get_transformed_aabb() const { - return get_global_transform().xform(get_aabb()); } void VisualInstance3D::_update_visibility() { - if (!is_inside_tree()) return; @@ -49,11 +47,8 @@ void VisualInstance3D::_update_visibility() { } void VisualInstance3D::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_WORLD: { - // CHECK SKELETON => moving skeleton attaching logic to MeshInstance /* Skeleton *skeleton=Object::cast_to<Skeleton>(get_parent()); @@ -66,42 +61,35 @@ void VisualInstance3D::_notification(int p_what) { } break; case NOTIFICATION_TRANSFORM_CHANGED: { - Transform gt = get_global_transform(); RenderingServer::get_singleton()->instance_set_transform(instance, gt); } break; case NOTIFICATION_EXIT_WORLD: { - RenderingServer::get_singleton()->instance_set_scenario(instance, RID()); RenderingServer::get_singleton()->instance_attach_skeleton(instance, RID()); //RS::get_singleton()->instance_geometry_set_baked_light_sampler(instance, RID() ); } break; case NOTIFICATION_VISIBILITY_CHANGED: { - _update_visibility(); } break; } } RID VisualInstance3D::get_instance() const { - return instance; } RID VisualInstance3D::_get_visual_instance_rid() const { - return instance; } void VisualInstance3D::set_layer_mask(uint32_t p_mask) { - layers = p_mask; RenderingServer::get_singleton()->instance_set_layer_mask(instance, p_mask); } uint32_t VisualInstance3D::get_layer_mask() const { - return layers; } @@ -120,7 +108,6 @@ bool VisualInstance3D::get_layer_mask_bit(int p_layer) const { } void VisualInstance3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("_get_visual_instance_rid"), &VisualInstance3D::_get_visual_instance_rid); ClassDB::bind_method(D_METHOD("set_base", "base"), &VisualInstance3D::set_base); ClassDB::bind_method(D_METHOD("get_base"), &VisualInstance3D::get_base); @@ -136,18 +123,15 @@ void VisualInstance3D::_bind_methods() { } void VisualInstance3D::set_base(const RID &p_base) { - RenderingServer::get_singleton()->instance_set_base(instance, p_base); base = p_base; } RID VisualInstance3D::get_base() const { - return base; } VisualInstance3D::VisualInstance3D() { - instance = RenderingServer::get_singleton()->instance_create(); RenderingServer::get_singleton()->instance_attach_object_instance_id(instance, get_instance_id()); layers = 1; @@ -155,62 +139,51 @@ VisualInstance3D::VisualInstance3D() { } VisualInstance3D::~VisualInstance3D() { - RenderingServer::get_singleton()->free(instance); } void GeometryInstance3D::set_material_override(const Ref<Material> &p_material) { - material_override = p_material; RS::get_singleton()->instance_geometry_set_material_override(get_instance(), p_material.is_valid() ? p_material->get_rid() : RID()); } Ref<Material> GeometryInstance3D::get_material_override() const { - return material_override; } void GeometryInstance3D::set_lod_min_distance(float p_dist) { - lod_min_distance = p_dist; RS::get_singleton()->instance_geometry_set_draw_range(get_instance(), lod_min_distance, lod_max_distance, lod_min_hysteresis, lod_max_hysteresis); } float GeometryInstance3D::get_lod_min_distance() const { - return lod_min_distance; } void GeometryInstance3D::set_lod_max_distance(float p_dist) { - lod_max_distance = p_dist; RS::get_singleton()->instance_geometry_set_draw_range(get_instance(), lod_min_distance, lod_max_distance, lod_min_hysteresis, lod_max_hysteresis); } float GeometryInstance3D::get_lod_max_distance() const { - return lod_max_distance; } void GeometryInstance3D::set_lod_min_hysteresis(float p_dist) { - lod_min_hysteresis = p_dist; RS::get_singleton()->instance_geometry_set_draw_range(get_instance(), lod_min_distance, lod_max_distance, lod_min_hysteresis, lod_max_hysteresis); } float GeometryInstance3D::get_lod_min_hysteresis() const { - return lod_min_hysteresis; } void GeometryInstance3D::set_lod_max_hysteresis(float p_dist) { - lod_max_hysteresis = p_dist; RS::get_singleton()->instance_geometry_set_draw_range(get_instance(), lod_min_distance, lod_max_distance, lod_min_hysteresis, lod_max_hysteresis); } float GeometryInstance3D::get_lod_max_hysteresis() const { - return lod_max_hysteresis; } @@ -284,31 +257,26 @@ void GeometryInstance3D::_get_property_list(List<PropertyInfo> *p_list) const { } void GeometryInstance3D::set_cast_shadows_setting(ShadowCastingSetting p_shadow_casting_setting) { - shadow_casting_setting = p_shadow_casting_setting; RS::get_singleton()->instance_geometry_set_cast_shadows_setting(get_instance(), (RS::ShadowCastingSetting)p_shadow_casting_setting); } GeometryInstance3D::ShadowCastingSetting GeometryInstance3D::get_cast_shadows_setting() const { - return shadow_casting_setting; } void GeometryInstance3D::set_extra_cull_margin(float p_margin) { - ERR_FAIL_COND(p_margin < 0); extra_cull_margin = p_margin; RS::get_singleton()->instance_set_extra_visibility_margin(get_instance(), extra_cull_margin); } float GeometryInstance3D::get_extra_cull_margin() const { - return extra_cull_margin; } void GeometryInstance3D::set_shader_instance_uniform(const StringName &p_uniform, const Variant &p_value) { - if (p_value.get_type() == Variant::NIL) { Variant def_value = RS::get_singleton()->instance_geometry_get_shader_parameter_default_value(get_instance(), p_uniform); RS::get_singleton()->instance_geometry_set_shader_parameter(get_instance(), p_uniform, def_value); @@ -320,11 +288,9 @@ void GeometryInstance3D::set_shader_instance_uniform(const StringName &p_uniform } Variant GeometryInstance3D::get_shader_instance_uniform(const StringName &p_uniform) const { - return RS::get_singleton()->instance_geometry_get_shader_parameter(get_instance(), p_uniform); } void GeometryInstance3D::set_custom_aabb(AABB aabb) { - RS::get_singleton()->instance_set_custom_aabb(get_instance(), aabb); } @@ -338,7 +304,6 @@ GeometryInstance3D::LightmapScale GeometryInstance3D::get_lightmap_scale() const } void GeometryInstance3D::set_gi_mode(GIMode p_mode) { - switch (p_mode) { case GI_MODE_DISABLED: { RS::get_singleton()->instance_geometry_set_flag(get_instance(), RS::INSTANCE_FLAG_USE_BAKED_LIGHT, false); @@ -363,7 +328,6 @@ GeometryInstance3D::GIMode GeometryInstance3D::get_gi_mode() const { } void GeometryInstance3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_material_override", "material"), &GeometryInstance3D::set_material_override); ClassDB::bind_method(D_METHOD("get_material_override"), &GeometryInstance3D::get_material_override); diff --git a/scene/3d/visual_instance_3d.h b/scene/3d/visual_instance_3d.h index a871c65b6a..195674f62d 100644 --- a/scene/3d/visual_instance_3d.h +++ b/scene/3d/visual_instance_3d.h @@ -37,7 +37,6 @@ #include "scene/resources/material.h" class VisualInstance3D : public Node3D { - GDCLASS(VisualInstance3D, Node3D); OBJ_CATEGORY("3D Visual Nodes"); @@ -81,7 +80,6 @@ public: }; class GeometryInstance3D : public VisualInstance3D { - GDCLASS(GeometryInstance3D, VisualInstance3D); public: diff --git a/scene/3d/voxelizer.cpp b/scene/3d/voxelizer.cpp index f9c3810843..333c486165 100644 --- a/scene/3d/voxelizer.cpp +++ b/scene/3d/voxelizer.cpp @@ -36,7 +36,6 @@ #include <stdlib.h> static _FORCE_INLINE_ void get_uv_and_normal(const Vector3 &p_pos, const Vector3 *p_vtx, const Vector2 *p_uv, const Vector3 *p_normal, Vector2 &r_uv, Vector3 &r_normal) { - if (p_pos.distance_squared_to(p_vtx[0]) < CMP_EPSILON2) { r_uv = p_uv[0]; r_normal = p_normal[0]; @@ -77,7 +76,6 @@ static _FORCE_INLINE_ void get_uv_and_normal(const Vector3 &p_pos, const Vector3 } void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, const Vector3 *p_vtx, const Vector3 *p_normal, const Vector2 *p_uv, const MaterialCache &p_material, const AABB &p_aabb) { - if (p_level == cell_subdiv) { //plot the face by guessing its albedo and emission value @@ -89,7 +87,6 @@ void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, co Vector3 normal = plane.normal; for (int i = 0; i < 3; i++) { - Vector3 axis; axis[i] = 1.0; float dot = ABS(normal.dot(axis)); @@ -117,11 +114,9 @@ void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, co //map to a grid average in the best axis for this face for (int i = 0; i < color_scan_cell_width; i++) { - Vector3 ofs_i = float(i) * t1; for (int j = 0; j < color_scan_cell_width; j++) { - Vector3 ofs_j = float(j) * t2; Vector3 from = p_aabb.position + ofs_i + ofs_j; @@ -147,7 +142,6 @@ void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, co if (ABS(plane.distance_to(ray_from)) < ABS(plane.distance_to(ray_to))) { intersection = plane.project(ray_from); } else { - intersection = plane.project(ray_to); } } @@ -210,7 +204,6 @@ void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, co normal_accum = lnormal * alpha; } else { - float accdiv = 1.0 / (color_scan_cell_width * color_scan_cell_width); alpha *= accdiv; @@ -243,7 +236,6 @@ void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, co int half = (1 << cell_subdiv) >> (p_level + 1); for (int i = 0; i < 8; i++) { - AABB aabb = p_aabb; aabb.size *= 0.5; @@ -297,11 +289,9 @@ void Voxelizer::_plot_face(int p_idx, int p_level, int p_x, int p_y, int p_z, co } Vector<Color> Voxelizer::_get_bake_texture(Ref<Image> p_image, const Color &p_color_mul, const Color &p_color_add) { - Vector<Color> ret; if (p_image.is_null() || p_image->empty()) { - ret.resize(bake_texture_size * bake_texture_size); for (int i = 0; i < bake_texture_size * bake_texture_size; i++) { ret.write[i] = p_color_add; @@ -335,7 +325,6 @@ Vector<Color> Voxelizer::_get_bake_texture(Ref<Image> p_image, const Color &p_co } Voxelizer::MaterialCache Voxelizer::_get_material_cache(Ref<Material> p_material) { - //this way of obtaining materials is inaccurate and also does not support some compressed formats very well Ref<StandardMaterial3D> mat = p_material; @@ -348,12 +337,10 @@ Voxelizer::MaterialCache Voxelizer::_get_material_cache(Ref<Material> p_material MaterialCache mc; if (mat.is_valid()) { - Ref<Texture2D> albedo_tex = mat->get_texture(StandardMaterial3D::TEXTURE_ALBEDO); Ref<Image> img_albedo; if (albedo_tex.is_valid()) { - img_albedo = albedo_tex->get_data(); mc.albedo = _get_bake_texture(img_albedo, mat->get_albedo(), Color(0, 0, 0)); // albedo texture, color is multiplicative } else { @@ -368,7 +355,6 @@ Voxelizer::MaterialCache Voxelizer::_get_material_cache(Ref<Material> p_material Ref<Image> img_emission; if (emission_tex.is_valid()) { - img_emission = emission_tex->get_data(); } @@ -390,9 +376,7 @@ Voxelizer::MaterialCache Voxelizer::_get_material_cache(Ref<Material> p_material } void Voxelizer::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, const Vector<Ref<Material>> &p_materials, const Ref<Material> &p_override_material) { - for (int i = 0; i < p_mesh->get_surface_count(); i++) { - if (p_mesh->surface_get_primitive_type(i) != Mesh::PRIMITIVE_TRIANGLES) continue; //only triangles @@ -426,12 +410,10 @@ void Voxelizer::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, const Vec } if (index.size()) { - int facecount = index.size() / 3; const int *ir = index.ptr(); for (int j = 0; j < facecount; j++) { - Vector3 vtxs[3]; Vector2 uvs[3]; Vector3 normal[3]; @@ -460,11 +442,9 @@ void Voxelizer::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, const Vec } } else { - int facecount = vertices.size() / 3; for (int j = 0; j < facecount; j++) { - Vector3 vtxs[3]; Vector2 uvs[3]; Vector3 normal[3]; @@ -498,7 +478,6 @@ void Voxelizer::plot_mesh(const Transform &p_xform, Ref<Mesh> &p_mesh, const Vec } void Voxelizer::_sort() { - // cells need to be sorted by level and coordinates // it is important that level has more priority (for compute), and that Z has the least, // given it may aid older implementations plot using GPU @@ -507,7 +486,6 @@ void Voxelizer::_sort() { uint32_t cell_count = bake_cells.size(); sorted_cells.resize(cell_count); { - CellSort *sort_cellsp = sorted_cells.ptrw(); const Cell *bake_cellsp = bake_cells.ptr(); @@ -540,7 +518,6 @@ void Voxelizer::_sort() { } { - const CellSort *sort_cellsp = sorted_cells.ptr(); const Cell *bake_cellsp = bake_cells.ptr(); const uint32_t *reverse_mapp = reverse_map.ptr(); @@ -563,9 +540,7 @@ void Voxelizer::_sort() { } void Voxelizer::_fixup_plot(int p_idx, int p_level) { - if (p_level == cell_subdiv) { - leaf_voxel_count++; float alpha = bake_cells[p_idx].alpha; @@ -604,7 +579,6 @@ void Voxelizer::_fixup_plot(int p_idx, int p_level) { }*/ } else { - //go down bake_cells.write[p_idx].emission[0] = 0; @@ -621,7 +595,6 @@ void Voxelizer::_fixup_plot(int p_idx, int p_level) { int children_found = 0; for (int i = 0; i < 8; i++) { - uint32_t child = bake_cells[p_idx].children[i]; if (child == CHILD_EMPTY) @@ -638,7 +611,6 @@ void Voxelizer::_fixup_plot(int p_idx, int p_level) { } void Voxelizer::begin_bake(int p_subdiv, const AABB &p_bounds) { - sorted = false; original_bounds = p_bounds; cell_subdiv = p_subdiv; @@ -653,7 +625,6 @@ void Voxelizer::begin_bake(int p_subdiv, const AABB &p_bounds) { leaf_voxel_count = 0; for (int i = 0; i < 3; i++) { - if (i == longest_axis) continue; @@ -711,7 +682,6 @@ Vector<uint8_t> Voxelizer::get_giprobe_octree_cells() const { uint32_t cell_count = bake_cells.size(); for (uint32_t i = 0; i < cell_count; i++) { - for (uint32_t j = 0; j < 8; j++) { children_cells[i * 8 + j] = cells[i].children[j]; } @@ -731,7 +701,6 @@ Vector<uint8_t> Voxelizer::get_giprobe_data_cells() const { uint32_t cell_count = bake_cells.size(); for (uint32_t i = 0; i < cell_count; i++) { - { //position uint32_t x = cells[i].x; @@ -803,7 +772,6 @@ Vector<int> Voxelizer::get_giprobe_level_cell_count() const { /* dt of 1d function using squared distance */ static void edt(float *f, int stride, int n) { - float *d = (float *)alloca(sizeof(float) * n + sizeof(int) * n + sizeof(float) * (n + 1)); int *v = (int *)&(d[n]); float *z = (float *)&v[n]; @@ -840,7 +808,6 @@ static void edt(float *f, int stride, int n) { #undef square Vector<uint8_t> Voxelizer::get_sdf_3d_image() const { - Vector3i octree_size = get_giprobe_octree_size(); uint32_t float_count = octree_size.x * octree_size.y * octree_size.z; @@ -858,7 +825,6 @@ Vector<uint8_t> Voxelizer::get_sdf_3d_image() const { uint32_t cell_count = bake_cells.size(); for (uint32_t i = 0; i < cell_count; i++) { - if (cells[i].level < (cell_subdiv - 1)) { continue; //do not care about this level } @@ -912,9 +878,7 @@ Vector<uint8_t> Voxelizer::get_sdf_3d_image() const { #undef INF void Voxelizer::_debug_mesh(int p_idx, int p_level, const AABB &p_aabb, Ref<MultiMesh> &p_multimesh, int &idx) { - if (p_level == cell_subdiv - 1) { - Vector3 center = p_aabb.position + p_aabb.size * 0.5; Transform xform; xform.origin = center; @@ -928,9 +892,7 @@ void Voxelizer::_debug_mesh(int p_idx, int p_level, const AABB &p_aabb, Ref<Mult idx++; } else { - for (int i = 0; i < 8; i++) { - uint32_t child = bake_cells[p_idx].children[i]; if (child == CHILD_EMPTY || child >= (uint32_t)max_original_cells) @@ -952,7 +914,6 @@ void Voxelizer::_debug_mesh(int p_idx, int p_level, const AABB &p_aabb, Ref<Mult } Ref<MultiMesh> Voxelizer::create_debug_multimesh() { - Ref<MultiMesh> mm; mm.instance(); @@ -975,18 +936,15 @@ Ref<MultiMesh> Voxelizer::create_debug_multimesh() { colors.push_back(Color(1, 1, 1, 1)); for (int i = 0; i < 6; i++) { - Vector3 face_points[4]; for (int j = 0; j < 4; j++) { - float v[3]; v[0] = 1.0; v[1] = 1 - 2 * ((j >> 1) & 1); v[2] = v[1] * (1 - 2 * (j & 1)); for (int k = 0; k < 3; k++) { - if (i < 3) face_points[j][(i + k) % 3] = v[k]; else diff --git a/scene/3d/voxelizer.h b/scene/3d/voxelizer.h index 1fde6237a2..3546fd7729 100644 --- a/scene/3d/voxelizer.h +++ b/scene/3d/voxelizer.h @@ -43,7 +43,6 @@ private: }; struct Cell { - uint32_t children[8]; float albedo[3]; //albedo in RGB24 float emission[3]; //accumulated light in 16:16 fixed point (needs to be integer for moving lights fast) diff --git a/scene/3d/world_environment.cpp b/scene/3d/world_environment.cpp index 8dbb709ae4..ac314e005b 100644 --- a/scene/3d/world_environment.cpp +++ b/scene/3d/world_environment.cpp @@ -32,9 +32,7 @@ #include "scene/main/window.h" void WorldEnvironment::_notification(int p_what) { - if (p_what == Node3D::NOTIFICATION_ENTER_WORLD || p_what == Node3D::NOTIFICATION_ENTER_TREE) { - if (environment.is_valid()) { if (get_viewport()->find_world_3d()->get_environment().is_valid()) { WARN_PRINT("World already has an environment (Another WorldEnvironment?), overriding."); @@ -52,7 +50,6 @@ void WorldEnvironment::_notification(int p_what) { } } else if (p_what == Node3D::NOTIFICATION_EXIT_WORLD || p_what == Node3D::NOTIFICATION_EXIT_TREE) { - if (environment.is_valid() && get_viewport()->find_world_3d()->get_environment() == environment) { get_viewport()->find_world_3d()->set_environment(Ref<Environment>()); remove_from_group("_world_environment_" + itos(get_viewport()->find_world_3d()->get_scenario().get_id())); @@ -66,7 +63,6 @@ void WorldEnvironment::_notification(int p_what) { } void WorldEnvironment::set_environment(const Ref<Environment> &p_environment) { - if (is_inside_tree() && environment.is_valid() && get_viewport()->find_world_3d()->get_environment() == environment) { get_viewport()->find_world_3d()->set_environment(Ref<Environment>()); remove_from_group("_world_environment_" + itos(get_viewport()->find_world_3d()->get_scenario().get_id())); @@ -86,12 +82,10 @@ void WorldEnvironment::set_environment(const Ref<Environment> &p_environment) { } Ref<Environment> WorldEnvironment::get_environment() const { - return environment; } void WorldEnvironment::set_camera_effects(const Ref<CameraEffects> &p_camera_effects) { - if (is_inside_tree() && camera_effects.is_valid() && get_viewport()->find_world_3d()->get_camera_effects() == camera_effects) { get_viewport()->find_world_3d()->set_camera_effects(Ref<CameraEffects>()); remove_from_group("_world_camera_effects_" + itos(get_viewport()->find_world_3d()->get_scenario().get_id())); @@ -111,12 +105,10 @@ void WorldEnvironment::set_camera_effects(const Ref<CameraEffects> &p_camera_eff } Ref<CameraEffects> WorldEnvironment::get_camera_effects() const { - return camera_effects; } String WorldEnvironment::get_configuration_warning() const { - if (!environment.is_valid()) { return TTR("WorldEnvironment requires its \"Environment\" property to contain an Environment to have a visible effect."); } @@ -135,7 +127,6 @@ String WorldEnvironment::get_configuration_warning() const { } void WorldEnvironment::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_environment", "env"), &WorldEnvironment::set_environment); ClassDB::bind_method(D_METHOD("get_environment"), &WorldEnvironment::get_environment); ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "environment", PROPERTY_HINT_RESOURCE_TYPE, "Environment"), "set_environment", "get_environment"); diff --git a/scene/3d/world_environment.h b/scene/3d/world_environment.h index e4c9fc071d..ddb2af7bd3 100644 --- a/scene/3d/world_environment.h +++ b/scene/3d/world_environment.h @@ -34,7 +34,6 @@ #include "scene/3d/node_3d.h" class WorldEnvironment : public Node { - GDCLASS(WorldEnvironment, Node); Ref<Environment> environment; diff --git a/scene/3d/xr_nodes.cpp b/scene/3d/xr_nodes.cpp index 1b13b64744..1d01a8b5b4 100644 --- a/scene/3d/xr_nodes.cpp +++ b/scene/3d/xr_nodes.cpp @@ -443,7 +443,6 @@ void XRAnchor3D::_notification(int p_what) { }; void XRAnchor3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_anchor_id", "anchor_id"), &XRAnchor3D::set_anchor_id); ClassDB::bind_method(D_METHOD("get_anchor_id"), &XRAnchor3D::get_anchor_id); ADD_PROPERTY(PropertyInfo(Variant::INT, "anchor_id", PROPERTY_HINT_RANGE, "0,32,1"), "set_anchor_id", "get_anchor_id"); diff --git a/scene/3d/xr_nodes.h b/scene/3d/xr_nodes.h index 55dcfe087e..4685328f16 100644 --- a/scene/3d/xr_nodes.h +++ b/scene/3d/xr_nodes.h @@ -44,7 +44,6 @@ XRCamera is a subclass of camera which will register itself with its parent XROrigin and as a result is automatically positioned */ class XRCamera3D : public Camera3D { - GDCLASS(XRCamera3D, Camera3D); protected: @@ -69,7 +68,6 @@ public: */ class XRController3D : public Node3D { - GDCLASS(XRController3D, Node3D); private: @@ -150,7 +148,6 @@ public: This node will automatically locate any camera child nodes and update its position while our XRController3D node will handle tracked controllers. */ class XROrigin3D : public Node3D { - GDCLASS(XROrigin3D, Node3D); private: diff --git a/scene/animation/animation_blend_space_1d.cpp b/scene/animation/animation_blend_space_1d.cpp index 3502f5e961..22477f452c 100644 --- a/scene/animation/animation_blend_space_1d.cpp +++ b/scene/animation/animation_blend_space_1d.cpp @@ -167,7 +167,6 @@ void AnimationNodeBlendSpace1D::remove_blend_point(int p_point) { } int AnimationNodeBlendSpace1D::get_blend_point_count() const { - return blend_points_used; } @@ -220,7 +219,6 @@ void AnimationNodeBlendSpace1D::_add_blend_point(int p_index, const Ref<Animatio } float AnimationNodeBlendSpace1D::process(float p_time, bool p_seek) { - if (blend_points_used == 0) { return 0.0; } @@ -241,7 +239,6 @@ float AnimationNodeBlendSpace1D::process(float p_time, bool p_seek) { // find the closest two points to blend between for (int i = 0; i < blend_points_used; i++) { - float pos = blend_points[i].position; if (pos <= blend_pos) { @@ -276,7 +273,6 @@ float AnimationNodeBlendSpace1D::process(float p_time, bool p_seek) { weights[point_lower] = 1.0; } else { - // we are between two points. // figure out weights, then blend the animations @@ -311,7 +307,6 @@ String AnimationNodeBlendSpace1D::get_caption() const { } AnimationNodeBlendSpace1D::AnimationNodeBlendSpace1D() { - for (int i = 0; i < MAX_BLEND_POINTS; i++) { blend_points[i].name = itos(i); } diff --git a/scene/animation/animation_blend_space_2d.cpp b/scene/animation/animation_blend_space_2d.cpp index ad60249f9a..a43619b9f3 100644 --- a/scene/animation/animation_blend_space_2d.cpp +++ b/scene/animation/animation_blend_space_2d.cpp @@ -142,12 +142,10 @@ void AnimationNodeBlendSpace2D::remove_blend_point(int p_point) { } int AnimationNodeBlendSpace2D::get_blend_point_count() const { - return blend_points_used; } bool AnimationNodeBlendSpace2D::has_triangle(int p_x, int p_y, int p_z) const { - ERR_FAIL_INDEX_V(p_x, blend_points_used, false); ERR_FAIL_INDEX_V(p_y, blend_points_used, false); ERR_FAIL_INDEX_V(p_z, blend_points_used, false); @@ -176,7 +174,6 @@ bool AnimationNodeBlendSpace2D::has_triangle(int p_x, int p_y, int p_z) const { } void AnimationNodeBlendSpace2D::add_triangle(int p_x, int p_y, int p_z, int p_at_index) { - ERR_FAIL_INDEX(p_x, blend_points_used); ERR_FAIL_INDEX(p_y, blend_points_used); ERR_FAIL_INDEX(p_z, blend_points_used); @@ -209,7 +206,6 @@ void AnimationNodeBlendSpace2D::add_triangle(int p_x, int p_y, int p_z, int p_at } } int AnimationNodeBlendSpace2D::get_triangle_point(int p_triangle, int p_point) { - _update_triangles(); ERR_FAIL_INDEX_V(p_point, 3, -1); @@ -227,7 +223,6 @@ int AnimationNodeBlendSpace2D::get_triangle_count() const { } void AnimationNodeBlendSpace2D::set_min_space(const Vector2 &p_min) { - min_space = p_min; if (min_space.x >= max_space.x) { min_space.x = max_space.x - 1; @@ -241,7 +236,6 @@ Vector2 AnimationNodeBlendSpace2D::get_min_space() const { } void AnimationNodeBlendSpace2D::set_max_space(const Vector2 &p_max) { - max_space = p_max; if (max_space.x <= min_space.x) { max_space.x = min_space.x + 1; @@ -284,7 +278,6 @@ void AnimationNodeBlendSpace2D::_add_blend_point(int p_index, const Ref<Animatio } void AnimationNodeBlendSpace2D::_set_triangles(const Vector<int> &p_triangles) { - if (auto_triangles) return; ERR_FAIL_COND(p_triangles.size() % 3 != 0); @@ -294,7 +287,6 @@ void AnimationNodeBlendSpace2D::_set_triangles(const Vector<int> &p_triangles) { } Vector<int> AnimationNodeBlendSpace2D::_get_triangles() const { - Vector<int> t; if (auto_triangles && trianges_dirty) return t; @@ -318,7 +310,6 @@ void AnimationNodeBlendSpace2D::_queue_auto_triangles() { } void AnimationNodeBlendSpace2D::_update_triangles() { - if (!auto_triangles || !trianges_dirty) return; @@ -344,7 +335,6 @@ void AnimationNodeBlendSpace2D::_update_triangles() { } Vector2 AnimationNodeBlendSpace2D::get_closest_point(const Vector2 &p_point) { - _update_triangles(); if (triangles.size() == 0) @@ -360,7 +350,6 @@ Vector2 AnimationNodeBlendSpace2D::get_closest_point(const Vector2 &p_point) { } if (Geometry::is_point_in_triangle(p_point, points[0], points[1], points[2])) { - return p_point; } @@ -381,7 +370,6 @@ Vector2 AnimationNodeBlendSpace2D::get_closest_point(const Vector2 &p_point) { } void AnimationNodeBlendSpace2D::_blend_triangle(const Vector2 &p_pos, const Vector2 *p_points, float *r_weights) { - if (p_pos.distance_squared_to(p_points[0]) < CMP_EPSILON2) { r_weights[0] = 1; r_weights[1] = 0; @@ -427,7 +415,6 @@ void AnimationNodeBlendSpace2D::_blend_triangle(const Vector2 &p_pos, const Vect } float AnimationNodeBlendSpace2D::process(float p_time, bool p_seek) { - _update_triangles(); Vector2 blend_pos = get_parameter(blend_position); @@ -436,7 +423,6 @@ float AnimationNodeBlendSpace2D::process(float p_time, bool p_seek) { float mind = 0; //time of min distance point if (blend_mode == BLEND_MODE_INTERPOLATED) { - if (triangles.size() == 0) return 0; @@ -452,7 +438,6 @@ float AnimationNodeBlendSpace2D::process(float p_time, bool p_seek) { } if (Geometry::is_point_in_triangle(blend_pos, points[0], points[1], points[2])) { - blend_triangle = i; _blend_triangle(blend_pos, points, blend_weights); break; @@ -494,7 +479,6 @@ float AnimationNodeBlendSpace2D::process(float p_time, bool p_seek) { first = true; for (int i = 0; i < blend_points_used; i++) { - bool found = false; for (int j = 0; j < 3; j++) { if (i == triangle_points[j]) { @@ -515,22 +499,18 @@ float AnimationNodeBlendSpace2D::process(float p_time, bool p_seek) { } } } else { - int new_closest = -1; float new_closest_dist = 1e20; for (int i = 0; i < blend_points_used; i++) { - float d = blend_points[i].position.distance_squared_to(blend_pos); if (d < new_closest_dist) { - new_closest = i; new_closest_dist = d; } } if (new_closest != closest && new_closest != -1) { - float from = 0; if (blend_mode == BLEND_MODE_DISCRETE_CARRY && closest != -1) { //see how much animation remains @@ -557,7 +537,6 @@ String AnimationNodeBlendSpace2D::get_caption() const { } void AnimationNodeBlendSpace2D::_validate_property(PropertyInfo &property) const { - if (auto_triangles && property.name == "triangles") { property.usage = 0; } @@ -601,7 +580,6 @@ AnimationNodeBlendSpace2D::BlendMode AnimationNodeBlendSpace2D::get_blend_mode() } void AnimationNodeBlendSpace2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_blend_point", "node", "pos", "at_index"), &AnimationNodeBlendSpace2D::add_blend_point, DEFVAL(-1)); ClassDB::bind_method(D_METHOD("set_blend_point_position", "point", "pos"), &AnimationNodeBlendSpace2D::set_blend_point_position); ClassDB::bind_method(D_METHOD("get_blend_point_position", "point"), &AnimationNodeBlendSpace2D::get_blend_point_position); @@ -666,7 +644,6 @@ void AnimationNodeBlendSpace2D::_bind_methods() { } AnimationNodeBlendSpace2D::AnimationNodeBlendSpace2D() { - for (int i = 0; i < MAX_BLEND_POINTS; i++) { blend_points[i].name = itos(i); } diff --git a/scene/animation/animation_blend_tree.cpp b/scene/animation/animation_blend_tree.cpp index 570735ad87..671e86ab3b 100644 --- a/scene/animation/animation_blend_tree.cpp +++ b/scene/animation/animation_blend_tree.cpp @@ -47,12 +47,10 @@ void AnimationNodeAnimation::get_parameter_list(List<PropertyInfo> *r_list) cons r_list->push_back(PropertyInfo(Variant::FLOAT, time, PROPERTY_HINT_NONE, "", 0)); } void AnimationNodeAnimation::_validate_property(PropertyInfo &property) const { - if (property.name == "animation" && get_editable_animation_list) { Vector<String> names = get_editable_animation_list(); String anims; for (int i = 0; i < names.size(); i++) { - if (i > 0) { anims += ","; } @@ -66,14 +64,12 @@ void AnimationNodeAnimation::_validate_property(PropertyInfo &property) const { } float AnimationNodeAnimation::process(float p_time, bool p_seek) { - AnimationPlayer *ap = state->player; ERR_FAIL_COND_V(!ap, 0); float time = get_parameter(this->time); if (!ap->has_animation(animation)) { - AnimationNodeBlendTree *tree = Object::cast_to<AnimationNodeBlendTree>(parent); if (tree) { String name = tree->get_node_name(Ref<AnimationNodeAnimation>(this)); @@ -101,13 +97,11 @@ float AnimationNodeAnimation::process(float p_time, bool p_seek) { float anim_size = anim->get_length(); if (anim->has_loop()) { - if (anim_size) { time = Math::fposmod(time, anim_size); } } else if (time > anim_size) { - time = anim_size; } @@ -156,56 +150,44 @@ Variant AnimationNodeOneShot::get_parameter_default_value(const StringName &p_pa } void AnimationNodeOneShot::set_fadein_time(float p_time) { - fade_in = p_time; } void AnimationNodeOneShot::set_fadeout_time(float p_time) { - fade_out = p_time; } float AnimationNodeOneShot::get_fadein_time() const { - return fade_in; } float AnimationNodeOneShot::get_fadeout_time() const { - return fade_out; } void AnimationNodeOneShot::set_autorestart(bool p_active) { - autorestart = p_active; } void AnimationNodeOneShot::set_autorestart_delay(float p_time) { - autorestart_delay = p_time; } void AnimationNodeOneShot::set_autorestart_random_delay(float p_time) { - autorestart_random_delay = p_time; } bool AnimationNodeOneShot::has_autorestart() const { - return autorestart; } float AnimationNodeOneShot::get_autorestart_delay() const { - return autorestart_delay; } float AnimationNodeOneShot::get_autorestart_random_delay() const { - return autorestart_random_delay; } void AnimationNodeOneShot::set_mix_mode(MixMode p_mix) { - mix = p_mix; } AnimationNodeOneShot::MixMode AnimationNodeOneShot::get_mix_mode() const { - return mix; } @@ -218,7 +200,6 @@ bool AnimationNodeOneShot::has_filter() const { } float AnimationNodeOneShot::process(float p_time, bool p_seek) { - bool active = get_parameter(this->active); bool prev_active = get_parameter(this->prev_active); float time = get_parameter(this->time); @@ -260,14 +241,12 @@ float AnimationNodeOneShot::process(float p_time, bool p_seek) { float blend; if (time < fade_in) { - if (fade_in > 0) blend = time / fade_in; else blend = 0; //wtf } else if (!do_start && remaining < fade_out) { - if (fade_out) blend = (remaining / fade_out); else @@ -307,17 +286,14 @@ float AnimationNodeOneShot::process(float p_time, bool p_seek) { return MAX(main_rem, remaining); } void AnimationNodeOneShot::set_use_sync(bool p_sync) { - sync = p_sync; } bool AnimationNodeOneShot::is_using_sync() const { - return sync; } void AnimationNodeOneShot::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_fadein_time", "time"), &AnimationNodeOneShot::set_fadein_time); ClassDB::bind_method(D_METHOD("get_fadein_time"), &AnimationNodeOneShot::get_fadein_time); @@ -356,7 +332,6 @@ void AnimationNodeOneShot::_bind_methods() { } AnimationNodeOneShot::AnimationNodeOneShot() { - add_input("in"); add_input("shot"); @@ -389,22 +364,18 @@ String AnimationNodeAdd2::get_caption() const { return "Add2"; } void AnimationNodeAdd2::set_use_sync(bool p_sync) { - sync = p_sync; } bool AnimationNodeAdd2::is_using_sync() const { - return sync; } bool AnimationNodeAdd2::has_filter() const { - return true; } float AnimationNodeAdd2::process(float p_time, bool p_seek) { - float amount = get_parameter(add_amount); float rem0 = blend_input(0, p_time, p_seek, 1.0, FILTER_IGNORE, !sync); blend_input(1, p_time, p_seek, amount, FILTER_PASS, !sync); @@ -413,7 +384,6 @@ float AnimationNodeAdd2::process(float p_time, bool p_seek) { } void AnimationNodeAdd2::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_use_sync", "enable"), &AnimationNodeAdd2::set_use_sync); ClassDB::bind_method(D_METHOD("is_using_sync"), &AnimationNodeAdd2::is_using_sync); @@ -421,7 +391,6 @@ void AnimationNodeAdd2::_bind_methods() { } AnimationNodeAdd2::AnimationNodeAdd2() { - add_amount = "add_amount"; add_input("in"); add_input("add"); @@ -441,22 +410,18 @@ String AnimationNodeAdd3::get_caption() const { return "Add3"; } void AnimationNodeAdd3::set_use_sync(bool p_sync) { - sync = p_sync; } bool AnimationNodeAdd3::is_using_sync() const { - return sync; } bool AnimationNodeAdd3::has_filter() const { - return true; } float AnimationNodeAdd3::process(float p_time, bool p_seek) { - float amount = get_parameter(add_amount); blend_input(0, p_time, p_seek, MAX(0, -amount), FILTER_PASS, !sync); float rem0 = blend_input(1, p_time, p_seek, 1.0, FILTER_IGNORE, !sync); @@ -466,7 +431,6 @@ float AnimationNodeAdd3::process(float p_time, bool p_seek) { } void AnimationNodeAdd3::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_use_sync", "enable"), &AnimationNodeAdd3::set_use_sync); ClassDB::bind_method(D_METHOD("is_using_sync"), &AnimationNodeAdd3::is_using_sync); @@ -474,7 +438,6 @@ void AnimationNodeAdd3::_bind_methods() { } AnimationNodeAdd3::AnimationNodeAdd3() { - add_amount = "add_amount"; add_input("-add"); add_input("in"); @@ -495,7 +458,6 @@ String AnimationNodeBlend2::get_caption() const { } float AnimationNodeBlend2::process(float p_time, bool p_seek) { - float amount = get_parameter(blend_amount); float rem0 = blend_input(0, p_time, p_seek, 1.0 - amount, FILTER_BLEND, !sync); @@ -505,21 +467,17 @@ float AnimationNodeBlend2::process(float p_time, bool p_seek) { } void AnimationNodeBlend2::set_use_sync(bool p_sync) { - sync = p_sync; } bool AnimationNodeBlend2::is_using_sync() const { - return sync; } bool AnimationNodeBlend2::has_filter() const { - return true; } void AnimationNodeBlend2::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_use_sync", "enable"), &AnimationNodeBlend2::set_use_sync); ClassDB::bind_method(D_METHOD("is_using_sync"), &AnimationNodeBlend2::is_using_sync); @@ -546,17 +504,14 @@ String AnimationNodeBlend3::get_caption() const { } void AnimationNodeBlend3::set_use_sync(bool p_sync) { - sync = p_sync; } bool AnimationNodeBlend3::is_using_sync() const { - return sync; } float AnimationNodeBlend3::process(float p_time, bool p_seek) { - float amount = get_parameter(blend_amount); float rem0 = blend_input(0, p_time, p_seek, MAX(0, -amount), FILTER_IGNORE, !sync); float rem1 = blend_input(1, p_time, p_seek, 1.0 - ABS(amount), FILTER_IGNORE, !sync); @@ -566,7 +521,6 @@ float AnimationNodeBlend3::process(float p_time, bool p_seek) { } void AnimationNodeBlend3::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_use_sync", "enable"), &AnimationNodeBlend3::set_use_sync); ClassDB::bind_method(D_METHOD("is_using_sync"), &AnimationNodeBlend3::is_using_sync); @@ -594,7 +548,6 @@ String AnimationNodeTimeScale::get_caption() const { } float AnimationNodeTimeScale::process(float p_time, bool p_seek) { - float scale = get_parameter(this->scale); if (p_seek) { return blend_input(0, p_time, true, 1.0, FILTER_IGNORE, false); @@ -624,7 +577,6 @@ String AnimationNodeTimeSeek::get_caption() const { } float AnimationNodeTimeSeek::process(float p_time, bool p_seek) { - float seek_pos = get_parameter(this->seek_pos); if (p_seek) { return blend_input(0, p_time, true, 1.0, FILTER_IGNORE, false); @@ -649,7 +601,6 @@ AnimationNodeTimeSeek::AnimationNodeTimeSeek() { ///////////////////////////////////////////////// void AnimationNodeTransition::get_parameter_list(List<PropertyInfo> *r_list) const { - String anims; for (int i = 0; i < enabled_inputs; i++) { if (i > 0) { @@ -728,7 +679,6 @@ float AnimationNodeTransition::get_cross_fade_time() const { } float AnimationNodeTransition::process(float p_time, bool p_seek) { - int current = get_parameter(this->current); int prev = get_parameter(this->prev); int prev_current = get_parameter(this->prev_current); @@ -764,7 +714,6 @@ float AnimationNodeTransition::process(float p_time, bool p_seek) { time += p_time; if (inputs[current].auto_advance && rem <= xfade) { - set_parameter(this->current, (current + 1) % enabled_inputs); } @@ -776,7 +725,6 @@ float AnimationNodeTransition::process(float p_time, bool p_seek) { rem = blend_input(current, 0, true, 1.0 - blend, FILTER_IGNORE, false); } else { - rem = blend_input(current, p_time, p_seek, 1.0 - blend, FILTER_IGNORE, false); } @@ -800,7 +748,6 @@ float AnimationNodeTransition::process(float p_time, bool p_seek) { } void AnimationNodeTransition::_validate_property(PropertyInfo &property) const { - if (property.name.begins_with("input_")) { String n = property.name.get_slicec('/', 0).get_slicec('_', 1); if (n != "count") { @@ -815,7 +762,6 @@ void AnimationNodeTransition::_validate_property(PropertyInfo &property) const { } void AnimationNodeTransition::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_enabled_inputs", "amount"), &AnimationNodeTransition::set_enabled_inputs); ClassDB::bind_method(D_METHOD("get_enabled_inputs"), &AnimationNodeTransition::get_enabled_inputs); @@ -838,7 +784,6 @@ void AnimationNodeTransition::_bind_methods() { } AnimationNodeTransition::AnimationNodeTransition() { - prev_xfading = "prev_xfading"; prev = "prev"; time = "time"; @@ -869,7 +814,6 @@ AnimationNodeOutput::AnimationNodeOutput() { /////////////////////////////////////////////////////// void AnimationNodeBlendTree::add_node(const StringName &p_name, Ref<AnimationNode> p_node, const Vector2 &p_position) { - ERR_FAIL_COND(nodes.has(p_name)); ERR_FAIL_COND(p_node.is_null()); ERR_FAIL_COND(p_name == SceneStringNames::get_singleton()->output); @@ -889,7 +833,6 @@ void AnimationNodeBlendTree::add_node(const StringName &p_name, Ref<AnimationNod } Ref<AnimationNode> AnimationNodeBlendTree::get_node(const StringName &p_name) const { - ERR_FAIL_COND_V(!nodes.has(p_name), Ref<AnimationNode>()); return nodes[p_name].node; @@ -936,12 +879,10 @@ bool AnimationNodeBlendTree::has_node(const StringName &p_name) const { return nodes.has(p_name); } Vector<StringName> AnimationNodeBlendTree::get_node_connection_array(const StringName &p_name) const { - ERR_FAIL_COND_V(!nodes.has(p_name), Vector<StringName>()); return nodes[p_name].connections; } void AnimationNodeBlendTree::remove_node(const StringName &p_name) { - ERR_FAIL_COND(!nodes.has(p_name)); ERR_FAIL_COND(p_name == SceneStringNames::get_singleton()->output); //can't delete output @@ -967,7 +908,6 @@ void AnimationNodeBlendTree::remove_node(const StringName &p_name) { } void AnimationNodeBlendTree::rename_node(const StringName &p_name, const StringName &p_new_name) { - ERR_FAIL_COND(!nodes.has(p_name)); ERR_FAIL_COND(nodes.has(p_new_name)); ERR_FAIL_COND(p_name == SceneStringNames::get_singleton()->output); @@ -980,7 +920,6 @@ void AnimationNodeBlendTree::rename_node(const StringName &p_name, const StringN //rename connections for (Map<StringName, Node>::Element *E = nodes.front(); E; E = E->next()) { - for (int i = 0; i < E->get().connections.size(); i++) { if (E->get().connections[i] == p_name) { E->get().connections.write[i] = p_new_name; @@ -994,7 +933,6 @@ void AnimationNodeBlendTree::rename_node(const StringName &p_name, const StringN } void AnimationNodeBlendTree::connect_node(const StringName &p_input_node, int p_input_index, const StringName &p_output_node) { - ERR_FAIL_COND(!nodes.has(p_output_node)); ERR_FAIL_COND(!nodes.has(p_input_node)); ERR_FAIL_COND(p_output_node == SceneStringNames::get_singleton()->output); @@ -1016,7 +954,6 @@ void AnimationNodeBlendTree::connect_node(const StringName &p_input_node, int p_ } void AnimationNodeBlendTree::disconnect_node(const StringName &p_node, int p_input_index) { - ERR_FAIL_COND(!nodes.has(p_node)); Ref<AnimationNode> input = nodes[p_node].node; @@ -1026,7 +963,6 @@ void AnimationNodeBlendTree::disconnect_node(const StringName &p_node, int p_inp } AnimationNodeBlendTree::ConnectionError AnimationNodeBlendTree::can_connect_node(const StringName &p_input_node, int p_input_index, const StringName &p_output_node) const { - if (!nodes.has(p_output_node) || p_output_node == SceneStringNames::get_singleton()->output) { return CONNECTION_ERROR_NO_OUTPUT; } @@ -1061,7 +997,6 @@ AnimationNodeBlendTree::ConnectionError AnimationNodeBlendTree::can_connect_node } void AnimationNodeBlendTree::get_node_connections(List<NodeConnection> *r_connections) const { - for (Map<StringName, Node>::Element *E = nodes.front(); E; E = E->next()) { for (int i = 0; i < E->get().connections.size(); i++) { StringName output = E->get().connections[i]; @@ -1081,25 +1016,21 @@ String AnimationNodeBlendTree::get_caption() const { } float AnimationNodeBlendTree::process(float p_time, bool p_seek) { - Ref<AnimationNodeOutput> output = nodes[SceneStringNames::get_singleton()->output].node; return _blend_node("output", nodes[SceneStringNames::get_singleton()->output].connections, this, output, p_time, p_seek, 1.0); } void AnimationNodeBlendTree::get_node_list(List<StringName> *r_list) { - for (Map<StringName, Node>::Element *E = nodes.front(); E; E = E->next()) { r_list->push_back(E->key()); } } void AnimationNodeBlendTree::set_graph_offset(const Vector2 &p_graph_offset) { - graph_offset = p_graph_offset; } Vector2 AnimationNodeBlendTree::get_graph_offset() const { - return graph_offset; } @@ -1108,10 +1039,8 @@ Ref<AnimationNode> AnimationNodeBlendTree::get_child_by_name(const StringName &p } bool AnimationNodeBlendTree::_set(const StringName &p_name, const Variant &p_value) { - String name = p_name; if (name.begins_with("nodes/")) { - String node_name = name.get_slicec('/', 1); String what = name.get_slicec('/', 2); @@ -1124,14 +1053,12 @@ bool AnimationNodeBlendTree::_set(const StringName &p_name, const Variant &p_val } if (what == "position") { - if (nodes.has(node_name)) { nodes[node_name].position = p_value; } return true; } } else if (name == "node_connections") { - Array conns = p_value; ERR_FAIL_COND_V(conns.size() % 3 != 0, false); @@ -1145,7 +1072,6 @@ bool AnimationNodeBlendTree::_set(const StringName &p_name, const Variant &p_val } bool AnimationNodeBlendTree::_get(const StringName &p_name, Variant &r_ret) const { - String name = p_name; if (name.begins_with("nodes/")) { String node_name = name.get_slicec('/', 1); @@ -1159,7 +1085,6 @@ bool AnimationNodeBlendTree::_get(const StringName &p_name, Variant &r_ret) cons } if (what == "position") { - if (nodes.has(node_name)) { r_ret = nodes[node_name].position; return true; @@ -1186,7 +1111,6 @@ bool AnimationNodeBlendTree::_get(const StringName &p_name, Variant &r_ret) cons return false; } void AnimationNodeBlendTree::_get_property_list(List<PropertyInfo> *p_list) const { - List<StringName> names; for (Map<StringName, Node>::Element *E = nodes.front(); E; E = E->next()) { names.push_back(E->key()); @@ -1209,13 +1133,11 @@ void AnimationNodeBlendTree::_tree_changed() { } void AnimationNodeBlendTree::_node_changed(const StringName &p_node) { - ERR_FAIL_COND(!nodes.has(p_node)); nodes[p_node].connections.resize(nodes[p_node].node->get_input_count()); } void AnimationNodeBlendTree::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_node", "name", "node", "position"), &AnimationNodeBlendTree::add_node, DEFVAL(Vector2())); ClassDB::bind_method(D_METHOD("get_node", "name"), &AnimationNodeBlendTree::get_node); ClassDB::bind_method(D_METHOD("remove_node", "name"), &AnimationNodeBlendTree::remove_node); @@ -1241,7 +1163,6 @@ void AnimationNodeBlendTree::_bind_methods() { } AnimationNodeBlendTree::AnimationNodeBlendTree() { - Ref<AnimationNodeOutput> output; output.instance(); Node n; diff --git a/scene/animation/animation_blend_tree.h b/scene/animation/animation_blend_tree.h index 7ebe3f5444..5c722d00f9 100644 --- a/scene/animation/animation_blend_tree.h +++ b/scene/animation/animation_blend_tree.h @@ -34,7 +34,6 @@ #include "scene/animation/animation_tree.h" class AnimationNodeAnimation : public AnimationRootNode { - GDCLASS(AnimationNodeAnimation, AnimationRootNode); StringName animation; @@ -268,7 +267,6 @@ class AnimationNodeTransition : public AnimationNode { MAX_INPUTS = 32 }; struct InputData { - String name; bool auto_advance; InputData() { auto_advance = false; } diff --git a/scene/animation/animation_cache.cpp b/scene/animation/animation_cache.cpp index ab8be47b4d..1eea73fab8 100644 --- a/scene/animation/animation_cache.cpp +++ b/scene/animation/animation_cache.cpp @@ -31,7 +31,6 @@ #include "animation_cache.h" void AnimationCache::_node_exit_tree(Node *p_node) { - //it is one shot, so it disconnects upon arrival ERR_FAIL_COND(!connected_nodes.has(p_node)); @@ -39,7 +38,6 @@ void AnimationCache::_node_exit_tree(Node *p_node) { connected_nodes.erase(p_node); for (int i = 0; i < path_cache.size(); i++) { - if (path_cache[i].node != p_node) continue; @@ -48,14 +46,11 @@ void AnimationCache::_node_exit_tree(Node *p_node) { } void AnimationCache::_animation_changed() { - _clear_cache(); } void AnimationCache::_clear_cache() { - while (connected_nodes.size()) { - connected_nodes.front()->get()->disconnect("tree_exiting", callable_mp(this, &AnimationCache::_node_exit_tree)); connected_nodes.erase(connected_nodes.front()); } @@ -65,7 +60,6 @@ void AnimationCache::_clear_cache() { } void AnimationCache::_update_cache() { - cache_valid = false; ERR_FAIL_COND(!root); @@ -73,12 +67,10 @@ void AnimationCache::_update_cache() { ERR_FAIL_COND(animation.is_null()); for (int i = 0; i < animation->get_track_count(); i++) { - NodePath np = animation->track_get_path(i); Node *node = root->get_node(np); if (!node) { - path_cache.push_back(Path()); ERR_CONTINUE_MSG(!node, "Invalid track path in animation '" + np + "'."); } @@ -88,7 +80,6 @@ void AnimationCache::_update_cache() { Ref<Resource> res; if (animation->track_get_type(i) == Animation::TYPE_TRANSFORM) { - if (np.get_subname_count() > 1) { path_cache.push_back(Path()); ERR_CONTINUE_MSG(animation->track_get_type(i) == Animation::TYPE_TRANSFORM, "Transform tracks can't have a subpath '" + np + "'."); @@ -97,7 +88,6 @@ void AnimationCache::_update_cache() { Node3D *sp = Object::cast_to<Node3D>(node); if (!sp) { - path_cache.push_back(Path()); ERR_CONTINUE_MSG(!sp, "Transform track not of type Node3D '" + np + "'."); } @@ -108,7 +98,6 @@ void AnimationCache::_update_cache() { Skeleton3D *sk = Object::cast_to<Skeleton3D>(node); if (!sk) { - path_cache.push_back(Path()); ERR_CONTINUE_MSG(!sk, "Property defined in Transform track, but not a Skeleton! '" + np + "'."); } @@ -127,7 +116,6 @@ void AnimationCache::_update_cache() { } else { if (np.get_subname_count() > 0) { - RES res2; Vector<StringName> leftover_subpath; @@ -144,7 +132,6 @@ void AnimationCache::_update_cache() { path.subpath = leftover_subpath; } else { - path.node = node; path.object = node; path.subpath = np.get_subnames(); @@ -152,15 +139,12 @@ void AnimationCache::_update_cache() { } if (animation->track_get_type(i) == Animation::TYPE_VALUE) { - if (np.get_subname_count() == 0) { - path_cache.push_back(Path()); ERR_CONTINUE_MSG(np.get_subname_count() == 0, "Value Track lacks property: " + np + "."); } } else if (animation->track_get_type(i) == Animation::TYPE_METHOD) { - if (path.subpath.size() != 0) { // Trying to call a method of a non-resource path_cache.push_back(Path()); @@ -183,7 +167,6 @@ void AnimationCache::_update_cache() { } void AnimationCache::set_track_transform(int p_idx, const Transform &p_transform) { - if (cache_dirty) _update_cache(); @@ -204,7 +187,6 @@ void AnimationCache::set_track_transform(int p_idx, const Transform &p_transform } void AnimationCache::set_track_value(int p_idx, const Variant &p_value) { - if (cache_dirty) _update_cache(); @@ -219,7 +201,6 @@ void AnimationCache::set_track_value(int p_idx, const Variant &p_value) { } void AnimationCache::call_track(int p_idx, const StringName &p_method, const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - if (cache_dirty) _update_cache(); @@ -234,7 +215,6 @@ void AnimationCache::call_track(int p_idx, const StringName &p_method, const Var } void AnimationCache::set_all(float p_time, float p_delta) { - if (cache_dirty) _update_cache(); @@ -242,11 +222,8 @@ void AnimationCache::set_all(float p_time, float p_delta) { int tc = animation->get_track_count(); for (int i = 0; i < tc; i++) { - switch (animation->track_get_type(i)) { - case Animation::TYPE_TRANSFORM: { - Vector3 loc, scale; Quat rot; animation->transform_track_interpolate(i, p_time, &loc, &rot, &scale); @@ -257,17 +234,14 @@ void AnimationCache::set_all(float p_time, float p_delta) { } break; case Animation::TYPE_VALUE: { - if (animation->value_track_get_update_mode(i) == Animation::UPDATE_CONTINUOUS || (animation->value_track_get_update_mode(i) == Animation::UPDATE_DISCRETE && p_delta == 0)) { Variant v = animation->value_track_interpolate(i, p_time); set_track_value(i, v); } else { - List<int> indices; animation->value_track_get_key_indices(i, p_time, p_delta, &indices); for (List<int>::Element *E = indices.front(); E; E = E->next()) { - Variant v = animation->track_get_key_value(i, E->get()); set_track_value(i, v); } @@ -275,25 +249,20 @@ void AnimationCache::set_all(float p_time, float p_delta) { } break; case Animation::TYPE_METHOD: { - List<int> indices; animation->method_track_get_key_indices(i, p_time, p_delta, &indices); for (List<int>::Element *E = indices.front(); E; E = E->next()) { - Vector<Variant> args = animation->method_track_get_params(i, E->get()); StringName name = animation->method_track_get_name(i, E->get()); Callable::CallError err; if (!args.size()) { - call_track(i, name, nullptr, 0, err); } else { - Vector<const Variant *> argptrs; argptrs.resize(args.size()); for (int j = 0; j < args.size(); j++) { - argptrs.write[j] = &args.write[j]; } @@ -309,7 +278,6 @@ void AnimationCache::set_all(float p_time, float p_delta) { } void AnimationCache::set_animation(const Ref<Animation> &p_animation) { - _clear_cache(); if (animation.is_valid()) @@ -325,13 +293,11 @@ void AnimationCache::_bind_methods() { } void AnimationCache::set_root(Node *p_root) { - _clear_cache(); root = p_root; } AnimationCache::AnimationCache() { - root = nullptr; cache_dirty = true; cache_valid = false; diff --git a/scene/animation/animation_cache.h b/scene/animation/animation_cache.h index 23312ca7ec..feff1d364a 100644 --- a/scene/animation/animation_cache.h +++ b/scene/animation/animation_cache.h @@ -35,11 +35,9 @@ #include "scene/resources/animation.h" class AnimationCache : public Object { - GDCLASS(AnimationCache, Object); struct Path { - RES resource; Object *object; Skeleton3D *skeleton; // haxor diff --git a/scene/animation/animation_node_state_machine.cpp b/scene/animation/animation_node_state_machine.cpp index 9f5e06c43d..4a387772a8 100644 --- a/scene/animation/animation_node_state_machine.cpp +++ b/scene/animation/animation_node_state_machine.cpp @@ -33,12 +33,10 @@ ///////////////////////////////////////////////// void AnimationNodeStateMachineTransition::set_switch_mode(SwitchMode p_mode) { - switch_mode = p_mode; } AnimationNodeStateMachineTransition::SwitchMode AnimationNodeStateMachineTransition::get_switch_mode() const { - return switch_mode; } @@ -71,7 +69,6 @@ StringName AnimationNodeStateMachineTransition::get_advance_condition_name() con } void AnimationNodeStateMachineTransition::set_xfade_time(float p_xfade) { - ERR_FAIL_COND(p_xfade < 0); xfade = p_xfade; emit_changed(); @@ -133,7 +130,6 @@ void AnimationNodeStateMachineTransition::_bind_methods() { } AnimationNodeStateMachineTransition::AnimationNodeStateMachineTransition() { - switch_mode = SWITCH_MODE_IMMEDIATE; auto_advance = false; xfade = 0; @@ -144,7 +140,6 @@ AnimationNodeStateMachineTransition::AnimationNodeStateMachineTransition() { //////////////////////////////////////////////////////// void AnimationNodeStateMachinePlayback::travel(const StringName &p_state) { - start_request_travel = true; start_request = p_state; stop_request = false; @@ -156,7 +151,6 @@ void AnimationNodeStateMachinePlayback::start(const StringName &p_state) { stop_request = false; } void AnimationNodeStateMachinePlayback::stop() { - stop_request = true; } bool AnimationNodeStateMachinePlayback::is_playing() const { @@ -179,7 +173,6 @@ float AnimationNodeStateMachinePlayback::get_current_length() const { } bool AnimationNodeStateMachinePlayback::_travel(AnimationNodeStateMachine *p_state_machine, const StringName &p_travel) { - ERR_FAIL_COND_V(!playing, false); ERR_FAIL_COND_V(!p_state_machine->states.has(p_travel), false); ERR_FAIL_COND_V(!p_state_machine->states.has(current), false); @@ -219,7 +212,6 @@ bool AnimationNodeStateMachinePlayback::_travel(AnimationNodeStateMachine *p_sta //begin astar bool found_route = false; while (!found_route) { - if (open_list.size() == 0) { return false; //no path found } @@ -229,7 +221,6 @@ bool AnimationNodeStateMachinePlayback::_travel(AnimationNodeStateMachine *p_sta float least_cost = 1e20; for (List<int>::Element *E = open_list.front(); E; E = E->next()) { - float cost = cost_map[p_state_machine->transitions[E->get()].to].distance; cost += p_state_machine->states[p_state_machine->transitions[E->get()].to].position.distance_to(target_pos); @@ -293,7 +284,6 @@ bool AnimationNodeStateMachinePlayback::_travel(AnimationNodeStateMachine *p_sta } float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_state_machine, float p_time, bool p_seek) { - //if not playing and it can restart, then restart if (!playing && start_request == StringName()) { if (!stop_request && p_state_machine->start_node) { @@ -347,7 +337,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st bool do_start = (p_seek && p_time == 0) || play_start || current == StringName(); if (do_start) { - if (p_state_machine->start_node != StringName() && p_seek && p_time == 0) { current = p_state_machine->start_node; } @@ -365,7 +354,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st float fade_blend = 1.0; if (fading_from != StringName()) { - if (!p_state_machine->states.has(fading_from)) { fading_from = StringName(); } else { @@ -382,7 +370,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st float rem = p_state_machine->blend_node(current, p_state_machine->states[current].node, p_time, p_seek, fade_blend, AnimationNode::FILTER_IGNORE, false); if (fading_from != StringName()) { - p_state_machine->blend_node(fading_from, p_state_machine->states[fading_from].node, p_time, p_seek, 1.0 - fade_blend, AnimationNode::FILTER_IGNORE, false); } @@ -407,7 +394,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st AnimationNodeStateMachineTransition::SwitchMode switch_mode = AnimationNodeStateMachineTransition::SWITCH_MODE_IMMEDIATE; if (path.size()) { - for (int i = 0; i < p_state_machine->transitions.size(); i++) { if (p_state_machine->transitions[i].from == current && p_state_machine->transitions[i].to == path[0]) { next_xfade = p_state_machine->transitions[i].transition->get_xfade_time(); @@ -419,7 +405,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st float priority_best = 1e20; int auto_advance_to = -1; for (int i = 0; i < p_state_machine->transitions.size(); i++) { - bool auto_advance = false; if (p_state_machine->transitions[i].transition->has_auto_advance()) { auto_advance = true; @@ -430,7 +415,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st } if (p_state_machine->transitions[i].from == current && auto_advance) { - if (p_state_machine->transitions[i].transition->get_priority() <= priority_best) { priority_best = p_state_machine->transitions[i].transition->get_priority(); auto_advance_to = i; @@ -447,7 +431,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st //if next, see when to transition if (next != StringName()) { - bool goto_next = false; if (switch_mode == AnimationNodeStateMachineTransition::SWITCH_MODE_AT_END) { @@ -492,7 +475,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st //compute time left for transitions by using the end node if (p_state_machine->end_node != StringName() && p_state_machine->end_node != current) { - rem = p_state_machine->blend_node(p_state_machine->end_node, p_state_machine->states[p_state_machine->end_node].node, 0, true, 0, AnimationNode::FILTER_IGNORE, false); } @@ -500,7 +482,6 @@ float AnimationNodeStateMachinePlayback::process(AnimationNodeStateMachine *p_st } void AnimationNodeStateMachinePlayback::_bind_methods() { - ClassDB::bind_method(D_METHOD("travel", "to_node"), &AnimationNodeStateMachinePlayback::travel); ClassDB::bind_method(D_METHOD("start", "node"), &AnimationNodeStateMachinePlayback::start); ClassDB::bind_method(D_METHOD("stop"), &AnimationNodeStateMachinePlayback::stop); @@ -542,7 +523,6 @@ void AnimationNodeStateMachine::get_parameter_list(List<PropertyInfo> *r_list) c } Variant AnimationNodeStateMachine::get_parameter_default_value(const StringName &p_parameter) const { - if (p_parameter == playback) { Ref<AnimationNodeStateMachinePlayback> p; p.instance(); @@ -553,7 +533,6 @@ Variant AnimationNodeStateMachine::get_parameter_default_value(const StringName } void AnimationNodeStateMachine::add_node(const StringName &p_name, Ref<AnimationNode> p_node, const Vector2 &p_position) { - ERR_FAIL_COND(states.has(p_name)); ERR_FAIL_COND(p_node.is_null()); ERR_FAIL_COND(String(p_name).find("/") != -1); @@ -571,7 +550,6 @@ void AnimationNodeStateMachine::add_node(const StringName &p_name, Ref<Animation } void AnimationNodeStateMachine::replace_node(const StringName &p_name, Ref<AnimationNode> p_node) { - ERR_FAIL_COND(states.has(p_name) == false); ERR_FAIL_COND(p_node.is_null()); ERR_FAIL_COND(String(p_name).find("/") != -1); @@ -592,7 +570,6 @@ void AnimationNodeStateMachine::replace_node(const StringName &p_name, Ref<Anima } Ref<AnimationNode> AnimationNodeStateMachine::get_node(const StringName &p_name) const { - ERR_FAIL_COND_V(!states.has(p_name), Ref<AnimationNode>()); return states[p_name].node; @@ -629,7 +606,6 @@ bool AnimationNodeStateMachine::has_node(const StringName &p_name) const { return states.has(p_name); } void AnimationNodeStateMachine::remove_node(const StringName &p_name) { - ERR_FAIL_COND(!states.has(p_name)); { @@ -668,7 +644,6 @@ void AnimationNodeStateMachine::remove_node(const StringName &p_name) { } void AnimationNodeStateMachine::rename_node(const StringName &p_name, const StringName &p_new_name) { - ERR_FAIL_COND(!states.has(p_name)); ERR_FAIL_COND(states.has(p_new_name)); @@ -702,7 +677,6 @@ void AnimationNodeStateMachine::rename_node(const StringName &p_name, const Stri } void AnimationNodeStateMachine::get_node_list(List<StringName> *r_nodes) const { - List<StringName> nodes; for (Map<StringName, State>::Element *E = states.front(); E; E = E->next()) { nodes.push_back(E->key()); @@ -715,7 +689,6 @@ void AnimationNodeStateMachine::get_node_list(List<StringName> *r_nodes) const { } bool AnimationNodeStateMachine::has_transition(const StringName &p_from, const StringName &p_to) const { - for (int i = 0; i < transitions.size(); i++) { if (transitions[i].from == p_from && transitions[i].to == p_to) return true; @@ -724,7 +697,6 @@ bool AnimationNodeStateMachine::has_transition(const StringName &p_from, const S } int AnimationNodeStateMachine::find_transition(const StringName &p_from, const StringName &p_to) const { - for (int i = 0; i < transitions.size(); i++) { if (transitions[i].from == p_from && transitions[i].to == p_to) return i; @@ -733,7 +705,6 @@ int AnimationNodeStateMachine::find_transition(const StringName &p_from, const S } void AnimationNodeStateMachine::add_transition(const StringName &p_from, const StringName &p_to, const Ref<AnimationNodeStateMachineTransition> &p_transition) { - ERR_FAIL_COND(p_from == p_to); ERR_FAIL_COND(!states.has(p_from)); ERR_FAIL_COND(!states.has(p_to)); @@ -758,22 +729,18 @@ Ref<AnimationNodeStateMachineTransition> AnimationNodeStateMachine::get_transiti return transitions[p_transition].transition; } StringName AnimationNodeStateMachine::get_transition_from(int p_transition) const { - ERR_FAIL_INDEX_V(p_transition, transitions.size(), StringName()); return transitions[p_transition].from; } StringName AnimationNodeStateMachine::get_transition_to(int p_transition) const { - ERR_FAIL_INDEX_V(p_transition, transitions.size(), StringName()); return transitions[p_transition].to; } int AnimationNodeStateMachine::get_transition_count() const { - return transitions.size(); } void AnimationNodeStateMachine::remove_transition(const StringName &p_from, const StringName &p_to) { - for (int i = 0; i < transitions.size(); i++) { if (transitions[i].from == p_from && transitions[i].to == p_to) { transitions.write[i].transition->disconnect("advance_condition_changed", callable_mp(this, &AnimationNodeStateMachine::_tree_changed)); @@ -788,7 +755,6 @@ void AnimationNodeStateMachine::remove_transition(const StringName &p_from, cons } void AnimationNodeStateMachine::remove_transition_by_index(int p_transition) { - ERR_FAIL_INDEX(p_transition, transitions.size()); transitions.write[p_transition].transition->disconnect("advance_condition_changed", callable_mp(this, &AnimationNodeStateMachine::_tree_changed)); transitions.remove(p_transition); @@ -798,24 +764,20 @@ void AnimationNodeStateMachine::remove_transition_by_index(int p_transition) { } void AnimationNodeStateMachine::set_start_node(const StringName &p_node) { - ERR_FAIL_COND(p_node != StringName() && !states.has(p_node)); start_node = p_node; } String AnimationNodeStateMachine::get_start_node() const { - return start_node; } void AnimationNodeStateMachine::set_end_node(const StringName &p_node) { - ERR_FAIL_COND(p_node != StringName() && !states.has(p_node)); end_node = p_node; } String AnimationNodeStateMachine::get_end_node() const { - return end_node; } @@ -828,7 +790,6 @@ Vector2 AnimationNodeStateMachine::get_graph_offset() const { } float AnimationNodeStateMachine::process(float p_time, bool p_seek) { - Ref<AnimationNodeStateMachinePlayback> playback = get_parameter(this->playback); ERR_FAIL_COND_V(playback.is_null(), 0.0); @@ -847,7 +808,6 @@ Ref<AnimationNode> AnimationNodeStateMachine::get_child_by_name(const StringName } bool AnimationNodeStateMachine::_set(const StringName &p_name, const Variant &p_value) { - String name = p_name; if (name.begins_with("states/")) { String node_name = name.get_slicec('/', 1); @@ -862,14 +822,12 @@ bool AnimationNodeStateMachine::_set(const StringName &p_name, const Variant &p_ } if (what == "position") { - if (states.has(node_name)) { states[node_name].position = p_value; } return true; } } else if (name == "transitions") { - Array trans = p_value; ERR_FAIL_COND_V(trans.size() % 3 != 0, false); @@ -892,7 +850,6 @@ bool AnimationNodeStateMachine::_set(const StringName &p_name, const Variant &p_ } bool AnimationNodeStateMachine::_get(const StringName &p_name, Variant &r_ret) const { - String name = p_name; if (name.begins_with("states/")) { String node_name = name.get_slicec('/', 1); @@ -906,7 +863,6 @@ bool AnimationNodeStateMachine::_get(const StringName &p_name, Variant &r_ret) c } if (what == "position") { - if (states.has(node_name)) { r_ret = states[node_name].position; return true; @@ -938,7 +894,6 @@ bool AnimationNodeStateMachine::_get(const StringName &p_name, Variant &r_ret) c return false; } void AnimationNodeStateMachine::_get_property_list(List<PropertyInfo> *p_list) const { - List<StringName> names; for (Map<StringName, State>::Element *E = states.front(); E; E = E->next()) { names.push_back(E->key()); @@ -963,7 +918,6 @@ void AnimationNodeStateMachine::set_node_position(const StringName &p_name, cons } Vector2 AnimationNodeStateMachine::get_node_position(const StringName &p_name) const { - ERR_FAIL_COND_V(!states.has(p_name), Vector2()); return states[p_name].position; } @@ -973,7 +927,6 @@ void AnimationNodeStateMachine::_tree_changed() { } void AnimationNodeStateMachine::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_node", "name", "node", "position"), &AnimationNodeStateMachine::add_node, DEFVAL(Vector2())); ClassDB::bind_method(D_METHOD("replace_node", "name", "node"), &AnimationNodeStateMachine::replace_node); ClassDB::bind_method(D_METHOD("get_node", "name"), &AnimationNodeStateMachine::get_node); @@ -1005,6 +958,5 @@ void AnimationNodeStateMachine::_bind_methods() { } AnimationNodeStateMachine::AnimationNodeStateMachine() { - playback = "playback"; } diff --git a/scene/animation/animation_node_state_machine.h b/scene/animation/animation_node_state_machine.h index 27a4451f08..72fa6f77d0 100644 --- a/scene/animation/animation_node_state_machine.h +++ b/scene/animation/animation_node_state_machine.h @@ -134,7 +134,6 @@ public: }; class AnimationNodeStateMachine : public AnimationRootNode { - GDCLASS(AnimationNodeStateMachine, AnimationRootNode); private: @@ -148,7 +147,6 @@ private: Map<StringName, State> states; struct Transition { - StringName from; StringName to; Ref<AnimationNodeStateMachineTransition> transition; diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp index 7bac09f839..c6bd1fc531 100644 --- a/scene/animation/animation_player.cpp +++ b/scene/animation/animation_player.cpp @@ -40,7 +40,6 @@ #include "scene/2d/skeleton_2d.h" void AnimatedValuesBackup::update_skeletons() { - for (int i = 0; i < entries.size(); i++) { if (entries[i].bone_idx != -1) { // 3D bone @@ -57,7 +56,6 @@ void AnimatedValuesBackup::update_skeletons() { #endif bool AnimationPlayer::_set(const StringName &p_name, const Variant &p_value) { - String name = p_name; if (name.begins_with("playback/play")) { // bw compatibility @@ -65,23 +63,19 @@ bool AnimationPlayer::_set(const StringName &p_name, const Variant &p_value) { set_current_animation(p_value); } else if (name.begins_with("anims/")) { - String which = name.get_slicec('/', 1); add_animation(which, p_value); } else if (name.begins_with("next/")) { - String which = name.get_slicec('/', 1); animation_set_next(which, p_value); } else if (p_name == SceneStringNames::get_singleton()->blend_times) { - Array array = p_value; int len = array.size(); ERR_FAIL_COND_V(len % 3, false); for (int i = 0; i < len / 3; i++) { - StringName from = array[i * 3 + 0]; StringName to = array[i * 3 + 1]; float time = array[i * 3 + 2]; @@ -96,7 +90,6 @@ bool AnimationPlayer::_set(const StringName &p_name, const Variant &p_value) { } bool AnimationPlayer::_get(const StringName &p_name, Variant &r_ret) const { - String name = p_name; if (name == "playback/play") { // bw compatibility @@ -104,27 +97,22 @@ bool AnimationPlayer::_get(const StringName &p_name, Variant &r_ret) const { r_ret = get_current_animation(); } else if (name.begins_with("anims/")) { - String which = name.get_slicec('/', 1); r_ret = get_animation(which); } else if (name.begins_with("next/")) { - String which = name.get_slicec('/', 1); r_ret = animation_get_next(which); } else if (name == "blend_times") { - Vector<BlendKey> keys; for (Map<BlendKey, float>::Element *E = blend_times.front(); E; E = E->next()) { - keys.ordered_insert(E->key()); } Array array; for (int i = 0; i < keys.size(); i++) { - array.push_back(keys[i].from); array.push_back(keys[i].to); array.push_back(blend_times[keys[i]]); @@ -138,7 +126,6 @@ bool AnimationPlayer::_get(const StringName &p_name, Variant &r_ret) const { } void AnimationPlayer::_validate_property(PropertyInfo &property) const { - if (property.name == "current_animation") { List<String> names; @@ -149,7 +136,6 @@ void AnimationPlayer::_validate_property(PropertyInfo &property) const { names.push_front("[stop]"); String hint; for (List<String>::Element *E = names.front(); E; E = E->next()) { - if (E != names.front()) hint += ","; hint += E->get(); @@ -160,11 +146,9 @@ void AnimationPlayer::_validate_property(PropertyInfo &property) const { } void AnimationPlayer::_get_property_list(List<PropertyInfo> *p_list) const { - List<PropertyInfo> anim_names; for (Map<StringName, AnimationData>::Element *E = animation_set.front(); E; E = E->next()) { - anim_names.push_back(PropertyInfo(Variant::OBJECT, "anims/" + String(E->key()), PROPERTY_HINT_RESOURCE_TYPE, "Animation", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL | PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE)); if (E->get().next != StringName()) anim_names.push_back(PropertyInfo(Variant::STRING, "next/" + String(E->key()), PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); @@ -180,16 +164,12 @@ void AnimationPlayer::_get_property_list(List<PropertyInfo> *p_list) const { } void AnimationPlayer::advance(float p_time) { - _animation_process(p_time); } void AnimationPlayer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - if (!processing) { //make sure that a previous process state was not saved //only process if "processing" is set @@ -200,7 +180,6 @@ void AnimationPlayer::_notification(int p_what) { clear_caches(); } break; case NOTIFICATION_READY: { - if (!Engine::get_singleton()->is_editor_hint() && animation_set.has(autoplay)) { play(autoplay); _animation_process(0); @@ -214,7 +193,6 @@ void AnimationPlayer::_notification(int p_what) { _animation_process(get_process_delta_time()); } break; case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { - if (animation_process_mode == ANIMATION_PROCESS_IDLE) break; @@ -222,14 +200,12 @@ void AnimationPlayer::_notification(int p_what) { _animation_process(get_physics_process_delta_time()); } break; case NOTIFICATION_EXIT_TREE: { - clear_caches(); } break; } } void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) { - // Already cached? if (p_anim->node_cache.size() == p_anim->animation->get_track_count()) return; @@ -243,7 +219,6 @@ void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) { p_anim->node_cache.resize(a->get_track_count()); for (int i = 0; i < a->get_track_count(); i++) { - p_anim->node_cache.write[i] = nullptr; RES resource; Vector<StringName> leftover_path; @@ -253,11 +228,9 @@ void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) { int bone_idx = -1; if (a->track_get_path(i).get_subname_count() == 1 && Object::cast_to<Skeleton3D>(child)) { - Skeleton3D *sk = Object::cast_to<Skeleton3D>(child); bone_idx = sk->find_bone(a->track_get_path(i).get_subname(0)); if (bone_idx == -1) { - continue; } } @@ -305,16 +278,13 @@ void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) { } if (a->track_get_type(i) == Animation::TYPE_VALUE) { - if (!p_anim->node_cache[i]->property_anim.has(a->track_get_path(i).get_concatenated_subnames())) { - TrackNodeCache::PropertyAnim pa; pa.subpath = leftover_path; pa.object = resource.is_valid() ? (Object *)resource.ptr() : (Object *)child; pa.special = SP_NONE; pa.owner = p_anim->node_cache[i]; if (false && p_anim->node_cache[i]->node_2d) { - if (leftover_path.size() == 1 && leftover_path[0] == SceneStringNames::get_singleton()->transform_pos) pa.special = SP_NODE2D_POS; else if (leftover_path.size() == 1 && leftover_path[0] == SceneStringNames::get_singleton()->transform_rot) @@ -327,9 +297,7 @@ void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) { } if (a->track_get_type(i) == Animation::TYPE_BEZIER && leftover_path.size()) { - if (!p_anim->node_cache[i]->bezier_anim.has(a->track_get_path(i).get_concatenated_subnames())) { - TrackNodeCache::BezierAnim ba; ba.bezier_property = leftover_path; ba.object = resource.is_valid() ? (Object *)resource.ptr() : (Object *)child; @@ -342,7 +310,6 @@ void AnimationPlayer::_ensure_node_caches(AnimationData *p_anim) { } void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float p_time, float p_delta, float p_interp, bool p_is_current, bool p_seeked, bool p_started) { - _ensure_node_caches(p_anim); ERR_FAIL_COND(p_anim->node_cache.size() != p_anim->animation->get_track_count()); @@ -350,7 +317,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float bool can_call = is_inside_tree() && !Engine::get_singleton()->is_editor_hint(); for (int i = 0; i < a->get_track_count(); i++) { - // If an animation changes this animation (or it animates itself) // we need to recreate our animation cache if (p_anim->node_cache.size() != a->get_track_count()) { @@ -369,9 +335,7 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float continue; // do nothing if track is empty switch (a->track_get_type(i)) { - case Animation::TYPE_TRANSFORM: { - if (!nc->spatial) continue; @@ -394,7 +358,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float nc->scale_accum = scale; } else { - nc->loc_accum = nc->loc_accum.lerp(loc, p_interp); nc->rot_accum = nc->rot_accum.slerp(rot, p_interp); nc->scale_accum = nc->scale_accum.lerp(scale, p_interp); @@ -402,7 +365,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float } break; case Animation::TYPE_VALUE: { - if (!nc->node) continue; @@ -416,7 +378,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float Animation::UpdateMode update_mode = a->value_track_get_update_mode(i); if (update_mode == Animation::UPDATE_CAPTURE) { - if (p_started) { pa->capture = pa->object->get_indexed(pa->subpath); } @@ -479,15 +440,12 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float } } else if (p_is_current && p_delta != 0) { - List<int> indices; a->value_track_get_key_indices(i, p_time, p_delta, &indices); for (List<int>::Element *F = indices.front(); F; F = F->next()) { - Variant value = a->track_get_key_value(i, F->get()); switch (pa->special) { - case SP_NONE: { bool valid; pa->object->set_indexed(pa->subpath, value, &valid); //you are not speshul @@ -530,7 +488,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float } break; case Animation::TYPE_METHOD: { - if (!nc->node) continue; if (p_delta == 0) { @@ -544,7 +501,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float a->method_track_get_key_indices(i, p_time, p_delta, &indices); for (List<int>::Element *E = indices.front(); E; E = E->next()) { - StringName method = a->method_track_get_name(i, E->get()); Vector<Variant> params = a->method_track_get_params(i, E->get()); @@ -581,7 +537,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float } break; case Animation::TYPE_BEZIER: { - if (!nc->node) continue; @@ -602,7 +557,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float } break; case Animation::TYPE_AUDIO: { - if (!nc->node) continue; if (p_delta == 0) { @@ -678,7 +632,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float nc->audio_start = p_time; } } else if (nc->audio_playing) { - bool loop = a->has_loop(); bool stop = false; @@ -704,7 +657,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float } break; case Animation::TYPE_ANIMATION: { - AnimationPlayer *player = Object::cast_to<AnimationPlayer>(nc->node); if (!player) continue; @@ -749,7 +701,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float StringName anim_name = a->animation_track_get_key_animation(i, idx); if (String(anim_name) == "[stop]" || !player->has_animation(anim_name)) { - if (playing_caches.has(nc)) { playing_caches.erase(nc); player->stop(); @@ -769,7 +720,6 @@ void AnimationPlayer::_animation_process_animation(AnimationData *p_anim, float } void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, float p_blend, bool p_seeked, bool p_started) { - float delta = p_delta * speed_scale * cd.speed_scale; float next_pos = cd.pos + delta; @@ -777,7 +727,6 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, f bool loop = cd.from->animation->has_loop(); if (!loop) { - if (next_pos < 0) next_pos = 0; else if (next_pos > len) @@ -787,7 +736,6 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, f delta = next_pos - cd.pos; if (&cd == &playback.current) { - bool backwards = delta < 0; if (!backwards && cd.pos <= len && next_pos == len /*&& playback.blend.empty()*/) { @@ -804,7 +752,6 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, f } } else { - float looped_next_pos = Math::fposmod(next_pos, len); if (looped_next_pos == 0 && next_pos != 0) { // Loop multiples of the length to it, rather than 0 @@ -820,7 +767,6 @@ void AnimationPlayer::_animation_process_data(PlaybackData &cd, float p_delta, f _animation_process_animation(cd.from, cd.pos, delta, p_blend, &cd == &playback.current, p_seeked, p_started); } void AnimationPlayer::_animation_process2(float p_delta, bool p_started) { - Playback &c = playback; accum_pass++; @@ -832,7 +778,6 @@ void AnimationPlayer::_animation_process2(float p_delta, bool p_started) { List<Blend>::Element *prev = nullptr; for (List<Blend>::Element *E = c.blend.back(); E; E = prev) { - Blend &b = E->get(); float blend = b.blend_left / b.blend_time; _animation_process_data(b.data, p_delta, blend, false, false); @@ -841,7 +786,6 @@ void AnimationPlayer::_animation_process2(float p_delta, bool p_started) { prev = E->prev(); if (b.blend_left < 0) { - c.blend.erase(E); } } @@ -851,7 +795,6 @@ void AnimationPlayer::_animation_update_transforms() { { Transform t; for (int i = 0; i < cache_update_size; i++) { - TrackNodeCache *nc = cache_update[i]; ERR_CONTINUE(nc->accum_pass != accum_pass); @@ -859,11 +802,9 @@ void AnimationPlayer::_animation_update_transforms() { t.origin = nc->loc_accum; t.basis.set_quat_scale(nc->rot_accum, nc->scale_accum); if (nc->skeleton && nc->bone_idx >= 0) { - nc->skeleton->set_bone_pose(nc->bone_idx, t); } else if (nc->spatial) { - nc->spatial->set_transform(t); } } @@ -872,13 +813,11 @@ void AnimationPlayer::_animation_update_transforms() { cache_update_size = 0; for (int i = 0; i < cache_update_prop_size; i++) { - TrackNodeCache::PropertyAnim *pa = cache_update_prop[i]; ERR_CONTINUE(pa->accum_pass != accum_pass); switch (pa->special) { - case SP_NONE: { bool valid; pa->object->set_indexed(pa->subpath, pa->value_accum, &valid); //you are not speshul @@ -921,7 +860,6 @@ void AnimationPlayer::_animation_update_transforms() { cache_update_prop_size = 0; for (int i = 0; i < cache_update_bezier_size; i++) { - TrackNodeCache::BezierAnim *ba = cache_update_bezier[i]; ERR_CONTINUE(ba->accum_pass != accum_pass); @@ -932,9 +870,7 @@ void AnimationPlayer::_animation_update_transforms() { } void AnimationPlayer::_animation_process(float p_delta) { - if (playback.current.from) { - end_reached = false; end_notify = false; _animation_process2(p_delta, playback.started); @@ -968,7 +904,6 @@ void AnimationPlayer::_animation_process(float p_delta) { } Error AnimationPlayer::add_animation(const StringName &p_name, const Ref<Animation> &p_animation) { - #ifdef DEBUG_ENABLED ERR_FAIL_COND_V_MSG(String(p_name).find("/") != -1 || String(p_name).find(":") != -1 || String(p_name).find(",") != -1 || String(p_name).find("[") != -1, ERR_INVALID_PARAMETER, "Invalid animation name: " + String(p_name) + "."); #endif @@ -976,12 +911,10 @@ Error AnimationPlayer::add_animation(const StringName &p_name, const Ref<Animati ERR_FAIL_COND_V(p_animation.is_null(), ERR_INVALID_PARAMETER); if (animation_set.has(p_name)) { - _unref_anim(animation_set[p_name].animation); animation_set[p_name].animation = p_animation; clear_caches(); } else { - AnimationData ad; ad.animation = p_animation; ad.name = p_name; @@ -994,7 +927,6 @@ Error AnimationPlayer::add_animation(const StringName &p_name, const Ref<Animati } void AnimationPlayer::remove_animation(const StringName &p_name) { - ERR_FAIL_COND(!animation_set.has(p_name)); stop(); @@ -1006,17 +938,14 @@ void AnimationPlayer::remove_animation(const StringName &p_name) { } void AnimationPlayer::_ref_anim(const Ref<Animation> &p_anim) { - Ref<Animation>(p_anim)->connect(SceneStringNames::get_singleton()->tracks_changed, callable_mp(this, &AnimationPlayer::_animation_changed), varray(), CONNECT_REFERENCE_COUNTED); } void AnimationPlayer::_unref_anim(const Ref<Animation> &p_anim) { - Ref<Animation>(p_anim)->disconnect(SceneStringNames::get_singleton()->tracks_changed, callable_mp(this, &AnimationPlayer::_animation_changed)); } void AnimationPlayer::rename_animation(const StringName &p_name, const StringName &p_new_name) { - ERR_FAIL_COND(!animation_set.has(p_name)); ERR_FAIL_COND(String(p_new_name).find("/") != -1 || String(p_new_name).find(":") != -1); ERR_FAIL_COND(animation_set.has(p_new_name)); @@ -1030,7 +959,6 @@ void AnimationPlayer::rename_animation(const StringName &p_name, const StringNam List<BlendKey> to_erase; Map<BlendKey, float> to_insert; for (Map<BlendKey, float>::Element *E = blend_times.front(); E; E = E->next()) { - BlendKey bk = E->key(); BlendKey new_bk = bk; bool erase = false; @@ -1050,7 +978,6 @@ void AnimationPlayer::rename_animation(const StringName &p_name, const StringNam } while (to_erase.size()) { - blend_times.erase(to_erase.front()->get()); to_erase.pop_front(); } @@ -1068,11 +995,9 @@ void AnimationPlayer::rename_animation(const StringName &p_name, const StringNam } bool AnimationPlayer::has_animation(const StringName &p_name) const { - return animation_set.has(p_name); } Ref<Animation> AnimationPlayer::get_animation(const StringName &p_name) const { - ERR_FAIL_COND_V(!animation_set.has(p_name), Ref<Animation>()); const AnimationData &data = animation_set[p_name]; @@ -1080,24 +1005,20 @@ Ref<Animation> AnimationPlayer::get_animation(const StringName &p_name) const { return data.animation; } void AnimationPlayer::get_animation_list(List<StringName> *p_animations) const { - List<String> anims; for (Map<StringName, AnimationData>::Element *E = animation_set.front(); E; E = E->next()) { - anims.push_back(E->key()); } anims.sort(); for (List<String>::Element *E = anims.front(); E; E = E->next()) { - p_animations->push_back(E->get()); } } void AnimationPlayer::set_blend_time(const StringName &p_animation1, const StringName &p_animation2, float p_time) { - ERR_FAIL_COND_MSG(p_time < 0, "Blend time cannot be smaller than 0."); BlendKey bk; @@ -1110,7 +1031,6 @@ void AnimationPlayer::set_blend_time(const StringName &p_animation1, const Strin } float AnimationPlayer::get_blend_time(const StringName &p_animation1, const StringName &p_animation2) const { - BlendKey bk; bk.from = p_animation1; bk.to = p_animation2; @@ -1122,7 +1042,6 @@ float AnimationPlayer::get_blend_time(const StringName &p_animation1, const Stri } void AnimationPlayer::queue(const StringName &p_name) { - if (!is_playing()) play(p_name); else @@ -1143,12 +1062,10 @@ void AnimationPlayer::clear_queue() { } void AnimationPlayer::play_backwards(const StringName &p_name, float p_custom_blend) { - play(p_name, p_custom_blend, -1, true); } void AnimationPlayer::play(const StringName &p_name, float p_custom_blend, float p_custom_scale, bool p_from_end) { - StringName name = p_name; if (String(name) == "") @@ -1159,7 +1076,6 @@ void AnimationPlayer::play(const StringName &p_name, float p_custom_blend, float Playback &c = playback; if (c.current.from) { - float blend_time = 0; // find if it can blend BlendKey bk; @@ -1169,21 +1085,16 @@ void AnimationPlayer::play(const StringName &p_name, float p_custom_blend, float if (p_custom_blend >= 0) { blend_time = p_custom_blend; } else if (blend_times.has(bk)) { - blend_time = blend_times[bk]; } else { - bk.from = "*"; if (blend_times.has(bk)) { - blend_time = blend_times[bk]; } else { - bk.from = c.current.from->name; bk.to = "*"; if (blend_times.has(bk)) { - blend_time = blend_times[bk]; } } @@ -1192,7 +1103,6 @@ void AnimationPlayer::play(const StringName &p_name, float p_custom_blend, float if (p_custom_blend < 0 && blend_time == 0 && default_blend_time) blend_time = default_blend_time; if (blend_time > 0) { - Blend b; b.data = c.current; b.blend_time = b.blend_left = blend_time; @@ -1240,12 +1150,10 @@ void AnimationPlayer::play(const StringName &p_name, float p_custom_blend, float } bool AnimationPlayer::is_playing() const { - return playing; } void AnimationPlayer::set_current_animation(const String &p_anim) { - if (p_anim == "[stop]" || p_anim == "") { stop(); } else if (!is_playing() || playback.assigned != p_anim) { @@ -1256,12 +1164,10 @@ void AnimationPlayer::set_current_animation(const String &p_anim) { } String AnimationPlayer::get_current_animation() const { - return (is_playing() ? playback.assigned : ""); } void AnimationPlayer::set_assigned_animation(const String &p_anim) { - if (is_playing()) { play(p_anim); } else { @@ -1273,12 +1179,10 @@ void AnimationPlayer::set_assigned_animation(const String &p_anim) { } String AnimationPlayer::get_assigned_animation() const { - return playback.assigned; } void AnimationPlayer::stop(bool p_reset) { - _stop_playing_caches(); Playback &c = playback; c.blend.clear(); @@ -1293,15 +1197,12 @@ void AnimationPlayer::stop(bool p_reset) { } void AnimationPlayer::set_speed_scale(float p_speed) { - speed_scale = p_speed; } float AnimationPlayer::get_speed_scale() const { - return speed_scale; } float AnimationPlayer::get_playing_speed() const { - if (!playing) { return 0; } @@ -1309,7 +1210,6 @@ float AnimationPlayer::get_playing_speed() const { } void AnimationPlayer::seek(float p_time, bool p_update) { - if (!playback.current.from) { if (playback.assigned) { ERR_FAIL_COND(!animation_set.has(playback.assigned)); @@ -1326,7 +1226,6 @@ void AnimationPlayer::seek(float p_time, bool p_update) { } void AnimationPlayer::seek_delta(float p_time, float p_delta) { - if (!playback.current.from) { if (playback.assigned) { ERR_FAIL_COND(!animation_set.has(playback.assigned)); @@ -1343,24 +1242,20 @@ void AnimationPlayer::seek_delta(float p_time, float p_delta) { } bool AnimationPlayer::is_valid() const { - return (playback.current.from); } float AnimationPlayer::get_current_animation_position() const { - ERR_FAIL_COND_V(!playback.current.from, 0); return playback.current.pos; } float AnimationPlayer::get_current_animation_length() const { - ERR_FAIL_COND_V(!playback.current.from, 0); return playback.current.from->animation->get_length(); } void AnimationPlayer::_animation_changed() { - clear_caches(); emit_signal("caches_cleared"); if (is_playing()) { @@ -1369,9 +1264,7 @@ void AnimationPlayer::_animation_changed() { } void AnimationPlayer::_stop_playing_caches() { - for (Set<TrackNodeCache *>::Element *E = playing_caches.front(); E; E = E->next()) { - if (E->get()->node && E->get()->audio_playing) { E->get()->node->call("stop"); } @@ -1387,18 +1280,15 @@ void AnimationPlayer::_stop_playing_caches() { } void AnimationPlayer::_node_removed(Node *p_node) { - clear_caches(); // nodes contained here ar being removed, clear the caches } void AnimationPlayer::clear_caches() { - _stop_playing_caches(); node_cache_map.clear(); for (Map<StringName, AnimationData>::Element *E = animation_set.front(); E; E = E->next()) { - E->get().node_cache.clear(); } @@ -1408,7 +1298,6 @@ void AnimationPlayer::clear_caches() { } void AnimationPlayer::set_active(bool p_active) { - if (active == p_active) return; @@ -1417,14 +1306,11 @@ void AnimationPlayer::set_active(bool p_active) { } bool AnimationPlayer::is_active() const { - return active; } StringName AnimationPlayer::find_animation(const Ref<Animation> &p_animation) const { - for (Map<StringName, AnimationData>::Element *E = animation_set.front(); E; E = E->next()) { - if (E->get().animation == p_animation) return E->key(); } @@ -1440,12 +1326,10 @@ void AnimationPlayer::set_autoplay(const String &p_name) { } String AnimationPlayer::get_autoplay() const { - return autoplay; } void AnimationPlayer::set_animation_process_mode(AnimationProcessMode p_mode) { - if (animation_process_mode == p_mode) return; @@ -1458,27 +1342,22 @@ void AnimationPlayer::set_animation_process_mode(AnimationProcessMode p_mode) { } AnimationPlayer::AnimationProcessMode AnimationPlayer::get_animation_process_mode() const { - return animation_process_mode; } void AnimationPlayer::set_method_call_mode(AnimationMethodCallMode p_mode) { - method_call_mode = p_mode; } AnimationPlayer::AnimationMethodCallMode AnimationPlayer::get_method_call_mode() const { - return method_call_mode; } void AnimationPlayer::_set_process(bool p_process, bool p_force) { - if (processing == p_process && !p_force) return; switch (animation_process_mode) { - case ANIMATION_PROCESS_PHYSICS: set_physics_process_internal(p_process && active); break; @@ -1493,41 +1372,34 @@ void AnimationPlayer::_set_process(bool p_process, bool p_force) { } void AnimationPlayer::animation_set_next(const StringName &p_animation, const StringName &p_next) { - ERR_FAIL_COND(!animation_set.has(p_animation)); animation_set[p_animation].next = p_next; } StringName AnimationPlayer::animation_get_next(const StringName &p_animation) const { - if (!animation_set.has(p_animation)) return StringName(); return animation_set[p_animation].next; } void AnimationPlayer::set_default_blend_time(float p_default) { - default_blend_time = p_default; } float AnimationPlayer::get_default_blend_time() const { - return default_blend_time; } void AnimationPlayer::set_root(const NodePath &p_root) { - root = p_root; clear_caches(); } NodePath AnimationPlayer::get_root() const { - return root; } void AnimationPlayer::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const { - #ifdef TOOLS_ENABLED const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", 0) ? "'" : "\""; #else @@ -1539,7 +1411,6 @@ void AnimationPlayer::get_argument_options(const StringName &p_function, int p_i List<StringName> al; get_animation_list(&al); for (List<StringName>::Element *E = al.front(); E; E = E->next()) { - r_options->push_back(quote_style + String(E->get()) + quote_style); } } @@ -1548,7 +1419,6 @@ void AnimationPlayer::get_argument_options(const StringName &p_function, int p_i #ifdef TOOLS_ENABLED AnimatedValuesBackup AnimationPlayer::backup_animated_values() { - if (!playback.current.from) return AnimatedValuesBackup(); @@ -1597,9 +1467,7 @@ AnimatedValuesBackup AnimationPlayer::backup_animated_values() { } void AnimationPlayer::restore_animated_values(const AnimatedValuesBackup &p_backup) { - for (int i = 0; i < p_backup.entries.size(); i++) { - const AnimatedValuesBackup::Entry *entry = &p_backup.entries[i]; if (entry->bone_idx == -1) { entry->object->set_indexed(entry->subpath, entry->value); @@ -1697,7 +1565,6 @@ void AnimationPlayer::_bind_methods() { } AnimationPlayer::AnimationPlayer() { - accum_pass = 1; cache_update_size = 0; cache_update_prop_size = 0; diff --git a/scene/animation/animation_player.h b/scene/animation/animation_player.h index d709082f62..c7b3d7fc7b 100644 --- a/scene/animation/animation_player.h +++ b/scene/animation/animation_player.h @@ -85,7 +85,6 @@ private: }; struct TrackNodeCache { - NodePath path; uint32_t id = 0; RES resource; @@ -108,7 +107,6 @@ private: bool animation_playing = false; struct PropertyAnim { - TrackNodeCache *owner = nullptr; SpecialProperty special = SP_NONE; //small optimization Vector<StringName> subpath; @@ -123,7 +121,6 @@ private: Map<StringName, PropertyAnim> property_anim; struct BezierAnim { - Vector<StringName> bezier_property; TrackNodeCache *owner = nullptr; float bezier_accum = 0.0; @@ -139,12 +136,10 @@ private: }; struct TrackNodeCacheKey { - ObjectID id; int bone_idx; inline bool operator<(const TrackNodeCacheKey &p_right) const { - if (id == p_right.id) return bone_idx < p_right.bone_idx; else @@ -175,7 +170,6 @@ private: Map<StringName, AnimationData> animation_set; struct BlendKey { - StringName from; StringName to; bool operator<(const BlendKey &bk) const { return from == bk.from ? String(to) < String(bk.to) : String(from) < String(bk.from); } @@ -184,13 +178,11 @@ private: Map<BlendKey, float> blend_times; struct PlaybackData { - AnimationData *from; float pos; float speed_scale; PlaybackData() { - pos = 0; speed_scale = 1.0; from = nullptr; @@ -198,21 +190,18 @@ private: }; struct Blend { - PlaybackData data; float blend_time; float blend_left; Blend() { - blend_left = 0; blend_time = 0; } }; struct Playback { - List<Blend> blend; PlaybackData current; StringName assigned; @@ -246,12 +235,10 @@ private: // bind helpers Vector<String> _get_animation_list() const { - List<StringName> animations; get_animation_list(&animations); Vector<String> ret; while (animations.size()) { - ret.push_back(animations.front()->get()); animations.pop_front(); } diff --git a/scene/animation/animation_tree.cpp b/scene/animation/animation_tree.cpp index 56e224819f..81575b7f48 100644 --- a/scene/animation/animation_tree.cpp +++ b/scene/animation/animation_tree.cpp @@ -73,7 +73,6 @@ Variant AnimationNode::get_parameter(const StringName &p_name) const { } void AnimationNode::get_child_nodes(List<ChildNode> *r_child_nodes) { - if (get_script_instance()) { Dictionary cn = get_script_instance()->call("get_child_nodes"); List<Variant> keys; @@ -88,14 +87,12 @@ void AnimationNode::get_child_nodes(List<ChildNode> *r_child_nodes) { } void AnimationNode::blend_animation(const StringName &p_animation, float p_time, float p_delta, bool p_seeked, float p_blend) { - ERR_FAIL_COND(!state); ERR_FAIL_COND(!state->player->has_animation(p_animation)); Ref<Animation> animation = state->player->get_animation(p_animation); if (animation.is_null()) { - AnimationNodeBlendTree *btree = Object::cast_to<AnimationNodeBlendTree>(parent); if (btree) { String name = btree->get_node_name(Ref<AnimationNodeAnimation>(this)); @@ -120,7 +117,6 @@ void AnimationNode::blend_animation(const StringName &p_animation, float p_time, } float AnimationNode::_pre_process(const StringName &p_base_path, AnimationNode *p_parent, State *p_state, float p_time, bool p_seek, const Vector<StringName> &p_connections) { - base_path = p_base_path; parent = p_parent; connections = p_connections; @@ -176,12 +172,10 @@ float AnimationNode::blend_input(int p_input, float p_time, bool p_seek, float p } float AnimationNode::blend_node(const StringName &p_sub_path, Ref<AnimationNode> p_node, float p_time, bool p_seek, float p_blend, FilterAction p_filter, bool p_optimize) { - return _blend_node(p_sub_path, Vector<StringName>(), this, p_node, p_time, p_seek, p_blend, p_filter, p_optimize); } float AnimationNode::_blend_node(const StringName &p_subpath, const Vector<StringName> &p_connections, AnimationNode *p_new_parent, Ref<AnimationNode> p_node, float p_time, bool p_seek, float p_blend, FilterAction p_filter, bool p_optimize, float *r_max) { - ERR_FAIL_COND_V(!p_node.is_valid(), 0); ERR_FAIL_COND_V(!state, 0); @@ -197,7 +191,6 @@ float AnimationNode::_blend_node(const StringName &p_subpath, const Vector<Strin bool any_valid = false; if (has_filter() && is_filter_enabled() && p_filter != FILTER_IGNORE) { - for (int i = 0; i < blend_count; i++) { blendw[i] = 0.0; //all to zero by default } @@ -228,7 +221,6 @@ float AnimationNode::_blend_node(const StringName &p_subpath, const Vector<Strin } break; case FILTER_STOP: { - //values filtered don't pass, the rest are blended for (int i = 0; i < blend_count; i++) { @@ -243,7 +235,6 @@ float AnimationNode::_blend_node(const StringName &p_subpath, const Vector<Strin } break; case FILTER_BLEND: { - //filtered values are blended, the rest are passed without blending for (int i = 0; i < blend_count; i++) { @@ -262,7 +253,6 @@ float AnimationNode::_blend_node(const StringName &p_subpath, const Vector<Strin } } else { for (int i = 0; i < blend_count; i++) { - //regular blend blendw[i] = blendr[i] * p_blend; if (blendw[i] > CMP_EPSILON) { @@ -297,7 +287,6 @@ float AnimationNode::_blend_node(const StringName &p_subpath, const Vector<Strin } int AnimationNode::get_input_count() const { - return inputs.size(); } String AnimationNode::get_input_name(int p_input) { @@ -306,7 +295,6 @@ String AnimationNode::get_input_name(int p_input) { } String AnimationNode::get_caption() const { - if (get_script_instance()) { return get_script_instance()->call("get_caption"); } @@ -338,7 +326,6 @@ void AnimationNode::remove_input(int p_index) { } float AnimationNode::process(float p_time, bool p_seek) { - if (get_script_instance()) { return get_script_instance()->call("process", p_time, p_seek); } @@ -371,7 +358,6 @@ bool AnimationNode::has_filter() const { } Array AnimationNode::_get_filters() const { - Array paths; const NodePath *K = nullptr; @@ -403,7 +389,6 @@ Ref<AnimationNode> AnimationNode::get_child_by_name(const StringName &p_name) { } void AnimationNode::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_input_count"), &AnimationNode::get_input_count); ClassDB::bind_method(D_METHOD("get_input_name", "input"), &AnimationNode::get_input_name); @@ -452,7 +437,6 @@ void AnimationNode::_bind_methods() { } AnimationNode::AnimationNode() { - state = nullptr; parent = nullptr; filter_enabled = false; @@ -461,7 +445,6 @@ AnimationNode::AnimationNode() { //////////////////// void AnimationTree::set_tree_root(const Ref<AnimationNode> &p_root) { - if (root.is_valid()) { root->disconnect("tree_changed", callable_mp(this, &AnimationTree::_tree_changed)); } @@ -482,7 +465,6 @@ Ref<AnimationNode> AnimationTree::get_tree_root() const { } void AnimationTree::set_active(bool p_active) { - if (active == p_active) return; @@ -492,13 +474,11 @@ void AnimationTree::set_active(bool p_active) { if (process_mode == ANIMATION_PROCESS_IDLE) { set_process_internal(active); } else { - set_physics_process_internal(active); } if (!active && is_inside_tree()) { for (Set<TrackCache *>::Element *E = playing_caches.front(); E; E = E->next()) { - if (ObjectDB::get_instance(E->get()->object_id)) { E->get()->object->call("stop"); } @@ -509,12 +489,10 @@ void AnimationTree::set_active(bool p_active) { } bool AnimationTree::is_active() const { - return active; } void AnimationTree::set_process_mode(AnimationProcessMode p_mode) { - if (process_mode == p_mode) return; @@ -539,7 +517,6 @@ void AnimationTree::_node_removed(Node *p_node) { } bool AnimationTree::_update_caches(AnimationPlayer *player) { - setup_pass++; if (!player->has_node(player->get_root())) { @@ -572,7 +549,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { } if (!track) { - RES resource; Vector<StringName> leftover_path; Node *child = parent->get_node_and_resource(path, resource, leftover_path); @@ -588,7 +564,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { switch (track_type) { case Animation::TYPE_VALUE: { - TrackCacheValue *track_value = memnew(TrackCacheValue); if (resource.is_valid()) { @@ -604,7 +579,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { } break; case Animation::TYPE_TRANSFORM: { - Node3D *spatial = Object::cast_to<Node3D>(child); if (!spatial) { @@ -619,11 +593,9 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { track_xform->bone_idx = -1; if (path.get_subname_count() == 1 && Object::cast_to<Skeleton3D>(spatial)) { - Skeleton3D *sk = Object::cast_to<Skeleton3D>(spatial); int bone_idx = sk->find_bone(path.get_subname(0)); if (bone_idx != -1) { - track_xform->skeleton = sk; track_xform->bone_idx = bone_idx; } @@ -636,7 +608,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { } break; case Animation::TYPE_METHOD: { - TrackCacheMethod *track_method = memnew(TrackCacheMethod); if (resource.is_valid()) { @@ -651,7 +622,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { } break; case Animation::TYPE_BEZIER: { - TrackCacheBezier *track_bezier = memnew(TrackCacheBezier); if (resource.is_valid()) { @@ -666,7 +636,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { track = track_bezier; } break; case Animation::TYPE_AUDIO: { - TrackCacheAudio *track_audio = memnew(TrackCacheAudio); track_audio->object = child; @@ -676,7 +645,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { } break; case Animation::TYPE_ANIMATION: { - TrackCacheAnimation *track_animation = memnew(TrackCacheAnimation); track_animation->object = child; @@ -732,7 +700,6 @@ bool AnimationTree::_update_caches(AnimationPlayer *player) { } void AnimationTree::_clear_caches() { - const NodePath *K = nullptr; while ((K = track_cache.next(K))) { memdelete(track_cache[*K]); @@ -744,7 +711,6 @@ void AnimationTree::_clear_caches() { } void AnimationTree::_process_graph(float p_delta) { - _update_properties(); //if properties need updating, update them //check all tracks, see if they need modification @@ -774,7 +740,6 @@ void AnimationTree::_process_graph(float p_delta) { } if (last_animation_player != current_animation_player) { - if (last_animation_player.is_valid()) { Object *old_player = ObjectDB::get_instance(last_animation_player); if (old_player) { @@ -826,7 +791,6 @@ void AnimationTree::_process_graph(float p_delta) { //process { - if (started) { //if started, seek root->_pre_process(SceneStringNames::get_singleton()->parameters_base_path, nullptr, &state, 0, true, Vector<StringName>()); @@ -842,11 +806,9 @@ void AnimationTree::_process_graph(float p_delta) { //apply value/transform/bezier blends to track caches and execute method/audio/animation tracks { - bool can_call = is_inside_tree() && !Engine::get_singleton()->is_editor_hint(); for (List<AnimationNode::AnimationState>::Element *E = state.animation_states.front(); E; E = E->next()) { - const AnimationNode::AnimationState &as = E->get(); Ref<Animation> a = as.animation; @@ -855,7 +817,6 @@ void AnimationTree::_process_graph(float p_delta) { bool seeked = as.seeked; for (int i = 0; i < a->get_track_count(); i++) { - NodePath path = a->track_get_path(i); ERR_CONTINUE(!track_cache.has(path)); @@ -878,15 +839,11 @@ void AnimationTree::_process_graph(float p_delta) { continue; //nothing to blend switch (track->type) { - case Animation::TYPE_TRANSFORM: { - TrackCacheTransform *t = static_cast<TrackCacheTransform *>(track); if (track->root_motion) { - if (t->process_pass != process_pass) { - t->process_pass = process_pass; t->loc = Vector3(); t->rot = Quat(); @@ -908,7 +865,6 @@ void AnimationTree::_process_graph(float p_delta) { Vector3 scale[2]; if (prev_time > time) { - Error err = a->transform_track_interpolate(i, prev_time, &loc[0], &rot[0], &scale[0]); if (err != OK) { continue; @@ -947,7 +903,6 @@ void AnimationTree::_process_graph(float p_delta) { //ERR_CONTINUE(err!=OK); //used for testing, should be removed if (t->process_pass != process_pass) { - t->process_pass = process_pass; t->loc = loc; t->rot = rot; @@ -972,7 +927,6 @@ void AnimationTree::_process_graph(float p_delta) { } break; case Animation::TYPE_VALUE: { - TrackCacheValue *t = static_cast<TrackCacheValue *>(track); Animation::UpdateMode update_mode = a->value_track_get_update_mode(i); @@ -992,12 +946,10 @@ void AnimationTree::_process_graph(float p_delta) { Variant::interpolate(t->value, value, blend, t->value); } else if (delta != 0) { - List<int> indices; a->value_track_get_key_indices(i, time, delta, &indices); for (List<int>::Element *F = indices.front(); F; F = F->next()) { - Variant value = a->track_get_key_value(i, F->get()); t->object->set_indexed(t->subpath, value); } @@ -1005,7 +957,6 @@ void AnimationTree::_process_graph(float p_delta) { } break; case Animation::TYPE_METHOD: { - if (delta == 0) { continue; } @@ -1016,7 +967,6 @@ void AnimationTree::_process_graph(float p_delta) { a->method_track_get_key_indices(i, time, delta, &indices); for (List<int>::Element *F = indices.front(); F; F = F->next()) { - StringName method = a->method_track_get_name(i, F->get()); Vector<Variant> params = a->method_track_get_params(i, F->get()); @@ -1036,7 +986,6 @@ void AnimationTree::_process_graph(float p_delta) { } break; case Animation::TYPE_BEZIER: { - TrackCacheBezier *t = static_cast<TrackCacheBezier *>(track); float bezier = a->bezier_track_interpolate(i, time); @@ -1050,7 +999,6 @@ void AnimationTree::_process_graph(float p_delta) { } break; case Animation::TYPE_AUDIO: { - TrackCacheAudio *t = static_cast<TrackCacheAudio *>(track); if (seeked) { @@ -1122,7 +1070,6 @@ void AnimationTree::_process_graph(float p_delta) { t->start = time; } } else if (t->playing) { - bool loop = a->has_loop(); bool stop = false; @@ -1154,7 +1101,6 @@ void AnimationTree::_process_graph(float p_delta) { } } break; case Animation::TYPE_ANIMATION: { - TrackCacheAnimation *t = static_cast<TrackCacheAnimation *>(track); AnimationPlayer *player2 = Object::cast_to<AnimationPlayer>(t->object); @@ -1202,7 +1148,6 @@ void AnimationTree::_process_graph(float p_delta) { StringName anim_name = a->animation_track_get_key_animation(i, idx); if (String(anim_name) == "[stop]" || !player2->has_animation(anim_name)) { - if (playing_caches.has(t)) { playing_caches.erase(t); player2->stop(); @@ -1231,9 +1176,7 @@ void AnimationTree::_process_graph(float p_delta) { continue; //not processed, ignore switch (track->type) { - case Animation::TYPE_TRANSFORM: { - TrackCacheTransform *t = static_cast<TrackCacheTransform *>(track); Transform xform; @@ -1242,31 +1185,26 @@ void AnimationTree::_process_graph(float p_delta) { xform.basis.set_quat_scale(t->rot, t->scale); if (t->root_motion) { - root_motion_transform = xform; if (t->skeleton && t->bone_idx >= 0) { root_motion_transform = (t->skeleton->get_bone_rest(t->bone_idx) * root_motion_transform) * t->skeleton->get_bone_rest(t->bone_idx).affine_inverse(); } } else if (t->skeleton && t->bone_idx >= 0) { - t->skeleton->set_bone_pose(t->bone_idx, xform); } else { - t->spatial->set_transform(xform); } } break; case Animation::TYPE_VALUE: { - TrackCacheValue *t = static_cast<TrackCacheValue *>(track); t->object->set_indexed(t->subpath, t->value); } break; case Animation::TYPE_BEZIER: { - TrackCacheBezier *t = static_cast<TrackCacheBezier *>(track); t->object->set_indexed(t->subpath, t->value); @@ -1280,12 +1218,10 @@ void AnimationTree::_process_graph(float p_delta) { } void AnimationTree::advance(float p_time) { - _process_graph(p_time); } void AnimationTree::_notification(int p_what) { - if (active && p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS && process_mode == ANIMATION_PROCESS_PHYSICS) { _process_graph(get_physics_process_delta_time()); } @@ -1297,7 +1233,6 @@ void AnimationTree::_notification(int p_what) { if (p_what == NOTIFICATION_EXIT_TREE) { _clear_caches(); if (last_animation_player.is_valid()) { - Object *player = ObjectDB::get_instance(last_animation_player); if (player) { player->disconnect("caches_cleared", callable_mp(this, &AnimationTree::_clear_caches)); @@ -1305,7 +1240,6 @@ void AnimationTree::_notification(int p_what) { } } else if (p_what == NOTIFICATION_ENTER_TREE) { if (last_animation_player.is_valid()) { - Object *player = ObjectDB::get_instance(last_animation_player); if (player) { player->connect("caches_cleared", callable_mp(this, &AnimationTree::_clear_caches)); @@ -1324,11 +1258,9 @@ NodePath AnimationTree::get_animation_player() const { } bool AnimationTree::is_state_invalid() const { - return !state.valid; } String AnimationTree::get_invalid_state_reason() const { - return state.invalid_reasons; } @@ -1337,7 +1269,6 @@ uint64_t AnimationTree::get_last_process_pass() const { } String AnimationTree::get_configuration_warning() const { - String warning = Node::get_configuration_warning(); if (!root.is_valid()) { @@ -1348,7 +1279,6 @@ String AnimationTree::get_configuration_warning() const { } if (!has_node(animation_player)) { - if (warning != String()) { warning += "\n\n"; } @@ -1402,13 +1332,11 @@ void AnimationTree::_tree_changed() { } void AnimationTree::_update_properties_for_node(const String &p_base_path, Ref<AnimationNode> node) { - if (!property_parent_map.has(p_base_path)) { property_parent_map[p_base_path] = HashMap<StringName, StringName>(); } if (node->get_input_count() && !input_activity_map.has(p_base_path)) { - Vector<Activity> activity; for (int i = 0; i < node->get_input_count(); i++) { Activity a; @@ -1503,7 +1431,6 @@ void AnimationTree::_get_property_list(List<PropertyInfo> *p_list) const { } void AnimationTree::rename_parameter(const String &p_base, const String &p_new_base) { - //rename values first for (const List<PropertyInfo>::Element *E = properties.front(); E; E = E->next()) { if (E->get().name.begins_with(p_base)) { @@ -1518,7 +1445,6 @@ void AnimationTree::rename_parameter(const String &p_base, const String &p_new_b } float AnimationTree::get_connection_activity(const StringName &p_path, int p_connection) const { - if (!input_activity_map_get.has(p_path)) { return 0; } @@ -1572,7 +1498,6 @@ void AnimationTree::_bind_methods() { } AnimationTree::AnimationTree() { - process_mode = ANIMATION_PROCESS_IDLE; active = false; cache_valid = false; diff --git a/scene/animation/animation_tree.h b/scene/animation/animation_tree.h index d558170f23..8fe01fac8f 100644 --- a/scene/animation/animation_tree.h +++ b/scene/animation/animation_tree.h @@ -52,7 +52,6 @@ public: }; struct Input { - String name; }; @@ -63,7 +62,6 @@ public: friend class AnimationTree; struct AnimationState { - Ref<Animation> animation; float time; float delta; @@ -73,7 +71,6 @@ public: }; struct State { - int track_count; HashMap<NodePath, int> track_map; List<AnimationState> animation_states; @@ -174,7 +171,6 @@ public: private: struct TrackCache { - bool root_motion; uint64_t setup_pass; uint64_t process_pass; @@ -209,19 +205,16 @@ private: }; struct TrackCacheValue : public TrackCache { - Variant value; Vector<StringName> subpath; TrackCacheValue() { type = Animation::TYPE_VALUE; } }; struct TrackCacheMethod : public TrackCache { - TrackCacheMethod() { type = Animation::TYPE_METHOD; } }; struct TrackCacheBezier : public TrackCache { - float value; Vector<StringName> subpath; TrackCacheBezier() { @@ -231,7 +224,6 @@ private: }; struct TrackCacheAudio : public TrackCache { - bool playing; float start; float len; @@ -245,7 +237,6 @@ private: }; struct TrackCacheAnimation : public TrackCache { - bool playing; TrackCacheAnimation() { diff --git a/scene/animation/root_motion_view.cpp b/scene/animation/root_motion_view.cpp index f993127b07..bbfec588f4 100644 --- a/scene/animation/root_motion_view.cpp +++ b/scene/animation/root_motion_view.cpp @@ -76,9 +76,7 @@ bool RootMotionView::get_zero_y() const { } void RootMotionView::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - RS::get_singleton()->immediate_set_material(immediate, StandardMaterial3D::get_material_rid_for_2d(false, true, false, false, false)); first = true; } @@ -87,7 +85,6 @@ void RootMotionView::_notification(int p_what) { Transform transform; if (has_node(path)) { - Node *node = get_node(path); AnimationTree *tree = Object::cast_to<AnimationTree>(node); @@ -129,7 +126,6 @@ void RootMotionView::_notification(int p_what) { RS::get_singleton()->immediate_begin(immediate, RS::PRIMITIVE_LINES); for (int i = -cells_in_radius; i < cells_in_radius; i++) { for (int j = -cells_in_radius; j < cells_in_radius; j++) { - Vector3 from(i * cell_size, 0, j * cell_size); Vector3 from_i((i + 1) * cell_size, 0, j * cell_size); Vector3 from_j(i * cell_size, 0, (j + 1) * cell_size); @@ -161,7 +157,6 @@ void RootMotionView::_notification(int p_what) { } AABB RootMotionView::get_aabb() const { - return AABB(Vector3(-radius, 0, -radius), Vector3(radius * 2, 0.001, radius * 2)); } Vector<Face3> RootMotionView::get_faces(uint32_t p_usage_flags) const { @@ -169,7 +164,6 @@ Vector<Face3> RootMotionView::get_faces(uint32_t p_usage_flags) const { } void RootMotionView::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_animation_path", "path"), &RootMotionView::set_animation_path); ClassDB::bind_method(D_METHOD("get_animation_path"), &RootMotionView::get_animation_path); diff --git a/scene/animation/tween.cpp b/scene/animation/tween.cpp index b826907a3a..d94cbfa08c 100644 --- a/scene/animation/tween.cpp +++ b/scene/animation/tween.cpp @@ -33,7 +33,6 @@ #include "core/method_bind_ext.gen.inc" void Tween::_add_pending_command(StringName p_key, const Variant &p_arg1, const Variant &p_arg2, const Variant &p_arg3, const Variant &p_arg4, const Variant &p_arg5, const Variant &p_arg6, const Variant &p_arg7, const Variant &p_arg8, const Variant &p_arg9, const Variant &p_arg10) { - // Add a new pending command and reference it pending_commands.push_back(PendingCommand()); PendingCommand &cmd = pending_commands.back()->get(); @@ -90,10 +89,8 @@ void Tween::_add_pending_command(StringName p_key, const Variant &p_arg1, const } void Tween::_process_pending_commands() { - // For each pending command... for (List<PendingCommand>::Element *E = pending_commands.front(); E; E = E->next()) { - // Get the command PendingCommand &cmd = E->get(); Callable::CallError err; @@ -121,7 +118,6 @@ void Tween::_process_pending_commands() { } bool Tween::_set(const StringName &p_name, const Variant &p_value) { - // Set the correct attribute based on the given name String name = p_name; if (name == "playback/speed" || name == "speed") { // Backwards compatibility @@ -140,7 +136,6 @@ bool Tween::_set(const StringName &p_name, const Variant &p_value) { } bool Tween::_get(const StringName &p_name, Variant &r_ret) const { - // Get the correct attribute based on the given name String name = p_name; if (name == "playback/speed") { // Backwards compatibility @@ -168,7 +163,6 @@ void Tween::_get_property_list(List<PropertyInfo> *p_list) const { void Tween::_notification(int p_what) { // What notification did we receive? switch (p_what) { - case NOTIFICATION_ENTER_TREE: { // Are we not already active? if (!is_active()) { @@ -289,7 +283,6 @@ void Tween::_bind_methods() { } Variant Tween::_get_initial_val(const InterpolateData &p_data) const { - // What type of data are we interpolating? switch (p_data.type) { case INTER_PROPERTY: @@ -366,7 +359,6 @@ Variant Tween::_get_final_val(const InterpolateData &p_data) const { } Variant &Tween::_get_delta_val(InterpolateData &p_data) { - // What kind of data are we interpolating? switch (p_data.type) { case INTER_PROPERTY: @@ -438,7 +430,6 @@ Variant Tween::_run_equation(InterpolateData &p_data) { // What type of data are we interpolating? switch (initial_val.get_type()) { - case Variant::BOOL: // Run the boolean specific equation (checking if it is at least 0.5) result = (_run_equation(p_data.trans_type, p_data.ease_type, p_data.elapsed - p_data.delay, initial_val, delta_val, p_data.duration)) >= 0.5; @@ -613,14 +604,12 @@ Variant Tween::_run_equation(InterpolateData &p_data) { } bool Tween::_apply_tween_value(InterpolateData &p_data, Variant &value) { - // Get the object we want to apply the new value to Object *object = ObjectDB::get_instance(p_data.id); ERR_FAIL_COND_V(object == nullptr, false); // What kind of data are we mutating? switch (p_data.type) { - case INTER_PROPERTY: case FOLLOW_PROPERTY: case TARGETING_PROPERTY: { @@ -696,7 +685,6 @@ void Tween::_tween_process(float p_delta) { // For each tween we wish to interpolate... for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - // Get the data from it InterpolateData &data = E->get(); @@ -852,7 +840,6 @@ float Tween::get_speed_scale() const { } void Tween::start() { - ERR_FAIL_COND_MSG(!is_inside_tree(), "Tween was not added to the SceneTree!"); // Are there any pending updates? @@ -910,7 +897,6 @@ void Tween::stop(Object *p_object, StringName p_key) { // Find the tween that has the given target object and string key pending_update++; for (List<InterpolateData>::Element *E = interpolates.front(); E; E = E->next()) { - // Get the object the tween is targeting InterpolateData &data = E->get(); Object *object = ObjectDB::get_instance(data.id); @@ -1123,7 +1109,6 @@ real_t Tween::get_runtime() const { } bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final_val, Variant &p_delta_val) { - // Get the initial, final, and delta values const Variant &initial_val = p_initial_val; const Variant &final_val = p_final_val; @@ -1131,7 +1116,6 @@ bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final // What kind of data are we interpolating? switch (initial_val.get_type()) { - case Variant::BOOL: // We'll treat booleans just like integers case Variant::INT: @@ -1263,7 +1247,6 @@ bool Tween::_calc_delta_val(const Variant &p_initial_val, const Variant &p_final } void Tween::_build_interpolation(InterpolateType p_interpolation_type, Object *p_object, NodePath *p_property, StringName *p_method, Variant p_initial_val, Variant p_final_val, real_t p_duration, TransitionType p_trans_type, EaseType p_ease_type, real_t p_delay) { - // TODO: Add initialization+implementation for remaining interpolation types // TODO: Fix this method's organization to take advantage of the type diff --git a/scene/animation/tween.h b/scene/animation/tween.h index f74df50f68..668870c526 100644 --- a/scene/animation/tween.h +++ b/scene/animation/tween.h @@ -34,7 +34,6 @@ #include "scene/main/node.h" class Tween : public Node { - GDCLASS(Tween, Node); public: diff --git a/scene/audio/audio_stream_player.cpp b/scene/audio/audio_stream_player.cpp index f612944a62..6cd4914519 100644 --- a/scene/audio/audio_stream_player.cpp +++ b/scene/audio/audio_stream_player.cpp @@ -33,7 +33,6 @@ #include "core/engine.h" void AudioStreamPlayer::_mix_to_bus(const AudioFrame *p_frames, int p_amount) { - int bus_index = AudioServer::get_singleton()->thread_find_bus_index(bus); AudioFrame *targets[4] = { nullptr, nullptr, nullptr, nullptr }; @@ -66,7 +65,6 @@ void AudioStreamPlayer::_mix_to_bus(const AudioFrame *p_frames, int p_amount) { } void AudioStreamPlayer::_mix_internal(bool p_fadeout) { - //get data AudioFrame *buffer = mix_buffer.ptrw(); int buffer_size = mix_buffer.size(); @@ -95,7 +93,6 @@ void AudioStreamPlayer::_mix_internal(bool p_fadeout) { } void AudioStreamPlayer::_mix_audio() { - if (use_fadeout) { _mix_to_bus(fadeout_buffer.ptr(), fadeout_buffer.size()); use_fadeout = false; @@ -122,7 +119,6 @@ void AudioStreamPlayer::_mix_audio() { if (setseek >= 0.0 && !stop_has_priority) { if (stream_playback->is_playing()) { - //fade out to avoid pops _mix_internal(true); } @@ -138,9 +134,7 @@ void AudioStreamPlayer::_mix_audio() { } void AudioStreamPlayer::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { - AudioServer::get_singleton()->add_callback(_mix_audios, this); if (autoplay && !Engine::get_singleton()->is_editor_hint()) { play(); @@ -148,7 +142,6 @@ void AudioStreamPlayer::_notification(int p_what) { } if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - if (!active || (setseek < 0 && !stream_playback->is_playing())) { active = false; set_process_internal(false); @@ -157,7 +150,6 @@ void AudioStreamPlayer::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE) { - AudioServer::get_singleton()->remove_callback(_mix_audios, this); } @@ -174,7 +166,6 @@ void AudioStreamPlayer::_notification(int p_what) { } void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) { - AudioServer::get_singleton()->lock(); if (active && stream_playback.is_valid() && !stream_paused) { @@ -222,16 +213,13 @@ void AudioStreamPlayer::set_stream(Ref<AudioStream> p_stream) { } Ref<AudioStream> AudioStreamPlayer::get_stream() const { - return stream; } void AudioStreamPlayer::set_volume_db(float p_volume) { - volume_db = p_volume; } float AudioStreamPlayer::get_volume_db() const { - return volume_db; } @@ -244,7 +232,6 @@ float AudioStreamPlayer::get_pitch_scale() const { } void AudioStreamPlayer::play(float p_from_pos) { - if (stream_playback.is_valid()) { //mix_volume_db = volume_db; do not reset volume ramp here, can cause clicks setseek = p_from_pos; @@ -255,14 +242,12 @@ void AudioStreamPlayer::play(float p_from_pos) { } void AudioStreamPlayer::seek(float p_seconds) { - if (stream_playback.is_valid()) { setseek = p_seconds; } } void AudioStreamPlayer::stop() { - if (stream_playback.is_valid() && active) { setstop = true; stop_has_priority = true; @@ -270,7 +255,6 @@ void AudioStreamPlayer::stop() { } bool AudioStreamPlayer::is_playing() const { - if (stream_playback.is_valid()) { return active && !setstop; //&& stream_playback->is_playing(); } @@ -279,7 +263,6 @@ bool AudioStreamPlayer::is_playing() const { } float AudioStreamPlayer::get_playback_position() { - if (stream_playback.is_valid()) { return stream_playback->get_playback_position(); } @@ -288,14 +271,12 @@ float AudioStreamPlayer::get_playback_position() { } void AudioStreamPlayer::set_bus(const StringName &p_bus) { - //if audio is active, must lock this AudioServer::get_singleton()->lock(); bus = p_bus; AudioServer::get_singleton()->unlock(); } StringName AudioStreamPlayer::get_bus() const { - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (AudioServer::get_singleton()->get_bus_name(i) == bus) { return bus; @@ -305,38 +286,31 @@ StringName AudioStreamPlayer::get_bus() const { } void AudioStreamPlayer::set_autoplay(bool p_enable) { - autoplay = p_enable; } bool AudioStreamPlayer::is_autoplay_enabled() { - return autoplay; } void AudioStreamPlayer::set_mix_target(MixTarget p_target) { - mix_target = p_target; } AudioStreamPlayer::MixTarget AudioStreamPlayer::get_mix_target() const { - return mix_target; } void AudioStreamPlayer::_set_playing(bool p_enable) { - if (p_enable) play(); else stop(); } bool AudioStreamPlayer::_is_active() const { - return active; } void AudioStreamPlayer::set_stream_paused(bool p_pause) { - if (p_pause != stream_paused) { stream_paused = p_pause; stream_paused_fade = p_pause; @@ -344,14 +318,11 @@ void AudioStreamPlayer::set_stream_paused(bool p_pause) { } bool AudioStreamPlayer::get_stream_paused() const { - return stream_paused; } void AudioStreamPlayer::_validate_property(PropertyInfo &property) const { - if (property.name == "bus") { - String options; for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (i > 0) @@ -365,7 +336,6 @@ void AudioStreamPlayer::_validate_property(PropertyInfo &property) const { } void AudioStreamPlayer::_bus_layout_changed() { - _change_notify(); } @@ -374,7 +344,6 @@ Ref<AudioStreamPlayback> AudioStreamPlayer::get_stream_playback() { } void AudioStreamPlayer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_stream", "stream"), &AudioStreamPlayer::set_stream); ClassDB::bind_method(D_METHOD("get_stream"), &AudioStreamPlayer::get_stream); @@ -425,7 +394,6 @@ void AudioStreamPlayer::_bind_methods() { } AudioStreamPlayer::AudioStreamPlayer() { - mix_volume_db = 0; pitch_scale = 1.0; volume_db = 0; diff --git a/scene/audio/audio_stream_player.h b/scene/audio/audio_stream_player.h index 0f6d855d0e..6769f1bb48 100644 --- a/scene/audio/audio_stream_player.h +++ b/scene/audio/audio_stream_player.h @@ -35,7 +35,6 @@ #include "servers/audio/audio_stream.h" class AudioStreamPlayer : public Node { - GDCLASS(AudioStreamPlayer, Node); public: diff --git a/scene/debugger/scene_debugger.cpp b/scene/debugger/scene_debugger.cpp index 8cb63c4ab5..965dd2c8a3 100644 --- a/scene/debugger/scene_debugger.cpp +++ b/scene/debugger/scene_debugger.cpp @@ -202,7 +202,6 @@ void SceneDebugger::_send_object_id(ObjectID p_id, int p_max_size) { } void SceneDebugger::_set_object_property(ObjectID p_id, const String &p_property, const Variant &p_value) { - Object *obj = ObjectDB::get_instance(p_id); if (!obj) return; @@ -243,7 +242,6 @@ void SceneDebugger::remove_from_cache(const String &p_filename, Node *p_node) { Map<Node *, Map<ObjectID, Node *>>::Element *F = remove_list.find(p_node); if (F) { for (Map<ObjectID, Node *>::Element *G = F->get().front(); G; G = G->next()) { - memdelete(G->get()); } remove_list.erase(F); @@ -403,7 +401,6 @@ void SceneDebuggerObject::deserialize(const Array &p_arr) { Array props = p_arr[2]; for (int i = 0; i < props.size(); i++) { - CHECK_TYPE(props[i], ARRAY); Array prop = props[i]; @@ -496,17 +493,14 @@ void LiveEditor::_send_tree() { } void LiveEditor::_node_path_func(const NodePath &p_path, int p_id) { - live_edit_node_path_cache[p_id] = p_path; } void LiveEditor::_res_path_func(const String &p_path, int p_id) { - live_edit_resource_cache[p_id] = p_path; } void LiveEditor::_node_set_func(int p_id, const StringName &p_prop, const Variant &p_value) { - SceneTree *scene_tree = SceneTree::get_singleton(); if (!scene_tree) return; @@ -524,7 +518,6 @@ void LiveEditor::_node_set_func(int p_id, const StringName &p_prop, const Varian return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F; F = F->next()) { - Node *n = F->get(); if (base && !base->is_a_parent_of(n)) @@ -539,7 +532,6 @@ void LiveEditor::_node_set_func(int p_id, const StringName &p_prop, const Varian } void LiveEditor::_node_set_res_func(int p_id, const StringName &p_prop, const String &p_value) { - RES r = ResourceLoader::load(p_value); if (!r.is_valid()) return; @@ -562,7 +554,6 @@ void LiveEditor::_node_call_func(int p_id, const StringName &p_method, VARIANT_A return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F; F = F->next()) { - Node *n = F->get(); if (base && !base->is_a_parent_of(n)) @@ -576,7 +567,6 @@ void LiveEditor::_node_call_func(int p_id, const StringName &p_method, VARIANT_A } } void LiveEditor::_res_set_func(int p_id, const StringName &p_prop, const Variant &p_value) { - if (!live_edit_resource_cache.has(p_id)) return; @@ -592,14 +582,12 @@ void LiveEditor::_res_set_func(int p_id, const StringName &p_prop, const Variant r->set(p_prop, p_value); } void LiveEditor::_res_set_res_func(int p_id, const StringName &p_prop, const String &p_value) { - RES r = ResourceLoader::load(p_value); if (!r.is_valid()) return; _res_set_func(p_id, p_prop, r); } void LiveEditor::_res_call_func(int p_id, const StringName &p_method, VARIANT_ARG_DECLARE) { - if (!live_edit_resource_cache.has(p_id)) return; @@ -616,7 +604,6 @@ void LiveEditor::_res_call_func(int p_id, const StringName &p_method, VARIANT_AR } void LiveEditor::_root_func(const NodePath &p_scene_path, const String &p_scene_from) { - live_edit_root = p_scene_path; live_edit_scene = p_scene_from; } @@ -635,7 +622,6 @@ void LiveEditor::_create_node_func(const NodePath &p_parent, const String &p_typ return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F; F = F->next()) { - Node *n = F->get(); if (base && !base->is_a_parent_of(n)) @@ -673,7 +659,6 @@ void LiveEditor::_instance_node_func(const NodePath &p_parent, const String &p_p return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F; F = F->next()) { - Node *n = F->get(); if (base && !base->is_a_parent_of(n)) @@ -706,7 +691,6 @@ void LiveEditor::_remove_node_func(const NodePath &p_at) { return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F;) { - Set<Node *>::Element *N = F->next(); Node *n = F->get(); @@ -737,7 +721,6 @@ void LiveEditor::_remove_and_keep_node_func(const NodePath &p_at, ObjectID p_kee return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F;) { - Set<Node *>::Element *N = F->next(); Node *n = F->get(); @@ -771,7 +754,6 @@ void LiveEditor::_restore_node_func(ObjectID p_id, const NodePath &p_at, int p_a return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F;) { - Set<Node *>::Element *N = F->next(); Node *n = F->get(); @@ -817,7 +799,6 @@ void LiveEditor::_duplicate_node_func(const NodePath &p_at, const String &p_new_ return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F; F = F->next()) { - Node *n = F->get(); if (base && !base->is_a_parent_of(n)) @@ -850,7 +831,6 @@ void LiveEditor::_reparent_node_func(const NodePath &p_at, const NodePath &p_new return; //scene not editable for (Set<Node *>::Element *F = E->get().front(); F; F = F->next()) { - Node *n = F->get(); if (base && !base->is_a_parent_of(n)) diff --git a/scene/debugger/scene_debugger.h b/scene/debugger/scene_debugger.h index e8521d6a20..a2bafde039 100644 --- a/scene/debugger/scene_debugger.h +++ b/scene/debugger/scene_debugger.h @@ -39,7 +39,6 @@ class Script; class SceneDebugger { - public: static void initialize(); static void deinitialize(); @@ -59,7 +58,6 @@ public: #ifdef DEBUG_ENABLED class SceneDebuggerObject { - private: void _parse_script_properties(Script *p_script, ScriptInstance *p_instance); @@ -77,7 +75,6 @@ public: }; class SceneDebuggerTree { - public: struct RemoteNode { int child_count; @@ -104,7 +101,6 @@ public: }; class LiveEditor { - private: friend class SceneDebugger; Map<int, NodePath> live_edit_node_path_cache; diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp index 1cdc6f8057..79e1102f6b 100644 --- a/scene/gui/base_button.cpp +++ b/scene/gui/base_button.cpp @@ -35,7 +35,6 @@ #include "scene/scene_string_names.h" void BaseButton::_unpress_group() { - if (!button_group.is_valid()) return; @@ -52,7 +51,6 @@ void BaseButton::_unpress_group() { } void BaseButton::_gui_input(Ref<InputEvent> p_event) { - if (status.disabled) // no interaction with disabled button return; @@ -78,9 +76,7 @@ void BaseButton::_gui_input(Ref<InputEvent> p_event) { } void BaseButton::_notification(int p_what) { - if (p_what == NOTIFICATION_MOUSE_ENTER) { - status.hovering = true; update(); } @@ -90,7 +86,6 @@ void BaseButton::_notification(int p_what) { update(); } if (p_what == NOTIFICATION_DRAG_BEGIN || p_what == NOTIFICATION_SCROLL_BEGIN) { - if (status.press_attempt) { status.press_attempt = false; update(); @@ -98,13 +93,11 @@ void BaseButton::_notification(int p_what) { } if (p_what == NOTIFICATION_FOCUS_ENTER) { - status.hovering = true; update(); } if (p_what == NOTIFICATION_FOCUS_EXIT) { - if (status.press_attempt) { status.press_attempt = false; status.hovering = false; @@ -116,7 +109,6 @@ void BaseButton::_notification(int p_what) { } if (p_what == NOTIFICATION_EXIT_TREE || (p_what == NOTIFICATION_VISIBILITY_CHANGED && !is_visible_in_tree())) { - if (!toggle_mode) { status.pressed = false; } @@ -127,7 +119,6 @@ void BaseButton::_notification(int p_what) { } void BaseButton::_pressed() { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_pressed); } @@ -136,7 +127,6 @@ void BaseButton::_pressed() { } void BaseButton::_toggled(bool p_pressed) { - if (get_script_instance()) { get_script_instance()->call(SceneStringNames::get_singleton()->_toggled, p_pressed); } @@ -145,7 +135,6 @@ void BaseButton::_toggled(bool p_pressed) { } void BaseButton::on_action_event(Ref<InputEvent> p_event) { - if (p_event->is_pressed()) { status.press_attempt = true; status.pressing_inside = true; @@ -210,12 +199,10 @@ void BaseButton::set_disabled(bool p_disabled) { } bool BaseButton::is_disabled() const { - return status.disabled; } void BaseButton::set_pressed(bool p_pressed) { - if (!toggle_mode) return; if (status.pressed == p_pressed) @@ -232,22 +219,18 @@ void BaseButton::set_pressed(bool p_pressed) { } bool BaseButton::is_pressing() const { - return status.press_attempt; } bool BaseButton::is_pressed() const { - return toggle_mode ? status.pressed : status.press_attempt; } bool BaseButton::is_hovered() const { - return status.hovering; } BaseButton::DrawMode BaseButton::get_draw_mode() const { - if (status.disabled) { return DRAW_DISABLED; }; @@ -262,12 +245,10 @@ BaseButton::DrawMode BaseButton::get_draw_mode() const { bool pressing; if (status.press_attempt) { - pressing = (status.pressing_inside || keep_pressed_outside); if (status.pressed) pressing = !pressing; } else { - pressing = status.pressed; } @@ -281,47 +262,38 @@ BaseButton::DrawMode BaseButton::get_draw_mode() const { } void BaseButton::set_toggle_mode(bool p_on) { - toggle_mode = p_on; } bool BaseButton::is_toggle_mode() const { - return toggle_mode; } void BaseButton::set_shortcut_in_tooltip(bool p_on) { - shortcut_in_tooltip = p_on; } bool BaseButton::is_shortcut_in_tooltip_enabled() const { - return shortcut_in_tooltip; } void BaseButton::set_action_mode(ActionMode p_mode) { - action_mode = p_mode; } BaseButton::ActionMode BaseButton::get_action_mode() const { - return action_mode; } void BaseButton::set_button_mask(int p_mask) { - button_mask = p_mask; } int BaseButton::get_button_mask() const { - return button_mask; } void BaseButton::set_enabled_focus_mode(FocusMode p_mode) { - enabled_focus_mode = p_mode; if (!status.disabled) { set_focus_mode(p_mode); @@ -329,22 +301,18 @@ void BaseButton::set_enabled_focus_mode(FocusMode p_mode) { } Control::FocusMode BaseButton::get_enabled_focus_mode() const { - return enabled_focus_mode; } void BaseButton::set_keep_pressed_outside(bool p_on) { - keep_pressed_outside = p_on; } bool BaseButton::is_keep_pressed_outside() const { - return keep_pressed_outside; } void BaseButton::set_shortcut(const Ref<ShortCut> &p_shortcut) { - shortcut = p_shortcut; set_process_unhandled_input(shortcut.is_valid()); } @@ -354,15 +322,12 @@ Ref<ShortCut> BaseButton::get_shortcut() const { } void BaseButton::_unhandled_input(Ref<InputEvent> p_event) { - if (!is_disabled() && is_visible_in_tree() && !p_event->is_echo() && shortcut.is_valid() && shortcut->is_shortcut(p_event)) { - on_action_event(p_event); } } String BaseButton::get_tooltip(const Point2 &p_pos) const { - String tooltip = Control::get_tooltip(p_pos); if (shortcut_in_tooltip && shortcut.is_valid() && shortcut->is_valid()) { String text = shortcut->get_name() + " (" + shortcut->get_as_text() + ")"; @@ -375,7 +340,6 @@ String BaseButton::get_tooltip(const Point2 &p_pos) const { } void BaseButton::set_button_group(const Ref<ButtonGroup> &p_group) { - if (button_group.is_valid()) { button_group->buttons.erase(this); } @@ -390,12 +354,10 @@ void BaseButton::set_button_group(const Ref<ButtonGroup> &p_group) { } Ref<ButtonGroup> BaseButton::get_button_group() const { - return button_group; } void BaseButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &BaseButton::_gui_input); ClassDB::bind_method(D_METHOD("_unhandled_input"), &BaseButton::_unhandled_input); ClassDB::bind_method(D_METHOD("set_pressed", "pressed"), &BaseButton::set_pressed); @@ -452,7 +414,6 @@ void BaseButton::_bind_methods() { } BaseButton::BaseButton() { - toggle_mode = false; shortcut_in_tooltip = true; keep_pressed_outside = false; @@ -468,21 +429,18 @@ BaseButton::BaseButton() { } BaseButton::~BaseButton() { - if (button_group.is_valid()) { button_group->buttons.erase(this); } } void ButtonGroup::get_buttons(List<BaseButton *> *r_buttons) { - for (Set<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) { r_buttons->push_back(E->get()); } } Array ButtonGroup::_get_buttons() { - Array btns; for (Set<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) { btns.push_back(E->get()); @@ -492,7 +450,6 @@ Array ButtonGroup::_get_buttons() { } BaseButton *ButtonGroup::get_pressed_button() { - for (Set<BaseButton *>::Element *E = buttons.front(); E; E = E->next()) { if (E->get()->is_pressed()) return E->get(); @@ -502,12 +459,10 @@ BaseButton *ButtonGroup::get_pressed_button() { } void ButtonGroup::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_pressed_button"), &ButtonGroup::get_pressed_button); ClassDB::bind_method(D_METHOD("get_buttons"), &ButtonGroup::_get_buttons); } ButtonGroup::ButtonGroup() { - set_local_to_scene(true); } diff --git a/scene/gui/base_button.h b/scene/gui/base_button.h index 21757488a6..05a975e266 100644 --- a/scene/gui/base_button.h +++ b/scene/gui/base_button.h @@ -36,7 +36,6 @@ class ButtonGroup; class BaseButton : public Control { - GDCLASS(BaseButton, Control); public: @@ -55,7 +54,6 @@ private: ActionMode action_mode; struct Status { - bool pressed; bool hovering; bool press_attempt; @@ -136,7 +134,6 @@ VARIANT_ENUM_CAST(BaseButton::DrawMode) VARIANT_ENUM_CAST(BaseButton::ActionMode) class ButtonGroup : public Resource { - GDCLASS(ButtonGroup, Resource); friend class BaseButton; Set<BaseButton *> buttons; diff --git a/scene/gui/box_container.cpp b/scene/gui/box_container.cpp index 0da6e0fdfa..5252f3f2f2 100644 --- a/scene/gui/box_container.cpp +++ b/scene/gui/box_container.cpp @@ -33,14 +33,12 @@ #include "margin_container.h" struct _MinSizeCache { - int min_size; bool will_stretch; int final_size; }; void BoxContainer::_resort() { - /** First pass, determine minimum size AND amount of stretchable elements */ Size2i new_size = get_size(); @@ -105,7 +103,6 @@ void BoxContainer::_resort() { bool refit_successful = true; //assume refit-test will go well for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c || !c->is_visible_in_tree()) continue; @@ -158,7 +155,6 @@ void BoxContainer::_resort() { int idx = 0; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c || !c->is_visible_in_tree()) continue; @@ -187,10 +183,8 @@ void BoxContainer::_resort() { Rect2 rect; if (vertical) { - rect = Rect2(0, from, new_size.width, size); } else { - rect = Rect2(from, 0, size, new_size.height); } @@ -202,7 +196,6 @@ void BoxContainer::_resort() { } Size2 BoxContainer::get_minimum_size() const { - /* Calculate MINIMUM SIZE */ Size2i minimum; @@ -247,15 +240,11 @@ Size2 BoxContainer::get_minimum_size() const { } void BoxContainer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_SORT_CHILDREN: { - _resort(); } break; case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); } break; } @@ -271,7 +260,6 @@ BoxContainer::AlignMode BoxContainer::get_alignment() const { } void BoxContainer::add_spacer(bool p_begin) { - Control *c = memnew(Control); c->set_mouse_filter(MOUSE_FILTER_PASS); //allow spacer to pass mouse events @@ -286,13 +274,11 @@ void BoxContainer::add_spacer(bool p_begin) { } BoxContainer::BoxContainer(bool p_vertical) { - vertical = p_vertical; align = ALIGN_BEGIN; } void BoxContainer::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_spacer", "begin"), &BoxContainer::add_spacer); ClassDB::bind_method(D_METHOD("get_alignment"), &BoxContainer::get_alignment); ClassDB::bind_method(D_METHOD("set_alignment", "alignment"), &BoxContainer::set_alignment); @@ -305,7 +291,6 @@ void BoxContainer::_bind_methods() { } MarginContainer *VBoxContainer::add_margin_child(const String &p_label, Control *p_control, bool p_expand) { - Label *l = memnew(Label); l->set_text(p_label); add_child(l); diff --git a/scene/gui/box_container.h b/scene/gui/box_container.h index 0d7deda364..cc6f6349df 100644 --- a/scene/gui/box_container.h +++ b/scene/gui/box_container.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" class BoxContainer : public Container { - GDCLASS(BoxContainer, Container); public: @@ -67,7 +66,6 @@ public: }; class HBoxContainer : public BoxContainer { - GDCLASS(HBoxContainer, BoxContainer); public: @@ -77,7 +75,6 @@ public: class MarginContainer; class VBoxContainer : public BoxContainer { - GDCLASS(VBoxContainer, BoxContainer); public: diff --git a/scene/gui/button.cpp b/scene/gui/button.cpp index 1f8487c173..cf1ff059bf 100644 --- a/scene/gui/button.cpp +++ b/scene/gui/button.cpp @@ -34,7 +34,6 @@ #include "servers/rendering_server.h" Size2 Button::get_minimum_size() const { - Size2 minsize = get_theme_font("font")->get_string_size(xl_text); if (clip_text) minsize.width = 0; @@ -47,7 +46,6 @@ Size2 Button::get_minimum_size() const { _icon = icon; if (!_icon.is_null()) { - minsize.height = MAX(minsize.height, _icon->get_height()); minsize.width += _icon->get_width(); if (xl_text != "") @@ -59,21 +57,17 @@ Size2 Button::get_minimum_size() const { } void Button::_set_internal_margin(Margin p_margin, float p_value) { - _internal_margin[p_margin] = p_value; } void Button::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_TRANSLATION_CHANGED: { - xl_text = tr(text); minimum_size_changed(); update(); } break; case NOTIFICATION_DRAW: { - RID ci = get_canvas_item(); Size2 size = get_size(); Color color; @@ -83,7 +77,6 @@ void Button::_notification(int p_what) { switch (get_draw_mode()) { case DRAW_NORMAL: { - style = get_theme_stylebox("normal"); if (!flat) style->draw(ci, Rect2(Point2(0, 0), size)); @@ -92,7 +85,6 @@ void Button::_notification(int p_what) { color_icon = get_theme_color("icon_color_normal"); } break; case DRAW_HOVER_PRESSED: { - if (has_theme_stylebox("hover_pressed") && has_theme_stylebox_override("hover_pressed")) { style = get_theme_stylebox("hover_pressed"); if (!flat) @@ -109,7 +101,6 @@ void Button::_notification(int p_what) { [[fallthrough]]; } case DRAW_PRESSED: { - style = get_theme_stylebox("pressed"); if (!flat) style->draw(ci, Rect2(Point2(0, 0), size)); @@ -122,7 +113,6 @@ void Button::_notification(int p_what) { } break; case DRAW_HOVER: { - style = get_theme_stylebox("hover"); if (!flat) style->draw(ci, Rect2(Point2(0, 0), size)); @@ -132,7 +122,6 @@ void Button::_notification(int p_what) { } break; case DRAW_DISABLED: { - style = get_theme_stylebox("disabled"); if (!flat) style->draw(ci, Rect2(Point2(0, 0), size)); @@ -144,7 +133,6 @@ void Button::_notification(int p_what) { } if (has_focus()) { - Ref<StyleBox> style2 = get_theme_stylebox("focus"); style2->draw(ci, Rect2(Point2(), size)); } @@ -158,7 +146,6 @@ void Button::_notification(int p_what) { Rect2 icon_region = Rect2(); if (!_icon.is_null()) { - int valign = size.height - style->get_minimum_size().y; if (is_disabled()) { color_icon.a = 0.4; @@ -235,7 +222,6 @@ void Button::_notification(int p_what) { } void Button::set_text(const String &p_text) { - if (text == p_text) return; text = p_text; @@ -245,12 +231,10 @@ void Button::set_text(const String &p_text) { minimum_size_changed(); } String Button::get_text() const { - return text; } void Button::set_icon(const Ref<Texture2D> &p_icon) { - if (icon == p_icon) return; icon = p_icon; @@ -260,59 +244,49 @@ void Button::set_icon(const Ref<Texture2D> &p_icon) { } Ref<Texture2D> Button::get_icon() const { - return icon; } void Button::set_expand_icon(bool p_expand_icon) { - expand_icon = p_expand_icon; update(); minimum_size_changed(); } bool Button::is_expand_icon() const { - return expand_icon; } void Button::set_flat(bool p_flat) { - flat = p_flat; update(); _change_notify("flat"); } bool Button::is_flat() const { - return flat; } void Button::set_clip_text(bool p_clip_text) { - clip_text = p_clip_text; update(); minimum_size_changed(); } bool Button::get_clip_text() const { - return clip_text; } void Button::set_text_align(TextAlign p_align) { - align = p_align; update(); } Button::TextAlign Button::get_text_align() const { - return align; } void Button::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_text", "text"), &Button::set_text); ClassDB::bind_method(D_METHOD("get_text"), &Button::get_text); ClassDB::bind_method(D_METHOD("set_button_icon", "texture"), &Button::set_icon); @@ -339,7 +313,6 @@ void Button::_bind_methods() { } Button::Button(const String &p_text) { - flat = false; clip_text = false; expand_icon = false; diff --git a/scene/gui/button.h b/scene/gui/button.h index 3135b98578..e757badd3e 100644 --- a/scene/gui/button.h +++ b/scene/gui/button.h @@ -34,7 +34,6 @@ #include "scene/gui/base_button.h" class Button : public BaseButton { - GDCLASS(Button, BaseButton); public: diff --git a/scene/gui/center_container.cpp b/scene/gui/center_container.cpp index 64d6885bc8..ff2b5ea17e 100644 --- a/scene/gui/center_container.cpp +++ b/scene/gui/center_container.cpp @@ -31,12 +31,10 @@ #include "center_container.h" Size2 CenterContainer::get_minimum_size() const { - if (use_top_left) return Size2(); Size2 ms; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -53,7 +51,6 @@ Size2 CenterContainer::get_minimum_size() const { } void CenterContainer::set_use_top_left(bool p_enable) { - if (use_top_left == p_enable) { return; } @@ -65,17 +62,13 @@ void CenterContainer::set_use_top_left(bool p_enable) { } bool CenterContainer::is_using_top_left() const { - return use_top_left; } void CenterContainer::_notification(int p_what) { - if (p_what == NOTIFICATION_SORT_CHILDREN) { - Size2 size = get_size(); for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -90,7 +83,6 @@ void CenterContainer::_notification(int p_what) { } void CenterContainer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_use_top_left", "enable"), &CenterContainer::set_use_top_left); ClassDB::bind_method(D_METHOD("is_using_top_left"), &CenterContainer::is_using_top_left); @@ -98,6 +90,5 @@ void CenterContainer::_bind_methods() { } CenterContainer::CenterContainer() { - use_top_left = false; } diff --git a/scene/gui/center_container.h b/scene/gui/center_container.h index 98733f384d..ae9f87db16 100644 --- a/scene/gui/center_container.h +++ b/scene/gui/center_container.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" class CenterContainer : public Container { - GDCLASS(CenterContainer, Container); bool use_top_left; diff --git a/scene/gui/check_box.cpp b/scene/gui/check_box.cpp index 470450e3ed..8681b9bda7 100644 --- a/scene/gui/check_box.cpp +++ b/scene/gui/check_box.cpp @@ -51,7 +51,6 @@ Size2 CheckBox::get_icon_size() const { } Size2 CheckBox::get_minimum_size() const { - Size2 minsize = Button::get_minimum_size(); Size2 tex_size = get_icon_size(); minsize.width += tex_size.width; @@ -65,12 +64,9 @@ Size2 CheckBox::get_minimum_size() const { } void CheckBox::_notification(int p_what) { - if (p_what == NOTIFICATION_THEME_CHANGED) { - _set_internal_margin(MARGIN_LEFT, get_icon_size().width); } else if (p_what == NOTIFICATION_DRAW) { - RID ci = get_canvas_item(); Ref<Texture2D> on = Control::get_theme_icon(is_radio() ? "radio_checked" : "checked"); @@ -89,7 +85,6 @@ void CheckBox::_notification(int p_what) { } bool CheckBox::is_radio() { - return get_button_group().is_valid(); } diff --git a/scene/gui/check_box.h b/scene/gui/check_box.h index 7c8f8c11d6..58f7cce55e 100644 --- a/scene/gui/check_box.h +++ b/scene/gui/check_box.h @@ -36,7 +36,6 @@ @author Mariano Suligoy <marianognu.esyrpg@gmail.com> */ class CheckBox : public Button { - GDCLASS(CheckBox, Button); protected: diff --git a/scene/gui/check_button.cpp b/scene/gui/check_button.cpp index 96484424f8..041a28a0be 100644 --- a/scene/gui/check_button.cpp +++ b/scene/gui/check_button.cpp @@ -34,7 +34,6 @@ #include "servers/rendering_server.h" Size2 CheckButton::get_icon_size() const { - Ref<Texture2D> on = Control::get_theme_icon(is_disabled() ? "on_disabled" : "on"); Ref<Texture2D> off = Control::get_theme_icon(is_disabled() ? "off_disabled" : "off"); Size2 tex_size = Size2(0, 0); @@ -47,7 +46,6 @@ Size2 CheckButton::get_icon_size() const { } Size2 CheckButton::get_minimum_size() const { - Size2 minsize = Button::get_minimum_size(); Size2 tex_size = get_icon_size(); minsize.width += tex_size.width; @@ -60,12 +58,9 @@ Size2 CheckButton::get_minimum_size() const { } void CheckButton::_notification(int p_what) { - if (p_what == NOTIFICATION_THEME_CHANGED) { - _set_internal_margin(MARGIN_RIGHT, get_icon_size().width); } else if (p_what == NOTIFICATION_DRAW) { - RID ci = get_canvas_item(); Ref<Texture2D> on = Control::get_theme_icon(is_disabled() ? "on_disabled" : "on"); @@ -86,7 +81,6 @@ void CheckButton::_notification(int p_what) { } CheckButton::CheckButton() { - set_toggle_mode(true); set_text_align(ALIGN_LEFT); diff --git a/scene/gui/check_button.h b/scene/gui/check_button.h index 3599c26a4c..8bbad0b4b3 100644 --- a/scene/gui/check_button.h +++ b/scene/gui/check_button.h @@ -36,7 +36,6 @@ @author Juan Linietsky <reduzio@gmail.com> */ class CheckButton : public Button { - GDCLASS(CheckButton, Button); protected: diff --git a/scene/gui/color_picker.cpp b/scene/gui/color_picker.cpp index 63878a0b26..1730df6bb3 100644 --- a/scene/gui/color_picker.cpp +++ b/scene/gui/color_picker.cpp @@ -41,17 +41,14 @@ #include "scene/main/window.h" void ColorPicker::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_THEME_CHANGED: { - btn_pick->set_icon(get_theme_icon("screen_picker", "ColorPicker")); bt_add_preset->set_icon(get_theme_icon("add_preset")); _update_controls(); } break; case NOTIFICATION_ENTER_TREE: { - btn_pick->set_icon(get_theme_icon("screen_picker", "ColorPicker")); bt_add_preset->set_icon(get_theme_icon("add_preset")); @@ -68,18 +65,15 @@ void ColorPicker::_notification(int p_what) { #endif } break; case NOTIFICATION_PARENTED: { - for (int i = 0; i < 4; i++) set_margin((Margin)i, get_theme_constant("margin")); } break; case NOTIFICATION_VISIBILITY_CHANGED: { - Popup *p = Object::cast_to<Popup>(get_parent()); if (p) p->set_size(Size2(get_combined_minimum_size().width + get_theme_constant("margin") * 2, get_combined_minimum_size().height + get_theme_constant("margin") * 2)); } break; case NOTIFICATION_WM_CLOSE_REQUEST: { - if (screen != nullptr && screen->is_visible()) screen->hide(); } break; @@ -87,12 +81,10 @@ void ColorPicker::_notification(int p_what) { } void ColorPicker::set_focus_on_line_edit() { - c_text->call_deferred("grab_focus"); } void ColorPicker::_update_controls() { - const char *rgb[3] = { "R", "G", "B" }; const char *hsv[3] = { "H", "S", "V" }; @@ -127,7 +119,6 @@ void ColorPicker::_update_controls() { } void ColorPicker::_set_pick_color(const Color &p_color, bool p_update_sliders) { - color = p_color; if (color != last_hsv) { h = color.get_h(); @@ -143,12 +134,10 @@ void ColorPicker::_set_pick_color(const Color &p_color, bool p_update_sliders) { } void ColorPicker::set_pick_color(const Color &p_color) { - _set_pick_color(p_color, true); //because setters can't have more arguments } void ColorPicker::set_edit_alpha(bool p_show) { - edit_alpha = p_show; _update_controls(); @@ -160,12 +149,10 @@ void ColorPicker::set_edit_alpha(bool p_show) { } bool ColorPicker::is_editing_alpha() const { - return edit_alpha; } void ColorPicker::_value_changed(double) { - if (updating) return; @@ -185,7 +172,6 @@ void ColorPicker::_value_changed(double) { } void ColorPicker::_html_entered(const String &p_html) { - if (updating || text_is_constructor || !c_text->is_visible()) return; @@ -202,11 +188,9 @@ void ColorPicker::_html_entered(const String &p_html) { } void ColorPicker::_update_color(bool p_update_sliders) { - updating = true; if (p_update_sliders) { - if (hsv_mode_enabled) { for (int i = 0; i < 4; i++) { scroll[i]->set_step(1.0); @@ -266,7 +250,6 @@ void ColorPicker::_update_presets() { } void ColorPicker::_text_type_toggled() { - text_is_constructor = !text_is_constructor; if (text_is_constructor) { text_type->set_text(""); @@ -283,12 +266,10 @@ void ColorPicker::_text_type_toggled() { } Color ColorPicker::get_pick_color() const { - return color; } void ColorPicker::add_preset(const Color &p_color) { - if (presets.find(p_color)) { presets.move_to_back(presets.find(p_color)); } else { @@ -305,7 +286,6 @@ void ColorPicker::add_preset(const Color &p_color) { } void ColorPicker::erase_preset(const Color &p_color) { - if (presets.find(p_color)) { presets.erase(presets.find(p_color)); preset->update(); @@ -320,7 +300,6 @@ void ColorPicker::erase_preset(const Color &p_color) { } PackedColorArray ColorPicker::get_presets() const { - PackedColorArray arr; arr.resize(presets.size()); for (int i = 0; i < presets.size(); i++) { @@ -330,7 +309,6 @@ PackedColorArray ColorPicker::get_presets() const { } void ColorPicker::set_hsv_mode(bool p_enabled) { - if (hsv_mode_enabled == p_enabled || raw_mode_enabled) return; hsv_mode_enabled = p_enabled; @@ -345,12 +323,10 @@ void ColorPicker::set_hsv_mode(bool p_enabled) { } bool ColorPicker::is_hsv_mode() const { - return hsv_mode_enabled; } void ColorPicker::set_raw_mode(bool p_enabled) { - if (raw_mode_enabled == p_enabled || hsv_mode_enabled) return; raw_mode_enabled = p_enabled; @@ -365,7 +341,6 @@ void ColorPicker::set_raw_mode(bool p_enabled) { } bool ColorPicker::is_raw_mode() const { - return raw_mode_enabled; } @@ -458,7 +433,6 @@ void ColorPicker::_hsv_draw(int p_which, Control *c) { } void ColorPicker::_uv_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid()) { @@ -501,11 +475,9 @@ void ColorPicker::_uv_input(const Ref<InputEvent> &p_event) { } void ColorPicker::_w_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid()) { - if (bev->is_pressed() && bev->get_button_index() == BUTTON_LEFT) { changing_color = true; float y = CLAMP((float)bev->get_position().y, 0, w_edit->get_size().height); @@ -526,7 +498,6 @@ void ColorPicker::_w_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mev = p_event; if (mev.is_valid()) { - if (!changing_color) return; float y = CLAMP((float)mev->get_position().y, 0, w_edit->get_size().height); @@ -541,7 +512,6 @@ void ColorPicker::_w_input(const Ref<InputEvent> &p_event) { } void ColorPicker::_preset_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid()) { @@ -569,7 +539,6 @@ void ColorPicker::_preset_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mev = p_event; if (mev.is_valid()) { - int index = mev->get_position().x * presets.size(); if (preset->get_size().x != 0) { index /= preset->get_size().x; @@ -581,7 +550,6 @@ void ColorPicker::_preset_input(const Ref<InputEvent> &p_event) { } void ColorPicker::_screen_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> bev = p_event; if (bev.is_valid() && bev->get_button_index() == BUTTON_LEFT && !bev->is_pressed()) { emit_signal("color_changed", color); @@ -596,7 +564,6 @@ void ColorPicker::_screen_input(const Ref<InputEvent> &p_event) { Ref<Image> img = r->get_texture()->get_data(); if (img.is_valid() && !img->empty()) { - Vector2 ofs = mev->get_global_position() - r->get_visible_rect().get_position(); Color c = img->get_pixel(ofs.x, r->get_visible_rect().size.height - ofs.y); @@ -688,7 +655,6 @@ bool ColorPicker::are_presets_visible() const { } void ColorPicker::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_pick_color", "color"), &ColorPicker::set_pick_color); ClassDB::bind_method(D_METHOD("get_pick_color"), &ColorPicker::get_pick_color); ClassDB::bind_method(D_METHOD("set_hsv_mode"), &ColorPicker::set_hsv_mode); @@ -722,7 +688,6 @@ void ColorPicker::_bind_methods() { ColorPicker::ColorPicker() : BoxContainer(true) { - updating = true; edit_alpha = true; text_is_constructor = false; @@ -779,7 +744,6 @@ ColorPicker::ColorPicker() : vbr->set_h_size_flags(SIZE_EXPAND_FILL); for (int i = 0; i < 4; i++) { - HBoxContainer *hbc = memnew(HBoxContainer); labels[i] = memnew(Label()); @@ -826,13 +790,11 @@ ColorPicker::ColorPicker() : text_type->set_text("#"); text_type->set_tooltip(TTR("Switch between hexadecimal and code values.")); if (Engine::get_singleton()->is_editor_hint()) { - #ifdef TOOLS_ENABLED text_type->set_custom_minimum_size(Size2(28 * EDSCALE, 0)); // Adjust for the width of the "Script" icon. #endif text_type->connect("pressed", callable_mp(this, &ColorPicker::_text_type_toggled)); } else { - text_type->set_flat(true); text_type->set_mouse_filter(MOUSE_FILTER_IGNORE); } @@ -873,19 +835,16 @@ ColorPicker::ColorPicker() : ///////////////// void ColorPickerButton::_color_changed(const Color &p_color) { - color = p_color; update(); emit_signal("color_changed", color); } void ColorPickerButton::_modal_closed() { - emit_signal("popup_closed"); } void ColorPickerButton::pressed() { - _update_picker(); popup->set_as_minsize(); @@ -904,7 +863,6 @@ void ColorPickerButton::pressed() { if (i & 1) { cp_rect.position.x = get_screen_position().x; } else { - cp_rect.position.x = get_screen_position().x - MAX(0, (cp_rect.size.x - get_size().x)); } @@ -918,10 +876,8 @@ void ColorPickerButton::pressed() { } void ColorPickerButton::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_DRAW: { - const Ref<StyleBox> normal = get_theme_stylebox("normal"); const Rect2 r = Rect2(normal->get_offset(), get_size() - normal->get_minimum_size()); draw_texture_rect(Control::get_theme_icon("bg", "ColorPickerButton"), r, true); @@ -933,7 +889,6 @@ void ColorPickerButton::_notification(int p_what) { } } break; case NOTIFICATION_WM_CLOSE_REQUEST: { - if (popup) popup->hide(); } break; @@ -947,7 +902,6 @@ void ColorPickerButton::_notification(int p_what) { } void ColorPickerButton::set_pick_color(const Color &p_color) { - color = p_color; if (picker) { picker->set_pick_color(p_color); @@ -956,12 +910,10 @@ void ColorPickerButton::set_pick_color(const Color &p_color) { update(); } Color ColorPickerButton::get_pick_color() const { - return color; } void ColorPickerButton::set_edit_alpha(bool p_show) { - edit_alpha = p_show; if (picker) { picker->set_edit_alpha(p_show); @@ -969,18 +921,15 @@ void ColorPickerButton::set_edit_alpha(bool p_show) { } bool ColorPickerButton::is_editing_alpha() const { - return edit_alpha; } ColorPicker *ColorPickerButton::get_picker() { - _update_picker(); return picker; } PopupPanel *ColorPickerButton::get_popup() { - _update_picker(); return popup; } @@ -1004,7 +953,6 @@ void ColorPickerButton::_update_picker() { } void ColorPickerButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_pick_color", "color"), &ColorPickerButton::set_pick_color); ClassDB::bind_method(D_METHOD("get_pick_color"), &ColorPickerButton::get_pick_color); ClassDB::bind_method(D_METHOD("get_picker"), &ColorPickerButton::get_picker); @@ -1020,7 +968,6 @@ void ColorPickerButton::_bind_methods() { } ColorPickerButton::ColorPickerButton() { - // Initialization is now done deferred, // this improves performance in the inspector as the color picker // can be expensive to initialize. diff --git a/scene/gui/color_picker.h b/scene/gui/color_picker.h index dde2f37135..31ae92f4e4 100644 --- a/scene/gui/color_picker.h +++ b/scene/gui/color_picker.h @@ -44,7 +44,6 @@ #include "scene/gui/tool_button.h" class ColorPicker : public BoxContainer { - GDCLASS(ColorPicker, BoxContainer); private: @@ -139,7 +138,6 @@ public: }; class ColorPickerButton : public Button { - GDCLASS(ColorPickerButton, Button); PopupPanel *popup; diff --git a/scene/gui/color_rect.cpp b/scene/gui/color_rect.cpp index 61260e153c..627e589c02 100644 --- a/scene/gui/color_rect.cpp +++ b/scene/gui/color_rect.cpp @@ -31,25 +31,21 @@ #include "color_rect.h" void ColorRect::set_frame_color(const Color &p_color) { - color = p_color; update(); } Color ColorRect::get_frame_color() const { - return color; } void ColorRect::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { draw_rect(Rect2(Point2(), get_size()), color); } } void ColorRect::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_frame_color", "color"), &ColorRect::set_frame_color); ClassDB::bind_method(D_METHOD("get_frame_color"), &ColorRect::get_frame_color); @@ -57,6 +53,5 @@ void ColorRect::_bind_methods() { } ColorRect::ColorRect() { - color = Color(1, 1, 1); } diff --git a/scene/gui/container.cpp b/scene/gui/container.cpp index 41f33bb719..5bde293648 100644 --- a/scene/gui/container.cpp +++ b/scene/gui/container.cpp @@ -33,7 +33,6 @@ #include "scene/scene_string_names.h" void Container::_child_minsize_changed() { - //Size2 ms = get_combined_minimum_size(); //if (ms.width > get_size().width || ms.height > get_size().height) { minimum_size_changed(); @@ -41,7 +40,6 @@ void Container::_child_minsize_changed() { } void Container::add_child_notify(Node *p_child) { - Control::add_child_notify(p_child); Control *control = Object::cast_to<Control>(p_child); @@ -57,7 +55,6 @@ void Container::add_child_notify(Node *p_child) { } void Container::move_child_notify(Node *p_child) { - Control::move_child_notify(p_child); if (!Object::cast_to<Control>(p_child)) @@ -68,7 +65,6 @@ void Container::move_child_notify(Node *p_child) { } void Container::remove_child_notify(Node *p_child) { - Control::remove_child_notify(p_child); Control *control = Object::cast_to<Control>(p_child); @@ -84,7 +80,6 @@ void Container::remove_child_notify(Node *p_child) { } void Container::_sort_children() { - if (!is_inside_tree()) return; @@ -94,7 +89,6 @@ void Container::_sort_children() { } void Container::fit_child_in_rect(Control *p_child, const Rect2 &p_rect) { - ERR_FAIL_COND(!p_child); ERR_FAIL_COND(p_child->get_parent() != this); @@ -133,7 +127,6 @@ void Container::fit_child_in_rect(Control *p_child, const Rect2 &p_rect) { } void Container::queue_sort() { - if (!is_inside_tree()) return; @@ -145,23 +138,18 @@ void Container::queue_sort() { } void Container::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { pending_sort = false; queue_sort(); } break; case NOTIFICATION_RESIZED: { - queue_sort(); } break; case NOTIFICATION_THEME_CHANGED: { - queue_sort(); } break; case NOTIFICATION_VISIBILITY_CHANGED: { - if (is_visible_in_tree()) { queue_sort(); } @@ -170,7 +158,6 @@ void Container::_notification(int p_what) { } String Container::get_configuration_warning() const { - String warning = Control::get_configuration_warning(); if (get_class() == "Container" && get_script().is_null()) { @@ -183,7 +170,6 @@ String Container::get_configuration_warning() const { } void Container::_bind_methods() { - ClassDB::bind_method(D_METHOD("_sort_children"), &Container::_sort_children); ClassDB::bind_method(D_METHOD("queue_sort"), &Container::queue_sort); @@ -194,7 +180,6 @@ void Container::_bind_methods() { } Container::Container() { - pending_sort = false; // All containers should let mouse events pass by default. set_mouse_filter(MOUSE_FILTER_PASS); diff --git a/scene/gui/container.h b/scene/gui/container.h index 0b736d9790..c8db5ee28f 100644 --- a/scene/gui/container.h +++ b/scene/gui/container.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class Container : public Control { - GDCLASS(Container, Control); bool pending_sort; diff --git a/scene/gui/control.cpp b/scene/gui/control.cpp index b710ba4803..3dbdd4dfab 100644 --- a/scene/gui/control.cpp +++ b/scene/gui/control.cpp @@ -49,7 +49,6 @@ #ifdef TOOLS_ENABLED Dictionary Control::_edit_get_state() const { - Dictionary s; s["rotation"] = get_rotation(); s["scale"] = get_scale(); @@ -70,7 +69,6 @@ Dictionary Control::_edit_get_state() const { } void Control::_edit_set_state(const Dictionary &p_state) { - Dictionary state = p_state; set_rotation(state["rotation"]); @@ -162,7 +160,6 @@ Size2 Control::_edit_get_minimum_size() const { #endif void Control::set_custom_minimum_size(const Size2 &p_custom) { - if (p_custom == data.custom_minimum_size) return; data.custom_minimum_size = p_custom; @@ -170,12 +167,10 @@ void Control::set_custom_minimum_size(const Size2 &p_custom) { } Size2 Control::get_custom_minimum_size() const { - return data.custom_minimum_size; } void Control::_update_minimum_size_cache() { - Size2 minsize = get_minimum_size(); minsize.x = MAX(minsize.x, data.custom_minimum_size.x); minsize.y = MAX(minsize.y, data.custom_minimum_size.y); @@ -192,7 +187,6 @@ void Control::_update_minimum_size_cache() { } Size2 Control::get_combined_minimum_size() const { - if (!data.minimum_size_valid) { const_cast<Control *>(this)->_update_minimum_size_cache(); } @@ -200,7 +194,6 @@ Size2 Control::get_combined_minimum_size() const { } Transform2D Control::_get_internal_transform() const { - Transform2D rot_scale; rot_scale.set_rotation_and_scale(data.rotation, data.scale); Transform2D offset; @@ -210,14 +203,12 @@ Transform2D Control::_get_internal_transform() const { } bool Control::_set(const StringName &p_name, const Variant &p_value) { - String name = p_name; if (!name.begins_with("custom")) { return false; } if (p_value.get_type() == Variant::NIL) { - if (name.begins_with("custom_icons/")) { String dname = name.get_slicec('/', 1); if (data.icon_override.has(dname)) { @@ -283,7 +274,6 @@ bool Control::_set(const StringName &p_name, const Variant &p_value) { } void Control::_update_minimum_size() { - if (!is_inside_tree()) return; @@ -302,7 +292,6 @@ void Control::_update_minimum_size() { } bool Control::_get(const StringName &p_name, Variant &r_ret) const { - String sname = p_name; if (!sname.begins_with("custom")) { @@ -338,7 +327,6 @@ bool Control::_get(const StringName &p_name, Variant &r_ret) const { return true; } void Control::_get_property_list(List<PropertyInfo> *p_list) const { - Ref<Theme> theme = Theme::get_default(); /* Using the default theme since the properties below are meant for editor only if (data.theme.is_valid()) { @@ -353,7 +341,6 @@ void Control::_get_property_list(List<PropertyInfo> *p_list) const { List<StringName> names; theme->get_icon_list(get_class_name(), &names); for (List<StringName>::Element *E = names.front(); E; E = E->next()) { - uint32_t hint = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CHECKABLE; if (data.icon_override.has(E->get())) hint |= PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_CHECKED; @@ -365,7 +352,6 @@ void Control::_get_property_list(List<PropertyInfo> *p_list) const { List<StringName> names; theme->get_shader_list(get_class_name(), &names); for (List<StringName>::Element *E = names.front(); E; E = E->next()) { - uint32_t hint = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CHECKABLE; if (data.shader_override.has(E->get())) hint |= PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_CHECKED; @@ -377,7 +363,6 @@ void Control::_get_property_list(List<PropertyInfo> *p_list) const { List<StringName> names; theme->get_stylebox_list(get_class_name(), &names); for (List<StringName>::Element *E = names.front(); E; E = E->next()) { - uint32_t hint = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CHECKABLE; if (data.style_override.has(E->get())) hint |= PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_CHECKED; @@ -389,7 +374,6 @@ void Control::_get_property_list(List<PropertyInfo> *p_list) const { List<StringName> names; theme->get_font_list(get_class_name(), &names); for (List<StringName>::Element *E = names.front(); E; E = E->next()) { - uint32_t hint = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CHECKABLE; if (data.font_override.has(E->get())) hint |= PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_CHECKED; @@ -401,7 +385,6 @@ void Control::_get_property_list(List<PropertyInfo> *p_list) const { List<StringName> names; theme->get_color_list(get_class_name(), &names); for (List<StringName>::Element *E = names.front(); E; E = E->next()) { - uint32_t hint = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CHECKABLE; if (data.color_override.has(E->get())) hint |= PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_CHECKED; @@ -413,7 +396,6 @@ void Control::_get_property_list(List<PropertyInfo> *p_list) const { List<StringName> names; theme->get_constant_list(get_class_name(), &names); for (List<StringName>::Element *E = names.front(); E; E = E->next()) { - uint32_t hint = PROPERTY_USAGE_EDITOR | PROPERTY_USAGE_CHECKABLE; if (data.constant_override.has(E->get())) hint |= PROPERTY_USAGE_STORAGE | PROPERTY_USAGE_CHECKED; @@ -424,19 +406,16 @@ void Control::_get_property_list(List<PropertyInfo> *p_list) const { } Control *Control::get_parent_control() const { - return data.parent; } void Control::_resize(const Size2 &p_size) { - _size_changed(); } //moved theme configuration here, so controls can set up even if still not inside active scene void Control::add_child_notify(Node *p_child) { - Control *child_c = Object::cast_to<Control>(p_child); if (child_c && child_c->data.theme.is_null() && (data.theme_owner || data.theme_owner_window)) { @@ -451,7 +430,6 @@ void Control::add_child_notify(Node *p_child) { } void Control::remove_child_notify(Node *p_child) { - Control *child_c = Object::cast_to<Control>(p_child); if (child_c && (child_c->data.theme_owner || child_c->data.theme_owner_window) && child_c->data.theme.is_null()) { @@ -466,7 +444,6 @@ void Control::remove_child_notify(Node *p_child) { } void Control::_update_canvas_item_transform() { - Transform2D xform = _get_internal_transform(); xform[2] += get_position(); @@ -474,24 +451,19 @@ void Control::_update_canvas_item_transform() { } void Control::_notification(int p_notification) { - switch (p_notification) { - case NOTIFICATION_ENTER_TREE: { - } break; case NOTIFICATION_POST_ENTER_TREE: { data.minimum_size_valid = false; _size_changed(); } break; case NOTIFICATION_EXIT_TREE: { - get_viewport()->_gui_remove_control(this); } break; case NOTIFICATION_ENTER_CANVAS: { - data.parent = Object::cast_to<Control>(get_parent()); Node *parent = this; //meh @@ -499,7 +471,6 @@ void Control::_notification(int p_notification) { bool subwindow = false; while (parent) { - parent = parent->get_parent(); if (!parent) @@ -516,7 +487,6 @@ void Control::_notification(int p_notification) { if (parent_control) { break; } else if (ci) { - } else { break; } @@ -536,7 +506,6 @@ void Control::_notification(int p_notification) { data.parent_canvas_item = get_parent_item(); if (data.parent_canvas_item) { - data.parent_canvas_item->connect("item_rect_changed", callable_mp(this, &Control::_size_changed)); } else { //connect viewport @@ -544,9 +513,7 @@ void Control::_notification(int p_notification) { } } break; case NOTIFICATION_EXIT_CANVAS: { - if (data.parent_canvas_item) { - data.parent_canvas_item->disconnect("item_rect_changed", callable_mp(this, &Control::_size_changed)); data.parent_canvas_item = nullptr; } else if (!is_set_as_toplevel()) { @@ -576,11 +543,9 @@ void Control::_notification(int p_notification) { } break; case NOTIFICATION_RESIZED: { - emit_signal(SceneStringNames::get_singleton()->resized); } break; case NOTIFICATION_DRAW: { - _update_canvas_item_transform(); RenderingServer::get_singleton()->canvas_item_set_custom_rect(get_canvas_item(), !data.disable_visibility_clip, Rect2(Point2(), get_size())); RenderingServer::get_singleton()->canvas_item_set_clip(get_canvas_item(), data.clip_contents); @@ -588,33 +553,26 @@ void Control::_notification(int p_notification) { } break; case NOTIFICATION_MOUSE_ENTER: { - emit_signal(SceneStringNames::get_singleton()->mouse_entered); } break; case NOTIFICATION_MOUSE_EXIT: { - emit_signal(SceneStringNames::get_singleton()->mouse_exited); } break; case NOTIFICATION_FOCUS_ENTER: { - emit_signal(SceneStringNames::get_singleton()->focus_entered); update(); } break; case NOTIFICATION_FOCUS_EXIT: { - emit_signal(SceneStringNames::get_singleton()->focus_exited); update(); } break; case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); update(); } break; case NOTIFICATION_VISIBILITY_CHANGED: { - if (!is_visible_in_tree()) { - if (get_viewport() != nullptr) get_viewport()->_gui_hid_control(this); @@ -630,14 +588,12 @@ void Control::_notification(int p_notification) { } bool Control::clips_input() const { - if (get_script_instance()) { return get_script_instance()->call(SceneStringNames::get_singleton()->_clips_input); } return false; } bool Control::has_point(const Point2 &p_point) const { - if (get_script_instance()) { Variant v = p_point; const Variant *p = &v; @@ -655,7 +611,6 @@ bool Control::has_point(const Point2 &p_point) const { } void Control::set_drag_forwarding(Control *p_target) { - if (p_target) data.drag_owner = p_target->get_instance_id(); else @@ -663,7 +618,6 @@ void Control::set_drag_forwarding(Control *p_target) { } Variant Control::get_drag_data(const Point2 &p_point) { - if (data.drag_owner.is_valid()) { Object *obj = ObjectDB::get_instance(data.drag_owner); if (obj) { @@ -685,7 +639,6 @@ Variant Control::get_drag_data(const Point2 &p_point) { } bool Control::can_drop_data(const Point2 &p_point, const Variant &p_data) const { - if (data.drag_owner.is_valid()) { Object *obj = ObjectDB::get_instance(data.drag_owner); if (obj) { @@ -706,7 +659,6 @@ bool Control::can_drop_data(const Point2 &p_point, const Variant &p_data) const return Variant(); } void Control::drop_data(const Point2 &p_point, const Variant &p_data) { - if (data.drag_owner.is_valid()) { Object *obj = ObjectDB::get_instance(data.drag_owner); if (obj) { @@ -727,7 +679,6 @@ void Control::drop_data(const Point2 &p_point, const Variant &p_data) { } void Control::force_drag(const Variant &p_data, Control *p_control) { - ERR_FAIL_COND(!is_inside_tree()); ERR_FAIL_COND(p_data.get_type() == Variant::NIL); @@ -735,17 +686,14 @@ void Control::force_drag(const Variant &p_data, Control *p_control) { } void Control::set_drag_preview(Control *p_control) { - ERR_FAIL_COND(!is_inside_tree()); ERR_FAIL_COND(!get_viewport()->gui_is_dragging()); get_viewport()->_gui_set_drag_preview(this, p_control); } Size2 Control::get_minimum_size() const { - ScriptInstance *si = const_cast<Control *>(this)->get_script_instance(); if (si) { - Callable::CallError ce; Variant s = si->call(SceneStringNames::get_singleton()->_get_minimum_size, nullptr, 0, ce); if (ce.error == Callable::CallError::CALL_OK) @@ -756,13 +704,11 @@ Size2 Control::get_minimum_size() const { template <class T> bool Control::_find_theme_item(Control *p_theme_owner, Window *p_theme_owner_window, T &r_ret, T (Theme::*get_func)(const StringName &, const StringName &) const, bool (Theme::*has_func)(const StringName &, const StringName &) const, const StringName &p_name, const StringName &p_type) { - // try with custom themes Control *theme_owner = p_theme_owner; Window *theme_owner_window = p_theme_owner_window; while (theme_owner || theme_owner_window) { - StringName class_name = p_type; while (class_name != StringName()) { @@ -792,7 +738,6 @@ bool Control::_find_theme_item(Control *p_theme_owner, Window *p_theme_owner_win theme_owner = parent_w->theme_owner; theme_owner_window = parent_w->theme_owner_window; } else { - theme_owner = nullptr; theme_owner_window = nullptr; } @@ -802,13 +747,11 @@ bool Control::_find_theme_item(Control *p_theme_owner, Window *p_theme_owner_win } bool Control::_has_theme_item(Control *p_theme_owner, Window *p_theme_owner_window, bool (Theme::*has_func)(const StringName &, const StringName &) const, const StringName &p_name, const StringName &p_type) { - // try with custom themes Control *theme_owner = p_theme_owner; Window *theme_owner_window = p_theme_owner_window; while (theme_owner || theme_owner_window) { - StringName class_name = p_type; while (class_name != StringName()) { @@ -836,7 +779,6 @@ bool Control::_has_theme_item(Control *p_theme_owner, Window *p_theme_owner_wind theme_owner = parent_w->theme_owner; theme_owner_window = parent_w->theme_owner_window; } else { - theme_owner = nullptr; theme_owner_window = nullptr; } @@ -846,9 +788,7 @@ bool Control::_has_theme_item(Control *p_theme_owner, Window *p_theme_owner_wind } Ref<Texture2D> Control::get_theme_icon(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { - const Ref<Texture2D> *tex = data.icon_override.getptr(p_name); if (tex) return *tex; @@ -860,7 +800,6 @@ Ref<Texture2D> Control::get_theme_icon(const StringName &p_name, const StringNam } Ref<Texture2D> Control::get_icons(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - Ref<Texture2D> icon; if (_find_theme_item(p_theme_owner, p_theme_owner_window, icon, &Theme::get_icon, &Theme::has_icon, p_name, p_type)) { @@ -877,9 +816,7 @@ Ref<Texture2D> Control::get_icons(Control *p_theme_owner, Window *p_theme_owner_ } Ref<Shader> Control::get_theme_shader(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { - const Ref<Shader> *sdr = data.shader_override.getptr(p_name); if (sdr) return *sdr; @@ -891,7 +828,6 @@ Ref<Shader> Control::get_theme_shader(const StringName &p_name, const StringName } Ref<Shader> Control::get_shaders(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - Ref<Shader> shader; if (_find_theme_item(p_theme_owner, p_theme_owner_window, shader, &Theme::get_shader, &Theme::has_shader, p_name, p_type)) { @@ -908,7 +844,6 @@ Ref<Shader> Control::get_shaders(Control *p_theme_owner, Window *p_theme_owner_w } Ref<StyleBox> Control::get_theme_stylebox(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { const Ref<StyleBox> *style = data.style_override.getptr(p_name); if (style) @@ -921,7 +856,6 @@ Ref<StyleBox> Control::get_theme_stylebox(const StringName &p_name, const String } Ref<StyleBox> Control::get_styleboxs(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - Ref<StyleBox> stylebox; if (_find_theme_item(p_theme_owner, p_theme_owner_window, stylebox, &Theme::get_stylebox, &Theme::has_stylebox, p_name, p_type)) { @@ -938,7 +872,6 @@ Ref<StyleBox> Control::get_styleboxs(Control *p_theme_owner, Window *p_theme_own } Ref<Font> Control::get_theme_font(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { const Ref<Font> *font = data.font_override.getptr(p_name); if (font) @@ -951,7 +884,6 @@ Ref<Font> Control::get_theme_font(const StringName &p_name, const StringName &p_ } Ref<Font> Control::get_fonts(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - Ref<Font> font; if (_find_theme_item(p_theme_owner, p_theme_owner_window, font, &Theme::get_font, &Theme::has_font, p_name, p_type)) { @@ -968,7 +900,6 @@ Ref<Font> Control::get_fonts(Control *p_theme_owner, Window *p_theme_owner_windo } Color Control::get_theme_color(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { const Color *color = data.color_override.getptr(p_name); if (color) @@ -981,7 +912,6 @@ Color Control::get_theme_color(const StringName &p_name, const StringName &p_typ } Color Control::get_colors(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - Color color; if (_find_theme_item(p_theme_owner, p_theme_owner_window, color, &Theme::get_color, &Theme::has_color, p_name, p_type)) { @@ -997,7 +927,6 @@ Color Control::get_colors(Control *p_theme_owner, Window *p_theme_owner_window, } int Control::get_theme_constant(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { const int *constant = data.constant_override.getptr(p_name); if (constant) @@ -1010,7 +939,6 @@ int Control::get_theme_constant(const StringName &p_name, const StringName &p_ty } int Control::get_constants(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - int constant; if (_find_theme_item(p_theme_owner, p_theme_owner_window, constant, &Theme::get_constant, &Theme::has_constant, p_name, p_type)) { @@ -1026,43 +954,36 @@ int Control::get_constants(Control *p_theme_owner, Window *p_theme_owner_window, } bool Control::has_theme_icon_override(const StringName &p_name) const { - const Ref<Texture2D> *tex = data.icon_override.getptr(p_name); return tex != nullptr; } bool Control::has_theme_shader_override(const StringName &p_name) const { - const Ref<Shader> *sdr = data.shader_override.getptr(p_name); return sdr != nullptr; } bool Control::has_theme_stylebox_override(const StringName &p_name) const { - const Ref<StyleBox> *style = data.style_override.getptr(p_name); return style != nullptr; } bool Control::has_theme_font_override(const StringName &p_name) const { - const Ref<Font> *font = data.font_override.getptr(p_name); return font != nullptr; } bool Control::has_theme_color_override(const StringName &p_name) const { - const Color *color = data.color_override.getptr(p_name); return color != nullptr; } bool Control::has_theme_constant_override(const StringName &p_name) const { - const int *constant = data.constant_override.getptr(p_name); return constant != nullptr; } bool Control::has_theme_icon(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { if (has_theme_icon_override(p_name)) return true; @@ -1074,7 +995,6 @@ bool Control::has_theme_icon(const StringName &p_name, const StringName &p_type) } bool Control::has_icons(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - if (_has_theme_item(p_theme_owner, p_theme_owner_window, &Theme::has_icon, p_name, p_type)) { return true; } @@ -1088,7 +1008,6 @@ bool Control::has_icons(Control *p_theme_owner, Window *p_theme_owner_window, co } bool Control::has_theme_shader(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { if (has_theme_shader_override(p_name)) return true; @@ -1099,7 +1018,6 @@ bool Control::has_theme_shader(const StringName &p_name, const StringName &p_typ return has_shaders(data.theme_owner, data.theme_owner_window, p_name, type); } bool Control::has_shaders(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - if (_has_theme_item(p_theme_owner, p_theme_owner_window, &Theme::has_shader, p_name, p_type)) { return true; } @@ -1113,7 +1031,6 @@ bool Control::has_shaders(Control *p_theme_owner, Window *p_theme_owner_window, } bool Control::has_theme_stylebox(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { if (has_theme_stylebox_override(p_name)) return true; @@ -1125,7 +1042,6 @@ bool Control::has_theme_stylebox(const StringName &p_name, const StringName &p_t } bool Control::has_styleboxs(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - if (_has_theme_item(p_theme_owner, p_theme_owner_window, &Theme::has_stylebox, p_name, p_type)) { return true; } @@ -1139,7 +1055,6 @@ bool Control::has_styleboxs(Control *p_theme_owner, Window *p_theme_owner_window } bool Control::has_theme_font(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { if (has_theme_font_override(p_name)) return true; @@ -1150,7 +1065,6 @@ bool Control::has_theme_font(const StringName &p_name, const StringName &p_type) return has_fonts(data.theme_owner, data.theme_owner_window, p_name, type); } bool Control::has_fonts(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - if (_has_theme_item(p_theme_owner, p_theme_owner_window, &Theme::has_font, p_name, p_type)) { return true; } @@ -1164,7 +1078,6 @@ bool Control::has_fonts(Control *p_theme_owner, Window *p_theme_owner_window, co } bool Control::has_theme_color(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { if (has_theme_color_override(p_name)) return true; @@ -1175,7 +1088,6 @@ bool Control::has_theme_color(const StringName &p_name, const StringName &p_type return has_colors(data.theme_owner, data.theme_owner_window, p_name, type); } bool Control::has_colors(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - if (_has_theme_item(p_theme_owner, p_theme_owner_window, &Theme::has_color, p_name, p_type)) { return true; } @@ -1189,7 +1101,6 @@ bool Control::has_colors(Control *p_theme_owner, Window *p_theme_owner_window, c } bool Control::has_theme_constant(const StringName &p_name, const StringName &p_type) const { - if (p_type == StringName() || p_type == get_class_name()) { if (has_theme_constant_override(p_name)) return true; @@ -1201,7 +1112,6 @@ bool Control::has_theme_constant(const StringName &p_name, const StringName &p_t } bool Control::has_constants(Control *p_theme_owner, Window *p_theme_owner_window, const StringName &p_name, const StringName &p_type) { - if (_has_theme_item(p_theme_owner, p_theme_owner_window, &Theme::has_constant, p_name, p_type)) { return true; } @@ -1229,18 +1139,15 @@ Rect2 Control::get_parent_anchorable_rect() const { } Size2 Control::get_parent_area_size() const { - return get_parent_anchorable_rect().size; } void Control::_size_changed() { - Rect2 parent_rect = get_parent_anchorable_rect(); float margin_pos[4]; for (int i = 0; i < 4; i++) { - float area = parent_rect.size[i & 1]; margin_pos[i] = data.margin[i] + (data.anchor[i] * area); } @@ -1293,7 +1200,6 @@ void Control::_size_changed() { } void Control::set_anchor(Margin p_margin, float p_anchor, bool p_keep_margin, bool p_push_opposite_anchor) { - ERR_FAIL_INDEX((int)p_margin, 4); Rect2 parent_rect = get_parent_anchorable_rect(); @@ -1334,13 +1240,11 @@ void Control::_set_anchor(Margin p_margin, float p_anchor) { } void Control::set_anchor_and_margin(Margin p_margin, float p_anchor, float p_pos, bool p_push_opposite_anchor) { - set_anchor(p_margin, p_anchor, false, p_push_opposite_anchor); set_margin(p_margin, p_pos); } void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margins) { - ERR_FAIL_INDEX((int)p_preset, 16); //Left @@ -1457,7 +1361,6 @@ void Control::set_anchors_preset(LayoutPreset p_preset, bool p_keep_margins) { } void Control::set_margins_preset(LayoutPreset p_preset, LayoutPresetMode p_resize_mode, int p_margin) { - ERR_FAIL_INDEX((int)p_preset, 16); ERR_FAIL_INDEX((int)p_resize_mode, 4); @@ -1594,14 +1497,12 @@ void Control::set_anchors_and_margins_preset(LayoutPreset p_preset, LayoutPreset } float Control::get_anchor(Margin p_margin) const { - ERR_FAIL_INDEX_V(int(p_margin), 4, 0.0); return data.anchor[p_margin]; } void Control::_change_notify_margins() { - // this avoids sending the whole object data again on a change _change_notify("margin_left"); _change_notify("margin_top"); @@ -1612,7 +1513,6 @@ void Control::_change_notify_margins() { } void Control::set_margin(Margin p_margin, float p_value) { - ERR_FAIL_INDEX((int)p_margin, 4); data.margin[p_margin] = p_value; @@ -1620,37 +1520,31 @@ void Control::set_margin(Margin p_margin, float p_value) { } void Control::set_begin(const Size2 &p_point) { - data.margin[0] = p_point.x; data.margin[1] = p_point.y; _size_changed(); } void Control::set_end(const Size2 &p_point) { - data.margin[2] = p_point.x; data.margin[3] = p_point.y; _size_changed(); } float Control::get_margin(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0); return data.margin[p_margin]; } Size2 Control::get_begin() const { - return Size2(data.margin[0], data.margin[1]); } Size2 Control::get_end() const { - return Size2(data.margin[2], data.margin[3]); } Point2 Control::get_global_position() const { - return get_global_transform().get_origin(); } @@ -1670,11 +1564,9 @@ void Control::_set_global_position(const Point2 &p_point) { } void Control::set_global_position(const Point2 &p_point, bool p_keep_margins) { - Transform2D inv; if (data.parent_canvas_item) { - inv = data.parent_canvas_item->get_global_transform().affine_inverse(); } @@ -1682,7 +1574,6 @@ void Control::set_global_position(const Point2 &p_point, bool p_keep_margins) { } void Control::_compute_anchors(Rect2 p_rect, const float p_margins[4], float (&r_anchors)[4]) { - Size2 parent_rect_size = get_parent_anchorable_rect().size; ERR_FAIL_COND(parent_rect_size.x == 0.0); ERR_FAIL_COND(parent_rect_size.y == 0.0); @@ -1694,7 +1585,6 @@ void Control::_compute_anchors(Rect2 p_rect, const float p_margins[4], float (&r } void Control::_compute_margins(Rect2 p_rect, const float p_anchors[4], float (&r_margins)[4]) { - Size2 parent_rect_size = get_parent_anchorable_rect().size; r_margins[0] = p_rect.position.x - (p_anchors[0] * parent_rect_size.x); r_margins[1] = p_rect.position.y - (p_anchors[1] * parent_rect_size.y); @@ -1724,7 +1614,6 @@ void Control::_set_size(const Size2 &p_size) { } void Control::set_size(const Size2 &p_size, bool p_keep_margins) { - Size2 new_size = p_size; Size2 min = get_combined_minimum_size(); if (new_size.x < min.x) @@ -1745,22 +1634,18 @@ void Control::set_size(const Size2 &p_size, bool p_keep_margins) { } Size2 Control::get_position() const { - return data.pos_cache; } Size2 Control::get_size() const { - return data.size_cache; } Rect2 Control::get_global_rect() const { - return Rect2(get_global_position(), get_size()); } Rect2 Control::get_screen_rect() const { - ERR_FAIL_COND_V(!is_inside_tree(), Rect2()); Rect2 r(get_global_position(), get_size()); @@ -1781,17 +1666,14 @@ Rect2 Control::get_window_rect() const { } Rect2 Control::get_rect() const { - return Rect2(get_position(), get_size()); } Rect2 Control::get_anchorable_rect() const { - return Rect2(Point2(), get_size()); } void Control::add_theme_icon_override(const StringName &p_name, const Ref<Texture2D> &p_icon) { - if (data.icon_override.has(p_name)) { data.icon_override[p_name]->disconnect("changed", callable_mp(this, &Control::_override_changed)); } @@ -1809,7 +1691,6 @@ void Control::add_theme_icon_override(const StringName &p_name, const Ref<Textur } void Control::add_theme_shader_override(const StringName &p_name, const Ref<Shader> &p_shader) { - if (data.shader_override.has(p_name)) { data.shader_override[p_name]->disconnect("changed", callable_mp(this, &Control::_override_changed)); } @@ -1826,7 +1707,6 @@ void Control::add_theme_shader_override(const StringName &p_name, const Ref<Shad notification(NOTIFICATION_THEME_CHANGED); } void Control::add_theme_style_override(const StringName &p_name, const Ref<StyleBox> &p_style) { - if (data.style_override.has(p_name)) { data.style_override[p_name]->disconnect("changed", callable_mp(this, &Control::_override_changed)); } @@ -1844,7 +1724,6 @@ void Control::add_theme_style_override(const StringName &p_name, const Ref<Style } void Control::add_theme_font_override(const StringName &p_name, const Ref<Font> &p_font) { - if (data.font_override.has(p_name)) { data.font_override[p_name]->disconnect("changed", callable_mp(this, &Control::_override_changed)); } @@ -1861,18 +1740,15 @@ void Control::add_theme_font_override(const StringName &p_name, const Ref<Font> notification(NOTIFICATION_THEME_CHANGED); } void Control::add_theme_color_override(const StringName &p_name, const Color &p_color) { - data.color_override[p_name] = p_color; notification(NOTIFICATION_THEME_CHANGED); } void Control::add_theme_constant_override(const StringName &p_name, int p_constant) { - data.constant_override[p_name] = p_constant; notification(NOTIFICATION_THEME_CHANGED); } void Control::set_focus_mode(FocusMode p_focus_mode) { - ERR_FAIL_INDEX((int)p_focus_mode, 3); if (is_inside_tree() && p_focus_mode == FOCUS_NONE && data.focus_mode != FOCUS_NONE && has_focus()) @@ -1882,21 +1758,18 @@ void Control::set_focus_mode(FocusMode p_focus_mode) { } static Control *_next_control(Control *p_from) { - if (p_from->is_set_as_toplevel()) return nullptr; // can't go above Control *parent = Object::cast_to<Control>(p_from->get_parent()); if (!parent) { - return nullptr; } int next = p_from->get_index(); ERR_FAIL_INDEX_V(next, parent->get_child_count(), nullptr); for (int i = (next + 1); i < parent->get_child_count(); i++) { - Control *c = Object::cast_to<Control>(parent->get_child(i)); if (!c || !c->is_visible_in_tree() || c->is_set_as_toplevel()) continue; @@ -1909,11 +1782,9 @@ static Control *_next_control(Control *p_from) { } Control *Control::find_next_valid_focus() const { - Control *from = const_cast<Control *>(this); while (true) { - // If the focus property is manually overwritten, attempt to use it. if (!data.focus_next.is_empty()) { @@ -1934,7 +1805,6 @@ Control *Control::find_next_valid_focus() const { Control *next_child = nullptr; for (int i = 0; i < from->get_child_count(); i++) { - Control *c = Object::cast_to<Control>(from->get_child(i)); if (!c || !c->is_visible_in_tree() || c->is_set_as_toplevel()) { continue; @@ -1945,20 +1815,16 @@ Control *Control::find_next_valid_focus() const { } if (!next_child) { - next_child = _next_control(from); if (!next_child) { //nothing else.. go up and find either window or subwindow next_child = const_cast<Control *>(this); while (next_child && !next_child->is_set_as_toplevel()) { - next_child = cast_to<Control>(next_child->get_parent()); } if (!next_child) { - next_child = const_cast<Control *>(this); while (next_child) { - if (next_child->data.RI) break; next_child = next_child->get_parent_control(); @@ -1981,10 +1847,8 @@ Control *Control::find_next_valid_focus() const { } static Control *_prev_control(Control *p_from) { - Control *child = nullptr; for (int i = p_from->get_child_count() - 1; i >= 0; i--) { - Control *c = Object::cast_to<Control>(p_from->get_child(i)); if (!c || !c->is_visible_in_tree() || c->is_set_as_toplevel()) continue; @@ -2004,7 +1868,6 @@ Control *Control::find_prev_valid_focus() const { Control *from = const_cast<Control *>(this); while (true) { - // If the focus property is manually overwritten, attempt to use it. if (!data.focus_prev.is_empty()) { @@ -2025,15 +1888,12 @@ Control *Control::find_prev_valid_focus() const { Control *prev_child = nullptr; if (from->is_set_as_toplevel() || !Object::cast_to<Control>(from->get_parent())) { - //find last of the children prev_child = _prev_control(from); } else { - for (int i = (from->get_index() - 1); i >= 0; i--) { - Control *c = Object::cast_to<Control>(from->get_parent()->get_child(i)); if (!c || !c->is_visible_in_tree() || c->is_set_as_toplevel()) { @@ -2045,10 +1905,8 @@ Control *Control::find_prev_valid_focus() const { } if (!prev_child) { - prev_child = Object::cast_to<Control>(from->get_parent()); } else { - prev_child = _prev_control(prev_child); } } @@ -2066,16 +1924,13 @@ Control *Control::find_prev_valid_focus() const { } Control::FocusMode Control::get_focus_mode() const { - return data.focus_mode; } bool Control::has_focus() const { - return is_inside_tree() && get_viewport()->_gui_control_has_focus(this); } void Control::grab_focus() { - ERR_FAIL_COND(!is_inside_tree()); if (data.focus_mode == FOCUS_NONE) { @@ -2087,7 +1942,6 @@ void Control::grab_focus() { } void Control::release_focus() { - ERR_FAIL_COND(!is_inside_tree()); if (!has_focus()) @@ -2098,12 +1952,10 @@ void Control::release_focus() { } bool Control::is_toplevel_control() const { - return is_inside_tree() && (!data.parent_canvas_item && !data.RI && is_set_as_toplevel()); } void Control::_propagate_theme_changed(Node *p_at, Control *p_owner, Window *p_owner_window, bool p_assign) { - Control *c = Object::cast_to<Control>(p_at); if (c && c != p_owner && c->data.theme.is_valid()) // has a theme, this can't be propagated @@ -2115,12 +1967,10 @@ void Control::_propagate_theme_changed(Node *p_at, Control *p_owner, Window *p_o return; for (int i = 0; i < p_at->get_child_count(); i++) { - CanvasItem *child = Object::cast_to<CanvasItem>(p_at->get_child(i)); if (child) { _propagate_theme_changed(child, p_owner, p_owner_window, p_assign); } else { - Window *window = Object::cast_to<Window>(p_at->get_child(i)); if (window) { _propagate_theme_changed(window, p_owner, p_owner_window, p_assign); @@ -2129,7 +1979,6 @@ void Control::_propagate_theme_changed(Node *p_at, Control *p_owner, Window *p_o } if (c) { - if (p_assign) { c->data.theme_owner = p_owner; c->data.theme_owner_window = p_owner_window; @@ -2139,7 +1988,6 @@ void Control::_propagate_theme_changed(Node *p_at, Control *p_owner, Window *p_o } if (w) { - if (p_assign) { w->theme_owner = p_owner; w->theme_owner_window = p_owner_window; @@ -2150,12 +1998,10 @@ void Control::_propagate_theme_changed(Node *p_at, Control *p_owner, Window *p_o } void Control::_theme_changed() { - _propagate_theme_changed(this, this, nullptr, false); } void Control::set_theme(const Ref<Theme> &p_theme) { - if (data.theme == p_theme) return; @@ -2165,12 +2011,10 @@ void Control::set_theme(const Ref<Theme> &p_theme) { data.theme = p_theme; if (!p_theme.is_null()) { - data.theme_owner = this; data.theme_owner_window = nullptr; _propagate_theme_changed(this, this, nullptr); } else { - Control *parent_c = Object::cast_to<Control>(get_parent()); if (parent_c && (parent_c->data.theme_owner || parent_c->data.theme_owner_window)) { @@ -2191,24 +2035,20 @@ void Control::set_theme(const Ref<Theme> &p_theme) { } void Control::accept_event() { - if (is_inside_tree()) get_viewport()->_gui_accept_event(); } Ref<Theme> Control::get_theme() const { - return data.theme; } void Control::set_tooltip(const String &p_tooltip) { - data.tooltip = p_tooltip; update_configuration_warning(); } String Control::get_tooltip(const Point2 &p_pos) const { - return data.tooltip; } Control *Control::make_custom_tooltip(const String &p_text) const { @@ -2219,75 +2059,62 @@ Control *Control::make_custom_tooltip(const String &p_text) const { } void Control::set_default_cursor_shape(CursorShape p_shape) { - ERR_FAIL_INDEX(int(p_shape), CURSOR_MAX); data.default_cursor = p_shape; } Control::CursorShape Control::get_default_cursor_shape() const { - return data.default_cursor; } Control::CursorShape Control::get_cursor_shape(const Point2 &p_pos) const { - return data.default_cursor; } Transform2D Control::get_transform() const { - Transform2D xform = _get_internal_transform(); xform[2] += get_position(); return xform; } String Control::_get_tooltip() const { - return data.tooltip; } void Control::set_focus_neighbour(Margin p_margin, const NodePath &p_neighbour) { - ERR_FAIL_INDEX((int)p_margin, 4); data.focus_neighbour[p_margin] = p_neighbour; } NodePath Control::get_focus_neighbour(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, NodePath()); return data.focus_neighbour[p_margin]; } void Control::set_focus_next(const NodePath &p_next) { - data.focus_next = p_next; } NodePath Control::get_focus_next() const { - return data.focus_next; } void Control::set_focus_previous(const NodePath &p_prev) { - data.focus_prev = p_prev; } NodePath Control::get_focus_previous() const { - return data.focus_prev; } #define MAX_NEIGHBOUR_SEARCH_COUNT 512 Control *Control::_get_focus_neighbour(Margin p_margin, int p_count) { - ERR_FAIL_INDEX_V((int)p_margin, 4, nullptr); if (p_count >= MAX_NEIGHBOUR_SEARCH_COUNT) return nullptr; if (!data.focus_neighbour[p_margin].is_empty()) { - Control *c = nullptr; Node *n = get_node(data.focus_neighbour[p_margin]); if (n) { @@ -2332,7 +2159,6 @@ Control *Control::_get_focus_neighbour(Margin p_margin, int p_count) { float maxd = -1e7; for (int i = 0; i < 4; i++) { - float d = vdir.dot(points[i]); if (d > maxd) maxd = d; @@ -2341,7 +2167,6 @@ Control *Control::_get_focus_neighbour(Margin p_margin, int p_count) { Node *base = this; while (base) { - Control *c = Object::cast_to<Control>(base); if (c) { if (c->data.RI) @@ -2359,14 +2184,12 @@ Control *Control::_get_focus_neighbour(Margin p_margin, int p_count) { } void Control::_window_find_focus_neighbour(const Vector2 &p_dir, Node *p_at, const Point2 *p_points, float p_min, float &r_closest_dist, Control **r_closest) { - if (Object::cast_to<Viewport>(p_at)) return; //bye Control *c = Object::cast_to<Control>(p_at); if (c && c != this && c->get_focus_mode() == FOCUS_ALL && c->is_visible_in_tree()) { - Point2 points[4]; Transform2D xform = c->get_global_transform(); @@ -2379,21 +2202,17 @@ void Control::_window_find_focus_neighbour(const Vector2 &p_dir, Node *p_at, con float min = 1e7; for (int i = 0; i < 4; i++) { - float d = p_dir.dot(points[i]); if (d < min) min = d; } if (min > (p_min - CMP_EPSILON)) { - for (int i = 0; i < 4; i++) { - Vector2 la = p_points[i]; Vector2 lb = p_points[(i + 1) % 4]; for (int j = 0; j < 4; j++) { - Vector2 fa = points[j]; Vector2 fb = points[(j + 1) % 4]; @@ -2410,7 +2229,6 @@ void Control::_window_find_focus_neighbour(const Vector2 &p_dir, Node *p_at, con } for (int i = 0; i < p_at->get_child_count(); i++) { - Node *child = p_at->get_child(i); Control *childc = Object::cast_to<Control>(child); if (childc && childc->data.RI) @@ -2420,7 +2238,6 @@ void Control::_window_find_focus_neighbour(const Vector2 &p_dir, Node *p_at, con } void Control::set_h_size_flags(int p_flags) { - if (data.h_size_flags == p_flags) return; data.h_size_flags = p_flags; @@ -2431,7 +2248,6 @@ int Control::get_h_size_flags() const { return data.h_size_flags; } void Control::set_v_size_flags(int p_flags) { - if (data.v_size_flags == p_flags) return; data.v_size_flags = p_flags; @@ -2439,7 +2255,6 @@ void Control::set_v_size_flags(int p_flags) { } void Control::set_stretch_ratio(float p_ratio) { - if (data.expand == p_ratio) return; @@ -2448,19 +2263,16 @@ void Control::set_stretch_ratio(float p_ratio) { } float Control::get_stretch_ratio() const { - return data.expand; } void Control::grab_click_focus() { - ERR_FAIL_COND(!is_inside_tree()); get_viewport()->_gui_grab_click_focus(this); } void Control::minimum_size_changed() { - if (!is_inside_tree() || data.block_minimum_size_adjust) return; @@ -2496,19 +2308,16 @@ int Control::get_v_size_flags() const { } void Control::set_mouse_filter(MouseFilter p_filter) { - ERR_FAIL_INDEX(p_filter, 3); data.mouse_filter = p_filter; update_configuration_warning(); } Control::MouseFilter Control::get_mouse_filter() const { - return data.mouse_filter; } Control *Control::get_focus_owner() const { - ERR_FAIL_COND_V(!is_inside_tree(), nullptr); return get_viewport()->_gui_get_focus_owner(); } @@ -2533,7 +2342,6 @@ bool Control::is_text_field() const { } void Control::set_rotation(float p_radians) { - data.rotation = p_radians; update(); _notify_transform(); @@ -2541,7 +2349,6 @@ void Control::set_rotation(float p_radians) { } float Control::get_rotation() const { - return data.rotation; } @@ -2554,14 +2361,12 @@ float Control::get_rotation_degrees() const { } void Control::_override_changed() { - notification(NOTIFICATION_THEME_CHANGED); emit_signal(SceneStringNames::get_singleton()->theme_changed); minimum_size_changed(); // overrides are likely to affect minimum size } void Control::set_pivot_offset(const Vector2 &p_pivot) { - data.pivot_offset = p_pivot; update(); _notify_transform(); @@ -2569,12 +2374,10 @@ void Control::set_pivot_offset(const Vector2 &p_pivot) { } Vector2 Control::get_pivot_offset() const { - return data.pivot_offset; } void Control::set_scale(const Vector2 &p_scale) { - data.scale = p_scale; // Avoid having 0 scale values, can lead to errors in physics and rendering. if (data.scale.x == 0) @@ -2585,17 +2388,14 @@ void Control::set_scale(const Vector2 &p_scale) { _notify_transform(); } Vector2 Control::get_scale() const { - return data.scale; } Control *Control::get_root_parent_control() const { - const CanvasItem *ci = this; const Control *root = this; while (ci) { - const Control *c = Object::cast_to<Control>(ci); if (c) { root = c; @@ -2615,23 +2415,19 @@ void Control::set_block_minimum_size_adjust(bool p_block) { } bool Control::is_minimum_size_adjust_blocked() const { - return data.block_minimum_size_adjust; } void Control::set_disable_visibility_clip(bool p_ignore) { - data.disable_visibility_clip = p_ignore; update(); } bool Control::is_visibility_clip_disabled() const { - return data.disable_visibility_clip; } void Control::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const { - #ifdef TOOLS_ENABLED const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", 0) ? "'" : "\""; #else @@ -2674,18 +2470,15 @@ String Control::get_configuration_warning() const { } void Control::set_clip_contents(bool p_clip) { - data.clip_contents = p_clip; update(); } bool Control::is_clipping_contents() { - return data.clip_contents; } void Control::set_h_grow_direction(GrowDirection p_direction) { - ERR_FAIL_INDEX((int)p_direction, 3); data.h_grow = p_direction; @@ -2693,24 +2486,20 @@ void Control::set_h_grow_direction(GrowDirection p_direction) { } Control::GrowDirection Control::get_h_grow_direction() const { - return data.h_grow; } void Control::set_v_grow_direction(GrowDirection p_direction) { - ERR_FAIL_INDEX((int)p_direction, 3); data.v_grow = p_direction; _size_changed(); } Control::GrowDirection Control::get_v_grow_direction() const { - return data.v_grow; } void Control::_bind_methods() { - //ClassDB::bind_method(D_METHOD("_window_resize_event"),&Control::_window_resize_event); ClassDB::bind_method(D_METHOD("_update_minimum_size"), &Control::_update_minimum_size); @@ -2984,7 +2773,6 @@ void Control::_bind_methods() { BIND_VMETHOD(MethodInfo(Variant::BOOL, "has_point", PropertyInfo(Variant::VECTOR2, "point"))); } Control::Control() { - data.parent = nullptr; data.mouse_filter = MOUSE_FILTER_STOP; diff --git a/scene/gui/control.h b/scene/gui/control.h index d02fea20a6..5a4c64492b 100644 --- a/scene/gui/control.h +++ b/scene/gui/control.h @@ -44,7 +44,6 @@ class Label; class Panel; class Control : public CanvasItem { - GDCLASS(Control, CanvasItem); OBJ_CATEGORY("GUI Nodes"); @@ -132,7 +131,6 @@ public: private: struct CComparator { - bool operator()(const Control *p_a, const Control *p_b) const { if (p_a->get_canvas_layer() == p_b->get_canvas_layer()) return p_b->is_greater_than(p_a); @@ -142,7 +140,6 @@ private: }; struct Data { - Point2 pos_cache; Size2 size_cache; Size2 minimum_size_cache; diff --git a/scene/gui/dialogs.cpp b/scene/gui/dialogs.cpp index 5654219a3e..3e1a72beb7 100644 --- a/scene/gui/dialogs.cpp +++ b/scene/gui/dialogs.cpp @@ -55,11 +55,9 @@ void AcceptDialog::_parent_focused() { } void AcceptDialog::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_VISIBILITY_CHANGED: { if (is_visible()) { - get_ok()->grab_focus(); _update_child_rects(); parent_visible = get_parent_visible_window(); @@ -98,12 +96,10 @@ void AcceptDialog::_notification(int p_what) { } void AcceptDialog::_text_entered(const String &p_text) { - _ok_pressed(); } void AcceptDialog::_ok_pressed() { - if (hide_on_ok) set_visible(false); ok_pressed(); @@ -111,7 +107,6 @@ void AcceptDialog::_ok_pressed() { } void AcceptDialog::_cancel_pressed() { - Window *parent_window = parent_visible; if (parent_visible) { parent_visible->disconnect("focus_entered", callable_mp(this, &AcceptDialog::_parent_focused)); @@ -130,11 +125,9 @@ void AcceptDialog::_cancel_pressed() { } String AcceptDialog::get_text() const { - return label->get_text(); } void AcceptDialog::set_text(String p_text) { - label->set_text(p_text); child_controls_changed(); if (is_visible()) { @@ -143,25 +136,20 @@ void AcceptDialog::set_text(String p_text) { } void AcceptDialog::set_hide_on_ok(bool p_hide) { - hide_on_ok = p_hide; } bool AcceptDialog::get_hide_on_ok() const { - return hide_on_ok; } void AcceptDialog::set_autowrap(bool p_autowrap) { - label->set_autowrap(p_autowrap); } bool AcceptDialog::has_autowrap() { - return label->has_autowrap(); } void AcceptDialog::register_text_enter(Node *p_line_edit) { - ERR_FAIL_NULL(p_line_edit); LineEdit *line_edit = Object::cast_to<LineEdit>(p_line_edit); if (line_edit) @@ -169,7 +157,6 @@ void AcceptDialog::register_text_enter(Node *p_line_edit) { } void AcceptDialog::_update_child_rects() { - Size2 label_size = label->get_minimum_size(); if (label->get_text().empty()) { label_size.height = 0; @@ -204,7 +191,6 @@ void AcceptDialog::_update_child_rects() { } Size2 AcceptDialog::_get_contents_minimum_size() const { - int margin = hbc->get_theme_constant("margin", "Dialogs"); Size2 minsize = label->get_combined_minimum_size(); @@ -233,20 +219,17 @@ Size2 AcceptDialog::_get_contents_minimum_size() const { } void AcceptDialog::_custom_action(const String &p_action) { - emit_signal("custom_action", p_action); custom_action(p_action); } Button *AcceptDialog::add_button(const String &p_text, bool p_right, const String &p_action) { - Button *button = memnew(Button); button->set_text(p_text); if (p_right) { hbc->add_child(button); hbc->add_spacer(); } else { - hbc->add_child(button); hbc->move_child(button, 0); hbc->add_spacer(true); @@ -260,7 +243,6 @@ Button *AcceptDialog::add_button(const String &p_text, bool p_right, const Strin } Button *AcceptDialog::add_cancel(const String &p_cancel) { - String c = p_cancel; if (p_cancel == "") c = RTR("Cancel"); @@ -270,7 +252,6 @@ Button *AcceptDialog::add_cancel(const String &p_cancel) { } void AcceptDialog::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_ok"), &AcceptDialog::get_ok); ClassDB::bind_method(D_METHOD("get_label"), &AcceptDialog::get_label); ClassDB::bind_method(D_METHOD("set_hide_on_ok", "enabled"), &AcceptDialog::set_hide_on_ok); @@ -295,12 +276,10 @@ void AcceptDialog::_bind_methods() { bool AcceptDialog::swap_ok_cancel = false; void AcceptDialog::set_swap_ok_cancel(bool p_swap) { - swap_ok_cancel = p_swap; } AcceptDialog::AcceptDialog() { - parent_visible = nullptr; set_wrap_controls(true); @@ -344,17 +323,14 @@ AcceptDialog::~AcceptDialog() { // ConfirmationDialog void ConfirmationDialog::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_cancel"), &ConfirmationDialog::get_cancel); } Button *ConfirmationDialog::get_cancel() { - return cancel; } ConfirmationDialog::ConfirmationDialog() { - set_title(RTR("Please Confirm...")); #ifdef TOOLS_ENABLED set_min_size(Size2(200, 70) * EDSCALE); diff --git a/scene/gui/dialogs.h b/scene/gui/dialogs.h index b68b4297d7..5d7b6272bf 100644 --- a/scene/gui/dialogs.h +++ b/scene/gui/dialogs.h @@ -42,7 +42,6 @@ class LineEdit; class AcceptDialog : public Window { - GDCLASS(AcceptDialog, Window); Window *parent_visible; @@ -98,7 +97,6 @@ public: }; class ConfirmationDialog : public AcceptDialog { - GDCLASS(ConfirmationDialog, AcceptDialog); Button *cancel; diff --git a/scene/gui/file_dialog.cpp b/scene/gui/file_dialog.cpp index a449d680a8..adf67bc7df 100644 --- a/scene/gui/file_dialog.cpp +++ b/scene/gui/file_dialog.cpp @@ -45,7 +45,6 @@ VBoxContainer *FileDialog::get_vbox() { } void FileDialog::_theme_changed() { - Color font_color = vbox->get_theme_color("font_color", "ToolButton"); Color font_color_hover = vbox->get_theme_color("font_color_hover", "ToolButton"); Color font_color_pressed = vbox->get_theme_color("font_color_pressed", "ToolButton"); @@ -64,15 +63,12 @@ void FileDialog::_theme_changed() { } void FileDialog::_notification(int p_what) { - if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { if (!is_visible()) { - set_process_unhandled_input(false); } } if (p_what == NOTIFICATION_ENTER_TREE) { - dir_up->set_icon(vbox->get_theme_icon("parent_folder", "FileDialog")); refresh->set_icon(vbox->get_theme_icon("reload", "FileDialog")); show_hidden->set_icon(vbox->get_theme_icon("toggle_hidden", "FileDialog")); @@ -81,18 +77,13 @@ void FileDialog::_notification(int p_what) { } void FileDialog::_unhandled_input(const Ref<InputEvent> &p_event) { - Ref<InputEventKey> k = p_event; if (k.is_valid() && has_focus()) { - if (k->is_pressed()) { - bool handled = true; switch (k->get_keycode()) { - case KEY_H: { - if (k->get_command()) { set_show_hidden_files(!show_hidden_files); } else { @@ -101,11 +92,9 @@ void FileDialog::_unhandled_input(const Ref<InputEvent> &p_event) { } break; case KEY_F5: { - invalidate(); } break; case KEY_BACKSPACE: { - _dir_entered(".."); } break; default: { @@ -120,17 +109,14 @@ void FileDialog::_unhandled_input(const Ref<InputEvent> &p_event) { } void FileDialog::set_enable_multiple_selection(bool p_enable) { - tree->set_select_mode(p_enable ? Tree::SELECT_MULTI : Tree::SELECT_SINGLE); }; Vector<String> FileDialog::get_selected_files() const { - Vector<String> list; TreeItem *item = tree->get_root(); while ((item = tree->get_next_selected(item))) { - list.push_back(dir_access->get_current_dir().plus_file(item->get_text(0))); }; @@ -138,7 +124,6 @@ Vector<String> FileDialog::get_selected_files() const { }; void FileDialog::update_dir() { - dir->set_text(dir_access->get_current_dir(false)); if (drives->is_visible()) { @@ -150,7 +135,6 @@ void FileDialog::update_dir() { } void FileDialog::_dir_entered(String p_dir) { - dir_access->change_dir(p_dir); file->set_text(""); invalidate(); @@ -158,7 +142,6 @@ void FileDialog::_dir_entered(String p_dir) { } void FileDialog::_file_entered(const String &p_file) { - _action_pressed(); } @@ -169,7 +152,6 @@ void FileDialog::_save_confirm_pressed() { } void FileDialog::_post_popup() { - ConfirmationDialog::_post_popup(); if (invalidated) { update_file_list(); @@ -192,15 +174,12 @@ void FileDialog::_post_popup() { } void FileDialog::_action_pressed() { - if (mode == FILE_MODE_OPEN_FILES) { - TreeItem *ti = tree->get_next_selected(nullptr); String fbase = dir_access->get_current_dir(); Vector<String> files; while (ti) { - files.push_back(fbase.plus_file(ti->get_text(0))); ti = tree->get_next_selected(ti); } @@ -219,7 +198,6 @@ void FileDialog::_action_pressed() { emit_signal("file_selected", f); hide(); } else if (mode == FILE_MODE_OPEN_ANY || mode == FILE_MODE_OPEN_DIR) { - String path = dir_access->get_current_dir(); path = path.replace("\\", "/"); @@ -236,7 +214,6 @@ void FileDialog::_action_pressed() { } if (mode == FILE_MODE_SAVE_FILE) { - bool valid = false; if (filter->get_selected() == filter->get_item_count() - 1) { @@ -244,10 +221,8 @@ void FileDialog::_action_pressed() { } else if (filters.size() > 1 && filter->get_selected() == 0) { // match all filters for (int i = 0; i < filters.size(); i++) { - String flt = filters[i].get_slice(";", 0); for (int j = 0; j < flt.get_slice_count(","); j++) { - String str = flt.get_slice(",", j).strip_edges(); if (f.match(str)) { valid = true; @@ -262,11 +237,9 @@ void FileDialog::_action_pressed() { if (filters.size() > 1) idx--; if (idx >= 0 && idx < filters.size()) { - String flt = filters[idx].get_slice(";", 0); int filterSliceCount = flt.get_slice_count(","); for (int j = 0; j < filterSliceCount; j++) { - String str = (flt.get_slice(",", j).strip_edges()); if (f.match(str)) { valid = true; @@ -286,7 +259,6 @@ void FileDialog::_action_pressed() { } if (!valid) { - exterr->popup_centered(Size2(250, 80)); return; } @@ -295,7 +267,6 @@ void FileDialog::_action_pressed() { confirm_save->set_text(RTR("File Exists, Overwrite?")); confirm_save->popup_centered(Size2(200, 80)); } else { - emit_signal("file_selected", f); hide(); } @@ -303,14 +274,12 @@ void FileDialog::_action_pressed() { } void FileDialog::_cancel_pressed() { - file->set_text(""); invalidate(); hide(); } bool FileDialog::_is_open_should_be_disabled() { - if (mode == FILE_MODE_OPEN_ANY || mode == FILE_MODE_SAVE_FILE) return false; @@ -333,14 +302,12 @@ bool FileDialog::_is_open_should_be_disabled() { } void FileDialog::_go_up() { - dir_access->change_dir(".."); update_file_list(); update_dir(); } void FileDialog::deselect_items() { - // Clear currently selected items in file manager. tree->deselect_all(); @@ -349,7 +316,6 @@ void FileDialog::deselect_items() { get_ok()->set_disabled(_is_open_should_be_disabled()); switch (mode) { - case FILE_MODE_OPEN_FILE: case FILE_MODE_OPEN_FILES: get_ok()->set_text(RTR("Open")); @@ -370,14 +336,12 @@ void FileDialog::_tree_multi_selected(Object *p_object, int p_cell, bool p_selec } void FileDialog::_tree_selected() { - TreeItem *ti = tree->get_selected(); if (!ti) return; Dictionary d = ti->get_metadata(0); if (!d["dir"]) { - file->set_text(d["name"]); } else if (mode == FILE_MODE_OPEN_DIR) { get_ok()->set_text(RTR("Select This Folder")); @@ -387,7 +351,6 @@ void FileDialog::_tree_selected() { } void FileDialog::_tree_item_activated() { - TreeItem *ti = tree->get_selected(); if (!ti) return; @@ -395,14 +358,12 @@ void FileDialog::_tree_item_activated() { Dictionary d = ti->get_metadata(0); if (d["dir"]) { - dir_access->change_dir(d["name"]); if (mode == FILE_MODE_OPEN_FILE || mode == FILE_MODE_OPEN_FILES || mode == FILE_MODE_OPEN_DIR || mode == FILE_MODE_OPEN_ANY) file->set_text(""); call_deferred("_update_file_list"); call_deferred("_update_dir"); } else { - _action_pressed(); } } @@ -421,7 +382,6 @@ void FileDialog::update_file_name() { } void FileDialog::update_file_list() { - tree->clear(); // Scroll back to the top after opening a directory @@ -439,7 +399,6 @@ void FileDialog::update_file_list() { String item; while ((item = dir_access->get_next()) != "") { - if (item == "." || item == "..") continue; @@ -475,15 +434,12 @@ void FileDialog::update_file_list() { List<String> patterns; // build filter if (filter->get_selected() == filter->get_item_count() - 1) { - // match all } else if (filters.size() > 1 && filter->get_selected() == 0) { // match all filters for (int i = 0; i < filters.size(); i++) { - String f = filters[i].get_slice(";", 0); for (int j = 0; j < f.get_slice_count(","); j++) { - patterns.push_back(f.get_slice(",", j).strip_edges()); } } @@ -493,10 +449,8 @@ void FileDialog::update_file_list() { idx--; if (idx >= 0 && idx < filters.size()) { - String f = filters[idx].get_slice(";", 0); for (int j = 0; j < f.get_slice_count(","); j++) { - patterns.push_back(f.get_slice(",", j).strip_edges()); } } @@ -505,12 +459,10 @@ void FileDialog::update_file_list() { String base_dir = dir_access->get_current_dir(); while (!files.empty()) { - bool match = patterns.empty(); String match_str; for (List<String>::Element *E = patterns.front(); E; E = E->next()) { - if (files.front()->get().matchn(E->get())) { match_str = E->get(); match = true; @@ -523,7 +475,6 @@ void FileDialog::update_file_list() { ti->set_text(0, files.front()->get()); if (get_icon_func) { - Ref<Texture2D> icon = get_icon_func(base_dir.plus_file(files.front()->get())); ti->set_icon(0, icon); } @@ -549,13 +500,11 @@ void FileDialog::update_file_list() { } void FileDialog::_filter_selected(int) { - update_file_name(); update_file_list(); } void FileDialog::update_filters() { - filter->clear(); if (filters.size() > 1) { @@ -576,7 +525,6 @@ void FileDialog::update_filters() { filter->add_item(RTR("All Recognized") + " (" + all_filters + ")"); } for (int i = 0; i < filters.size(); i++) { - String flt = filters[i].get_slice(";", 0).strip_edges(); String desc = filters[i].get_slice(";", 1).strip_edges(); if (desc.length()) @@ -589,13 +537,11 @@ void FileDialog::update_filters() { } void FileDialog::clear_filters() { - filters.clear(); update_filters(); invalidate(); } void FileDialog::add_filter(const String &p_filter) { - filters.push_back(p_filter); update_filters(); invalidate(); @@ -612,25 +558,20 @@ Vector<String> FileDialog::get_filters() const { } String FileDialog::get_current_dir() const { - return dir->get_text(); } String FileDialog::get_current_file() const { - return file->get_text(); } String FileDialog::get_current_path() const { - return dir->get_text().plus_file(file->get_text()); } void FileDialog::set_current_dir(const String &p_dir) { - dir_access->change_dir(p_dir); update_dir(); invalidate(); } void FileDialog::set_current_file(const String &p_file) { - file->set_text(p_file); update_dir(); invalidate(); @@ -642,15 +583,12 @@ void FileDialog::set_current_file(const String &p_file) { } } void FileDialog::set_current_path(const String &p_path) { - if (!p_path.size()) return; int pos = MAX(p_path.find_last("/"), p_path.find_last("\\")); if (pos == -1) { - set_current_file(p_path); } else { - String dir = p_path.substr(0, pos); String file = p_path.substr(pos + 1, p_path.length()); set_current_dir(dir); @@ -667,12 +605,10 @@ bool FileDialog::is_mode_overriding_title() const { } void FileDialog::set_file_mode(FileMode p_mode) { - ERR_FAIL_INDEX((int)p_mode, 5); mode = p_mode; switch (mode) { - case FILE_MODE_OPEN_FILE: get_ok()->set_text(RTR("Open")); if (mode_overrides_title) @@ -713,27 +649,22 @@ void FileDialog::set_file_mode(FileMode p_mode) { } FileDialog::FileMode FileDialog::get_file_mode() const { - return mode; } void FileDialog::set_access(Access p_access) { - ERR_FAIL_INDEX(p_access, 3); if (access == p_access) return; memdelete(dir_access); switch (p_access) { case ACCESS_FILESYSTEM: { - dir_access = DirAccess::create(DirAccess::ACCESS_FILESYSTEM); } break; case ACCESS_RESOURCES: { - dir_access = DirAccess::create(DirAccess::ACCESS_RESOURCES); } break; case ACCESS_USERDATA: { - dir_access = DirAccess::create(DirAccess::ACCESS_USERDATA); } break; } @@ -745,7 +676,6 @@ void FileDialog::set_access(Access p_access) { } void FileDialog::invalidate() { - if (is_visible()) { update_file_list(); invalidated = false; @@ -755,12 +685,10 @@ void FileDialog::invalidate() { } FileDialog::Access FileDialog::get_access() const { - return access; } void FileDialog::_make_dir_confirm() { - Error err = dir_access->make_dir(makedirname->get_text()); if (err == OK) { dir_access->change_dir(makedirname->get_text()); @@ -774,13 +702,11 @@ void FileDialog::_make_dir_confirm() { } void FileDialog::_make_dir() { - makedialog->popup_centered(Size2(250, 80)); makedirname->grab_focus(); } void FileDialog::_select_drive(int p_idx) { - String d = drives->get_item_text(p_idx); dir_access->change_dir(d); file->set_text(""); @@ -789,7 +715,6 @@ void FileDialog::_select_drive(int p_idx) { } void FileDialog::_update_drives() { - int dc = dir_access->get_drive_count(); if (dc == 0 || access != ACCESS_FILESYSTEM) { drives->hide(); @@ -814,7 +739,6 @@ void FileDialog::_update_drives() { bool FileDialog::default_show_hidden_files = false; void FileDialog::_bind_methods() { - ClassDB::bind_method(D_METHOD("_unhandled_input"), &FileDialog::_unhandled_input); ClassDB::bind_method(D_METHOD("_cancel_pressed"), &FileDialog::_cancel_pressed); @@ -884,7 +808,6 @@ void FileDialog::set_default_show_hidden_files(bool p_show) { } FileDialog::FileDialog() { - show_hidden_files = default_show_hidden_files; mode_overrides_title = true; @@ -1002,7 +925,6 @@ FileDialog::FileDialog() { } FileDialog::~FileDialog() { - if (unregister_func) unregister_func(this); memdelete(dir_access); diff --git a/scene/gui/file_dialog.h b/scene/gui/file_dialog.h index ac0e733abc..8bc536d576 100644 --- a/scene/gui/file_dialog.h +++ b/scene/gui/file_dialog.h @@ -40,7 +40,6 @@ #include "scene/gui/tree.h" class FileDialog : public ConfirmationDialog { - GDCLASS(FileDialog, ConfirmationDialog); public: diff --git a/scene/gui/gradient_edit.cpp b/scene/gui/gradient_edit.cpp index a6ed3d8de9..1617405dd3 100644 --- a/scene/gui/gradient_edit.cpp +++ b/scene/gui/gradient_edit.cpp @@ -93,11 +93,9 @@ GradientEdit::~GradientEdit() { } void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { - Ref<InputEventKey> k = p_event; if (k.is_valid() && k->is_pressed() && k->get_keycode() == KEY_DELETE && grabbed != -1) { - points.remove(grabbed); grabbed = -1; grabbing = false; @@ -129,7 +127,6 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { //Hold alt key to duplicate selected color if (mb.is_valid() && mb->get_button_index() == 1 && mb->is_pressed() && mb->get_alt()) { - int x = mb->get_position().x; grabbed = _get_point_from_pos(x); @@ -154,7 +151,6 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { //select if (mb.is_valid() && mb->get_button_index() == 1 && mb->is_pressed()) { - update(); int x = mb->get_position().x; int total_w = get_size().width - get_size().height - SPACING; @@ -187,7 +183,6 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { } if (pos == -1) { - prev.color = Color(0, 0, 0); prev.offset = 0; if (points.size()) { @@ -197,7 +192,6 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { next.offset = 1.0; } } else { - if (pos == points.size() - 1) { next.color = Color(1, 1, 1); next.offset = 1.0; @@ -222,7 +216,6 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { } if (mb.is_valid() && mb->get_button_index() == 1 && !mb->is_pressed()) { - if (grabbing) { grabbing = false; emit_signal("ramp_changed"); @@ -233,7 +226,6 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid() && grabbing) { - int total_w = get_size().width - get_size().height - SPACING; int x = mm->get_position().x; @@ -273,7 +265,6 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { bool valid = true; for (int i = 0; i < points.size(); i++) { - if (points[i].offset == newofs && i != grabbed) { valid = false; break; @@ -300,14 +291,12 @@ void GradientEdit::_gui_input(const Ref<InputEvent> &p_event) { } void GradientEdit::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { if (!picker->is_connected("color_changed", callable_mp(this, &GradientEdit::_color_changed))) { picker->connect("color_changed", callable_mp(this, &GradientEdit::_color_changed)); } } if (p_what == NOTIFICATION_DRAW) { - int w = get_size().x; int h = get_size().y; @@ -328,7 +317,6 @@ void GradientEdit::_notification(int p_what) { prev.color = points[0].color; //Extend color of first point to the beginning. for (int i = -1; i < points.size(); i++) { - Gradient::Point next; //If there is no next point if (i + 1 == points.size()) { @@ -362,7 +350,6 @@ void GradientEdit::_notification(int p_what) { //Draw point markers for (int i = 0; i < points.size(); i++) { - Color col = points[i].color.contrasted(); col.a = 0.9; @@ -397,7 +384,6 @@ void GradientEdit::_notification(int p_what) { //Draw borders around color ramp if in focus if (has_focus()) { - draw_line(Vector2(-1, -1), Vector2(total_w + 1, -1), Color(1, 1, 1, 0.6)); draw_line(Vector2(total_w + 1, -1), Vector2(total_w + 1, h + 1), Color(1, 1, 1, 0.6)); draw_line(Vector2(total_w + 1, h + 1), Vector2(-1, h + 1), Color(1, 1, 1, 0.6)); @@ -406,7 +392,6 @@ void GradientEdit::_notification(int p_what) { } if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - if (!is_visible()) { grabbing = false; } @@ -435,12 +420,10 @@ void GradientEdit::_draw_checker(int x, int y, int w, int h) { } Size2 GradientEdit::get_minimum_size() const { - return Vector2(0, 16); } void GradientEdit::_color_changed(const Color &p_color) { - if (grabbed == -1) return; points.write[grabbed].color = p_color; @@ -449,7 +432,6 @@ void GradientEdit::_color_changed(const Color &p_color) { } void GradientEdit::set_ramp(const Vector<float> &p_offsets, const Vector<Color> &p_colors) { - ERR_FAIL_COND(p_offsets.size() != p_colors.size()); points.clear(); for (int i = 0; i < p_offsets.size(); i++) { diff --git a/scene/gui/gradient_edit.h b/scene/gui/gradient_edit.h index a38a3dde47..376837b66c 100644 --- a/scene/gui/gradient_edit.h +++ b/scene/gui/gradient_edit.h @@ -37,7 +37,6 @@ #include "scene/resources/gradient.h" class GradientEdit : public Control { - GDCLASS(GradientEdit, Control); PopupPanel *popup; diff --git a/scene/gui/graph_edit.cpp b/scene/gui/graph_edit.cpp index 0bf67df9b4..2129ae6126 100644 --- a/scene/gui/graph_edit.cpp +++ b/scene/gui/graph_edit.cpp @@ -44,17 +44,14 @@ #define MAX_ZOOM (1 * ZOOM_SCALE * ZOOM_SCALE * ZOOM_SCALE) bool GraphEditFilter::has_point(const Point2 &p_point) const { - return ge->_filter_input(p_point); } GraphEditFilter::GraphEditFilter(GraphEdit *p_edit) { - ge = p_edit; } Error GraphEdit::connect_node(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port) { - if (is_node_connected(p_from, p_from_port, p_to, p_to_port)) return OK; Connection c; @@ -72,9 +69,7 @@ Error GraphEdit::connect_node(const StringName &p_from, int p_from_port, const S } bool GraphEdit::is_node_connected(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port) { - for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { - if (E->get().from == p_from && E->get().from_port == p_from_port && E->get().to == p_to && E->get().to_port == p_to_port) return true; } @@ -83,11 +78,8 @@ bool GraphEdit::is_node_connected(const StringName &p_from, int p_from_port, con } void GraphEdit::disconnect_node(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port) { - for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { - if (E->get().from == p_from && E->get().from_port == p_from_port && E->get().to == p_to && E->get().to_port == p_to_port) { - connections.erase(E); top_layer->update(); update(); @@ -98,17 +90,14 @@ void GraphEdit::disconnect_node(const StringName &p_from, int p_from_port, const } bool GraphEdit::clips_input() const { - return true; } void GraphEdit::get_connection_list(List<Connection> *r_connections) const { - *r_connections = connections; } void GraphEdit::set_scroll_ofs(const Vector2 &p_ofs) { - setting_scroll_ofs = true; h_scroll->set_value(p_ofs.x); v_scroll->set_value(p_ofs.y); @@ -117,12 +106,10 @@ void GraphEdit::set_scroll_ofs(const Vector2 &p_ofs) { } Vector2 GraphEdit::get_scroll_ofs() const { - return Vector2(h_scroll->get_value(), v_scroll->get_value()); } void GraphEdit::_scroll_moved(double) { - if (!awaiting_scroll_offset_update) { call_deferred("_update_scroll_offset"); awaiting_scroll_offset_update = true; @@ -136,11 +123,9 @@ void GraphEdit::_scroll_moved(double) { } void GraphEdit::_update_scroll_offset() { - set_block_minimum_size_adjust(true); for (int i = 0; i < get_child_count(); i++) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; @@ -159,7 +144,6 @@ void GraphEdit::_update_scroll_offset() { } void GraphEdit::_update_scroll() { - if (updating) return; @@ -169,7 +153,6 @@ void GraphEdit::_update_scroll() { Rect2 screen; for (int i = 0; i < get_child_count(); i++) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; @@ -218,7 +201,6 @@ void GraphEdit::_update_scroll() { } void GraphEdit::_graph_node_raised(Node *p_gn) { - GraphNode *gn = Object::cast_to<GraphNode>(p_gn); ERR_FAIL_COND(!gn); if (gn->is_comment()) { @@ -241,7 +223,6 @@ void GraphEdit::_graph_node_raised(Node *p_gn) { } void GraphEdit::_graph_node_moved(Node *p_gn) { - GraphNode *gn = Object::cast_to<GraphNode>(p_gn); ERR_FAIL_COND(!gn); top_layer->update(); @@ -250,7 +231,6 @@ void GraphEdit::_graph_node_moved(Node *p_gn) { } void GraphEdit::add_child_notify(Node *p_child) { - Control::add_child_notify(p_child); top_layer->call_deferred("raise"); //top layer always on top! @@ -266,7 +246,6 @@ void GraphEdit::add_child_notify(Node *p_child) { } void GraphEdit::remove_child_notify(Node *p_child) { - Control::remove_child_notify(p_child); if (is_inside_tree()) { top_layer->call_deferred("raise"); //top layer always on top! @@ -279,7 +258,6 @@ void GraphEdit::remove_child_notify(Node *p_child) { } void GraphEdit::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED) { port_grab_distance_horizontal = get_theme_constant("port_grab_distance_horizontal"); port_grab_distance_vertical = get_theme_constant("port_grab_distance_vertical"); @@ -304,7 +282,6 @@ void GraphEdit::_notification(int p_what) { v_scroll->set_anchor_and_margin(MARGIN_BOTTOM, ANCHOR_END, 0); } if (p_what == NOTIFICATION_DRAW) { - draw_style_box(get_theme_stylebox("bg"), Rect2(Point2(), get_size())); if (is_using_snap()) { @@ -322,7 +299,6 @@ void GraphEdit::_notification(int p_what) { Color grid_major = get_theme_color("grid_major"); for (int i = from.x; i < from.x + len.x; i++) { - Color color; if (ABS(i) % 10 == 0) @@ -335,7 +311,6 @@ void GraphEdit::_notification(int p_what) { } for (int i = from.y; i < from.y + len.y; i++) { - Color color; if (ABS(i) % 10 == 0) @@ -356,24 +331,20 @@ void GraphEdit::_notification(int p_what) { } bool GraphEdit::_filter_input(const Point2 &p_point) { - Ref<Texture2D> port = get_theme_icon("port", "GraphNode"); for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; for (int j = 0; j < gn->get_connection_output_count(); j++) { - Vector2 pos = gn->get_connection_output_position(j) + gn->get_position(); if (is_in_hot_zone(pos, p_point)) return true; } for (int j = 0; j < gn->get_connection_input_count(); j++) { - Vector2 pos = gn->get_connection_input_position(j) + gn->get_position(); if (is_in_hot_zone(pos, p_point)) { return true; @@ -385,32 +356,24 @@ bool GraphEdit::_filter_input(const Point2 &p_point) { } void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { - Ref<InputEventMouseButton> mb = p_ev; if (mb.is_valid() && mb->get_button_index() == BUTTON_LEFT && mb->is_pressed()) { - Ref<Texture2D> port = get_theme_icon("port", "GraphNode"); Vector2 mpos(mb->get_position().x, mb->get_position().y); for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; for (int j = 0; j < gn->get_connection_output_count(); j++) { - Vector2 pos = gn->get_connection_output_position(j) + gn->get_position(); if (is_in_hot_zone(pos, mpos)) { - if (valid_left_disconnect_types.has(gn->get_connection_output_type(j))) { //check disconnect for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { - if (E->get().from == gn->get_name() && E->get().from_port == j) { - Node *to = get_node(String(E->get().to)); if (Object::cast_to<GraphNode>(to)) { - connecting_from = E->get().to; connecting_index = E->get().to_port; connecting_out = false; @@ -445,19 +408,14 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { } for (int j = 0; j < gn->get_connection_input_count(); j++) { - Vector2 pos = gn->get_connection_input_position(j) + gn->get_position(); if (is_in_hot_zone(pos, mpos)) { - if (right_disconnects || valid_right_disconnect_types.has(gn->get_connection_input_type(j))) { //check disconnect for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { - if (E->get().to == gn->get_name() && E->get().to_port == j) { - Node *fr = get_node(String(E->get().from)); if (Object::cast_to<GraphNode>(fr)) { - connecting_from = E->get().from; connecting_index = E->get().from_port; connecting_out = true; @@ -496,7 +454,6 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { Ref<InputEventMouseMotion> mm = p_ev; if (mm.is_valid() && connecting) { - connecting_to = mm->get_position(); connecting_target = false; top_layer->update(); @@ -504,18 +461,15 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { Ref<Texture2D> port = get_theme_icon("port", "GraphNode"); Vector2 mpos = mm->get_position(); for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; if (!connecting_out) { for (int j = 0; j < gn->get_connection_output_count(); j++) { - Vector2 pos = gn->get_connection_output_position(j) + gn->get_position(); int type = gn->get_connection_output_type(j); if ((type == connecting_type || valid_connection_types.has(ConnType(type, connecting_type))) && is_in_hot_zone(pos, mpos)) { - connecting_target = true; connecting_to = pos; connecting_target_to = gn->get_name(); @@ -524,9 +478,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { } } } else { - for (int j = 0; j < gn->get_connection_input_count(); j++) { - Vector2 pos = gn->get_connection_input_position(j) + gn->get_position(); int type = gn->get_connection_input_type(j); if ((type == connecting_type || valid_connection_types.has(ConnType(type, connecting_type))) && is_in_hot_zone(pos, mpos)) { @@ -542,9 +494,7 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { } if (mb.is_valid() && mb->get_button_index() == BUTTON_LEFT && !mb->is_pressed()) { - if (connecting && connecting_target) { - String from = connecting_from; int from_slot = connecting_index; String to = connecting_target_to; @@ -557,7 +507,6 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { emit_signal("connection_request", from, from_slot, to, to_slot); } else if (!just_disconnected) { - String from = connecting_from; int from_slot = connecting_index; Vector2 ofs = Vector2(mb->get_position().x, mb->get_position().y); @@ -577,7 +526,6 @@ void GraphEdit::_top_layer_input(const Ref<InputEvent> &p_ev) { } bool GraphEdit::_check_clickable_control(Control *p_control, const Vector2 &pos) { - if (p_control->is_set_as_toplevel() || !p_control->is_visible()) return false; @@ -608,7 +556,6 @@ bool GraphEdit::is_in_hot_zone(const Vector2 &pos, const Vector2 &p_mouse_pos) { continue; Rect2 rect = child->get_rect(); if (rect.has_point(p_mouse_pos)) { - //check sub-controls Vector2 subpos = p_mouse_pos - rect.position; @@ -640,7 +587,6 @@ static _FORCE_INLINE_ Vector2 _bezier_interp(real_t t, Vector2 start, Vector2 co } void GraphEdit::_bake_segment2d(Vector<Vector2> &points, Vector<Color> &colors, float p_begin, float p_end, const Vector2 &p_a, const Vector2 &p_out, const Vector2 &p_b, const Vector2 &p_in, int p_depth, int p_min_depth, int p_max_depth, float p_tol, const Color &p_color, const Color &p_to_color, int &lines) const { - float mp = p_begin + (p_end - p_begin) * 0.5; Vector2 beg = _bezier_interp(p_begin, p_a, p_a + p_out, p_b + p_in, p_b); Vector2 mid = _bezier_interp(mp, p_a, p_a + p_out, p_b + p_in, p_b); @@ -651,7 +597,6 @@ void GraphEdit::_bake_segment2d(Vector<Vector2> &points, Vector<Color> &colors, float dp = Math::rad2deg(Math::acos(na.dot(nb))); if (p_depth >= p_min_depth && (dp < p_tol || p_depth >= p_max_depth)) { - points.push_back((beg + end) * 0.5); colors.push_back(p_color.lerp(p_to_color, mp)); lines++; @@ -662,7 +607,6 @@ void GraphEdit::_bake_segment2d(Vector<Vector2> &points, Vector<Color> &colors, } void GraphEdit::_draw_cos_line(CanvasItem *p_where, const Vector2 &p_from, const Vector2 &p_to, const Color &p_color, const Color &p_to_color) { - //cubic bezier code float diff = p_to.x - p_from.x; float cp_offset; @@ -696,12 +640,10 @@ void GraphEdit::_draw_cos_line(CanvasItem *p_where, const Vector2 &p_from, const } void GraphEdit::_connections_layer_draw() { - Color activity_color = get_theme_color("activity"); //draw connections List<List<Connection>::Element *> to_erase; for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { - NodePath fromnp(E->get().from); Node *from = get_node(fromnp); @@ -750,11 +692,9 @@ void GraphEdit::_connections_layer_draw() { } void GraphEdit::_top_layer_draw() { - _update_scroll(); if (connecting) { - Node *fromn = get_node(connecting_from); ERR_FAIL_COND(!fromn); GraphNode *from = Object::cast_to<GraphNode>(fromn); @@ -790,9 +730,7 @@ void GraphEdit::_top_layer_draw() { } void GraphEdit::set_selected(Node *p_child) { - for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; @@ -802,7 +740,6 @@ void GraphEdit::set_selected(Node *p_child) { } void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { - Ref<InputEventMouseMotion> mm = p_ev; if (mm.is_valid() && (mm->get_button_mask() & BUTTON_MASK_MIDDLE || (mm->get_button_mask() & BUTTON_MASK_LEFT && Input::get_singleton()->is_key_pressed(KEY_SPACE)))) { h_scroll->set_value(h_scroll->get_value() - mm->get_relative().x); @@ -810,7 +747,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { } if (mm.is_valid() && dragging) { - just_selected = true; // TODO: Remove local mouse pos hack if/when InputEventMouseMotion is fixed to support floats //drag_accum+=Vector2(mm->get_relative().x,mm->get_relative().y); @@ -818,7 +754,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { for (int i = get_child_count() - 1; i >= 0; i--) { GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (gn && gn->is_selected()) { - Vector2 pos = (gn->get_drag_from() * zoom + drag_accum) / zoom; // Snapping can be toggled temporarily by holding down Ctrl. @@ -842,7 +777,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { ABS(box_selecting_from.y - box_selecting_to.y)); for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; @@ -862,12 +796,10 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { Ref<InputEventMouseButton> b = p_ev; if (b.is_valid()) { - if (b->get_button_index() == BUTTON_RIGHT && b->is_pressed()) { if (box_selecting) { box_selecting = false; for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); if (!gn) continue; @@ -901,7 +833,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { } if (drag_accum != Vector2()) { - emit_signal("_begin_node_move"); for (int i = get_child_count() - 1; i >= 0; i--) { @@ -921,11 +852,9 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { } if (b->get_button_index() == BUTTON_LEFT && b->is_pressed()) { - GraphNode *gn = nullptr; for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn_selected = Object::cast_to<GraphNode>(get_child(i)); if (gn_selected) { @@ -940,7 +869,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { } if (gn) { - if (_filter_input(b->get_position())) return; @@ -985,7 +913,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { box_selection_mode_additive = true; previus_selected.clear(); for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn2 = Object::cast_to<GraphNode>(get_child(i)); if (!gn2 || !gn2->is_selected()) continue; @@ -996,7 +923,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { box_selection_mode_additive = false; previus_selected.clear(); for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn2 = Object::cast_to<GraphNode>(get_child(i)); if (!gn2 || !gn2->is_selected()) continue; @@ -1007,7 +933,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { box_selection_mode_additive = true; previus_selected.clear(); for (int i = get_child_count() - 1; i >= 0; i--) { - GraphNode *gn2 = Object::cast_to<GraphNode>(get_child(i)); if (!gn2) continue; @@ -1052,7 +977,6 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { Ref<InputEventKey> k = p_ev; if (k.is_valid()) { - if (k->get_keycode() == KEY_D && k->is_pressed() && k->get_command()) { emit_signal("duplicate_nodes_request"); accept_event(); @@ -1076,24 +1000,19 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) { Ref<InputEventMagnifyGesture> magnify_gesture = p_ev; if (magnify_gesture.is_valid()) { - set_zoom_custom(zoom * magnify_gesture->get_factor(), magnify_gesture->get_position()); } Ref<InputEventPanGesture> pan_gesture = p_ev; if (pan_gesture.is_valid()) { - h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() * pan_gesture->get_delta().x / 8); v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8); } } void GraphEdit::set_connection_activity(const StringName &p_from, int p_from_port, const StringName &p_to, int p_to_port, float p_activity) { - for (List<Connection>::Element *E = connections.front(); E; E = E->next()) { - if (E->get().from == p_from && E->get().from_port == p_from_port && E->get().to == p_to && E->get().to_port == p_to_port) { - if (Math::is_equal_approx(E->get().activity, p_activity)) { //update only if changed top_layer->update(); @@ -1106,19 +1025,16 @@ void GraphEdit::set_connection_activity(const StringName &p_from, int p_from_por } void GraphEdit::clear_connections() { - connections.clear(); update(); connections_layer->update(); } void GraphEdit::set_zoom(float p_zoom) { - set_zoom_custom(p_zoom, get_size() / 2); } void GraphEdit::set_zoom_custom(float p_zoom, const Vector2 &p_center) { - p_zoom = CLAMP(p_zoom, MIN_ZOOM, MAX_ZOOM); if (zoom == p_zoom) return; @@ -1135,7 +1051,6 @@ void GraphEdit::set_zoom_custom(float p_zoom, const Vector2 &p_center) { connections_layer->update(); if (is_visible_in_tree()) { - Vector2 ofs = sbofs * zoom - p_center; h_scroll->set_value(ofs.x); v_scroll->set_value(ofs.y); @@ -1149,37 +1064,30 @@ float GraphEdit::get_zoom() const { } void GraphEdit::set_right_disconnects(bool p_enable) { - right_disconnects = p_enable; } bool GraphEdit::is_right_disconnects_enabled() const { - return right_disconnects; } void GraphEdit::add_valid_right_disconnect_type(int p_type) { - valid_right_disconnect_types.insert(p_type); } void GraphEdit::remove_valid_right_disconnect_type(int p_type) { - valid_right_disconnect_types.erase(p_type); } void GraphEdit::add_valid_left_disconnect_type(int p_type) { - valid_left_disconnect_types.insert(p_type); } void GraphEdit::remove_valid_left_disconnect_type(int p_type) { - valid_left_disconnect_types.erase(p_type); } Array GraphEdit::_get_connection_list() const { - List<Connection> conns; get_connection_list(&conns); Array arr; @@ -1195,21 +1103,17 @@ Array GraphEdit::_get_connection_list() const { } void GraphEdit::_zoom_minus() { - set_zoom(zoom / ZOOM_SCALE); } void GraphEdit::_zoom_reset() { - set_zoom(1); } void GraphEdit::_zoom_plus() { - set_zoom(zoom * ZOOM_SCALE); } void GraphEdit::add_valid_connection_type(int p_type, int p_with_type) { - ConnType ct; ct.type_a = p_type; ct.type_b = p_with_type; @@ -1218,7 +1122,6 @@ void GraphEdit::add_valid_connection_type(int p_type, int p_with_type) { } void GraphEdit::remove_valid_connection_type(int p_type, int p_with_type) { - ConnType ct; ct.type_a = p_type; ct.type_b = p_with_type; @@ -1227,7 +1130,6 @@ void GraphEdit::remove_valid_connection_type(int p_type, int p_with_type) { } bool GraphEdit::is_valid_connection_type(int p_type, int p_with_type) const { - ConnType ct; ct.type_a = p_type; ct.type_b = p_with_type; @@ -1236,23 +1138,19 @@ bool GraphEdit::is_valid_connection_type(int p_type, int p_with_type) const { } void GraphEdit::set_use_snap(bool p_enable) { - snap_button->set_pressed(p_enable); update(); } bool GraphEdit::is_using_snap() const { - return snap_button->is_pressed(); } int GraphEdit::get_snap() const { - return snap_amount->get_value(); } void GraphEdit::set_snap(int p_snap) { - ERR_FAIL_COND(p_snap < 5); snap_amount->set_value(p_snap); update(); @@ -1262,7 +1160,6 @@ void GraphEdit::_snap_toggled() { } void GraphEdit::_snap_value_changed(double) { - update(); } @@ -1271,7 +1168,6 @@ HBoxContainer *GraphEdit::get_zoom_hbox() { } void GraphEdit::_bind_methods() { - ClassDB::bind_method(D_METHOD("connect_node", "from", "from_port", "to", "to_port"), &GraphEdit::connect_node); ClassDB::bind_method(D_METHOD("is_node_connected", "from", "from_port", "to", "to_port"), &GraphEdit::is_node_connected); ClassDB::bind_method(D_METHOD("disconnect_node", "from", "from_port", "to", "to_port"), &GraphEdit::disconnect_node); diff --git a/scene/gui/graph_edit.h b/scene/gui/graph_edit.h index f675f8c7f3..8cfc5d32b9 100644 --- a/scene/gui/graph_edit.h +++ b/scene/gui/graph_edit.h @@ -42,7 +42,6 @@ class GraphEdit; class GraphEditFilter : public Control { - GDCLASS(GraphEditFilter, Control); friend class GraphEdit; @@ -54,7 +53,6 @@ public: }; class GraphEdit : public Control { - GDCLASS(GraphEdit, Control); public: @@ -142,7 +140,6 @@ private: bool lines_on_bg; struct ConnType { - union { struct { uint32_t type_a; diff --git a/scene/gui/graph_node.cpp b/scene/gui/graph_node.cpp index 5dbc5bc50d..efac874462 100644 --- a/scene/gui/graph_node.cpp +++ b/scene/gui/graph_node.cpp @@ -33,7 +33,6 @@ #include "core/method_bind_ext.gen.inc" bool GraphNode::_set(const StringName &p_name, const Variant &p_value) { - if (!p_name.operator String().begins_with("slot/")) return false; @@ -65,7 +64,6 @@ bool GraphNode::_set(const StringName &p_name, const Variant &p_value) { } bool GraphNode::_get(const StringName &p_name, Variant &r_ret) const { - if (!p_name.operator String().begins_with("slot/")) { return false; } @@ -95,7 +93,6 @@ bool GraphNode::_get(const StringName &p_name, Variant &r_ret) const { return true; } void GraphNode::_get_property_list(List<PropertyInfo> *p_list) const { - int idx = 0; for (int i = 0; i < get_child_count(); i++) { Control *c = Object::cast_to<Control>(get_child(i)); @@ -116,7 +113,6 @@ void GraphNode::_get_property_list(List<PropertyInfo> *p_list) const { } void GraphNode::_resort() { - int sep = get_theme_constant("separation"); Ref<StyleBox> sb = get_theme_stylebox("frame"); bool first = true; @@ -167,7 +163,6 @@ void GraphNode::_resort() { } bool GraphNode::has_point(const Point2 &p_point) const { - if (comment) { Ref<StyleBox> comment = get_theme_stylebox("comment"); Ref<Texture2D> resizer = get_theme_icon("resizer"); @@ -188,17 +183,14 @@ bool GraphNode::has_point(const Point2 &p_point) const { } void GraphNode::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_DRAW: { - Ref<StyleBox> sb; if (comment) { sb = get_theme_stylebox(selected ? "commentfocus" : "comment"); } else { - sb = get_theme_stylebox(selected ? "selectedframe" : "frame"); } @@ -223,10 +215,8 @@ void GraphNode::_notification(int p_what) { switch (overlay) { case OVERLAY_DISABLED: { - } break; case OVERLAY_BREAKPOINT: { - draw_style_box(get_theme_stylebox("breakpoint"), Rect2(Point2(), get_size())); } break; case OVERLAY_POSITION: { @@ -251,7 +241,6 @@ void GraphNode::_notification(int p_what) { } for (Map<int, Slot>::Element *E = slot_info.front(); E; E = E->next()) { - if (E->key() < 0 || E->key() >= cache_y.size()) continue; if (!slot_info.has(E->key())) @@ -280,19 +269,16 @@ void GraphNode::_notification(int p_what) { } break; case NOTIFICATION_SORT_CHILDREN: { - _resort(); } break; case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); } break; } } void GraphNode::set_slot(int p_idx, bool p_enable_left, int p_type_left, const Color &p_color_left, bool p_enable_right, int p_type_right, const Color &p_color_right, const Ref<Texture2D> &p_custom_left, const Ref<Texture2D> &p_custom_right) { - ERR_FAIL_COND(p_idx < 0); if (!p_enable_left && p_type_left == 0 && p_color_left == Color(1, 1, 1, 1) && !p_enable_right && p_type_right == 0 && p_color_right == Color(1, 1, 1, 1)) { @@ -315,61 +301,52 @@ void GraphNode::set_slot(int p_idx, bool p_enable_left, int p_type_left, const C } void GraphNode::clear_slot(int p_idx) { - slot_info.erase(p_idx); update(); connpos_dirty = true; } void GraphNode::clear_all_slots() { - slot_info.clear(); update(); connpos_dirty = true; } bool GraphNode::is_slot_enabled_left(int p_idx) const { - if (!slot_info.has(p_idx)) return false; return slot_info[p_idx].enable_left; } int GraphNode::get_slot_type_left(int p_idx) const { - if (!slot_info.has(p_idx)) return 0; return slot_info[p_idx].type_left; } Color GraphNode::get_slot_color_left(int p_idx) const { - if (!slot_info.has(p_idx)) return Color(1, 1, 1, 1); return slot_info[p_idx].color_left; } bool GraphNode::is_slot_enabled_right(int p_idx) const { - if (!slot_info.has(p_idx)) return false; return slot_info[p_idx].enable_right; } int GraphNode::get_slot_type_right(int p_idx) const { - if (!slot_info.has(p_idx)) return 0; return slot_info[p_idx].type_right; } Color GraphNode::get_slot_color_right(int p_idx) const { - if (!slot_info.has(p_idx)) return Color(1, 1, 1, 1); return slot_info[p_idx].color_right; } Size2 GraphNode::get_minimum_size() const { - Ref<Font> title_font = get_theme_font("title_font"); int sep = get_theme_constant("separation"); @@ -384,7 +361,6 @@ Size2 GraphNode::get_minimum_size() const { } for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -406,7 +382,6 @@ Size2 GraphNode::get_minimum_size() const { } void GraphNode::set_title(const String &p_title) { - if (title == p_title) return; title = p_title; @@ -416,19 +391,16 @@ void GraphNode::set_title(const String &p_title) { } String GraphNode::get_title() const { - return title; } void GraphNode::set_offset(const Vector2 &p_offset) { - offset = p_offset; emit_signal("offset_changed"); update(); } Vector2 GraphNode::get_offset() const { - return offset; } @@ -453,17 +425,14 @@ Vector2 GraphNode::get_drag_from() { } void GraphNode::set_show_close_button(bool p_enable) { - show_close = p_enable; update(); } bool GraphNode::is_close_button_visible() const { - return show_close; } void GraphNode::_connpos_update() { - int edgeofs = get_theme_constant("port_offset"); int sep = get_theme_constant("separation"); @@ -487,7 +456,6 @@ void GraphNode::_connpos_update() { int h = size.y; if (slot_info.has(idx)) { - if (slot_info[idx].enable_left) { ConnCache cc; cc.pos = Point2i(edgeofs, y + h / 2); @@ -514,14 +482,12 @@ void GraphNode::_connpos_update() { } int GraphNode::get_connection_input_count() { - if (connpos_dirty) _connpos_update(); return conn_input_cache.size(); } int GraphNode::get_connection_output_count() { - if (connpos_dirty) _connpos_update(); @@ -529,7 +495,6 @@ int GraphNode::get_connection_output_count() { } Vector2 GraphNode::get_connection_input_position(int p_idx) { - if (connpos_dirty) _connpos_update(); @@ -541,7 +506,6 @@ Vector2 GraphNode::get_connection_input_position(int p_idx) { } int GraphNode::get_connection_input_type(int p_idx) { - if (connpos_dirty) _connpos_update(); @@ -550,7 +514,6 @@ int GraphNode::get_connection_input_type(int p_idx) { } Color GraphNode::get_connection_input_color(int p_idx) { - if (connpos_dirty) _connpos_update(); @@ -559,7 +522,6 @@ Color GraphNode::get_connection_input_color(int p_idx) { } Vector2 GraphNode::get_connection_output_position(int p_idx) { - if (connpos_dirty) _connpos_update(); @@ -571,7 +533,6 @@ Vector2 GraphNode::get_connection_output_position(int p_idx) { } int GraphNode::get_connection_output_type(int p_idx) { - if (connpos_dirty) _connpos_update(); @@ -580,7 +541,6 @@ int GraphNode::get_connection_output_type(int p_idx) { } Color GraphNode::get_connection_output_color(int p_idx) { - if (connpos_dirty) _connpos_update(); @@ -589,14 +549,11 @@ Color GraphNode::get_connection_output_color(int p_idx) { } void GraphNode::_gui_input(const Ref<InputEvent> &p_ev) { - Ref<InputEventMouseButton> mb = p_ev; if (mb.is_valid()) { - ERR_FAIL_COND_MSG(get_parent_control() == nullptr, "GraphNode must be the child of a GraphEdit node."); if (mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - Vector2 mpos = Vector2(mb->get_position().x, mb->get_position().y); if (close_rect.size != Size2() && close_rect.has_point(mpos)) { //send focus to parent @@ -609,7 +566,6 @@ void GraphNode::_gui_input(const Ref<InputEvent> &p_ev) { Ref<Texture2D> resizer = get_theme_icon("resizer"); if (resizable && mpos.x > get_size().x - resizer->get_width() && mpos.y > get_size().y - resizer->get_height()) { - resizing = true; resizing_from = mpos; resizing_from_size = get_size(); @@ -636,40 +592,33 @@ void GraphNode::_gui_input(const Ref<InputEvent> &p_ev) { } void GraphNode::set_overlay(Overlay p_overlay) { - overlay = p_overlay; update(); } GraphNode::Overlay GraphNode::get_overlay() const { - return overlay; } void GraphNode::set_comment(bool p_enable) { - comment = p_enable; update(); } bool GraphNode::is_comment() const { - return comment; } void GraphNode::set_resizable(bool p_enable) { - resizable = p_enable; update(); } bool GraphNode::is_resizable() const { - return resizable; } void GraphNode::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_title", "title"), &GraphNode::set_title); ClassDB::bind_method(D_METHOD("get_title"), &GraphNode::get_title); ClassDB::bind_method(D_METHOD("_gui_input"), &GraphNode::_gui_input); @@ -732,7 +681,6 @@ void GraphNode::_bind_methods() { } GraphNode::GraphNode() { - overlay = OVERLAY_DISABLED; show_close = false; connpos_dirty = true; diff --git a/scene/gui/graph_node.h b/scene/gui/graph_node.h index a3eb8ed152..6372833e6f 100644 --- a/scene/gui/graph_node.h +++ b/scene/gui/graph_node.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" class GraphNode : public Container { - GDCLASS(GraphNode, Container); public: diff --git a/scene/gui/grid_container.cpp b/scene/gui/grid_container.cpp index 16f6fd0111..1ba761e7a1 100644 --- a/scene/gui/grid_container.cpp +++ b/scene/gui/grid_container.cpp @@ -31,11 +31,8 @@ #include "grid_container.h" void GridContainer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_SORT_CHILDREN: { - Map<int, int> col_minw; // Max of min_width of all controls in each col (indexed by col). Map<int, int> row_minh; // Max of min_height of all controls in each row (indexed by row). Set<int> col_expanded; // Columns which have the SIZE_EXPAND flag set. @@ -168,14 +165,12 @@ void GridContainer::_notification(int p_what) { } break; case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); } break; } } void GridContainer::set_columns(int p_columns) { - ERR_FAIL_COND(p_columns < 1); columns = p_columns; queue_sort(); @@ -183,12 +178,10 @@ void GridContainer::set_columns(int p_columns) { } int GridContainer::get_columns() const { - return columns; } void GridContainer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_columns", "columns"), &GridContainer::set_columns); ClassDB::bind_method(D_METHOD("get_columns"), &GridContainer::get_columns); @@ -196,7 +189,6 @@ void GridContainer::_bind_methods() { } Size2 GridContainer::get_minimum_size() const { - Map<int, int> col_minw; Map<int, int> row_minh; @@ -208,7 +200,6 @@ Size2 GridContainer::get_minimum_size() const { int valid_controls_index = 0; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c || !c->is_visible()) continue; diff --git a/scene/gui/grid_container.h b/scene/gui/grid_container.h index 0ed8863196..0a1bd6751a 100644 --- a/scene/gui/grid_container.h +++ b/scene/gui/grid_container.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" class GridContainer : public Container { - GDCLASS(GridContainer, Container); int columns; diff --git a/scene/gui/item_list.cpp b/scene/gui/item_list.cpp index 47a5ac68d2..86daa47c36 100644 --- a/scene/gui/item_list.cpp +++ b/scene/gui/item_list.cpp @@ -33,7 +33,6 @@ #include "core/project_settings.h" void ItemList::add_item(const String &p_item, const Ref<Texture2D> &p_texture, bool p_selectable) { - Item item; item.icon = p_texture; item.icon_transposed = false; @@ -52,7 +51,6 @@ void ItemList::add_item(const String &p_item, const Ref<Texture2D> &p_texture, b } void ItemList::add_icon_item(const Ref<Texture2D> &p_item, bool p_selectable) { - Item item; item.icon = p_item; item.icon_transposed = false; @@ -71,7 +69,6 @@ void ItemList::add_icon_item(const Ref<Texture2D> &p_item, bool p_selectable) { } void ItemList::set_item_text(int p_idx, const String &p_text) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].text = p_text; @@ -80,7 +77,6 @@ void ItemList::set_item_text(int p_idx, const String &p_text) { } String ItemList::get_item_text(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), String()); return items[p_idx].text; } @@ -96,7 +92,6 @@ bool ItemList::is_item_tooltip_enabled(int p_idx) const { } void ItemList::set_item_tooltip(int p_idx, const String &p_tooltip) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].tooltip = p_tooltip; @@ -105,13 +100,11 @@ void ItemList::set_item_tooltip(int p_idx, const String &p_tooltip) { } String ItemList::get_item_tooltip(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), String()); return items[p_idx].tooltip; } void ItemList::set_item_icon(int p_idx, const Ref<Texture2D> &p_icon) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].icon = p_icon; @@ -120,14 +113,12 @@ void ItemList::set_item_icon(int p_idx, const Ref<Texture2D> &p_icon) { } Ref<Texture2D> ItemList::get_item_icon(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Ref<Texture2D>()); return items[p_idx].icon; } void ItemList::set_item_icon_transposed(int p_idx, const bool p_transposed) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].icon_transposed = p_transposed; @@ -136,14 +127,12 @@ void ItemList::set_item_icon_transposed(int p_idx, const bool p_transposed) { } bool ItemList::is_item_icon_transposed(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), false); return items[p_idx].icon_transposed; } void ItemList::set_item_icon_region(int p_idx, const Rect2 &p_region) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].icon_region = p_region; @@ -152,14 +141,12 @@ void ItemList::set_item_icon_region(int p_idx, const Rect2 &p_region) { } Rect2 ItemList::get_item_icon_region(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Rect2()); return items[p_idx].icon_region; } void ItemList::set_item_icon_modulate(int p_idx, const Color &p_modulate) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].icon_modulate = p_modulate; @@ -167,42 +154,36 @@ void ItemList::set_item_icon_modulate(int p_idx, const Color &p_modulate) { } Color ItemList::get_item_icon_modulate(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Color()); return items[p_idx].icon_modulate; } void ItemList::set_item_custom_bg_color(int p_idx, const Color &p_custom_bg_color) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].custom_bg = p_custom_bg_color; } Color ItemList::get_item_custom_bg_color(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Color()); return items[p_idx].custom_bg; } void ItemList::set_item_custom_fg_color(int p_idx, const Color &p_custom_fg_color) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].custom_fg = p_custom_fg_color; } Color ItemList::get_item_custom_fg_color(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Color()); return items[p_idx].custom_fg; } void ItemList::set_item_tag_icon(int p_idx, const Ref<Texture2D> &p_tag_icon) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].tag_icon = p_tag_icon; @@ -210,27 +191,23 @@ void ItemList::set_item_tag_icon(int p_idx, const Ref<Texture2D> &p_tag_icon) { shape_changed = true; } Ref<Texture2D> ItemList::get_item_tag_icon(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Ref<Texture2D>()); return items[p_idx].tag_icon; } void ItemList::set_item_selectable(int p_idx, bool p_selectable) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].selectable = p_selectable; } bool ItemList::is_item_selectable(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), false); return items[p_idx].selectable; } void ItemList::set_item_disabled(int p_idx, bool p_disabled) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].disabled = p_disabled; @@ -238,13 +215,11 @@ void ItemList::set_item_disabled(int p_idx, bool p_disabled) { } bool ItemList::is_item_disabled(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), false); return items[p_idx].disabled; } void ItemList::set_item_metadata(int p_idx, const Variant &p_metadata) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].metadata = p_metadata; @@ -253,16 +228,13 @@ void ItemList::set_item_metadata(int p_idx, const Variant &p_metadata) { } Variant ItemList::get_item_metadata(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Variant()); return items[p_idx].metadata; } void ItemList::select(int p_idx, bool p_single) { - ERR_FAIL_INDEX(p_idx, items.size()); if (p_single || select_mode == SELECT_SINGLE) { - if (!items[p_idx].selectable || items[p_idx].disabled) { return; } @@ -274,7 +246,6 @@ void ItemList::select(int p_idx, bool p_single) { current = p_idx; ensure_selected_visible = false; } else { - if (items[p_idx].selectable && !items[p_idx].disabled) { items.write[p_idx].selected = true; } @@ -282,7 +253,6 @@ void ItemList::select(int p_idx, bool p_single) { update(); } void ItemList::unselect(int p_idx) { - ERR_FAIL_INDEX(p_idx, items.size()); if (select_mode != SELECT_MULTI) { @@ -295,12 +265,10 @@ void ItemList::unselect(int p_idx) { } void ItemList::unselect_all() { - if (items.size() < 1) return; for (int i = 0; i < items.size(); i++) { - items.write[i].selected = false; } current = -1; @@ -308,7 +276,6 @@ void ItemList::unselect_all() { } bool ItemList::is_selected(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), false); return items[p_idx].selected; @@ -326,12 +293,10 @@ void ItemList::set_current(int p_current) { } int ItemList::get_current() const { - return current; } void ItemList::move_item(int p_from_idx, int p_to_idx) { - ERR_FAIL_INDEX(p_from_idx, items.size()); ERR_FAIL_INDEX(p_to_idx, items.size()); @@ -348,11 +313,9 @@ void ItemList::move_item(int p_from_idx, int p_to_idx) { } int ItemList::get_item_count() const { - return items.size(); } void ItemList::remove_item(int p_idx) { - ERR_FAIL_INDEX(p_idx, items.size()); items.remove(p_idx); @@ -362,7 +325,6 @@ void ItemList::remove_item(int p_idx) { } void ItemList::clear() { - items.clear(); current = -1; ensure_selected_visible = false; @@ -372,65 +334,54 @@ void ItemList::clear() { } void ItemList::set_fixed_column_width(int p_size) { - ERR_FAIL_COND(p_size < 0); fixed_column_width = p_size; update(); shape_changed = true; } int ItemList::get_fixed_column_width() const { - return fixed_column_width; } void ItemList::set_same_column_width(bool p_enable) { - same_column_width = p_enable; update(); shape_changed = true; } bool ItemList::is_same_column_width() const { - return same_column_width; } void ItemList::set_max_text_lines(int p_lines) { - ERR_FAIL_COND(p_lines < 1); max_text_lines = p_lines; update(); shape_changed = true; } int ItemList::get_max_text_lines() const { - return max_text_lines; } void ItemList::set_max_columns(int p_amount) { - ERR_FAIL_COND(p_amount < 0); max_columns = p_amount; update(); shape_changed = true; } int ItemList::get_max_columns() const { - return max_columns; } void ItemList::set_select_mode(SelectMode p_mode) { - select_mode = p_mode; update(); } ItemList::SelectMode ItemList::get_select_mode() const { - return select_mode; } void ItemList::set_icon_mode(IconMode p_mode) { - ERR_FAIL_INDEX((int)p_mode, 2); icon_mode = p_mode; update(); @@ -438,22 +389,18 @@ void ItemList::set_icon_mode(IconMode p_mode) { } ItemList::IconMode ItemList::get_icon_mode() const { - return icon_mode; } void ItemList::set_fixed_icon_size(const Size2 &p_size) { - fixed_icon_size = p_size; update(); } Size2 ItemList::get_fixed_icon_size() const { - return fixed_icon_size; } Size2 ItemList::Item::get_icon_size() const { - if (icon.is_null()) return Size2(); @@ -471,7 +418,6 @@ Size2 ItemList::Item::get_icon_size() const { } void ItemList::_gui_input(const Ref<InputEvent> &p_event) { - double prev_scroll = scroll_bar->get_value(); Ref<InputEventMouseMotion> mm = p_event; @@ -483,7 +429,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> mb = p_event; if (defer_select_single >= 0 && mb.is_valid() && mb->get_button_index() == BUTTON_LEFT && !mb->is_pressed()) { - select(defer_select_single, true); emit_signal("multi_selected", defer_select_single, true); @@ -492,7 +437,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } if (mb.is_valid() && (mb->get_button_index() == BUTTON_LEFT || (allow_rmb_select && mb->get_button_index() == BUTTON_RIGHT)) && mb->is_pressed()) { - search_string = ""; //any mousepress cancels Vector2 pos = mb->get_position(); Ref<StyleBox> bg = get_theme_stylebox("bg"); @@ -502,7 +446,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { int closest = -1; for (int i = 0; i < items.size(); i++) { - Rect2 rc = items[i].rect_cache; if (i % current_columns == current_columns - 1) { rc.size.width = get_size().width; //not right but works @@ -515,7 +458,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } if (closest != -1) { - int i = closest; if (select_mode == SELECT_MULTI && items[i].selected && mb->get_command()) { @@ -523,7 +465,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { emit_signal("multi_selected", i, false); } else if (select_mode == SELECT_MULTI && mb->get_shift() && current >= 0 && current < items.size() && current != i) { - int from = current; int to = i; if (i < current) { @@ -537,18 +478,15 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } if (mb->get_button_index() == BUTTON_RIGHT) { - emit_signal("item_rmb_selected", i, get_local_mouse_position()); } } else { - if (!mb->is_doubleclick() && !mb->get_command() && select_mode == SELECT_MULTI && items[i].selectable && !items[i].disabled && items[i].selected && mb->get_button_index() == BUTTON_LEFT) { defer_select_single = i; return; } if (items[i].selected && mb->get_button_index() == BUTTON_RIGHT) { - emit_signal("item_rmb_selected", i, get_local_mouse_position()); } else { bool selected = items[i].selected; @@ -563,10 +501,8 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } if (mb->get_button_index() == BUTTON_RIGHT) { - emit_signal("item_rmb_selected", i, get_local_mouse_position()); } else if (/*select_mode==SELECT_SINGLE &&*/ mb->is_doubleclick()) { - emit_signal("item_activated", i); } } @@ -584,28 +520,21 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { emit_signal("nothing_selected"); } if (mb.is_valid() && mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed()) { - scroll_bar->set_value(scroll_bar->get_value() - scroll_bar->get_page() * mb->get_factor() / 8); } if (mb.is_valid() && mb->get_button_index() == BUTTON_WHEEL_DOWN && mb->is_pressed()) { - scroll_bar->set_value(scroll_bar->get_value() + scroll_bar->get_page() * mb->get_factor() / 8); } if (p_event->is_pressed() && items.size() > 0) { if (p_event->is_action("ui_up")) { - if (search_string != "") { - uint64_t now = OS::get_singleton()->get_ticks_msec(); uint64_t diff = now - search_time_msec; if (diff < uint64_t(ProjectSettings::get_singleton()->get("gui/timers/incremental_search_max_interval_msec")) * 2) { - for (int i = current - 1; i >= 0; i--) { - if (items[i].text.begins_with(search_string)) { - set_current(i); ensure_current_is_visible(); if (select_mode == SELECT_SINGLE) { @@ -629,18 +558,13 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { accept_event(); } } else if (p_event->is_action("ui_down")) { - if (search_string != "") { - uint64_t now = OS::get_singleton()->get_ticks_msec(); uint64_t diff = now - search_time_msec; if (diff < uint64_t(ProjectSettings::get_singleton()->get("gui/timers/incremental_search_max_interval_msec")) * 2) { - for (int i = current + 1; i < items.size(); i++) { - if (items[i].text.begins_with(search_string)) { - set_current(i); ensure_current_is_visible(); if (select_mode == SELECT_SINGLE) { @@ -663,7 +587,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { accept_event(); } } else if (p_event->is_action("ui_page_up")) { - search_string = ""; //any mousepress cancels for (int i = 4; i > 0; i--) { @@ -678,7 +601,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } } } else if (p_event->is_action("ui_page_down")) { - search_string = ""; //any mousepress cancels for (int i = 4; i > 0; i--) { @@ -694,7 +616,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } } } else if (p_event->is_action("ui_left")) { - search_string = ""; //any mousepress cancels if (current % current_columns != 0) { @@ -706,7 +627,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { accept_event(); } } else if (p_event->is_action("ui_right")) { - search_string = ""; //any mousepress cancels if (current % current_columns != (current_columns - 1) && current + 1 < items.size()) { @@ -720,7 +640,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } else if (p_event->is_action("ui_cancel")) { search_string = ""; } else if (p_event->is_action("ui_select") && select_mode == SELECT_MULTI) { - if (current >= 0 && current < items.size()) { if (items[current].selectable && !items[current].disabled && !items[current].selected) { select(current, false); @@ -737,11 +656,9 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { emit_signal("item_activated", current); } } else { - Ref<InputEventKey> k = p_event; if (k.is_valid() && k->get_unicode()) { - uint64_t now = OS::get_singleton()->get_ticks_msec(); uint64_t diff = now - search_time_msec; uint64_t max_interval = uint64_t(GLOBAL_DEF("gui/timers/incremental_search_max_interval_msec", 2000)); @@ -780,7 +697,6 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventPanGesture> pan_gesture = p_event; if (pan_gesture.is_valid()) { - scroll_bar->set_value(scroll_bar->get_value() + scroll_bar->get_page() * pan_gesture->get_delta().y / 8); } @@ -789,13 +705,11 @@ void ItemList::_gui_input(const Ref<InputEvent> &p_event) { } void ItemList::ensure_current_is_visible() { - ensure_selected_visible = true; update(); } static Rect2 _adjust_to_max_size(Size2 p_size, Size2 p_max_size) { - Size2 size = p_max_size; int tex_width = p_size.width * size.height / p_size.height; int tex_height = size.height; @@ -812,14 +726,12 @@ static Rect2 _adjust_to_max_size(Size2 p_size, Size2 p_max_size) { } void ItemList::_notification(int p_what) { - if (p_what == NOTIFICATION_RESIZED) { shape_changed = true; update(); } if (p_what == NOTIFICATION_DRAW) { - Ref<StyleBox> bg = get_theme_stylebox("bg"); int mw = scroll_bar->get_minimum_size().x; @@ -865,15 +777,12 @@ void ItemList::_notification(int p_what) { } if (shape_changed) { - float max_column_width = 0; //1- compute item minimum sizes for (int i = 0; i < items.size(); i++) { - Size2 minsize; if (items[i].icon.is_valid()) { - if (fixed_icon_size.x > 0 && fixed_icon_size.y > 0) { minsize = fixed_icon_size * icon_scale; } else { @@ -890,7 +799,6 @@ void ItemList::_notification(int p_what) { } if (items[i].text != "") { - Size2 s = font->get_string_size(items[i].text); //s.width=MIN(s.width,fixed_column_width); @@ -934,7 +842,6 @@ void ItemList::_notification(int p_what) { int max_h = 0; separators.clear(); for (int i = 0; i < items.size(); i++) { - if (current_columns > 1 && items[i].rect_cache.size.width + ofs.x > fit_size) { //went past current_columns = MAX(col, 1); @@ -949,7 +856,6 @@ void ItemList::_notification(int p_what) { ofs.x += items[i].rect_cache.size.x + hseparation; col++; if (col == current_columns) { - if (i < items.size() - 1) separators.push_back(ofs.y + max_h + vseparation / 2); @@ -994,7 +900,6 @@ void ItemList::_notification(int p_what) { //ensure_selected_visible needs to be checked before we draw the list. if (ensure_selected_visible && current >= 0 && current < items.size()) { - Rect2 r = items[current].rect_cache; int from = scroll_bar->get_value(); int to = from + scroll_bar->get_page(); @@ -1035,7 +940,6 @@ void ItemList::_notification(int p_what) { } for (int i = first_item_visible; i < items.size(); i++) { - Rect2 rcache = items[i].rect_cache; if (rcache.position.y > clip.position.y + clip.size.y) @@ -1073,7 +977,6 @@ void ItemList::_notification(int p_what) { Vector2 text_ofs; if (items[i].icon.is_valid()) { - Size2 icon_size; //= _adjust_to_max_size(items[i].get_icon_size(),fixed_icon_size) * icon_scale; @@ -1088,7 +991,6 @@ void ItemList::_notification(int p_what) { Point2 pos = items[i].rect_cache.position + icon_ofs + base_ofs; if (icon_mode == ICON_MODE_TOP) { - pos.x += Math::floor((items[i].rect_cache.size.width - icon_size.width) / 2); pos.y += MIN( Math::floor((items[i].rect_cache.size.height - icon_size.height) / 2), @@ -1096,7 +998,6 @@ void ItemList::_notification(int p_what) { text_ofs.y = icon_size.height + icon_margin; text_ofs.y += items[i].rect_cache.size.height - items[i].min_rect_cache.size.height; } else { - pos.y += Math::floor((items[i].rect_cache.size.height - icon_size.height) / 2); text_ofs.x = icon_size.width + icon_margin; } @@ -1125,12 +1026,10 @@ void ItemList::_notification(int p_what) { } if (items[i].tag_icon.is_valid()) { - draw_texture(items[i].tag_icon, items[i].rect_cache.position + base_ofs); } if (items[i].text != "") { - int max_len = -1; Vector2 size2 = font->get_string_size(items[i].text); @@ -1146,12 +1045,10 @@ void ItemList::_notification(int p_what) { modulate.a *= 0.5; if (icon_mode == ICON_MODE_TOP && max_text_lines > 0) { - int ss = items[i].text.length(); float ofs = 0; int line = 0; for (int j = 0; j <= ss; j++) { - int cs = j < ss ? font->get_char_size(items[i].text[j], items[i].text[j + 1]).x : 0; if (ofs + cs > max_len || j == ss) { line_limit_cache.write[line] = j; @@ -1175,7 +1072,6 @@ void ItemList::_notification(int p_what) { FontDrawer drawer(font, Color(1, 1, 1)); for (int j = 0; j < ss; j++) { - if (j == line_limit_cache[line]) { line++; ofs = 0; @@ -1187,7 +1083,6 @@ void ItemList::_notification(int p_what) { //special multiline mode } else { - if (fixed_column_width > 0) size2.x = MIN(size2.x, fixed_column_width); @@ -1207,7 +1102,6 @@ void ItemList::_notification(int p_what) { } if (select_mode == SELECT_MULTI && i == current) { - Rect2 r = rcache; r.position += base_ofs; r.position.y -= vseparation / 2; @@ -1249,7 +1143,6 @@ void ItemList::_scroll_changed(double) { } int ItemList::get_item_at_position(const Point2 &p_pos, bool p_exact) const { - Vector2 pos = p_pos; Ref<StyleBox> bg = get_theme_stylebox("bg"); pos -= bg->get_offset(); @@ -1259,7 +1152,6 @@ int ItemList::get_item_at_position(const Point2 &p_pos, bool p_exact) const { int closest_dist = 0x7FFFFFFF; for (int i = 0; i < items.size(); i++) { - Rect2 rc = items[i].rect_cache; if (i % current_columns == current_columns - 1) { rc.size.width = get_size().width - rc.position.x; //make sure you can still select the last item when clicking past the column @@ -1281,7 +1173,6 @@ int ItemList::get_item_at_position(const Point2 &p_pos, bool p_exact) const { } bool ItemList::is_pos_at_end_of_items(const Point2 &p_pos) const { - if (items.empty()) return true; @@ -1295,7 +1186,6 @@ bool ItemList::is_pos_at_end_of_items(const Point2 &p_pos) const { } String ItemList::get_tooltip(const Point2 &p_pos) const { - int closest = get_item_at_position(p_pos, true); if (closest != -1) { @@ -1314,7 +1204,6 @@ String ItemList::get_tooltip(const Point2 &p_pos) const { } void ItemList::sort_items_by_text() { - items.sort(); update(); shape_changed = true; @@ -1330,7 +1219,6 @@ void ItemList::sort_items_by_text() { } int ItemList::find_metadata(const Variant &p_metadata) const { - for (int i = 0; i < items.size(); i++) { if (items[i].metadata == p_metadata) { return i; @@ -1341,22 +1229,18 @@ int ItemList::find_metadata(const Variant &p_metadata) const { } void ItemList::set_allow_rmb_select(bool p_allow) { - allow_rmb_select = p_allow; } bool ItemList::get_allow_rmb_select() const { - return allow_rmb_select; } void ItemList::set_allow_reselect(bool p_allow) { - allow_reselect = p_allow; } bool ItemList::get_allow_reselect() const { - return allow_reselect; } @@ -1391,12 +1275,10 @@ bool ItemList::is_anything_selected() { } void ItemList::_set_items(const Array &p_items) { - ERR_FAIL_COND(p_items.size() % 3); clear(); for (int i = 0; i < p_items.size(); i += 3) { - String text = p_items[i + 0]; Ref<Texture2D> icon = p_items[i + 1]; bool disabled = p_items[i + 2]; @@ -1408,10 +1290,8 @@ void ItemList::_set_items(const Array &p_items) { } Array ItemList::_get_items() const { - Array items; for (int i = 0; i < get_item_count(); i++) { - items.push_back(get_item_text(i)); items.push_back(get_item_icon(i)); items.push_back(is_item_disabled(i)); @@ -1421,7 +1301,6 @@ Array ItemList::_get_items() const { } Size2 ItemList::get_minimum_size() const { - if (auto_height) { return Size2(0, auto_height_value); } @@ -1429,24 +1308,20 @@ Size2 ItemList::get_minimum_size() const { } void ItemList::set_autoscroll_to_bottom(const bool p_enable) { - do_autoscroll_to_bottom = p_enable; } void ItemList::set_auto_height(bool p_enable) { - auto_height = p_enable; shape_changed = true; update(); } bool ItemList::has_auto_height() const { - return auto_height; } void ItemList::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_item", "text", "icon", "selectable"), &ItemList::add_item, DEFVAL(Variant()), DEFVAL(true)); ClassDB::bind_method(D_METHOD("add_icon_item", "icon", "selectable"), &ItemList::add_icon_item, DEFVAL(true)); @@ -1581,7 +1456,6 @@ void ItemList::_bind_methods() { } ItemList::ItemList() { - current = -1; select_mode = SELECT_SINGLE; diff --git a/scene/gui/item_list.h b/scene/gui/item_list.h index da9851dd7d..4cdef40184 100644 --- a/scene/gui/item_list.h +++ b/scene/gui/item_list.h @@ -35,7 +35,6 @@ #include "scene/gui/scroll_bar.h" class ItemList : public Control { - GDCLASS(ItemList, Control); public: @@ -51,7 +50,6 @@ public: private: struct Item { - Ref<Texture2D> icon; bool icon_transposed; Rect2i icon_region; diff --git a/scene/gui/label.cpp b/scene/gui/label.cpp index 7490101ee3..5f84dbe34b 100644 --- a/scene/gui/label.cpp +++ b/scene/gui/label.cpp @@ -35,7 +35,6 @@ #include "core/translation.h" void Label::set_autowrap(bool p_autowrap) { - if (autowrap == p_autowrap) { return; } @@ -49,30 +48,24 @@ void Label::set_autowrap(bool p_autowrap) { } } bool Label::has_autowrap() const { - return autowrap; } void Label::set_uppercase(bool p_uppercase) { - uppercase = p_uppercase; word_cache_dirty = true; update(); } bool Label::is_uppercase() const { - return uppercase; } int Label::get_line_height() const { - return get_theme_font("font")->get_height(); } void Label::_notification(int p_what) { - if (p_what == NOTIFICATION_TRANSLATION_CHANGED) { - String new_text = tr(text); if (new_text == xl_text) return; //nothing new @@ -83,7 +76,6 @@ void Label::_notification(int p_what) { } if (p_what == NOTIFICATION_DRAW) { - if (clip) { RenderingServer::get_singleton()->canvas_item_set_clip(get_canvas_item(), true); } @@ -126,9 +118,7 @@ void Label::_notification(int p_what) { } if (lines_visible > 0) { - switch (valign) { - case VALIGN_TOP: { //nothing } break; @@ -166,7 +156,6 @@ void Label::_notification(int p_what) { if (line >= line_to) break; if (line < lines_skipped) { - while (wc && wc->char_pos >= 0) wc = wc->next; if (wc) @@ -190,7 +179,6 @@ void Label::_notification(int p_what) { int taken = 0; int spaces = 0; while (to && to->char_pos >= 0) { - taken += to->pixel_width; if (to != from && to->space_count) { spaces += to->space_count; @@ -203,18 +191,14 @@ void Label::_notification(int p_what) { float x_ofs = 0; switch (align) { - case ALIGN_FILL: case ALIGN_LEFT: { - x_ofs = style->get_offset().x; } break; case ALIGN_CENTER: { - x_ofs = int(size.width - (taken + spaces * space_w)) / 2; } break; case ALIGN_RIGHT: { - x_ofs = int(size.width - style->get_margin(MARGIN_RIGHT) - (taken + spaces * space_w)); } break; } @@ -224,11 +208,9 @@ void Label::_notification(int p_what) { y_ofs += vbegin + line * vsep; while (from != to) { - // draw a word int pos = from->char_pos; if (from->char_pos < 0) { - ERR_PRINT("BUG"); return; } @@ -236,17 +218,14 @@ void Label::_notification(int p_what) { /* spacing */ x_ofs += space_w * from->space_count; if (can_fill && align == ALIGN_FILL && spaces) { - x_ofs += int((size.width - (taken + space_w * spaces)) / spaces); } } if (font_color_shadow.a > 0) { - int chars_total_shadow = chars_total; //save chars drawn float x_ofs_shadow = x_ofs; for (int i = 0; i < from->word_len; i++) { - if (visible_chars < 0 || chars_total_shadow < visible_chars) { CharType c = xl_text[i + pos]; CharType n = xl_text[i + pos + 1]; @@ -267,7 +246,6 @@ void Label::_notification(int p_what) { } } for (int i = 0; i < from->word_len; i++) { - if (visible_chars < 0 || chars_total < visible_chars) { CharType c = xl_text[i + pos]; CharType n = xl_text[i + pos + 1]; @@ -289,18 +267,15 @@ void Label::_notification(int p_what) { } if (p_what == NOTIFICATION_THEME_CHANGED) { - word_cache_dirty = true; update(); } if (p_what == NOTIFICATION_RESIZED) { - word_cache_dirty = true; } } Size2 Label::get_minimum_size() const { - Size2 min_style = get_theme_stylebox("normal")->get_minimum_size(); // don't want to mutable everything @@ -319,27 +294,22 @@ Size2 Label::get_minimum_size() const { } int Label::get_longest_line_width() const { - Ref<Font> font = get_theme_font("font"); real_t max_line_width = 0; real_t line_width = 0; for (int i = 0; i < xl_text.size(); i++) { - CharType current = xl_text[i]; if (uppercase) current = String::char_uppercase(current); if (current < 32) { - if (current == '\n') { - if (line_width > max_line_width) max_line_width = line_width; line_width = 0; } } else { - real_t char_width = font->get_char_size(current, xl_text[i + 1]).width; line_width += char_width; } @@ -353,7 +323,6 @@ int Label::get_longest_line_width() const { } int Label::get_line_count() const { - if (!is_inside_tree()) return 1; if (word_cache_dirty) @@ -363,7 +332,6 @@ int Label::get_line_count() const { } int Label::get_visible_line_count() const { - int line_spacing = get_theme_constant("line_spacing"); int font_h = get_theme_font("font")->get_height() + line_spacing; int lines_visible = (get_size().height - get_theme_stylebox("normal")->get_minimum_size().height + line_spacing) / font_h; @@ -378,9 +346,7 @@ int Label::get_visible_line_count() const { } void Label::regenerate_word_cache() { - while (word_cache) { - WordCache *current = word_cache; word_cache = current->next; memdelete(current); @@ -408,7 +374,6 @@ void Label::regenerate_word_cache() { WordCache *last = nullptr; for (int i = 0; i <= xl_text.length(); i++) { - CharType current = i < xl_text.length() ? xl_text[i] : L' '; //always a space at the end, so the algo works if (uppercase) @@ -423,7 +388,6 @@ void Label::regenerate_word_cache() { real_t char_width = 0; if (current < 33) { - if (current_word_size > 0) { WordCache *wc = memnew(WordCache); if (word_cache) { @@ -526,31 +490,26 @@ void Label::regenerate_word_cache() { } void Label::set_align(Align p_align) { - ERR_FAIL_INDEX((int)p_align, 4); align = p_align; update(); } Label::Align Label::get_align() const { - return align; } void Label::set_valign(VAlign p_align) { - ERR_FAIL_INDEX((int)p_align, 4); valign = p_align; update(); } Label::VAlign Label::get_valign() const { - return valign; } void Label::set_text(const String &p_string) { - if (text == p_string) return; text = p_string; @@ -562,24 +521,20 @@ void Label::set_text(const String &p_string) { } void Label::set_clip_text(bool p_clip) { - clip = p_clip; update(); minimum_size_changed(); } bool Label::is_clipping_text() const { - return clip; } String Label::get_text() const { - return text; } void Label::set_visible_characters(int p_amount) { - visible_chars = p_amount; if (get_total_character_count() > 0) { percent_visible = (float)p_amount / (float)total_char_cache; @@ -589,19 +544,15 @@ void Label::set_visible_characters(int p_amount) { } int Label::get_visible_characters() const { - return visible_chars; } void Label::set_percent_visible(float p_percent) { - if (p_percent < 0 || p_percent >= 1) { - visible_chars = -1; percent_visible = 1; } else { - visible_chars = get_total_character_count() * p_percent; percent_visible = p_percent; } @@ -610,34 +561,28 @@ void Label::set_percent_visible(float p_percent) { } float Label::get_percent_visible() const { - return percent_visible; } void Label::set_lines_skipped(int p_lines) { - lines_skipped = p_lines; update(); } int Label::get_lines_skipped() const { - return lines_skipped; } void Label::set_max_lines_visible(int p_lines) { - max_lines_visible = p_lines; update(); } int Label::get_max_lines_visible() const { - return max_lines_visible; } int Label::get_total_character_count() const { - if (word_cache_dirty) const_cast<Label *>(this)->regenerate_word_cache(); @@ -645,7 +590,6 @@ int Label::get_total_character_count() const { } void Label::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_align", "align"), &Label::set_align); ClassDB::bind_method(D_METHOD("get_align"), &Label::get_align); ClassDB::bind_method(D_METHOD("set_valign", "valign"), &Label::set_valign); @@ -700,9 +644,7 @@ Label::Label(const String &p_text) { } Label::~Label() { - while (word_cache) { - WordCache *current = word_cache; word_cache = current->next; memdelete(current); diff --git a/scene/gui/label.h b/scene/gui/label.h index 0f84b01604..670db69dce 100644 --- a/scene/gui/label.h +++ b/scene/gui/label.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class Label : public Control { - GDCLASS(Label, Control); public: @@ -68,7 +67,6 @@ private: int get_longest_line_width() const; struct WordCache { - enum { CHAR_NEWLINE = -1, CHAR_WRAPLINE = -2 diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index bb177ae0e7..c1cfef0381 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -43,16 +43,13 @@ #endif #include "scene/main/window.h" static bool _is_text_char(CharType c) { - return !is_symbol(c); } void LineEdit::_gui_input(Ref<InputEvent> p_event) { - Ref<InputEventMouseButton> b = p_event; if (b.is_valid()) { - if (b->is_pressed() && b->get_button_index() == BUTTON_RIGHT && context_menu_enabled) { menu->set_position(get_global_transform().xform(get_local_mouse_position())); menu->set_size(Vector2(1, 1)); @@ -68,7 +65,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { _reset_caret_blink_timer(); if (b->is_pressed()) { - accept_event(); //don't pass event further when clicked on text field if (!text.empty() && is_editable() && _is_over_clear_button(b->get_position())) { clear_button_status.press_attempt = true; @@ -81,14 +77,11 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { set_cursor_at_pixel_pos(b->get_position().x); if (b->get_shift()) { - selection_fill_at_cursor(); selection.creating = true; } else { - if (b->is_doubleclick() && selecting_enabled) { - selection.enabled = true; selection.begin = 0; selection.end = text.length(); @@ -98,12 +91,10 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { selection.drag_attempt = false; if ((cursor_pos < selection.begin) || (cursor_pos > selection.end) || !selection.enabled) { - deselect(); selection.cursor_start = cursor_pos; selection.creating = true; } else if (selection.enabled) { - selection.drag_attempt = true; } } @@ -111,7 +102,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { update(); } else { - if (!text.empty() && is_editable() && clear_button_enabled) { bool press_attempt = clear_button_status.press_attempt; clear_button_status.press_attempt = false; @@ -137,7 +127,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { Ref<InputEventMouseMotion> m = p_event; if (m.is_valid()) { - if (!text.empty() && is_editable() && clear_button_enabled) { bool last_press_inside = clear_button_status.pressing_inside; clear_button_status.pressing_inside = clear_button_status.press_attempt && _is_over_clear_button(m->get_position()); @@ -147,7 +136,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { } if (m->get_button_mask() & BUTTON_LEFT) { - if (selection.creating) { set_cursor_at_pixel_pos(m->get_position().x); selection_fill_at_cursor(); @@ -158,7 +146,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { Ref<InputEventKey> k = p_event; if (k.is_valid()) { - if (!k->is_pressed()) return; @@ -202,11 +189,9 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { unsigned int code = k->get_keycode(); if (k->get_command() && is_shortcut_keys_enabled()) { - bool handled = true; switch (code) { - case (KEY_X): { // CUT. if (editable) { @@ -224,7 +209,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { case (KEY_V): { // PASTE. if (editable) { - paste_text(); } @@ -243,7 +227,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { case (KEY_U): { // Delete from start to cursor. if (editable) { - deselect(); text = text.substr(cursor_pos, text.length() - cursor_pos); update_cached_width(); @@ -256,7 +239,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { case (KEY_Y): { // PASTE (Yank for unix users). if (editable) { - paste_text(); } @@ -264,7 +246,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { case (KEY_K): { // Delete from cursor_pos to end. if (editable) { - deselect(); text = text.substr(0, cursor_pos); _text_changed(); @@ -300,13 +281,10 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { _reset_caret_blink_timer(); if (!k->get_metakey()) { - bool handled = true; switch (code) { - case KEY_KP_ENTER: case KEY_ENTER: { - emit_signal("text_entered", text); if (DisplayServer::get_singleton()->has_feature(DisplayServer::FEATURE_VIRTUAL_KEYBOARD)) DisplayServer::get_singleton()->virtual_keyboard_hide(); @@ -314,7 +292,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { } break; case KEY_BACKSPACE: { - if (!editable) break; @@ -380,7 +357,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { if (k->get_command()) { set_cursor_position(0); } else if (k->get_alt()) { - #else if (k->get_alt()) { handled = false; @@ -465,7 +441,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { } break; case KEY_UP: { - shift_selection_check_pre(k->get_shift()); if (get_cursor_position() == 0) handled = false; @@ -473,7 +448,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { shift_selection_check_post(k->get_shift()); } break; case KEY_DOWN: { - shift_selection_check_pre(k->get_shift()); if (get_cursor_position() == text.length()) handled = false; @@ -481,7 +455,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { shift_selection_check_post(k->get_shift()); } break; case KEY_DELETE: { - if (!editable) break; @@ -513,7 +486,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { bool prev_char = false; while (cc < text.length()) { - bool ischar = _is_text_char(text[cc]); if (prev_char && !ischar) @@ -538,7 +510,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { [[fallthrough]]; } case KEY_HOME: { - shift_selection_check_pre(k->get_shift()); set_cursor_position(0); shift_selection_check_post(k->get_shift()); @@ -551,7 +522,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { [[fallthrough]]; } case KEY_END: { - shift_selection_check_pre(k->get_shift()); set_cursor_position(text.length()); shift_selection_check_post(k->get_shift()); @@ -568,7 +538,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { } break; default: { - handled = false; } break; } @@ -577,7 +546,6 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { accept_event(); } else if (!k->get_command()) { if (k->get_unicode() >= 32 && k->get_keycode() != KEY_DELETE) { - if (editable) { selection_delete(); CharType ucodestr[2] = { (CharType)k->get_unicode(), 0 }; @@ -602,19 +570,16 @@ void LineEdit::_gui_input(Ref<InputEvent> p_event) { } void LineEdit::set_align(Align p_align) { - ERR_FAIL_INDEX((int)p_align, 4); align = p_align; update(); } LineEdit::Align LineEdit::get_align() const { - return align; } Variant LineEdit::get_drag_data(const Point2 &p_point) { - if (selection.drag_attempt && selection.enabled) { String t = text.substr(selection.begin, selection.end - selection.begin); Label *l = memnew(Label); @@ -626,11 +591,9 @@ Variant LineEdit::get_drag_data(const Point2 &p_point) { return Variant(); } bool LineEdit::can_drop_data(const Point2 &p_point, const Variant &p_data) const { - return p_data.get_type() == Variant::STRING; } void LineEdit::drop_data(const Point2 &p_point, const Variant &p_data) { - if (p_data.get_type() == Variant::STRING) { set_cursor_at_pixel_pos(p_point.x); int selected = selection.end - selection.begin; @@ -666,7 +629,6 @@ bool LineEdit::_is_over_clear_button(const Point2 &p_pos) const { } void LineEdit::_notification(int p_what) { - switch (p_what) { #ifdef TOOLS_ENABLED case NOTIFICATION_ENTER_TREE: { @@ -681,7 +643,6 @@ void LineEdit::_notification(int p_what) { } break; #endif case NOTIFICATION_RESIZED: { - window_pos = 0; set_cursor_position(get_cursor_position()); @@ -702,7 +663,6 @@ void LineEdit::_notification(int p_what) { update(); } break; case NOTIFICATION_DRAW: { - if ((!has_focus() && !menu->has_focus()) || !window_has_focus) { draw_caret = false; } @@ -726,7 +686,6 @@ void LineEdit::_notification(int p_what) { style->draw(ci, Rect2(Point2(), size)); if (has_focus()) { - get_theme_stylebox("focus")->draw(ci, Rect2(Point2(), size)); } @@ -735,21 +694,17 @@ void LineEdit::_notification(int p_what) { int cached_text_width = using_placeholder ? cached_placeholder_width : cached_width; switch (align) { - case ALIGN_FILL: case ALIGN_LEFT: { - x_ofs = style->get_offset().x; } break; case ALIGN_CENTER: { - if (window_pos != 0) x_ofs = style->get_offset().x; else x_ofs = MAX(style->get_margin(MARGIN_LEFT), int(size.width - (cached_text_width)) / 2); } break; case ALIGN_RIGHT: { - x_ofs = MAX(style->get_margin(MARGIN_LEFT), int(size.width - style->get_margin(MARGIN_RIGHT) - (cached_text_width))); } break; } @@ -800,7 +755,6 @@ void LineEdit::_notification(int p_what) { int caret_height = font->get_height() > y_area ? y_area : font->get_height(); FontDrawer drawer(font, Color(1, 1, 1)); while (true) { - // End of string, break. if (char_ofs >= t.length()) break; @@ -926,7 +880,6 @@ void LineEdit::_notification(int p_what) { } } break; case NOTIFICATION_FOCUS_ENTER: { - if (caret_blink_enabled) { caret_blink_timer->start(); } else { @@ -944,7 +897,6 @@ void LineEdit::_notification(int p_what) { } break; case NOTIFICATION_FOCUS_EXIT: { - if (caret_blink_enabled) { caret_blink_timer->stop(); } @@ -961,7 +913,6 @@ void LineEdit::_notification(int p_what) { } break; case MainLoop::NOTIFICATION_OS_IME_UPDATE: { - if (has_focus()) { ime_text = DisplayServer::get_singleton()->ime_get_text(); ime_selection = DisplayServer::get_singleton()->ime_get_selection(); @@ -972,14 +923,12 @@ void LineEdit::_notification(int p_what) { } void LineEdit::copy_text() { - if (selection.enabled && !pass) { DisplayServer::get_singleton()->clipboard_set(text.substr(selection.begin, selection.end - selection.begin)); } } void LineEdit::cut_text() { - if (selection.enabled && !pass) { DisplayServer::get_singleton()->clipboard_set(text.substr(selection.begin, selection.end - selection.begin)); selection_delete(); @@ -987,12 +936,10 @@ void LineEdit::cut_text() { } void LineEdit::paste_text() { - // Strip escape characters like \n and \t as they can't be displayed on LineEdit. String paste_buffer = DisplayServer::get_singleton()->clipboard_get().strip_escapes(); if (paste_buffer != "") { - int prev_len = text.length(); if (selection.enabled) selection_delete(); @@ -1050,7 +997,6 @@ void LineEdit::redo() { } void LineEdit::shift_selection_check_pre(bool p_shift) { - if (!selection.enabled && p_shift) { selection.cursor_start = cursor_pos; } @@ -1059,13 +1005,11 @@ void LineEdit::shift_selection_check_pre(bool p_shift) { } void LineEdit::shift_selection_check_post(bool p_shift) { - if (p_shift) selection_fill_at_cursor(); } void LineEdit::set_cursor_at_pixel_pos(int p_x) { - Ref<Font> font = get_theme_font("font"); int ofs = window_pos; Ref<StyleBox> style = get_theme_stylebox("normal"); @@ -1075,14 +1019,11 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) { int r_icon_width = Control::get_theme_icon("clear")->get_width(); switch (align) { - case ALIGN_FILL: case ALIGN_LEFT: { - pixel_ofs = int(style->get_offset().x); } break; case ALIGN_CENTER: { - if (window_pos != 0) pixel_ofs = int(style->get_offset().x); else @@ -1092,7 +1033,6 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) { pixel_ofs -= int(r_icon_width / 2 + style->get_margin(MARGIN_RIGHT)); } break; case ALIGN_RIGHT: { - pixel_ofs = int(size.width - style->get_margin(MARGIN_RIGHT) - (cached_width)); if (display_clear_icon) @@ -1101,7 +1041,6 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) { } while (ofs < text.length()) { - int char_w = 0; if (font != nullptr) { char_w = font->get_char_size(pass ? secret_character[0] : text[ofs]).width; @@ -1119,7 +1058,6 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) { } int LineEdit::get_cursor_pixel_pos() { - Ref<Font> font = get_theme_font("font"); int ofs = window_pos; Ref<StyleBox> style = get_theme_stylebox("normal"); @@ -1129,14 +1067,11 @@ int LineEdit::get_cursor_pixel_pos() { int r_icon_width = Control::get_theme_icon("clear")->get_width(); switch (align) { - case ALIGN_FILL: case ALIGN_LEFT: { - pixel_ofs = int(style->get_offset().x); } break; case ALIGN_CENTER: { - if (window_pos != 0) pixel_ofs = int(style->get_offset().x); else @@ -1146,7 +1081,6 @@ int LineEdit::get_cursor_pixel_pos() { pixel_ofs -= int(r_icon_width / 2 + style->get_margin(MARGIN_RIGHT)); } break; case ALIGN_RIGHT: { - pixel_ofs = int(size.width - style->get_margin(MARGIN_RIGHT) - (cached_width)); if (display_clear_icon) @@ -1210,7 +1144,6 @@ void LineEdit::_toggle_draw_caret() { } void LineEdit::delete_char() { - if ((text.length() <= 0) || (cursor_pos == 0)) return; @@ -1231,7 +1164,6 @@ void LineEdit::delete_char() { } void LineEdit::delete_text(int p_from_column, int p_to_column) { - if (text.size() > 0) { Ref<Font> font = get_theme_font("font"); if (font != nullptr) { @@ -1246,11 +1178,9 @@ void LineEdit::delete_text(int p_from_column, int p_to_column) { cursor_pos -= CLAMP(cursor_pos - p_from_column, 0, p_to_column - p_from_column); if (cursor_pos >= text.length()) { - cursor_pos = text.length(); } if (window_pos > cursor_pos) { - window_pos = cursor_pos; } @@ -1267,7 +1197,6 @@ void LineEdit::delete_text(int p_from_column, int p_to_column) { } void LineEdit::set_text(String p_text) { - clear_internal(); append_at_cursor(p_text); @@ -1281,18 +1210,15 @@ void LineEdit::set_text(String p_text) { } void LineEdit::clear() { - clear_internal(); _text_changed(); } String LineEdit::get_text() const { - return text; } void LineEdit::set_placeholder(String p_text) { - placeholder = p_text; placeholder_translated = tr(placeholder); update_placeholder_width(); @@ -1300,23 +1226,19 @@ void LineEdit::set_placeholder(String p_text) { } String LineEdit::get_placeholder() const { - return placeholder; } void LineEdit::set_placeholder_alpha(float p_alpha) { - placeholder_alpha = p_alpha; update(); } float LineEdit::get_placeholder_alpha() const { - return placeholder_alpha; } void LineEdit::set_cursor_position(int p_pos) { - if (p_pos > (int)text.length()) p_pos = text.length(); @@ -1326,7 +1248,6 @@ void LineEdit::set_cursor_position(int p_pos) { cursor_pos = p_pos; if (!is_inside_tree()) { - window_pos = cursor_pos; return; } @@ -1351,11 +1272,9 @@ void LineEdit::set_cursor_position(int p_pos) { int wp = window_pos; if (font.is_valid()) { - int accum_width = 0; for (int i = cursor_pos; i >= window_pos; i--) { - if (i >= text.length()) { // Do not do this, because if the cursor is at the end, its just fine that it takes no space. // accum_width = font->get_char_size(' ').width; @@ -1380,19 +1299,16 @@ void LineEdit::set_cursor_position(int p_pos) { } int LineEdit::get_cursor_position() const { - return cursor_pos; } void LineEdit::set_window_pos(int p_pos) { - window_pos = p_pos; if (window_pos < 0) window_pos = 0; } void LineEdit::append_at_cursor(String p_text) { - if ((max_length <= 0) || (text.length() + p_text.length() <= max_length)) { String pre = text.substr(0, cursor_pos); String post = text.substr(cursor_pos, text.length() - cursor_pos); @@ -1405,7 +1321,6 @@ void LineEdit::append_at_cursor(String p_text) { } void LineEdit::clear_internal() { - deselect(); _clear_undo_stack(); cached_width = 0; @@ -1417,7 +1332,6 @@ void LineEdit::clear_internal() { } Size2 LineEdit::get_minimum_size() const { - Ref<StyleBox> style = get_theme_stylebox("normal"); Ref<Font> font = get_theme_font("font"); @@ -1448,7 +1362,6 @@ Size2 LineEdit::get_minimum_size() const { } void LineEdit::deselect() { - selection.begin = 0; selection.end = 0; selection.cursor_start = 0; @@ -1459,7 +1372,6 @@ void LineEdit::deselect() { } void LineEdit::selection_delete() { - if (selection.enabled) delete_text(selection.begin, selection.end); @@ -1467,14 +1379,12 @@ void LineEdit::selection_delete() { } void LineEdit::set_max_length(int p_max_length) { - ERR_FAIL_COND(p_max_length < 0); max_length = p_max_length; set_text(text); } int LineEdit::get_max_length() const { - return max_length; } @@ -1508,7 +1418,6 @@ void LineEdit::select_all() { } void LineEdit::set_editable(bool p_editable) { - if (editable == p_editable) return; @@ -1520,24 +1429,20 @@ void LineEdit::set_editable(bool p_editable) { } bool LineEdit::is_editable() const { - return editable; } void LineEdit::set_secret(bool p_secret) { - pass = p_secret; update_cached_width(); update(); } bool LineEdit::is_secret() const { - return pass; } void LineEdit::set_secret_character(const String &p_string) { - // An empty string as the secret character would crash the engine. // It also wouldn't make sense to use multiple characters as the secret character. ERR_FAIL_COND_MSG(p_string.length() != 1, "Secret character must be exactly one character long (" + itos(p_string.length()) + " characters given)."); @@ -1580,12 +1485,10 @@ void LineEdit::select(int p_from, int p_to) { } bool LineEdit::is_text_field() const { - return true; } void LineEdit::menu_option(int p_option) { - switch (p_option) { case MENU_CUT: { if (editable) { @@ -1593,7 +1496,6 @@ void LineEdit::menu_option(int p_option) { } } break; case MENU_COPY: { - copy_text(); } break; case MENU_PASTE: { @@ -1642,7 +1544,6 @@ void LineEdit::_editor_settings_changed() { } void LineEdit::set_expand_to_text_length(bool p_enabled) { - expand_to_text_length = p_enabled; minimum_size_changed(); set_window_pos(0); @@ -1786,7 +1687,6 @@ void LineEdit::_generate_context_menu() { } void LineEdit::_bind_methods() { - ClassDB::bind_method(D_METHOD("_text_changed"), &LineEdit::_text_changed); ClassDB::bind_method(D_METHOD("set_align", "align"), &LineEdit::set_align); @@ -1873,7 +1773,6 @@ void LineEdit::_bind_methods() { } LineEdit::LineEdit() { - undo_stack_pos = nullptr; _create_undo_state(); align = ALIGN_LEFT; diff --git a/scene/gui/line_edit.h b/scene/gui/line_edit.h index 938974453a..d31a5cb8d8 100644 --- a/scene/gui/line_edit.h +++ b/scene/gui/line_edit.h @@ -35,7 +35,6 @@ #include "scene/gui/popup_menu.h" class LineEdit : public Control { - GDCLASS(LineEdit, Control); public: @@ -94,7 +93,6 @@ private: Ref<Texture2D> right_icon; struct Selection { - int begin; int end; int cursor_start; diff --git a/scene/gui/link_button.cpp b/scene/gui/link_button.cpp index 098e8297ad..d772b257fc 100644 --- a/scene/gui/link_button.cpp +++ b/scene/gui/link_button.cpp @@ -31,7 +31,6 @@ #include "link_button.h" void LinkButton::set_text(const String &p_text) { - text = p_text; update(); minimum_size_changed(); @@ -42,42 +41,33 @@ String LinkButton::get_text() const { } void LinkButton::set_underline_mode(UnderlineMode p_underline_mode) { - underline_mode = p_underline_mode; update(); } LinkButton::UnderlineMode LinkButton::get_underline_mode() const { - return underline_mode; } Size2 LinkButton::get_minimum_size() const { - return get_theme_font("font")->get_string_size(text); } void LinkButton::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_DRAW: { - RID ci = get_canvas_item(); Size2 size = get_size(); Color color; bool do_underline = false; switch (get_draw_mode()) { - case DRAW_NORMAL: { - color = get_theme_color("font_color"); do_underline = underline_mode == UNDERLINE_MODE_ALWAYS; } break; case DRAW_HOVER_PRESSED: case DRAW_PRESSED: { - if (has_theme_color("font_color_pressed")) color = get_theme_color("font_color_pressed"); else @@ -87,13 +77,11 @@ void LinkButton::_notification(int p_what) { } break; case DRAW_HOVER: { - color = get_theme_color("font_color_hover"); do_underline = underline_mode != UNDERLINE_MODE_NEVER; } break; case DRAW_DISABLED: { - color = get_theme_color("font_color_disabled"); do_underline = underline_mode == UNDERLINE_MODE_ALWAYS; @@ -101,7 +89,6 @@ void LinkButton::_notification(int p_what) { } if (has_focus()) { - Ref<StyleBox> style = get_theme_stylebox("focus"); style->draw(ci, Rect2(Point2(), size)); } @@ -123,7 +110,6 @@ void LinkButton::_notification(int p_what) { } void LinkButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_text", "text"), &LinkButton::set_text); ClassDB::bind_method(D_METHOD("get_text"), &LinkButton::get_text); diff --git a/scene/gui/link_button.h b/scene/gui/link_button.h index 3bef25e249..ee37a29f9d 100644 --- a/scene/gui/link_button.h +++ b/scene/gui/link_button.h @@ -35,7 +35,6 @@ #include "scene/resources/bit_map.h" class LinkButton : public BaseButton { - GDCLASS(LinkButton, BaseButton); public: diff --git a/scene/gui/margin_container.cpp b/scene/gui/margin_container.cpp index 1cd4ff4ff8..3f5bc43d93 100644 --- a/scene/gui/margin_container.cpp +++ b/scene/gui/margin_container.cpp @@ -31,7 +31,6 @@ #include "margin_container.h" Size2 MarginContainer::get_minimum_size() const { - int margin_left = get_theme_constant("margin_left"); int margin_top = get_theme_constant("margin_top"); int margin_right = get_theme_constant("margin_right"); @@ -40,7 +39,6 @@ Size2 MarginContainer::get_minimum_size() const { Size2 max; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -63,10 +61,8 @@ Size2 MarginContainer::get_minimum_size() const { } void MarginContainer::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_SORT_CHILDREN: { - int margin_left = get_theme_constant("margin_left"); int margin_top = get_theme_constant("margin_top"); int margin_right = get_theme_constant("margin_right"); @@ -75,7 +71,6 @@ void MarginContainer::_notification(int p_what) { Size2 s = get_size(); for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -88,7 +83,6 @@ void MarginContainer::_notification(int p_what) { } } break; case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); } break; } diff --git a/scene/gui/menu_button.cpp b/scene/gui/menu_button.cpp index a7d1f64e93..2593784cbd 100644 --- a/scene/gui/menu_button.cpp +++ b/scene/gui/menu_button.cpp @@ -34,12 +34,10 @@ #include "scene/main/window.h" void MenuButton::_unhandled_key_input(Ref<InputEvent> p_event) { - if (disable_shortcuts) return; if (p_event->is_pressed() && !p_event->is_echo() && (Object::cast_to<InputEventKey>(p_event.ptr()) || Object::cast_to<InputEventJoypadButton>(p_event.ptr()) || Object::cast_to<InputEventAction>(*p_event))) { - if (!get_parent() || !is_visible_in_tree() || is_disabled()) return; @@ -52,7 +50,6 @@ void MenuButton::_unhandled_key_input(Ref<InputEvent> p_event) { } void MenuButton::pressed() { - { Window *w = Object::cast_to<Window>(get_viewport()); if (w && !w->is_embedding_subwindows()) { @@ -75,39 +72,31 @@ void MenuButton::pressed() { } void MenuButton::_gui_input(Ref<InputEvent> p_event) { - BaseButton::_gui_input(p_event); } PopupMenu *MenuButton::get_popup() const { - return popup; } void MenuButton::_set_items(const Array &p_items) { - popup->set("items", p_items); } Array MenuButton::_get_items() const { - return popup->get("items"); } void MenuButton::set_switch_on_hover(bool p_enabled) { - switch_on_hover = p_enabled; } bool MenuButton::is_switch_on_hover() { - return switch_on_hover; } void MenuButton::_notification(int p_what) { - if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - if (!is_visible_in_tree()) { popup->hide(); } @@ -115,7 +104,6 @@ void MenuButton::_notification(int p_what) { } void MenuButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_popup"), &MenuButton::get_popup); ClassDB::bind_method(D_METHOD("_unhandled_key_input"), &MenuButton::_unhandled_key_input); ClassDB::bind_method(D_METHOD("_set_items"), &MenuButton::_set_items); @@ -131,12 +119,10 @@ void MenuButton::_bind_methods() { } void MenuButton::set_disable_shortcuts(bool p_disabled) { - disable_shortcuts = p_disabled; } MenuButton::MenuButton() { - switch_on_hover = false; set_flat(true); set_toggle_mode(true); diff --git a/scene/gui/menu_button.h b/scene/gui/menu_button.h index 9abd11632f..0cd161c1f0 100644 --- a/scene/gui/menu_button.h +++ b/scene/gui/menu_button.h @@ -35,7 +35,6 @@ #include "scene/gui/popup_menu.h" class MenuButton : public Button { - GDCLASS(MenuButton, Button); bool clicked; diff --git a/scene/gui/nine_patch_rect.cpp b/scene/gui/nine_patch_rect.cpp index cf10c4cfbd..a65edefa5f 100644 --- a/scene/gui/nine_patch_rect.cpp +++ b/scene/gui/nine_patch_rect.cpp @@ -33,9 +33,7 @@ #include "servers/rendering_server.h" void NinePatchRect::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - if (texture.is_null()) return; @@ -50,11 +48,9 @@ void NinePatchRect::_notification(int p_what) { } Size2 NinePatchRect::get_minimum_size() const { - return Size2(margin[MARGIN_LEFT] + margin[MARGIN_RIGHT], margin[MARGIN_TOP] + margin[MARGIN_BOTTOM]); } void NinePatchRect::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_texture", "texture"), &NinePatchRect::set_texture); ClassDB::bind_method(D_METHOD("get_texture"), &NinePatchRect::get_texture); ClassDB::bind_method(D_METHOD("set_patch_margin", "margin", "value"), &NinePatchRect::set_patch_margin); @@ -89,7 +85,6 @@ void NinePatchRect::_bind_methods() { } void NinePatchRect::set_texture(const Ref<Texture2D> &p_tex) { - if (texture == p_tex) return; texture = p_tex; @@ -104,12 +99,10 @@ void NinePatchRect::set_texture(const Ref<Texture2D> &p_tex) { } Ref<Texture2D> NinePatchRect::get_texture() const { - return texture; } void NinePatchRect::set_patch_margin(Margin p_margin, int p_size) { - ERR_FAIL_INDEX((int)p_margin, 4); margin[p_margin] = p_size; update(); @@ -131,13 +124,11 @@ void NinePatchRect::set_patch_margin(Margin p_margin, int p_size) { } int NinePatchRect::get_patch_margin(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0); return margin[p_margin]; } void NinePatchRect::set_region_rect(const Rect2 &p_region_rect) { - if (region_rect == p_region_rect) return; @@ -148,18 +139,15 @@ void NinePatchRect::set_region_rect(const Rect2 &p_region_rect) { } Rect2 NinePatchRect::get_region_rect() const { - return region_rect; } void NinePatchRect::set_draw_center(bool p_enabled) { - draw_center = p_enabled; update(); } bool NinePatchRect::is_draw_center_enabled() const { - return draw_center; } @@ -173,18 +161,15 @@ NinePatchRect::AxisStretchMode NinePatchRect::get_h_axis_stretch_mode() const { } void NinePatchRect::set_v_axis_stretch_mode(AxisStretchMode p_mode) { - axis_v = p_mode; update(); } NinePatchRect::AxisStretchMode NinePatchRect::get_v_axis_stretch_mode() const { - return axis_v; } NinePatchRect::NinePatchRect() { - margin[MARGIN_LEFT] = 0; margin[MARGIN_RIGHT] = 0; margin[MARGIN_BOTTOM] = 0; diff --git a/scene/gui/nine_patch_rect.h b/scene/gui/nine_patch_rect.h index 0ef7f6b299..23a40fb64b 100644 --- a/scene/gui/nine_patch_rect.h +++ b/scene/gui/nine_patch_rect.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class NinePatchRect : public Control { - GDCLASS(NinePatchRect, Control); public: diff --git a/scene/gui/option_button.cpp b/scene/gui/option_button.cpp index a03d6d0cdc..b3c024bd1d 100644 --- a/scene/gui/option_button.cpp +++ b/scene/gui/option_button.cpp @@ -33,7 +33,6 @@ #include "core/print_string.h" Size2 OptionButton::get_minimum_size() const { - Size2 minsize = Button::get_minimum_size(); if (has_theme_icon("arrow")) { @@ -51,10 +50,8 @@ Size2 OptionButton::get_minimum_size() const { } void OptionButton::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_DRAW: { - if (!has_theme_icon("arrow")) return; @@ -83,13 +80,11 @@ void OptionButton::_notification(int p_what) { arrow->draw(ci, ofs, clr); } break; case NOTIFICATION_THEME_CHANGED: { - if (has_theme_icon("arrow")) { _set_internal_margin(MARGIN_RIGHT, Control::get_theme_icon("arrow")->get_width()); } } break; case NOTIFICATION_VISIBILITY_CHANGED: { - if (!is_visible_in_tree()) { popup->hide(); } @@ -102,12 +97,10 @@ void OptionButton::_focused(int p_which) { } void OptionButton::_selected(int p_which) { - _select(p_which, true); } void OptionButton::pressed() { - Size2 size = get_size(); popup->set_position(get_screen_position() + Size2(0, size.height * get_global_transform().get_scale().y)); popup->set_size(Size2(size.width, 0)); @@ -115,96 +108,79 @@ void OptionButton::pressed() { } void OptionButton::add_icon_item(const Ref<Texture2D> &p_icon, const String &p_label, int p_id) { - popup->add_icon_radio_check_item(p_icon, p_label, p_id); if (popup->get_item_count() == 1) select(0); } void OptionButton::add_item(const String &p_label, int p_id) { - popup->add_radio_check_item(p_label, p_id); if (popup->get_item_count() == 1) select(0); } void OptionButton::set_item_text(int p_idx, const String &p_text) { - popup->set_item_text(p_idx, p_text); if (current == p_idx) set_text(p_text); } void OptionButton::set_item_icon(int p_idx, const Ref<Texture2D> &p_icon) { - popup->set_item_icon(p_idx, p_icon); if (current == p_idx) set_icon(p_icon); } void OptionButton::set_item_id(int p_idx, int p_id) { - popup->set_item_id(p_idx, p_id); } void OptionButton::set_item_metadata(int p_idx, const Variant &p_metadata) { - popup->set_item_metadata(p_idx, p_metadata); } void OptionButton::set_item_disabled(int p_idx, bool p_disabled) { - popup->set_item_disabled(p_idx, p_disabled); } String OptionButton::get_item_text(int p_idx) const { - return popup->get_item_text(p_idx); } Ref<Texture2D> OptionButton::get_item_icon(int p_idx) const { - return popup->get_item_icon(p_idx); } int OptionButton::get_item_id(int p_idx) const { - return popup->get_item_id(p_idx); } int OptionButton::get_item_index(int p_id) const { - return popup->get_item_index(p_id); } Variant OptionButton::get_item_metadata(int p_idx) const { - return popup->get_item_metadata(p_idx); } bool OptionButton::is_item_disabled(int p_idx) const { - return popup->is_item_disabled(p_idx); } int OptionButton::get_item_count() const { - return popup->get_item_count(); } void OptionButton::add_separator() { - popup->add_separator(); } void OptionButton::clear() { - popup->clear(); set_text(""); current = -1; } void OptionButton::_select(int p_which, bool p_emit) { - if (p_which < 0) return; if (p_which == current) @@ -213,7 +189,6 @@ void OptionButton::_select(int p_which, bool p_emit) { ERR_FAIL_INDEX(p_which, popup->get_item_count()); for (int i = 0; i < popup->get_item_count(); i++) { - popup->set_item_checked(i, i == p_which); } @@ -226,31 +201,26 @@ void OptionButton::_select(int p_which, bool p_emit) { } void OptionButton::_select_int(int p_which) { - if (p_which < 0 || p_which >= popup->get_item_count()) return; _select(p_which, false); } void OptionButton::select(int p_idx) { - _select(p_idx, false); } int OptionButton::get_selected() const { - return current; } int OptionButton::get_selected_id() const { - int idx = get_selected(); if (idx < 0) return 0; return get_item_id(current); } Variant OptionButton::get_selected_metadata() const { - int idx = get_selected(); if (idx < 0) return Variant(); @@ -258,20 +228,16 @@ Variant OptionButton::get_selected_metadata() const { } void OptionButton::remove_item(int p_idx) { - popup->remove_item(p_idx); } PopupMenu *OptionButton::get_popup() const { - return popup; } Array OptionButton::_get_items() const { - Array items; for (int i = 0; i < get_item_count(); i++) { - items.push_back(get_item_text(i)); items.push_back(get_item_icon(i)); items.push_back(is_item_disabled(i)); @@ -282,12 +248,10 @@ Array OptionButton::_get_items() const { return items; } void OptionButton::_set_items(const Array &p_items) { - ERR_FAIL_COND(p_items.size() % 5); clear(); for (int i = 0; i < p_items.size(); i += 5) { - String text = p_items[i + 0]; Ref<Texture2D> icon = p_items[i + 1]; bool disabled = p_items[i + 2]; @@ -303,12 +267,10 @@ void OptionButton::_set_items(const Array &p_items) { } void OptionButton::get_translatable_strings(List<String> *p_strings) const { - popup->get_translatable_strings(p_strings); } void OptionButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_item", "label", "id"), &OptionButton::add_item, DEFVAL(-1)); ClassDB::bind_method(D_METHOD("add_icon_item", "texture", "label", "id"), &OptionButton::add_icon_item, DEFVAL(-1)); ClassDB::bind_method(D_METHOD("set_item_text", "idx", "text"), &OptionButton::set_item_text); @@ -345,7 +307,6 @@ void OptionButton::_bind_methods() { } OptionButton::OptionButton() { - current = -1; set_toggle_mode(true); set_text_align(ALIGN_LEFT); diff --git a/scene/gui/option_button.h b/scene/gui/option_button.h index 9658e1fea8..69a94a34f3 100644 --- a/scene/gui/option_button.h +++ b/scene/gui/option_button.h @@ -35,7 +35,6 @@ #include "scene/gui/popup_menu.h" class OptionButton : public Button { - GDCLASS(OptionButton, Button); PopupMenu *popup; diff --git a/scene/gui/panel.cpp b/scene/gui/panel.cpp index a17d0eb9c6..a13d8a0cdd 100644 --- a/scene/gui/panel.cpp +++ b/scene/gui/panel.cpp @@ -33,9 +33,7 @@ #include "core/print_string.h" void Panel::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - RID ci = get_canvas_item(); Ref<StyleBox> style = mode == MODE_BACKGROUND ? get_theme_stylebox("panel") : get_theme_stylebox("panel_fg"); style->draw(ci, Rect2(Point2(), get_size())); diff --git a/scene/gui/panel.h b/scene/gui/panel.h index 75e266b6a6..a68c3d3f0c 100644 --- a/scene/gui/panel.h +++ b/scene/gui/panel.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class Panel : public Control { - GDCLASS(Panel, Control); public: diff --git a/scene/gui/panel_container.cpp b/scene/gui/panel_container.cpp index 62b9296409..6cac15d9f0 100644 --- a/scene/gui/panel_container.cpp +++ b/scene/gui/panel_container.cpp @@ -31,7 +31,6 @@ #include "panel_container.h" Size2 PanelContainer::get_minimum_size() const { - Ref<StyleBox> style; if (has_theme_stylebox("panel")) @@ -41,7 +40,6 @@ Size2 PanelContainer::get_minimum_size() const { Size2 ms; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c || !c->is_visible()) continue; @@ -59,9 +57,7 @@ Size2 PanelContainer::get_minimum_size() const { } void PanelContainer::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - RID ci = get_canvas_item(); Ref<StyleBox> style; @@ -74,7 +70,6 @@ void PanelContainer::_notification(int p_what) { } if (p_what == NOTIFICATION_SORT_CHILDREN) { - Ref<StyleBox> style; if (has_theme_stylebox("panel")) @@ -90,7 +85,6 @@ void PanelContainer::_notification(int p_what) { } for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c || !c->is_visible_in_tree()) continue; diff --git a/scene/gui/panel_container.h b/scene/gui/panel_container.h index 5623c3484b..b68bc223dc 100644 --- a/scene/gui/panel_container.h +++ b/scene/gui/panel_container.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" class PanelContainer : public Container { - GDCLASS(PanelContainer, Container); protected: diff --git a/scene/gui/popup.cpp b/scene/gui/popup.cpp index 6edafc65a0..7068e2e1e2 100644 --- a/scene/gui/popup.cpp +++ b/scene/gui/popup.cpp @@ -42,15 +42,12 @@ void Popup::_input_from_window(const Ref<InputEvent> &p_event) { } void Popup::_parent_focused() { - _close_pressed(); } void Popup::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_VISIBILITY_CHANGED: { if (is_visible()) { - parent_visible = get_parent_visible_window(); if (parent_visible) { parent_visible->connect("focus_entered", callable_mp(this, &Popup::_parent_focused)); @@ -79,7 +76,6 @@ void Popup::_notification(int p_what) { } void Popup::_close_pressed() { - Window *parent_window = parent_visible; if (parent_visible) { parent_visible->disconnect("focus_entered", callable_mp(this, &Popup::_parent_focused)); @@ -99,7 +95,6 @@ void Popup::set_as_minsize() { set_size(get_contents_minimum_size()); } void Popup::_bind_methods() { - ADD_SIGNAL(MethodInfo("popup_hide")); } @@ -133,7 +128,6 @@ Rect2i Popup::_popup_adjust_rect() const { } Popup::Popup() { - parent_visible = nullptr; set_wrap_controls(true); @@ -149,7 +143,6 @@ Popup::~Popup() { } Size2 PopupPanel::_get_contents_minimum_size() const { - Ref<StyleBox> p = get_theme_stylebox("panel", get_class_name()); Size2 ms; @@ -171,7 +164,6 @@ Size2 PopupPanel::_get_contents_minimum_size() const { } void PopupPanel::_update_child_rects() { - Ref<StyleBox> p = get_theme_stylebox("panel", get_class_name()); Vector2 cpos(p->get_offset()); @@ -196,21 +188,17 @@ void PopupPanel::_update_child_rects() { } void PopupPanel::_notification(int p_what) { - if (p_what == NOTIFICATION_THEME_CHANGED) { panel->add_theme_style_override("panel", get_theme_stylebox("panel", get_class_name())); } else if (p_what == NOTIFICATION_READY || p_what == NOTIFICATION_ENTER_TREE) { - panel->add_theme_style_override("panel", get_theme_stylebox("panel", get_class_name())); _update_child_rects(); } else if (p_what == NOTIFICATION_WM_SIZE_CHANGED) { - _update_child_rects(); } } PopupPanel::PopupPanel() { - panel = memnew(Panel); add_child(panel); } diff --git a/scene/gui/popup.h b/scene/gui/popup.h index 6cd2b4028f..0e32d55cb6 100644 --- a/scene/gui/popup.h +++ b/scene/gui/popup.h @@ -34,7 +34,6 @@ #include "scene/main/window.h" class Popup : public Window { - GDCLASS(Popup, Window); Window *parent_visible; @@ -56,7 +55,6 @@ public: }; class PopupPanel : public Popup { - GDCLASS(PopupPanel, Popup); Panel *panel; diff --git a/scene/gui/popup_menu.cpp b/scene/gui/popup_menu.cpp index 9c48801ec1..52fe991f83 100644 --- a/scene/gui/popup_menu.cpp +++ b/scene/gui/popup_menu.cpp @@ -38,7 +38,6 @@ #include "scene/gui/control.h" String PopupMenu::_get_accel_text(int p_item) const { - ERR_FAIL_INDEX_V(p_item, items.size(), String()); if (items[p_item].shortcut.is_valid()) @@ -49,7 +48,6 @@ String PopupMenu::_get_accel_text(int p_item) const { } Size2 PopupMenu::_get_contents_minimum_size() const { - int vseparation = get_theme_constant("vseparation"); int hseparation = get_theme_constant("hseparation"); @@ -64,15 +62,12 @@ Size2 PopupMenu::_get_contents_minimum_size() const { bool has_check = false; for (int i = 0; i < items.size(); i++) { - Size2 size; if (!items[i].icon.is_null()) { - Size2 icon_size = items[i].icon->get_size(); size.height = MAX(icon_size.height, font_h); icon_w = MAX(icon_size.width + hseparation, icon_w); } else { - size.height = font_h; } @@ -87,7 +82,6 @@ Size2 PopupMenu::_get_contents_minimum_size() const { size.height += vseparation; if (items[i].accel || (items[i].shortcut.is_valid() && items[i].shortcut->is_valid())) { - int accel_w = hseparation * 2; accel_w += font->get_string_size(_get_accel_text(i)).width; accel_max_w = MAX(accel_w, accel_max_w); @@ -109,7 +103,6 @@ Size2 PopupMenu::_get_contents_minimum_size() const { } int PopupMenu::_get_mouse_over(const Point2 &p_over) const { - if (p_over.x < 0 || p_over.x >= get_size().width) return -1; @@ -125,16 +118,13 @@ int PopupMenu::_get_mouse_over(const Point2 &p_over) const { float font_h = font->get_height(); for (int i = 0; i < items.size(); i++) { - ofs.y += vseparation; float h; if (!items[i].icon.is_null()) { - Size2 icon_size = items[i].icon->get_size(); h = MAX(icon_size.height, font_h); } else { - h = font_h; } @@ -148,7 +138,6 @@ int PopupMenu::_get_mouse_over(const Point2 &p_over) const { } void PopupMenu::_activate_submenu(int over) { - Node *n = get_node(items[over].submenu); ERR_FAIL_COND_MSG(!n, "Item subnode does not exist: " + items[over].submenu + "."); Popup *pm = Object::cast_to<Popup>(n); @@ -172,7 +161,6 @@ void PopupMenu::_activate_submenu(int over) { PopupMenu *pum = Object::cast_to<PopupMenu>(pm); if (pum) { - pr.position -= pum->get_position(); pum->clear_autohide_areas(); pum->add_autohide_area(Rect2(pr.position.x, pr.position.y, pr.size.x, items[over]._ofs_cache)); @@ -184,7 +172,6 @@ void PopupMenu::_activate_submenu(int over) { } void PopupMenu::_submenu_timeout() { - //if (!has_focus()) { // return; //do not activate if not has focus //} @@ -195,7 +182,6 @@ void PopupMenu::_submenu_timeout() { } void PopupMenu::_scroll(float p_factor, const Point2 &p_over) { - int vseparation = get_theme_constant("vseparation"); Ref<Font> font = get_theme_font("font"); @@ -226,20 +212,16 @@ void PopupMenu::_scroll(float p_factor, const Point2 &p_over) { } void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { - if (p_event->is_action("ui_down") && p_event->is_pressed()) { - int search_from = mouse_over + 1; if (search_from >= items.size()) search_from = 0; for (int i = search_from; i < items.size(); i++) { - if (i < 0 || i >= items.size()) continue; if (!items[i].separator && !items[i].disabled) { - mouse_over = i; emit_signal("id_focused", i); control->update(); @@ -248,18 +230,15 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { } } } else if (p_event->is_action("ui_up") && p_event->is_pressed()) { - int search_from = mouse_over - 1; if (search_from < 0) search_from = items.size() - 1; for (int i = search_from; i >= 0; i--) { - if (i >= items.size()) continue; if (!items[i].separator && !items[i].disabled) { - mouse_over = i; emit_signal("id_focused", i); control->update(); @@ -268,22 +247,18 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { } } } else if (p_event->is_action("ui_left") && p_event->is_pressed()) { - Node *n = get_parent(); if (n && Object::cast_to<PopupMenu>(n)) { hide(); set_input_as_handled(); } } else if (p_event->is_action("ui_right") && p_event->is_pressed()) { - if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator && items[mouse_over].submenu != "" && submenu_over != mouse_over) { _activate_submenu(mouse_over); set_input_as_handled(); } } else if (p_event->is_action("ui_accept") && p_event->is_pressed()) { - if (mouse_over >= 0 && mouse_over < items.size() && !items[mouse_over].separator) { - if (items[mouse_over].submenu != "" && submenu_over != mouse_over) { _activate_submenu(mouse_over); } else { @@ -296,25 +271,20 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> b = p_event; if (b.is_valid()) { - if (b->is_pressed()) return; int button_idx = b->get_button_index(); switch (button_idx) { - case BUTTON_WHEEL_DOWN: { - _scroll(-b->get_factor(), b->get_position()); } break; case BUTTON_WHEEL_UP: { - _scroll(b->get_factor(), b->get_position()); } break; default: { // Allow activating item by releasing the LMB or any that was down when the popup appeared if (button_idx == BUTTON_LEFT || (initial_button_mask & (1 << (button_idx - 1)))) { - bool was_during_grabbed_click = during_grabbed_click; during_grabbed_click = false; initial_button_mask = 0; @@ -336,7 +306,6 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { break; if (items[over].submenu != "") { - _activate_submenu(over); return; } @@ -351,7 +320,6 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> m = p_event; if (m.is_valid()) { - if (invalidated_click) { moved += m->get_relative(); if (moved.length() > 4) @@ -359,9 +327,7 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { } for (List<Rect2>::Element *E = autohide_areas.front(); E; E = E->next()) { - if (!Rect2(Point2(), get_size()).has_point(m->get_position()) && E->get().has_point(m->get_position())) { - _close_pressed(); return; } @@ -395,7 +361,6 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventKey> k = p_event; if (allow_search && k.is_valid() && k->get_unicode() && k->is_pressed()) { - uint64_t now = OS::get_singleton()->get_ticks_msec(); uint64_t diff = now - search_time_msec; uint64_t max_interval = uint64_t(GLOBAL_DEF("gui/timers/incremental_search_max_interval_msec", 2000)); @@ -431,7 +396,6 @@ void PopupMenu::_gui_input(const Ref<InputEvent> &p_event) { } void PopupMenu::_draw() { - RID ci = control->get_canvas_item(); Size2 size = get_size(); @@ -460,7 +424,6 @@ void PopupMenu::_draw() { float icon_ofs = 0.0; bool has_check = false; for (int i = 0; i < items.size(); i++) { - if (!items[i].icon.is_null()) icon_ofs = MAX(items[i].icon->get_size().width, icon_ofs); @@ -475,7 +438,6 @@ void PopupMenu::_draw() { check_ofs = MAX(get_theme_icon("checked")->get_width(), get_theme_icon("radio_checked")->get_width()) + hseparation; for (int i = 0; i < items.size(); i++) { - if (i > 0) ofs.y += vseparation; Point2 item_ofs = ofs; @@ -483,16 +445,13 @@ void PopupMenu::_draw() { float h; if (!items[i].icon.is_null()) { - icon_size = items[i].icon->get_size(); h = MAX(icon_size.height, font_h); } else { - h = font_h; } if (i == mouse_over) { - hover->draw(ci, Rect2(item_ofs + Point2(-hseparation, -vseparation / 2), Size2(get_size().width - style->get_minimum_size().width + hseparation * 2, h + vseparation))); } @@ -500,7 +459,6 @@ void PopupMenu::_draw() { item_ofs.x += items[i].h_ofs; if (items[i].separator) { - int sep_h = separator->get_center_size().height + separator->get_minimum_size().height; if (text != String()) { int ss = font->get_string_size(text).width; @@ -535,13 +493,11 @@ void PopupMenu::_draw() { item_ofs.y += font->get_ascent(); if (items[i].separator) { - if (text != String()) { int center = (get_size().width - font->get_string_size(text).width) / 2; font->draw(ci, Point2(center, item_ofs.y + Math::floor((h - font_h) / 2.0)), text, font_color_disabled); } } else { - item_ofs.x += icon_ofs + check_ofs; font->draw(ci, item_ofs + Point2(0, Math::floor((h - font_h) / 2.0)), text, items[i].disabled ? font_color_disabled : (i == mouse_over ? font_color_hover : font_color)); } @@ -560,11 +516,8 @@ void PopupMenu::_draw() { } void PopupMenu::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - PopupMenu *pm = Object::cast_to<PopupMenu>(get_parent()); if (pm) { // Inherit submenu's popup delay time from parent menu @@ -573,7 +526,6 @@ void PopupMenu::_notification(int p_what) { } } break; case NOTIFICATION_TRANSLATION_CHANGED: { - for (int i = 0; i < items.size(); i++) { items.write[i].xl_text = tr(items[i].text); } @@ -582,23 +534,19 @@ void PopupMenu::_notification(int p_what) { control->update(); } break; case NOTIFICATION_WM_MOUSE_ENTER: { - //grab_focus(); } break; case NOTIFICATION_WM_MOUSE_EXIT: { - if (mouse_over >= 0 && (items[mouse_over].submenu == "" || submenu_over != -1)) { mouse_over = -1; control->update(); } } break; case NOTIFICATION_POST_POPUP: { - initial_button_mask = Input::get_singleton()->get_mouse_button_mask(); during_grabbed_click = (bool)initial_button_mask; } break; case NOTIFICATION_WM_SIZE_CHANGED: { - } break; case NOTIFICATION_INTERNAL_PROCESS: { //only used when using operating system windows @@ -607,7 +555,6 @@ void PopupMenu::_notification(int p_what) { mouse_pos -= get_position(); for (List<Rect2>::Element *E = autohide_areas.front(); E; E = E->next()) { - if (!Rect2(Point2(), get_size()).has_point(mouse_pos) && E->get().has_point(mouse_pos)) { _close_pressed(); return; @@ -616,7 +563,6 @@ void PopupMenu::_notification(int p_what) { } } break; case NOTIFICATION_VISIBILITY_CHANGED: { - if (!is_visible()) { if (mouse_over >= 0) { mouse_over = -1; @@ -659,7 +605,6 @@ void PopupMenu::_notification(int p_what) { item.accel = p_accel; void PopupMenu::add_item(const String &p_label, int p_id, uint32_t p_accel) { - Item item; ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); items.push_back(item); @@ -668,7 +613,6 @@ void PopupMenu::add_item(const String &p_label, int p_id, uint32_t p_accel) { } void PopupMenu::add_icon_item(const Ref<Texture2D> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { - Item item; ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); item.icon = p_icon; @@ -678,7 +622,6 @@ void PopupMenu::add_icon_item(const Ref<Texture2D> &p_icon, const String &p_labe } void PopupMenu::add_check_item(const String &p_label, int p_id, uint32_t p_accel) { - Item item; ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); item.checkable_type = Item::CHECKABLE_TYPE_CHECK_BOX; @@ -688,7 +631,6 @@ void PopupMenu::add_check_item(const String &p_label, int p_id, uint32_t p_accel } void PopupMenu::add_icon_check_item(const Ref<Texture2D> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { - Item item; ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); item.icon = p_icon; @@ -699,7 +641,6 @@ void PopupMenu::add_icon_check_item(const Ref<Texture2D> &p_icon, const String & } void PopupMenu::add_radio_check_item(const String &p_label, int p_id, uint32_t p_accel) { - Item item; ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); item.checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; @@ -709,7 +650,6 @@ void PopupMenu::add_radio_check_item(const String &p_label, int p_id, uint32_t p } void PopupMenu::add_icon_radio_check_item(const Ref<Texture2D> &p_icon, const String &p_label, int p_id, uint32_t p_accel) { - Item item; ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); item.icon = p_icon; @@ -720,7 +660,6 @@ void PopupMenu::add_icon_radio_check_item(const Ref<Texture2D> &p_icon, const St } void PopupMenu::add_multistate_item(const String &p_label, int p_max_states, int p_default_state, int p_id, uint32_t p_accel) { - Item item; ITEM_SETUP_WITH_ACCEL(p_label, p_id, p_accel); item.max_states = p_max_states; @@ -740,7 +679,6 @@ void PopupMenu::add_multistate_item(const String &p_label, int p_max_states, int item.shortcut_is_global = p_global; void PopupMenu::add_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - Item item; ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); items.push_back(item); @@ -749,7 +687,6 @@ void PopupMenu::add_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_g } void PopupMenu::add_icon_shortcut(const Ref<Texture2D> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - Item item; ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); item.icon = p_icon; @@ -759,7 +696,6 @@ void PopupMenu::add_icon_shortcut(const Ref<Texture2D> &p_icon, const Ref<ShortC } void PopupMenu::add_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - Item item; ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); item.checkable_type = Item::CHECKABLE_TYPE_CHECK_BOX; @@ -769,7 +705,6 @@ void PopupMenu::add_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bo } void PopupMenu::add_icon_check_shortcut(const Ref<Texture2D> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - Item item; ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); item.icon = p_icon; @@ -780,7 +715,6 @@ void PopupMenu::add_icon_check_shortcut(const Ref<Texture2D> &p_icon, const Ref< } void PopupMenu::add_radio_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - Item item; ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); item.checkable_type = Item::CHECKABLE_TYPE_RADIO_BUTTON; @@ -790,7 +724,6 @@ void PopupMenu::add_radio_check_shortcut(const Ref<ShortCut> &p_shortcut, int p_ } void PopupMenu::add_icon_radio_check_shortcut(const Ref<Texture2D> &p_icon, const Ref<ShortCut> &p_shortcut, int p_id, bool p_global) { - Item item; ITEM_SETUP_WITH_SHORTCUT(p_shortcut, p_id, p_global); item.icon = p_icon; @@ -801,7 +734,6 @@ void PopupMenu::add_icon_radio_check_shortcut(const Ref<Texture2D> &p_icon, cons } void PopupMenu::add_submenu_item(const String &p_label, const String &p_submenu, int p_id) { - Item item; item.text = p_label; item.xl_text = tr(p_label); @@ -818,7 +750,6 @@ void PopupMenu::add_submenu_item(const String &p_label, const String &p_submenu, /* Methods to modify existing items. */ void PopupMenu::set_item_text(int p_idx, const String &p_text) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].text = p_text; items.write[p_idx].xl_text = tr(p_text); @@ -827,7 +758,6 @@ void PopupMenu::set_item_text(int p_idx, const String &p_text) { child_controls_changed(); } void PopupMenu::set_item_icon(int p_idx, const Ref<Texture2D> &p_icon) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].icon = p_icon; @@ -835,7 +765,6 @@ void PopupMenu::set_item_icon(int p_idx, const Ref<Texture2D> &p_icon) { child_controls_changed(); } void PopupMenu::set_item_checked(int p_idx, bool p_checked) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].checked = p_checked; @@ -844,7 +773,6 @@ void PopupMenu::set_item_checked(int p_idx, bool p_checked) { child_controls_changed(); } void PopupMenu::set_item_id(int p_idx, int p_id) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].id = p_id; @@ -853,7 +781,6 @@ void PopupMenu::set_item_id(int p_idx, int p_id) { } void PopupMenu::set_item_accelerator(int p_idx, uint32_t p_accel) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].accel = p_accel; @@ -862,7 +789,6 @@ void PopupMenu::set_item_accelerator(int p_idx, uint32_t p_accel) { } void PopupMenu::set_item_metadata(int p_idx, const Variant &p_meta) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].metadata = p_meta; control->update(); @@ -870,7 +796,6 @@ void PopupMenu::set_item_metadata(int p_idx, const Variant &p_meta) { } void PopupMenu::set_item_disabled(int p_idx, bool p_disabled) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].disabled = p_disabled; control->update(); @@ -878,7 +803,6 @@ void PopupMenu::set_item_disabled(int p_idx, bool p_disabled) { } void PopupMenu::set_item_submenu(int p_idx, const String &p_submenu) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].submenu = p_submenu; control->update(); @@ -886,7 +810,6 @@ void PopupMenu::set_item_submenu(int p_idx, const String &p_submenu) { } void PopupMenu::toggle_item_checked(int p_idx) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].checked = !items[p_idx].checked; control->update(); @@ -894,13 +817,11 @@ void PopupMenu::toggle_item_checked(int p_idx) { } String PopupMenu::get_item_text(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), ""); return items[p_idx].text; } int PopupMenu::get_item_idx_from_text(const String &text) const { - for (int idx = 0; idx < items.size(); idx++) { if (items[idx].text == text) return idx; @@ -910,45 +831,37 @@ int PopupMenu::get_item_idx_from_text(const String &text) const { } Ref<Texture2D> PopupMenu::get_item_icon(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Ref<Texture2D>()); return items[p_idx].icon; } uint32_t PopupMenu::get_item_accelerator(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), 0); return items[p_idx].accel; } Variant PopupMenu::get_item_metadata(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Variant()); return items[p_idx].metadata; } bool PopupMenu::is_item_disabled(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), false); return items[p_idx].disabled; } bool PopupMenu::is_item_checked(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), false); return items[p_idx].checked; } int PopupMenu::get_item_id(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), 0); return items[p_idx].id; } int PopupMenu::get_item_index(int p_id) const { - for (int i = 0; i < items.size(); i++) { - if (items[i].id == p_id) return i; } @@ -957,19 +870,16 @@ int PopupMenu::get_item_index(int p_id) const { } String PopupMenu::get_item_submenu(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), ""); return items[p_idx].submenu; } String PopupMenu::get_item_tooltip(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), ""); return items[p_idx].tooltip; } Ref<ShortCut> PopupMenu::get_item_shortcut(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), Ref<ShortCut>()); return items[p_idx].shortcut; } @@ -980,7 +890,6 @@ int PopupMenu::get_item_state(int p_idx) const { } void PopupMenu::set_item_as_separator(int p_idx, bool p_separator) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].separator = p_separator; control->update(); @@ -992,21 +901,18 @@ bool PopupMenu::is_item_separator(int p_idx) const { } void PopupMenu::set_item_as_checkable(int p_idx, bool p_checkable) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].checkable_type = p_checkable ? Item::CHECKABLE_TYPE_CHECK_BOX : Item::CHECKABLE_TYPE_NONE; control->update(); } void PopupMenu::set_item_as_radio_checkable(int p_idx, bool p_radio_checkable) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].checkable_type = p_radio_checkable ? Item::CHECKABLE_TYPE_RADIO_BUTTON : Item::CHECKABLE_TYPE_NONE; control->update(); } void PopupMenu::set_item_tooltip(int p_idx, const String &p_tooltip) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].tooltip = p_tooltip; control->update(); @@ -1028,7 +934,6 @@ void PopupMenu::set_item_shortcut(int p_idx, const Ref<ShortCut> &p_shortcut, bo } void PopupMenu::set_item_h_offset(int p_idx, int p_offset) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].h_ofs = p_offset; control->update(); @@ -1036,21 +941,18 @@ void PopupMenu::set_item_h_offset(int p_idx, int p_offset) { } void PopupMenu::set_item_multistate(int p_idx, int p_state) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].state = p_state; control->update(); } void PopupMenu::set_item_shortcut_disabled(int p_idx, bool p_disabled) { - ERR_FAIL_INDEX(p_idx, items.size()); items.write[p_idx].shortcut_is_disabled = p_disabled; control->update(); } void PopupMenu::toggle_item_multistate(int p_idx) { - ERR_FAIL_INDEX(p_idx, items.size()); if (0 >= items[p_idx].max_states) { return; @@ -1074,23 +976,19 @@ bool PopupMenu::is_item_radio_checkable(int p_idx) const { } bool PopupMenu::is_item_shortcut_disabled(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, items.size(), false); return items[p_idx].shortcut_is_disabled; } int PopupMenu::get_current_index() const { - return mouse_over; } int PopupMenu::get_item_count() const { - return items.size(); } bool PopupMenu::activate_item_by_event(const Ref<InputEvent> &p_event, bool p_for_global_only) { - uint32_t code = 0; Ref<InputEventKey> k = p_event; @@ -1140,7 +1038,6 @@ bool PopupMenu::activate_item_by_event(const Ref<InputEvent> &p_event, bool p_fo } void PopupMenu::activate_item(int p_item) { - ERR_FAIL_INDEX(p_item, items.size()); ERR_FAIL_COND(items[p_item].separator); int id = items[p_item].id >= 0 ? items[p_item].id : p_item; @@ -1189,7 +1086,6 @@ void PopupMenu::activate_item(int p_item) { } void PopupMenu::remove_item(int p_idx) { - ERR_FAIL_INDEX(p_idx, items.size()); if (items[p_idx].shortcut.is_valid()) { @@ -1202,7 +1098,6 @@ void PopupMenu::remove_item(int p_idx) { } void PopupMenu::add_separator(const String &p_text) { - Item sep; sep.separator = true; sep.id = -1; @@ -1215,7 +1110,6 @@ void PopupMenu::add_separator(const String &p_text) { } void PopupMenu::clear() { - for (int i = 0; i < items.size(); i++) { if (items[i].shortcut.is_valid()) { _unref_shortcut(items[i].shortcut); @@ -1228,10 +1122,8 @@ void PopupMenu::clear() { } Array PopupMenu::_get_items() const { - Array items; for (int i = 0; i < get_item_count(); i++) { - items.push_back(get_item_text(i)); items.push_back(get_item_icon(i)); // For compatibility, use false/true for no/checkbox and integers for other values @@ -1251,7 +1143,6 @@ Array PopupMenu::_get_items() const { } void PopupMenu::_ref_shortcut(Ref<ShortCut> p_sc) { - if (!shortcut_refcount.has(p_sc)) { shortcut_refcount[p_sc] = 1; p_sc->connect("changed", callable_mp((CanvasItem *)this, &CanvasItem::update)); @@ -1261,7 +1152,6 @@ void PopupMenu::_ref_shortcut(Ref<ShortCut> p_sc) { } void PopupMenu::_unref_shortcut(Ref<ShortCut> p_sc) { - ERR_FAIL_COND(!shortcut_refcount.has(p_sc)); shortcut_refcount[p_sc]--; if (shortcut_refcount[p_sc] == 0) { @@ -1271,12 +1161,10 @@ void PopupMenu::_unref_shortcut(Ref<ShortCut> p_sc) { } void PopupMenu::_set_items(const Array &p_items) { - ERR_FAIL_COND(p_items.size() % 10); clear(); for (int i = 0; i < p_items.size(); i += 10) { - String text = p_items[i + 0]; Ref<Texture2D> icon = p_items[i + 1]; // For compatibility, use false/true for no/checkbox and integers for other values @@ -1313,37 +1201,30 @@ void PopupMenu::_set_items(const Array &p_items) { // Hide on item selection determines whether or not the popup will close after item selection void PopupMenu::set_hide_on_item_selection(bool p_enabled) { - hide_on_item_selection = p_enabled; } bool PopupMenu::is_hide_on_item_selection() const { - return hide_on_item_selection; } void PopupMenu::set_hide_on_checkable_item_selection(bool p_enabled) { - hide_on_checkable_item_selection = p_enabled; } bool PopupMenu::is_hide_on_checkable_item_selection() const { - return hide_on_checkable_item_selection; } void PopupMenu::set_hide_on_multistate_item_selection(bool p_enabled) { - hide_on_multistate_item_selection = p_enabled; } bool PopupMenu::is_hide_on_multistate_item_selection() const { - return hide_on_multistate_item_selection; } void PopupMenu::set_submenu_popup_delay(float p_time) { - if (p_time <= 0) p_time = 0.01; @@ -1351,22 +1232,18 @@ void PopupMenu::set_submenu_popup_delay(float p_time) { } float PopupMenu::get_submenu_popup_delay() const { - return submenu_timer->get_wait_time(); } void PopupMenu::set_allow_search(bool p_allow) { - allow_search = p_allow; } bool PopupMenu::get_allow_search() const { - return allow_search; } String PopupMenu::get_tooltip(const Point2 &p_pos) const { - int over = _get_mouse_over(p_pos); if (over < 0 || over >= items.size()) return ""; @@ -1374,26 +1251,21 @@ String PopupMenu::get_tooltip(const Point2 &p_pos) const { } void PopupMenu::set_parent_rect(const Rect2 &p_rect) { - parent_rect = p_rect; } void PopupMenu::get_translatable_strings(List<String> *p_strings) const { - for (int i = 0; i < items.size(); i++) { - if (items[i].xl_text != "") p_strings->push_back(items[i].xl_text); } } void PopupMenu::add_autohide_area(const Rect2 &p_area) { - autohide_areas.push_back(p_area); } void PopupMenu::clear_autohide_areas() { - autohide_areas.clear(); } @@ -1406,7 +1278,6 @@ void PopupMenu::take_mouse_focus() { } void PopupMenu::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &PopupMenu::_gui_input); ClassDB::bind_method(D_METHOD("add_item", "label", "id", "accel"), &PopupMenu::add_item, DEFVAL(-1), DEFVAL(0)); @@ -1501,14 +1372,12 @@ void PopupMenu::_bind_methods() { } void PopupMenu::popup(const Rect2 &p_bounds) { - moved = Vector2(); invalidated_click = true; Popup::popup(p_bounds); } PopupMenu::PopupMenu() { - control = memnew(Control); add_child(control); diff --git a/scene/gui/popup_menu.h b/scene/gui/popup_menu.h index d5c1015863..d03a14d6e4 100644 --- a/scene/gui/popup_menu.h +++ b/scene/gui/popup_menu.h @@ -35,7 +35,6 @@ #include "scene/gui/shortcut.h" class PopupMenu : public Popup { - GDCLASS(PopupMenu, Popup); struct Item { diff --git a/scene/gui/progress_bar.cpp b/scene/gui/progress_bar.cpp index 362c45453d..9246f1723d 100644 --- a/scene/gui/progress_bar.cpp +++ b/scene/gui/progress_bar.cpp @@ -31,7 +31,6 @@ #include "progress_bar.h" Size2 ProgressBar::get_minimum_size() const { - Ref<StyleBox> bg = get_theme_stylebox("bg"); Ref<StyleBox> fg = get_theme_stylebox("fg"); Ref<Font> font = get_theme_font("font"); @@ -49,9 +48,7 @@ Size2 ProgressBar::get_minimum_size() const { } void ProgressBar::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - Ref<StyleBox> bg = get_theme_stylebox("bg"); Ref<StyleBox> fg = get_theme_stylebox("fg"); Ref<Font> font = get_theme_font("font"); @@ -62,7 +59,6 @@ void ProgressBar::_notification(int p_what) { int mp = fg->get_minimum_size().width; int p = r * (get_size().width - mp); if (p > 0) { - draw_style_box(fg, Rect2(Point2(), Size2(p + fg->get_minimum_size().width, get_size().height))); } @@ -74,18 +70,15 @@ void ProgressBar::_notification(int p_what) { } void ProgressBar::set_percent_visible(bool p_visible) { - percent_visible = p_visible; update(); } bool ProgressBar::is_percent_visible() const { - return percent_visible; } void ProgressBar::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_percent_visible", "visible"), &ProgressBar::set_percent_visible); ClassDB::bind_method(D_METHOD("is_percent_visible"), &ProgressBar::is_percent_visible); ADD_GROUP("Percent", "percent_"); @@ -93,7 +86,6 @@ void ProgressBar::_bind_methods() { } ProgressBar::ProgressBar() { - set_v_size_flags(0); set_step(0.01); percent_visible = true; diff --git a/scene/gui/progress_bar.h b/scene/gui/progress_bar.h index 371d0370f6..d8eba921a3 100644 --- a/scene/gui/progress_bar.h +++ b/scene/gui/progress_bar.h @@ -34,7 +34,6 @@ #include "scene/gui/range.h" class ProgressBar : public Range { - GDCLASS(ProgressBar, Range); bool percent_visible; diff --git a/scene/gui/range.cpp b/scene/gui/range.cpp index ab2f64e1b4..2260a5a97c 100644 --- a/scene/gui/range.cpp +++ b/scene/gui/range.cpp @@ -44,7 +44,6 @@ String Range::get_configuration_warning() const { } void Range::_value_changed_notify() { - _value_changed(shared->val); emit_signal("value_changed", shared->val); update(); @@ -52,7 +51,6 @@ void Range::_value_changed_notify() { } void Range::Shared::emit_value_changed() { - for (Set<Range *>::Element *E = owners.front(); E; E = E->next()) { Range *r = E->get(); if (!r->is_inside_tree()) @@ -62,14 +60,12 @@ void Range::Shared::emit_value_changed() { } void Range::_changed_notify(const char *p_what) { - emit_signal("changed"); update(); _change_notify(p_what); } void Range::Shared::emit_changed(const char *p_what) { - for (Set<Range *>::Element *E = owners.front(); E; E = E->next()) { Range *r = E->get(); if (!r->is_inside_tree()) @@ -79,7 +75,6 @@ void Range::Shared::emit_changed(const char *p_what) { } void Range::set_value(double p_val) { - if (shared->step > 0) p_val = Math::round(p_val / shared->step) * shared->step; @@ -114,12 +109,10 @@ void Range::set_max(double p_max) { shared->emit_changed("max"); } void Range::set_step(double p_step) { - shared->step = p_step; shared->emit_changed("step"); } void Range::set_page(double p_page) { - shared->page = p_page; set_value(shared->val); @@ -127,37 +120,29 @@ void Range::set_page(double p_page) { } double Range::get_value() const { - return shared->val; } double Range::get_min() const { - return shared->min; } double Range::get_max() const { - return shared->max; } double Range::get_step() const { - return shared->step; } double Range::get_page() const { - return shared->page; } void Range::set_as_ratio(double p_value) { - double v; if (shared->exp_ratio && get_min() >= 0) { - double exp_min = get_min() == 0 ? 0.0 : Math::log(get_min()) / Math::log((double)2); double exp_max = Math::log(get_max()) / Math::log((double)2); v = Math::pow(2, exp_min + (exp_max - exp_min) * p_value); } else { - double percent = (get_max() - get_min()) * p_value; if (get_step() > 0) { double steps = round(percent / get_step()); @@ -170,11 +155,9 @@ void Range::set_as_ratio(double p_value) { set_value(v); } double Range::get_as_ratio() const { - ERR_FAIL_COND_V_MSG(Math::is_equal_approx(get_max(), get_min()), 0.0, "Cannot get ratio when minimum and maximum value are equal."); if (shared->exp_ratio && get_min() >= 0) { - double exp_min = get_min() == 0 ? 0.0 : Math::log(get_min()) / Math::log((double)2); double exp_max = Math::log(get_max()) / Math::log((double)2); float value = CLAMP(get_value(), shared->min, shared->max); @@ -183,21 +166,18 @@ double Range::get_as_ratio() const { return CLAMP((v - exp_min) / (exp_max - exp_min), 0, 1); } else { - float value = CLAMP(get_value(), shared->min, shared->max); return CLAMP((value - get_min()) / (get_max() - get_min()), 0, 1); } } void Range::_share(Node *p_range) { - Range *r = Object::cast_to<Range>(p_range); ERR_FAIL_COND(!r); share(r); } void Range::share(Range *p_range) { - ERR_FAIL_NULL(p_range); p_range->_ref_shared(shared); @@ -206,7 +186,6 @@ void Range::share(Range *p_range) { } void Range::unshare() { - Shared *nshared = memnew(Shared); nshared->min = shared->min; nshared->max = shared->max; @@ -221,7 +200,6 @@ void Range::unshare() { } void Range::_ref_shared(Shared *p_shared) { - if (shared && p_shared == shared) return; @@ -231,7 +209,6 @@ void Range::_ref_shared(Shared *p_shared) { } void Range::_unref_shared() { - if (shared) { shared->owners.erase(this); if (shared->owners.size() == 0) { @@ -242,7 +219,6 @@ void Range::_unref_shared() { } void Range::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_value"), &Range::get_value); ClassDB::bind_method(D_METHOD("get_min"), &Range::get_min); ClassDB::bind_method(D_METHOD("get_max"), &Range::get_max); @@ -283,49 +259,40 @@ void Range::_bind_methods() { } void Range::set_use_rounded_values(bool p_enable) { - _rounded_values = p_enable; } bool Range::is_using_rounded_values() const { - return _rounded_values; } void Range::set_exp_ratio(bool p_enable) { - shared->exp_ratio = p_enable; update_configuration_warning(); } bool Range::is_ratio_exp() const { - return shared->exp_ratio; } void Range::set_allow_greater(bool p_allow) { - shared->allow_greater = p_allow; } bool Range::is_greater_allowed() const { - return shared->allow_greater; } void Range::set_allow_lesser(bool p_allow) { - shared->allow_lesser = p_allow; } bool Range::is_lesser_allowed() const { - return shared->allow_lesser; } Range::Range() { - shared = memnew(Shared); shared->min = 0; shared->max = 100; @@ -341,6 +308,5 @@ Range::Range() { } Range::~Range() { - _unref_shared(); } diff --git a/scene/gui/range.h b/scene/gui/range.h index 819d76941b..fe43985d0d 100644 --- a/scene/gui/range.h +++ b/scene/gui/range.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class Range : public Control { - GDCLASS(Range, Control); struct Shared { diff --git a/scene/gui/reference_rect.cpp b/scene/gui/reference_rect.cpp index 0765e5d882..0f6ff4da26 100644 --- a/scene/gui/reference_rect.cpp +++ b/scene/gui/reference_rect.cpp @@ -33,9 +33,7 @@ #include "core/engine.h" void ReferenceRect::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - if (!is_inside_tree()) return; if (Engine::get_singleton()->is_editor_hint() || !editor_only) diff --git a/scene/gui/reference_rect.h b/scene/gui/reference_rect.h index c25c54f271..db2f4269f3 100644 --- a/scene/gui/reference_rect.h +++ b/scene/gui/reference_rect.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class ReferenceRect : public Control { - GDCLASS(ReferenceRect, Control); Color border_color; bool editor_only; diff --git a/scene/gui/rich_text_effect.cpp b/scene/gui/rich_text_effect.cpp index 0f5926ea1c..2628e5ab0f 100644 --- a/scene/gui/rich_text_effect.cpp +++ b/scene/gui/rich_text_effect.cpp @@ -64,7 +64,6 @@ RichTextEffect::RichTextEffect() { } void CharFXTransform::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_relative_index"), &CharFXTransform::get_relative_index); ClassDB::bind_method(D_METHOD("set_relative_index", "index"), &CharFXTransform::set_relative_index); diff --git a/scene/gui/rich_text_label.cpp b/scene/gui/rich_text_label.cpp index a6c0c99bdb..baf8c53fef 100644 --- a/scene/gui/rich_text_label.cpp +++ b/scene/gui/rich_text_label.cpp @@ -46,16 +46,12 @@ #endif RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) { - if (p_free) { - if (p_item->subitems.size()) { - return p_item->subitems.front()->get(); } else if (!p_item->parent) { return nullptr; } else if (p_item->E->next()) { - return p_item->E->next()->get(); } else { //go up until something with a next is found @@ -71,12 +67,10 @@ RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) { } else { if (p_item->subitems.size() && p_item->type != ITEM_TABLE) { - return p_item->subitems.front()->get(); } else if (p_item->type == ITEM_FRAME) { return nullptr; } else if (p_item->E->next()) { - return p_item->E->next()->get(); } else { //go up until something with a next is found @@ -96,14 +90,11 @@ RichTextLabel::Item *RichTextLabel::_get_next_item(Item *p_item, bool p_free) { RichTextLabel::Item *RichTextLabel::_get_prev_item(Item *p_item, bool p_free) { if (p_free) { - if (p_item->subitems.size()) { - return p_item->subitems.back()->get(); } else if (!p_item->parent) { return nullptr; } else if (p_item->E->prev()) { - return p_item->E->prev()->get(); } else { //go back until something with a prev is found @@ -119,12 +110,10 @@ RichTextLabel::Item *RichTextLabel::_get_prev_item(Item *p_item, bool p_free) { } else { if (p_item->subitems.size() && p_item->type != ITEM_TABLE) { - return p_item->subitems.back()->get(); } else if (p_item->type == ITEM_FRAME) { return nullptr; } else if (p_item->E->prev()) { - return p_item->E->prev()->get(); } else { //go back until something with a prev is found @@ -148,7 +137,6 @@ Rect2 RichTextLabel::_get_text_rect() { } int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int &y, int p_width, int p_line, ProcessMode p_mode, const Ref<Font> &p_base_font, const Color &p_base_color, const Color &p_font_color_shadow, bool p_shadow_as_outline, const Point2 &shadow_ofs, const Point2i &p_click_pos, Item **r_click_item, int *r_click_char, bool *r_outside, int p_char_count) { - ERR_FAIL_INDEX_V((int)p_mode, 3, 0); RID ci; @@ -172,7 +160,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & int height = get_size().y; if (p_mode != PROCESS_CACHE) { - ERR_FAIL_INDEX_V(line, l.offset_caches.size(), 0); line_ofs = l.offset_caches[line]; } @@ -328,18 +315,14 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & int fh = 0; while (it) { - switch (it->type) { - case ITEM_ALIGN: { - ItemAlign *align_it = static_cast<ItemAlign *>(it); align = align_it->align; } break; case ITEM_INDENT: { - if (it != l.from) { ItemIndent *indent_it = static_cast<ItemIndent *>(it); @@ -351,7 +334,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & } break; case ITEM_TEXT: { - ItemText *text = static_cast<ItemText *>(it); Ref<Font> font = _find_font(it); @@ -399,7 +381,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & rchar = 0; FontDrawer drawer(font, Color(1, 1, 1)); while (*c) { - int end = 0; int w = 0; int fw = 0; @@ -412,7 +393,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & line_descent = line < l.descent_caches.size() ? l.descent_caches[line] : 1; } while (c[end] != 0 && !(end && c[end - 1] == ' ' && c[end] != ' ')) { - int cw = font->get_char_size(c[end], c[end + 1]).width; if (c[end] == '\t') { cw = tab_size * font->get_char_size(' ').width; @@ -446,14 +426,12 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & } { - int ofs = 0 - backtrack; for (int i = 0; i < end; i++) { int pofs = wofs + ofs; if (p_mode == PROCESS_POINTER && r_click_char && p_click_pos.y >= p_ofs.y + y && p_click_pos.y <= p_ofs.y + y + lh) { - int cw = font->get_char_size(c[i], c[i + 1]).x; if (c[i] == '\t') { @@ -461,7 +439,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & } if (p_click_pos.x - cw / 2 > p_ofs.x + align_ofs + pofs) { - rchar = int((&c[i]) - cf); } @@ -473,7 +450,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & CharType fx_char = c[i]; if (selection.active) { - int cofs = (&c[i]) - cf; if ((text->index > selection.from->index || (text->index == selection.from->index && cofs >= selection.from_char)) && (text->index < selection.to->index || (text->index == selection.to->index && cofs <= selection.to_char))) { selected = true; @@ -498,7 +474,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & const bool previously_visible = visible; for (int j = 0; j < fx_stack.size(); j++) { - ItemFX *item_fx = fx_stack[j]; if (item_fx->type == ITEM_CUSTOMFX && custom_fx_ok) { @@ -571,7 +546,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & visible = false; if (visible) { - if (selected) { cw = font->get_char_size(fx_char, c[i + 1]).x; draw_rect(Rect2(p_ofs.x + pofs, p_ofs.y + y, cw, lh), selection_bg); @@ -636,7 +610,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & } break; case ITEM_IMAGE: { - lh = 0; if (p_mode != PROCESS_CACHE) lh = line < l.height_caches.size() ? l.height_caches[line] : 1; @@ -668,7 +641,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & } break; case ITEM_NEWLINE: { - lh = 0; if (p_mode != PROCESS_CACHE) { @@ -678,7 +650,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & } break; case ITEM_TABLE: { - lh = 0; ItemTable *table = static_cast<ItemTable *>(it); int hseparation = get_theme_constant("table_hseparation"); @@ -690,7 +661,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & Point2 shadow_ofs2(get_theme_constant("shadow_offset_x"), get_theme_constant("shadow_offset_y")); if (p_mode == PROCESS_CACHE) { - int idx = 0; //set minimums to zero for (int i = 0; i < table->columns.size(); i++) { @@ -710,7 +680,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & int ly = 0; for (int i = 0; i < frame->lines.size(); i++) { - _process_line(frame, Point2(), ly, available_width, i, PROCESS_CACHE, cfont, Color(), font_color_shadow, use_outline, shadow_ofs2); table->columns.write[column].min_width = MAX(table->columns[column].min_width, frame->lines[i].minimum_width); table->columns.write[column].max_width = MAX(table->columns[column].max_width, frame->lines[i].maximum_width); @@ -782,7 +751,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & int column = idx % table->columns.size(); for (int i = 0; i < frame->lines.size(); i++) { - int ly = 0; _process_line(frame, Point2(), ly, table->columns[column].width, i, PROCESS_CACHE, cfont, Color(), font_color_shadow, use_outline, shadow_ofs2); frame->lines.write[i].height_cache = ly; //actual height @@ -814,7 +782,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & line_is_blank = false; for (int i = 0; i < frame->lines.size(); i++) { - if (visible) { if (p_mode == PROCESS_DRAW) { nonblank_line_count += _process_line(frame, p_ofs + offset + draw_ofs + Vector2(0, yofs), ly, table->columns[column].width, i, PROCESS_DRAW, cfont, ccolor, font_color_shadow, use_outline, shadow_ofs2); @@ -836,7 +803,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & offset.x += table->columns[column].width + hseparation; if (column == table->columns.size() - 1) { - offset.y += row_height + vseparation; offset.x = hseparation; row_height = 0; @@ -863,7 +829,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & it = _get_next_item(it); if (it && (p_line + 1 < p_frame->lines.size()) && p_frame->lines[p_line + 1].from == it) { - if (p_mode == PROCESS_POINTER && r_click_item && p_click_pos.y >= p_ofs.y + y && p_click_pos.y <= p_ofs.y + y + lh) { //went to next line, but pointer was on the previous one if (r_outside) @@ -888,7 +853,6 @@ int RichTextLabel::_process_line(ItemFrame *p_frame, const Vector2 &p_ofs, int & } void RichTextLabel::_scroll_changed(double) { - if (updating_scroll || !scroll_active) return; @@ -903,13 +867,11 @@ void RichTextLabel::_scroll_changed(double) { } void RichTextLabel::_update_scroll() { - int total_height = get_content_height(); bool exceeds = total_height > get_size().height && scroll_active; if (exceeds != scroll_visible) { - if (exceeds) { scroll_visible = true; scroll_w = vscroll->get_combined_minimum_size().width; @@ -961,9 +923,7 @@ void RichTextLabel::_update_fx(RichTextLabel::ItemFrame *p_frame, float p_delta_ } void RichTextLabel::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_MOUSE_EXIT: { if (meta_hovering) { meta_hovering = nullptr; @@ -973,13 +933,11 @@ void RichTextLabel::_notification(int p_what) { } } break; case NOTIFICATION_RESIZED: { - main->first_invalid_line = 0; //invalidate ALL update(); } break; case NOTIFICATION_ENTER_TREE: { - if (bbcode != "") set_bbcode(bbcode); @@ -988,12 +946,10 @@ void RichTextLabel::_notification(int p_what) { } break; case NOTIFICATION_THEME_CHANGED: { - update(); } break; case NOTIFICATION_DRAW: { - _validate_line_caches(main); _update_scroll(); @@ -1017,7 +973,6 @@ void RichTextLabel::_notification(int p_what) { int from_line = 0; int total_chars = 0; while (from_line < main->lines.size()) { - if (main->lines[from_line].height_accum_cache + _get_text_rect().get_position().y >= ofs) break; total_chars += main->lines[from_line].char_count; @@ -1035,7 +990,6 @@ void RichTextLabel::_notification(int p_what) { visible_line_count = 0; while (y < size.height && from_line < main->lines.size()) { - visible_line_count += _process_line(main, text_rect.get_position(), y, text_rect.get_size().width - scroll_w, from_line, PROCESS_DRAW, base_font, base_color, font_color_shadow, use_outline, shadow_ofs, Point2i(), nullptr, nullptr, nullptr, total_chars); total_chars += main->lines[from_line].char_count; @@ -1052,7 +1006,6 @@ void RichTextLabel::_notification(int p_what) { } void RichTextLabel::_find_click(ItemFrame *p_frame, const Point2i &p_click, Item **r_click_item, int *r_click_char, bool *r_outside) { - if (r_click_item) *r_click_item = nullptr; @@ -1066,7 +1019,6 @@ void RichTextLabel::_find_click(ItemFrame *p_frame, const Point2i &p_click, Item int from_line = 0; while (from_line < p_frame->lines.size()) { - if (p_frame->lines[from_line].height_accum_cache >= ofs) break; from_line++; @@ -1080,7 +1032,6 @@ void RichTextLabel::_find_click(ItemFrame *p_frame, const Point2i &p_click, Item Color base_color = get_theme_color("default_color"); while (y < text_rect.get_size().height && from_line < p_frame->lines.size()) { - _process_line(p_frame, text_rect.get_position(), y, text_rect.get_size().width - scroll_w, from_line, PROCESS_POINTER, base_font, base_color, font_color_shadow, use_outline, shadow_ofs, p_click, r_click_item, r_click_char, r_outside); if (r_click_item && *r_click_item) return; @@ -1089,7 +1040,6 @@ void RichTextLabel::_find_click(ItemFrame *p_frame, const Point2i &p_click, Item } Control::CursorShape RichTextLabel::get_cursor_shape(const Point2 &p_pos) const { - if (!underline_meta) return CURSOR_ARROW; @@ -1111,7 +1061,6 @@ Control::CursorShape RichTextLabel::get_cursor_shape(const Point2 &p_pos) const } void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { - Ref<InputEventMouseButton> b = p_event; if (b.is_valid()) { @@ -1128,9 +1077,7 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { _find_click(main, b->get_position(), &item, &line, &outside); if (item) { - if (selection.enabled) { - selection.click = item; selection.click_char = line; @@ -1147,7 +1094,6 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { } } } else if (b->is_pressed() && b->is_doubleclick() && selection.enabled) { - //doubleclick: select word int line = 0; Item *item = nullptr; @@ -1156,17 +1102,14 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { _find_click(main, b->get_position(), &item, &line, &outside); while (item && item->type != ITEM_TEXT) { - item = _get_next_item(item, true); } if (item && item->type == ITEM_TEXT) { - String itext = static_cast<ItemText *>(item)->text; int beg, end; if (select_word(itext, line, beg, end)) { - selection.from = item; selection.to = item; selection.from_char = beg; @@ -1176,7 +1119,6 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { } } } else if (!b->is_pressed()) { - selection.click = nullptr; if (!b->is_doubleclick() && !scroll_updated) { @@ -1187,7 +1129,6 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { _find_click(main, b->get_position(), &item, &line, &outside); if (item) { - Variant meta; if (!outside && _find_meta(item, &meta)) { //meta clicked @@ -1211,7 +1152,6 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { Ref<InputEventPanGesture> pan_gesture = p_event; if (pan_gesture.is_valid()) { - if (scroll_active) vscroll->set_value(vscroll->get_value() + vscroll->get_page() * pan_gesture->get_delta().y * 0.5 / 8); @@ -1226,42 +1166,36 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { bool handled = false; switch (k->get_keycode()) { case KEY_PAGEUP: { - if (vscroll->is_visible_in_tree()) { vscroll->set_value(vscroll->get_value() - vscroll->get_page()); handled = true; } } break; case KEY_PAGEDOWN: { - if (vscroll->is_visible_in_tree()) { vscroll->set_value(vscroll->get_value() + vscroll->get_page()); handled = true; } } break; case KEY_UP: { - if (vscroll->is_visible_in_tree()) { vscroll->set_value(vscroll->get_value() - get_theme_font("normal_font")->get_height()); handled = true; } } break; case KEY_DOWN: { - if (vscroll->is_visible_in_tree()) { vscroll->set_value(vscroll->get_value() + get_theme_font("normal_font")->get_height()); handled = true; } } break; case KEY_HOME: { - if (vscroll->is_visible_in_tree()) { vscroll->set_value(0); handled = true; } } break; case KEY_END: { - if (vscroll->is_visible_in_tree()) { vscroll->set_value(vscroll->get_max()); handled = true; @@ -1269,7 +1203,6 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { } break; case KEY_INSERT: case KEY_C: { - if (k->get_command()) { selection_copy(); handled = true; @@ -1295,7 +1228,6 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { _find_click(main, m->get_position(), &item, &line, &outside); if (selection.click) { - if (!item) return; // do not update @@ -1312,7 +1244,6 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { if (selection.from_char > selection.to_char) swap = true; else if (selection.from_char == selection.to_char) { - selection.active = false; return; } @@ -1347,13 +1278,10 @@ void RichTextLabel::_gui_input(Ref<InputEvent> p_event) { } Ref<Font> RichTextLabel::_find_font(Item *p_item) { - Item *fontitem = p_item; while (fontitem) { - if (fontitem->type == ITEM_FONT) { - ItemFont *fi = static_cast<ItemFont *>(fontitem); return fi->font; } @@ -1365,15 +1293,12 @@ Ref<Font> RichTextLabel::_find_font(Item *p_item) { } int RichTextLabel::_find_margin(Item *p_item, const Ref<Font> &p_base_font) { - Item *item = p_item; int margin = 0; while (item) { - if (item->type == ITEM_INDENT) { - Ref<Font> font = _find_font(item); if (font.is_null()) font = p_base_font; @@ -1383,7 +1308,6 @@ int RichTextLabel::_find_margin(Item *p_item, const Ref<Font> &p_base_font) { margin += indent->level * tab_size * font->get_char_size(' ').width; } else if (item->type == ITEM_LIST) { - Ref<Font> font = _find_font(item); if (font.is_null()) font = p_base_font; @@ -1396,13 +1320,10 @@ int RichTextLabel::_find_margin(Item *p_item, const Ref<Font> &p_base_font) { } RichTextLabel::Align RichTextLabel::_find_align(Item *p_item) { - Item *item = p_item; while (item) { - if (item->type == ITEM_ALIGN) { - ItemAlign *align = static_cast<ItemAlign *>(item); return align->align; } @@ -1414,13 +1335,10 @@ RichTextLabel::Align RichTextLabel::_find_align(Item *p_item) { } Color RichTextLabel::_find_color(Item *p_item, const Color &p_default_color) { - Item *item = p_item; while (item) { - if (item->type == ITEM_COLOR) { - ItemColor *color = static_cast<ItemColor *>(item); return color->color; } @@ -1432,13 +1350,10 @@ Color RichTextLabel::_find_color(Item *p_item, const Color &p_default_color) { } bool RichTextLabel::_find_underline(Item *p_item) { - Item *item = p_item; while (item) { - if (item->type == ITEM_UNDERLINE) { - return true; } @@ -1449,13 +1364,10 @@ bool RichTextLabel::_find_underline(Item *p_item) { } bool RichTextLabel::_find_strikethrough(Item *p_item) { - Item *item = p_item; while (item) { - if (item->type == ITEM_STRIKETHROUGH) { - return true; } @@ -1466,7 +1378,6 @@ bool RichTextLabel::_find_strikethrough(Item *p_item) { } bool RichTextLabel::_find_by_type(Item *p_item, ItemType p_type) { - ERR_FAIL_INDEX_V((int)p_type, 19, false); Item *item = p_item; @@ -1495,9 +1406,7 @@ bool RichTextLabel::_find_meta(Item *p_item, Variant *r_meta, ItemMeta **r_item) Item *item = p_item; while (item) { - if (item->type == ITEM_META) { - ItemMeta *meta = static_cast<ItemMeta *>(item); if (r_meta) *r_meta = meta->meta; @@ -1513,7 +1422,6 @@ bool RichTextLabel::_find_meta(Item *p_item, Variant *r_meta, ItemMeta **r_item) } bool RichTextLabel::_find_layout_subitem(Item *from, Item *to) { - if (from && from != to) { if (from->type != ITEM_FONT && from->type != ITEM_COLOR && from->type != ITEM_UNDERLINE && from->type != ITEM_STRIKETHROUGH) return true; @@ -1530,7 +1438,6 @@ bool RichTextLabel::_find_layout_subitem(Item *from, Item *to) { } void RichTextLabel::_validate_line_caches(ItemFrame *p_frame) { - if (p_frame->first_invalid_line == p_frame->lines.size()) return; @@ -1547,7 +1454,6 @@ void RichTextLabel::_validate_line_caches(ItemFrame *p_frame) { Ref<Font> base_font = get_theme_font("normal_font"); for (int i = p_frame->first_invalid_line; i < p_frame->lines.size(); i++) { - int y = 0; _process_line(p_frame, text_rect.get_position(), y, text_rect.get_size().width - scroll_w, i, PROCESS_CACHE, base_font, Color(), font_color_shadow, use_outline, shadow_ofs); p_frame->lines.write[i].height_cache = y; @@ -1573,31 +1479,25 @@ void RichTextLabel::_validate_line_caches(ItemFrame *p_frame) { } void RichTextLabel::_invalidate_current_line(ItemFrame *p_frame) { - if (p_frame->lines.size() - 1 <= p_frame->first_invalid_line) { - p_frame->first_invalid_line = p_frame->lines.size() - 1; update(); } } void RichTextLabel::add_text(const String &p_text) { - if (current->type == ITEM_TABLE) return; //can't add anything here int pos = 0; while (pos < p_text.length()) { - int end = p_text.find("\n", pos); String line; bool eol = false; if (end == -1) { - end = p_text.length(); } else { - eol = true; } @@ -1607,7 +1507,6 @@ void RichTextLabel::add_text(const String &p_text) { line = p_text.substr(pos, end - pos); if (line.length() > 0) { - if (current->subitems.size() && current->subitems.back()->get()->type == ITEM_TEXT) { //append text condition! ItemText *ti = static_cast<ItemText *>(current->subitems.back()->get()); @@ -1623,7 +1522,6 @@ void RichTextLabel::add_text(const String &p_text) { } if (eol) { - ItemNewline *item = memnew(ItemNewline); item->line = current_frame->lines.size(); _add_item(item, false); @@ -1638,7 +1536,6 @@ void RichTextLabel::add_text(const String &p_text) { } void RichTextLabel::_add_item(Item *p_item, bool p_enter, bool p_ensure_newline) { - p_item->parent = current; p_item->E = current->subitems.push_back(p_item); p_item->index = current_idx++; @@ -1668,7 +1565,6 @@ void RichTextLabel::_add_item(Item *p_item, bool p_enter, bool p_ensure_newline) } void RichTextLabel::_remove_item(Item *p_item, const int p_line, const int p_subitem_line) { - int size = p_item->subitems.size(); if (size == 0) { p_item->parent->subitems.erase(p_item); @@ -1687,7 +1583,6 @@ void RichTextLabel::_remove_item(Item *p_item, const int p_line, const int p_sub } void RichTextLabel::add_image(const Ref<Texture2D> &p_image, const int p_width, const int p_height) { - if (current->type == ITEM_TABLE) return; @@ -1723,7 +1618,6 @@ void RichTextLabel::add_image(const Ref<Texture2D> &p_image, const int p_width, } void RichTextLabel::add_newline() { - if (current->type == ITEM_TABLE) return; ItemNewline *item = memnew(ItemNewline); @@ -1734,7 +1628,6 @@ void RichTextLabel::add_newline() { } bool RichTextLabel::remove_line(const int p_line) { - if (p_line >= current_frame->lines.size() || p_line < 0) return false; @@ -1767,7 +1660,6 @@ bool RichTextLabel::remove_line(const int p_line) { } void RichTextLabel::push_font(const Ref<Font> &p_font) { - ERR_FAIL_COND(current->type == ITEM_TABLE); ERR_FAIL_COND(p_font.is_null()); ItemFont *item = memnew(ItemFont); @@ -1812,7 +1704,6 @@ void RichTextLabel::push_mono() { } void RichTextLabel::push_color(const Color &p_color) { - ERR_FAIL_COND(current->type == ITEM_TABLE); ItemColor *item = memnew(ItemColor); @@ -1821,7 +1712,6 @@ void RichTextLabel::push_color(const Color &p_color) { } void RichTextLabel::push_underline() { - ERR_FAIL_COND(current->type == ITEM_TABLE); ItemUnderline *item = memnew(ItemUnderline); @@ -1829,7 +1719,6 @@ void RichTextLabel::push_underline() { } void RichTextLabel::push_strikethrough() { - ERR_FAIL_COND(current->type == ITEM_TABLE); ItemStrikethrough *item = memnew(ItemStrikethrough); @@ -1837,7 +1726,6 @@ void RichTextLabel::push_strikethrough() { } void RichTextLabel::push_align(Align p_align) { - ERR_FAIL_COND(current->type == ITEM_TABLE); ItemAlign *item = memnew(ItemAlign); @@ -1846,7 +1734,6 @@ void RichTextLabel::push_align(Align p_align) { } void RichTextLabel::push_indent(int p_level) { - ERR_FAIL_COND(current->type == ITEM_TABLE); ERR_FAIL_COND(p_level < 0); @@ -1856,7 +1743,6 @@ void RichTextLabel::push_indent(int p_level) { } void RichTextLabel::push_list(ListType p_list) { - ERR_FAIL_COND(current->type == ITEM_TABLE); ERR_FAIL_INDEX(p_list, 3); @@ -1867,7 +1753,6 @@ void RichTextLabel::push_list(ListType p_list) { } void RichTextLabel::push_meta(const Variant &p_meta) { - ERR_FAIL_COND(current->type == ITEM_TABLE); ItemMeta *item = memnew(ItemMeta); @@ -1876,7 +1761,6 @@ void RichTextLabel::push_meta(const Variant &p_meta) { } void RichTextLabel::push_table(int p_columns) { - ERR_FAIL_COND(p_columns < 1); ItemTable *item = memnew(ItemTable); @@ -1933,7 +1817,6 @@ void RichTextLabel::push_customfx(Ref<RichTextEffect> p_custom_effect, Dictionar } void RichTextLabel::set_table_column_expand(int p_column, bool p_expand, int p_ratio) { - ERR_FAIL_COND(current->type != ITEM_TABLE); ItemTable *table = static_cast<ItemTable *>(current); ERR_FAIL_INDEX(p_column, table->columns.size()); @@ -1942,7 +1825,6 @@ void RichTextLabel::set_table_column_expand(int p_column, bool p_expand, int p_r } void RichTextLabel::push_cell() { - ERR_FAIL_COND(current->type != ITEM_TABLE); ItemFrame *item = memnew(ItemFrame); @@ -1957,7 +1839,6 @@ void RichTextLabel::push_cell() { } int RichTextLabel::get_current_table_column() const { - ERR_FAIL_COND_V(current->type != ITEM_TABLE, -1); ItemTable *table = static_cast<ItemTable *>(current); @@ -1966,7 +1847,6 @@ int RichTextLabel::get_current_table_column() const { } void RichTextLabel::pop() { - ERR_FAIL_COND(!current->parent); if (current->type == ITEM_FRAME) { current_frame = static_cast<ItemFrame *>(current)->parent_frame; @@ -1975,7 +1855,6 @@ void RichTextLabel::pop() { } void RichTextLabel::clear() { - main->_clear_children(); current = main; current_frame = main; @@ -1993,45 +1872,37 @@ void RichTextLabel::clear() { } void RichTextLabel::set_tab_size(int p_spaces) { - tab_size = p_spaces; main->first_invalid_line = 0; update(); } int RichTextLabel::get_tab_size() const { - return tab_size; } void RichTextLabel::set_meta_underline(bool p_underline) { - underline_meta = p_underline; update(); } bool RichTextLabel::is_meta_underlined() const { - return underline_meta; } void RichTextLabel::set_override_selected_font_color(bool p_override_selected_font_color) { - override_selected_font_color = p_override_selected_font_color; } bool RichTextLabel::is_overriding_selected_font_color() const { - return override_selected_font_color; } void RichTextLabel::set_offset(int p_pixel) { - vscroll->set_value(p_pixel); } void RichTextLabel::set_scroll_active(bool p_active) { - if (scroll_active == p_active) return; @@ -2040,30 +1911,25 @@ void RichTextLabel::set_scroll_active(bool p_active) { } bool RichTextLabel::is_scroll_active() const { - return scroll_active; } void RichTextLabel::set_scroll_follow(bool p_follow) { - scroll_follow = p_follow; if (!vscroll->is_visible_in_tree() || vscroll->get_value() >= (vscroll->get_max() - vscroll->get_page())) scroll_following = true; } bool RichTextLabel::is_scroll_following() const { - return scroll_follow; } Error RichTextLabel::parse_bbcode(const String &p_bbcode) { - clear(); return append_bbcode(p_bbcode); } Error RichTextLabel::append_bbcode(const String &p_bbcode) { - int pos = 0; List<String> tag_stack; @@ -2083,7 +1949,6 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { set_process_internal(false); while (pos < p_bbcode.length()) { - int brk_pos = p_bbcode.find("[", pos); if (brk_pos < 0) @@ -2108,7 +1973,6 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { Vector<String> split_tag_block = tag.split(" ", false); String bbcode = !split_tag_block.empty() ? split_tag_block[0] : ""; if (tag.begins_with("/") && tag_stack.size()) { - bool tag_ok = tag_stack.size() && tag_stack.front()->get() == tag.substr(1, tag.length()); if (tag_stack.front()->get() == "b") @@ -2130,7 +1994,6 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pop(); } else if (tag == "b") { - //use bold font in_bold = true; if (in_italics) @@ -2140,7 +2003,6 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "i") { - //use italics font in_italics = true; if (in_bold) @@ -2150,13 +2012,11 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "code") { - //use monospace font push_font(mono_font); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag.begins_with("table=")) { - int columns = tag.substr(6, tag.length()).to_int(); if (columns < 1) columns = 1; @@ -2165,12 +2025,10 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pos = brk_end + 1; tag_stack.push_front("table"); } else if (tag == "cell") { - push_cell(); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag.begins_with("cell=")) { - int ratio = tag.substr(5, tag.length()).to_int(); if (ratio < 1) ratio = 1; @@ -2180,51 +2038,42 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pos = brk_end + 1; tag_stack.push_front("cell"); } else if (tag == "u") { - //use underline push_underline(); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "s") { - //use strikethrough push_strikethrough(); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "center") { - push_align(ALIGN_CENTER); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "fill") { - push_align(ALIGN_FILL); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "right") { - push_align(ALIGN_RIGHT); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "ul") { - push_list(LIST_DOTS); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "ol") { - push_list(LIST_NUMBERS); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "indent") { - indent_level++; push_indent(indent_level); pos = brk_end + 1; tag_stack.push_front(tag); } else if (tag == "url") { - int end = p_bbcode.find("[", brk_end); if (end == -1) end = p_bbcode.length(); @@ -2235,13 +2084,11 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { tag_stack.push_front(tag); } else if (tag.begins_with("url=")) { - String url = tag.substr(4, tag.length()); push_meta(url); pos = brk_end + 1; tag_stack.push_front("url"); } else if (tag == "img") { - int end = p_bbcode.find("[", brk_end); if (end == -1) end = p_bbcode.length(); @@ -2255,7 +2102,6 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pos = end; tag_stack.push_front(tag); } else if (tag.begins_with("img=")) { - int width = 0; int height = 0; @@ -2281,7 +2127,6 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { pos = end; tag_stack.push_front("img"); } else if (tag.begins_with("color=")) { - String col = tag.substr(6, tag.length()); Color color; @@ -2327,7 +2172,6 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { tag_stack.push_front("color"); } else if (tag.begins_with("font=")) { - String fnt = tag.substr(5, tag.length()); Ref<Font> font = ResourceLoader::load(fnt, "Font"); @@ -2480,14 +2324,12 @@ Error RichTextLabel::append_bbcode(const String &p_bbcode) { } void RichTextLabel::scroll_to_line(int p_line) { - ERR_FAIL_INDEX(p_line, main->lines.size()); _validate_line_caches(main); vscroll->set_value(main->lines[p_line].height_accum_cache - main->lines[p_line].height_cache); } int RichTextLabel::get_line_count() const { - return current_frame->lines.size(); } @@ -2498,7 +2340,6 @@ int RichTextLabel::get_visible_line_count() const { } void RichTextLabel::set_selection_enabled(bool p_enabled) { - selection.enabled = p_enabled; if (!p_enabled) { if (selection.active) { @@ -2512,7 +2353,6 @@ void RichTextLabel::set_selection_enabled(bool p_enabled) { } bool RichTextLabel::search(const String &p_string, bool p_from_selection, bool p_search_previous) { - ERR_FAIL_COND_V(!selection.enabled, false); Item *it = main; int charidx = 0; @@ -2523,9 +2363,7 @@ bool RichTextLabel::search(const String &p_string, bool p_from_selection, bool p } while (it) { - if (it->type == ITEM_TEXT) { - ItemText *t = static_cast<ItemText *>(it); int sp = t->text.findn(p_string, charidx); if (sp != -1) { @@ -2571,7 +2409,6 @@ bool RichTextLabel::search(const String &p_string, bool p_from_selection, bool p } void RichTextLabel::selection_copy() { - if (!selection.active || !selection.enabled) return; @@ -2580,9 +2417,7 @@ void RichTextLabel::selection_copy() { RichTextLabel::Item *item = selection.from; while (item) { - if (item->type == ITEM_TEXT) { - String itext = static_cast<ItemText *>(item)->text; if (item == selection.from && item == selection.to) { text += itext.substr(selection.from_char, selection.to_char - selection.from_char + 1); @@ -2609,7 +2444,6 @@ void RichTextLabel::selection_copy() { } bool RichTextLabel::is_selection_enabled() const { - return selection.enabled; } @@ -2624,7 +2458,6 @@ void RichTextLabel::set_bbcode(const String &p_bbcode) { } String RichTextLabel::get_bbcode() const { - return bbcode; } @@ -2636,7 +2469,6 @@ void RichTextLabel::set_use_bbcode(bool p_enable) { } bool RichTextLabel::is_using_bbcode() const { - return use_bbcode; } @@ -2663,14 +2495,11 @@ void RichTextLabel::set_text(const String &p_string) { } void RichTextLabel::set_percent_visible(float p_percent) { - if (p_percent < 0 || p_percent >= 1) { - visible_characters = -1; percent_visible = 1; } else { - visible_characters = get_total_character_count() * p_percent; percent_visible = p_percent; } @@ -2717,7 +2546,6 @@ int RichTextLabel::get_content_height() { } void RichTextLabel::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &RichTextLabel::_gui_input); ClassDB::bind_method(D_METHOD("get_text"), &RichTextLabel::get_text); ClassDB::bind_method(D_METHOD("add_text", "text"), &RichTextLabel::add_text); @@ -2857,7 +2685,6 @@ int RichTextLabel::get_visible_characters() const { return visible_characters; } int RichTextLabel::get_total_character_count() const { - int tc = 0; for (int i = 0; i < current_frame->lines.size(); i++) tc += current_frame->lines[i].char_count; @@ -2871,7 +2698,6 @@ void RichTextLabel::set_fixed_size_to_width(int p_width) { } Size2 RichTextLabel::get_minimum_size() const { - if (fixed_width != -1) { const_cast<RichTextLabel *>(this)->_validate_line_caches(main); return Size2(fixed_width, const_cast<RichTextLabel *>(this)->get_content_height()); @@ -2953,7 +2779,6 @@ Dictionary RichTextLabel::parse_expressions_for_values(Vector<String> p_expressi } RichTextLabel::RichTextLabel() { - main = memnew(ItemFrame); main->index = 0; current = main; diff --git a/scene/gui/rich_text_label.h b/scene/gui/rich_text_label.h index 7f2b5facb9..019edf5d45 100644 --- a/scene/gui/rich_text_label.h +++ b/scene/gui/rich_text_label.h @@ -35,7 +35,6 @@ #include "scene/gui/scroll_bar.h" class RichTextLabel : public Control { - GDCLASS(RichTextLabel, Control); public: @@ -84,7 +83,6 @@ private: struct Item; struct Line { - Item *from; Vector<int> offset_caches; Vector<int> height_caches; @@ -352,7 +350,6 @@ private: }; struct Selection { - Item *click; int click_char; diff --git a/scene/gui/scroll_bar.cpp b/scene/gui/scroll_bar.cpp index 1c63c25e28..98b6de0696 100644 --- a/scene/gui/scroll_bar.cpp +++ b/scene/gui/scroll_bar.cpp @@ -38,12 +38,10 @@ bool ScrollBar::focus_by_default = false; void ScrollBar::set_can_focus_by_default(bool p_can_focus) { - focus_by_default = p_can_focus; } void ScrollBar::_gui_input(Ref<InputEvent> p_event) { - Ref<InputEventMouseMotion> m = p_event; if (!m.is_valid() || drag.active) { emit_signal("scrolling"); @@ -55,13 +53,11 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { accept_event(); if (b->get_button_index() == BUTTON_WHEEL_DOWN && b->is_pressed()) { - set_value(get_value() + get_page() / 4.0); accept_event(); } if (b->get_button_index() == BUTTON_WHEEL_UP && b->is_pressed()) { - set_value(get_value() - get_page() / 4.0); accept_event(); } @@ -70,7 +66,6 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { return; if (b->is_pressed()) { - double ofs = orientation == VERTICAL ? b->get_position().y : b->get_position().x; Ref<Texture2D> decr = get_theme_icon("decrement"); Ref<Texture2D> incr = get_theme_icon("increment"); @@ -82,13 +77,11 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { double total = orientation == VERTICAL ? get_size().height : get_size().width; if (ofs < decr_size) { - set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); return; } if (ofs > total - incr_size) { - set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); return; } @@ -96,7 +89,6 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { ofs -= decr_size; if (ofs < grabber_ofs) { - if (scrolling) { target_scroll = CLAMP(target_scroll - get_page(), get_min(), get_max() - get_page()); } else { @@ -115,7 +107,6 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { ofs -= grabber_ofs; if (ofs < grabber_size) { - drag.active = true; drag.pos_at_click = grabber_ofs + ofs; drag.value_at_click = get_as_ratio(); @@ -136,18 +127,15 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { } } else { - drag.active = false; update(); } } if (m.is_valid()) { - accept_event(); if (drag.active) { - double ofs = orientation == VERTICAL ? m->get_position().y : m->get_position().x; Ref<Texture2D> decr = get_theme_icon("decrement"); @@ -158,7 +146,6 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { set_as_ratio(drag.value_at_click + diff); } else { - double ofs = orientation == VERTICAL ? m->get_position().y : m->get_position().x; Ref<Texture2D> decr = get_theme_icon("decrement"); Ref<Texture2D> incr = get_theme_icon("increment"); @@ -170,20 +157,16 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { HighlightStatus new_hilite; if (ofs < decr_size) { - new_hilite = HIGHLIGHT_DECR; } else if (ofs > total - incr_size) { - new_hilite = HIGHLIGHT_INCR; } else { - new_hilite = HIGHLIGHT_RANGE; } if (new_hilite != highlight) { - highlight = new_hilite; update(); } @@ -191,47 +174,38 @@ void ScrollBar::_gui_input(Ref<InputEvent> p_event) { } if (p_event->is_pressed()) { - if (p_event->is_action("ui_left")) { - if (orientation != HORIZONTAL) return; set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); } else if (p_event->is_action("ui_right")) { - if (orientation != HORIZONTAL) return; set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); } else if (p_event->is_action("ui_up")) { - if (orientation != VERTICAL) return; set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); } else if (p_event->is_action("ui_down")) { - if (orientation != VERTICAL) return; set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); } else if (p_event->is_action("ui_home")) { - set_value(get_min()); } else if (p_event->is_action("ui_end")) { - set_value(get_max()); } } } void ScrollBar::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - RID ci = get_canvas_item(); Ref<Texture2D> decr = highlight == HIGHLIGHT_DECR ? get_theme_icon("decrement_highlight") : get_theme_icon("decrement"); @@ -273,13 +247,11 @@ void ScrollBar::_notification(int p_what) { Rect2 grabber_rect; if (orientation == HORIZONTAL) { - grabber_rect.size.width = get_grabber_size(); grabber_rect.size.height = get_size().height; grabber_rect.position.y = 0; grabber_rect.position.x = get_grabber_offset() + decr->get_width() + bg->get_margin(MARGIN_LEFT); } else { - grabber_rect.size.width = get_size().width; grabber_rect.size.height = get_grabber_size(); grabber_rect.position.y = get_grabber_offset() + decr->get_height() + bg->get_margin(MARGIN_TOP); @@ -290,7 +262,6 @@ void ScrollBar::_notification(int p_what) { } if (p_what == NOTIFICATION_ENTER_TREE) { - if (has_node(drag_node_path)) { Node *n = get_node(drag_node_path); drag_node = Object::cast_to<Control>(n); @@ -302,7 +273,6 @@ void ScrollBar::_notification(int p_what) { } } if (p_what == NOTIFICATION_EXIT_TREE) { - if (drag_node) { drag_node->disconnect("gui_input", callable_mp(this, &ScrollBar::_drag_node_input)); drag_node->disconnect("tree_exiting", callable_mp(this, &ScrollBar::_drag_node_exit)); @@ -312,7 +282,6 @@ void ScrollBar::_notification(int p_what) { } if (p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { - if (scrolling) { if (get_value() != target_scroll) { double target = target_scroll - get_value(); @@ -332,16 +301,13 @@ void ScrollBar::_notification(int p_what) { } } else if (drag_node_touching) { - if (drag_node_touching_deaccel) { - Vector2 pos = Vector2(orientation == HORIZONTAL ? get_value() : 0, orientation == VERTICAL ? get_value() : 0); pos += drag_node_speed * get_physics_process_delta_time(); bool turnoff = false; if (orientation == HORIZONTAL) { - if (pos.x < 0) { pos.x = 0; turnoff = true; @@ -365,7 +331,6 @@ void ScrollBar::_notification(int p_what) { drag_node_speed.x = sgn_x * val_x; } else { - if (pos.y < 0) { pos.y = 0; turnoff = true; @@ -395,9 +360,7 @@ void ScrollBar::_notification(int p_what) { } } else { - if (time_since_motion == 0 || time_since_motion > 0.1) { - Vector2 diff = drag_node_accum - last_drag_node_accum; last_drag_node_accum = drag_node_accum; drag_node_speed = diff / get_physics_process_delta_time(); @@ -409,21 +372,18 @@ void ScrollBar::_notification(int p_what) { } if (p_what == NOTIFICATION_MOUSE_EXIT) { - highlight = HIGHLIGHT_NONE; update(); } } double ScrollBar::get_grabber_min_size() const { - Ref<StyleBox> grabber = get_theme_stylebox("grabber"); Size2 gminsize = grabber->get_minimum_size() + grabber->get_center_size(); return (orientation == VERTICAL) ? gminsize.height : gminsize.width; } double ScrollBar::get_grabber_size() const { - float range = get_max() - get_min(); if (range <= 0) return 0; @@ -464,17 +424,14 @@ double ScrollBar::get_area_size() const { } double ScrollBar::get_area_offset() const { - double ofs = 0; if (orientation == VERTICAL) { - ofs += get_theme_stylebox("hscroll")->get_margin(MARGIN_TOP); ofs += get_theme_icon("decrement")->get_height(); } if (orientation == HORIZONTAL) { - ofs += get_theme_stylebox("hscroll")->get_margin(MARGIN_LEFT); ofs += get_theme_icon("decrement")->get_width(); } @@ -483,7 +440,6 @@ double ScrollBar::get_area_offset() const { } double ScrollBar::get_click_pos(const Point2 &p_pos) const { - float pos = (orientation == VERTICAL) ? p_pos.y : p_pos.x; pos -= get_area_offset(); @@ -495,19 +451,16 @@ double ScrollBar::get_click_pos(const Point2 &p_pos) const { } double ScrollBar::get_grabber_offset() const { - return (get_area_size()) * get_as_ratio(); } Size2 ScrollBar::get_minimum_size() const { - Ref<Texture2D> incr = get_theme_icon("increment"); Ref<Texture2D> decr = get_theme_icon("decrement"); Ref<StyleBox> bg = get_theme_stylebox("scroll"); Size2 minsize; if (orientation == VERTICAL) { - minsize.width = MAX(incr->get_size().width, (bg->get_minimum_size() + bg->get_center_size()).width); minsize.height += incr->get_size().height; minsize.height += decr->get_size().height; @@ -516,7 +469,6 @@ Size2 ScrollBar::get_minimum_size() const { } if (orientation == HORIZONTAL) { - minsize.height = MAX(incr->get_size().height, (bg->get_center_size() + bg->get_minimum_size()).height); minsize.width += incr->get_size().width; minsize.width += decr->get_size().width; @@ -528,17 +480,14 @@ Size2 ScrollBar::get_minimum_size() const { } void ScrollBar::set_custom_step(float p_custom_step) { - custom_step = p_custom_step; } float ScrollBar::get_custom_step() const { - return custom_step; } void ScrollBar::_drag_node_exit() { - if (drag_node) { drag_node->disconnect("gui_input", callable_mp(this, &ScrollBar::_drag_node_input)); } @@ -546,16 +495,13 @@ void ScrollBar::_drag_node_exit() { } void ScrollBar::_drag_node_input(const Ref<InputEvent> &p_input) { - Ref<InputEventMouseButton> mb = p_input; if (mb.is_valid()) { - if (mb->get_button_index() != 1) return; if (mb->is_pressed()) { - drag_node_speed = Vector2(); drag_node_accum = Vector2(); last_drag_node_accum = Vector2(); @@ -570,9 +516,7 @@ void ScrollBar::_drag_node_input(const Ref<InputEvent> &p_input) { } } else { - if (drag_node_touching) { - if (drag_node_speed == Vector2()) { drag_node_touching_deaccel = false; drag_node_touching = false; @@ -587,9 +531,7 @@ void ScrollBar::_drag_node_input(const Ref<InputEvent> &p_input) { Ref<InputEventMouseMotion> mm = p_input; if (mm.is_valid()) { - if (drag_node_touching && !drag_node_touching_deaccel) { - Vector2 motion = Vector2(mm->get_relative().x, mm->get_relative().y); drag_node_accum -= motion; @@ -607,9 +549,7 @@ void ScrollBar::_drag_node_input(const Ref<InputEvent> &p_input) { } void ScrollBar::set_drag_node(const NodePath &p_path) { - if (is_inside_tree()) { - if (drag_node) { drag_node->disconnect("gui_input", callable_mp(this, &ScrollBar::_drag_node_input)); drag_node->disconnect("tree_exiting", callable_mp(this, &ScrollBar::_drag_node_exit)); @@ -620,7 +560,6 @@ void ScrollBar::set_drag_node(const NodePath &p_path) { drag_node_path = p_path; if (is_inside_tree()) { - if (has_node(p_path)) { Node *n = get_node(p_path); drag_node = Object::cast_to<Control>(n); @@ -634,7 +573,6 @@ void ScrollBar::set_drag_node(const NodePath &p_path) { } NodePath ScrollBar::get_drag_node() const { - return drag_node_path; } @@ -647,7 +585,6 @@ bool ScrollBar::is_smooth_scroll_enabled() const { } void ScrollBar::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &ScrollBar::_gui_input); ClassDB::bind_method(D_METHOD("set_custom_step", "step"), &ScrollBar::set_custom_step); ClassDB::bind_method(D_METHOD("get_custom_step"), &ScrollBar::get_custom_step); @@ -658,7 +595,6 @@ void ScrollBar::_bind_methods() { } ScrollBar::ScrollBar(Orientation p_orientation) { - orientation = p_orientation; highlight = HIGHLIGHT_NONE; custom_step = -1; diff --git a/scene/gui/scroll_bar.h b/scene/gui/scroll_bar.h index ee5e7140cf..d2641b14f3 100644 --- a/scene/gui/scroll_bar.h +++ b/scene/gui/scroll_bar.h @@ -34,7 +34,6 @@ #include "scene/gui/range.h" class ScrollBar : public Range { - GDCLASS(ScrollBar, Range); enum HighlightStatus { @@ -53,7 +52,6 @@ class ScrollBar : public Range { HighlightStatus highlight; struct Drag { - bool active; float pos_at_click; float value_at_click; @@ -111,7 +109,6 @@ public: }; class HScrollBar : public ScrollBar { - GDCLASS(HScrollBar, ScrollBar); public: @@ -120,7 +117,6 @@ public: }; class VScrollBar : public ScrollBar { - GDCLASS(VScrollBar, ScrollBar); public: diff --git a/scene/gui/scroll_container.cpp b/scene/gui/scroll_container.cpp index fb17adf96e..2f54ece449 100644 --- a/scene/gui/scroll_container.cpp +++ b/scene/gui/scroll_container.cpp @@ -33,17 +33,14 @@ #include "scene/main/window.h" bool ScrollContainer::clips_input() const { - return true; } Size2 ScrollContainer::get_minimum_size() const { - Ref<StyleBox> sb = get_theme_stylebox("bg"); Size2 min_size; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -88,14 +85,12 @@ void ScrollContainer::_cancel_drag() { } void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { - double prev_v_scroll = v_scroll->get_value(); double prev_h_scroll = h_scroll->get_value(); Ref<InputEventMouseButton> mb = p_gui_input; if (mb.is_valid()) { - if (mb->get_button_index() == BUTTON_WHEEL_UP && mb->is_pressed()) { // only horizontal is enabled, scroll horizontally if (h_scroll->is_visible() && (!v_scroll->is_visible() || mb->get_shift())) { @@ -136,7 +131,6 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { return; if (mb->is_pressed()) { - if (drag_touching) { _cancel_drag(); } @@ -156,11 +150,9 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { } else { if (drag_touching) { - if (drag_speed == Vector2()) { _cancel_drag(); } else { - drag_touching_deaccel = true; } } @@ -170,9 +162,7 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { Ref<InputEventMouseMotion> mm = p_gui_input; if (mm.is_valid()) { - if (drag_touching && !drag_touching_deaccel) { - Vector2 motion = Vector2(mm->get_relative().x, mm->get_relative().y); drag_accum -= motion; @@ -201,7 +191,6 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { Ref<InputEventPanGesture> pan_gesture = p_gui_input; if (pan_gesture.is_valid()) { - if (h_scroll->is_visible_in_tree()) { h_scroll->set_value(h_scroll->get_value() + h_scroll->get_page() * pan_gesture->get_delta().x / 8); } @@ -215,7 +204,6 @@ void ScrollContainer::_gui_input(const Ref<InputEvent> &p_gui_input) { } void ScrollContainer::_update_scrollbar_position() { - Size2 hmin = h_scroll->get_combined_minimum_size(); Size2 vmin = v_scroll->get_combined_minimum_size(); @@ -234,7 +222,6 @@ void ScrollContainer::_update_scrollbar_position() { } void ScrollContainer::_ensure_focused_visible(Control *p_control) { - if (!follow_focus) { return; } @@ -259,19 +246,15 @@ void ScrollContainer::_ensure_focused_visible(Control *p_control) { } void ScrollContainer::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_THEME_CHANGED) { - call_deferred("_update_scrollbar_position"); }; if (p_what == NOTIFICATION_READY) { - get_viewport()->connect("gui_focus_changed", callable_mp(this, &ScrollContainer::_ensure_focused_visible)); } if (p_what == NOTIFICATION_SORT_CHILDREN) { - child_max_size = Size2(0, 0); Size2 size = get_size(); Point2 ofs; @@ -287,7 +270,6 @@ void ScrollContainer::_notification(int p_what) { size.x -= v_scroll->get_minimum_size().x; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -322,7 +304,6 @@ void ScrollContainer::_notification(int p_what) { }; if (p_what == NOTIFICATION_DRAW) { - Ref<StyleBox> sb = get_theme_stylebox("bg"); draw_style_box(sb, Rect2(Vector2(), get_size())); @@ -330,11 +311,8 @@ void ScrollContainer::_notification(int p_what) { } if (p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { - if (drag_touching) { - if (drag_touching_deaccel) { - Vector2 pos = Vector2(h_scroll->get_value(), v_scroll->get_value()); pos += drag_speed * get_physics_process_delta_time(); @@ -387,9 +365,7 @@ void ScrollContainer::_notification(int p_what) { } } else { - if (time_since_motion == 0 || time_since_motion > 0.1) { - Vector2 diff = drag_accum - last_drag_accum; last_drag_accum = drag_accum; drag_speed = diff / get_physics_process_delta_time(); @@ -402,7 +378,6 @@ void ScrollContainer::_notification(int p_what) { }; void ScrollContainer::update_scrollbars() { - Size2 size = get_size(); Ref<StyleBox> sb = get_theme_stylebox("bg"); size -= sb->get_minimum_size(); @@ -422,11 +397,9 @@ void ScrollContainer::update_scrollbars() { bool hide_scroll_h = !scroll_h || min.width <= size.width; if (hide_scroll_v) { - v_scroll->hide(); scroll.y = 0; } else { - v_scroll->show(); v_scroll->set_max(min.height); if (hide_scroll_h) { @@ -439,11 +412,9 @@ void ScrollContainer::update_scrollbars() { } if (hide_scroll_h) { - h_scroll->hide(); scroll.x = 0; } else { - h_scroll->show(); h_scroll->set_max(min.width); if (hide_scroll_v) { @@ -461,7 +432,6 @@ void ScrollContainer::update_scrollbars() { } void ScrollContainer::_scroll_moved(float) { - scroll.x = h_scroll->get_value(); scroll.y = v_scroll->get_value(); queue_sort(); @@ -480,7 +450,6 @@ void ScrollContainer::set_enable_h_scroll(bool p_enable) { } bool ScrollContainer::is_h_scroll_enabled() const { - return scroll_h; } @@ -495,26 +464,21 @@ void ScrollContainer::set_enable_v_scroll(bool p_enable) { } bool ScrollContainer::is_v_scroll_enabled() const { - return scroll_v; } int ScrollContainer::get_v_scroll() const { - return v_scroll->get_value(); } void ScrollContainer::set_v_scroll(int p_pos) { - v_scroll->set_value(p_pos); _cancel_drag(); } int ScrollContainer::get_h_scroll() const { - return h_scroll->get_value(); } void ScrollContainer::set_h_scroll(int p_pos) { - h_scroll->set_value(p_pos); _cancel_drag(); } @@ -536,11 +500,9 @@ void ScrollContainer::set_follow_focus(bool p_follow) { } String ScrollContainer::get_configuration_warning() const { - int found = 0; for (int i = 0; i < get_child_count(); i++) { - Control *c = Object::cast_to<Control>(get_child(i)); if (!c) continue; @@ -559,17 +521,14 @@ String ScrollContainer::get_configuration_warning() const { } HScrollBar *ScrollContainer::get_h_scrollbar() { - return h_scroll; } VScrollBar *ScrollContainer::get_v_scrollbar() { - return v_scroll; } void ScrollContainer::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &ScrollContainer::_gui_input); ClassDB::bind_method(D_METHOD("set_enable_h_scroll", "enable"), &ScrollContainer::set_enable_h_scroll); ClassDB::bind_method(D_METHOD("is_h_scroll_enabled"), &ScrollContainer::is_h_scroll_enabled); @@ -604,7 +563,6 @@ void ScrollContainer::_bind_methods() { }; ScrollContainer::ScrollContainer() { - h_scroll = memnew(HScrollBar); h_scroll->set_name("_h_scroll"); add_child(h_scroll); diff --git a/scene/gui/scroll_container.h b/scene/gui/scroll_container.h index 6423b36fcc..321e0e2c5a 100644 --- a/scene/gui/scroll_container.h +++ b/scene/gui/scroll_container.h @@ -36,7 +36,6 @@ #include "scroll_bar.h" class ScrollContainer : public Container { - GDCLASS(ScrollContainer, Container); HScrollBar *h_scroll; diff --git a/scene/gui/separator.cpp b/scene/gui/separator.cpp index 75c4b7cce9..4f7e5720b8 100644 --- a/scene/gui/separator.cpp +++ b/scene/gui/separator.cpp @@ -31,7 +31,6 @@ #include "separator.h" Size2 Separator::get_minimum_size() const { - Size2 ms(3, 3); if (orientation == VERTICAL) { ms.x = get_theme_constant("separation"); @@ -42,20 +41,15 @@ Size2 Separator::get_minimum_size() const { } void Separator::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_DRAW: { - Size2i size = get_size(); Ref<StyleBox> style = get_theme_stylebox("separator"); Size2i ssize = style->get_minimum_size() + style->get_center_size(); if (orientation == VERTICAL) { - style->draw(get_canvas_item(), Rect2((size.x - ssize.x) / 2, 0, ssize.x, size.y)); } else { - style->draw(get_canvas_item(), Rect2(0, (size.y - ssize.y) / 2, size.x, ssize.y)); } @@ -70,11 +64,9 @@ Separator::~Separator() { } HSeparator::HSeparator() { - orientation = HORIZONTAL; } VSeparator::VSeparator() { - orientation = VERTICAL; } diff --git a/scene/gui/separator.h b/scene/gui/separator.h index 9a64d6ba99..f7e5ef2c6b 100644 --- a/scene/gui/separator.h +++ b/scene/gui/separator.h @@ -33,7 +33,6 @@ #include "scene/gui/control.h" class Separator : public Control { - GDCLASS(Separator, Control); protected: @@ -48,7 +47,6 @@ public: }; class VSeparator : public Separator { - GDCLASS(VSeparator, Separator); public: @@ -56,7 +54,6 @@ public: }; class HSeparator : public Separator { - GDCLASS(HSeparator, Separator); public: diff --git a/scene/gui/shortcut.cpp b/scene/gui/shortcut.cpp index 262d8076f3..a529c52065 100644 --- a/scene/gui/shortcut.cpp +++ b/scene/gui/shortcut.cpp @@ -33,23 +33,19 @@ #include "core/os/keyboard.h" void ShortCut::set_shortcut(const Ref<InputEvent> &p_shortcut) { - shortcut = p_shortcut; emit_changed(); } Ref<InputEvent> ShortCut::get_shortcut() const { - return shortcut; } bool ShortCut::is_shortcut(const Ref<InputEvent> &p_event) const { - return shortcut.is_valid() && shortcut->shortcut_match(p_event); } String ShortCut::get_as_text() const { - if (shortcut.is_valid()) return shortcut->as_text(); else @@ -57,12 +53,10 @@ String ShortCut::get_as_text() const { } bool ShortCut::is_valid() const { - return shortcut.is_valid(); } void ShortCut::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_shortcut", "event"), &ShortCut::set_shortcut); ClassDB::bind_method(D_METHOD("get_shortcut"), &ShortCut::get_shortcut); diff --git a/scene/gui/shortcut.h b/scene/gui/shortcut.h index b22c3441c5..063d4e43dc 100644 --- a/scene/gui/shortcut.h +++ b/scene/gui/shortcut.h @@ -35,7 +35,6 @@ #include "core/resource.h" class ShortCut : public Resource { - GDCLASS(ShortCut, Resource); Ref<InputEvent> shortcut; diff --git a/scene/gui/slider.cpp b/scene/gui/slider.cpp index 910d5f8230..b48922bf32 100644 --- a/scene/gui/slider.cpp +++ b/scene/gui/slider.cpp @@ -32,7 +32,6 @@ #include "core/os/keyboard.h" Size2 Slider::get_minimum_size() const { - Ref<StyleBox> style = get_theme_stylebox("slider"); Size2i ss = style->get_minimum_size() + style->get_center_size(); @@ -46,7 +45,6 @@ Size2 Slider::get_minimum_size() const { } void Slider::_gui_input(Ref<InputEvent> p_event) { - if (!editable) { return; } @@ -55,7 +53,6 @@ void Slider::_gui_input(Ref<InputEvent> p_event) { if (mb.is_valid()) { if (mb->get_button_index() == BUTTON_LEFT) { - if (mb->is_pressed()) { Ref<Texture2D> grabber = get_theme_icon(mouse_inside || has_focus() ? "grabber_highlight" : "grabber"); grab.pos = orientation == VERTICAL ? mb->get_position().y : mb->get_position().x; @@ -85,7 +82,6 @@ void Slider::_gui_input(Ref<InputEvent> p_event) { if (mm.is_valid()) { if (grab.active) { - Size2i size = get_size(); Ref<Texture2D> grabber = get_theme_icon("grabber"); float motion = (orientation == VERTICAL ? mm->get_position().y : mm->get_position().x) - grab.pos; @@ -100,38 +96,31 @@ void Slider::_gui_input(Ref<InputEvent> p_event) { } if (!mm.is_valid() && !mb.is_valid()) { - if (p_event->is_action_pressed("ui_left", true)) { - if (orientation != HORIZONTAL) return; set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); accept_event(); } else if (p_event->is_action_pressed("ui_right", true)) { - if (orientation != HORIZONTAL) return; set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); accept_event(); } else if (p_event->is_action_pressed("ui_up", true)) { - if (orientation != VERTICAL) return; set_value(get_value() + (custom_step >= 0 ? custom_step : get_step())); accept_event(); } else if (p_event->is_action_pressed("ui_down", true)) { - if (orientation != VERTICAL) return; set_value(get_value() - (custom_step >= 0 ? custom_step : get_step())); accept_event(); } else if (p_event->is_action("ui_home") && p_event->is_pressed()) { - set_value(get_min()); accept_event(); } else if (p_event->is_action("ui_end") && p_event->is_pressed()) { - set_value(get_max()); accept_event(); } @@ -139,26 +128,21 @@ void Slider::_gui_input(Ref<InputEvent> p_event) { } void Slider::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); update(); } break; case NOTIFICATION_MOUSE_ENTER: { - mouse_inside = true; update(); } break; case NOTIFICATION_MOUSE_EXIT: { - mouse_inside = false; update(); } break; case NOTIFICATION_VISIBILITY_CHANGED: // fallthrough case NOTIFICATION_EXIT_TREE: { - mouse_inside = false; grab.active = false; } break; @@ -173,7 +157,6 @@ void Slider::_notification(int p_what) { double ratio = Math::is_nan(get_as_ratio()) ? 0 : get_as_ratio(); if (orientation == VERTICAL) { - int widget_width = style->get_minimum_size().width + style->get_center_size().width; float areasize = size.height - grabber->get_size().height; style->draw(ci, Rect2i(Point2i(size.width / 2 - widget_width / 2, 0), Size2i(widget_width, size.height))); @@ -190,7 +173,6 @@ void Slider::_notification(int p_what) { } grabber->draw(ci, Point2i(size.width / 2 - grabber->get_size().width / 2, size.height - ratio * areasize - grabber->get_size().height)); } else { - int widget_height = style->get_minimum_size().height + style->get_center_size().height; float areasize = size.width - grabber->get_size().width; @@ -214,23 +196,19 @@ void Slider::_notification(int p_what) { } void Slider::set_custom_step(float p_custom_step) { - custom_step = p_custom_step; } float Slider::get_custom_step() const { - return custom_step; } void Slider::set_ticks(int p_count) { - ticks = p_count; update(); } int Slider::get_ticks() const { - return ticks; } @@ -244,28 +222,23 @@ void Slider::set_ticks_on_borders(bool _tob) { } void Slider::set_editable(bool p_editable) { - editable = p_editable; update(); } bool Slider::is_editable() const { - return editable; } void Slider::set_scrollable(bool p_scrollable) { - scrollable = p_scrollable; } bool Slider::is_scrollable() const { - return scrollable; } void Slider::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &Slider::_gui_input); ClassDB::bind_method(D_METHOD("set_ticks", "count"), &Slider::set_ticks); ClassDB::bind_method(D_METHOD("get_ticks"), &Slider::get_ticks); diff --git a/scene/gui/slider.h b/scene/gui/slider.h index 1248044ec4..6f8f7cc7d8 100644 --- a/scene/gui/slider.h +++ b/scene/gui/slider.h @@ -34,7 +34,6 @@ #include "scene/gui/range.h" class Slider : public Range { - GDCLASS(Slider, Range); struct Grab { @@ -78,7 +77,6 @@ public: }; class HSlider : public Slider { - GDCLASS(HSlider, Slider); public: @@ -87,7 +85,6 @@ public: }; class VSlider : public Slider { - GDCLASS(VSlider, Slider); public: diff --git a/scene/gui/spin_box.cpp b/scene/gui/spin_box.cpp index 94628f7cea..a82e9f7009 100644 --- a/scene/gui/spin_box.cpp +++ b/scene/gui/spin_box.cpp @@ -34,14 +34,12 @@ #include "core/math/expression.h" Size2 SpinBox::get_minimum_size() const { - Size2 ms = line_edit->get_combined_minimum_size(); ms.width += last_w; return ms; } void SpinBox::_value_changed(double) { - String value = String::num(get_value(), Math::range_step_decimals(get_step())); if (prefix != "") value = prefix + " " + value; @@ -51,7 +49,6 @@ void SpinBox::_value_changed(double) { } void SpinBox::_text_entered(const String &p_string) { - Ref<Expression> expr; expr.instance(); // Ignore the prefix and suffix in the expression @@ -68,7 +65,6 @@ void SpinBox::_text_entered(const String &p_string) { } LineEdit *SpinBox::get_line_edit() { - return line_edit; } @@ -76,9 +72,7 @@ void SpinBox::_line_edit_input(const Ref<InputEvent> &p_event) { } void SpinBox::_range_click_timeout() { - if (!drag.enabled && Input::get_singleton()->is_mouse_button_pressed(BUTTON_LEFT)) { - bool up = get_local_mouse_position().y < (get_size().height / 2); set_value(get_value() + (up ? get_step() : -get_step())); @@ -94,7 +88,6 @@ void SpinBox::_range_click_timeout() { } void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { - if (!is_editable()) { return; } @@ -102,13 +95,10 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid() && mb->is_pressed()) { - bool up = mb->get_position().y < (get_size().height / 2); switch (mb->get_button_index()) { - case BUTTON_LEFT: { - line_edit->grab_focus(); set_value(get_value() + (up ? get_step() : -get_step())); @@ -121,20 +111,17 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { drag.capture_pos = mb->get_position(); } break; case BUTTON_RIGHT: { - line_edit->grab_focus(); set_value((up ? get_max() : get_min())); } break; case BUTTON_WHEEL_UP: { if (line_edit->has_focus()) { - set_value(get_value() + get_step() * mb->get_factor()); accept_event(); } } break; case BUTTON_WHEEL_DOWN: { if (line_edit->has_focus()) { - set_value(get_value() - get_step() * mb->get_factor()); accept_event(); } @@ -143,7 +130,6 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { } if (mb.is_valid() && !mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - //set_default_cursor_shape(CURSOR_ARROW); range_click_timer->stop(); @@ -158,14 +144,11 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid() && mm->get_button_mask() & BUTTON_MASK_LEFT) { - if (drag.enabled) { - drag.diff_y += mm->get_relative().y; float diff_y = -0.01 * Math::pow(ABS(drag.diff_y), 1.8f) * SGN(drag.diff_y); set_value(CLAMP(drag.base_val + get_step() * diff_y, get_min(), get_max())); } else if (drag.allowed && drag.capture_pos.distance_to(mm->get_position()) > 2) { - Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_CAPTURED); drag.enabled = true; drag.base_val = get_value(); @@ -175,7 +158,6 @@ void SpinBox::_gui_input(const Ref<InputEvent> &p_event) { } void SpinBox::_line_edit_focus_exit() { - // discontinue because the focus_exit was caused by right-click context menu if (line_edit->get_menu()->is_visible()) return; @@ -184,7 +166,6 @@ void SpinBox::_line_edit_focus_exit() { } inline void SpinBox::_adjust_width_for_icon(const Ref<Texture2D> &icon) { - int w = icon->get_width(); if (w != last_w) { line_edit->set_margin(MARGIN_RIGHT, -w); @@ -193,9 +174,7 @@ inline void SpinBox::_adjust_width_for_icon(const Ref<Texture2D> &icon) { } void SpinBox::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - Ref<Texture2D> updown = get_theme_icon("updown"); _adjust_width_for_icon(updown); @@ -206,48 +185,39 @@ void SpinBox::_notification(int p_what) { updown->draw(ci, Point2i(size.width - updown->get_width(), (size.height - updown->get_height()) / 2)); } else if (p_what == NOTIFICATION_FOCUS_EXIT) { - //_value_changed(0); } else if (p_what == NOTIFICATION_ENTER_TREE) { - _adjust_width_for_icon(get_theme_icon("updown")); _value_changed(0); } else if (p_what == NOTIFICATION_THEME_CHANGED) { - call_deferred("minimum_size_changed"); get_line_edit()->call_deferred("minimum_size_changed"); } } void SpinBox::set_align(LineEdit::Align p_align) { - line_edit->set_align(p_align); } LineEdit::Align SpinBox::get_align() const { - return line_edit->get_align(); } void SpinBox::set_suffix(const String &p_suffix) { - suffix = p_suffix; _value_changed(0); } String SpinBox::get_suffix() const { - return suffix; } void SpinBox::set_prefix(const String &p_prefix) { - prefix = p_prefix; _value_changed(0); } String SpinBox::get_prefix() const { - return prefix; } @@ -256,7 +226,6 @@ void SpinBox::set_editable(bool p_editable) { } bool SpinBox::is_editable() const { - return line_edit->is_editable(); } @@ -265,7 +234,6 @@ void SpinBox::apply() { } void SpinBox::_bind_methods() { - //ClassDB::bind_method(D_METHOD("_value_changed"),&SpinBox::_value_changed); ClassDB::bind_method(D_METHOD("_gui_input"), &SpinBox::_gui_input); ClassDB::bind_method(D_METHOD("set_align", "align"), &SpinBox::set_align); @@ -286,7 +254,6 @@ void SpinBox::_bind_methods() { } SpinBox::SpinBox() { - last_w = 0; line_edit = memnew(LineEdit); add_child(line_edit); diff --git a/scene/gui/spin_box.h b/scene/gui/spin_box.h index d3a3d8fe3d..3200480cf5 100644 --- a/scene/gui/spin_box.h +++ b/scene/gui/spin_box.h @@ -36,7 +36,6 @@ #include "scene/main/timer.h" class SpinBox : public Range { - GDCLASS(SpinBox, Range); LineEdit *line_edit; diff --git a/scene/gui/split_container.cpp b/scene/gui/split_container.cpp index de892a4fb9..14a4edc609 100644 --- a/scene/gui/split_container.cpp +++ b/scene/gui/split_container.cpp @@ -34,7 +34,6 @@ #include "margin_container.h" Control *SplitContainer::_getch(int p_idx) const { - int idx = 0; for (int i = 0; i < get_child_count(); i++) { @@ -119,7 +118,6 @@ void SplitContainer::_resort() { } Size2 SplitContainer::get_minimum_size() const { - /* Calculate MINIMUM SIZE */ Size2i minimum; @@ -128,12 +126,10 @@ Size2 SplitContainer::get_minimum_size() const { sep = (dragger_visibility != DRAGGER_HIDDEN_COLLAPSED) ? MAX(sep, vertical ? g->get_height() : g->get_width()) : 0; for (int i = 0; i < 2; i++) { - if (!_getch(i)) break; if (i == 1) { - if (vertical) minimum.height += sep; else @@ -143,11 +139,9 @@ Size2 SplitContainer::get_minimum_size() const { Size2 ms = _getch(i)->get_combined_minimum_size(); if (vertical) { - minimum.height += ms.height; minimum.width = MAX(minimum.width, ms.width); } else { - minimum.width += ms.width; minimum.height = MAX(minimum.height, ms.height); } @@ -157,21 +151,16 @@ Size2 SplitContainer::get_minimum_size() const { } void SplitContainer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_SORT_CHILDREN: { - _resort(); } break; case NOTIFICATION_MOUSE_EXIT: { - mouse_inside = false; if (get_theme_constant("autohide")) update(); } break; case NOTIFICATION_DRAW: { - if (!_getch(0) || !_getch(1)) return; @@ -191,46 +180,36 @@ void SplitContainer::_notification(int p_what) { draw_texture(tex, Point2i(middle_sep + (sep - tex->get_width()) / 2, (size.y - tex->get_height()) / 2)); } break; case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); } break; } } void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) { - if (collapsed || !_getch(0) || !_getch(1) || dragger_visibility != DRAGGER_VISIBLE) return; Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid()) { - if (mb->get_button_index() == BUTTON_LEFT) { - if (mb->is_pressed()) { - int sep = get_theme_constant("separation"); if (vertical) { - if (mb->get_position().y > middle_sep && mb->get_position().y < middle_sep + sep) { - dragging = true; drag_from = mb->get_position().y; drag_ofs = split_offset; } } else { - if (mb->get_position().x > middle_sep && mb->get_position().x < middle_sep + sep) { - dragging = true; drag_from = mb->get_position().x; drag_ofs = split_offset; } } } else { - dragging = false; } } @@ -239,7 +218,6 @@ void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - bool mouse_inside_state = false; if (vertical) mouse_inside_state = mm->get_position().y > middle_sep && mm->get_position().y < middle_sep + get_theme_constant("separation"); @@ -247,7 +225,6 @@ void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) { mouse_inside_state = mm->get_position().x > middle_sep && mm->get_position().x < middle_sep + get_theme_constant("separation"); if (mouse_inside != mouse_inside_state) { - mouse_inside = mouse_inside_state; if (get_theme_constant("autohide")) update(); @@ -264,20 +241,16 @@ void SplitContainer::_gui_input(const Ref<InputEvent> &p_event) { } Control::CursorShape SplitContainer::get_cursor_shape(const Point2 &p_pos) const { - if (dragging) return (vertical ? CURSOR_VSPLIT : CURSOR_HSPLIT); if (!collapsed && _getch(0) && _getch(1) && dragger_visibility == DRAGGER_VISIBLE) { - int sep = get_theme_constant("separation"); if (vertical) { - if (p_pos.y > middle_sep && p_pos.y < middle_sep + sep) return CURSOR_VSPLIT; } else { - if (p_pos.x > middle_sep && p_pos.x < middle_sep + sep) return CURSOR_HSPLIT; } @@ -287,7 +260,6 @@ Control::CursorShape SplitContainer::get_cursor_shape(const Point2 &p_pos) const } void SplitContainer::set_split_offset(int p_offset) { - if (split_offset == p_offset) return; @@ -297,7 +269,6 @@ void SplitContainer::set_split_offset(int p_offset) { } int SplitContainer::get_split_offset() const { - return split_offset; } @@ -308,7 +279,6 @@ void SplitContainer::clamp_split_offset() { } void SplitContainer::set_collapsed(bool p_collapsed) { - if (collapsed == p_collapsed) return; @@ -317,24 +287,20 @@ void SplitContainer::set_collapsed(bool p_collapsed) { } void SplitContainer::set_dragger_visibility(DraggerVisibility p_visibility) { - dragger_visibility = p_visibility; queue_sort(); update(); } SplitContainer::DraggerVisibility SplitContainer::get_dragger_visibility() const { - return dragger_visibility; } bool SplitContainer::is_collapsed() const { - return collapsed; } void SplitContainer::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &SplitContainer::_gui_input); ClassDB::bind_method(D_METHOD("set_split_offset", "offset"), &SplitContainer::set_split_offset); @@ -359,7 +325,6 @@ void SplitContainer::_bind_methods() { } SplitContainer::SplitContainer(bool p_vertical) { - mouse_inside = false; split_offset = 0; should_clamp_split_offset = false; diff --git a/scene/gui/split_container.h b/scene/gui/split_container.h index d759c6ad35..6dbd316a46 100644 --- a/scene/gui/split_container.h +++ b/scene/gui/split_container.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" class SplitContainer : public Container { - GDCLASS(SplitContainer, Container); public: @@ -86,7 +85,6 @@ public: VARIANT_ENUM_CAST(SplitContainer::DraggerVisibility); class HSplitContainer : public SplitContainer { - GDCLASS(HSplitContainer, SplitContainer); public: @@ -95,7 +93,6 @@ public: }; class VSplitContainer : public SplitContainer { - GDCLASS(VSplitContainer, SplitContainer); public: diff --git a/scene/gui/subviewport_container.cpp b/scene/gui/subviewport_container.cpp index 7252a43651..7d0dabeaca 100644 --- a/scene/gui/subviewport_container.cpp +++ b/scene/gui/subviewport_container.cpp @@ -34,12 +34,10 @@ #include "scene/main/viewport.h" Size2 SubViewportContainer::get_minimum_size() const { - if (stretch) return Size2(); Size2 ms; for (int i = 0; i < get_child_count(); i++) { - SubViewport *c = Object::cast_to<SubViewport>(get_child(i)); if (!c) continue; @@ -53,19 +51,16 @@ Size2 SubViewportContainer::get_minimum_size() const { } void SubViewportContainer::set_stretch(bool p_enable) { - stretch = p_enable; queue_sort(); update(); } bool SubViewportContainer::is_stretch_enabled() const { - return stretch; } void SubViewportContainer::set_stretch_shrink(int p_shrink) { - ERR_FAIL_COND(p_shrink < 1); if (shrink == p_shrink) return; @@ -76,7 +71,6 @@ void SubViewportContainer::set_stretch_shrink(int p_shrink) { return; for (int i = 0; i < get_child_count(); i++) { - SubViewport *c = Object::cast_to<SubViewport>(get_child(i)); if (!c) continue; @@ -88,19 +82,15 @@ void SubViewportContainer::set_stretch_shrink(int p_shrink) { } int SubViewportContainer::get_stretch_shrink() const { - return shrink; } void SubViewportContainer::_notification(int p_what) { - if (p_what == NOTIFICATION_RESIZED) { - if (!stretch) return; for (int i = 0; i < get_child_count(); i++) { - SubViewport *c = Object::cast_to<SubViewport>(get_child(i)); if (!c) continue; @@ -110,9 +100,7 @@ void SubViewportContainer::_notification(int p_what) { } if (p_what == NOTIFICATION_ENTER_TREE || p_what == NOTIFICATION_VISIBILITY_CHANGED) { - for (int i = 0; i < get_child_count(); i++) { - SubViewport *c = Object::cast_to<SubViewport>(get_child(i)); if (!c) continue; @@ -127,9 +115,7 @@ void SubViewportContainer::_notification(int p_what) { } if (p_what == NOTIFICATION_DRAW) { - for (int i = 0; i < get_child_count(); i++) { - SubViewport *c = Object::cast_to<SubViewport>(get_child(i)); if (!c) continue; @@ -143,7 +129,6 @@ void SubViewportContainer::_notification(int p_what) { } void SubViewportContainer::_input(const Ref<InputEvent> &p_event) { - if (Engine::get_singleton()->is_editor_hint()) return; @@ -158,7 +143,6 @@ void SubViewportContainer::_input(const Ref<InputEvent> &p_event) { Ref<InputEvent> ev = p_event->xformed_by(xform.affine_inverse()); for (int i = 0; i < get_child_count(); i++) { - SubViewport *c = Object::cast_to<SubViewport>(get_child(i)); if (!c || c->is_input_disabled()) continue; @@ -168,7 +152,6 @@ void SubViewportContainer::_input(const Ref<InputEvent> &p_event) { } void SubViewportContainer::_unhandled_input(const Ref<InputEvent> &p_event) { - if (Engine::get_singleton()->is_editor_hint()) return; @@ -183,7 +166,6 @@ void SubViewportContainer::_unhandled_input(const Ref<InputEvent> &p_event) { Ref<InputEvent> ev = p_event->xformed_by(xform.affine_inverse()); for (int i = 0; i < get_child_count(); i++) { - SubViewport *c = Object::cast_to<SubViewport>(get_child(i)); if (!c || c->is_input_disabled()) continue; @@ -193,7 +175,6 @@ void SubViewportContainer::_unhandled_input(const Ref<InputEvent> &p_event) { } void SubViewportContainer::_bind_methods() { - ClassDB::bind_method(D_METHOD("_unhandled_input", "event"), &SubViewportContainer::_unhandled_input); ClassDB::bind_method(D_METHOD("_input", "event"), &SubViewportContainer::_input); ClassDB::bind_method(D_METHOD("set_stretch", "enable"), &SubViewportContainer::set_stretch); @@ -207,7 +188,6 @@ void SubViewportContainer::_bind_methods() { } SubViewportContainer::SubViewportContainer() { - stretch = false; shrink = 1; set_process_input(true); diff --git a/scene/gui/subviewport_container.h b/scene/gui/subviewport_container.h index 13b711f838..fc4c9f925a 100644 --- a/scene/gui/subviewport_container.h +++ b/scene/gui/subviewport_container.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" class SubViewportContainer : public Container { - GDCLASS(SubViewportContainer, Container); bool stretch; diff --git a/scene/gui/tab_container.cpp b/scene/gui/tab_container.cpp index 3a128cf8e6..501e50e7f7 100644 --- a/scene/gui/tab_container.cpp +++ b/scene/gui/tab_container.cpp @@ -36,7 +36,6 @@ #include "scene/gui/texture_rect.h" int TabContainer::_get_top_margin() const { - if (!tabs_visible) return 0; @@ -53,7 +52,6 @@ int TabContainer::_get_top_margin() const { Vector<Control *> tabs = _get_tabs(); for (int i = 0; i < tabs.size(); i++) { - Control *c = tabs[i]; if (!c->has_meta("_tab_icon")) continue; @@ -68,11 +66,9 @@ int TabContainer::_get_top_margin() const { } void TabContainer::_gui_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - Point2 pos(mb->get_position().x, mb->get_position().y); Size2 size = get_size(); @@ -144,13 +140,11 @@ void TabContainer::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - Point2 pos(mm->get_position().x, mm->get_position().y); Size2 size = get_size(); // Mouse must be on tabs in the tab header area. if (pos.x < tabs_ofs_cache || pos.y > _get_top_margin()) { - if (menu_hovered || highlight_arrow > -1) { menu_hovered = false; highlight_arrow = -1; @@ -161,7 +155,6 @@ void TabContainer::_gui_input(const Ref<InputEvent> &p_event) { Ref<Texture2D> menu = get_theme_icon("menu"); if (popup) { - if (pos.x >= size.width - menu->get_width()) { if (!menu_hovered) { menu_hovered = true; @@ -194,13 +187,11 @@ void TabContainer::_gui_input(const Ref<InputEvent> &p_event) { Ref<Texture2D> increment = get_theme_icon("increment"); Ref<Texture2D> decrement = get_theme_icon("decrement"); if (pos.x >= size.width - increment->get_width() - popup_ofs) { - if (highlight_arrow != 1) { highlight_arrow = 1; update(); } } else if (pos.x >= size.width - increment->get_width() - decrement->get_width() - popup_ofs) { - if (highlight_arrow != 0) { highlight_arrow = 0; update(); @@ -213,16 +204,12 @@ void TabContainer::_gui_input(const Ref<InputEvent> &p_event) { } void TabContainer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_TRANSLATION_CHANGED: { - minimum_size_changed(); update(); } break; case NOTIFICATION_RESIZED: { - Vector<Control *> tabs = _get_tabs(); int side_margin = get_theme_constant("side_margin"); Ref<Texture2D> menu = get_theme_icon("menu"); @@ -257,7 +244,6 @@ void TabContainer::_notification(int p_what) { } } break; case NOTIFICATION_DRAW: { - RID canvas = get_canvas_item(); Size2 size = get_size(); @@ -412,7 +398,6 @@ void TabContainer::_notification(int p_what) { // Draw the navigation buttons. if (buttons_visible_cache) { - x -= increment->get_width(); if (last_tab_cache < tabs.size() - 1) { draw_texture(highlight_arrow == 1 ? increment_hl : increment, Point2(x, (header_height - increment->get_height()) / 2)); @@ -429,7 +414,6 @@ void TabContainer::_notification(int p_what) { } } break; case NOTIFICATION_THEME_CHANGED: { - minimum_size_changed(); call_deferred("_on_theme_changed"); // Wait until all changed theme. } break; @@ -451,7 +435,6 @@ void TabContainer::_on_mouse_exited() { } int TabContainer::_get_tab_width(int p_index) const { - ERR_FAIL_INDEX_V(p_index, get_tab_count(), 0); Control *control = Object::cast_to<Control>(_get_tabs()[p_index]); if (!control || control->is_set_as_toplevel() || get_tab_hidden(p_index)) @@ -488,10 +471,8 @@ int TabContainer::_get_tab_width(int p_index) const { } Vector<Control *> TabContainer::_get_tabs() const { - Vector<Control *> controls; for (int i = 0; i < get_child_count(); i++) { - Control *control = Object::cast_to<Control>(get_child(i)); if (!control || control->is_toplevel_control()) continue; @@ -502,12 +483,10 @@ Vector<Control *> TabContainer::_get_tabs() const { } void TabContainer::_child_renamed_callback() { - update(); } void TabContainer::add_child_notify(Node *p_child) { - Container::add_child_notify(p_child); Control *c = Object::cast_to<Control>(p_child); @@ -543,12 +522,10 @@ void TabContainer::add_child_notify(Node *p_child) { } int TabContainer::get_tab_count() const { - return _get_tabs().size(); } void TabContainer::set_current_tab(int p_current) { - ERR_FAIL_INDEX(p_current, get_tab_count()); int pending_previous = current; @@ -557,7 +534,6 @@ void TabContainer::set_current_tab(int p_current) { Ref<StyleBox> sb = get_theme_stylebox("panel"); Vector<Control *> tabs = _get_tabs(); for (int i = 0; i < tabs.size(); i++) { - Control *c = tabs[i]; if (i == current) { c->show(); @@ -587,17 +563,14 @@ void TabContainer::set_current_tab(int p_current) { } int TabContainer::get_current_tab() const { - return current; } int TabContainer::get_previous_tab() const { - return previous; } Control *TabContainer::get_tab_control(int p_idx) const { - Vector<Control *> tabs = _get_tabs(); if (p_idx >= 0 && p_idx < tabs.size()) return tabs[p_idx]; @@ -606,7 +579,6 @@ Control *TabContainer::get_tab_control(int p_idx) const { } Control *TabContainer::get_current_tab_control() const { - Vector<Control *> tabs = _get_tabs(); if (current >= 0 && current < tabs.size()) return tabs[current]; @@ -615,7 +587,6 @@ Control *TabContainer::get_current_tab_control() const { } void TabContainer::remove_child_notify(Node *p_child) { - Container::remove_child_notify(p_child); call_deferred("_update_current_tab"); @@ -626,7 +597,6 @@ void TabContainer::remove_child_notify(Node *p_child) { } void TabContainer::_update_current_tab() { - int tc = get_tab_count(); if (current >= tc) current = tc - 1; @@ -637,7 +607,6 @@ void TabContainer::_update_current_tab() { } Variant TabContainer::get_drag_data(const Point2 &p_point) { - if (!drag_to_rearrange_enabled) return Variant(); @@ -666,7 +635,6 @@ Variant TabContainer::get_drag_data(const Point2 &p_point) { } bool TabContainer::can_drop_data(const Point2 &p_point, const Variant &p_data) const { - if (!drag_to_rearrange_enabled) return false; @@ -675,7 +643,6 @@ bool TabContainer::can_drop_data(const Point2 &p_point, const Variant &p_data) c return false; if (String(d["type"]) == "tabc_element") { - NodePath from_path = d["from_path"]; NodePath to_path = get_path(); if (from_path == to_path) { @@ -693,7 +660,6 @@ bool TabContainer::can_drop_data(const Point2 &p_point, const Variant &p_data) c } void TabContainer::drop_data(const Point2 &p_point, const Variant &p_data) { - if (!drag_to_rearrange_enabled) return; @@ -704,7 +670,6 @@ void TabContainer::drop_data(const Point2 &p_point, const Variant &p_data) { return; if (String(d["type"]) == "tabc_element") { - int tab_from_id = d["tabc_element"]; NodePath from_path = d["from_path"]; NodePath to_path = get_path(); @@ -733,7 +698,6 @@ void TabContainer::drop_data(const Point2 &p_point, const Variant &p_data) { } int TabContainer::get_tab_idx_at_point(const Point2 &p_point) const { - if (get_tab_count() == 0) return -1; @@ -772,7 +736,6 @@ int TabContainer::get_tab_idx_at_point(const Point2 &p_point) const { } void TabContainer::set_tab_align(TabAlign p_align) { - ERR_FAIL_INDEX(p_align, 3); align = p_align; update(); @@ -781,12 +744,10 @@ void TabContainer::set_tab_align(TabAlign p_align) { } TabContainer::TabAlign TabContainer::get_tab_align() const { - return align; } void TabContainer::set_tabs_visible(bool p_visible) { - if (p_visible == tabs_visible) return; @@ -794,7 +755,6 @@ void TabContainer::set_tabs_visible(bool p_visible) { Vector<Control *> tabs = _get_tabs(); for (int i = 0; i < tabs.size(); i++) { - Control *c = tabs[i]; if (p_visible) c->set_margin(MARGIN_TOP, _get_top_margin()); @@ -807,17 +767,14 @@ void TabContainer::set_tabs_visible(bool p_visible) { } bool TabContainer::are_tabs_visible() const { - return tabs_visible; } Control *TabContainer::_get_tab(int p_idx) const { - return get_tab_control(p_idx); } void TabContainer::set_tab_title(int p_tab, const String &p_title) { - Control *child = _get_tab(p_tab); ERR_FAIL_COND(!child); child->set_meta("_tab_name", p_title); @@ -825,7 +782,6 @@ void TabContainer::set_tab_title(int p_tab, const String &p_title) { } String TabContainer::get_tab_title(int p_tab) const { - Control *child = _get_tab(p_tab); ERR_FAIL_COND_V(!child, ""); if (child->has_meta("_tab_name")) @@ -835,14 +791,12 @@ String TabContainer::get_tab_title(int p_tab) const { } void TabContainer::set_tab_icon(int p_tab, const Ref<Texture2D> &p_icon) { - Control *child = _get_tab(p_tab); ERR_FAIL_COND(!child); child->set_meta("_tab_icon", p_icon); update(); } Ref<Texture2D> TabContainer::get_tab_icon(int p_tab) const { - Control *child = _get_tab(p_tab); ERR_FAIL_COND_V(!child, Ref<Texture2D>()); if (child->has_meta("_tab_icon")) @@ -852,7 +806,6 @@ Ref<Texture2D> TabContainer::get_tab_icon(int p_tab) const { } void TabContainer::set_tab_disabled(int p_tab, bool p_disabled) { - Control *child = _get_tab(p_tab); ERR_FAIL_COND(!child); child->set_meta("_tab_disabled", p_disabled); @@ -860,7 +813,6 @@ void TabContainer::set_tab_disabled(int p_tab, bool p_disabled) { } bool TabContainer::get_tab_disabled(int p_tab) const { - Control *child = _get_tab(p_tab); ERR_FAIL_COND_V(!child, false); if (child->has_meta("_tab_disabled")) @@ -870,7 +822,6 @@ bool TabContainer::get_tab_disabled(int p_tab) const { } void TabContainer::set_tab_hidden(int p_tab, bool p_hidden) { - Control *child = _get_tab(p_tab); ERR_FAIL_COND(!child); child->set_meta("_tab_hidden", p_hidden); @@ -890,7 +841,6 @@ void TabContainer::set_tab_hidden(int p_tab, bool p_hidden) { } bool TabContainer::get_tab_hidden(int p_tab) const { - Control *child = _get_tab(p_tab); ERR_FAIL_COND_V(!child, false); if (child->has_meta("_tab_hidden")) @@ -900,10 +850,8 @@ bool TabContainer::get_tab_hidden(int p_tab) const { } void TabContainer::get_translatable_strings(List<String> *p_strings) const { - Vector<Control *> tabs = _get_tabs(); for (int i = 0; i < tabs.size(); i++) { - Control *c = tabs[i]; if (!c->has_meta("_tab_name")) @@ -917,12 +865,10 @@ void TabContainer::get_translatable_strings(List<String> *p_strings) const { } Size2 TabContainer::get_minimum_size() const { - Size2 ms; Vector<Control *> tabs = _get_tabs(); for (int i = 0; i < tabs.size(); i++) { - Control *c = tabs[i]; if (!c->is_visible_in_tree() && !use_hidden_tabs_for_min_size) @@ -983,7 +929,6 @@ bool TabContainer::get_use_hidden_tabs_for_min_size() const { } void TabContainer::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &TabContainer::_gui_input); ClassDB::bind_method(D_METHOD("get_tab_count"), &TabContainer::get_tab_count); ClassDB::bind_method(D_METHOD("set_current_tab", "tab_idx"), &TabContainer::set_current_tab); @@ -1030,7 +975,6 @@ void TabContainer::_bind_methods() { } TabContainer::TabContainer() { - first_tab_cache = 0; last_tab_cache = 0; buttons_visible_cache = false; diff --git a/scene/gui/tab_container.h b/scene/gui/tab_container.h index 38c029475c..e8cde74c83 100644 --- a/scene/gui/tab_container.h +++ b/scene/gui/tab_container.h @@ -34,7 +34,6 @@ #include "scene/gui/container.h" #include "scene/gui/popup.h" class TabContainer : public Container { - GDCLASS(TabContainer, Container); public: diff --git a/scene/gui/tabs.cpp b/scene/gui/tabs.cpp index b856d3ab3a..2dce34daf0 100644 --- a/scene/gui/tabs.cpp +++ b/scene/gui/tabs.cpp @@ -36,7 +36,6 @@ #include "scene/gui/texture_rect.h" Size2 Tabs::get_minimum_size() const { - Ref<StyleBox> tab_bg = get_theme_stylebox("tab_bg"); Ref<StyleBox> tab_fg = get_theme_stylebox("tab_fg"); Ref<StyleBox> tab_disabled = get_theme_stylebox("tab_disabled"); @@ -45,7 +44,6 @@ Size2 Tabs::get_minimum_size() const { Size2 ms(0, MAX(MAX(tab_bg->get_minimum_size().height, tab_fg->get_minimum_size().height), tab_disabled->get_minimum_size().height) + font->get_height()); for (int i = 0; i < tabs.size(); i++) { - Ref<Texture2D> tex = tabs[i].icon; if (tex.is_valid()) { ms.height = MAX(ms.height, tex->get_size().height); @@ -84,16 +82,13 @@ Size2 Tabs::get_minimum_size() const { } void Tabs::_gui_input(const Ref<InputEvent> &p_event) { - Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - Point2 pos = mm->get_position(); highlight_arrow = -1; if (buttons_visible) { - Ref<Texture2D> incr = get_theme_icon("increment"); Ref<Texture2D> decr = get_theme_icon("decrement"); @@ -114,9 +109,7 @@ void Tabs::_gui_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid()) { - if (mb->is_pressed() && mb->get_button_index() == BUTTON_WHEEL_UP && !mb->get_command()) { - if (scrolling_enabled && buttons_visible) { if (offset > 0) { offset--; @@ -135,7 +128,6 @@ void Tabs::_gui_input(const Ref<InputEvent> &p_event) { } if (rb_pressing && !mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - if (rb_hover != -1) { //pressed emit_signal("right_button_pressed", rb_hover); @@ -146,7 +138,6 @@ void Tabs::_gui_input(const Ref<InputEvent> &p_event) { } if (cb_pressing && !mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - if (cb_hover != -1) { //pressed emit_signal("tab_close", cb_hover); @@ -157,12 +148,10 @@ void Tabs::_gui_input(const Ref<InputEvent> &p_event) { } if (mb->is_pressed() && (mb->get_button_index() == BUTTON_LEFT || (select_with_rmb && mb->get_button_index() == BUTTON_RIGHT))) { - // clicks Point2 pos(mb->get_position().x, mb->get_position().y); if (buttons_visible) { - Ref<Texture2D> incr = get_theme_icon("increment"); Ref<Texture2D> decr = get_theme_icon("decrement"); @@ -185,7 +174,6 @@ void Tabs::_gui_input(const Ref<InputEvent> &p_event) { int found = -1; for (int i = offset; i < tabs.size(); i++) { - if (tabs[i].rb_rect.has_point(pos)) { rb_pressing = true; update(); @@ -207,7 +195,6 @@ void Tabs::_gui_input(const Ref<InputEvent> &p_event) { } if (found != -1) { - set_current_tab(found); emit_signal("tab_clicked", found); } @@ -216,9 +203,7 @@ void Tabs::_gui_input(const Ref<InputEvent> &p_event) { } void Tabs::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_TRANSLATION_CHANGED: { for (int i = 0; i < tabs.size(); ++i) { tabs.write[i].xl_text = tr(tabs[i].text); @@ -249,7 +234,6 @@ void Tabs::_notification(int p_what) { int mw = 0; for (int i = 0; i < tabs.size(); i++) { - tabs.write[i].ofs_cache = mw; mw += get_tab_width(i); } @@ -274,7 +258,6 @@ void Tabs::_notification(int p_what) { missing_right = false; for (int i = offset; i < tabs.size(); i++) { - tabs.write[i].ofs_cache = w; int lsize = tabs[i].size_cache; @@ -309,7 +292,6 @@ void Tabs::_notification(int p_what) { Size2i sb_ms = sb->get_minimum_size(); Ref<Texture2D> icon = tabs[i].icon; if (icon.is_valid()) { - icon->draw(ci, Point2i(w, sb->get_margin(MARGIN_TOP) + ((sb_rect.size.y - sb_ms.y) - icon->get_height()) / 2)); if (tabs[i].text != "") w += icon->get_width() + get_theme_constant("hseparation"); @@ -320,7 +302,6 @@ void Tabs::_notification(int p_what) { w += tabs[i].size_text; if (tabs[i].right_button.is_valid()) { - Ref<StyleBox> style = get_theme_stylebox("button"); Ref<Texture2D> rb = tabs[i].right_button; @@ -344,7 +325,6 @@ void Tabs::_notification(int p_what) { } if (cb_displaypolicy == CLOSE_BUTTON_SHOW_ALWAYS || (cb_displaypolicy == CLOSE_BUTTON_SHOW_ACTIVE_ONLY && i == current)) { - Ref<StyleBox> style = get_theme_stylebox("button"); Ref<Texture2D> cb = close; @@ -371,7 +351,6 @@ void Tabs::_notification(int p_what) { } if (offset > 0 || missing_right) { - int vofs = (get_size().height - incr->get_size().height) / 2; if (offset > 0) @@ -393,12 +372,10 @@ void Tabs::_notification(int p_what) { } int Tabs::get_tab_count() const { - return tabs.size(); } void Tabs::set_current_tab(int p_current) { - if (current == p_current) return; ERR_FAIL_INDEX(p_current, get_tab_count()); @@ -413,7 +390,6 @@ void Tabs::set_current_tab(int p_current) { } int Tabs::get_current_tab() const { - return current; } @@ -430,7 +406,6 @@ bool Tabs::get_offset_buttons_visible() const { } void Tabs::set_tab_title(int p_tab, const String &p_title) { - ERR_FAIL_INDEX(p_tab, tabs.size()); tabs.write[p_tab].text = p_title; tabs.write[p_tab].xl_text = tr(p_title); @@ -439,13 +414,11 @@ void Tabs::set_tab_title(int p_tab, const String &p_title) { } String Tabs::get_tab_title(int p_tab) const { - ERR_FAIL_INDEX_V(p_tab, tabs.size(), ""); return tabs[p_tab].text; } void Tabs::set_tab_icon(int p_tab, const Ref<Texture2D> &p_icon) { - ERR_FAIL_INDEX(p_tab, tabs.size()); tabs.write[p_tab].icon = p_icon; update(); @@ -453,25 +426,21 @@ void Tabs::set_tab_icon(int p_tab, const Ref<Texture2D> &p_icon) { } Ref<Texture2D> Tabs::get_tab_icon(int p_tab) const { - ERR_FAIL_INDEX_V(p_tab, tabs.size(), Ref<Texture2D>()); return tabs[p_tab].icon; } void Tabs::set_tab_disabled(int p_tab, bool p_disabled) { - ERR_FAIL_INDEX(p_tab, tabs.size()); tabs.write[p_tab].disabled = p_disabled; update(); } bool Tabs::get_tab_disabled(int p_tab) const { - ERR_FAIL_INDEX_V(p_tab, tabs.size(), false); return tabs[p_tab].disabled; } void Tabs::set_tab_right_button(int p_tab, const Ref<Texture2D> &p_right_button) { - ERR_FAIL_INDEX(p_tab, tabs.size()); tabs.write[p_tab].right_button = p_right_button; _update_cache(); @@ -479,13 +448,11 @@ void Tabs::set_tab_right_button(int p_tab, const Ref<Texture2D> &p_right_button) minimum_size_changed(); } Ref<Texture2D> Tabs::get_tab_right_button(int p_tab) const { - ERR_FAIL_INDEX_V(p_tab, tabs.size(), Ref<Texture2D>()); return tabs[p_tab].right_button; } void Tabs::_update_hover() { - if (!is_inside_tree()) { return; } @@ -495,7 +462,6 @@ void Tabs::_update_hover() { int hover_now = -1; int hover_buttons = -1; for (int i = offset; i < tabs.size(); i++) { - Rect2 rect = get_tab_rect(i); if (rect.has_point(pos)) { hover_now = i; @@ -552,7 +518,6 @@ void Tabs::_update_cache() { m_width = MAX((limit - size_fixed) / count_resize, min_width); } for (int i = offset; i < tabs.size(); i++) { - Ref<StyleBox> sb; if (tabs[i].disabled) { sb = tab_disabled; @@ -587,7 +552,6 @@ void Tabs::_update_cache() { } void Tabs::_on_mouse_exited() { - rb_hover = -1; cb_hover = -1; hover = -1; @@ -596,7 +560,6 @@ void Tabs::_on_mouse_exited() { } void Tabs::add_tab(const String &p_str, const Ref<Texture2D> &p_icon) { - Tab t; t.text = p_str; t.xl_text = tr(p_str); @@ -620,7 +583,6 @@ void Tabs::clear_tabs() { } void Tabs::remove_tab(int p_idx) { - ERR_FAIL_INDEX(p_idx, tabs.size()); tabs.remove(p_idx); if (current >= p_idx) @@ -639,7 +601,6 @@ void Tabs::remove_tab(int p_idx) { } Variant Tabs::get_drag_data(const Point2 &p_point) { - if (!drag_to_rearrange_enabled) return Variant(); @@ -672,7 +633,6 @@ Variant Tabs::get_drag_data(const Point2 &p_point) { } bool Tabs::can_drop_data(const Point2 &p_point, const Variant &p_data) const { - if (!drag_to_rearrange_enabled) return false; @@ -681,7 +641,6 @@ bool Tabs::can_drop_data(const Point2 &p_point, const Variant &p_data) const { return false; if (String(d["type"]) == "tab_element") { - NodePath from_path = d["from_path"]; NodePath to_path = get_path(); if (from_path == to_path) { @@ -699,7 +658,6 @@ bool Tabs::can_drop_data(const Point2 &p_point, const Variant &p_data) const { } void Tabs::drop_data(const Point2 &p_point, const Variant &p_data) { - if (!drag_to_rearrange_enabled) return; @@ -710,7 +668,6 @@ void Tabs::drop_data(const Point2 &p_point, const Variant &p_data) { return; if (String(d["type"]) == "tab_element") { - int tab_from_id = d["tab_element"]; NodePath from_path = d["from_path"]; NodePath to_path = get_path(); @@ -742,10 +699,8 @@ void Tabs::drop_data(const Point2 &p_point, const Variant &p_data) { } int Tabs::get_tab_idx_at_point(const Point2 &p_point) const { - int hover_now = -1; for (int i = offset; i < tabs.size(); i++) { - Rect2 rect = get_tab_rect(i); if (rect.has_point(p_point)) { hover_now = i; @@ -756,19 +711,16 @@ int Tabs::get_tab_idx_at_point(const Point2 &p_point) const { } void Tabs::set_tab_align(TabAlign p_align) { - ERR_FAIL_INDEX(p_align, ALIGN_MAX); tab_align = p_align; update(); } Tabs::TabAlign Tabs::get_tab_align() const { - return tab_align; } void Tabs::move_tab(int from, int to) { - if (from == to) return; @@ -784,7 +736,6 @@ void Tabs::move_tab(int from, int to) { } int Tabs::get_tab_width(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, tabs.size(), 0); Ref<StyleBox> tab_bg = get_theme_stylebox("tab_bg"); @@ -826,7 +777,6 @@ int Tabs::get_tab_width(int p_idx) const { } void Tabs::_ensure_no_over_offset() { - if (!is_inside_tree()) return; @@ -836,10 +786,8 @@ void Tabs::_ensure_no_over_offset() { int limit = get_size().width - incr->get_width() - decr->get_width(); while (offset > 0) { - int total_w = 0; for (int i = offset - 1; i < tabs.size(); i++) { - total_w += tabs[i].size_cache; } @@ -853,7 +801,6 @@ void Tabs::_ensure_no_over_offset() { } void Tabs::ensure_tab_visible(int p_idx) { - if (!is_inside_tree()) return; @@ -886,20 +833,17 @@ void Tabs::ensure_tab_visible(int p_idx) { } Rect2 Tabs::get_tab_rect(int p_tab) const { - ERR_FAIL_INDEX_V(p_tab, tabs.size(), Rect2()); return Rect2(tabs[p_tab].ofs_cache, 0, tabs[p_tab].size_cache, get_size().height); } void Tabs::set_tab_close_display_policy(CloseButtonDisplayPolicy p_policy) { - ERR_FAIL_INDEX(p_policy, CLOSE_BUTTON_MAX); cb_displaypolicy = p_policy; update(); } Tabs::CloseButtonDisplayPolicy Tabs::get_tab_close_display_policy() const { - return cb_displaypolicy; } @@ -939,7 +883,6 @@ bool Tabs::get_select_with_rmb() const { } void Tabs::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &Tabs::_gui_input); ClassDB::bind_method(D_METHOD("_update_hover"), &Tabs::_update_hover); ClassDB::bind_method(D_METHOD("get_tab_count"), &Tabs::get_tab_count); @@ -997,7 +940,6 @@ void Tabs::_bind_methods() { } Tabs::Tabs() { - current = 0; tab_align = ALIGN_CENTER; rb_hover = -1; diff --git a/scene/gui/tabs.h b/scene/gui/tabs.h index 3170acb46f..8757f70ebe 100644 --- a/scene/gui/tabs.h +++ b/scene/gui/tabs.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class Tabs : public Control { - GDCLASS(Tabs, Control); public: @@ -56,7 +55,6 @@ public: private: struct Tab { - String text; String xl_text; Ref<Texture2D> icon; diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index e986e350f3..ee1391806e 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -45,12 +45,10 @@ #define TAB_PIXELS inline bool _is_symbol(CharType c) { - return is_symbol(c); } static bool _is_text_char(CharType c) { - return !is_symbol(c); } @@ -59,7 +57,6 @@ static bool _is_whitespace(CharType c) { } static bool _is_char(CharType c) { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || c == '_'; } @@ -113,17 +110,14 @@ static int _find_first_non_whitespace_column_of_line(const String &line) { } void TextEdit::Text::set_font(const Ref<Font> &p_font) { - font = p_font; } void TextEdit::Text::set_indent_size(int p_indent_size) { - indent_size = p_indent_size; } void TextEdit::Text::_update_line_cache(int p_line) const { - int w = 0; int len = text[p_line].data.length(); @@ -144,7 +138,6 @@ void TextEdit::Text::_update_line_cache(int p_line) const { text.write[p_line].region_info.clear(); for (int i = 0; i < len; i++) { - if (!_is_symbol(str[i])) continue; if (str[i] == '\\') { @@ -155,7 +148,6 @@ void TextEdit::Text::_update_line_cache(int p_line) const { int left = len - i; for (int j = 0; j < color_regions->size(); j++) { - const ColorRegion &cr = color_regions->operator[](j); /* BEGIN */ @@ -177,7 +169,6 @@ void TextEdit::Text::_update_line_cache(int p_line) const { } if (match) { - ColorRegionInfo cri; cri.end = false; cri.region = j; @@ -204,7 +195,6 @@ void TextEdit::Text::_update_line_cache(int p_line) const { } if (match) { - ColorRegionInfo cri; cri.end = true; cri.region = j; @@ -219,7 +209,6 @@ void TextEdit::Text::_update_line_cache(int p_line) const { } const Map<int, TextEdit::Text::ColorRegionInfo> &TextEdit::Text::get_color_region_info(int p_line) const { - static Map<int, ColorRegionInfo> cri; ERR_FAIL_INDEX_V(p_line, text.size(), cri); @@ -231,7 +220,6 @@ const Map<int, TextEdit::Text::ColorRegionInfo> &TextEdit::Text::get_color_regio } int TextEdit::Text::get_line_width(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), -1); if (text[p_line].width_cache == -1) { @@ -242,28 +230,24 @@ int TextEdit::Text::get_line_width(int p_line) const { } void TextEdit::Text::set_line_wrap_amount(int p_line, int p_wrap_amount) const { - ERR_FAIL_INDEX(p_line, text.size()); text.write[p_line].wrap_amount_cache = p_wrap_amount; } int TextEdit::Text::get_line_wrap_amount(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), -1); return text[p_line].wrap_amount_cache; } void TextEdit::Text::clear_width_cache() { - for (int i = 0; i < text.size(); i++) { text.write[i].width_cache = -1; } } void TextEdit::Text::clear_wrap_cache() { - for (int i = 0; i < text.size(); i++) { text.write[i].wrap_amount_cache = -1; } @@ -276,7 +260,6 @@ void TextEdit::Text::clear_info_icons() { } void TextEdit::Text::clear() { - text.clear(); insert(0, ""); } @@ -293,7 +276,6 @@ int TextEdit::Text::get_max_width(bool p_exclude_hidden) const { } void TextEdit::Text::set(int p_line, const String &p_text) { - ERR_FAIL_INDEX(p_line, text.size()); text.write[p_line].width_cache = -1; @@ -302,7 +284,6 @@ void TextEdit::Text::set(int p_line, const String &p_text) { } void TextEdit::Text::insert(int p_at, const String &p_text) { - Line line; line.marked = false; line.safe = false; @@ -316,31 +297,26 @@ void TextEdit::Text::insert(int p_at, const String &p_text) { text.insert(p_at, line); } void TextEdit::Text::remove(int p_at) { - text.remove(p_at); } int TextEdit::Text::get_char_width(CharType c, CharType next_c, int px) const { - int tab_w = font->get_char_size(' ').width * indent_size; int w = 0; if (c == '\t') { - int left = px % tab_w; if (left == 0) w = tab_w; else w = tab_w - px % tab_w; // Is right. } else { - w = font->get_char_size(c, next_c).width; } return w; } void TextEdit::_update_scrollbars() { - Size2 size = get_size(); Size2 hmin = h_scroll->get_combined_minimum_size(); Size2 vmin = v_scroll->get_combined_minimum_size(); @@ -384,11 +360,9 @@ void TextEdit::_update_scrollbars() { // Thanks yessopie for this clever bit of logic. if (total_rows <= visible_rows && total_width <= visible_width) { - use_hscroll = false; use_vscroll = false; } else { - if (total_rows > visible_rows && total_width <= visible_width) { use_hscroll = false; } @@ -401,7 +375,6 @@ void TextEdit::_update_scrollbars() { updating_scrolls = true; if (use_vscroll) { - v_scroll->show(); v_scroll->set_max(total_rows + get_visible_rows_offset()); v_scroll->set_page(visible_rows + get_visible_rows_offset()); @@ -413,7 +386,6 @@ void TextEdit::_update_scrollbars() { set_v_scroll(get_v_scroll()); } else { - cursor.line_ofs = 0; cursor.wrap_ofs = 0; v_scroll->set_value(0); @@ -421,7 +393,6 @@ void TextEdit::_update_scrollbars() { } if (use_hscroll && !is_wrap_enabled()) { - h_scroll->show(); h_scroll->set_max(total_width); h_scroll->set_page(visible_width); @@ -432,7 +403,6 @@ void TextEdit::_update_scrollbars() { } } else { - cursor.x_ofs = 0; h_scroll->set_value(0); h_scroll->hide(); @@ -442,7 +412,6 @@ void TextEdit::_update_scrollbars() { } void TextEdit::_click_selection_held() { - // Warning: is_mouse_button_pressed(BUTTON_LEFT) returns false for double+ clicks, so this doesn't work for MODE_WORD // and MODE_LINE. However, moving the mouse triggers _gui_input, which calls these functions too, so that's not a huge problem. // I'm unsure if there's an actual fix that doesn't have a ton of side effects. @@ -597,7 +566,6 @@ void TextEdit::_update_minimap_click() { } void TextEdit::_update_minimap_drag() { - if (!can_drag_minimap) { return; } @@ -614,7 +582,6 @@ void TextEdit::_update_minimap_drag() { } void TextEdit::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_ENTER_TREE: { _update_caches(); @@ -718,7 +685,6 @@ void TextEdit::_notification(int p_what) { }; if (line_numbers) { - line_number_char_count = cache.line_number_w; cache.line_number_w = (cache.line_number_w + 1) * cache.font->get_char_size('0').width; } else { @@ -778,7 +744,6 @@ void TextEdit::_notification(int p_what) { bool brace_close_mismatch = false; if (brace_matching_enabled && cursor.line >= 0 && cursor.line < text.size() && cursor.column >= 0) { - if (cursor.column < text[cursor.line].length()) { // Check for open. CharType c = text[cursor.line][cursor.column]; @@ -793,14 +758,11 @@ void TextEdit::_notification(int p_what) { } if (closec != 0) { - int stack = 1; for (int i = cursor.line; i < text.size(); i++) { - int from = i == cursor.line ? cursor.column + 1 : 0; for (int j = from; j < text[i].length(); j++) { - CharType cc = text[i][j]; // Ignore any brackets inside a string. if (cc == '"' || cc == '\'') { @@ -859,14 +821,11 @@ void TextEdit::_notification(int p_what) { } if (closec != 0) { - int stack = 1; for (int i = cursor.line; i >= 0; i--) { - int from = i == cursor.line ? cursor.column - 2 : text[i].length() - 1; for (int j = from; j >= 0; j--) { - CharType cc = text[i][j]; // Ignore any brackets inside a string. if (cc == '"' || cc == '\'') { @@ -957,7 +916,6 @@ void TextEdit::_notification(int p_what) { Color viewport_color = (cache.background_color.get_v() < 0.5) ? Color(1, 1, 1, 0.1) : Color(0, 0, 0, 0.1); RenderingServer::get_singleton()->canvas_item_add_rect(ci, Rect2((xmargin_end + 2), viewport_offset_y, cache.minimap_width, viewport_height), viewport_color); for (int i = 0; i < minimap_draw_amount; i++) { - minimap_line++; if (minimap_line < 0 || minimap_line >= (int)text.size()) { @@ -1078,7 +1036,6 @@ void TextEdit::_notification(int p_what) { // draw main text int line = first_visible_line; for (int i = 0; i < draw_amount; i++) { - line++; if (line < 0 || line >= (int)text.size()) @@ -1286,7 +1243,6 @@ void TextEdit::_notification(int p_what) { // Loop through characters in one line. int j = 0; for (; j < str.length(); j++) { - if (syntax_coloring) { if (color_map.has(last_wrap_column + j)) { current_color = color_map[last_wrap_column + j].color; @@ -1307,7 +1263,6 @@ void TextEdit::_notification(int p_what) { // Line highlighting handle horizontal clipping. if (line == cursor.line && cursor_wrap_index == line_wrap_index && highlight_current_line) { - if (j == str.length() - 1) { // End of line when last char is skipped. RenderingServer::get_singleton()->canvas_item_add_rect(ci, Rect2(xmargin_beg + ofs_x, ofs_y, xmargin_end - (char_ofs + char_margin + char_w), get_row_height()), cache.current_line_color); @@ -1373,7 +1328,6 @@ void TextEdit::_notification(int p_what) { if (highlight_all_occurrences && !only_whitespaces_highlighted) { if (highlighted_text_col != -1) { - // If we are at the end check for new word on same line. if (j > highlighted_text_col + highlighted_text.length()) { highlighted_text_col = _get_column_pos_of_word(highlighted_text, str, SEARCH_MATCH_CASE | SEARCH_WHOLE_WORDS, j); @@ -1403,7 +1357,6 @@ void TextEdit::_notification(int p_what) { int yofs = ofs_y + (get_row_height() - cache.font->get_height()) / 2; if ((brace_open_match_line == line && brace_open_match_column == last_wrap_column + j) || (cursor.column == last_wrap_column + j && cursor.line == line && cursor_wrap_index == line_wrap_index && (brace_open_matching || brace_open_mismatch))) { - if (brace_open_mismatch) color = cache.brace_mismatch_color; drawer.draw_char(ci, Point2i(char_ofs + char_margin + ofs_x, yofs + ascent), '_', str[j + 1], in_selection && override_selected_font_color ? cache.font_color_selected : color); @@ -1411,7 +1364,6 @@ void TextEdit::_notification(int p_what) { if ((brace_close_match_line == line && brace_close_match_column == last_wrap_column + j) || (cursor.column == last_wrap_column + j + 1 && cursor.line == line && cursor_wrap_index == line_wrap_index && (brace_close_matching || brace_close_mismatch))) { - if (brace_close_mismatch) color = cache.brace_mismatch_color; drawer.draw_char(ci, Point2i(char_ofs + char_margin + ofs_x, yofs + ascent), '_', str[j + 1], in_selection && override_selected_font_color ? cache.font_color_selected : color); @@ -1419,7 +1371,6 @@ void TextEdit::_notification(int p_what) { } if (cursor.column == last_wrap_column + j && cursor.line == line && cursor_wrap_index == line_wrap_index) { - cursor_pos = Point2i(char_ofs + char_margin + ofs_x, ofs_y); cursor_pos.y += (get_row_height() - cache.font->get_height()) / 2; @@ -1516,7 +1467,6 @@ void TextEdit::_notification(int p_what) { } if (cursor.column == (last_wrap_column + j) && cursor.line == line && cursor_wrap_index == line_wrap_index && (char_ofs + char_margin) >= xmargin_beg) { - cursor_pos = Point2i(char_ofs + char_margin + ofs_x, ofs_y); cursor_pos.y += (get_row_height() - cache.font->get_height()) / 2; @@ -1636,7 +1586,6 @@ void TextEdit::_notification(int p_what) { draw_rect(Rect2(completion_rect.position + Vector2(icon_area_size.x + icon_hsep, 0), Size2(MIN(nofs, completion_rect.size.width - (icon_area_size.x + icon_hsep)), completion_rect.size.height)), cache.completion_existing_color); for (int i = 0; i < lines; i++) { - int l = line_from + i; ERR_CONTINUE(l < 0 || l >= completion_options_size); Color text_color = cache.completion_font_color; @@ -1688,7 +1637,6 @@ void TextEdit::_notification(int p_what) { } if (show_hint) { - Ref<StyleBox> sb = get_theme_stylebox("panel", "TooltipPanel"); Ref<Font> font = cache.font; Color font_color = get_theme_color("font_color", "TooltipLabel"); @@ -1698,7 +1646,6 @@ void TextEdit::_notification(int p_what) { int offset = 0; int spacing = 0; for (int i = 0; i < sc; i++) { - String l = completion_hint.get_slice("\n", i); int len = font->get_string_size(l).x; max_w = MAX(len, max_w); @@ -1756,7 +1703,6 @@ void TextEdit::_notification(int p_what) { } } break; case NOTIFICATION_FOCUS_ENTER: { - if (caret_blink_enabled) { caret_blink_timer->start(); } else { @@ -1773,7 +1719,6 @@ void TextEdit::_notification(int p_what) { DisplayServer::get_singleton()->virtual_keyboard_show(get_text(), get_global_rect()); } break; case NOTIFICATION_FOCUS_EXIT: { - if (caret_blink_enabled) { caret_blink_timer->stop(); } @@ -1789,7 +1734,6 @@ void TextEdit::_notification(int p_what) { DisplayServer::get_singleton()->virtual_keyboard_hide(); } break; case MainLoop::NOTIFICATION_OS_IME_UPDATE: { - if (has_focus()) { ime_text = DisplayServer::get_singleton()->ime_get_text(); ime_selection = DisplayServer::get_singleton()->ime_get_selection(); @@ -1800,7 +1744,6 @@ void TextEdit::_notification(int p_what) { } void TextEdit::_consume_pair_symbol(CharType ch) { - int cursor_position_to_move = cursor_get_column() + 1; CharType ch_single[2] = { ch, 0 }; @@ -1808,7 +1751,6 @@ void TextEdit::_consume_pair_symbol(CharType ch) { CharType ch_pair[3] = { ch, _get_right_pair_symbol(ch), 0 }; if (is_selection_active()) { - int new_column, new_line; begin_complex_operation(); @@ -1907,11 +1849,9 @@ void TextEdit::_consume_pair_symbol(CharType ch) { } void TextEdit::_consume_backspace_for_pair_symbol(int prev_line, int prev_column) { - bool remove_right_symbol = false; if (cursor.column < text[cursor.line].length() && cursor.column > 0) { - CharType left_char = text[cursor.line][cursor.column - 1]; CharType right_char = text[cursor.line][cursor.column]; @@ -1985,7 +1925,6 @@ void TextEdit::backspace_at_cursor() { } void TextEdit::indent_right() { - int start_line; int end_line; @@ -2034,7 +1973,6 @@ void TextEdit::indent_right() { } void TextEdit::indent_left() { - int start_line; int end_line; @@ -2105,7 +2043,6 @@ int TextEdit::_calculate_spaces_till_next_right_indent(int column) { } void TextEdit::_get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) const { - float rows = p_mouse.y; rows -= cache.style_normal->get_margin(MARGIN_TOP); rows /= get_row_height(); @@ -2115,7 +2052,6 @@ void TextEdit::_get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) co int wrap_index = 0; if (is_wrap_enabled() || is_hiding_enabled()) { - int f_ofs = num_lines_from_rows(first_vis_line, cursor.wrap_ofs, rows + (1 * SGN(rows)), wrap_index) - 1; if (rows < 0) row = first_vis_line - f_ofs; @@ -2129,11 +2065,9 @@ void TextEdit::_get_mouse_pos(const Point2i &p_mouse, int &r_row, int &r_col) co int col = 0; if (row >= text.size()) { - row = text.size() - 1; col = text[row].size(); } else { - int colx = p_mouse.x - (cache.style_normal->get_margin(MARGIN_LEFT) + cache.line_number_w + cache.breakpoint_gutter_width + cache.fold_gutter_width + cache.info_gutter_width); colx += cursor.x_ofs; col = get_char_pos_for_line(colx, row, wrap_index); @@ -2192,7 +2126,6 @@ Vector2i TextEdit::_get_cursor_pixel_pos() { } void TextEdit::_get_minimap_mouse_row(const Point2i &p_mouse, int &r_row) const { - float rows = p_mouse.y; rows -= cache.style_normal->get_margin(MARGIN_TOP); rows /= (minimap_char_size.y + minimap_line_spacing); @@ -2226,7 +2159,6 @@ void TextEdit::_get_minimap_mouse_row(const Point2i &p_mouse, int &r_row) const int wrap_index = 0; if (is_wrap_enabled() || is_hiding_enabled()) { - int f_ofs = num_lines_from_rows(minimap_line, cursor.wrap_ofs, rows + (1 * SGN(rows)), wrap_index) - 1; if (rows < 0) { row = minimap_line - f_ofs; @@ -2247,7 +2179,6 @@ void TextEdit::_get_minimap_mouse_row(const Point2i &p_mouse, int &r_row) const } void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { - double prev_v_scroll = v_scroll->get_value(); double prev_h_scroll = h_scroll->get_value(); @@ -2255,7 +2186,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { if (mb.is_valid()) { if (completion_active && completion_rect.has_point(mb->get_position())) { - if (!mb->is_pressed()) return; @@ -2267,7 +2197,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } if (mb->get_button_index() == BUTTON_WHEEL_DOWN) { - if (completion_index < completion_options.size() - 1) { completion_index++; completion_current = completion_options[completion_index]; @@ -2276,7 +2205,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (mb->get_button_index() == BUTTON_LEFT) { - completion_index = CLAMP(completion_line_ofs + (mb->get_position().y - completion_rect.position.y) / get_row_height(), 0, completion_options.size() - 1); completion_current = completion_options[completion_index]; @@ -2291,7 +2219,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (mb->is_pressed()) { - if (mb->get_button_index() == BUTTON_WHEEL_UP && !mb->get_command()) { if (mb->get_shift()) { h_scroll->set_value(h_scroll->get_value() - (100 * mb->get_factor())); @@ -2313,7 +2240,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { h_scroll->set_value(h_scroll->get_value() + (100 * mb->get_factor())); } if (mb->get_button_index() == BUTTON_LEFT) { - _reset_caret_blink_timer(); int row, col; @@ -2341,7 +2267,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { // Toggle fold on gutter click if can. if (draw_fold_gutter) { - int left_margin = cache.style_normal->get_margin(MARGIN_LEFT); int gutter_left = left_margin + cache.breakpoint_gutter_width + cache.line_number_w + cache.info_gutter_width; if (mb->get_position().x > gutter_left - 6 && mb->get_position().x <= gutter_left + cache.fold_gutter_width - 3) { @@ -2379,7 +2304,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { cursor_set_column(col); if (mb->get_shift() && (cursor.column != prev_col || cursor.line != prev_line)) { - if (!selection.active) { selection.active = true; selection.selecting_mode = Selection::MODE_POINTER; @@ -2399,9 +2323,7 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { selection.selecting_column = prev_col; update(); } else { - if (cursor.line < selection.selecting_line || (cursor.line == selection.selecting_line && cursor.column < selection.selecting_column)) { - if (selection.shiftclick_left) { SWAP(selection.from_column, selection.to_column); SWAP(selection.from_line, selection.to_line); @@ -2411,7 +2333,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { selection.from_line = cursor.line; } else if (cursor.line > selection.selecting_line || (cursor.line == selection.selecting_line && cursor.column > selection.selecting_column)) { - if (!selection.shiftclick_left) { SWAP(selection.from_column, selection.to_column); SWAP(selection.from_line, selection.to_line); @@ -2428,7 +2349,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } else { - selection.active = false; selection.selecting_mode = Selection::MODE_POINTER; selection.selecting_line = row; @@ -2436,13 +2356,11 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (!mb->is_doubleclick() && (OS::get_singleton()->get_ticks_msec() - last_dblclk) < 600 && cursor.line == prev_line) { - // Triple-click select line. selection.selecting_mode = Selection::MODE_LINE; _update_selection_mode_line(); last_dblclk = 0; } else if (mb->is_doubleclick() && text[cursor.line].length()) { - // Double-click select word. selection.selecting_mode = Selection::MODE_WORD; _update_selection_mode_word(); @@ -2453,7 +2371,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (mb->get_button_index() == BUTTON_RIGHT && context_menu_enabled) { - _reset_caret_blink_timer(); int row, col; @@ -2461,7 +2378,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { if (is_right_click_moving_caret()) { if (is_selection_active()) { - int from_line = get_selection_from_line(); int to_line = get_selection_to_line(); int from_column = get_selection_from_column(); @@ -2485,7 +2401,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { grab_focus(); } } else { - if (mb->get_button_index() == BUTTON_LEFT) { if (mb->get_command() && highlighted_word != String()) { int row, col; @@ -2508,7 +2423,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { const Ref<InputEventPanGesture> pan_gesture = p_gui_input; if (pan_gesture.is_valid()) { - const real_t delta = pan_gesture->get_delta().y; if (delta < 0) { _scroll_up(-delta); @@ -2525,10 +2439,8 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { Ref<InputEventMouseMotion> mm = p_gui_input; if (mm.is_valid()) { - if (select_identifiers_enabled) { if (!dragging_minimap && !dragging_selection && mm->get_command() && mm->get_button_mask() == 0) { - String new_word = get_word_at_pos(mm->get_position()); if (new_word != highlighted_word) { emit_signal("symbol_validate", new_word); @@ -2572,7 +2484,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { Ref<InputEventKey> k = p_gui_input; if (k.is_valid()) { - k = k->duplicate(); // It will be modified later on. #ifdef OSX_ENABLED @@ -2582,7 +2493,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { #endif if (select_identifiers_enabled) { - if (k->is_pressed() && !dragging_minimap && !dragging_selection) { emit_signal("symbol_validate", get_word_at_pos(get_local_mouse_position())); } else { @@ -2603,10 +2513,8 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { valid = false; if (valid) { - if (!k->get_alt()) { if (k->get_keycode() == KEY_UP) { - if (completion_index > 0) { completion_index--; } else { @@ -2620,7 +2528,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (k->get_keycode() == KEY_DOWN) { - if (completion_index < completion_options.size() - 1) { completion_index++; } else { @@ -2634,7 +2541,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (k->get_keycode() == KEY_PAGEUP) { - completion_index -= get_theme_constant("completion_lines"); if (completion_index < 0) completion_index = 0; @@ -2645,7 +2551,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (k->get_keycode() == KEY_PAGEDOWN) { - completion_index += get_theme_constant("completion_lines"); if (completion_index >= completion_options.size()) completion_index = completion_options.size() - 1; @@ -2656,7 +2561,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (k->get_keycode() == KEY_HOME && completion_index > 0) { - completion_index = 0; completion_current = completion_options[completion_index]; update(); @@ -2665,7 +2569,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (k->get_keycode() == KEY_END && completion_index < completion_options.size() - 1) { - completion_index = completion_options.size() - 1; completion_current = completion_options[completion_index]; update(); @@ -2674,14 +2577,12 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (k->get_keycode() == KEY_KP_ENTER || k->get_keycode() == KEY_ENTER || k->get_keycode() == KEY_TAB) { - _confirm_completion(); accept_event(); return; } if (k->get_keycode() == KEY_BACKSPACE) { - _reset_caret_blink_timer(); backspace_at_cursor(); @@ -2697,14 +2598,12 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (k->get_unicode() > 32) { - _reset_caret_blink_timer(); const CharType chr[2] = { (CharType)k->get_unicode(), 0 }; if (auto_brace_completion_enabled && _is_pair_symbol(chr[0])) { _consume_pair_symbol(chr[0]); } else { - // Remove the old character if in insert mode. if (insert_mode) { begin_complex_operation(); @@ -2735,11 +2634,9 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { // Some remaps for duplicate functions. if (k->get_command() && !k->get_shift() && !k->get_alt() && !k->get_metakey() && k->get_keycode() == KEY_INSERT) { - k->set_keycode(KEY_C); } if (!k->get_command() && k->get_shift() && !k->get_alt() && !k->get_metakey() && k->get_keycode() == KEY_INSERT) { - k->set_keycode(KEY_V); k->set_command(true); k->set_shift(false); @@ -2782,13 +2679,11 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { // Stuff to do when selection is active. if (!readonly && selection.active) { - bool clear = false; bool unselect = false; bool dobreak = false; switch (k->get_keycode()) { - case KEY_TAB: { if (k->get_shift()) { indent_left(); @@ -2844,7 +2739,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { update(); } if (clear) { - if (!dobreak) { begin_complex_operation(); } @@ -2866,10 +2760,8 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { // Special keycode test. switch (k->get_keycode()) { - case KEY_KP_ENTER: case KEY_ENTER: { - if (readonly) break; @@ -2931,7 +2823,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } if (indent_char_found && cri_map.has(i) && (color_regions[cri_map[i].region].begin_key == "#" || color_regions[cri_map[i].region].begin_key == "//")) { - should_indent = true; break; } else if (indent_char_found && !_is_whitespace(c)) { @@ -3005,7 +2896,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } else { if (k->get_shift()) { - // Simple unindent. int cc = cursor.column; const String &line = text[cursor.line]; @@ -3124,7 +3014,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { [[fallthrough]]; } case KEY_LEFT: { - if (k->get_shift()) _pre_shift_selection(); #ifdef APPLE_STYLE_KEYS @@ -3179,7 +3068,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } else if (cursor.column == 0) { - if (cursor.line > 0) { cursor_set_line(cursor.line - num_lines_from(CLAMP(cursor.line - 1, 0, text.size() - 1), -1)); cursor_set_column(text[cursor.line].length()); @@ -3200,7 +3088,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { [[fallthrough]]; } case KEY_RIGHT: { - if (k->get_shift()) _pre_shift_selection(); #ifdef APPLE_STYLE_KEYS @@ -3240,7 +3127,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } else if (cursor.column == text[cursor.line].length()) { - if (cursor.line < text.size() - 1) { cursor_set_line(cursor_get_line() + num_lines_from(CLAMP(cursor.line + 1, 0, text.size() - 1), 1), true, false); cursor_set_column(0); @@ -3261,7 +3147,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { [[fallthrough]]; } case KEY_UP: { - if (k->get_alt()) { keycode_handled = false; break; @@ -3281,7 +3166,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { #ifdef APPLE_STYLE_KEYS if (k->get_command()) { - cursor_set_line(0); } else #endif @@ -3314,7 +3198,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { [[fallthrough]]; } case KEY_DOWN: { - if (k->get_alt()) { keycode_handled = false; break; @@ -3355,7 +3238,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } break; case KEY_DELETE: { - if (readonly) break; @@ -3455,7 +3337,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { cursor_set_line(0); cursor_set_column(0); } else { - // Move cursor column to start of wrapped row and then to start of text. Vector<String> rows = get_wrap_rows_text(cursor.line); int wi = get_cursor_wrap_index(); @@ -3545,7 +3426,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { [[fallthrough]]; } case KEY_PAGEUP: { - if (k->get_shift()) _pre_shift_selection(); @@ -3568,7 +3448,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { [[fallthrough]]; } case KEY_PAGEDOWN: { - if (k->get_shift()) _pre_shift_selection(); @@ -3584,7 +3463,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } break; case KEY_A: { - #ifndef APPLE_STYLE_KEYS if (!k->get_control() || k->get_shift() || k->get_alt()) { keycode_handled = false; @@ -3624,7 +3502,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } break; case KEY_E: { - if (!k->get_control() || k->get_command() || k->get_alt()) { keycode_handled = false; break; @@ -3660,7 +3537,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } break; case KEY_C: { - if (!k->get_command() || k->get_shift() || k->get_alt()) { keycode_handled = false; break; @@ -3672,7 +3548,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } break; case KEY_Z: { - if (readonly) { break; } @@ -3690,7 +3565,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } } break; case KEY_Y: { - if (readonly) { break; } @@ -3744,7 +3618,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } break; default: { - keycode_handled = false; } break; } @@ -3761,7 +3634,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { if (!keycode_handled && !k->get_command()) { // For German keyboards. if (k->get_unicode() >= 32) { - if (readonly) return; @@ -3802,7 +3674,6 @@ void TextEdit::_gui_input(const Ref<InputEvent> &p_gui_input) { } void TextEdit::_scroll_up(real_t p_delta) { - if (scrolling && smooth_scroll_enabled && SGN(target_v_scroll - v_scroll->get_value()) != SGN(-p_delta)) { scrolling = false; minimap_clicked = false; @@ -3830,7 +3701,6 @@ void TextEdit::_scroll_up(real_t p_delta) { } void TextEdit::_scroll_down(real_t p_delta) { - if (scrolling && smooth_scroll_enabled && SGN(target_v_scroll - v_scroll->get_value()) != SGN(p_delta)) { scrolling = false; minimap_clicked = false; @@ -3859,9 +3729,7 @@ void TextEdit::_scroll_down(real_t p_delta) { } void TextEdit::_pre_shift_selection() { - if (!selection.active || selection.selecting_mode == Selection::MODE_NONE) { - selection.selecting_line = cursor.line; selection.selecting_column = cursor.column; selection.active = true; @@ -3871,9 +3739,7 @@ void TextEdit::_pre_shift_selection() { } void TextEdit::_post_shift_selection() { - if (selection.active && selection.selecting_mode == Selection::MODE_SHIFT) { - select(selection.selecting_line, selection.selecting_column, cursor.line, cursor.column); update(); } @@ -3924,7 +3790,6 @@ void TextEdit::_scroll_lines_down() { /**** TEXT EDIT CORE API ****/ void TextEdit::_base_insert_text(int p_line, int p_char, const String &p_text, int &r_end_line, int &r_end_column) { - // Save for undo. ERR_FAIL_INDEX(p_line, text.size()); ERR_FAIL_COND(p_char < 0); @@ -3951,7 +3816,6 @@ void TextEdit::_base_insert_text(int p_line, int p_char, const String &p_text, i /* STEP 3: Add spaces if the char is greater than the end of the line. */ while (p_char > text[p_line].length()) { - text.set(p_line, text[p_line] + String::chr(' ')); } @@ -3964,15 +3828,12 @@ void TextEdit::_base_insert_text(int p_line, int p_char, const String &p_text, i // Insert the substrings. if (j == 0) { - text.set(p_line, preinsert_text + substrings[j]); } else { - text.insert(p_line + j, substrings[j]); } if (j == substrings.size() - 1) { - text.set(p_line + j, text[p_line + j] + postinsert_text); } } @@ -4003,7 +3864,6 @@ void TextEdit::_base_insert_text(int p_line, int p_char, const String &p_text, i } String TextEdit::_base_get_text(int p_from_line, int p_from_column, int p_to_line, int p_to_column) const { - ERR_FAIL_INDEX_V(p_from_line, text.size(), String()); ERR_FAIL_INDEX_V(p_from_column, text[p_from_line].length() + 1, String()); ERR_FAIL_INDEX_V(p_to_line, text.size(), String()); @@ -4014,7 +3874,6 @@ String TextEdit::_base_get_text(int p_from_line, int p_from_column, int p_to_lin String ret; for (int i = p_from_line; i <= p_to_line; i++) { - int begin = (i == p_from_line) ? p_from_column : 0; int end = (i == p_to_line) ? p_to_column : text[i].length(); @@ -4027,7 +3886,6 @@ String TextEdit::_base_get_text(int p_from_line, int p_from_column, int p_to_lin } void TextEdit::_base_remove_text(int p_from_line, int p_from_column, int p_to_line, int p_to_column) { - ERR_FAIL_INDEX(p_from_line, text.size()); ERR_FAIL_INDEX(p_from_column, text[p_from_line].length() + 1); ERR_FAIL_INDEX(p_to_line, text.size()); @@ -4065,7 +3923,6 @@ void TextEdit::_base_remove_text(int p_from_line, int p_from_column, int p_to_li } void TextEdit::_insert_text(int p_line, int p_char, const String &p_text, int *r_end_line, int *r_end_char) { - if (!setting_text && idle_detect->is_inside_tree()) idle_detect->start(); @@ -4119,7 +3976,6 @@ void TextEdit::_insert_text(int p_line, int p_char, const String &p_text, int *r } void TextEdit::_remove_text(int p_from_line, int p_from_column, int p_to_line, int p_to_column) { - if (!setting_text && idle_detect->is_inside_tree()) idle_detect->start(); @@ -4168,7 +4024,6 @@ void TextEdit::_remove_text(int p_from_line, int p_from_column, int p_to_line, i } void TextEdit::_insert_text_at_cursor(const String &p_text) { - int new_column, new_line; _insert_text(cursor.line, cursor.column, p_text, &new_line, &new_column); _update_scrollbars(); @@ -4195,11 +4050,9 @@ void TextEdit::_line_edited_from(int p_line) { } int TextEdit::get_char_count() { - int totalsize = 0; for (int i = 0; i < text.size(); i++) { - if (i > 0) totalsize++; // Include \n. totalsize += text[i].length(); @@ -4209,7 +4062,6 @@ int TextEdit::get_char_count() { } Size2 TextEdit::get_minimum_size() const { - return cache.style_normal->get_minimum_size(); } @@ -4250,7 +4102,6 @@ int TextEdit::_get_minimap_visible_rows() const { } int TextEdit::get_total_visible_rows() const { - // Returns the total amount of rows we need in the editor. // This skips hidden lines and counts each wrapping of a line. if (!is_hiding_enabled() && !is_wrap_enabled()) @@ -4267,7 +4118,6 @@ int TextEdit::get_total_visible_rows() const { } void TextEdit::_update_wrap_at() { - wrap_at = get_size().width - cache.style_normal->get_minimum_size().width - cache.line_number_w - cache.breakpoint_gutter_width - cache.fold_gutter_width - cache.info_gutter_width - cache.minimap_width - wrap_right_offset; update_cursor_wrap_offset(); text.clear_wrap_cache(); @@ -4282,7 +4132,6 @@ void TextEdit::_update_wrap_at() { } void TextEdit::adjust_viewport_to_cursor() { - // Make sure cursor is visible on the screen. scrolling = false; minimap_clicked = false; @@ -4326,7 +4175,6 @@ void TextEdit::adjust_viewport_to_cursor() { } void TextEdit::center_viewport_to_cursor() { - // Move viewport so the cursor is in the center of the screen. scrolling = false; minimap_clicked = false; @@ -4368,7 +4216,6 @@ void TextEdit::update_cursor_wrap_offset() { } bool TextEdit::line_wraps(int line) const { - ERR_FAIL_INDEX_V(line, text.size(), 0); if (!is_wrap_enabled()) return false; @@ -4376,7 +4223,6 @@ bool TextEdit::line_wraps(int line) const { } int TextEdit::times_line_wraps(int line) const { - ERR_FAIL_INDEX_V(line, text.size(), 0); if (!line_wraps(line)) return 0; @@ -4393,7 +4239,6 @@ int TextEdit::times_line_wraps(int line) const { } Vector<String> TextEdit::get_wrap_rows_text(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), Vector<String>()); Vector<String> lines; @@ -4466,12 +4311,10 @@ Vector<String> TextEdit::get_wrap_rows_text(int p_line) const { } int TextEdit::get_cursor_wrap_index() const { - return get_line_wrap_index_at_col(cursor.line, cursor.column); } int TextEdit::get_line_wrap_index_at_col(int p_line, int p_column) const { - ERR_FAIL_INDEX_V(p_line, text.size(), 0); if (!line_wraps(p_line)) @@ -4512,7 +4355,6 @@ void TextEdit::cursor_set_column(int p_col, bool p_adjust_viewport) { } void TextEdit::cursor_set_line(int p_row, bool p_adjust_viewport, bool p_can_be_hidden, int p_wrap_index) { - if (setting_row) return; @@ -4565,12 +4407,10 @@ void TextEdit::cursor_set_line(int p_row, bool p_adjust_viewport, bool p_can_be_ } int TextEdit::cursor_get_column() const { - return cursor.column; } int TextEdit::cursor_get_line() const { - return cursor.line; } @@ -4624,14 +4464,12 @@ void TextEdit::_v_scroll_input() { } void TextEdit::_scroll_moved(double p_to_val) { - if (updating_scrolls) return; if (h_scroll->is_visible_in_tree()) cursor.x_ofs = h_scroll->get_value(); if (v_scroll->is_visible_in_tree()) { - // Set line ofs and wrap ofs. int v_scroll_i = floor(get_v_scroll()); int sc = 0; @@ -4656,16 +4494,13 @@ void TextEdit::_scroll_moved(double p_to_val) { } int TextEdit::get_row_height() const { - return cache.font->get_height() + cache.line_spacing; } int TextEdit::get_char_pos_for_line(int p_px, int p_line, int p_wrap_index) const { - ERR_FAIL_INDEX_V(p_line, text.size(), 0); if (line_wraps(p_line)) { - int line_wrap_amount = times_line_wraps(p_line); int wrap_offset_px = get_indent_level(p_line) * cache.font->get_char_size(' ').width; if (wrap_offset_px >= wrap_at) { @@ -4686,17 +4521,14 @@ int TextEdit::get_char_pos_for_line(int p_px, int p_line, int p_wrap_index) cons return c_pos; } else { - return get_char_pos_for(p_px, text[p_line]); } } int TextEdit::get_column_x_offset_for_line(int p_char, int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), 0); if (line_wraps(p_line)) { - int n_char = p_char; int col = 0; Vector<String> rows = get_wrap_rows_text(p_line); @@ -4720,18 +4552,15 @@ int TextEdit::get_column_x_offset_for_line(int p_char, int p_line) const { return px; } else { - return get_column_x_offset(p_char, text[p_line]); } } int TextEdit::get_char_pos_for(int p_px, String p_str) const { - int px = 0; int c = 0; while (c < p_str.length()) { - int w = text.get_char_width(p_str[c], p_str[c + 1], px); if (p_px < (px + w / 2)) @@ -4744,11 +4573,9 @@ int TextEdit::get_char_pos_for(int p_px, String p_str) const { } int TextEdit::get_column_x_offset(int p_char, String p_str) const { - int px = 0; for (int i = 0; i < p_char; i++) { - if (i >= p_str.length()) break; @@ -4759,9 +4586,7 @@ int TextEdit::get_column_x_offset(int p_char, String p_str) const { } void TextEdit::insert_text_at_cursor(const String &p_text) { - if (selection.active) { - cursor_set_line(selection.from_line); cursor_set_column(selection.from_column); @@ -4783,7 +4608,6 @@ Control::CursorShape TextEdit::get_cursor_shape(const Point2 &p_pos) const { return CURSOR_ARROW; } if (p_pos.x < gutter) { - int row, col; _get_mouse_pos(p_pos, row, col); int left_margin = cache.style_normal->get_margin(MARGIN_LEFT); @@ -4833,7 +4657,6 @@ Control::CursorShape TextEdit::get_cursor_shape(const Point2 &p_pos) const { } void TextEdit::set_text(String p_text) { - setting_text = true; if (!undo_enabled) { _clear(); @@ -4862,7 +4685,6 @@ String TextEdit::get_text() { String longthing; int len = text.size(); for (int i = 0; i < len; i++) { - longthing += text[i]; if (i != len - 1) longthing += "\n"; @@ -4872,20 +4694,17 @@ String TextEdit::get_text() { }; String TextEdit::get_text_for_lookup_completion() { - int row, col; _get_mouse_pos(get_local_mouse_position(), row, col); String longthing; int len = text.size(); for (int i = 0; i < len; i++) { - if (i == row) { longthing += text[i].substr(0, col); longthing += String::chr(0xFFFF); // Not unicode, represents the cursor. longthing += text[i].substr(col, text[i].size()); } else { - longthing += text[i]; } @@ -4897,17 +4716,14 @@ String TextEdit::get_text_for_lookup_completion() { } String TextEdit::get_text_for_completion() { - String longthing; int len = text.size(); for (int i = 0; i < len; i++) { - if (i == cursor.line) { longthing += text[i].substr(0, cursor.column); longthing += String::chr(0xFFFF); // Not unicode, represents the cursor. longthing += text[i].substr(cursor.column, text[i].size()); } else { - longthing += text[i]; } @@ -4919,7 +4735,6 @@ String TextEdit::get_text_for_completion() { }; String TextEdit::get_line(int line) const { - if (line < 0 || line >= text.size()) return ""; @@ -4927,7 +4742,6 @@ String TextEdit::get_line(int line) const { }; void TextEdit::_clear() { - clear_undo_history(); text.clear(); cursor.column = 0; @@ -4940,14 +4754,12 @@ void TextEdit::_clear() { } void TextEdit::clear() { - setting_text = true; _clear(); setting_text = false; }; void TextEdit::set_readonly(bool p_readonly) { - if (readonly == p_readonly) return; @@ -4984,27 +4796,22 @@ void TextEdit::set_readonly(bool p_readonly) { } bool TextEdit::is_readonly() const { - return readonly; } void TextEdit::set_wrap_enabled(bool p_wrap_enabled) { - wrap_enabled = p_wrap_enabled; } bool TextEdit::is_wrap_enabled() const { - return wrap_enabled; } void TextEdit::set_max_chars(int p_max_chars) { - max_chars = p_max_chars; } int TextEdit::get_max_chars() const { - return max_chars; } @@ -5027,7 +4834,6 @@ void TextEdit::_toggle_draw_caret() { } void TextEdit::_update_caches() { - cache.style_normal = get_theme_stylebox("normal"); cache.style_focus = get_theme_stylebox("focus"); cache.style_readonly = get_theme_stylebox("read_only"); @@ -5095,7 +4901,6 @@ void TextEdit::_set_syntax_highlighting(SyntaxHighlighter *p_syntax_highlighter) } int TextEdit::_is_line_in_region(int p_line) { - // Do we have in cache? if (color_region_cache.has(p_line)) { return color_region_cache[p_line]; @@ -5153,7 +4958,6 @@ Map<int, TextEdit::Text::ColorRegionInfo> TextEdit::_get_line_color_region_info( } void TextEdit::clear_colors() { - keywords.clear(); member_keywords.clear(); color_regions.clear(); @@ -5164,7 +4968,6 @@ void TextEdit::clear_colors() { } void TextEdit::add_keyword_color(const String &p_keyword, const Color &p_color) { - keywords[p_keyword] = p_color; syntax_highlighting_cache.clear(); update(); @@ -5175,13 +4978,11 @@ bool TextEdit::has_keyword_color(String p_keyword) const { } Color TextEdit::get_keyword_color(String p_keyword) const { - ERR_FAIL_COND_V(!keywords.has(p_keyword), Color()); return keywords[p_keyword]; } void TextEdit::add_color_region(const String &p_begin_key, const String &p_end_key, const Color &p_color, bool p_line_only) { - color_regions.push_back(ColorRegion(p_begin_key, p_end_key, p_color, p_line_only)); syntax_highlighting_cache.clear(); text.clear_width_cache(); @@ -5209,13 +5010,11 @@ void TextEdit::clear_member_keywords() { } void TextEdit::set_syntax_coloring(bool p_enabled) { - syntax_coloring = p_enabled; update(); } bool TextEdit::is_syntax_coloring_enabled() const { - return syntax_coloring; } @@ -5224,9 +5023,7 @@ void TextEdit::set_auto_indent(bool p_auto_indent) { } void TextEdit::cut() { - if (!selection.active) { - String clipboard = text[cursor.line]; DisplayServer::get_singleton()->clipboard_set(clipboard); cursor_set_line(cursor.line); @@ -5244,7 +5041,6 @@ void TextEdit::cut() { cut_copy_line = clipboard; } else { - String clipboard = _base_get_text(selection.from_line, selection.from_column, selection.to_line, selection.to_column); DisplayServer::get_singleton()->clipboard_set(clipboard); @@ -5260,11 +5056,8 @@ void TextEdit::cut() { } void TextEdit::copy() { - if (!selection.active) { - if (text[cursor.line].length() != 0) { - String clipboard = _base_get_text(cursor.line, 0, cursor.line, text[cursor.line].length()); DisplayServer::get_singleton()->clipboard_set(clipboard); cut_copy_line = clipboard; @@ -5277,12 +5070,10 @@ void TextEdit::copy() { } void TextEdit::paste() { - String clipboard = DisplayServer::get_singleton()->clipboard_get(); begin_complex_operation(); if (selection.active) { - selection.active = false; selection.selecting_mode = Selection::MODE_NONE; _remove_text(selection.from_line, selection.from_column, selection.to_line, selection.to_column); @@ -5290,7 +5081,6 @@ void TextEdit::paste() { cursor_set_column(selection.from_column); } else if (!cut_copy_line.empty() && cut_copy_line == clipboard) { - cursor_set_column(0); String ins = "\n"; clipboard += ins; @@ -5323,7 +5113,6 @@ void TextEdit::select_all() { } void TextEdit::deselect() { - selection.active = false; update(); } @@ -5358,26 +5147,20 @@ void TextEdit::select(int p_from_line, int p_from_column, int p_to_line, int p_t selection.active = true; if (selection.from_line == selection.to_line) { - if (selection.from_column == selection.to_column) { - selection.active = false; } else if (selection.from_column > selection.to_column) { - selection.shiftclick_left = false; SWAP(selection.from_column, selection.to_column); } else { - selection.shiftclick_left = true; } } else if (selection.from_line > selection.to_line) { - selection.shiftclick_left = false; SWAP(selection.from_line, selection.to_line); SWAP(selection.from_column, selection.to_column); } else { - selection.shiftclick_left = true; } @@ -5390,32 +5173,26 @@ void TextEdit::swap_lines(int line1, int line2) { set_line(line1, tmp2); } bool TextEdit::is_selection_active() const { - return selection.active; } int TextEdit::get_selection_from_line() const { - ERR_FAIL_COND_V(!selection.active, -1); return selection.from_line; } int TextEdit::get_selection_from_column() const { - ERR_FAIL_COND_V(!selection.active, -1); return selection.from_column; } int TextEdit::get_selection_to_line() const { - ERR_FAIL_COND_V(!selection.active, -1); return selection.to_line; } int TextEdit::get_selection_to_column() const { - ERR_FAIL_COND_V(!selection.active, -1); return selection.to_column; } String TextEdit::get_selection_text() const { - if (!selection.active) return ""; @@ -5423,7 +5200,6 @@ String TextEdit::get_selection_text() const { } String TextEdit::get_word_under_cursor() const { - int prev_cc = cursor.column; while (prev_cc > 0) { bool is_char = _is_text_char(text[cursor.line][prev_cc - 1]); @@ -5500,7 +5276,6 @@ int TextEdit::_get_column_pos_of_word(const String &p_key, const String &p_searc } Vector<int> TextEdit::_search_bind(const String &p_key, uint32_t p_search_flags, int p_from_line, int p_from_column) const { - int col, line; if (search(p_key, p_search_flags, p_from_line, p_from_column, line, col)) { Vector<int> result; @@ -5510,13 +5285,11 @@ Vector<int> TextEdit::_search_bind(const String &p_key, uint32_t p_search_flags, return result; } else { - return Vector<int>(); } } bool TextEdit::search(const String &p_key, uint32_t p_search_flags, int p_from_line, int p_from_column, int &r_line, int &r_column) const { - if (p_key.length() == 0) return false; ERR_FAIL_INDEX_V(p_from_line, text.size(), false); @@ -5528,7 +5301,6 @@ bool TextEdit::search(const String &p_key, uint32_t p_search_flags, int p_from_l int pos = -1; for (int i = 0; i < text.size() + 1; i++) { - if (line < 0) { line = text.size() - 1; } @@ -5539,7 +5311,6 @@ bool TextEdit::search(const String &p_key, uint32_t p_search_flags, int p_from_l String text_line = text[line]; int from_column = 0; if (line == p_from_line) { - if (i == text.size()) { // Wrapped. @@ -5550,7 +5321,6 @@ bool TextEdit::search(const String &p_key, uint32_t p_search_flags, int p_from_l } } else { - from_column = p_from_column; } @@ -5567,7 +5337,6 @@ bool TextEdit::search(const String &p_key, uint32_t p_search_flags, int p_from_l int last_pos = -1; while (true) { - if (p_search_flags & SEARCH_BACKWARDS) { while ((last_pos = (p_search_flags & SEARCH_MATCH_CASE) ? text_line.rfind(p_key, pos_from) : text_line.rfindn(p_key, pos_from)) != -1) { if (last_pos <= from_column) { @@ -5633,19 +5402,16 @@ bool TextEdit::search(const String &p_key, uint32_t p_search_flags, int p_from_l } void TextEdit::_cursor_changed_emit() { - emit_signal("cursor_changed"); cursor_changed_dirty = false; } void TextEdit::_text_changed_emit() { - emit_signal("text_changed"); text_changed_dirty = false; } void TextEdit::set_line_as_marked(int p_line, bool p_marked) { - ERR_FAIL_INDEX(p_line, text.size()); text.set_marked(p_line, p_marked); update(); @@ -5674,20 +5440,17 @@ void TextEdit::clear_executing_line() { } bool TextEdit::is_line_set_as_bookmark(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), false); return text.is_bookmark(p_line); } void TextEdit::set_line_as_bookmark(int p_line, bool p_bookmark) { - ERR_FAIL_INDEX(p_line, text.size()); text.set_bookmark(p_line, p_bookmark); update(); } void TextEdit::get_bookmarks(List<int> *p_bookmarks) const { - for (int i = 0; i < text.size(); i++) { if (text.is_bookmark(i)) p_bookmarks->push_back(i); @@ -5695,7 +5458,6 @@ void TextEdit::get_bookmarks(List<int> *p_bookmarks) const { } Array TextEdit::get_bookmarks_array() const { - Array arr; for (int i = 0; i < text.size(); i++) { if (text.is_bookmark(i)) @@ -5705,20 +5467,17 @@ Array TextEdit::get_bookmarks_array() const { } bool TextEdit::is_line_set_as_breakpoint(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), false); return text.is_breakpoint(p_line); } void TextEdit::set_line_as_breakpoint(int p_line, bool p_breakpoint) { - ERR_FAIL_INDEX(p_line, text.size()); text.set_breakpoint(p_line, p_breakpoint); update(); } void TextEdit::get_breakpoints(List<int> *p_breakpoints) const { - for (int i = 0; i < text.size(); i++) { if (text.is_breakpoint(i)) p_breakpoints->push_back(i); @@ -5726,7 +5485,6 @@ void TextEdit::get_breakpoints(List<int> *p_breakpoints) const { } Array TextEdit::get_breakpoints_array() const { - Array arr; for (int i = 0; i < text.size(); i++) { if (text.is_breakpoint(i)) @@ -5755,7 +5513,6 @@ void TextEdit::clear_info_icons() { } void TextEdit::set_line_as_hidden(int p_line, bool p_hidden) { - ERR_FAIL_INDEX(p_line, text.size()); if (is_hiding_enabled() || !p_hidden) text.set_hidden(p_line, p_hidden); @@ -5763,13 +5520,11 @@ void TextEdit::set_line_as_hidden(int p_line, bool p_hidden) { } bool TextEdit::is_line_hidden(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), false); return text.is_hidden(p_line); } void TextEdit::fold_all_lines() { - for (int i = 0; i < text.size(); i++) { fold_line(i); } @@ -5778,7 +5533,6 @@ void TextEdit::fold_all_lines() { } void TextEdit::unhide_all_lines() { - for (int i = 0; i < text.size(); i++) { text.set_hidden(i, false); } @@ -5787,7 +5541,6 @@ void TextEdit::unhide_all_lines() { } int TextEdit::num_lines_from(int p_line_from, int visible_amount) const { - // Returns the number of lines (hidden and unhidden) from p_line_from to (p_line_from + visible_amount of unhidden lines). ERR_FAIL_INDEX_V(p_line_from, text.size(), ABS(visible_amount)); @@ -5820,7 +5573,6 @@ int TextEdit::num_lines_from(int p_line_from, int visible_amount) const { } int TextEdit::num_lines_from_rows(int p_line_from, int p_wrap_index_from, int visible_amount, int &wrap_index) const { - // Returns the number of lines (hidden and unhidden) from (p_line_from + p_wrap_index_from) row to (p_line_from + visible_amount of unhidden and wrapped rows). // Wrap index is set to the wrap index of the last line. wrap_index = 0; @@ -5867,7 +5619,6 @@ int TextEdit::num_lines_from_rows(int p_line_from, int p_wrap_index_from, int vi } int TextEdit::get_last_unhidden_line() const { - // Returns the last line in the text that is not hidden. if (!is_hiding_enabled()) return text.size() - 1; @@ -5882,7 +5633,6 @@ int TextEdit::get_last_unhidden_line() const { } int TextEdit::get_indent_level(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), 0); // Counts number of tabs and spaces before line starts. @@ -5902,7 +5652,6 @@ int TextEdit::get_indent_level(int p_line) const { } bool TextEdit::is_line_comment(int p_line) const { - // Checks to see if this line is the start of a comment. ERR_FAIL_INDEX_V(p_line, text.size(), false); @@ -5923,7 +5672,6 @@ bool TextEdit::is_line_comment(int p_line) const { } bool TextEdit::can_fold(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), false); if (!is_hiding_enabled()) return false; @@ -5957,7 +5705,6 @@ bool TextEdit::can_fold(int p_line) const { } bool TextEdit::is_folded(int p_line) const { - ERR_FAIL_INDEX_V(p_line, text.size(), false); if (p_line + 1 >= text.size()) return false; @@ -5976,7 +5723,6 @@ Vector<int> TextEdit::get_folded_lines() const { } void TextEdit::fold_line(int p_line) { - ERR_FAIL_INDEX(p_line, text.size()); if (!is_hiding_enabled()) return; @@ -6022,7 +5768,6 @@ void TextEdit::fold_line(int p_line) { } void TextEdit::unfold_line(int p_line) { - ERR_FAIL_INDEX(p_line, text.size()); if (!is_folded(p_line) && !is_line_hidden(p_line)) @@ -6046,7 +5791,6 @@ void TextEdit::unfold_line(int p_line) { } void TextEdit::toggle_fold_line(int p_line) { - ERR_FAIL_INDEX(p_line, text.size()); if (!is_folded(p_line)) @@ -6056,12 +5800,10 @@ void TextEdit::toggle_fold_line(int p_line) { } int TextEdit::get_line_count() const { - return text.size(); } void TextEdit::_do_text_op(const TextOperation &p_op, bool p_reverse) { - ERR_FAIL_COND(p_op.type == TextOperation::TYPE_NONE); bool insert = p_op.type == TextOperation::TYPE_INSERT; @@ -6069,20 +5811,17 @@ void TextEdit::_do_text_op(const TextOperation &p_op, bool p_reverse) { insert = !insert; if (insert) { - int check_line; int check_column; _base_insert_text(p_op.from_line, p_op.from_column, p_op.text, check_line, check_column); ERR_FAIL_COND(check_line != p_op.to_line); // BUG. ERR_FAIL_COND(check_column != p_op.to_column); // BUG. } else { - _base_remove_text(p_op.from_line, p_op.from_column, p_op.to_line, p_op.to_column); } } void TextEdit::_clear_redo() { - if (undo_stack_pos == nullptr) return; // Nothing to clear. @@ -6096,11 +5835,9 @@ void TextEdit::_clear_redo() { } void TextEdit::undo() { - _push_current_op(); if (undo_stack_pos == nullptr) { - if (!undo_stack.size()) return; // Nothing to undo. @@ -6145,7 +5882,6 @@ void TextEdit::undo() { } void TextEdit::redo() { - _push_current_op(); if (undo_stack_pos == nullptr) @@ -6157,7 +5893,6 @@ void TextEdit::redo() { _do_text_op(op, false); current_op.version = op.version; if (undo_stack_pos->get().chain_forward) { - while (true) { ERR_BREAK(!undo_stack_pos->next()); undo_stack_pos = undo_stack_pos->next(); @@ -6177,7 +5912,6 @@ void TextEdit::redo() { } void TextEdit::clear_undo_history() { - saved_version = 0; current_op.type = TextOperation::TYPE_NONE; undo_stack_pos = nullptr; @@ -6190,7 +5924,6 @@ void TextEdit::begin_complex_operation() { } void TextEdit::end_complex_operation() { - _push_current_op(); ERR_FAIL_COND(undo_stack.size() == 0); @@ -6203,7 +5936,6 @@ void TextEdit::end_complex_operation() { } void TextEdit::_push_current_op() { - if (current_op.type == TextOperation::TYPE_NONE) return; // Nothing to do. @@ -6244,28 +5976,23 @@ void TextEdit::set_indent_size(const int p_size) { } int TextEdit::get_indent_size() { - return indent_size; } void TextEdit::set_draw_tabs(bool p_draw) { - draw_tabs = p_draw; update(); } bool TextEdit::is_drawing_tabs() const { - return draw_tabs; } void TextEdit::set_draw_spaces(bool p_draw) { - draw_spaces = p_draw; } bool TextEdit::is_drawing_spaces() const { - return draw_spaces; } @@ -6295,17 +6022,14 @@ uint32_t TextEdit::get_version() const { } uint32_t TextEdit::get_saved_version() const { - return saved_version; } void TextEdit::tag_saved_version() { - saved_version = get_version(); } double TextEdit::get_scroll_pos_for_line(int p_line, int p_wrap_index) const { - if (!is_wrap_enabled() && !is_hiding_enabled()) return p_line; @@ -6323,12 +6047,10 @@ double TextEdit::get_scroll_pos_for_line(int p_line, int p_wrap_index) const { } void TextEdit::set_line_as_first_visible(int p_line, int p_wrap_index) { - set_v_scroll(get_scroll_pos_for_line(p_line, p_wrap_index)); } void TextEdit::set_line_as_center_visible(int p_line, int p_wrap_index) { - int visible_rows = get_visible_rows(); int wi; int first_line = p_line - num_lines_from_rows(p_line, p_wrap_index, -visible_rows / 2, wi) + 1; @@ -6337,7 +6059,6 @@ void TextEdit::set_line_as_center_visible(int p_line, int p_wrap_index) { } void TextEdit::set_line_as_last_visible(int p_line, int p_wrap_index) { - int wi; int first_line = p_line - num_lines_from_rows(p_line, p_wrap_index, -get_visible_rows() - 1, wi) + 1; @@ -6345,12 +6066,10 @@ void TextEdit::set_line_as_last_visible(int p_line, int p_wrap_index) { } int TextEdit::get_first_visible_line() const { - return CLAMP(cursor.line_ofs, 0, text.size() - 1); } int TextEdit::get_last_visible_line() const { - int first_vis_line = get_first_visible_line(); int last_vis_line = 0; int wi; @@ -6360,7 +6079,6 @@ int TextEdit::get_last_visible_line() const { } int TextEdit::get_last_visible_line_wrap_index() const { - int first_vis_line = get_first_visible_line(); int wi; num_lines_from_rows(first_vis_line, cursor.wrap_ofs, get_visible_rows() + 1, wi); @@ -6368,7 +6086,6 @@ int TextEdit::get_last_visible_line_wrap_index() const { } double TextEdit::get_visible_rows_offset() const { - double total = _get_control_height(); total /= (double)get_row_height(); total = total - floor(total); @@ -6377,18 +6094,15 @@ double TextEdit::get_visible_rows_offset() const { } double TextEdit::get_v_scroll_offset() const { - double val = get_v_scroll() - floor(get_v_scroll()); return CLAMP(val, 0, 1); } double TextEdit::get_v_scroll() const { - return v_scroll->get_value(); } void TextEdit::set_v_scroll(double p_scroll) { - v_scroll->set_value(p_scroll); int max_v_scroll = v_scroll->get_max() - v_scroll->get_page(); if (p_scroll >= max_v_scroll - 1.0) @@ -6396,12 +6110,10 @@ void TextEdit::set_v_scroll(double p_scroll) { } int TextEdit::get_h_scroll() const { - return h_scroll->get_value(); } void TextEdit::set_h_scroll(int p_scroll) { - if (p_scroll < 0) { p_scroll = 0; } @@ -6409,28 +6121,23 @@ void TextEdit::set_h_scroll(int p_scroll) { } void TextEdit::set_smooth_scroll_enabled(bool p_enable) { - v_scroll->set_smooth_scroll_enabled(p_enable); smooth_scroll_enabled = p_enable; } bool TextEdit::is_smooth_scroll_enabled() const { - return smooth_scroll_enabled; } void TextEdit::set_v_scroll_speed(float p_speed) { - v_scroll_speed = p_speed; } float TextEdit::get_v_scroll_speed() const { - return v_scroll_speed; } void TextEdit::set_completion(bool p_enabled, const Vector<String> &p_prefixes) { - completion_prefixes.clear(); completion_enabled = p_enabled; for (int i = 0; i < p_prefixes.size(); i++) @@ -6438,7 +6145,6 @@ void TextEdit::set_completion(bool p_enabled, const Vector<String> &p_prefixes) } void TextEdit::_confirm_completion() { - begin_complex_operation(); _remove_text(cursor.line, cursor.column - completion_base.length(), cursor.line, cursor.column); @@ -6456,7 +6162,6 @@ void TextEdit::_confirm_completion() { } if (last_completion_char == '(') { - if (next_char == last_completion_char) { _base_remove_text(cursor.line, cursor.column - 1, cursor.line, cursor.column); } else if (auto_brace_completion_enabled) { @@ -6464,7 +6169,6 @@ void TextEdit::_confirm_completion() { cursor.column--; } } else if (last_completion_char == ')' && next_char == '(') { - _base_remove_text(cursor.line, cursor.column - 2, cursor.line, cursor.column); if (line[cursor.column + 1] != ')') { cursor.column--; @@ -6481,13 +6185,11 @@ void TextEdit::_confirm_completion() { } void TextEdit::_cancel_code_hint() { - completion_hint = ""; update(); } void TextEdit::_cancel_completion() { - if (!completion_active) return; @@ -6497,12 +6199,10 @@ void TextEdit::_cancel_completion() { } static bool _is_completable(CharType c) { - return !_is_symbol(c) || c == '"' || c == '\''; } void TextEdit::_update_completion_candidates() { - String l = text[cursor.line]; int cofs = CLAMP(cursor.column, 0, l.length()); @@ -6536,7 +6236,6 @@ void TextEdit::_update_completion_candidates() { // No completion here. cancel = true; } else if (inquote && first_quote != -1) { - s = l.substr(first_quote, cofs - first_quote); } else if (cofs > 0 && l[cofs - 1] == ' ') { int kofs = cofs - 1; @@ -6552,7 +6251,6 @@ void TextEdit::_update_completion_candidates() { pre_keyword = keywords.has(kw); } else { - while (cofs > 0 && l[cofs - 1] > 32 && (l[cofs - 1] == '/' || _is_completable(l[cofs - 1]))) { s = String::chr(l[cofs - 1]) + s; if (l[cofs - 1] == '\'' || l[cofs - 1] == '"' || l[cofs - 1] == '$') @@ -6610,7 +6308,6 @@ void TextEdit::_update_completion_candidates() { } else if (s.length() == 0) { completion_options.push_back(option); } else { - // This code works the same as: /* if (option.display.begins_with(s)) { @@ -6685,7 +6382,6 @@ void TextEdit::_update_completion_candidates() { } void TextEdit::query_code_comple() { - String l = text[cursor.line]; int ofs = CLAMP(cursor.column, 0, l.length()); @@ -6725,14 +6421,12 @@ void TextEdit::query_code_comple() { } void TextEdit::set_code_hint(const String &p_hint) { - completion_hint = p_hint; completion_hint_offset = -0xFFFF; update(); } void TextEdit::code_complete(const List<ScriptCodeCompletionOption> &p_strings, bool p_forced) { - completion_sources = p_strings; completion_active = true; completion_forced = p_forced; @@ -6742,7 +6436,6 @@ void TextEdit::code_complete(const List<ScriptCodeCompletionOption> &p_strings, } String TextEdit::get_word_at_pos(const Vector2 &p_pos) const { - int row, col; _get_mouse_pos(p_pos, row, col); @@ -6751,7 +6444,6 @@ String TextEdit::get_word_at_pos(const Vector2 &p_pos) const { return ""; int beg, end; if (select_word(s, col, beg, end)) { - bool inside_quotes = false; CharType selected_quote = '\0'; int qbegin = 0, qend = 0; @@ -6781,7 +6473,6 @@ String TextEdit::get_word_at_pos(const Vector2 &p_pos) const { } String TextEdit::get_tooltip(const Point2 &p_pos) const { - if (!tooltip_obj) return Control::get_tooltip(p_pos); int row, col; @@ -6792,7 +6483,6 @@ String TextEdit::get_tooltip(const Point2 &p_pos) const { return Control::get_tooltip(p_pos); int beg, end; if (select_word(s, col, beg, end)) { - String tt = tooltip_obj->call(tooltip_func, s.substr(beg, end - beg), tooltip_ud); return tt; @@ -6802,7 +6492,6 @@ String TextEdit::get_tooltip(const Point2 &p_pos) const { } void TextEdit::set_tooltip_request_func(Object *p_obj, const StringName &p_function, const Variant &p_udata) { - tooltip_obj = p_obj; tooltip_func = p_function; tooltip_ud = p_udata; @@ -6840,13 +6529,11 @@ void TextEdit::insert_at(const String &p_text, int at) { } void TextEdit::set_show_line_numbers(bool p_show) { - line_numbers = p_show; update(); } void TextEdit::set_line_numbers_zero_padded(bool p_zero_padded) { - line_numbers_zero_padded = p_zero_padded; update(); } @@ -6972,12 +6659,10 @@ bool TextEdit::is_highlight_current_line_enabled() const { } bool TextEdit::is_text_field() const { - return true; } void TextEdit::menu_option(int p_option) { - switch (p_option) { case MENU_CUT: { if (!readonly) { @@ -7015,12 +6700,10 @@ void TextEdit::set_highlighted_word(const String &new_word) { } void TextEdit::set_select_identifiers_on_hover(bool p_enable) { - select_identifiers_enabled = p_enable; } bool TextEdit::is_selecting_identifiers_on_hover_enabled() const { - return select_identifiers_enabled; } @@ -7060,7 +6743,6 @@ PopupMenu *TextEdit::get_menu() const { } void TextEdit::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &TextEdit::_gui_input); ClassDB::bind_method(D_METHOD("_cursor_changed_emit"), &TextEdit::_cursor_changed_emit); ClassDB::bind_method(D_METHOD("_text_changed_emit"), &TextEdit::_text_changed_emit); @@ -7250,7 +6932,6 @@ void TextEdit::_bind_methods() { } TextEdit::TextEdit() { - setting_row = false; draw_tabs = false; draw_spaces = false; @@ -7496,7 +7177,6 @@ Map<int, TextEdit::HighlighterInfo> TextEdit::_get_line_syntax_highlighting(int } if (in_region == -1 && !in_keyword && is_char && !prev_is_char) { - int to = j; while (to < str.length() && _is_text_char(str[to])) to++; @@ -7528,7 +7208,6 @@ Map<int, TextEdit::HighlighterInfo> TextEdit::_get_line_syntax_highlighting(int } if (!in_function_name && in_word && !in_keyword) { - int k = j; while (k < str.length() && !_is_symbol(str[k]) && str[k] != '\t' && str[k] != ' ') { k++; diff --git a/scene/gui/text_edit.h b/scene/gui/text_edit.h index ac8eb5da1d..689199b6c2 100644 --- a/scene/gui/text_edit.h +++ b/scene/gui/text_edit.h @@ -39,7 +39,6 @@ class SyntaxHighlighter; class TextEdit : public Control { - GDCLASS(TextEdit, Control); public: @@ -48,7 +47,6 @@ public: }; struct ColorRegion { - Color color; String begin_key; String end_key; @@ -66,7 +64,6 @@ public: class Text { public: struct ColorRegionInfo { - int region; bool end; ColorRegionInfo() { @@ -168,7 +165,6 @@ private: } cursor; struct Selection { - enum Mode { MODE_NONE, @@ -207,7 +203,6 @@ private: } selection; struct Cache { - Ref<Texture2D> tab_icon; Ref<Texture2D> space_icon; Ref<Texture2D> can_fold_icon; @@ -256,7 +251,6 @@ private: int info_gutter_width; int minimap_width; Cache() { - row_height = 0; line_spacing = 0; line_number_w = 0; @@ -271,7 +265,6 @@ private: Map<int, Map<int, HighlighterInfo>> syntax_highlighting_cache; struct TextOperation { - enum Type { TYPE_NONE, TYPE_INSERT, diff --git a/scene/gui/texture_button.cpp b/scene/gui/texture_button.cpp index 5f2e4cf58e..325b9d00ed 100644 --- a/scene/gui/texture_button.cpp +++ b/scene/gui/texture_button.cpp @@ -33,7 +33,6 @@ #include <stdlib.h> Size2 TextureButton::get_minimum_size() const { - Size2 rscale = Control::get_minimum_size(); if (!expand) { @@ -57,9 +56,7 @@ Size2 TextureButton::get_minimum_size() const { } bool TextureButton::has_point(const Point2 &p_point) const { - if (click_mask.is_valid()) { - Point2 point = p_point; Rect2 rect = Rect2(); Size2 mask_size = click_mask->get_size(); @@ -116,9 +113,7 @@ bool TextureButton::has_point(const Point2 &p_point) const { } void TextureButton::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_DRAW: { DrawMode draw_mode = get_draw_mode(); @@ -126,13 +121,11 @@ void TextureButton::_notification(int p_what) { switch (draw_mode) { case DRAW_NORMAL: { - if (normal.is_valid()) texdraw = normal; } break; case DRAW_HOVER_PRESSED: case DRAW_PRESSED: { - if (pressed.is_null()) { if (hover.is_null()) { if (normal.is_valid()) @@ -144,7 +137,6 @@ void TextureButton::_notification(int p_what) { texdraw = pressed; } break; case DRAW_HOVER: { - if (hover.is_null()) { if (pressed.is_valid() && is_pressed()) texdraw = pressed; @@ -154,7 +146,6 @@ void TextureButton::_notification(int p_what) { texdraw = hover; } break; case DRAW_DISABLED: { - if (disabled.is_null()) { if (normal.is_valid()) texdraw = normal; @@ -232,7 +223,6 @@ void TextureButton::_notification(int p_what) { } void TextureButton::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_normal_texture", "texture"), &TextureButton::set_normal_texture); ClassDB::bind_method(D_METHOD("set_pressed_texture", "texture"), &TextureButton::set_pressed_texture); ClassDB::bind_method(D_METHOD("set_hover_texture", "texture"), &TextureButton::set_hover_texture); @@ -271,61 +261,49 @@ void TextureButton::_bind_methods() { } void TextureButton::set_normal_texture(const Ref<Texture2D> &p_normal) { - normal = p_normal; update(); minimum_size_changed(); } void TextureButton::set_pressed_texture(const Ref<Texture2D> &p_pressed) { - pressed = p_pressed; update(); } void TextureButton::set_hover_texture(const Ref<Texture2D> &p_hover) { - hover = p_hover; update(); } void TextureButton::set_disabled_texture(const Ref<Texture2D> &p_disabled) { - disabled = p_disabled; update(); } void TextureButton::set_click_mask(const Ref<BitMap> &p_click_mask) { - click_mask = p_click_mask; update(); } Ref<Texture2D> TextureButton::get_normal_texture() const { - return normal; } Ref<Texture2D> TextureButton::get_pressed_texture() const { - return pressed; } Ref<Texture2D> TextureButton::get_hover_texture() const { - return hover; } Ref<Texture2D> TextureButton::get_disabled_texture() const { - return disabled; } Ref<BitMap> TextureButton::get_click_mask() const { - return click_mask; } Ref<Texture2D> TextureButton::get_focused_texture() const { - return focused; }; void TextureButton::set_focused_texture(const Ref<Texture2D> &p_focused) { - focused = p_focused; }; diff --git a/scene/gui/texture_button.h b/scene/gui/texture_button.h index 43b10a8e8b..a1e66203d3 100644 --- a/scene/gui/texture_button.h +++ b/scene/gui/texture_button.h @@ -34,7 +34,6 @@ #include "scene/gui/base_button.h" #include "scene/resources/bit_map.h" class TextureButton : public BaseButton { - GDCLASS(TextureButton, BaseButton); public: diff --git a/scene/gui/texture_progress.cpp b/scene/gui/texture_progress.cpp index 0dd43e4a35..5edb10958c 100644 --- a/scene/gui/texture_progress.cpp +++ b/scene/gui/texture_progress.cpp @@ -33,19 +33,16 @@ #include "core/engine.h" void TextureProgress::set_under_texture(const Ref<Texture2D> &p_texture) { - under = p_texture; update(); minimum_size_changed(); } Ref<Texture2D> TextureProgress::get_under_texture() const { - return under; } void TextureProgress::set_over_texture(const Ref<Texture2D> &p_texture) { - over = p_texture; update(); if (under.is_null()) { @@ -54,7 +51,6 @@ void TextureProgress::set_over_texture(const Ref<Texture2D> &p_texture) { } Ref<Texture2D> TextureProgress::get_over_texture() const { - return over; } @@ -81,7 +77,6 @@ bool TextureProgress::get_nine_patch_stretch() const { } Size2 TextureProgress::get_minimum_size() const { - if (nine_patch_stretch) return Size2(stretch_margin[MARGIN_LEFT] + stretch_margin[MARGIN_RIGHT], stretch_margin[MARGIN_TOP] + stretch_margin[MARGIN_BOTTOM]); else if (under.is_valid()) @@ -95,14 +90,12 @@ Size2 TextureProgress::get_minimum_size() const { } void TextureProgress::set_progress_texture(const Ref<Texture2D> &p_texture) { - progress = p_texture; update(); minimum_size_changed(); } Ref<Texture2D> TextureProgress::get_progress_texture() const { - return progress; } @@ -306,9 +299,7 @@ void TextureProgress::draw_nine_patch_stretched(const Ref<Texture2D> &p_texture, void TextureProgress::_notification(int p_what) { const float corners[12] = { -0.125, -0.375, -0.625, -0.875, 0.125, 0.375, 0.625, 0.875, 1.125, 1.375, 1.625, 1.875 }; switch (p_what) { - case NOTIFICATION_DRAW: { - if (nine_patch_stretch && (mode == FILL_LEFT_TO_RIGHT || mode == FILL_RIGHT_TO_LEFT || mode == FILL_TOP_TO_BOTTOM || mode == FILL_BOTTOM_TO_TOP)) { if (under.is_valid()) { draw_nine_patch_stretched(under, FILL_LEFT_TO_RIGHT, 1.0, tint_under); @@ -463,7 +454,6 @@ Point2 TextureProgress::get_radial_center_offset() { } void TextureProgress::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_under_texture", "tex"), &TextureProgress::set_under_texture); ClassDB::bind_method(D_METHOD("get_under_texture"), &TextureProgress::get_under_texture); diff --git a/scene/gui/texture_progress.h b/scene/gui/texture_progress.h index e05f89aa3e..e56454f866 100644 --- a/scene/gui/texture_progress.h +++ b/scene/gui/texture_progress.h @@ -34,7 +34,6 @@ #include "scene/gui/range.h" class TextureProgress : public Range { - GDCLASS(TextureProgress, Range); Ref<Texture2D> under; diff --git a/scene/gui/texture_rect.cpp b/scene/gui/texture_rect.cpp index 92f3c5b5d9..58e7249284 100644 --- a/scene/gui/texture_rect.cpp +++ b/scene/gui/texture_rect.cpp @@ -33,9 +33,7 @@ #include "servers/rendering_server.h" void TextureRect::_notification(int p_what) { - if (p_what == NOTIFICATION_DRAW) { - if (texture.is_null()) { return; } @@ -116,7 +114,6 @@ void TextureRect::_notification(int p_what) { } Size2 TextureRect::get_minimum_size() const { - if (!expand && !texture.is_null()) { return texture->get_size(); } else { @@ -125,7 +122,6 @@ Size2 TextureRect::get_minimum_size() const { } void TextureRect::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_texture", "texture"), &TextureRect::set_texture); ClassDB::bind_method(D_METHOD("get_texture"), &TextureRect::get_texture); ClassDB::bind_method(D_METHOD("set_expand", "enable"), &TextureRect::set_expand); @@ -154,7 +150,6 @@ void TextureRect::_bind_methods() { } void TextureRect::_texture_changed() { - if (texture.is_valid()) { update(); minimum_size_changed(); @@ -162,7 +157,6 @@ void TextureRect::_texture_changed() { } void TextureRect::set_texture(const Ref<Texture2D> &p_tex) { - if (p_tex == texture) { return; } @@ -182,57 +176,47 @@ void TextureRect::set_texture(const Ref<Texture2D> &p_tex) { } Ref<Texture2D> TextureRect::get_texture() const { - return texture; } void TextureRect::set_expand(bool p_expand) { - expand = p_expand; update(); minimum_size_changed(); } bool TextureRect::has_expand() const { - return expand; } void TextureRect::set_stretch_mode(StretchMode p_mode) { - stretch_mode = p_mode; update(); } TextureRect::StretchMode TextureRect::get_stretch_mode() const { - return stretch_mode; } void TextureRect::set_flip_h(bool p_flip) { - hflip = p_flip; update(); } bool TextureRect::is_flipped_h() const { - return hflip; } void TextureRect::set_flip_v(bool p_flip) { - vflip = p_flip; update(); } bool TextureRect::is_flipped_v() const { - return vflip; } TextureRect::TextureRect() { - expand = false; hflip = false; vflip = false; diff --git a/scene/gui/texture_rect.h b/scene/gui/texture_rect.h index 77a2828fd4..727ab95776 100644 --- a/scene/gui/texture_rect.h +++ b/scene/gui/texture_rect.h @@ -34,7 +34,6 @@ #include "scene/gui/control.h" class TextureRect : public Control { - GDCLASS(TextureRect, Control); public: diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 4a550727fc..c0bdc3923b 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -47,7 +47,6 @@ #include <limits.h> void TreeItem::move_to_top() { - if (!parent || parent->children == this) return; //already on top TreeItem *prev = get_prev(); @@ -75,7 +74,6 @@ void TreeItem::move_to_bottom() { } Size2 TreeItem::Cell::get_icon_size() const { - if (icon.is_null()) return Size2(); if (icon_region == Rect2i()) @@ -85,44 +83,36 @@ Size2 TreeItem::Cell::get_icon_size() const { } void TreeItem::Cell::draw_icon(const RID &p_where, const Point2 &p_pos, const Size2 &p_size, const Color &p_color) const { - if (icon.is_null()) return; Size2i dsize = (p_size == Size2()) ? icon->get_size() : p_size; if (icon_region == Rect2i()) { - icon->draw_rect_region(p_where, Rect2(p_pos, dsize), Rect2(Point2(), icon->get_size()), p_color); } else { - icon->draw_rect_region(p_where, Rect2(p_pos, dsize), icon_region, p_color); } } void TreeItem::_changed_notify(int p_cell) { - tree->item_changed(p_cell, this); } void TreeItem::_changed_notify() { - tree->item_changed(-1, this); } void TreeItem::_cell_selected(int p_cell) { - tree->item_selected(p_cell, this); } void TreeItem::_cell_deselected(int p_cell) { - tree->item_deselected(p_cell, this); } /* cell mode */ void TreeItem::set_cell_mode(int p_column, TreeCellMode p_mode) { - ERR_FAIL_INDEX(p_column, cells.size()); Cell &c = cells.write[p_column]; c.mode = p_mode; @@ -138,32 +128,27 @@ void TreeItem::set_cell_mode(int p_column, TreeCellMode p_mode) { } TreeItem::TreeCellMode TreeItem::get_cell_mode(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), TreeItem::CELL_MODE_STRING); return cells[p_column].mode; } /* check mode */ void TreeItem::set_checked(int p_column, bool p_checked) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].checked = p_checked; _changed_notify(p_column); } bool TreeItem::is_checked(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); return cells[p_column].checked; } void TreeItem::set_text(int p_column, String p_text) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].text = p_text; if (cells[p_column].mode == TreeItem::CELL_MODE_RANGE) { - Vector<String> strings = p_text.split(","); cells.write[p_column].min = INT_MAX; cells.write[p_column].max = INT_MIN; @@ -181,13 +166,11 @@ void TreeItem::set_text(int p_column, String p_text) { } String TreeItem::get_text(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), ""); return cells[p_column].text; } void TreeItem::set_suffix(int p_column, String p_suffix) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].suffix = p_suffix; @@ -195,66 +178,56 @@ void TreeItem::set_suffix(int p_column, String p_suffix) { } String TreeItem::get_suffix(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), ""); return cells[p_column].suffix; } void TreeItem::set_icon(int p_column, const Ref<Texture2D> &p_icon) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].icon = p_icon; _changed_notify(p_column); } Ref<Texture2D> TreeItem::get_icon(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), Ref<Texture2D>()); return cells[p_column].icon; } void TreeItem::set_icon_region(int p_column, const Rect2 &p_icon_region) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].icon_region = p_icon_region; _changed_notify(p_column); } Rect2 TreeItem::get_icon_region(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), Rect2()); return cells[p_column].icon_region; } void TreeItem::set_icon_modulate(int p_column, const Color &p_modulate) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].icon_color = p_modulate; _changed_notify(p_column); } Color TreeItem::get_icon_modulate(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), Color()); return cells[p_column].icon_color; } void TreeItem::set_icon_max_width(int p_column, int p_max) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].icon_max_w = p_max; _changed_notify(p_column); } int TreeItem::get_icon_max_width(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), 0); return cells[p_column].icon_max_w; } /* range works for mode number or mode combo */ void TreeItem::set_range(int p_column, double p_value) { - ERR_FAIL_INDEX(p_column, cells.size()); if (cells[p_column].step > 0) p_value = Math::stepify(p_value, cells[p_column].step); @@ -268,18 +241,15 @@ void TreeItem::set_range(int p_column, double p_value) { } double TreeItem::get_range(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), 0); return cells[p_column].val; } bool TreeItem::is_range_exponential(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); return cells[p_column].expr; } void TreeItem::set_range_config(int p_column, double p_min, double p_max, double p_step, bool p_exp) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].min = p_min; cells.write[p_column].max = p_max; @@ -289,7 +259,6 @@ void TreeItem::set_range_config(int p_column, double p_min, double p_max, double } void TreeItem::get_range_config(int p_column, double &r_min, double &r_max, double &r_step) const { - ERR_FAIL_INDEX(p_column, cells.size()); r_min = cells[p_column].min; r_max = cells[p_column].max; @@ -297,20 +266,17 @@ void TreeItem::get_range_config(int p_column, double &r_min, double &r_max, doub } void TreeItem::set_metadata(int p_column, const Variant &p_meta) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].meta = p_meta; } Variant TreeItem::get_metadata(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), Variant()); return cells[p_column].meta; } void TreeItem::set_custom_draw(int p_column, Object *p_object, const StringName &p_callback) { - ERR_FAIL_INDEX(p_column, cells.size()); ERR_FAIL_NULL(p_object); @@ -319,25 +285,20 @@ void TreeItem::set_custom_draw(int p_column, Object *p_object, const StringName } void TreeItem::set_collapsed(bool p_collapsed) { - if (collapsed == p_collapsed || !tree) return; collapsed = p_collapsed; TreeItem *ci = tree->selected_item; if (ci) { - while (ci && ci != this) { - ci = ci->parent; } if (ci) { // collapsing cursor/selected, move it! if (tree->select_mode == Tree::SELECT_MULTI) { - tree->selected_item = this; emit_signal("cell_selected"); } else { - select(tree->selected_col); } @@ -350,7 +311,6 @@ void TreeItem::set_collapsed(bool p_collapsed) { } bool TreeItem::is_collapsed() { - return collapsed; } @@ -364,12 +324,10 @@ int TreeItem::get_custom_minimum_height() const { } TreeItem *TreeItem::get_next() { - return next; } TreeItem *TreeItem::get_prev() { - if (!parent || parent->children == this) return nullptr; @@ -381,23 +339,19 @@ TreeItem *TreeItem::get_prev() { } TreeItem *TreeItem::get_parent() { - return parent; } TreeItem *TreeItem::get_children() { - return children; } TreeItem *TreeItem::get_prev_visible(bool p_wrap) { - TreeItem *current = this; TreeItem *prev = current->get_prev(); if (!prev) { - current = current->parent; if (current == tree->root && tree->hide_root) { return nullptr; @@ -414,7 +368,6 @@ TreeItem *TreeItem::get_prev_visible(bool p_wrap) { } } } else { - current = prev; while (!current->collapsed && current->children) { //go to the very end @@ -429,20 +382,15 @@ TreeItem *TreeItem::get_prev_visible(bool p_wrap) { } TreeItem *TreeItem::get_next_visible(bool p_wrap) { - TreeItem *current = this; if (!current->collapsed && current->children) { - current = current->children; } else if (current->next) { - current = current->next; } else { - while (current && !current->next) { - current = current->parent; } @@ -460,14 +408,11 @@ TreeItem *TreeItem::get_next_visible(bool p_wrap) { } void TreeItem::remove_child(TreeItem *p_item) { - ERR_FAIL_NULL(p_item); TreeItem **c = &children; while (*c) { - if ((*c) == p_item) { - TreeItem *aux = *c; *c = (*c)->next; @@ -483,25 +428,21 @@ void TreeItem::remove_child(TreeItem *p_item) { } void TreeItem::set_selectable(int p_column, bool p_selectable) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].selectable = p_selectable; } bool TreeItem::is_selectable(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); return cells[p_column].selectable; } bool TreeItem::is_selected(int p_column) { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); return cells[p_column].selectable && cells[p_column].selected; } void TreeItem::set_as_cursor(int p_column) { - ERR_FAIL_INDEX(p_column, cells.size()); if (!tree) return; @@ -513,19 +454,16 @@ void TreeItem::set_as_cursor(int p_column) { } void TreeItem::select(int p_column) { - ERR_FAIL_INDEX(p_column, cells.size()); _cell_selected(p_column); } void TreeItem::deselect(int p_column) { - ERR_FAIL_INDEX(p_column, cells.size()); _cell_deselected(p_column); } void TreeItem::add_button(int p_column, const Ref<Texture2D> &p_button, int p_id, bool p_disabled, const String &p_tooltip) { - ERR_FAIL_INDEX(p_column, cells.size()); ERR_FAIL_COND(!p_button.is_valid()); TreeItem::Cell::Button button; @@ -540,7 +478,6 @@ void TreeItem::add_button(int p_column, const Ref<Texture2D> &p_button, int p_id } int TreeItem::get_button_count(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), -1); return cells[p_column].buttons.size(); } @@ -560,7 +497,6 @@ int TreeItem::get_button_id(int p_column, int p_idx) const { return cells[p_column].buttons[p_idx].id; } void TreeItem::erase_button(int p_column, int p_idx) { - ERR_FAIL_INDEX(p_column, cells.size()); ERR_FAIL_INDEX(p_idx, cells[p_column].buttons.size()); cells.write[p_column].buttons.remove(p_idx); @@ -568,10 +504,8 @@ void TreeItem::erase_button(int p_column, int p_idx) { } int TreeItem::get_button_by_id(int p_column, int p_id) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), -1); for (int i = 0; i < cells[p_column].buttons.size(); i++) { - if (cells[p_column].buttons[i].id == p_id) return i; } @@ -580,7 +514,6 @@ int TreeItem::get_button_by_id(int p_column, int p_id) const { } void TreeItem::set_button(int p_column, int p_idx, const Ref<Texture2D> &p_button) { - ERR_FAIL_COND(p_button.is_null()); ERR_FAIL_INDEX(p_column, cells.size()); ERR_FAIL_INDEX(p_idx, cells[p_column].buttons.size()); @@ -589,7 +522,6 @@ void TreeItem::set_button(int p_column, int p_idx, const Ref<Texture2D> &p_butto } void TreeItem::set_button_color(int p_column, int p_idx, const Color &p_color) { - ERR_FAIL_INDEX(p_column, cells.size()); ERR_FAIL_INDEX(p_idx, cells[p_column].buttons.size()); cells.write[p_column].buttons.write[p_idx].color = p_color; @@ -597,7 +529,6 @@ void TreeItem::set_button_color(int p_column, int p_idx, const Color &p_color) { } void TreeItem::set_button_disabled(int p_column, int p_idx, bool p_disabled) { - ERR_FAIL_INDEX(p_column, cells.size()); ERR_FAIL_INDEX(p_idx, cells[p_column].buttons.size()); @@ -606,7 +537,6 @@ void TreeItem::set_button_disabled(int p_column, int p_idx, bool p_disabled) { } bool TreeItem::is_button_disabled(int p_column, int p_idx) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); ERR_FAIL_INDEX_V(p_idx, cells[p_column].buttons.size(), false); @@ -614,34 +544,29 @@ bool TreeItem::is_button_disabled(int p_column, int p_idx) const { } void TreeItem::set_editable(int p_column, bool p_editable) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].editable = p_editable; _changed_notify(p_column); } bool TreeItem::is_editable(int p_column) { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); return cells[p_column].editable; } void TreeItem::set_custom_color(int p_column, const Color &p_color) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].custom_color = true; cells.write[p_column].color = p_color; _changed_notify(p_column); } Color TreeItem::get_custom_color(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), Color()); if (!cells[p_column].custom_color) return Color(); return cells[p_column].color; } void TreeItem::clear_custom_color(int p_column) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].custom_color = false; cells.write[p_column].color = Color(); @@ -649,19 +574,16 @@ void TreeItem::clear_custom_color(int p_column) { } void TreeItem::set_tooltip(int p_column, const String &p_tooltip) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].tooltip = p_tooltip; } String TreeItem::get_tooltip(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), ""); return cells[p_column].tooltip; } void TreeItem::set_custom_bg_color(int p_column, const Color &p_color, bool p_bg_outline) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].custom_bg_color = true; cells.write[p_column].custom_bg_outline = p_bg_outline; @@ -670,7 +592,6 @@ void TreeItem::set_custom_bg_color(int p_column, const Color &p_color, bool p_bg } void TreeItem::clear_custom_bg_color(int p_column) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].custom_bg_color = false; cells.write[p_column].bg_color = Color(); @@ -678,7 +599,6 @@ void TreeItem::clear_custom_bg_color(int p_column) { } Color TreeItem::get_custom_bg_color(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), Color()); if (!cells[p_column].custom_bg_color) return Color(); @@ -686,13 +606,11 @@ Color TreeItem::get_custom_bg_color(int p_column) const { } void TreeItem::set_custom_as_button(int p_column, bool p_button) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].custom_button = p_button; } bool TreeItem::is_custom_set_as_button(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); return cells[p_column].custom_button; } @@ -709,20 +627,17 @@ TreeItem::TextAlign TreeItem::get_text_align(int p_column) const { } void TreeItem::set_expand_right(int p_column, bool p_enable) { - ERR_FAIL_INDEX(p_column, cells.size()); cells.write[p_column].expand_right = p_enable; _changed_notify(p_column); } bool TreeItem::get_expand_right(int p_column) const { - ERR_FAIL_INDEX_V(p_column, cells.size(), false); return cells[p_column].expand_right; } void TreeItem::set_disable_folding(bool p_disable) { - disable_folding = p_disable; _changed_notify(0); } @@ -732,7 +647,6 @@ bool TreeItem::is_folding_disabled() const { } Variant TreeItem::_call_recursive_bind(const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - if (p_argcount < 1) { r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS; r_error.argument = 0; @@ -769,7 +683,6 @@ void TreeItem::call_recursive(const StringName &p_method, const Variant **p_args } void TreeItem::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_cell_mode", "column", "mode"), &TreeItem::set_cell_mode); ClassDB::bind_method(D_METHOD("get_cell_mode", "column"), &TreeItem::get_cell_mode); @@ -887,10 +800,8 @@ void TreeItem::_bind_methods() { } void TreeItem::clear_children() { - TreeItem *c = children; while (c) { - TreeItem *aux = c; c = c->get_next(); aux->parent = nullptr; // so it won't try to recursively autoremove from me in here @@ -901,7 +812,6 @@ void TreeItem::clear_children() { }; TreeItem::TreeItem(Tree *p_tree) { - tree = p_tree; collapsed = false; disable_folding = false; @@ -913,14 +823,12 @@ TreeItem::TreeItem(Tree *p_tree) { } TreeItem::~TreeItem() { - clear_children(); if (parent) parent->remove_child(this); if (tree && tree->root == this) { - tree->root = nullptr; } @@ -956,7 +864,6 @@ TreeItem::~TreeItem() { /**********************************************/ void Tree::update_cache() { - cache.font = get_theme_font("font"); cache.tb_font = get_theme_font("title_button_font"); cache.bg = get_theme_stylebox("bg"); @@ -1001,7 +908,6 @@ void Tree::update_cache() { } int Tree::compute_item_height(TreeItem *p_item) const { - if (p_item == root && hide_root) return 0; @@ -1009,9 +915,7 @@ int Tree::compute_item_height(TreeItem *p_item) const { int height = cache.font->get_height(); for (int i = 0; i < columns.size(); i++) { - for (int j = 0; j < p_item->cells[i].buttons.size(); j++) { - Size2i s; // = cache.button_pressed->get_minimum_size(); s += p_item->cells[i].buttons[j].texture->get_size(); if (s.height > height) @@ -1019,9 +923,7 @@ int Tree::compute_item_height(TreeItem *p_item) const { } switch (p_item->cells[i].mode) { - case TreeItem::CELL_MODE_CHECK: { - int check_icon_h = cache.checked->get_height(); if (height < check_icon_h) height = check_icon_h; @@ -1030,10 +932,8 @@ int Tree::compute_item_height(TreeItem *p_item) const { case TreeItem::CELL_MODE_STRING: case TreeItem::CELL_MODE_CUSTOM: case TreeItem::CELL_MODE_ICON: { - Ref<Texture2D> icon = p_item->cells[i].icon; if (!icon.is_null()) { - Size2i s = p_item->cells[i].get_icon_size(); if (p_item->cells[i].icon_max_w > 0 && s.width > p_item->cells[i].icon_max_w) { s.height = s.height * p_item->cells[i].icon_max_w / s.width; @@ -1060,7 +960,6 @@ int Tree::compute_item_height(TreeItem *p_item) const { } int Tree::get_item_height(TreeItem *p_item) const { - int height = compute_item_height(p_item); height += cache.vseparation; @@ -1069,7 +968,6 @@ int Tree::get_item_height(TreeItem *p_item) const { TreeItem *c = p_item->children; while (c) { - height += get_item_height(c); c = c->next; @@ -1080,7 +978,6 @@ int Tree::get_item_height(TreeItem *p_item) const { } void Tree::draw_item_rect(const TreeItem::Cell &p_cell, const Rect2i &p_rect, const Color &p_color, const Color &p_icon_color) { - ERR_FAIL_COND(cache.font.is_null()); Rect2i rect = p_rect; @@ -1130,7 +1027,6 @@ void Tree::draw_item_rect(const TreeItem::Cell &p_cell, const Rect2i &p_rect, co } int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 &p_draw_size, TreeItem *p_item) { - if (p_pos.y - cache.offset.y > (p_draw_size.height)) return -1; //draw no more! @@ -1148,7 +1044,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 bool skip = (p_item == root && hide_root); if (!skip && (p_pos.y + label_h - cache.offset.y) > 0) { - //draw separation. //if (p_item->get_parent()!=root || !hide_root) @@ -1160,7 +1055,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 int ofs = p_pos.x + ((p_item->disable_folding || hide_folding) ? cache.hseparation : cache.item_margin); int skip2 = 0; for (int i = 0; i < columns.size(); i++) { - if (skip2) { skip2--; continue; @@ -1169,22 +1063,18 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 int w = get_column_width(i); if (i == 0) { - w -= ofs; if (w <= 0) { - ofs = get_column_width(0); continue; } } else { - ofs += cache.hseparation; w -= cache.hseparation; } if (p_item->cells[i].expand_right) { - int plus = 1; while (i + plus < columns.size() && !p_item->cells[i + plus].editable && p_item->cells[i + plus].mode == TreeItem::CELL_MODE_STRING && p_item->cells[i + plus].text == "" && p_item->cells[i + plus].icon.is_null()) { w += get_column_width(i + plus); @@ -1227,7 +1117,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } if (i == 0) { - if (p_item->cells[0].selected && select_mode == SELECT_ROW) { Rect2i row_rect = Rect2i(Point2i(cache.bg->get_margin(MARGIN_LEFT), item_rect.position.y), Size2i(get_size().width - cache.bg->get_minimum_size().width, item_rect.size.y)); //Rect2 r = Rect2i(row_rect.pos,row_rect.size); @@ -1259,7 +1148,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } if (p_item->cells[i].custom_bg_color) { - Rect2 r = cell_rect; if (i == 0) { r.position.x = p_draw_ofs.x; @@ -1279,7 +1167,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } if (drop_mode_flags && drop_mode_over == p_item) { - Rect2 r = cell_rect; if (drop_mode_section == -1 || drop_mode_section == 0) { @@ -1303,13 +1190,10 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 text_pos.y += Math::floor((item_rect.size.y - font->get_height()) / 2) + font_ascent; switch (p_item->cells[i].mode) { - case TreeItem::CELL_MODE_STRING: { - draw_item_rect(p_item->cells[i], item_rect, col, icon_col); } break; case TreeItem::CELL_MODE_CHECK: { - Ref<Texture2D> checked = cache.checked; Ref<Texture2D> unchecked = cache.unchecked; Point2i check_ofs = item_rect.position; @@ -1333,7 +1217,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } break; case TreeItem::CELL_MODE_RANGE: { if (p_item->cells[i].text != "") { - if (!p_item->cells[i].editable) break; @@ -1365,7 +1248,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 downarrow->draw(ci, arrow_pos); } else { - Ref<Texture2D> updown = cache.updown; String valtext = String::num(p_item->cells[i].val, Math::range_step_decimals(p_item->cells[i].step)); @@ -1387,7 +1269,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } break; case TreeItem::CELL_MODE_ICON: { - if (p_item->cells[i].icon.is_null()) break; Size2i icon_size = p_item->cells[i].get_icon_size(); @@ -1403,16 +1284,13 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } break; case TreeItem::CELL_MODE_CUSTOM: { - if (p_item->cells[i].custom_draw_obj.is_valid()) { - Object *cdo = ObjectDB::get_instance(p_item->cells[i].custom_draw_obj); if (cdo) cdo->call(p_item->cells[i].custom_draw_callback, p_item, Rect2(item_rect)); } if (!p_item->cells[i].editable) { - draw_item_rect(p_item->cells[i], item_rect, col, icon_col); break; } @@ -1449,15 +1327,12 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } if (i == 0) { - ofs = get_column_width(0); } else { - ofs += w + bw; } if (select_mode == SELECT_MULTI && selected_item == p_item && selected_col == i) { - if (has_focus()) cache.cursor->draw(ci, cell_rect); else @@ -1470,7 +1345,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 Ref<Texture2D> arrow; if (p_item->collapsed) { - arrow = cache.arrow_collapsed; } else { arrow = cache.arrow; @@ -1495,7 +1369,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 int prev_ofs = children_pos.y - cache.offset.y + p_draw_ofs.y; while (c) { - if (cache.draw_relationship_lines > 0 && (!hide_root || c->parent != root)) { int root_ofs = children_pos.x + ((p_item->disable_folding || hide_folding) ? cache.hseparation : cache.item_margin); int parent_ofs = p_pos.x + ((p_item->disable_folding || hide_folding) ? cache.hseparation : cache.item_margin); @@ -1546,7 +1419,6 @@ int Tree::draw_item(const Point2i &p_pos, const Point2 &p_draw_ofs, const Size2 } int Tree::_count_selected_items(TreeItem *p_from) const { - int count = 0; for (int i = 0; i < columns.size(); i++) { if (p_from->is_selected(i)) @@ -1564,7 +1436,6 @@ int Tree::_count_selected_items(TreeItem *p_from) const { return count; } void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_col, TreeItem *p_prev, bool *r_in_range, bool p_force_deselect) { - TreeItem::Cell &selected_cell = p_selected->cells.write[p_col]; bool switched = false; @@ -1576,14 +1447,12 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c bool emitted_row = false; for (int i = 0; i < columns.size(); i++) { - TreeItem::Cell &c = p_current->cells.write[i]; if (!c.selectable) continue; if (select_mode == SELECT_ROW) { - if (p_selected == p_current && (!c.selected || allow_reselect)) { c.selected = true; selected_item = p_selected; @@ -1598,16 +1467,12 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c */ } else if (c.selected) { - c.selected = false; //p_current->deselected_signal.call(p_col); } } else if (select_mode == SELECT_SINGLE || select_mode == SELECT_MULTI) { - if (!r_in_range && &selected_cell == &c) { - if (!selected_cell.selected || allow_reselect) { - selected_cell.selected = true; selected_item = p_selected; @@ -1620,15 +1485,12 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c emit_signal("item_selected"); } else if (select_mode == SELECT_MULTI && (selected_item != p_selected || selected_col != i)) { - selected_item = p_selected; selected_col = i; emit_signal("cell_selected"); } } else { - if (r_in_range && *r_in_range && !p_force_deselect) { - if (!c.selected && c.selectable) { c.selected = true; emit_signal("multi_selected", p_current, i, true); @@ -1651,21 +1513,17 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c TreeItem *c = p_current->children; while (c) { - select_single_item(p_selected, c, p_col, p_prev, r_in_range, p_current->is_collapsed() || p_force_deselect); c = c->next; } } Rect2 Tree::search_item_rect(TreeItem *p_from, TreeItem *p_item) { - return Rect2(); } void Tree::_range_click_timeout() { - if (range_item_last && !range_drag_enabled && Input::get_singleton()->is_mouse_button_pressed(BUTTON_LEFT)) { - Point2 pos = get_local_mouse_position() - cache.bg->get_offset(); if (show_column_titles) { pos.y -= _get_title_button_height(); @@ -1706,7 +1564,6 @@ void Tree::_range_click_timeout() { } int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool p_doubleclick, TreeItem *p_item, int p_button, const Ref<InputEventWithModifiers> &p_mod) { - int item_h = compute_item_height(p_item) + cache.vseparation; bool skip = (p_item == root && hide_root); @@ -1719,7 +1576,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool } if (!p_item->disable_folding && !hide_folding && (p_pos.x >= x_ofs && p_pos.x < (x_ofs + cache.item_margin))) { - if (p_item->children) p_item->set_collapsed(!p_item->is_collapsed()); @@ -1732,11 +1588,9 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool int col_ofs = 0; int col_width = 0; for (int i = 0; i < columns.size(); i++) { - col_width = get_column_width(i); if (p_item->cells[i].expand_right) { - int plus = 1; while (i + plus < columns.size() && !p_item->cells[i + plus].editable && p_item->cells[i + plus].mode == TreeItem::CELL_MODE_STRING && p_item->cells[i + plus].text == "" && p_item->cells[i + plus].icon.is_null()) { col_width += cache.hseparation; @@ -1764,7 +1618,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool col_ofs += margin; x -= margin; } else { - col_width -= cache.hseparation; x -= cache.hseparation; } @@ -1815,9 +1668,7 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool } if (select_mode == SELECT_MULTI && p_mod->get_command() && c.selectable) { - if (!c.selected || p_button == BUTTON_RIGHT) { - p_item->select(col); emit_signal("multi_selected", p_item, col, true); if (p_button == BUTTON_RIGHT) { @@ -1826,18 +1677,14 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool //p_item->selected_signal.call(col); } else { - p_item->deselect(col); emit_signal("multi_selected", p_item, col, false); //p_item->deselected_signal.call(col); } } else { - if (c.selectable) { - if (select_mode == SELECT_MULTI && p_mod->get_shift() && selected_item && selected_item != p_item) { - bool inrange = false; select_single_item(p_item, root, col, selected_item, &inrange); @@ -1845,14 +1692,12 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool emit_signal("item_rmb_selected", get_local_mouse_position()); } } else { - int icount = _count_selected_items(root); if (select_mode == SELECT_MULTI && icount > 1 && p_button != BUTTON_RIGHT) { single_select_defer = p_item; single_select_defer_column = col; } else { - if (p_button != BUTTON_RIGHT || !c.selected) { select_single_item(p_item, root, col); } @@ -1882,7 +1727,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool String editor_text = c.text; switch (c.mode) { - case TreeItem::CELL_MODE_STRING: { //nothing in particular @@ -1892,7 +1736,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool } break; case TreeItem::CELL_MODE_CHECK: { - bring_up_editor = false; //checkboxes are not edited with editor if (force_edit_checkbox_only_on_checkbox) { if (x < cache.checked->get_width()) { @@ -1913,7 +1756,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool popup_menu->clear(); for (int i = 0; i < c.text.get_slice_count(","); i++) { - String s = c.text.get_slicec(',', i); popup_menu->add_item(s.get_slicec(':', 0), s.get_slicec(':', 1).empty() ? i : s.get_slicec(':', 1).to_int()); } @@ -1926,16 +1768,12 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool //} bring_up_editor = false; } else { - if (x >= (col_width - item_h / 2)) { - /* touching the combo */ bool up = p_pos.y < (item_h / 2); if (p_button == BUTTON_LEFT) { - if (range_click_timer->get_time_left() == 0) { - range_item_last = p_item; range_up_last = up; @@ -1944,7 +1782,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool range_click_timer->start(); } else if (up != range_up_last) { - return -1; // break. avoid changing direction on mouse held } @@ -1953,15 +1790,12 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool item_edited(col, p_item); } else if (p_button == BUTTON_RIGHT) { - p_item->set_range(col, (up ? c.max : c.min)); item_edited(col, p_item); } else if (p_button == BUTTON_WHEEL_UP) { - p_item->set_range(col, c.val + c.step); item_edited(col, p_item); } else if (p_button == BUTTON_WHEEL_DOWN) { - p_item->set_range(col, c.val - c.step); item_edited(col, p_item); } @@ -1970,7 +1804,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool bring_up_editor = false; } else { - editor_text = String::num(p_item->cells[col].val, Math::range_step_decimals(p_item->cells[col].step)); if (select_mode == SELECT_MULTI && get_tree()->get_event_count() == focus_in_id) bring_up_editor = false; @@ -2014,7 +1847,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool return -1; //select } else { - Point2i new_pos = p_pos; if (!skip) { @@ -2029,7 +1861,6 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool TreeItem *c = p_item->children; while (c) { - int child_h = propagate_mouse_event(new_pos, x_ofs, y_ofs, p_doubleclick, c, p_button, p_mod); if (child_h < 0) @@ -2050,11 +1881,9 @@ int Tree::propagate_mouse_event(const Point2i &p_pos, int x_ofs, int y_ofs, bool } void Tree::_text_editor_modal_close() { - if (Input::get_singleton()->is_key_pressed(KEY_ESCAPE) || Input::get_singleton()->is_key_pressed(KEY_KP_ENTER) || Input::get_singleton()->is_key_pressed(KEY_ENTER)) { - return; } @@ -2065,7 +1894,6 @@ void Tree::_text_editor_modal_close() { } void Tree::_text_editor_enter(String p_text) { - popup_editor->hide(); if (!popup_edited_item) @@ -2076,14 +1904,11 @@ void Tree::_text_editor_enter(String p_text) { TreeItem::Cell &c = popup_edited_item->cells.write[popup_edited_item_col]; switch (c.mode) { - case TreeItem::CELL_MODE_STRING: { - c.text = p_text; //popup_edited_item->edited_signal.call( popup_edited_item_col ); } break; case TreeItem::CELL_MODE_RANGE: { - c.val = p_text.to_double(); if (c.step > 0) c.val = Math::stepify(c.val, c.step); @@ -2104,7 +1929,6 @@ void Tree::_text_editor_enter(String p_text) { } void Tree::value_editor_changed(double p_value) { - if (updating_value_editor) { return; } @@ -2119,7 +1943,6 @@ void Tree::value_editor_changed(double p_value) { } void Tree::popup_select(int p_option) { - if (!popup_edited_item) return; @@ -2152,7 +1975,6 @@ void Tree::_go_left() { selected_col--; emit_signal("cell_selected"); } else { - selected_item->select(selected_col - 1); } } @@ -2174,7 +1996,6 @@ void Tree::_go_right() { selected_col++; emit_signal("cell_selected"); } else { - selected_item->select(selected_col + 1); } } @@ -2189,7 +2010,6 @@ void Tree::_go_up() { prev = get_last_item(); selected_col = 0; } else { - prev = selected_item->get_prev_visible(); if (last_keypress != 0) { //incr search next @@ -2203,14 +2023,12 @@ void Tree::_go_up() { } if (select_mode == SELECT_MULTI) { - if (!prev) return; selected_item = prev; emit_signal("cell_selected"); update(); } else { - int col = selected_col < 0 ? 0 : selected_col; while (prev && !prev->cells[col].selectable) prev = prev->get_prev_visible(); @@ -2226,12 +2044,10 @@ void Tree::_go_up() { void Tree::_go_down() { TreeItem *next = nullptr; if (!selected_item) { - if (root) { next = hide_root ? root->get_next_visible() : root; } } else { - next = selected_item->get_next_visible(); if (last_keypress != 0) { @@ -2246,7 +2062,6 @@ void Tree::_go_down() { } if (select_mode == SELECT_MULTI) { - if (!next) { return; } @@ -2255,7 +2070,6 @@ void Tree::_go_down() { emit_signal("cell_selected"); update(); } else { - int col = selected_col < 0 ? 0 : selected_col; while (next && !next->cells[col].selectable) @@ -2271,12 +2085,10 @@ void Tree::_go_down() { } void Tree::_gui_input(Ref<InputEvent> p_event) { - Ref<InputEventKey> k = p_event; bool is_command = k.is_valid() && k->get_command(); if (p_event->is_action("ui_right") && p_event->is_pressed()) { - if (!cursor_can_exit_tree) accept_event(); @@ -2294,7 +2106,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { _go_right(); } } else if (p_event->is_action("ui_left") && p_event->is_pressed()) { - if (!cursor_can_exit_tree) accept_event(); @@ -2314,21 +2125,18 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } } else if (p_event->is_action("ui_up") && p_event->is_pressed() && !is_command) { - if (!cursor_can_exit_tree) accept_event(); _go_up(); } else if (p_event->is_action("ui_down") && p_event->is_pressed() && !is_command) { - if (!cursor_can_exit_tree) accept_event(); _go_down(); } else if (p_event->is_action("ui_page_down") && p_event->is_pressed()) { - if (!cursor_can_exit_tree) accept_event(); @@ -2338,12 +2146,10 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { next = selected_item; for (int i = 0; i < 10; i++) { - TreeItem *_n = next->get_next_visible(); if (_n) { next = _n; } else { - break; } } @@ -2351,12 +2157,10 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { return; if (select_mode == SELECT_MULTI) { - selected_item = next; emit_signal("cell_selected"); update(); } else { - while (next && !next->cells[selected_col].selectable) next = next->get_next_visible(); if (!next) { @@ -2367,7 +2171,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { ensure_cursor_is_visible(); } else if (p_event->is_action("ui_page_up") && p_event->is_pressed()) { - if (!cursor_can_exit_tree) accept_event(); @@ -2377,12 +2180,10 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { prev = selected_item; for (int i = 0; i < 10; i++) { - TreeItem *_n = prev->get_prev_visible(); if (_n) { prev = _n; } else { - break; } } @@ -2390,12 +2191,10 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { return; if (select_mode == SELECT_MULTI) { - selected_item = prev; emit_signal("cell_selected"); update(); } else { - while (prev && !prev->cells[selected_col].selectable) prev = prev->get_prev_visible(); if (!prev) { @@ -2405,7 +2204,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } ensure_cursor_is_visible(); } else if (p_event->is_action("ui_accept") && p_event->is_pressed()) { - if (selected_item) { //bring up editor if possible if (!edit_selected()) { @@ -2415,7 +2213,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } accept_event(); } else if (p_event->is_action("ui_select") && p_event->is_pressed()) { - if (select_mode == SELECT_MULTI) { if (!selected_item) return; @@ -2443,7 +2240,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { return; if (k->get_unicode() > 0) { - _do_incr_search(String::chr(k->get_unicode())); accept_event(); @@ -2457,7 +2253,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - if (cache.font.is_null()) // avoid a strange case that may corrupt stuff update_cache(); @@ -2476,10 +2271,8 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { pos.x += cache.offset.x; int len = 0; for (int i = 0; i < columns.size(); i++) { - len += get_column_width(i); if (pos.x < len) { - cache.hover_type = Cache::CLICK_TITLE; cache.hover_index = i; update(); @@ -2490,12 +2283,10 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } if (root) { - Point2 mpos = mm->get_position(); mpos -= cache.bg->get_offset(); mpos.y -= _get_title_button_height(); if (mpos.y >= 0) { - if (h_scroll->is_visible_in_tree()) mpos.x += h_scroll->get_value(); if (v_scroll->is_visible_in_tree()) @@ -2535,7 +2326,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { //range drag if (!range_drag_enabled) { - Vector2 cpos = mm->get_position(); if (cpos.distance_to(pressing_pos) > 2) { range_drag_enabled = true; @@ -2544,7 +2334,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_CAPTURED); } } else { - const TreeItem::Cell &c = popup_edited_item->cells[popup_edited_item_col]; float diff_y = -mm->get_relative().y; diff_y = Math::pow(ABS(diff_y), 1.8f) * SGN(diff_y); @@ -2556,7 +2345,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } if (drag_touching && !drag_touching_deaccel) { - drag_accum -= mm->get_relative().y; v_scroll->set_value(drag_from + drag_accum); drag_speed = -mm->get_speed().y; @@ -2570,9 +2358,7 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { update_cache(); if (!b->is_pressed()) { - if (b->get_button_index() == BUTTON_LEFT) { - Point2 pos = b->get_position() - cache.bg->get_offset(); if (show_column_titles) { pos.y -= _get_title_button_height(); @@ -2581,7 +2367,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { pos.x += cache.offset.x; int len = 0; for (int i = 0; i < columns.size(); i++) { - len += get_column_width(i); if (pos.x < len) { emit_signal("column_title_pressed", i); @@ -2599,9 +2384,7 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { range_click_timer->stop(); if (pressing_for_editor) { - if (range_drag_enabled) { - range_drag_enabled = false; Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_VISIBLE); warp_mouse(range_drag_capture_pos); @@ -2630,13 +2413,11 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { cache.click_column = 0; if (drag_touching) { - if (drag_speed == 0) { drag_touching_deaccel = false; drag_touching = false; set_physics_process_internal(false); } else { - drag_touching_deaccel = true; } } @@ -2663,10 +2444,8 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { pos.x += cache.offset.x; int len = 0; for (int i = 0; i < columns.size(); i++) { - len += get_column_width(i); if (pos.x < len) { - cache.click_type = Cache::CLICK_TITLE; cache.click_index = i; //cache.click_id=; @@ -2732,7 +2511,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } break; case BUTTON_WHEEL_UP: { - double prev_value = v_scroll->get_value(); v_scroll->set_value(v_scroll->get_value() - v_scroll->get_page() * b->get_factor() / 8); if (v_scroll->get_value() != prev_value) { @@ -2741,7 +2519,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } break; case BUTTON_WHEEL_DOWN: { - double prev_value = v_scroll->get_value(); v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * b->get_factor() / 8); if (v_scroll->get_value() != prev_value) { @@ -2754,7 +2531,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { Ref<InputEventPanGesture> pan_gesture = p_event; if (pan_gesture.is_valid()) { - double prev_v = v_scroll->get_value(); v_scroll->set_value(v_scroll->get_value() + v_scroll->get_page() * pan_gesture->get_delta().y / 8); @@ -2768,7 +2544,6 @@ void Tree::_gui_input(Ref<InputEvent> p_event) { } bool Tree::edit_selected() { - TreeItem *s = get_selected(); ERR_FAIL_COND_V_MSG(!s, false, "No item selected."); ensure_cursor_is_visible(); @@ -2785,12 +2560,10 @@ bool Tree::edit_selected() { const TreeItem::Cell &c = s->cells[col]; if (c.mode == TreeItem::CELL_MODE_CHECK) { - s->set_checked(col, !c.checked); item_edited(col, s); return true; } else if (c.mode == TreeItem::CELL_MODE_CUSTOM) { - edited_item = s; edited_col = col; custom_popup_rect = Rect2i(get_global_position() + rect.position, rect.size); @@ -2799,10 +2572,8 @@ bool Tree::edit_selected() { return true; } else if (c.mode == TreeItem::CELL_MODE_RANGE && c.text != "") { - popup_menu->clear(); for (int i = 0; i < c.text.get_slice_count(","); i++) { - String s2 = c.text.get_slicec(',', i); popup_menu->add_item(s2.get_slicec(':', 0), s2.get_slicec(':', 1).empty() ? i : s2.get_slicec(':', 1).to_int()); } @@ -2815,7 +2586,6 @@ bool Tree::edit_selected() { return true; } else if (c.mode == TreeItem::CELL_MODE_STRING || c.mode == TreeItem::CELL_MODE_RANGE) { - Rect2 popup_rect; Vector2 ofs(0, (text_editor->get_size().height - rect.size.height) / 2); @@ -2829,7 +2599,6 @@ bool Tree::edit_selected() { text_editor->select_all(); if (c.mode == TreeItem::CELL_MODE_RANGE) { - popup_rect.size.y += value_editor->get_minimum_size().height; value_editor->show(); @@ -2858,12 +2627,10 @@ bool Tree::edit_selected() { } Size2 Tree::get_internal_min_size() const { - Size2i size = cache.bg->get_offset(); if (root) size.height += get_item_height(root); for (int i = 0; i < columns.size(); i++) { - size.width += columns[i].min_width; } @@ -2871,13 +2638,11 @@ Size2 Tree::get_internal_min_size() const { } void Tree::update_scrollbars() { - Size2 size = get_size(); int tbh; if (show_column_titles) { tbh = _get_title_button_height(); } else { - tbh = 0; } @@ -2893,11 +2658,9 @@ void Tree::update_scrollbars() { Size2 min = get_internal_min_size(); if (min.height < size.height - hmin.height) { - v_scroll->hide(); cache.offset.y = 0; } else { - v_scroll->show(); v_scroll->set_max(min.height); v_scroll->set_page(size.height - hmin.height - tbh); @@ -2905,11 +2668,9 @@ void Tree::update_scrollbars() { } if (min.width < size.width - vmin.width) { - h_scroll->hide(); cache.offset.x = 0; } else { - h_scroll->show(); h_scroll->set_max(min.width); h_scroll->set_page(size.width - vmin.width); @@ -2918,19 +2679,15 @@ void Tree::update_scrollbars() { } int Tree::_get_title_button_height() const { - ERR_FAIL_COND_V(cache.font.is_null() || cache.title_button.is_null(), 0); return show_column_titles ? cache.font->get_height() + cache.title_button->get_minimum_size().height : 0; } void Tree::_notification(int p_what) { - if (p_what == NOTIFICATION_FOCUS_ENTER) { - focus_in_id = get_tree()->get_event_count(); } if (p_what == NOTIFICATION_MOUSE_EXIT) { - if (cache.hover_type != Cache::CLICK_NONE) { cache.hover_type = Cache::CLICK_NONE; update(); @@ -2938,23 +2695,19 @@ void Tree::_notification(int p_what) { } if (p_what == NOTIFICATION_VISIBILITY_CHANGED) { - drag_touching = false; } if (p_what == NOTIFICATION_ENTER_TREE) { - update_cache(); } if (p_what == NOTIFICATION_DRAG_END) { - drop_mode_flags = 0; scrolling = false; set_physics_process_internal(false); update(); } if (p_what == NOTIFICATION_DRAG_BEGIN) { - single_select_defer = nullptr; if (cache.scroll_speed > 0) { scrolling = true; @@ -2962,11 +2715,8 @@ void Tree::_notification(int p_what) { } } if (p_what == NOTIFICATION_INTERNAL_PHYSICS_PROCESS) { - if (drag_touching) { - if (drag_touching_deaccel) { - float pos = v_scroll->get_value(); pos += drag_speed * get_physics_process_delta_time(); @@ -3025,7 +2775,6 @@ void Tree::_notification(int p_what) { } if (p_what == NOTIFICATION_DRAW) { - update_cache(); update_scrollbars(); RID ci = get_canvas_item(); @@ -3050,16 +2799,13 @@ void Tree::_notification(int p_what) { draw_size.y -= tbh; if (root) { - draw_item(Point2(), draw_ofs, draw_size, root); } if (show_column_titles) { - //title buttons int ofs2 = cache.bg->get_margin(MARGIN_LEFT); for (int i = 0; i < columns.size(); i++) { - Ref<StyleBox> sb = (cache.click_type == Cache::CLICK_TITLE && cache.click_index == i) ? cache.title_button_pressed : ((cache.hover_type == Cache::CLICK_TITLE && cache.hover_index == i) ? cache.title_button_hover : cache.title_button); Ref<Font> f = cache.tb_font; Rect2 tbrect = Rect2(ofs2 - cache.offset.x, bg->get_margin(MARGIN_TOP), get_column_width(i), tbh); @@ -3077,7 +2823,6 @@ void Tree::_notification(int p_what) { } if (p_what == NOTIFICATION_RESIZED || p_what == NOTIFICATION_TRANSFORM_CHANGED) { - if (popup_edited_item != nullptr) { Rect2 rect = popup_edited_item->get_meta("__focus_rect"); Vector2 ofs(0, (text_editor->get_size().height - rect.size.height) / 2); @@ -3093,18 +2838,15 @@ void Tree::_notification(int p_what) { } Size2 Tree::get_minimum_size() const { - return Size2(1, 1); } TreeItem *Tree::create_item(TreeItem *p_parent, int p_idx) { - ERR_FAIL_COND_V(blocked > 0, nullptr); TreeItem *ti = nullptr; if (p_parent) { - // Append or insert a new item to the given parent. ti = memnew(TreeItem(this)); ERR_FAIL_COND_V(!ti, nullptr); @@ -3130,7 +2872,6 @@ TreeItem *Tree::create_item(TreeItem *p_parent, int p_idx) { ti->parent = p_parent; } else { - if (!root) { // No root exists, make the given item the new root. ti = memnew(TreeItem(this)); @@ -3148,15 +2889,12 @@ TreeItem *Tree::create_item(TreeItem *p_parent, int p_idx) { } TreeItem *Tree::get_root() { - return root; } TreeItem *Tree::get_last_item() { - TreeItem *last = root; while (last) { - if (last->next) last = last->next; else if (last->children) @@ -3169,7 +2907,6 @@ TreeItem *Tree::get_last_item() { } void Tree::item_edited(int p_column, TreeItem *p_item, bool p_lmb) { - edited_item = p_item; edited_col = p_column; if (p_lmb) @@ -3179,14 +2916,11 @@ void Tree::item_edited(int p_column, TreeItem *p_item, bool p_lmb) { } void Tree::item_changed(int p_column, TreeItem *p_item) { - update(); } void Tree::item_selected(int p_column, TreeItem *p_item) { - if (select_mode == SELECT_MULTI) { - if (!p_item->cells[p_column].selectable) return; @@ -3195,14 +2929,12 @@ void Tree::item_selected(int p_column, TreeItem *p_item) { selected_col = p_column; } else { - select_single_item(p_item, root, p_column); } update(); } void Tree::item_deselected(int p_column, TreeItem *p_item) { - if (select_mode == SELECT_MULTI || select_mode == SELECT_SINGLE) { p_item->cells.write[p_column].selected = false; } @@ -3210,17 +2942,14 @@ void Tree::item_deselected(int p_column, TreeItem *p_item) { } void Tree::set_select_mode(SelectMode p_mode) { - select_mode = p_mode; } Tree::SelectMode Tree::get_select_mode() const { - return select_mode; } void Tree::deselect_all() { - TreeItem *item = get_next_selected(get_root()); while (item) { item->deselect(selected_col); @@ -3236,12 +2965,10 @@ void Tree::deselect_all() { } bool Tree::is_anything_selected() { - return (selected_item != nullptr); } void Tree::clear() { - ERR_FAIL_COND(blocked > 0); if (pressing_for_editor) { @@ -3266,18 +2993,15 @@ void Tree::clear() { }; void Tree::set_hide_root(bool p_enabled) { - hide_root = p_enabled; update(); } bool Tree::is_root_hidden() const { - return hide_root; } void Tree::set_column_min_width(int p_column, int p_min_width) { - ERR_FAIL_INDEX(p_column, columns.size()); if (p_min_width < 1) @@ -3286,7 +3010,6 @@ void Tree::set_column_min_width(int p_column, int p_min_width) { update(); } void Tree::set_column_expand(int p_column, bool p_expand) { - ERR_FAIL_INDEX(p_column, columns.size()); columns.write[p_column].expand = p_expand; @@ -3294,27 +3017,22 @@ void Tree::set_column_expand(int p_column, bool p_expand) { } TreeItem *Tree::get_selected() const { - return selected_item; } int Tree::get_selected_column() const { - return selected_col; } TreeItem *Tree::get_edited() const { - return edited_item; } int Tree::get_edited_column() const { - return edited_col; } TreeItem *Tree::get_next_selected(TreeItem *p_item) { - /* if (!p_item) return nullptr; @@ -3323,22 +3041,16 @@ TreeItem *Tree::get_next_selected(TreeItem *p_item) { return nullptr; while (true) { - if (!p_item) { p_item = root; } else { - if (p_item->children) { - p_item = p_item->children; } else if (p_item->next) { - p_item = p_item->next; } else { - while (!p_item->next) { - p_item = p_item->parent; if (p_item == nullptr) return nullptr; @@ -3357,7 +3069,6 @@ TreeItem *Tree::get_next_selected(TreeItem *p_item) { } int Tree::get_column_width(int p_column) const { - ERR_FAIL_INDEX_V(p_column, columns.size(), -1); if (!columns[p_column].expand) @@ -3374,7 +3085,6 @@ int Tree::get_column_width(int p_column) const { int expanding_total = 0; for (int i = 0; i < columns.size(); i++) { - if (!columns[i].expand) { expand_area -= columns[i].min_width; } else { @@ -3392,19 +3102,16 @@ int Tree::get_column_width(int p_column) const { } void Tree::propagate_set_columns(TreeItem *p_item) { - p_item->cells.resize(columns.size()); TreeItem *c = p_item->get_children(); while (c) { - propagate_set_columns(c); c = c->get_next(); } } void Tree::set_columns(int p_columns) { - ERR_FAIL_COND(p_columns < 1); ERR_FAIL_COND(blocked > 0); columns.resize(p_columns); @@ -3417,29 +3124,24 @@ void Tree::set_columns(int p_columns) { } int Tree::get_columns() const { - return columns.size(); } void Tree::_scroll_moved(float) { - update(); } Rect2 Tree::get_custom_popup_rect() const { - return custom_popup_rect; } int Tree::get_item_offset(TreeItem *p_item) const { - TreeItem *it = root; int ofs = _get_title_button_height(); if (!it) return 0; while (true) { - if (it == p_item) return ofs; @@ -3449,16 +3151,12 @@ int Tree::get_item_offset(TreeItem *p_item) const { } if (it->children && !it->collapsed) { - it = it->children; } else if (it->next) { - it = it->next; } else { - while (!it->next) { - it = it->parent; if (it == nullptr) return 0; @@ -3518,12 +3216,10 @@ void Tree::ensure_cursor_is_visible() { } int Tree::get_pressed_button() const { - return pressed_button; } Rect2 Tree::get_item_rect(TreeItem *p_item, int p_column) const { - ERR_FAIL_NULL_V(p_item, Rect2()); ERR_FAIL_COND_V(p_item->tree != this, Rect2()); if (p_column != -1) { @@ -3540,7 +3236,6 @@ Rect2 Tree::get_item_rect(TreeItem *p_item, int p_column) const { r.position.x = 0; r.size.x = get_size().width; } else { - int accum = 0; for (int i = 0; i < p_column; i++) { accum += get_column_width(i); @@ -3553,31 +3248,26 @@ Rect2 Tree::get_item_rect(TreeItem *p_item, int p_column) const { } void Tree::set_column_titles_visible(bool p_show) { - show_column_titles = p_show; update(); } bool Tree::are_column_titles_visible() const { - return show_column_titles; } void Tree::set_column_title(int p_column, const String &p_title) { - ERR_FAIL_INDEX(p_column, columns.size()); columns.write[p_column].title = p_title; update(); } String Tree::get_column_title(int p_column) const { - ERR_FAIL_INDEX_V(p_column, columns.size(), ""); return columns[p_column].title; } Point2 Tree::get_scroll() const { - Point2 ofs; if (h_scroll->is_visible_in_tree()) ofs.x = h_scroll->get_value(); @@ -3587,9 +3277,7 @@ Point2 Tree::get_scroll() const { } void Tree::scroll_to_item(TreeItem *p_item) { - if (!is_visible_in_tree()) { - // hack to work around crash in get_item_rect() if Tree is not in tree. return; } @@ -3607,10 +3295,8 @@ void Tree::scroll_to_item(TreeItem *p_item) { } TreeItem *Tree::_search_item_text(TreeItem *p_at, const String &p_find, int *r_col, bool p_selectable, bool p_backwards) { - TreeItem *from = p_at; while (p_at) { - for (int i = 0; i < columns.size(); i++) { if (p_at->get_text(i).findn(p_find) == 0 && (!p_selectable || p_at->is_selectable(i))) { if (r_col) @@ -3632,7 +3318,6 @@ TreeItem *Tree::_search_item_text(TreeItem *p_at, const String &p_find, int *r_c } TreeItem *Tree::search_item_text(const String &p_find, int *r_col, bool p_selectable) { - TreeItem *from = get_selected(); if (!from) @@ -3655,7 +3340,6 @@ TreeItem *Tree::get_item_with_text(const String &p_find) const { } void Tree::_do_incr_search(const String &p_add) { - uint64_t time = OS::get_singleton()->get_ticks_usec() / 1000; // convert to msec uint64_t diff = time - last_keypress; if (diff > uint64_t(GLOBAL_DEF("gui/timers/incremental_search_max_interval_msec", 2000))) @@ -3674,14 +3358,11 @@ void Tree::_do_incr_search(const String &p_add) { } TreeItem *Tree::_find_item_at_pos(TreeItem *p_item, const Point2 &p_pos, int &r_column, int &h, int §ion) const { - Point2 pos = p_pos; if (root != p_item || !hide_root) { - h = compute_item_height(p_item) + cache.vseparation; if (pos.y < h) { - if (drop_mode_flags == DROP_MODE_ON_ITEM) { section = 0; } else if (drop_mode_flags == DROP_MODE_INBETWEEN) { @@ -3695,7 +3376,6 @@ TreeItem *Tree::_find_item_at_pos(TreeItem *p_item, const Point2 &p_pos, int &r_ } for (int i = 0; i < columns.size(); i++) { - int w = get_column_width(i); if (pos.x < w) { r_column = i; @@ -3707,11 +3387,9 @@ TreeItem *Tree::_find_item_at_pos(TreeItem *p_item, const Point2 &p_pos, int &r_ return nullptr; } else { - pos.y -= h; } } else { - h = 0; } @@ -3720,7 +3398,6 @@ TreeItem *Tree::_find_item_at_pos(TreeItem *p_item, const Point2 &p_pos, int &r_ TreeItem *n = p_item->get_children(); while (n) { - int ch; TreeItem *r = _find_item_at_pos(n, pos, r_column, ch, section); pos.y -= ch; @@ -3734,9 +3411,7 @@ TreeItem *Tree::_find_item_at_pos(TreeItem *p_item, const Point2 &p_pos, int &r_ } int Tree::get_column_at_position(const Point2 &p_pos) const { - if (root) { - Point2 pos = p_pos; pos -= cache.bg->get_offset(); pos.y -= _get_title_button_height(); @@ -3760,9 +3435,7 @@ int Tree::get_column_at_position(const Point2 &p_pos) const { } int Tree::get_drop_section_at_position(const Point2 &p_pos) const { - if (root) { - Point2 pos = p_pos; pos -= cache.bg->get_offset(); pos.y -= _get_title_button_height(); @@ -3785,9 +3458,7 @@ int Tree::get_drop_section_at_position(const Point2 &p_pos) const { return -100; } TreeItem *Tree::get_item_at_position(const Point2 &p_pos) const { - if (root) { - Point2 pos = p_pos; pos -= cache.bg->get_offset(); pos.y -= _get_title_button_height(); @@ -3803,7 +3474,6 @@ TreeItem *Tree::get_item_at_position(const Point2 &p_pos) const { TreeItem *it = _find_item_at_pos(root, pos, col, h, section); if (it) { - return it; } } @@ -3812,9 +3482,7 @@ TreeItem *Tree::get_item_at_position(const Point2 &p_pos) const { } String Tree::get_tooltip(const Point2 &p_pos) const { - if (root) { - Point2 pos = p_pos; pos -= cache.bg->get_offset(); pos.y -= _get_title_button_height(); @@ -3830,7 +3498,6 @@ String Tree::get_tooltip(const Point2 &p_pos) const { TreeItem *it = _find_item_at_pos(root, pos, col, h, section); if (it) { - const TreeItem::Cell &c = it->cells[col]; int col_width = get_column_width(col); @@ -3861,12 +3528,10 @@ String Tree::get_tooltip(const Point2 &p_pos) const { } void Tree::set_cursor_can_exit_tree(bool p_enable) { - cursor_can_exit_tree = p_enable; } bool Tree::can_cursor_exit_tree() const { - return cursor_can_exit_tree; } @@ -3876,7 +3541,6 @@ void Tree::set_hide_folding(bool p_hide) { } bool Tree::is_folding_hidden() const { - return hide_folding; } @@ -3892,27 +3556,22 @@ void Tree::set_drop_mode_flags(int p_flags) { } int Tree::get_drop_mode_flags() const { - return drop_mode_flags; } void Tree::set_edit_checkbox_cell_only_when_checkbox_is_pressed(bool p_enable) { - force_edit_checkbox_only_on_checkbox = p_enable; } bool Tree::get_edit_checkbox_cell_only_when_checkbox_is_pressed() const { - return force_edit_checkbox_only_on_checkbox; } void Tree::set_allow_rmb_select(bool p_allow) { - allow_rmb_select = p_allow; } bool Tree::get_allow_rmb_select() const { - return allow_rmb_select; } @@ -3921,12 +3580,10 @@ void Tree::set_allow_reselect(bool p_allow) { } bool Tree::get_allow_reselect() const { - return allow_reselect; } void Tree::_bind_methods() { - ClassDB::bind_method(D_METHOD("_gui_input"), &Tree::_gui_input); ClassDB::bind_method(D_METHOD("clear"), &Tree::clear); @@ -4014,7 +3671,6 @@ void Tree::_bind_methods() { } Tree::Tree() { - selected_col = 0; columns.resize(1); selected_item = nullptr; @@ -4118,7 +3774,6 @@ Tree::Tree() { } Tree::~Tree() { - if (root) { memdelete(root); } diff --git a/scene/gui/tree.h b/scene/gui/tree.h index 3c67a79558..46842e78a0 100644 --- a/scene/gui/tree.h +++ b/scene/gui/tree.h @@ -40,7 +40,6 @@ class Tree; class TreeItem : public Object { - GDCLASS(TreeItem, Object); public: @@ -63,7 +62,6 @@ private: friend class Tree; struct Cell { - TreeCellMode mode; Ref<Texture2D> icon; @@ -111,7 +109,6 @@ private: Vector<Button> buttons; Cell() { - custom_draw_obj = ObjectID(); custom_button = false; mode = TreeItem::CELL_MODE_STRING; @@ -293,7 +290,6 @@ VARIANT_ENUM_CAST(TreeItem::TextAlign); class VBoxContainer; class Tree : public Control { - GDCLASS(Tree, Control); public: @@ -350,7 +346,6 @@ private: int drop_mode_flags; struct ColumnInfo { - int min_width; bool expand; String title; @@ -404,7 +399,6 @@ private: void propagate_set_columns(TreeItem *p_item); struct Cache { - Ref<Font> font; Ref<Font> tb_font; Ref<StyleBox> bg; diff --git a/scene/gui/video_player.cpp b/scene/gui/video_player.cpp index ac1e4a5629..52538203dd 100644 --- a/scene/gui/video_player.cpp +++ b/scene/gui/video_player.cpp @@ -35,7 +35,6 @@ #include "servers/audio_server.h" int VideoPlayer::sp_get_channel_count() const { - if (playback.is_null()) { return 0; } @@ -44,7 +43,6 @@ int VideoPlayer::sp_get_channel_count() const { } bool VideoPlayer::mix(AudioFrame *p_buffer, int p_frames) { - // Check the amount resampler can really handle. // If it cannot, wait "wait_resampler_phase_limit" times. // This mechanism contributes to smoother pause/unpause operation. @@ -59,7 +57,6 @@ bool VideoPlayer::mix(AudioFrame *p_buffer, int p_frames) { // Called from main thread (eg VideoStreamPlaybackWebm::update) int VideoPlayer::_audio_mix_callback(void *p_udata, const float *p_data, int p_frames) { - ERR_FAIL_NULL_V(p_udata, 0); ERR_FAIL_NULL_V(p_data, 0); @@ -79,14 +76,12 @@ int VideoPlayer::_audio_mix_callback(void *p_udata, const float *p_data, int p_f } void VideoPlayer::_mix_audios(void *p_self) { - ERR_FAIL_NULL(p_self); reinterpret_cast<VideoPlayer *>(p_self)->_mix_audio(); } // Called from audio thread void VideoPlayer::_mix_audio() { - if (!stream.is_valid()) { return; } @@ -110,7 +105,6 @@ void VideoPlayer::_mix_audio() { ERR_FAIL_COND(!target); for (int j = 0; j < buffer_size; j++) { - target[j] += buffer[j] * vol; } @@ -123,7 +117,6 @@ void VideoPlayer::_mix_audio() { } for (int j = 0; j < buffer_size; j++) { - AudioFrame frame = buffer[j] * vol; for (int k = 0; k < cc; k++) { targets[k][j] += frame; @@ -133,11 +126,8 @@ void VideoPlayer::_mix_audio() { } void VideoPlayer::_notification(int p_notification) { - switch (p_notification) { - case NOTIFICATION_ENTER_TREE: { - AudioServer::get_singleton()->add_callback(_mix_audios, this); if (stream.is_valid() && autoplay && !Engine::get_singleton()->is_editor_hint()) { @@ -147,13 +137,11 @@ void VideoPlayer::_notification(int p_notification) { } break; case NOTIFICATION_EXIT_TREE: { - AudioServer::get_singleton()->remove_callback(_mix_audios, this); } break; case NOTIFICATION_INTERNAL_PROCESS: { - bus_index = AudioServer::get_singleton()->thread_find_bus_index(bus); if (stream.is_null() || paused || playback.is_null() || !playback->is_playing()) @@ -176,7 +164,6 @@ void VideoPlayer::_notification(int p_notification) { } break; case NOTIFICATION_DRAW: { - if (texture.is_null()) return; if (texture->get_width() == 0) @@ -190,7 +177,6 @@ void VideoPlayer::_notification(int p_notification) { }; Size2 VideoPlayer::get_minimum_size() const { - if (!expand && !texture.is_null()) return texture->get_size(); else @@ -198,19 +184,16 @@ Size2 VideoPlayer::get_minimum_size() const { } void VideoPlayer::set_expand(bool p_expand) { - expand = p_expand; update(); minimum_size_changed(); } bool VideoPlayer::has_expand() const { - return expand; } void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) { - stop(); AudioServer::get_singleton()->lock(); mix_buffer.resize(AudioServer::get_singleton()->thread_get_mix_buffer_size()); @@ -256,12 +239,10 @@ void VideoPlayer::set_stream(const Ref<VideoStream> &p_stream) { }; Ref<VideoStream> VideoPlayer::get_stream() const { - return stream; }; void VideoPlayer::play() { - ERR_FAIL_COND(!is_inside_tree()); if (playback.is_null()) return; @@ -274,7 +255,6 @@ void VideoPlayer::play() { }; void VideoPlayer::stop() { - if (!is_inside_tree()) return; if (playback.is_null()) @@ -288,7 +268,6 @@ void VideoPlayer::stop() { }; bool VideoPlayer::is_playing() const { - if (playback.is_null()) return false; @@ -296,7 +275,6 @@ bool VideoPlayer::is_playing() const { }; void VideoPlayer::set_paused(bool p_paused) { - paused = p_paused; if (playback.is_valid()) { playback->set_paused(p_paused); @@ -306,17 +284,14 @@ void VideoPlayer::set_paused(bool p_paused) { }; bool VideoPlayer::is_paused() const { - return paused; } void VideoPlayer::set_buffering_msec(int p_msec) { - buffering_ms = p_msec; } int VideoPlayer::get_buffering_msec() const { - return buffering_ms; } @@ -325,22 +300,18 @@ void VideoPlayer::set_audio_track(int p_track) { } int VideoPlayer::get_audio_track() const { - return audio_track; } void VideoPlayer::set_volume(float p_vol) { - volume = p_vol; }; float VideoPlayer::get_volume() const { - return volume; }; void VideoPlayer::set_volume_db(float p_db) { - if (p_db < -79) set_volume(0); else @@ -348,7 +319,6 @@ void VideoPlayer::set_volume_db(float p_db) { }; float VideoPlayer::get_volume_db() const { - if (volume == 0) return -80; else @@ -356,27 +326,23 @@ float VideoPlayer::get_volume_db() const { }; String VideoPlayer::get_stream_name() const { - if (stream.is_null()) return "<No Stream>"; return stream->get_name(); }; float VideoPlayer::get_stream_position() const { - if (playback.is_null()) return 0; return playback->get_playback_position(); }; void VideoPlayer::set_stream_position(float p_position) { - if (playback.is_valid()) playback->seek(p_position); } Ref<Texture2D> VideoPlayer::get_video_texture() const { - if (playback.is_valid()) return playback->get_texture(); @@ -384,17 +350,14 @@ Ref<Texture2D> VideoPlayer::get_video_texture() const { } void VideoPlayer::set_autoplay(bool p_enable) { - autoplay = p_enable; }; bool VideoPlayer::has_autoplay() const { - return autoplay; }; void VideoPlayer::set_bus(const StringName &p_bus) { - //if audio is active, must lock this AudioServer::get_singleton()->lock(); bus = p_bus; @@ -402,7 +365,6 @@ void VideoPlayer::set_bus(const StringName &p_bus) { } StringName VideoPlayer::get_bus() const { - for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (AudioServer::get_singleton()->get_bus_name(i) == bus) { return bus; @@ -412,9 +374,7 @@ StringName VideoPlayer::get_bus() const { } void VideoPlayer::_validate_property(PropertyInfo &p_property) const { - if (p_property.name == "bus") { - String options; for (int i = 0; i < AudioServer::get_singleton()->get_bus_count(); i++) { if (i > 0) @@ -428,7 +388,6 @@ void VideoPlayer::_validate_property(PropertyInfo &p_property) const { } void VideoPlayer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_stream", "stream"), &VideoPlayer::set_stream); ClassDB::bind_method(D_METHOD("get_stream"), &VideoPlayer::get_stream); @@ -485,7 +444,6 @@ void VideoPlayer::_bind_methods() { } VideoPlayer::VideoPlayer() { - volume = 1; loops = false; paused = false; @@ -506,7 +464,6 @@ VideoPlayer::VideoPlayer() { }; VideoPlayer::~VideoPlayer() { - // if (stream_rid.is_valid()) // AudioServer::get_singleton()->free(stream_rid); resampler.clear(); //Not necessary here, but make in consistent with other "stream_player" classes diff --git a/scene/gui/video_player.h b/scene/gui/video_player.h index 78e7fa05f8..551c079b3c 100644 --- a/scene/gui/video_player.h +++ b/scene/gui/video_player.h @@ -37,11 +37,9 @@ #include "servers/audio_server.h" class VideoPlayer : public Control { - GDCLASS(VideoPlayer, Control); struct Output { - AudioFrame vol; int bus_index; Viewport *viewport; //pointer only used for reference to previous mix diff --git a/scene/main/canvas_item.cpp b/scene/main/canvas_item.cpp index e91826d44b..8ca33eaf96 100644 --- a/scene/main/canvas_item.cpp +++ b/scene/main/canvas_item.cpp @@ -48,7 +48,6 @@ Map<CanvasItemMaterial::MaterialKey, CanvasItemMaterial::ShaderData> CanvasItemM CanvasItemMaterial::ShaderNames *CanvasItemMaterial::shader_names = nullptr; void CanvasItemMaterial::init_shaders() { - dirty_materials = memnew(SelfList<CanvasItemMaterial>::List); shader_names = memnew(ShaderNames); @@ -59,14 +58,12 @@ void CanvasItemMaterial::init_shaders() { } void CanvasItemMaterial::finish_shaders() { - memdelete(dirty_materials); memdelete(shader_names); dirty_materials = nullptr; } void CanvasItemMaterial::_update_shader() { - dirty_materials->remove(&element); MaterialKey mk = _compute_key(); @@ -85,7 +82,6 @@ void CanvasItemMaterial::_update_shader() { current_key = mk; if (shader_map.has(mk)) { - RS::get_singleton()->material_set_shader(_get_material(), shader_map[mk].shader); shader_map[mk].users++; return; @@ -129,7 +125,6 @@ void CanvasItemMaterial::_update_shader() { code += ";\n"; if (particles_animation) { - code += "uniform int particles_anim_h_frames;\n"; code += "uniform int particles_anim_v_frames;\n"; code += "uniform bool particles_anim_loop;\n"; @@ -165,17 +160,14 @@ void CanvasItemMaterial::_update_shader() { } void CanvasItemMaterial::flush_changes() { - MutexLock lock(material_mutex); while (dirty_materials->first()) { - dirty_materials->first()->self()->_update_shader(); } } void CanvasItemMaterial::_queue_shader_change() { - MutexLock lock(material_mutex); if (!element.in_list()) { @@ -184,13 +176,11 @@ void CanvasItemMaterial::_queue_shader_change() { } bool CanvasItemMaterial::_is_shader_dirty() const { - MutexLock lock(material_mutex); return element.in_list(); } void CanvasItemMaterial::set_blend_mode(BlendMode p_blend_mode) { - blend_mode = p_blend_mode; _queue_shader_change(); } @@ -200,13 +190,11 @@ CanvasItemMaterial::BlendMode CanvasItemMaterial::get_blend_mode() const { } void CanvasItemMaterial::set_light_mode(LightMode p_light_mode) { - light_mode = p_light_mode; _queue_shader_change(); } CanvasItemMaterial::LightMode CanvasItemMaterial::get_light_mode() const { - return light_mode; } @@ -221,34 +209,28 @@ bool CanvasItemMaterial::get_particles_animation() const { } void CanvasItemMaterial::set_particles_anim_h_frames(int p_frames) { - particles_anim_h_frames = p_frames; RS::get_singleton()->material_set_param(_get_material(), shader_names->particles_anim_h_frames, p_frames); } int CanvasItemMaterial::get_particles_anim_h_frames() const { - return particles_anim_h_frames; } void CanvasItemMaterial::set_particles_anim_v_frames(int p_frames) { - particles_anim_v_frames = p_frames; RS::get_singleton()->material_set_param(_get_material(), shader_names->particles_anim_v_frames, p_frames); } int CanvasItemMaterial::get_particles_anim_v_frames() const { - return particles_anim_v_frames; } void CanvasItemMaterial::set_particles_anim_loop(bool p_loop) { - particles_anim_loop = p_loop; RS::get_singleton()->material_set_param(_get_material(), shader_names->particles_anim_loop, particles_anim_loop); } bool CanvasItemMaterial::get_particles_anim_loop() const { - return particles_anim_loop; } @@ -259,18 +241,15 @@ void CanvasItemMaterial::_validate_property(PropertyInfo &property) const { } RID CanvasItemMaterial::get_shader_rid() const { - ERR_FAIL_COND_V(!shader_map.has(current_key), RID()); return shader_map[current_key].shader; } Shader::Mode CanvasItemMaterial::get_shader_mode() const { - return Shader::MODE_CANVAS_ITEM; } void CanvasItemMaterial::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_blend_mode", "blend_mode"), &CanvasItemMaterial::set_blend_mode); ClassDB::bind_method(D_METHOD("get_blend_mode"), &CanvasItemMaterial::get_blend_mode); @@ -310,7 +289,6 @@ void CanvasItemMaterial::_bind_methods() { CanvasItemMaterial::CanvasItemMaterial() : element(this) { - blend_mode = BLEND_MODE_MIX; light_mode = LIGHT_MODE_NORMAL; particles_animation = false; @@ -325,7 +303,6 @@ CanvasItemMaterial::CanvasItemMaterial() : } CanvasItemMaterial::~CanvasItemMaterial() { - MutexLock lock(material_mutex); if (shader_map.has(current_key)) { @@ -356,7 +333,6 @@ Transform2D CanvasItem::_edit_get_transform() const { #endif bool CanvasItem::is_visible_in_tree() const { - if (!is_inside_tree()) return false; @@ -375,7 +351,6 @@ bool CanvasItem::is_visible_in_tree() const { } void CanvasItem::_propagate_visibility_changed(bool p_visible) { - if (p_visible && first_draw) { //avoid propagating it twice first_draw = false; } @@ -388,7 +363,6 @@ void CanvasItem::_propagate_visibility_changed(bool p_visible) { _block(); for (int i = 0; i < get_child_count(); i++) { - CanvasItem *c = Object::cast_to<CanvasItem>(get_child(i)); if (c && c->visible) //should the toplevels stop propagation? i think so but.. @@ -399,7 +373,6 @@ void CanvasItem::_propagate_visibility_changed(bool p_visible) { } void CanvasItem::show() { - if (visible) return; @@ -414,7 +387,6 @@ void CanvasItem::show() { } void CanvasItem::hide() { - if (!visible) return; @@ -434,7 +406,6 @@ CanvasItem *CanvasItem::get_current_item_drawn() { } void CanvasItem::_update_callback() { - if (!is_inside_tree()) { pending_update = false; return; @@ -462,7 +433,6 @@ void CanvasItem::_update_callback() { } Transform2D CanvasItem::get_global_transform_with_canvas() const { - if (canvas_layer) return canvas_layer->get_transform() * get_global_transform(); else if (is_inside_tree()) @@ -491,7 +461,6 @@ Transform2D CanvasItem::get_global_transform() const { ERR_FAIL_COND_V(!is_inside_tree(), get_transform()); #endif if (global_invalid) { - const CanvasItem *pi = get_parent_item(); if (pi) global_transform = pi->get_global_transform() * get_transform(); @@ -505,7 +474,6 @@ Transform2D CanvasItem::get_global_transform() const { } void CanvasItem::_toplevel_raise_self() { - if (!is_inside_tree()) return; @@ -516,15 +484,12 @@ void CanvasItem::_toplevel_raise_self() { } void CanvasItem::_enter_canvas() { - if ((!Object::cast_to<CanvasItem>(get_parent())) || toplevel) { - Node *n = this; canvas_layer = nullptr; while (n) { - canvas_layer = Object::cast_to<CanvasLayer>(n); if (canvas_layer) { break; @@ -554,7 +519,6 @@ void CanvasItem::_enter_canvas() { get_tree()->call_group_flags(SceneTree::GROUP_CALL_UNIQUE, group, "_toplevel_raise_self"); } else { - CanvasItem *parent = get_parent_item(); canvas_layer = parent->canvas_layer; RenderingServer::get_singleton()->canvas_item_set_parent(canvas_item, parent->get_canvas_item()); @@ -568,7 +532,6 @@ void CanvasItem::_enter_canvas() { } void CanvasItem::_exit_canvas() { - notification(NOTIFICATION_EXIT_CANVAS, true); //reverse the notification RenderingServer::get_singleton()->canvas_item_set_parent(canvas_item, RID()); canvas_layer = nullptr; @@ -576,10 +539,8 @@ void CanvasItem::_exit_canvas() { } void CanvasItem::_notification(int p_what) { - switch (p_what) { case NOTIFICATION_ENTER_TREE: { - _update_texture_filter_changed(false); _update_texture_repeat_changed(false); @@ -615,7 +576,6 @@ void CanvasItem::_notification(int p_what) { } } break; case NOTIFICATION_MOVED_IN_PARENT: { - if (!is_inside_tree()) break; @@ -643,17 +603,14 @@ void CanvasItem::_notification(int p_what) { } break; case NOTIFICATION_DRAW: case NOTIFICATION_TRANSFORM_CHANGED: { - } break; case NOTIFICATION_VISIBILITY_CHANGED: { - emit_signal(SceneStringNames::get_singleton()->visibility_changed); } break; } } void CanvasItem::set_visible(bool p_visible) { - if (p_visible) show(); else @@ -661,19 +618,16 @@ void CanvasItem::set_visible(bool p_visible) { } void CanvasItem::_window_visibility_changed() { - if (visible) { _propagate_visibility_changed(window->is_visible()); } } bool CanvasItem::is_visible() const { - return visible; } void CanvasItem::update() { - if (!is_inside_tree()) return; if (pending_update) @@ -685,7 +639,6 @@ void CanvasItem::update() { } void CanvasItem::set_modulate(const Color &p_modulate) { - if (modulate == p_modulate) return; @@ -693,12 +646,10 @@ void CanvasItem::set_modulate(const Color &p_modulate) { RenderingServer::get_singleton()->canvas_item_set_modulate(canvas_item, modulate); } Color CanvasItem::get_modulate() const { - return modulate; } void CanvasItem::set_as_toplevel(bool p_toplevel) { - if (toplevel == p_toplevel) return; @@ -713,12 +664,10 @@ void CanvasItem::set_as_toplevel(bool p_toplevel) { } bool CanvasItem::is_set_as_toplevel() const { - return toplevel; } CanvasItem *CanvasItem::get_parent_item() const { - if (toplevel) return nullptr; @@ -726,7 +675,6 @@ CanvasItem *CanvasItem::get_parent_item() const { } void CanvasItem::set_self_modulate(const Color &p_self_modulate) { - if (self_modulate == p_self_modulate) return; @@ -734,12 +682,10 @@ void CanvasItem::set_self_modulate(const Color &p_self_modulate) { RenderingServer::get_singleton()->canvas_item_set_self_modulate(canvas_item, self_modulate); } Color CanvasItem::get_self_modulate() const { - return self_modulate; } void CanvasItem::set_light_mask(int p_light_mask) { - if (light_mask == p_light_mask) return; @@ -748,26 +694,22 @@ void CanvasItem::set_light_mask(int p_light_mask) { } int CanvasItem::get_light_mask() const { - return light_mask; } void CanvasItem::item_rect_changed(bool p_size_changed) { - if (p_size_changed) update(); emit_signal(SceneStringNames::get_singleton()->item_rect_changed); } void CanvasItem::draw_line(const Point2 &p_from, const Point2 &p_to, const Color &p_color, float p_width) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); RenderingServer::get_singleton()->canvas_item_add_line(canvas_item, p_from, p_to, p_color, p_width); } void CanvasItem::draw_polyline(const Vector<Point2> &p_points, const Color &p_color, float p_width) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); Vector<Color> colors; @@ -776,14 +718,12 @@ void CanvasItem::draw_polyline(const Vector<Point2> &p_points, const Color &p_co } void CanvasItem::draw_polyline_colors(const Vector<Point2> &p_points, const Vector<Color> &p_colors, float p_width) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); RenderingServer::get_singleton()->canvas_item_add_polyline(canvas_item, p_points, p_colors, p_width); } void CanvasItem::draw_arc(const Vector2 &p_center, float p_radius, float p_start_angle, float p_end_angle, int p_point_count, const Color &p_color, float p_width) { - Vector<Point2> points; points.resize(p_point_count); const float delta_angle = p_end_angle - p_start_angle; @@ -796,7 +736,6 @@ void CanvasItem::draw_arc(const Vector2 &p_center, float p_radius, float p_start } void CanvasItem::draw_multiline(const Vector<Point2> &p_points, const Color &p_color, float p_width) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); Vector<Color> colors; @@ -805,14 +744,12 @@ void CanvasItem::draw_multiline(const Vector<Point2> &p_points, const Color &p_c } void CanvasItem::draw_multiline_colors(const Vector<Point2> &p_points, const Vector<Color> &p_colors, float p_width) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); RenderingServer::get_singleton()->canvas_item_add_multiline(canvas_item, p_points, p_colors, p_width); } void CanvasItem::draw_rect(const Rect2 &p_rect, const Color &p_color, bool p_filled, float p_width) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); if (p_filled) { @@ -859,14 +796,12 @@ void CanvasItem::draw_rect(const Rect2 &p_rect, const Color &p_color, bool p_fil } void CanvasItem::draw_circle(const Point2 &p_pos, float p_radius, const Color &p_color) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); RenderingServer::get_singleton()->canvas_item_add_circle(canvas_item, p_pos, p_radius, p_color); } void CanvasItem::draw_texture(const Ref<Texture2D> &p_texture, const Point2 &p_pos, const Color &p_modulate, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); ERR_FAIL_COND(p_texture.is_null()); @@ -875,14 +810,12 @@ void CanvasItem::draw_texture(const Ref<Texture2D> &p_texture, const Point2 &p_p } void CanvasItem::draw_texture_rect(const Ref<Texture2D> &p_texture, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); ERR_FAIL_COND(p_texture.is_null()); p_texture->draw_rect(canvas_item, p_rect, p_tile, p_modulate, p_transpose, p_normal_map, p_specular_map, p_specular_color_shininess, RS::CanvasItemTextureFilter(p_texture_filter), RS::CanvasItemTextureRepeat(p_texture_repeat)); } void CanvasItem::draw_texture_rect_region(const Ref<Texture2D> &p_texture, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, bool p_clip_uv, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); ERR_FAIL_COND(p_texture.is_null()); p_texture->draw_rect_region(canvas_item, p_rect, p_src_rect, p_modulate, p_transpose, p_normal_map, p_specular_map, p_specular_color_shininess, RS::CanvasItemTextureFilter(p_texture_filter), RS::CanvasItemTextureRepeat(p_texture_repeat), p_clip_uv); @@ -896,7 +829,6 @@ void CanvasItem::draw_style_box(const Ref<StyleBox> &p_style_box, const Rect2 &p p_style_box->draw(canvas_item, p_rect); } void CanvasItem::draw_primitive(const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs, Ref<Texture2D> p_texture, float p_width, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); RID rid = p_texture.is_valid() ? p_texture->get_rid() : RID(); @@ -906,7 +838,6 @@ void CanvasItem::draw_primitive(const Vector<Point2> &p_points, const Vector<Col RenderingServer::get_singleton()->canvas_item_add_primitive(canvas_item, p_points, p_colors, p_uvs, rid, p_width, rid_normal, rid_specular, p_specular_color_shininess, RS::CanvasItemTextureFilter(p_texture_filter), RS::CanvasItemTextureRepeat(p_texture_repeat)); } void CanvasItem::draw_set_transform(const Point2 &p_offset, float p_rot, const Size2 &p_scale) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); Transform2D xform(p_rot, p_offset); @@ -915,14 +846,12 @@ void CanvasItem::draw_set_transform(const Point2 &p_offset, float p_rot, const S } void CanvasItem::draw_set_transform_matrix(const Transform2D &p_matrix) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); RenderingServer::get_singleton()->canvas_item_add_set_transform(canvas_item, p_matrix); } void CanvasItem::draw_polygon(const Vector<Point2> &p_points, const Vector<Color> &p_colors, const Vector<Point2> &p_uvs, Ref<Texture2D> p_texture, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); RID rid = p_texture.is_valid() ? p_texture->get_rid() : RID(); @@ -933,7 +862,6 @@ void CanvasItem::draw_polygon(const Vector<Point2> &p_points, const Vector<Color } void CanvasItem::draw_colored_polygon(const Vector<Point2> &p_points, const Color &p_color, const Vector<Point2> &p_uvs, Ref<Texture2D> p_texture, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); Vector<Color> colors; @@ -946,7 +874,6 @@ void CanvasItem::draw_colored_polygon(const Vector<Point2> &p_points, const Colo } void CanvasItem::draw_mesh(const Ref<Mesh> &p_mesh, const Ref<Texture2D> &p_texture, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, const Transform2D &p_transform, const Color &p_modulate, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND(p_mesh.is_null()); RID texture_rid = p_texture.is_valid() ? p_texture->get_rid() : RID(); RID normal_map_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -955,7 +882,6 @@ void CanvasItem::draw_mesh(const Ref<Mesh> &p_mesh, const Ref<Texture2D> &p_text RenderingServer::get_singleton()->canvas_item_add_mesh(canvas_item, p_mesh->get_rid(), p_transform, p_modulate, texture_rid, normal_map_rid, specular_map_rid, p_specular_color_shininess, RS::CanvasItemTextureFilter(p_texture_filter), RS::CanvasItemTextureRepeat(p_texture_repeat)); } void CanvasItem::draw_multimesh(const Ref<MultiMesh> &p_multimesh, const Ref<Texture2D> &p_texture, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, TextureFilter p_texture_filter, TextureRepeat p_texture_repeat) { - ERR_FAIL_COND(p_multimesh.is_null()); RID texture_rid = p_texture.is_valid() ? p_texture->get_rid() : RID(); RID normal_map_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -965,7 +891,6 @@ void CanvasItem::draw_multimesh(const Ref<MultiMesh> &p_multimesh, const Ref<Tex } void CanvasItem::draw_string(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_text, const Color &p_modulate, int p_clip_w) { - ERR_FAIL_COND_MSG(!drawing, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); ERR_FAIL_COND(p_font.is_null()); @@ -973,7 +898,6 @@ void CanvasItem::draw_string(const Ref<Font> &p_font, const Point2 &p_pos, const } float CanvasItem::draw_char(const Ref<Font> &p_font, const Point2 &p_pos, const String &p_char, const String &p_next, const Color &p_modulate) { - ERR_FAIL_COND_V_MSG(!drawing, 0, "Drawing is only allowed inside NOTIFICATION_DRAW, _draw() function or 'draw' signal."); ERR_FAIL_COND_V(p_char.length() != 1, 0); @@ -986,7 +910,6 @@ float CanvasItem::draw_char(const Ref<Font> &p_font, const Point2 &p_pos, const } void CanvasItem::_notify_transform(CanvasItem *p_node) { - /* This check exists to avoid re-propagating the transform * notification down the tree on dirty nodes. It provides * optimization by avoiding redundancy (nodes are dirty, will get the @@ -1007,7 +930,6 @@ void CanvasItem::_notify_transform(CanvasItem *p_node) { } for (List<CanvasItem *>::Element *E = p_node->children_items.front(); E; E = E->next()) { - CanvasItem *ci = E->get(); if (ci->toplevel) continue; @@ -1016,13 +938,11 @@ void CanvasItem::_notify_transform(CanvasItem *p_node) { } Rect2 CanvasItem::get_viewport_rect() const { - ERR_FAIL_COND_V(!is_inside_tree(), Rect2()); return get_viewport()->get_visible_rect(); } RID CanvasItem::get_canvas() const { - ERR_FAIL_COND_V(!is_inside_tree(), RID()); if (canvas_layer) @@ -1032,7 +952,6 @@ RID CanvasItem::get_canvas() const { } ObjectID CanvasItem::get_canvas_layer_instance_id() const { - if (canvas_layer) { return canvas_layer->get_instance_id(); } else { @@ -1041,7 +960,6 @@ ObjectID CanvasItem::get_canvas_layer_instance_id() const { } CanvasItem *CanvasItem::get_toplevel() const { - CanvasItem *ci = const_cast<CanvasItem *>(this); while (!ci->toplevel && Object::cast_to<CanvasItem>(ci->get_parent())) { ci = Object::cast_to<CanvasItem>(ci->get_parent()); @@ -1051,7 +969,6 @@ CanvasItem *CanvasItem::get_toplevel() const { } Ref<World2D> CanvasItem::get_world_2d() const { - ERR_FAIL_COND_V(!is_inside_tree(), Ref<World2D>()); CanvasItem *tl = get_toplevel(); @@ -1064,7 +981,6 @@ Ref<World2D> CanvasItem::get_world_2d() const { } RID CanvasItem::get_viewport_rid() const { - ERR_FAIL_COND_V(!is_inside_tree(), RID()); return get_viewport()->get_viewport_rid(); } @@ -1074,12 +990,10 @@ void CanvasItem::set_block_transform_notify(bool p_enable) { } bool CanvasItem::is_block_transform_notify_enabled() const { - return block_transform_notify; } void CanvasItem::set_draw_behind_parent(bool p_enable) { - if (behind == p_enable) return; behind = p_enable; @@ -1087,12 +1001,10 @@ void CanvasItem::set_draw_behind_parent(bool p_enable) { } bool CanvasItem::is_draw_behind_parent_enabled() const { - return behind; } void CanvasItem::set_material(const Ref<Material> &p_material) { - material = p_material; RID rid; if (material.is_valid()) @@ -1102,23 +1014,19 @@ void CanvasItem::set_material(const Ref<Material> &p_material) { } void CanvasItem::set_use_parent_material(bool p_use_parent_material) { - use_parent_material = p_use_parent_material; RS::get_singleton()->canvas_item_set_use_parent_material(canvas_item, p_use_parent_material); } bool CanvasItem::get_use_parent_material() const { - return use_parent_material; } Ref<Material> CanvasItem::get_material() const { - return material; } Vector2 CanvasItem::make_canvas_position_local(const Vector2 &screen_point) const { - ERR_FAIL_COND_V(!is_inside_tree(), screen_point); Transform2D local_matrix = (get_canvas_transform() * get_global_transform()).affine_inverse(); @@ -1127,7 +1035,6 @@ Vector2 CanvasItem::make_canvas_position_local(const Vector2 &screen_point) cons } Ref<InputEvent> CanvasItem::make_input_local(const Ref<InputEvent> &p_event) const { - ERR_FAIL_COND_V(p_event.is_null(), p_event); ERR_FAIL_COND_V(!is_inside_tree(), p_event); @@ -1135,13 +1042,11 @@ Ref<InputEvent> CanvasItem::make_input_local(const Ref<InputEvent> &p_event) con } Vector2 CanvasItem::get_global_mouse_position() const { - ERR_FAIL_COND_V(!get_viewport(), Vector2()); return get_canvas_transform().affine_inverse().xform(get_viewport()->get_mouse_position()); } Vector2 CanvasItem::get_local_mouse_position() const { - ERR_FAIL_COND_V(!get_viewport(), Vector2()); return get_global_transform().affine_inverse().xform(get_global_mouse_position()); @@ -1159,7 +1064,6 @@ void CanvasItem::force_update_transform() { } void CanvasItem::_bind_methods() { - ClassDB::bind_method(D_METHOD("_toplevel_raise_self"), &CanvasItem::_toplevel_raise_self); ClassDB::bind_method(D_METHOD("_update_callback"), &CanvasItem::_update_callback); @@ -1316,7 +1220,6 @@ void CanvasItem::_bind_methods() { } Transform2D CanvasItem::get_canvas_transform() const { - ERR_FAIL_COND_V(!is_inside_tree(), Transform2D()); if (canvas_layer) @@ -1328,11 +1231,9 @@ Transform2D CanvasItem::get_canvas_transform() const { } Transform2D CanvasItem::get_viewport_transform() const { - ERR_FAIL_COND_V(!is_inside_tree(), Transform2D()); if (canvas_layer) { - if (get_viewport()) { return get_viewport()->get_final_transform() * canvas_layer->get_transform(); } else { @@ -1369,7 +1270,6 @@ bool CanvasItem::is_transform_notification_enabled() const { } int CanvasItem::get_canvas_layer() const { - if (canvas_layer) return canvas_layer->get_layer(); else @@ -1377,7 +1277,6 @@ int CanvasItem::get_canvas_layer() const { } void CanvasItem::_update_texture_filter_changed(bool p_propagate) { - if (!is_inside_tree()) { return; } @@ -1434,7 +1333,6 @@ CanvasItem::TextureFilter CanvasItem::get_texture_filter() const { } void CanvasItem::_update_texture_repeat_changed(bool p_propagate) { - if (!is_inside_tree()) { return; } @@ -1488,7 +1386,6 @@ CanvasItem::TextureRepeat CanvasItem::get_texture_repeat() const { CanvasItem::CanvasItem() : xform_change(this) { - window = nullptr; canvas_item = RenderingServer::get_singleton()->canvas_item_create(); visible = true; @@ -1515,6 +1412,5 @@ CanvasItem::CanvasItem() : } CanvasItem::~CanvasItem() { - RenderingServer::get_singleton()->free(canvas_item); } diff --git a/scene/main/canvas_item.h b/scene/main/canvas_item.h index 805659376a..5ba014b735 100644 --- a/scene/main/canvas_item.h +++ b/scene/main/canvas_item.h @@ -45,7 +45,6 @@ class Font; class StyleBox; class CanvasItemMaterial : public Material { - GDCLASS(CanvasItemMaterial, Material); public: @@ -66,7 +65,6 @@ public: private: union MaterialKey { - struct { uint32_t blend_mode : 4; uint32_t light_mode : 4; @@ -99,7 +97,6 @@ private: MaterialKey current_key; _FORCE_INLINE_ MaterialKey _compute_key() const { - MaterialKey mk; mk.key = 0; mk.blend_mode = blend_mode; @@ -162,7 +159,6 @@ VARIANT_ENUM_CAST(CanvasItemMaterial::BlendMode) VARIANT_ENUM_CAST(CanvasItemMaterial::LightMode) class CanvasItem : public Node { - GDCLASS(CanvasItem, Node); public: diff --git a/scene/main/canvas_layer.cpp b/scene/main/canvas_layer.cpp index c1caa943e3..bee62246db 100644 --- a/scene/main/canvas_layer.cpp +++ b/scene/main/canvas_layer.cpp @@ -32,19 +32,16 @@ #include "viewport.h" void CanvasLayer::set_layer(int p_xform) { - layer = p_xform; if (viewport.is_valid()) RenderingServer::get_singleton()->viewport_set_canvas_stacking(viewport, canvas, layer, get_index()); } int CanvasLayer::get_layer() const { - return layer; } void CanvasLayer::set_transform(const Transform2D &p_xform) { - transform = p_xform; locrotscale_dirty = true; if (viewport.is_valid()) @@ -52,12 +49,10 @@ void CanvasLayer::set_transform(const Transform2D &p_xform) { } Transform2D CanvasLayer::get_transform() const { - return transform; } void CanvasLayer::_update_xform() { - transform.set_rotation_and_scale(rot, scale); transform.set_origin(ofs); if (viewport.is_valid()) @@ -65,7 +60,6 @@ void CanvasLayer::_update_xform() { } void CanvasLayer::_update_locrotscale() { - ofs = transform.elements[2]; rot = transform.get_rotation(); scale = transform.get_scale(); @@ -73,7 +67,6 @@ void CanvasLayer::_update_locrotscale() { } void CanvasLayer::set_offset(const Vector2 &p_offset) { - if (locrotscale_dirty) _update_locrotscale(); @@ -82,7 +75,6 @@ void CanvasLayer::set_offset(const Vector2 &p_offset) { } Vector2 CanvasLayer::get_offset() const { - if (locrotscale_dirty) const_cast<CanvasLayer *>(this)->_update_locrotscale(); @@ -90,7 +82,6 @@ Vector2 CanvasLayer::get_offset() const { } void CanvasLayer::set_rotation(real_t p_radians) { - if (locrotscale_dirty) _update_locrotscale(); @@ -99,7 +90,6 @@ void CanvasLayer::set_rotation(real_t p_radians) { } real_t CanvasLayer::get_rotation() const { - if (locrotscale_dirty) const_cast<CanvasLayer *>(this)->_update_locrotscale(); @@ -107,17 +97,14 @@ real_t CanvasLayer::get_rotation() const { } void CanvasLayer::set_rotation_degrees(real_t p_degrees) { - set_rotation(Math::deg2rad(p_degrees)); } real_t CanvasLayer::get_rotation_degrees() const { - return Math::rad2deg(get_rotation()); } void CanvasLayer::set_scale(const Vector2 &p_scale) { - if (locrotscale_dirty) _update_locrotscale(); @@ -126,7 +113,6 @@ void CanvasLayer::set_scale(const Vector2 &p_scale) { } Vector2 CanvasLayer::get_scale() const { - if (locrotscale_dirty) const_cast<CanvasLayer *>(this)->_update_locrotscale(); @@ -134,13 +120,9 @@ Vector2 CanvasLayer::get_scale() const { } void CanvasLayer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - if (custom_viewport && ObjectDB::get_instance(custom_viewport_id)) { - vp = custom_viewport; } else { vp = Node::get_viewport(); @@ -157,7 +139,6 @@ void CanvasLayer::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - vp->_canvas_layer_remove(this); RenderingServer::get_singleton()->viewport_remove_canvas(viewport, canvas); viewport = RID(); @@ -165,7 +146,6 @@ void CanvasLayer::_notification(int p_what) { } break; case NOTIFICATION_MOVED_IN_PARENT: { - if (is_inside_tree()) RenderingServer::get_singleton()->viewport_set_canvas_stacking(viewport, canvas, layer, get_index()); @@ -174,7 +154,6 @@ void CanvasLayer::_notification(int p_what) { } Size2 CanvasLayer::get_viewport_size() const { - if (!is_inside_tree()) return Size2(1, 1); @@ -183,7 +162,6 @@ Size2 CanvasLayer::get_viewport_size() const { } RID CanvasLayer::get_viewport() const { - return viewport; } @@ -204,7 +182,6 @@ void CanvasLayer::set_custom_viewport(Node *p_viewport) { } if (is_inside_tree()) { - if (custom_viewport) vp = custom_viewport; else @@ -220,7 +197,6 @@ void CanvasLayer::set_custom_viewport(Node *p_viewport) { } Node *CanvasLayer::get_custom_viewport() const { - return custom_viewport; } @@ -229,12 +205,10 @@ void CanvasLayer::reset_sort_index() { } int CanvasLayer::get_sort_index() { - return sort_index++; } RID CanvasLayer::get_canvas() const { - return canvas; } @@ -261,7 +235,6 @@ float CanvasLayer::get_follow_viewport_scale() const { } void CanvasLayer::_update_follow_viewport(bool p_force_exit) { - if (!is_inside_tree()) { return; } @@ -273,7 +246,6 @@ void CanvasLayer::_update_follow_viewport(bool p_force_exit) { } void CanvasLayer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_layer", "layer"), &CanvasLayer::set_layer); ClassDB::bind_method(D_METHOD("get_layer"), &CanvasLayer::get_layer); @@ -319,7 +291,6 @@ void CanvasLayer::_bind_methods() { } CanvasLayer::CanvasLayer() { - vp = nullptr; scale = Vector2(1, 1); rot = 0; @@ -334,6 +305,5 @@ CanvasLayer::CanvasLayer() { } CanvasLayer::~CanvasLayer() { - RS::get_singleton()->free(canvas); } diff --git a/scene/main/canvas_layer.h b/scene/main/canvas_layer.h index 91ddbca3b9..0c68b1ab69 100644 --- a/scene/main/canvas_layer.h +++ b/scene/main/canvas_layer.h @@ -36,7 +36,6 @@ class Viewport; class CanvasLayer : public Node { - GDCLASS(CanvasLayer, Node); bool locrotscale_dirty; diff --git a/scene/main/http_request.cpp b/scene/main/http_request.cpp index dc0da015ac..d9280a96d2 100644 --- a/scene/main/http_request.cpp +++ b/scene/main/http_request.cpp @@ -34,12 +34,10 @@ void HTTPRequest::_redirect_request(const String &p_new_url) { } Error HTTPRequest::_request() { - return client->connect_to_host(url, port, use_ssl, validate_ssl); } Error HTTPRequest::_parse_url(const String &p_url) { - url = p_url; use_ssl = false; @@ -85,7 +83,6 @@ Error HTTPRequest::_parse_url(const String &p_url) { } Error HTTPRequest::request(const String &p_url, const Vector<String> &p_custom_headers, bool p_ssl_validate_domain, HTTPClient::Method p_method, const String &p_request_data) { - ERR_FAIL_COND_V(!is_inside_tree(), ERR_UNCONFIGURED); ERR_FAIL_COND_V_MSG(requesting, ERR_BUSY, "HTTPRequest is processing a request. Wait for completion or cancel it before attempting a new one."); @@ -109,7 +106,6 @@ Error HTTPRequest::request(const String &p_url, const Vector<String> &p_custom_h requesting = true; if (use_threads) { - thread_done = false; thread_request_quit = false; client->set_blocking_mode(true); @@ -129,7 +125,6 @@ Error HTTPRequest::request(const String &p_url, const Vector<String> &p_custom_h } void HTTPRequest::_thread_func(void *p_userdata) { - HTTPRequest *hr = (HTTPRequest *)p_userdata; Error err = hr->_request(); @@ -138,7 +133,6 @@ void HTTPRequest::_thread_func(void *p_userdata) { hr->call_deferred("_request_done", RESULT_CANT_CONNECT, 0, PackedStringArray(), PackedByteArray()); } else { while (!hr->thread_request_quit) { - bool exit = hr->_update_connection(); if (exit) break; @@ -150,7 +144,6 @@ void HTTPRequest::_thread_func(void *p_userdata) { } void HTTPRequest::cancel_request() { - timer->stop(); if (!requesting) @@ -178,7 +171,6 @@ void HTTPRequest::cancel_request() { } bool HTTPRequest::_handle_response(bool *ret_value) { - if (!client->has_response()) { call_deferred("_request_done", RESULT_NO_RESPONSE, 0, PackedStringArray(), PackedByteArray()); *ret_value = true; @@ -199,7 +191,6 @@ bool HTTPRequest::_handle_response(bool *ret_value) { // Handle redirect if (max_redirects >= 0 && redirections >= max_redirects) { - call_deferred("_request_done", RESULT_REDIRECT_LIMIT_REACHED, response_code, response_headers, PackedByteArray()); *ret_value = true; return true; @@ -243,7 +234,6 @@ bool HTTPRequest::_handle_response(bool *ret_value) { } bool HTTPRequest::_update_connection() { - switch (client->get_status()) { case HTTPClient::STATUS_DISCONNECTED: { call_deferred("_request_done", RESULT_CANT_CONNECT, 0, PackedStringArray(), PackedByteArray()); @@ -265,17 +255,13 @@ bool HTTPRequest::_update_connection() { return false; } break; // Connecting to IP case HTTPClient::STATUS_CANT_CONNECT: { - call_deferred("_request_done", RESULT_CANT_CONNECT, 0, PackedStringArray(), PackedByteArray()); return true; } break; case HTTPClient::STATUS_CONNECTED: { - if (request_sent) { - if (!got_response) { - // No body bool ret_value; @@ -315,16 +301,13 @@ bool HTTPRequest::_update_connection() { } break; // Request in progress case HTTPClient::STATUS_BODY: { - if (!got_response) { - bool ret_value; if (_handle_response(&ret_value)) return ret_value; if (!client->is_response_chunked() && client->get_response_body_length() == 0) { - call_deferred("_request_done", RESULT_SUCCESS, response_code, response_headers, PackedByteArray()); return true; } @@ -341,7 +324,6 @@ bool HTTPRequest::_update_connection() { if (download_to_file != String()) { file = FileAccess::open(download_to_file, FileAccess::WRITE); if (!file) { - call_deferred("_request_done", RESULT_DOWNLOAD_FILE_CANT_OPEN, response_code, response_headers, PackedByteArray()); return true; } @@ -370,7 +352,6 @@ bool HTTPRequest::_update_connection() { } if (body_len >= 0) { - if (downloaded == body_len) { call_deferred("_request_done", RESULT_SUCCESS, response_code, response_headers, body); return true; @@ -397,20 +378,16 @@ bool HTTPRequest::_update_connection() { } void HTTPRequest::_request_done(int p_status, int p_code, const PackedStringArray &headers, const PackedByteArray &p_data) { - cancel_request(); emit_signal("request_completed", p_status, p_code, headers, p_data); } void HTTPRequest::_notification(int p_what) { - if (p_what == NOTIFICATION_INTERNAL_PROCESS) { - if (use_threads) return; bool done = _update_connection(); if (done) { - set_process_internal(false); // cancel_request(); called from _request done now } @@ -424,42 +401,35 @@ void HTTPRequest::_notification(int p_what) { } void HTTPRequest::set_use_threads(bool p_use) { - ERR_FAIL_COND(get_http_client_status() != HTTPClient::STATUS_DISCONNECTED); use_threads = p_use; } bool HTTPRequest::is_using_threads() const { - return use_threads; } void HTTPRequest::set_body_size_limit(int p_bytes) { - ERR_FAIL_COND(get_http_client_status() != HTTPClient::STATUS_DISCONNECTED); body_size_limit = p_bytes; } int HTTPRequest::get_body_size_limit() const { - return body_size_limit; } void HTTPRequest::set_download_file(const String &p_file) { - ERR_FAIL_COND(get_http_client_status() != HTTPClient::STATUS_DISCONNECTED); download_to_file = p_file; } String HTTPRequest::get_download_file() const { - return download_to_file; } void HTTPRequest::set_download_chunk_size(int p_chunk_size) { - ERR_FAIL_COND(get_http_client_status() != HTTPClient::STATUS_DISCONNECTED); client->set_read_chunk_size(p_chunk_size); @@ -474,17 +444,14 @@ HTTPClient::Status HTTPRequest::get_http_client_status() const { } void HTTPRequest::set_max_redirects(int p_max) { - max_redirects = p_max; } int HTTPRequest::get_max_redirects() const { - return max_redirects; } int HTTPRequest::get_downloaded_bytes() const { - return downloaded; } int HTTPRequest::get_body_size() const { @@ -492,24 +459,20 @@ int HTTPRequest::get_body_size() const { } void HTTPRequest::set_timeout(int p_timeout) { - ERR_FAIL_COND(p_timeout < 0); timeout = p_timeout; } int HTTPRequest::get_timeout() { - return timeout; } void HTTPRequest::_timeout() { - cancel_request(); call_deferred("_request_done", RESULT_TIMEOUT, 0, PackedStringArray(), PackedByteArray()); } void HTTPRequest::_bind_methods() { - ClassDB::bind_method(D_METHOD("request", "url", "custom_headers", "ssl_validate_domain", "method", "request_data"), &HTTPRequest::request, DEFVAL(PackedStringArray()), DEFVAL(true), DEFVAL(HTTPClient::METHOD_GET), DEFVAL(String())); ClassDB::bind_method(D_METHOD("cancel_request"), &HTTPRequest::cancel_request); @@ -565,7 +528,6 @@ void HTTPRequest::_bind_methods() { } HTTPRequest::HTTPRequest() { - thread = nullptr; port = 80; diff --git a/scene/main/http_request.h b/scene/main/http_request.h index a3d95cd652..1409965d45 100644 --- a/scene/main/http_request.h +++ b/scene/main/http_request.h @@ -38,7 +38,6 @@ #include "scene/main/timer.h" class HTTPRequest : public Node { - GDCLASS(HTTPRequest, Node); public: diff --git a/scene/main/instance_placeholder.cpp b/scene/main/instance_placeholder.cpp index 062b221c84..d81cd777d8 100644 --- a/scene/main/instance_placeholder.cpp +++ b/scene/main/instance_placeholder.cpp @@ -34,7 +34,6 @@ #include "scene/resources/packed_scene.h" bool InstancePlaceholder::_set(const StringName &p_name, const Variant &p_value) { - PropSet ps; ps.name = p_name; ps.value = p_value; @@ -43,7 +42,6 @@ bool InstancePlaceholder::_set(const StringName &p_name, const Variant &p_value) } bool InstancePlaceholder::_get(const StringName &p_name, Variant &r_ret) const { - for (const List<PropSet>::Element *E = stored_values.front(); E; E = E->next()) { if (E->get().name == p_name) { r_ret = E->get().value; @@ -54,7 +52,6 @@ bool InstancePlaceholder::_get(const StringName &p_name, Variant &r_ret) const { } void InstancePlaceholder::_get_property_list(List<PropertyInfo> *p_list) const { - for (const List<PropSet>::Element *E = stored_values.front(); E; E = E->next()) { PropertyInfo pi; pi.name = E->get().name; @@ -66,17 +63,14 @@ void InstancePlaceholder::_get_property_list(List<PropertyInfo> *p_list) const { } void InstancePlaceholder::set_instance_path(const String &p_name) { - path = p_name; } String InstancePlaceholder::get_instance_path() const { - return path; } Node *InstancePlaceholder::create_instance(bool p_replace, const Ref<PackedScene> &p_custom_scene) { - ERR_FAIL_COND_V(!is_inside_tree(), nullptr); Node *base = get_parent(); @@ -113,7 +107,6 @@ Node *InstancePlaceholder::create_instance(bool p_replace, const Ref<PackedScene } Dictionary InstancePlaceholder::get_stored_values(bool p_with_order) { - Dictionary ret; PackedStringArray order; @@ -130,7 +123,6 @@ Dictionary InstancePlaceholder::get_stored_values(bool p_with_order) { }; void InstancePlaceholder::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_stored_values", "with_order"), &InstancePlaceholder::get_stored_values, DEFVAL(false)); ClassDB::bind_method(D_METHOD("create_instance", "replace", "custom_scene"), &InstancePlaceholder::create_instance, DEFVAL(false), DEFVAL(Variant())); ClassDB::bind_method(D_METHOD("get_instance_path"), &InstancePlaceholder::get_instance_path); diff --git a/scene/main/instance_placeholder.h b/scene/main/instance_placeholder.h index 9f7b84716d..ec1f8a9b09 100644 --- a/scene/main/instance_placeholder.h +++ b/scene/main/instance_placeholder.h @@ -36,7 +36,6 @@ class PackedScene; class InstancePlaceholder : public Node { - GDCLASS(InstancePlaceholder, Node); String path; diff --git a/scene/main/node.cpp b/scene/main/node.cpp index 3d56b51e26..0f71606c0e 100644 --- a/scene/main/node.cpp +++ b/scene/main/node.cpp @@ -51,22 +51,16 @@ VARIANT_ENUM_CAST(Node::PauseMode); int Node::orphan_node_count = 0; void Node::_notification(int p_notification) { - switch (p_notification) { - case NOTIFICATION_PROCESS: { - if (get_script_instance()) { - Variant time = get_process_delta_time(); const Variant *ptr[1] = { &time }; get_script_instance()->call_multilevel(SceneStringNames::get_singleton()->_process, ptr, 1); } } break; case NOTIFICATION_PHYSICS_PROCESS: { - if (get_script_instance()) { - Variant time = get_physics_process_delta_time(); const Variant *ptr[1] = { &time }; get_script_instance()->call_multilevel(SceneStringNames::get_singleton()->_physics_process, ptr, 1); @@ -78,7 +72,6 @@ void Node::_notification(int p_notification) { ERR_FAIL_COND(!get_tree()); if (data.pause_mode == PAUSE_MODE_INHERIT) { - if (data.parent) data.pause_owner = data.parent->data.pause_owner; else @@ -119,16 +112,13 @@ void Node::_notification(int p_notification) { } } break; case NOTIFICATION_PATH_CHANGED: { - if (data.path_cache) { memdelete(data.path_cache); data.path_cache = nullptr; } } break; case NOTIFICATION_READY: { - if (get_script_instance()) { - if (get_script_instance()->has_method(SceneStringNames::get_singleton()->_input)) { set_process_input(true); } @@ -157,22 +147,18 @@ void Node::_notification(int p_notification) { data.in_constructor = false; } break; case NOTIFICATION_PREDELETE: { - set_owner(nullptr); while (data.owned.size()) { - data.owned.front()->get()->set_owner(nullptr); } if (data.parent) { - data.parent->remove_child(this); } // kill children as cleanly as possible while (data.children.size()) { - Node *child = data.children[data.children.size() - 1]; //begin from the end because its faster and more consistent with creation remove_child(child); memdelete(child); @@ -183,11 +169,9 @@ void Node::_notification(int p_notification) { } void Node::_propagate_ready() { - data.ready_notified = true; data.blocked++; for (int i = 0; i < data.children.size(); i++) { - data.children[i]->_propagate_ready(); } data.blocked--; @@ -208,7 +192,6 @@ void Node::_propagate_enter_tree() { data.tree = data.parent->data.tree; data.depth = data.parent->data.depth + 1; } else { - data.depth = 1; } @@ -225,7 +208,6 @@ void Node::_propagate_enter_tree() { notification(NOTIFICATION_ENTER_TREE); if (get_script_instance()) { - get_script_instance()->call_multilevel_reversed(SceneStringNames::get_singleton()->_enter_tree, nullptr, 0); } @@ -237,7 +219,6 @@ void Node::_propagate_enter_tree() { //block while adding children for (int i = 0; i < data.children.size(); i++) { - if (!data.children[i]->is_inside_tree()) // could have been added in enter_tree data.children[i]->_propagate_enter_tree(); } @@ -251,7 +232,6 @@ void Node::_propagate_enter_tree() { } void Node::_propagate_after_exit_tree() { - data.blocked++; for (int i = 0; i < data.children.size(); i++) { data.children[i]->_propagate_after_exit_tree(); @@ -261,7 +241,6 @@ void Node::_propagate_after_exit_tree() { } void Node::_propagate_exit_tree() { - //block while removing children #ifdef DEBUG_ENABLED @@ -270,14 +249,12 @@ void Node::_propagate_exit_tree() { data.blocked++; for (int i = data.children.size() - 1; i >= 0; i--) { - data.children[i]->_propagate_exit_tree(); } data.blocked--; if (get_script_instance()) { - get_script_instance()->call_multilevel(SceneStringNames::get_singleton()->_exit_tree, nullptr, 0); } emit_signal(SceneStringNames::get_singleton()->tree_exiting); @@ -305,7 +282,6 @@ void Node::_propagate_exit_tree() { } void Node::move_child(Node *p_child, int p_pos) { - ERR_FAIL_NULL(p_child); ERR_FAIL_INDEX_MSG(p_pos, data.children.size() + 1, "Invalid new child position: " + itos(p_pos) + "."); ERR_FAIL_COND_MSG(p_child->data.parent != this, "Child is not a child of this node."); @@ -332,7 +308,6 @@ void Node::move_child(Node *p_child, int p_pos) { data.blocked++; //new pos first for (int i = motion_from; i <= motion_to; i++) { - data.children[i]->data.pos = i; } // notification second @@ -349,7 +324,6 @@ void Node::move_child(Node *p_child, int p_pos) { } void Node::raise() { - if (!data.parent) return; @@ -357,22 +331,18 @@ void Node::raise() { } void Node::add_child_notify(Node *p_child) { - // to be used when not wanted } void Node::remove_child_notify(Node *p_child) { - // to be used when not wanted } void Node::move_child_notify(Node *p_child) { - // to be used when not wanted } void Node::set_physics_process(bool p_process) { - if (data.physics_process == p_process) return; @@ -387,12 +357,10 @@ void Node::set_physics_process(bool p_process) { } bool Node::is_physics_processing() const { - return data.physics_process; } void Node::set_physics_process_internal(bool p_process_internal) { - if (data.physics_process_internal == p_process_internal) return; @@ -407,12 +375,10 @@ void Node::set_physics_process_internal(bool p_process_internal) { } bool Node::is_physics_processing_internal() const { - return data.physics_process_internal; } void Node::set_pause_mode(PauseMode p_mode) { - if (data.pause_mode == p_mode) return; @@ -426,7 +392,6 @@ void Node::set_pause_mode(PauseMode p_mode) { Node *owner = nullptr; if (data.pause_mode == PAUSE_MODE_INHERIT) { - if (data.parent) owner = data.parent->data.pause_owner; } else { @@ -437,40 +402,33 @@ void Node::set_pause_mode(PauseMode p_mode) { } Node::PauseMode Node::get_pause_mode() const { - return data.pause_mode; } void Node::_propagate_pause_owner(Node *p_owner) { - if (this != p_owner && data.pause_mode != PAUSE_MODE_INHERIT) return; data.pause_owner = p_owner; for (int i = 0; i < data.children.size(); i++) { - data.children[i]->_propagate_pause_owner(p_owner); } } void Node::set_network_master(int p_peer_id, bool p_recursive) { - data.network_master = p_peer_id; if (p_recursive) { for (int i = 0; i < data.children.size(); i++) { - data.children[i]->set_network_master(p_peer_id, true); } } } int Node::get_network_master() const { - return data.network_master; } bool Node::is_network_master() const { - ERR_FAIL_COND_V(!is_inside_tree(), false); return get_multiplayer()->get_network_unique_id() == data.network_master; @@ -479,7 +437,6 @@ bool Node::is_network_master() const { /***** RPC CONFIG ********/ uint16_t Node::rpc_config(const StringName &p_method, MultiplayerAPI::RPCMode p_mode) { - uint16_t mid = get_node_rpc_method_id(p_method); if (mid == UINT16_MAX) { // It's new @@ -496,7 +453,6 @@ uint16_t Node::rpc_config(const StringName &p_method, MultiplayerAPI::RPCMode p_ } uint16_t Node::rset_config(const StringName &p_property, MultiplayerAPI::RPCMode p_mode) { - uint16_t pid = get_node_rset_property_id(p_property); if (pid == UINT16_MAX) { // It's new @@ -515,7 +471,6 @@ uint16_t Node::rset_config(const StringName &p_property, MultiplayerAPI::RPCMode /***** RPC FUNCTIONS ********/ void Node::rpc(const StringName &p_method, VARIANT_ARG_DECLARE) { - VARIANT_ARGPTRS; int argc = 0; @@ -529,7 +484,6 @@ void Node::rpc(const StringName &p_method, VARIANT_ARG_DECLARE) { } void Node::rpc_id(int p_peer_id, const StringName &p_method, VARIANT_ARG_DECLARE) { - VARIANT_ARGPTRS; int argc = 0; @@ -543,7 +497,6 @@ void Node::rpc_id(int p_peer_id, const StringName &p_method, VARIANT_ARG_DECLARE } void Node::rpc_unreliable(const StringName &p_method, VARIANT_ARG_DECLARE) { - VARIANT_ARGPTRS; int argc = 0; @@ -557,7 +510,6 @@ void Node::rpc_unreliable(const StringName &p_method, VARIANT_ARG_DECLARE) { } void Node::rpc_unreliable_id(int p_peer_id, const StringName &p_method, VARIANT_ARG_DECLARE) { - VARIANT_ARGPTRS; int argc = 0; @@ -571,7 +523,6 @@ void Node::rpc_unreliable_id(int p_peer_id, const StringName &p_method, VARIANT_ } Variant Node::_rpc_bind(const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - if (p_argcount < 1) { r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS; r_error.argument = 1; @@ -594,7 +545,6 @@ Variant Node::_rpc_bind(const Variant **p_args, int p_argcount, Callable::CallEr } Variant Node::_rpc_id_bind(const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - if (p_argcount < 2) { r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS; r_error.argument = 2; @@ -625,7 +575,6 @@ Variant Node::_rpc_id_bind(const Variant **p_args, int p_argcount, Callable::Cal } Variant Node::_rpc_unreliable_bind(const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - if (p_argcount < 1) { r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS; r_error.argument = 1; @@ -648,7 +597,6 @@ Variant Node::_rpc_unreliable_bind(const Variant **p_args, int p_argcount, Calla } Variant Node::_rpc_unreliable_id_bind(const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - if (p_argcount < 2) { r_error.error = Callable::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS; r_error.argument = 2; @@ -690,22 +638,18 @@ void Node::rsetp(int p_peer_id, bool p_unreliable, const StringName &p_property, /******** RSET *********/ void Node::rset(const StringName &p_property, const Variant &p_value) { - rsetp(0, false, p_property, p_value); } void Node::rset_id(int p_peer_id, const StringName &p_property, const Variant &p_value) { - rsetp(p_peer_id, false, p_property, p_value); } void Node::rset_unreliable(const StringName &p_property, const Variant &p_value) { - rsetp(0, true, p_property, p_value); } void Node::rset_unreliable_id(int p_peer_id, const StringName &p_property, const Variant &p_value) { - rsetp(p_peer_id, true, p_property, p_value); } @@ -723,7 +667,6 @@ Ref<MultiplayerAPI> Node::get_custom_multiplayer() const { } void Node::set_custom_multiplayer(Ref<MultiplayerAPI> p_multiplayer) { - multiplayer = p_multiplayer; } @@ -833,17 +776,14 @@ bool Node::can_process_notification(int p_what) const { } bool Node::can_process() const { - ERR_FAIL_COND_V(!is_inside_tree(), false); if (get_tree()->is_paused()) { - if (data.pause_mode == PAUSE_MODE_STOP) return false; if (data.pause_mode == PAUSE_MODE_PROCESS) return true; if (data.pause_mode == PAUSE_MODE_INHERIT) { - if (!data.pause_owner) return false; //clearly no pause owner by default @@ -859,7 +799,6 @@ bool Node::can_process() const { } float Node::get_physics_process_delta_time() const { - if (data.tree) return data.tree->get_physics_process_time(); else @@ -867,7 +806,6 @@ float Node::get_physics_process_delta_time() const { } float Node::get_process_delta_time() const { - if (data.tree) return data.tree->get_idle_process_time(); else @@ -875,7 +813,6 @@ float Node::get_process_delta_time() const { } void Node::set_process(bool p_idle_process) { - if (data.idle_process == p_idle_process) return; @@ -890,12 +827,10 @@ void Node::set_process(bool p_idle_process) { } bool Node::is_processing() const { - return data.idle_process; } void Node::set_process_internal(bool p_idle_process_internal) { - if (data.idle_process_internal == p_idle_process_internal) return; @@ -910,7 +845,6 @@ void Node::set_process_internal(bool p_idle_process_internal) { } bool Node::is_processing_internal() const { - return data.idle_process_internal; } @@ -940,12 +874,10 @@ void Node::set_process_priority(int p_priority) { } int Node::get_process_priority() const { - return data.process_priority; } void Node::set_process_input(bool p_enable) { - if (p_enable == data.input) return; @@ -964,7 +896,6 @@ bool Node::is_processing_input() const { } void Node::set_process_unhandled_input(bool p_enable) { - if (p_enable == data.unhandled_input) return; data.unhandled_input = p_enable; @@ -982,7 +913,6 @@ bool Node::is_processing_unhandled_input() const { } void Node::set_process_unhandled_key_input(bool p_enable) { - if (p_enable == data.unhandled_key_input) return; data.unhandled_key_input = p_enable; @@ -1000,12 +930,10 @@ bool Node::is_processing_unhandled_key_input() const { } StringName Node::get_name() const { - return data.name; } void Node::_set_name_nocheck(const StringName &p_name) { - data.name = p_name; } @@ -1023,7 +951,6 @@ bool Node::_validate_node_name(String &p_name) { } void Node::set_name(const String &p_name) { - String name = p_name; _validate_node_name(name); @@ -1031,14 +958,12 @@ void Node::set_name(const String &p_name) { data.name = name; if (data.parent) { - data.parent->_validate_child_name(this); } propagate_notification(NOTIFICATION_PATH_CHANGED); if (is_inside_tree()) { - emit_signal("renamed"); get_tree()->node_renamed(this); get_tree()->tree_changed(); @@ -1053,13 +978,11 @@ void Node::init_node_hrcr() { } void Node::set_human_readable_collision_renaming(bool p_enabled) { - node_hrcr = p_enabled; } #ifdef TOOLS_ENABLED String Node::validate_child_name(Node *p_child) { - StringName name = p_child->data.name; _generate_serial_child_name(p_child, name); return name; @@ -1067,11 +990,9 @@ String Node::validate_child_name(Node *p_child) { #endif void Node::_validate_child_name(Node *p_child, bool p_force_human_readable) { - /* Make sure the name is unique */ if (node_hrcr || p_force_human_readable) { - //this approach to autoset node names is human readable but very slow //it's turned on while running in the editor @@ -1080,7 +1001,6 @@ void Node::_validate_child_name(Node *p_child, bool p_force_human_readable) { p_child->data.name = name; } else { - //this approach to autoset node names is fast but not as readable //it's the default and reserves the '@' character for unique names. @@ -1105,7 +1025,6 @@ void Node::_validate_child_name(Node *p_child, bool p_force_human_readable) { } if (!unique) { - ERR_FAIL_COND(!node_hrcr_count.ref()); String name = "@" + String(p_child->get_name()) + "@" + itos(node_hrcr_count.get()); p_child->data.name = name; @@ -1115,7 +1034,6 @@ void Node::_validate_child_name(Node *p_child, bool p_force_human_readable) { // Return s + 1 as if it were an integer String increase_numeric_string(const String &s) { - String res = s; bool carry = res.length() > 0; @@ -1140,7 +1058,6 @@ String increase_numeric_string(const String &s) { } void Node::_generate_serial_child_name(const Node *p_child, StringName &name) const { - if (name == StringName()) { //no name and a new nade is needed, create one. @@ -1165,7 +1082,6 @@ void Node::_generate_serial_child_name(const Node *p_child, StringName &name) co const Node *const *children_ptr = data.children.ptr(); { - bool exists = false; for (int i = 0; i < cc; i++) { @@ -1252,7 +1168,6 @@ void Node::_add_child_nocheck(Node *p_child, const StringName &p_name) { } void Node::add_child(Node *p_child, bool p_legible_unique_name) { - ERR_FAIL_NULL(p_child); ERR_FAIL_COND_MSG(p_child == this, "Can't add child '" + p_child->get_name() + "' to itself."); // adding to itself! ERR_FAIL_COND_MSG(p_child->data.parent, "Can't add child '" + p_child->get_name() + "' to '" + get_name() + "', already has a parent '" + p_child->data.parent->get_name() + "'."); //Fail if node has a parent @@ -1265,7 +1180,6 @@ void Node::add_child(Node *p_child, bool p_legible_unique_name) { } void Node::add_child_below_node(Node *p_node, Node *p_child, bool p_legible_unique_name) { - ERR_FAIL_NULL(p_node); ERR_FAIL_NULL(p_child); @@ -1279,16 +1193,12 @@ void Node::add_child_below_node(Node *p_node, Node *p_child, bool p_legible_uniq } void Node::_propagate_validate_owner() { - if (data.owner) { - bool found = false; Node *parent = data.parent; while (parent) { - if (parent == data.owner) { - found = true; break; } @@ -1297,20 +1207,17 @@ void Node::_propagate_validate_owner() { } if (!found) { - data.owner->data.owned.erase(data.OW); data.owner = nullptr; } } for (int i = 0; i < data.children.size(); i++) { - data.children[i]->_propagate_validate_owner(); } } void Node::remove_child(Node *p_child) { - ERR_FAIL_NULL(p_child); ERR_FAIL_COND_MSG(data.blocked > 0, "Parent node is busy setting up children, remove_node() failed. Consider using call_deferred(\"remove_child\", child) instead."); @@ -1326,9 +1233,7 @@ void Node::remove_child(Node *p_child) { if (idx == -1) { //maybe removed while unparenting or something and index was not updated, so just in case the above fails, try this. for (int i = 0; i < child_count; i++) { - if (children[i] == p_child) { - idx = i; break; } @@ -1353,7 +1258,6 @@ void Node::remove_child(Node *p_child) { children = data.children.ptrw(); for (int i = idx; i < child_count; i++) { - children[i]->data.pos = i; children[i]->notification(NOTIFICATION_MOVED_IN_PARENT); } @@ -1370,18 +1274,15 @@ void Node::remove_child(Node *p_child) { } int Node::get_child_count() const { - return data.children.size(); } Node *Node::get_child(int p_index) const { - ERR_FAIL_INDEX_V(p_index, data.children.size(), nullptr); return data.children[p_index]; } Node *Node::_get_child_by_name(const StringName &p_name) const { - int cc = data.children.size(); Node *const *cd = data.children.ptr(); @@ -1394,7 +1295,6 @@ Node *Node::_get_child_by_name(const StringName &p_name) const { } Node *Node::get_node_or_null(const NodePath &p_path) const { - if (p_path.is_empty()) { return nullptr; } @@ -1407,14 +1307,12 @@ Node *Node::get_node_or_null(const NodePath &p_path) const { if (!p_path.is_absolute()) { current = const_cast<Node *>(this); //start from this } else { - root = const_cast<Node *>(this); while (root->data.parent) root = root->data.parent; //start from root } for (int i = 0; i < p_path.get_name_count(); i++) { - StringName name = p_path.get_name(i); Node *next = nullptr; @@ -1429,20 +1327,16 @@ Node *Node::get_node_or_null(const NodePath &p_path) const { next = current->data.parent; } else if (current == nullptr) { - if (name == root->get_name()) next = root; } else { - next = nullptr; for (int j = 0; j < current->data.children.size(); j++) { - Node *child = current->data.children[j]; if (child->data.name == name) { - next = child; break; } @@ -1458,19 +1352,16 @@ Node *Node::get_node_or_null(const NodePath &p_path) const { } Node *Node::get_node(const NodePath &p_path) const { - Node *node = get_node_or_null(p_path); ERR_FAIL_COND_V_MSG(!node, nullptr, "Node not found: " + p_path + "."); return node; } bool Node::has_node(const NodePath &p_path) const { - return get_node_or_null(p_path) != nullptr; } Node *Node::find_node(const String &p_mask, bool p_recursive, bool p_owned) const { - Node *const *cptr = data.children.ptr(); int ccount = data.children.size(); for (int i = 0; i < ccount; i++) { @@ -1490,15 +1381,12 @@ Node *Node::find_node(const String &p_mask, bool p_recursive, bool p_owned) cons } Node *Node::get_parent() const { - return data.parent; } Node *Node::find_parent(const String &p_mask) const { - Node *p = data.parent; while (p) { - if (p->data.name.operator String().match(p_mask)) return p; p = p->data.parent; @@ -1508,11 +1396,9 @@ Node *Node::find_parent(const String &p_mask) const { } bool Node::is_a_parent_of(const Node *p_node) const { - ERR_FAIL_NULL_V(p_node, false); Node *p = p_node->data.parent; while (p) { - if (p == this) return true; p = p->data.parent; @@ -1522,7 +1408,6 @@ bool Node::is_a_parent_of(const Node *p_node) const { } bool Node::is_greater_than(const Node *p_node) const { - ERR_FAIL_NULL_V(p_node, false); ERR_FAIL_COND_V(!data.inside_tree, false); ERR_FAIL_COND_V(!p_node->data.inside_tree, false); @@ -1565,7 +1450,6 @@ bool Node::is_greater_than(const Node *p_node) const { bool res; while (true) { - // using -2 since out-of-tree or nonroot nodes have -1 int this_idx = (idx >= data.depth) ? -2 : this_stack[idx]; int that_idx = (idx >= p_node->data.depth) ? -2 : that_stack[idx]; @@ -1587,7 +1471,6 @@ bool Node::is_greater_than(const Node *p_node) const { } void Node::get_owned_by(Node *p_by, List<Node *> *p_owned) { - if (data.owner == p_by) p_owned->push_back(this); @@ -1596,7 +1479,6 @@ void Node::get_owned_by(Node *p_by, List<Node *> *p_owned) { } void Node::_set_owner_nocheck(Node *p_owner) { - if (data.owner == p_owner) return; @@ -1607,9 +1489,7 @@ void Node::_set_owner_nocheck(Node *p_owner) { } void Node::set_owner(Node *p_owner) { - if (data.owner) { - data.owner->data.owned.erase(data.OW); data.OW = nullptr; data.owner = nullptr; @@ -1624,7 +1504,6 @@ void Node::set_owner(Node *p_owner) { bool owner_valid = false; while (check) { - if (check == p_owner) { owner_valid = true; break; @@ -1638,12 +1517,10 @@ void Node::set_owner(Node *p_owner) { _set_owner_nocheck(p_owner); } Node *Node::get_owner() const { - return data.owner; } Node *Node::find_common_parent_with(const Node *p_node) const { - if (this == p_node) return const_cast<Node *>(p_node); @@ -1652,7 +1529,6 @@ Node *Node::find_common_parent_with(const Node *p_node) const { const Node *n = this; while (n) { - visited.insert(n); n = n->data.parent; } @@ -1660,7 +1536,6 @@ Node *Node::find_common_parent_with(const Node *p_node) const { const Node *common_parent = p_node; while (common_parent) { - if (visited.has(common_parent)) break; common_parent = common_parent->data.parent; @@ -1673,7 +1548,6 @@ Node *Node::find_common_parent_with(const Node *p_node) const { } NodePath Node::get_path_to(const Node *p_node) const { - ERR_FAIL_NULL_V(p_node, NodePath()); if (this == p_node) @@ -1684,7 +1558,6 @@ NodePath Node::get_path_to(const Node *p_node) const { const Node *n = this; while (n) { - visited.insert(n); n = n->data.parent; } @@ -1692,7 +1565,6 @@ NodePath Node::get_path_to(const Node *p_node) const { const Node *common_parent = p_node; while (common_parent) { - if (visited.has(common_parent)) break; common_parent = common_parent->data.parent; @@ -1707,7 +1579,6 @@ NodePath Node::get_path_to(const Node *p_node) const { n = p_node; while (n != common_parent) { - path.push_back(n->get_name()); n = n->data.parent; } @@ -1716,7 +1587,6 @@ NodePath Node::get_path_to(const Node *p_node) const { StringName up = String(".."); while (n != common_parent) { - path.push_back(up); n = n->data.parent; } @@ -1727,7 +1597,6 @@ NodePath Node::get_path_to(const Node *p_node) const { } NodePath Node::get_path() const { - ERR_FAIL_COND_V_MSG(!is_inside_tree(), NodePath(), "Cannot get path of node as it is not in a scene tree."); if (data.path_cache) @@ -1750,12 +1619,10 @@ NodePath Node::get_path() const { } bool Node::is_in_group(const StringName &p_identifier) const { - return data.grouped.has(p_identifier); } void Node::add_to_group(const StringName &p_identifier, bool p_persistent) { - ERR_FAIL_COND(!p_identifier.operator String().length()); if (data.grouped.has(p_identifier)) @@ -1775,7 +1642,6 @@ void Node::add_to_group(const StringName &p_identifier, bool p_persistent) { } void Node::remove_from_group(const StringName &p_identifier) { - ERR_FAIL_COND(!data.grouped.has(p_identifier)); Map<StringName, GroupData>::Element *E = data.grouped.find(p_identifier); @@ -1789,7 +1655,6 @@ void Node::remove_from_group(const StringName &p_identifier) { } Array Node::_get_groups() const { - Array groups; List<GroupInfo> gi; get_groups(&gi); @@ -1801,7 +1666,6 @@ Array Node::_get_groups() const { } void Node::get_groups(List<GroupInfo> *p_groups) const { - for (const Map<StringName, GroupData>::Element *E = data.grouped.front(); E; E = E->next()) { GroupInfo gi; gi.name = E->key(); @@ -1811,7 +1675,6 @@ void Node::get_groups(List<GroupInfo> *p_groups) const { } int Node::get_persistent_group_count() const { - int count = 0; for (const Map<StringName, GroupData>::Element *E = data.grouped.front(); E; E = E->next()) { @@ -1823,7 +1686,6 @@ int Node::get_persistent_group_count() const { return count; } void Node::_print_tree_pretty(const String &prefix, const bool last) { - String new_prefix = last ? String::utf8(" â”–â•´") : String::utf8(" â” â•´"); print_line(prefix + new_prefix + String(get_name())); for (int i = 0; i < data.children.size(); i++) { @@ -1837,7 +1699,6 @@ void Node::print_tree_pretty() { } void Node::print_tree() { - _print_tree(this); } @@ -1848,10 +1709,8 @@ void Node::_print_tree(const Node *p_node) { } void Node::_propagate_reverse_notification(int p_notification) { - data.blocked++; for (int i = data.children.size() - 1; i >= 0; i--) { - data.children[i]->_propagate_reverse_notification(p_notification); } @@ -1860,7 +1719,6 @@ void Node::_propagate_reverse_notification(int p_notification) { } void Node::_propagate_deferred_notification(int p_notification, bool p_reverse) { - ERR_FAIL_COND(!is_inside_tree()); data.blocked++; @@ -1869,7 +1727,6 @@ void Node::_propagate_deferred_notification(int p_notification, bool p_reverse) MessageQueue::get_singleton()->push_notification(this, p_notification); for (int i = 0; i < data.children.size(); i++) { - data.children[i]->_propagate_deferred_notification(p_notification, p_reverse); } @@ -1880,19 +1737,16 @@ void Node::_propagate_deferred_notification(int p_notification, bool p_reverse) } void Node::propagate_notification(int p_notification) { - data.blocked++; notification(p_notification); for (int i = 0; i < data.children.size(); i++) { - data.children[i]->propagate_notification(p_notification); } data.blocked--; } void Node::propagate_call(const StringName &p_method, const Array &p_args, const bool p_parent_first) { - data.blocked++; if (p_parent_first && has_method(p_method)) @@ -1919,12 +1773,10 @@ void Node::_propagate_replace_owner(Node *p_owner, Node *p_by_owner) { } int Node::get_index() const { - return data.pos; } void Node::remove_and_skip() { - ERR_FAIL_COND(!data.parent); Node *new_owner = get_owner(); @@ -1932,7 +1784,6 @@ void Node::remove_and_skip() { List<Node *> children; while (true) { - bool clear = true; for (int i = 0; i < data.children.size(); i++) { Node *c_node = data.children[i]; @@ -1951,7 +1802,6 @@ void Node::remove_and_skip() { } while (!children.empty()) { - Node *c_node = children.front()->get(); data.parent->add_child(c_node); c_node->_propagate_replace_owner(nullptr, new_owner); @@ -1962,20 +1812,16 @@ void Node::remove_and_skip() { } void Node::set_filename(const String &p_filename) { - data.filename = p_filename; } String Node::get_filename() const { - return data.filename; } void Node::set_editor_description(const String &p_editor_description) { - set_meta("_editor_description_", p_editor_description); } String Node::get_editor_description() const { - if (has_meta("_editor_description_")) { return get_meta("_editor_description_"); } else { @@ -1984,7 +1830,6 @@ String Node::get_editor_description() const { } void Node::set_editable_instance(Node *p_node, bool p_editable) { - ERR_FAIL_NULL(p_node); ERR_FAIL_COND(!is_a_parent_of(p_node)); NodePath p = get_path_to(p_node); @@ -1999,7 +1844,6 @@ void Node::set_editable_instance(Node *p_node, bool p_editable) { } bool Node::is_editable_instance(const Node *p_node) const { - if (!p_node) return false; //easier, null is never editable :) ERR_FAIL_COND_V(!is_a_parent_of(p_node), false); @@ -2008,60 +1852,49 @@ bool Node::is_editable_instance(const Node *p_node) const { } void Node::set_editable_instances(const HashMap<NodePath, int> &p_editable_instances) { - data.editable_instances = p_editable_instances; } HashMap<NodePath, int> Node::get_editable_instances() const { - return data.editable_instances; } void Node::set_scene_instance_state(const Ref<SceneState> &p_state) { - data.instance_state = p_state; } Ref<SceneState> Node::get_scene_instance_state() const { - return data.instance_state; } void Node::set_scene_inherited_state(const Ref<SceneState> &p_state) { - data.inherited_state = p_state; } Ref<SceneState> Node::get_scene_inherited_state() const { - return data.inherited_state; } void Node::set_scene_instance_load_placeholder(bool p_enable) { - data.use_placeholder = p_enable; } bool Node::get_scene_instance_load_placeholder() const { - return data.use_placeholder; } Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const { - Node *node = nullptr; bool instanced = false; if (Object::cast_to<InstancePlaceholder>(this)) { - const InstancePlaceholder *ip = Object::cast_to<const InstancePlaceholder>(this); InstancePlaceholder *nip = memnew(InstancePlaceholder); nip->set_instance_path(ip->get_instance_path()); node = nip; } else if ((p_flags & DUPLICATE_USE_INSTANCING) && get_filename() != String()) { - Ref<PackedScene> res = ResourceLoader::load(get_filename()); ERR_FAIL_COND_V(res.is_null(), nullptr); PackedScene::GenEditState ges = PackedScene::GEN_EDIT_STATE_DISABLED; @@ -2075,7 +1908,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const instanced = true; } else { - Object *obj = ClassDB::instance(get_class()); ERR_FAIL_COND_V(!obj, nullptr); node = Object::cast_to<Node>(obj); @@ -2100,7 +1932,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const for (List<const Node *>::Element *N = node_tree.front(); N; N = N->next()) { for (int i = 0; i < N->get()->get_child_count(); ++i) { - Node *descendant = N->get()->get_child(i); // Skip nodes not really belonging to the instanced hierarchy; they'll be processed normally later // but remember non-instanced nodes that are hidden below instanced ones @@ -2116,7 +1947,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const } for (List<const Node *>::Element *N = node_tree.front(); N; N = N->next()) { - Node *current_node = node->get_node(get_path_to(N->get())); ERR_CONTINUE(!current_node); @@ -2132,7 +1962,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const N->get()->get_property_list(&plist); for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) { - if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) continue; String name = E->get().name; @@ -2142,14 +1971,12 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const Variant value = N->get()->get(name).duplicate(true); if (E->get().usage & PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE) { - Resource *res = Object::cast_to<Resource>(value); if (res) { // Duplicate only if it's a resource current_node->set(name, res->duplicate()); } } else { - current_node->set(name, value); } } @@ -2168,7 +1995,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const List<GroupInfo> gi; get_groups(&gi); for (List<GroupInfo>::Element *E = gi.front(); E; E = E->next()) { - #ifdef TOOLS_ENABLED if ((p_flags & DUPLICATE_FROM_EDITOR) && !E->get().persistent) continue; @@ -2179,7 +2005,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const } for (int i = 0; i < get_child_count(); i++) { - if (get_child(i)->data.parent_owned) continue; if (instanced && get_child(i)->data.owner == this) @@ -2187,7 +2012,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const Node *dup = get_child(i)->_duplicate(p_flags, r_duplimap); if (!dup) { - memdelete(node); return nullptr; } @@ -2199,17 +2023,14 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const } for (List<const Node *>::Element *E = hidden_roots.front(); E; E = E->next()) { - Node *parent = node->get_node(get_path_to(E->get()->data.parent)); if (!parent) { - memdelete(node); return nullptr; } Node *dup = E->get()->_duplicate(p_flags, r_duplimap); if (!dup) { - memdelete(node); return nullptr; } @@ -2218,7 +2039,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const int pos = E->get()->get_index(); if (pos < parent->get_child_count() - 1) { - parent->move_child(dup, pos); } } @@ -2227,7 +2047,6 @@ Node *Node::_duplicate(int p_flags, Map<const Node *, Node *> *r_duplimap) const } Node *Node::duplicate(int p_flags) const { - Node *dupe = _duplicate(p_flags); if (dupe && (p_flags & DUPLICATE_SIGNALS)) { @@ -2239,7 +2058,6 @@ Node *Node::duplicate(int p_flags) const { #ifdef TOOLS_ENABLED Node *Node::duplicate_from_editor(Map<const Node *, Node *> &r_duplimap) const { - Node *dupe = _duplicate(DUPLICATE_SIGNALS | DUPLICATE_GROUPS | DUPLICATE_SCRIPTS | DUPLICATE_USE_INSTANCING | DUPLICATE_FROM_EDITOR, &r_duplimap); // Duplication of signals must happen after all the node descendants have been copied, @@ -2252,20 +2070,17 @@ Node *Node::duplicate_from_editor(Map<const Node *, Node *> &r_duplimap) const { #endif void Node::_duplicate_and_reown(Node *p_new_parent, const Map<Node *, Node *> &p_reown_map) const { - if (get_owner() != get_parent()->get_owner()) return; Node *node = nullptr; if (get_filename() != "") { - Ref<PackedScene> res = ResourceLoader::load(get_filename()); ERR_FAIL_COND_MSG(res.is_null(), "Cannot load scene: " + get_filename()); node = res->instance(); ERR_FAIL_COND(!node); } else { - Object *obj = ClassDB::instance(get_class()); ERR_FAIL_COND_MSG(!obj, "Node: Could not duplicate: " + String(get_class()) + "."); node = Object::cast_to<Node>(obj); @@ -2280,7 +2095,6 @@ void Node::_duplicate_and_reown(Node *p_new_parent, const Map<Node *, Node *> &p get_property_list(&plist); for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) { - if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) continue; String name = E->get().name; @@ -2315,7 +2129,6 @@ void Node::_duplicate_and_reown(Node *p_new_parent, const Map<Node *, Node *> &p } for (int i = 0; i < get_child_count(); i++) { - get_child(i)->_duplicate_and_reown(node, p_reown_map); } } @@ -2324,7 +2137,6 @@ void Node::_duplicate_and_reown(Node *p_new_parent, const Map<Node *, Node *> &p // because re-targeting of connections from some descendant to another is not possible // if the emitter node comes later in tree order than the receiver void Node::_duplicate_signals(const Node *p_original, Node *p_copy) const { - if (this != p_original && (get_owner() != p_original && get_owner() != p_original->get_owner())) return; @@ -2332,7 +2144,6 @@ void Node::_duplicate_signals(const Node *p_original, Node *p_copy) const { get_all_signal_connections(&conns); for (List<Connection>::Element *E = conns.front(); E; E = E->next()) { - if (E->get().flags & CONNECT_PERSIST) { //user connected NodePath p = p_original->get_path_to(this); @@ -2368,7 +2179,6 @@ void Node::_duplicate_signals(const Node *p_original, Node *p_copy) const { } Node *Node::duplicate_and_reown(const Map<Node *, Node *> &p_reown_map) const { - ERR_FAIL_COND_V(get_filename() != "", nullptr); Object *obj = ClassDB::instance(get_class()); @@ -2386,7 +2196,6 @@ Node *Node::duplicate_and_reown(const Map<Node *, Node *> &p_reown_map) const { get_property_list(&plist); for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) { - if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) continue; String name = E->get().name; @@ -2400,7 +2209,6 @@ Node *Node::duplicate_and_reown(const Map<Node *, Node *> &p_reown_map) const { node->add_to_group(E->get().name, E->get().persistent); for (int i = 0; i < get_child_count(); i++) { - get_child(i)->_duplicate_and_reown(node, p_reown_map); } @@ -2412,24 +2220,20 @@ Node *Node::duplicate_and_reown(const Map<Node *, Node *> &p_reown_map) const { } static void find_owned_by(Node *p_by, Node *p_node, List<Node *> *p_owned) { - if (p_node->get_owner() == p_by) p_owned->push_back(p_node); for (int i = 0; i < p_node->get_child_count(); i++) { - find_owned_by(p_by, p_node->get_child(i), p_owned); } } struct _NodeReplaceByPair { - String name; Variant value; }; void Node::replace_by(Node *p_node, bool p_keep_data) { - ERR_FAIL_NULL(p_node); ERR_FAIL_COND(p_node->data.parent); @@ -2440,12 +2244,10 @@ void Node::replace_by(Node *p_node, bool p_keep_data) { List<_NodeReplaceByPair> replace_data; if (p_keep_data) { - List<PropertyInfo> plist; get_property_list(&plist); for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) { - _NodeReplaceByPair rd; if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) continue; @@ -2471,14 +2273,12 @@ void Node::replace_by(Node *p_node, bool p_keep_data) { int pos_in_parent = data.pos; if (data.parent) { - parent->remove_child(this); parent->add_child(p_node); parent->move_child(p_node, pos_in_parent); } while (get_child_count()) { - Node *child = get_child(0); remove_child(child); if (!child->is_owned_by_parent()) { @@ -2497,18 +2297,15 @@ void Node::replace_by(Node *p_node, bool p_keep_data) { p_node->set_filename(get_filename()); for (List<_NodeReplaceByPair>::Element *E = replace_data.front(); E; E = E->next()) { - p_node->set(E->get().name, E->get().value); } } void Node::_replace_connections_target(Node *p_new_target) { - List<Connection> cl; get_signals_connected_to_this(&cl); for (List<Connection>::Element *E = cl.front(); E; E = E->next()) { - Connection &c = E->get(); if (c.flags & CONNECT_PERSIST) { @@ -2521,7 +2318,6 @@ void Node::_replace_connections_target(Node *p_new_target) { } Vector<Variant> Node::make_binds(VARIANT_ARG_DECLARE) { - Vector<Variant> ret; if (p_arg1.get_type() == Variant::NIL) @@ -2553,7 +2349,6 @@ Vector<Variant> Node::make_binds(VARIANT_ARG_DECLARE) { } bool Node::has_node_and_resource(const NodePath &p_path) const { - if (!has_node(p_path)) return false; RES res; @@ -2564,7 +2359,6 @@ bool Node::has_node_and_resource(const NodePath &p_path) const { } Array Node::_get_node_and_resource(const NodePath &p_path) { - RES res; Vector<StringName> leftover_path; Node *node = get_node_and_resource(p_path, res, leftover_path, false); @@ -2586,7 +2380,6 @@ Array Node::_get_node_and_resource(const NodePath &p_path) { } Node *Node::get_node_and_resource(const NodePath &p_path, RES &r_res, Vector<StringName> &r_leftover_subpath, bool p_last_is_property) const { - Node *node = get_node(p_path); r_res = RES(); r_leftover_subpath = Vector<StringName>(); @@ -2594,7 +2387,6 @@ Node *Node::get_node_and_resource(const NodePath &p_path, RES &r_res, Vector<Str return nullptr; if (p_path.get_subname_count()) { - int j = 0; // If not p_last_is_property, we shouldn't consider the last one as part of the resource for (; j < p_path.get_subname_count() - (int)p_last_is_property; j++) { @@ -2622,7 +2414,6 @@ Node *Node::get_node_and_resource(const NodePath &p_path, RES &r_res, Vector<Str } void Node::_set_tree(SceneTree *p_tree) { - SceneTree *tree_changed_a = nullptr; SceneTree *tree_changed_b = nullptr; @@ -2637,7 +2428,6 @@ void Node::_set_tree(SceneTree *p_tree) { data.tree = p_tree; if (data.tree) { - _propagate_enter_tree(); if (!data.parent || data.parent->data.ready_notified) { // No parent (root) or parent ready _propagate_ready(); //reverse_notification(NOTIFICATION_READY); @@ -2654,7 +2444,6 @@ void Node::_set_tree(SceneTree *p_tree) { #ifdef DEBUG_ENABLED static void _Node_debug_sn(Object *p_obj) { - Node *n = Object::cast_to<Node>(p_obj); if (!n) return; @@ -2677,19 +2466,16 @@ static void _Node_debug_sn(Object *p_obj) { #endif // DEBUG_ENABLED void Node::_print_stray_nodes() { - print_stray_nodes(); } void Node::print_stray_nodes() { - #ifdef DEBUG_ENABLED ObjectDB::debug_objects(_Node_debug_sn); #endif } void Node::queue_delete() { - if (is_inside_tree()) { get_tree()->queue_delete(this); } else { @@ -2698,7 +2484,6 @@ void Node::queue_delete() { } TypedArray<Node> Node::_get_children() const { - TypedArray<Node> arr; int cc = get_child_count(); arr.resize(cc); @@ -2709,14 +2494,12 @@ TypedArray<Node> Node::_get_children() const { } void Node::set_import_path(const NodePath &p_import_path) { - #ifdef TOOLS_ENABLED data.import_path = p_import_path; #endif } NodePath Node::get_import_path() const { - #ifdef TOOLS_ENABLED return data.import_path; #else @@ -2725,7 +2508,6 @@ NodePath Node::get_import_path() const { } static void _add_nodes_to_options(const Node *p_base, const Node *p_node, List<String> *r_options) { - #ifdef TOOLS_ENABLED const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", 0) ? "'" : "\""; #else @@ -2742,17 +2524,14 @@ static void _add_nodes_to_options(const Node *p_base, const Node *p_node, List<S } void Node::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const { - String pf = p_function; if ((pf == "has_node" || pf == "get_node") && p_idx == 0) { - _add_nodes_to_options(this, this, r_options); } Object::get_argument_options(p_function, p_idx, r_options); } void Node::clear_internal_tree_resource_paths() { - clear_internal_resource_paths(); for (int i = 0; i < data.children.size(); i++) { data.children[i]->clear_internal_tree_resource_paths(); @@ -2760,7 +2539,6 @@ void Node::clear_internal_tree_resource_paths() { } String Node::get_configuration_warning() const { - if (get_script_instance() && get_script_instance()->get_script().is_valid() && get_script_instance()->get_script()->is_tool() && get_script_instance()->has_method("_get_configuration_warning")) { return get_script_instance()->call("_get_configuration_warning"); @@ -2769,7 +2547,6 @@ String Node::get_configuration_warning() const { } void Node::update_configuration_warning() { - #ifdef TOOLS_ENABLED if (!is_inside_tree()) return; @@ -2788,7 +2565,6 @@ void Node::set_display_folded(bool p_folded) { } bool Node::is_displayed_folded() const { - return data.display_folded; } @@ -2797,7 +2573,6 @@ void Node::request_ready() { } void Node::_bind_methods() { - GLOBAL_DEF("node/name_num_separator", 0); ProjectSettings::get_singleton()->set_custom_property_info("node/name_num_separator", PropertyInfo(Variant::INT, "node/name_num_separator", PROPERTY_HINT_ENUM, "None,Space,Underscore,Dash")); GLOBAL_DEF("node/name_casing", NAME_CASING_PASCAL_CASE); @@ -3011,7 +2786,6 @@ String Node::_get_name_num_separator() { } Node::Node() { - data.pos = -1; data.depth = -1; data.blocked = 0; @@ -3045,7 +2819,6 @@ Node::Node() { } Node::~Node() { - data.grouped.clear(); data.owned.clear(); data.children.clear(); diff --git a/scene/main/node.h b/scene/main/node.h index 1c1b7bbd7a..d1665d1236 100644 --- a/scene/main/node.h +++ b/scene/main/node.h @@ -43,7 +43,6 @@ class Viewport; class SceneState; class Node : public Object { - GDCLASS(Node, Object); OBJ_CATEGORY("Nodes"); @@ -67,12 +66,10 @@ public: }; struct Comparator { - bool operator()(const Node *p_a, const Node *p_b) const { return p_b->is_greater_than(p_a); } }; struct ComparatorWithPriority { - bool operator()(const Node *p_a, const Node *p_b) const { return p_b->data.process_priority == p_a->data.process_priority ? p_b->is_greater_than(p_a) : p_b->data.process_priority > p_a->data.process_priority; } }; @@ -80,7 +77,6 @@ public: private: struct GroupData { - bool persistent; SceneTree::Group *group; GroupData() { persistent = false; } @@ -92,7 +88,6 @@ private: }; struct Data { - String filename; Ref<SceneState> instance_state; Ref<SceneState> inherited_state; @@ -305,7 +300,6 @@ public: bool is_in_group(const StringName &p_identifier) const; struct GroupInfo { - StringName name; bool persistent; }; diff --git a/scene/main/resource_preloader.cpp b/scene/main/resource_preloader.cpp index 43a61834eb..758523caf6 100644 --- a/scene/main/resource_preloader.cpp +++ b/scene/main/resource_preloader.cpp @@ -31,7 +31,6 @@ #include "resource_preloader.h" void ResourcePreloader::_set_resources(const Array &p_data) { - resources.clear(); ERR_FAIL_COND(p_data.size() != 2); @@ -41,7 +40,6 @@ void ResourcePreloader::_set_resources(const Array &p_data) { ERR_FAIL_COND(names.size() != resdata.size()); for (int i = 0; i < resdata.size(); i++) { - String name = names[i]; RES resource = resdata[i]; ERR_CONTINUE(!resource.is_valid()); @@ -52,7 +50,6 @@ void ResourcePreloader::_set_resources(const Array &p_data) { } Array ResourcePreloader::_get_resources() const { - Vector<String> names; Array arr; arr.resize(resources.size()); @@ -66,7 +63,6 @@ Array ResourcePreloader::_get_resources() const { int i = 0; for (Set<String>::Element *E = sorted_names.front(); E; E = E->next()) { - names.set(i, E->get()); arr[i] = resources[E->get()]; i++; @@ -79,15 +75,12 @@ Array ResourcePreloader::_get_resources() const { } void ResourcePreloader::add_resource(const StringName &p_name, const RES &p_resource) { - ERR_FAIL_COND(p_resource.is_null()); if (resources.has(p_name)) { - StringName new_name; int idx = 2; while (true) { - new_name = p_name.operator String() + " " + itos(idx); if (resources.has(new_name)) { idx++; @@ -99,18 +92,15 @@ void ResourcePreloader::add_resource(const StringName &p_name, const RES &p_reso add_resource(new_name, p_resource); } else { - resources[p_name] = p_resource; } } void ResourcePreloader::remove_resource(const StringName &p_name) { - ERR_FAIL_COND(!resources.has(p_name)); resources.erase(p_name); } void ResourcePreloader::rename_resource(const StringName &p_from_name, const StringName &p_to_name) { - ERR_FAIL_COND(!resources.has(p_from_name)); RES res = resources[p_from_name]; @@ -120,17 +110,14 @@ void ResourcePreloader::rename_resource(const StringName &p_from_name, const Str } bool ResourcePreloader::has_resource(const StringName &p_name) const { - return resources.has(p_name); } RES ResourcePreloader::get_resource(const StringName &p_name) const { - ERR_FAIL_COND_V(!resources.has(p_name), RES()); return resources[p_name]; } Vector<String> ResourcePreloader::_get_resource_list() const { - Vector<String> res; res.resize(resources.size()); int i = 0; @@ -142,15 +129,12 @@ Vector<String> ResourcePreloader::_get_resource_list() const { } void ResourcePreloader::get_resource_list(List<StringName> *p_list) { - for (Map<StringName, RES>::Element *E = resources.front(); E; E = E->next()) { - p_list->push_back(E->key()); } } void ResourcePreloader::_bind_methods() { - ClassDB::bind_method(D_METHOD("_set_resources"), &ResourcePreloader::_set_resources); ClassDB::bind_method(D_METHOD("_get_resources"), &ResourcePreloader::_get_resources); diff --git a/scene/main/resource_preloader.h b/scene/main/resource_preloader.h index 9ad219dd92..580dc35a57 100644 --- a/scene/main/resource_preloader.h +++ b/scene/main/resource_preloader.h @@ -34,7 +34,6 @@ #include "scene/main/node.h" class ResourcePreloader : public Node { - GDCLASS(ResourcePreloader, Node); Map<StringName, RES> resources; diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 94be22ccd2..018d08d9fc 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -56,7 +56,6 @@ #include <stdio.h> void SceneTreeTimer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_time_left", "time"), &SceneTreeTimer::set_time_left); ClassDB::bind_method(D_METHOD("get_time_left"), &SceneTreeTimer::get_time_left); @@ -74,7 +73,6 @@ float SceneTreeTimer::get_time_left() const { } void SceneTreeTimer::set_pause_mode_process(bool p_pause_mode_process) { - process_pause = p_pause_mode_process; } @@ -83,7 +81,6 @@ bool SceneTreeTimer::is_pause_mode_process() { } void SceneTreeTimer::release_connections() { - List<Connection> connections; get_all_signal_connections(&connections); @@ -99,18 +96,15 @@ SceneTreeTimer::SceneTreeTimer() { } void SceneTree::tree_changed() { - tree_version++; emit_signal(tree_changed_name); } void SceneTree::node_added(Node *p_node) { - emit_signal(node_added_name, p_node); } void SceneTree::node_removed(Node *p_node) { - if (current_scene == p_node) { current_scene = nullptr; } @@ -120,12 +114,10 @@ void SceneTree::node_removed(Node *p_node) { } void SceneTree::node_renamed(Node *p_node) { - emit_signal(node_renamed_name, p_node); } SceneTree::Group *SceneTree::add_to_group(const StringName &p_group, Node *p_node) { - Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) { E = group_map.insert(p_group, Group()); @@ -139,7 +131,6 @@ SceneTree::Group *SceneTree::add_to_group(const StringName &p_group, Node *p_nod } void SceneTree::remove_from_group(const StringName &p_group, Node *p_node) { - Map<StringName, Group>::Element *E = group_map.find(p_group); ERR_FAIL_COND(!E); @@ -155,10 +146,8 @@ void SceneTree::make_group_changed(const StringName &p_group) { } void SceneTree::flush_transform_notifications() { - SelfList<Node> *n = xform_change_list.first(); while (n) { - Node *node = n->self(); SelfList<Node> *nx = n->next(); xform_change_list.remove(n); @@ -168,11 +157,9 @@ void SceneTree::flush_transform_notifications() { } void SceneTree::_flush_ugc() { - ugc_locked = true; while (unique_group_calls.size()) { - Map<UGCall, Vector<Variant>>::Element *E = unique_group_calls.front(); Variant v[VARIANT_ARG_MAX]; @@ -188,7 +175,6 @@ void SceneTree::_flush_ugc() { } void SceneTree::_update_group_order(Group &g, bool p_use_priority) { - if (!g.changed) return; if (g.nodes.empty()) @@ -208,7 +194,6 @@ void SceneTree::_update_group_order(Group &g, bool p_use_priority) { } void SceneTree::call_group_flags(uint32_t p_call_flags, const StringName &p_group, const StringName &p_function, VARIANT_ARG_DECLARE) { - Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) return; @@ -217,7 +202,6 @@ void SceneTree::call_group_flags(uint32_t p_call_flags, const StringName &p_grou return; if (p_call_flags & GROUP_CALL_UNIQUE && !(p_call_flags & GROUP_CALL_REALTIME)) { - ERR_FAIL_COND(ugc_locked); UGCall ug; @@ -249,9 +233,7 @@ void SceneTree::call_group_flags(uint32_t p_call_flags, const StringName &p_grou call_lock++; if (p_call_flags & GROUP_CALL_REVERSE) { - for (int i = node_count - 1; i >= 0; i--) { - if (call_lock && call_skip.has(nodes[i])) continue; @@ -265,9 +247,7 @@ void SceneTree::call_group_flags(uint32_t p_call_flags, const StringName &p_grou } } else { - for (int i = 0; i < node_count; i++) { - if (call_lock && call_skip.has(nodes[i])) continue; @@ -287,7 +267,6 @@ void SceneTree::call_group_flags(uint32_t p_call_flags, const StringName &p_grou } void SceneTree::notify_group_flags(uint32_t p_call_flags, const StringName &p_group, int p_notification) { - Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) return; @@ -304,9 +283,7 @@ void SceneTree::notify_group_flags(uint32_t p_call_flags, const StringName &p_gr call_lock++; if (p_call_flags & GROUP_CALL_REVERSE) { - for (int i = node_count - 1; i >= 0; i--) { - if (call_lock && call_skip.has(nodes[i])) continue; @@ -317,9 +294,7 @@ void SceneTree::notify_group_flags(uint32_t p_call_flags, const StringName &p_gr } } else { - for (int i = 0; i < node_count; i++) { - if (call_lock && call_skip.has(nodes[i])) continue; @@ -336,7 +311,6 @@ void SceneTree::notify_group_flags(uint32_t p_call_flags, const StringName &p_gr } void SceneTree::set_group_flags(uint32_t p_call_flags, const StringName &p_group, const String &p_name, const Variant &p_value) { - Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) return; @@ -353,9 +327,7 @@ void SceneTree::set_group_flags(uint32_t p_call_flags, const StringName &p_group call_lock++; if (p_call_flags & GROUP_CALL_REVERSE) { - for (int i = node_count - 1; i >= 0; i--) { - if (call_lock && call_skip.has(nodes[i])) continue; @@ -366,9 +338,7 @@ void SceneTree::set_group_flags(uint32_t p_call_flags, const StringName &p_group } } else { - for (int i = 0; i < node_count; i++) { - if (call_lock && call_skip.has(nodes[i])) continue; @@ -389,12 +359,10 @@ void SceneTree::call_group(const StringName &p_group, const StringName &p_functi } void SceneTree::notify_group(const StringName &p_group, int p_notification) { - notify_group_flags(0, p_group, p_notification); } void SceneTree::set_group(const StringName &p_group, const String &p_name, const Variant &p_value) { - set_group_flags(0, p_group, p_name, p_value); } @@ -405,7 +373,6 @@ void SceneTree::init() { } bool SceneTree::iteration(float p_time) { - root_lock++; current_frame++; @@ -432,7 +399,6 @@ bool SceneTree::iteration(float p_time) { } bool SceneTree::idle(float p_time) { - //print_line("ram: "+itos(OS::get_singleton()->get_static_memory_usage())+" sram: "+itos(OS::get_singleton()->get_dynamic_memory_usage())); //print_line("node count: "+itos(get_node_count())); //print_line("TEXTURE RAM: "+itos(RS::get_singleton()->get_render_info(RS::INFO_TEXTURE_MEM_USED))); @@ -470,7 +436,6 @@ bool SceneTree::idle(float p_time) { List<Ref<SceneTreeTimer>>::Element *L = timers.back(); //last element for (List<Ref<SceneTreeTimer>>::Element *E = timers.front(); E;) { - List<Ref<SceneTreeTimer>>::Element *N = E->next(); if (pause && !E->get()->is_pause_mode_process()) { if (E == L) { @@ -509,7 +474,6 @@ bool SceneTree::idle(float p_time) { cpath = fallback->get_path(); } if (cpath != env_path) { - if (env_path != String()) { fallback = ResourceLoader::load(env_path); if (fallback.is_null()) { @@ -529,7 +493,6 @@ bool SceneTree::idle(float p_time) { } void SceneTree::finish() { - _flush_delete_queue(); _flush_ugc(); @@ -553,7 +516,6 @@ void SceneTree::finish() { } void SceneTree::quit(int p_exit_code) { - if (p_exit_code >= 0) { // Override the exit code if a positive argument is given (the default is `-1`). // This is a shorthand for calling `set_exit_code()` on the OS singleton then quitting. @@ -564,7 +526,6 @@ void SceneTree::quit(int p_exit_code) { } void SceneTree::_main_window_close() { - if (accept_quit) { _quit = true; } @@ -583,9 +544,7 @@ void SceneTree::_main_window_focus_in() { } void SceneTree::_notification(int p_notification) { - switch (p_notification) { - case NOTIFICATION_TRANSLATION_CHANGED: { if (!Engine::get_singleton()->is_editor_hint()) { get_root()->propagate_notification(p_notification); @@ -597,7 +556,6 @@ void SceneTree::_notification(int p_notification) { case NOTIFICATION_CRASH: case NOTIFICATION_APP_RESUMED: case NOTIFICATION_APP_PAUSED: { - get_root()->propagate_notification(p_notification); } break; @@ -607,87 +565,71 @@ void SceneTree::_notification(int p_notification) { }; void SceneTree::set_auto_accept_quit(bool p_enable) { - accept_quit = p_enable; } void SceneTree::set_quit_on_go_back(bool p_enable) { - quit_on_go_back = p_enable; } #ifdef TOOLS_ENABLED bool SceneTree::is_node_being_edited(const Node *p_node) const { - return Engine::get_singleton()->is_editor_hint() && edited_scene_root && (edited_scene_root->is_a_parent_of(p_node) || edited_scene_root == p_node); } #endif #ifdef DEBUG_ENABLED void SceneTree::set_debug_collisions_hint(bool p_enabled) { - debug_collisions_hint = p_enabled; } bool SceneTree::is_debugging_collisions_hint() const { - return debug_collisions_hint; } void SceneTree::set_debug_navigation_hint(bool p_enabled) { - debug_navigation_hint = p_enabled; } bool SceneTree::is_debugging_navigation_hint() const { - return debug_navigation_hint; } #endif void SceneTree::set_debug_collisions_color(const Color &p_color) { - debug_collisions_color = p_color; } Color SceneTree::get_debug_collisions_color() const { - return debug_collisions_color; } void SceneTree::set_debug_collision_contact_color(const Color &p_color) { - debug_collision_contact_color = p_color; } Color SceneTree::get_debug_collision_contact_color() const { - return debug_collision_contact_color; } void SceneTree::set_debug_navigation_color(const Color &p_color) { - debug_navigation_color = p_color; } Color SceneTree::get_debug_navigation_color() const { - return debug_navigation_color; } void SceneTree::set_debug_navigation_disabled_color(const Color &p_color) { - debug_navigation_disabled_color = p_color; } Color SceneTree::get_debug_navigation_disabled_color() const { - return debug_navigation_disabled_color; } Ref<Material> SceneTree::get_debug_navigation_material() { - if (navigation_material.is_valid()) return navigation_material; @@ -704,7 +646,6 @@ Ref<Material> SceneTree::get_debug_navigation_material() { } Ref<Material> SceneTree::get_debug_navigation_disabled_material() { - if (navigation_disabled_material.is_valid()) return navigation_disabled_material; @@ -720,7 +661,6 @@ Ref<Material> SceneTree::get_debug_navigation_disabled_material() { return navigation_disabled_material; } Ref<Material> SceneTree::get_debug_collision_material() { - if (collision_material.is_valid()) return collision_material; @@ -737,7 +677,6 @@ Ref<Material> SceneTree::get_debug_collision_material() { } Ref<ArrayMesh> SceneTree::get_debug_contact_mesh() { - if (debug_contact_mesh.is_valid()) return debug_contact_mesh; @@ -792,7 +731,6 @@ Ref<ArrayMesh> SceneTree::get_debug_contact_mesh() { } void SceneTree::set_pause(bool p_enabled) { - if (p_enabled == pause) return; pause = p_enabled; @@ -804,12 +742,10 @@ void SceneTree::set_pause(bool p_enabled) { } bool SceneTree::is_paused() const { - return pause; } void SceneTree::_notify_group_pause(const StringName &p_group, int p_notification) { - Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) return; @@ -829,7 +765,6 @@ void SceneTree::_notify_group_pause(const StringName &p_group, int p_notificatio call_lock++; for (int i = 0; i < node_count; i++) { - Node *n = nodes[i]; if (call_lock && call_skip.has(n)) continue; @@ -860,7 +795,6 @@ void SceneMainLoop::_update_listener_2d() { */ void SceneTree::_call_input_pause(const StringName &p_group, const StringName &p_method, const Ref<InputEvent> &p_input, Viewport *p_viewport) { - Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) return; @@ -883,7 +817,6 @@ void SceneTree::_call_input_pause(const StringName &p_group, const StringName &p call_lock++; for (int i = node_count - 1; i >= 0; i--) { - if (p_viewport->is_input_handled()) break; @@ -903,7 +836,6 @@ void SceneTree::_call_input_pause(const StringName &p_group, const StringName &p call_skip.clear(); } Variant SceneTree::_call_group_flags(const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - r_error.error = Callable::CallError::CALL_OK; ERR_FAIL_COND_V(p_argcount < 3, Variant()); @@ -917,7 +849,6 @@ Variant SceneTree::_call_group_flags(const Variant **p_args, int p_argcount, Cal Variant v[VARIANT_ARG_MAX]; for (int i = 0; i < MIN(p_argcount - 3, 5); i++) { - v[i] = *p_args[i + 3]; } @@ -926,7 +857,6 @@ Variant SceneTree::_call_group_flags(const Variant **p_args, int p_argcount, Cal } Variant SceneTree::_call_group(const Variant **p_args, int p_argcount, Callable::CallError &r_error) { - r_error.error = Callable::CallError::CALL_OK; ERR_FAIL_COND_V(p_argcount < 2, Variant()); @@ -938,7 +868,6 @@ Variant SceneTree::_call_group(const Variant **p_args, int p_argcount, Callable: Variant v[VARIANT_ARG_MAX]; for (int i = 0; i < MIN(p_argcount - 2, 5); i++) { - v[i] = *p_args[i + 2]; } @@ -947,16 +876,13 @@ Variant SceneTree::_call_group(const Variant **p_args, int p_argcount, Callable: } int64_t SceneTree::get_frame() const { - return current_frame; } int64_t SceneTree::get_event_count() const { - return current_event; } Array SceneTree::_get_nodes_in_group(const StringName &p_group) { - Array ret; Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) @@ -971,7 +897,6 @@ Array SceneTree::_get_nodes_in_group(const StringName &p_group) { Node **ptr = E->get().nodes.ptrw(); for (int i = 0; i < nc; i++) { - ret[i] = ptr[i]; } @@ -979,11 +904,9 @@ Array SceneTree::_get_nodes_in_group(const StringName &p_group) { } bool SceneTree::has_group(const StringName &p_identifier) const { - return group_map.has(p_identifier); } void SceneTree::get_nodes_in_group(const StringName &p_group, List<Node *> *p_list) { - Map<StringName, Group>::Element *E = group_map.find(p_group); if (!E) return; @@ -994,17 +917,14 @@ void SceneTree::get_nodes_in_group(const StringName &p_group, List<Node *> *p_li return; Node **ptr = E->get().nodes.ptrw(); for (int i = 0; i < nc; i++) { - p_list->push_back(ptr[i]); } } void SceneTree::_flush_delete_queue() { - _THREAD_SAFE_METHOD_ while (delete_queue.size()) { - Object *obj = ObjectDB::get_instance(delete_queue.front()->get()); if (obj) { memdelete(obj); @@ -1014,7 +934,6 @@ void SceneTree::_flush_delete_queue() { } void SceneTree::queue_delete(Object *p_object) { - _THREAD_SAFE_METHOD_ ERR_FAIL_NULL(p_object); p_object->_is_queued_for_deletion = true; @@ -1022,7 +941,6 @@ void SceneTree::queue_delete(Object *p_object) { } int SceneTree::get_node_count() const { - return node_count; } @@ -1033,7 +951,6 @@ void SceneTree::set_edited_scene_root(Node *p_node) { } Node *SceneTree::get_edited_scene_root() const { - #ifdef TOOLS_ENABLED return edited_scene_root; #else @@ -1042,18 +959,15 @@ Node *SceneTree::get_edited_scene_root() const { } void SceneTree::set_current_scene(Node *p_scene) { - ERR_FAIL_COND(p_scene && p_scene->get_parent() != root); current_scene = p_scene; } Node *SceneTree::get_current_scene() const { - return current_scene; } void SceneTree::_change_scene(Node *p_to) { - if (current_scene) { memdelete(current_scene); current_scene = nullptr; @@ -1099,13 +1013,11 @@ Error SceneTree::reload_current_scene() { } void SceneTree::add_current_scene(Node *p_current) { - current_scene = p_current; root->add_child(p_current); } Ref<SceneTreeTimer> SceneTree::create_timer(float p_delay_sec, bool p_process_pause) { - Ref<SceneTreeTimer> stt; stt.instance(); stt->set_pause_mode_process(p_process_pause); @@ -1115,27 +1027,22 @@ Ref<SceneTreeTimer> SceneTree::create_timer(float p_delay_sec, bool p_process_pa } void SceneTree::_network_peer_connected(int p_id) { - emit_signal("network_peer_connected", p_id); } void SceneTree::_network_peer_disconnected(int p_id) { - emit_signal("network_peer_disconnected", p_id); } void SceneTree::_connected_to_server() { - emit_signal("connected_to_server"); } void SceneTree::_connection_failed() { - emit_signal("connection_failed"); } void SceneTree::_server_disconnected() { - emit_signal("server_disconnected"); } @@ -1173,17 +1080,14 @@ void SceneTree::set_multiplayer(Ref<MultiplayerAPI> p_multiplayer) { } void SceneTree::set_network_peer(const Ref<NetworkedMultiplayerPeer> &p_network_peer) { - multiplayer->set_network_peer(p_network_peer); } Ref<NetworkedMultiplayerPeer> SceneTree::get_network_peer() const { - return multiplayer->get_network_peer(); } bool SceneTree::is_network_server() const { - return multiplayer->is_network_server(); } @@ -1192,12 +1096,10 @@ bool SceneTree::has_network_peer() const { } int SceneTree::get_network_unique_id() const { - return multiplayer->get_network_unique_id(); } Vector<int> SceneTree::get_network_connected_peers() const { - return multiplayer->get_network_connected_peers(); } @@ -1214,7 +1116,6 @@ bool SceneTree::is_refusing_new_network_connections() const { } void SceneTree::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_root"), &SceneTree::get_root); ClassDB::bind_method(D_METHOD("has_group", "name"), &SceneTree::has_group); @@ -1327,7 +1228,6 @@ SceneTree::IdleCallback SceneTree::idle_callbacks[SceneTree::MAX_IDLE_CALLBACKS] int SceneTree::idle_callback_count = 0; void SceneTree::_call_idle_callbacks() { - for (int i = 0; i < idle_callback_count; i++) { idle_callbacks[i](); } @@ -1339,7 +1239,6 @@ void SceneTree::add_idle_callback(IdleCallback p_callback) { } void SceneTree::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const { - if (p_function == "change_scene") { DirAccessRef dir_access = DirAccess::create(DirAccess::ACCESS_RESOURCES); List<String> directories; @@ -1371,7 +1270,6 @@ void SceneTree::get_argument_options(const StringName &p_function, int p_idx, Li } SceneTree::SceneTree() { - if (singleton == nullptr) singleton = this; _quit = false; diff --git a/scene/main/scene_tree.h b/scene/main/scene_tree.h index 319b5a7e74..57b6b4dcfa 100644 --- a/scene/main/scene_tree.h +++ b/scene/main/scene_tree.h @@ -70,7 +70,6 @@ public: }; class SceneTree : public MainLoop { - _THREAD_SAFE_CLASS_ GDCLASS(SceneTree, MainLoop); @@ -80,7 +79,6 @@ public: private: struct Group { - Vector<Node *> nodes; //uint64_t last_tree_version; bool changed; @@ -119,7 +117,6 @@ private: Node *edited_scene_root; #endif struct UGCall { - StringName group; StringName call; diff --git a/scene/main/shader_globals_override.cpp b/scene/main/shader_globals_override.cpp index 272cea8f2b..ebfc34b9c7 100644 --- a/scene/main/shader_globals_override.cpp +++ b/scene/main/shader_globals_override.cpp @@ -35,7 +35,6 @@ #include "scene/scene_string_names.h" StringName *ShaderGlobalsOverride::_remap(const StringName &p_name) const { - StringName *r = param_remaps.getptr(p_name); if (!r) { //not cached, do caching @@ -50,7 +49,6 @@ StringName *ShaderGlobalsOverride::_remap(const StringName &p_name) const { return r; } bool ShaderGlobalsOverride::_set(const StringName &p_name, const Variant &p_value) { - StringName *r = _remap(p_name); if (r) { @@ -75,7 +73,6 @@ bool ShaderGlobalsOverride::_set(const StringName &p_name, const Variant &p_valu } bool ShaderGlobalsOverride::_get(const StringName &p_name, Variant &r_ret) const { - StringName *r = _remap(p_name); if (r) { @@ -90,7 +87,6 @@ bool ShaderGlobalsOverride::_get(const StringName &p_name, Variant &r_ret) const } void ShaderGlobalsOverride::_get_property_list(List<PropertyInfo> *p_list) const { - Vector<StringName> variables; variables = RS::get_singleton()->global_variable_get_list(); for (int i = 0; i < variables.size(); i++) { @@ -198,7 +194,6 @@ void ShaderGlobalsOverride::_get_property_list(List<PropertyInfo> *p_list) const pinfo.hint_string = "Cubemap"; } break; default: { - } break; } @@ -221,7 +216,6 @@ void ShaderGlobalsOverride::_get_property_list(List<PropertyInfo> *p_list) const } void ShaderGlobalsOverride::_activate() { - List<Node *> nodes; get_tree()->get_nodes_in_group(SceneStringNames::get_singleton()->shader_overrides_group_active, &nodes); if (nodes.size() == 0) { @@ -242,14 +236,11 @@ void ShaderGlobalsOverride::_activate() { } void ShaderGlobalsOverride::_notification(int p_what) { - if (p_what == Node3D::NOTIFICATION_ENTER_TREE) { - add_to_group(SceneStringNames::get_singleton()->shader_overrides_group); _activate(); } else if (p_what == Node3D::NOTIFICATION_EXIT_TREE) { - if (active) { //remove overrides const StringName *K = nullptr; @@ -269,7 +260,6 @@ void ShaderGlobalsOverride::_notification(int p_what) { } String ShaderGlobalsOverride::get_configuration_warning() const { - if (!active) { return TTR("ShaderGlobalsOverride is not active because another node of the same type is in the scene."); } @@ -278,7 +268,6 @@ String ShaderGlobalsOverride::get_configuration_warning() const { } void ShaderGlobalsOverride::_bind_methods() { - ClassDB::bind_method(D_METHOD("_activate"), &ShaderGlobalsOverride::_activate); } diff --git a/scene/main/shader_globals_override.h b/scene/main/shader_globals_override.h index d470e6a7dc..51420e00cf 100644 --- a/scene/main/shader_globals_override.h +++ b/scene/main/shader_globals_override.h @@ -34,7 +34,6 @@ #include "scene/3d/node_3d.h" class ShaderGlobalsOverride : public Node { - GDCLASS(ShaderGlobalsOverride, Node); struct Override { diff --git a/scene/main/timer.cpp b/scene/main/timer.cpp index 7cab4028b8..81ab7e3391 100644 --- a/scene/main/timer.cpp +++ b/scene/main/timer.cpp @@ -33,11 +33,8 @@ #include "core/engine.h" void Timer::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_READY: { - if (autostart) { #ifdef TOOLS_ENABLED if (Engine::get_singleton()->is_editor_hint() && get_tree()->get_edited_scene_root() && (get_tree()->get_edited_scene_root() == this || get_tree()->get_edited_scene_root()->is_a_parent_of(this))) @@ -84,30 +81,24 @@ void Timer::set_wait_time(float p_time) { wait_time = p_time; } float Timer::get_wait_time() const { - return wait_time; } void Timer::set_one_shot(bool p_one_shot) { - one_shot = p_one_shot; } bool Timer::is_one_shot() const { - return one_shot; } void Timer::set_autostart(bool p_start) { - autostart = p_start; } bool Timer::has_autostart() const { - return autostart; } void Timer::start(float p_time) { - ERR_FAIL_COND_MSG(!is_inside_tree(), "Timer was not added to the SceneTree. Either add it or set autostart to true."); if (p_time > 0) { @@ -140,12 +131,10 @@ bool Timer::is_stopped() const { } float Timer::get_time_left() const { - return time_left > 0 ? time_left : 0; } void Timer::set_timer_process_mode(TimerProcessMode p_mode) { - if (timer_process_mode == p_mode) return; @@ -167,7 +156,6 @@ void Timer::set_timer_process_mode(TimerProcessMode p_mode) { } Timer::TimerProcessMode Timer::get_timer_process_mode() const { - return timer_process_mode; } @@ -184,7 +172,6 @@ void Timer::_set_process(bool p_process, bool p_force) { } void Timer::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_wait_time", "time_sec"), &Timer::set_wait_time); ClassDB::bind_method(D_METHOD("get_wait_time"), &Timer::get_wait_time); diff --git a/scene/main/timer.h b/scene/main/timer.h index 044566738e..61abf04f59 100644 --- a/scene/main/timer.h +++ b/scene/main/timer.h @@ -34,7 +34,6 @@ #include "scene/main/node.h" class Timer : public Node { - GDCLASS(Timer, Node); float wait_time; diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index 58024dab38..6fcf0ace7a 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -56,7 +56,6 @@ #include "servers/physics_server_2d.h" void ViewportTexture::setup_local_to_scene() { - if (vp) { vp->viewport_textures.erase(this); } @@ -87,7 +86,6 @@ void ViewportTexture::setup_local_to_scene() { } void ViewportTexture::set_viewport_path_in_scene(const NodePath &p_path) { - if (path == p_path) return; @@ -99,27 +97,22 @@ void ViewportTexture::set_viewport_path_in_scene(const NodePath &p_path) { } NodePath ViewportTexture::get_viewport_path_in_scene() const { - return path; } int ViewportTexture::get_width() const { - ERR_FAIL_COND_V_MSG(!vp, 0, "Viewport Texture must be set to use it."); return vp->size.width; } int ViewportTexture::get_height() const { - ERR_FAIL_COND_V_MSG(!vp, 0, "Viewport Texture must be set to use it."); return vp->size.height; } Size2 ViewportTexture::get_size() const { - ERR_FAIL_COND_V_MSG(!vp, Size2(), "Viewport Texture must be set to use it."); return vp->size; } RID ViewportTexture::get_rid() const { - //ERR_FAIL_COND_V_MSG(!vp, RID(), "Viewport Texture must be set to use it."); if (proxy.is_null()) { proxy_ph = RS::get_singleton()->texture_2d_placeholder_create(); @@ -129,17 +122,14 @@ RID ViewportTexture::get_rid() const { } bool ViewportTexture::has_alpha() const { - return false; } Ref<Image> ViewportTexture::get_data() const { - ERR_FAIL_COND_V_MSG(!vp, Ref<Image>(), "Viewport Texture must be set to use it."); return RS::get_singleton()->texture_2d_get(vp->texture_rid); } void ViewportTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_viewport_path_in_scene", "path"), &ViewportTexture::set_viewport_path_in_scene); ClassDB::bind_method(D_METHOD("get_viewport_path_in_scene"), &ViewportTexture::get_viewport_path_in_scene); @@ -147,13 +137,11 @@ void ViewportTexture::_bind_methods() { } ViewportTexture::ViewportTexture() { - vp = nullptr; set_local_to_scene(true); } ViewportTexture::~ViewportTexture() { - if (vp) { vp->viewport_textures.erase(this); } @@ -169,7 +157,6 @@ ViewportTexture::~ViewportTexture() { ///////////////////////////////////// class TooltipPanel : public PopupPanel { - GDCLASS(TooltipPanel, PopupPanel); public: @@ -177,7 +164,6 @@ public: }; class TooltipLabel : public Label { - GDCLASS(TooltipLabel, Label); public: @@ -185,7 +171,6 @@ public: }; Viewport::GUI::GUI() { - embed_subwindows_hint = false; embedding_subwindows = false; @@ -206,7 +191,6 @@ Viewport::GUI::GUI() { ///////////////////////////////////// void Viewport::update_worlds() { - if (!is_inside_tree()) return; @@ -219,7 +203,6 @@ void Viewport::update_worlds() { } void Viewport::_collision_object_input_event(CollisionObject3D *p_object, Camera3D *p_camera, const Ref<InputEvent> &p_input_event, const Vector3 &p_pos, const Vector3 &p_normal, int p_shape) { - Transform object_transform = p_object->get_global_transform(); Transform camera_transform = p_camera->get_global_transform(); ObjectID id = p_object->get_instance_id(); @@ -238,14 +221,12 @@ void Viewport::_collision_object_input_event(CollisionObject3D *p_object, Camera } void Viewport::_sub_window_update_order() { - for (int i = 0; i < gui.sub_windows.size(); i++) { RS::get_singleton()->canvas_item_set_draw_index(gui.sub_windows[i].canvas_item, i); } } void Viewport::_sub_window_register(Window *p_window) { - ERR_FAIL_COND(!is_inside_tree()); for (int i = 0; i < gui.sub_windows.size(); i++) { ERR_FAIL_COND(gui.sub_windows[i].window == p_window); @@ -268,7 +249,6 @@ void Viewport::_sub_window_register(Window *p_window) { } void Viewport::_sub_window_update(Window *p_window) { - int index = -1; for (int i = 0; i < gui.sub_windows.size(); i++) { if (gui.sub_windows[i].window == p_window) { @@ -313,7 +293,6 @@ void Viewport::_sub_window_update(Window *p_window) { } void Viewport::_sub_window_grab_focus(Window *p_window) { - if (p_window == nullptr) { //release current focus if (gui.subwindow_focused) { @@ -385,7 +364,6 @@ void Viewport::_sub_window_grab_focus(Window *p_window) { } void Viewport::_sub_window_remove(Window *p_window) { - for (int i = 0; i < gui.sub_windows.size(); i++) { if (gui.sub_windows[i].window == p_window) { RS::get_singleton()->free(gui.sub_windows[i].canvas_item); @@ -407,7 +385,6 @@ void Viewport::_sub_window_remove(Window *p_window) { gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_OUT); if (parent_visible && parent_visible != this) { - gui.subwindow_focused = parent_visible; gui.subwindow_focused->_event_callback(DisplayServer::WINDOW_EVENT_FOCUS_IN); } else { @@ -444,11 +421,8 @@ void Viewport::_own_world_3d_changed() { } void Viewport::_notification(int p_what) { - switch (p_what) { - case NOTIFICATION_ENTER_TREE: { - gui.embedding_subwindows = gui.embed_subwindows_hint; if (get_parent()) { @@ -491,7 +465,6 @@ void Viewport::_notification(int p_what) { if (listeners.size() && !listener) { Listener3D *first = nullptr; for (Set<Listener3D *>::Element *E = listeners.front(); E; E = E->next()) { - if (first == nullptr || first->is_greater_than(E->get())) { first = E->get(); } @@ -505,7 +478,6 @@ void Viewport::_notification(int p_what) { //there are cameras but no current camera, pick first in tree and make it current Camera3D *first = nullptr; for (Set<Camera3D *>::Element *E = cameras.front(); E; E = E->next()) { - if (first == nullptr || first->is_greater_than(E->get())) { first = E->get(); } @@ -522,7 +494,6 @@ void Viewport::_notification(int p_what) { } break; case NOTIFICATION_EXIT_TREE: { - _gui_cancel_tooltip(); if (world_2d.is_valid()) world_2d->_remove_viewport(this); @@ -548,7 +519,6 @@ void Viewport::_notification(int p_what) { } break; case NOTIFICATION_INTERNAL_PROCESS: { - if (gui.tooltip_timer >= 0) { gui.tooltip_timer -= get_process_delta_time(); if (gui.tooltip_timer < 0) { @@ -558,9 +528,7 @@ void Viewport::_notification(int p_what) { } break; case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { - if (get_tree()->is_debugging_collisions_hint() && contact_2d_debug.is_valid()) { - RenderingServer::get_singleton()->canvas_item_clear(contact_2d_debug); RenderingServer::get_singleton()->canvas_item_set_draw_index(contact_2d_debug, 0xFFFFF); //very high index @@ -569,13 +537,11 @@ void Viewport::_notification(int p_what) { Color ccol = get_tree()->get_debug_collision_contact_color(); for (int i = 0; i < point_count; i++) { - RenderingServer::get_singleton()->canvas_item_add_rect(contact_2d_debug, Rect2(points[i] - Vector2(2, 2), Vector2(5, 5)), ccol); } } if (get_tree()->is_debugging_collisions_hint() && contact_3d_debug_multimesh.is_valid()) { - Vector<Vector3> points = PhysicsServer3D::get_singleton()->space_get_contacts(find_world_3d()->get_space()); int point_count = PhysicsServer3D::get_singleton()->space_get_contact_count(find_world_3d()->get_space()); @@ -583,7 +549,6 @@ void Viewport::_notification(int p_what) { } if (physics_object_picking && (to_screen_rect == Rect2i() || Input::get_singleton()->get_mouse_mode() != Input::MOUSE_MODE_CAPTURED)) { - #ifndef _3D_DISABLED Vector2 last_pos(1e20, 1e20); CollisionObject3D *last_object = nullptr; @@ -621,7 +586,6 @@ void Viewport::_notification(int p_what) { } while (physics_picking_events.size()) { - Ref<InputEvent> ev = physics_picking_events.front()->get(); physics_picking_events.pop_front(); @@ -631,7 +595,6 @@ void Viewport::_notification(int p_what) { Ref<InputEventMouseMotion> mm = ev; if (mm.is_valid()) { - pos = mm->get_position(); is_mouse = true; @@ -647,7 +610,6 @@ void Viewport::_notification(int p_what) { Ref<InputEventMouseButton> mb = ev; if (mb.is_valid()) { - pos = mb->get_position(); is_mouse = true; @@ -715,7 +677,6 @@ void Viewport::_notification(int p_what) { int rc = ss2d->intersect_point_on_canvas(point, canvas_layer_id, res, 64, Set<RID>(), 0xFFFFFFFF, true, true, true); for (int i = 0; i < rc; i++) { - if (res[i].collider_id.is_valid() && res[i].collider) { CollisionObject2D *co = Object::cast_to<CollisionObject2D>(res[i].collider); if (co) { @@ -750,7 +711,6 @@ void Viewport::_notification(int p_what) { if (E->get() != frame) { Object *o = ObjectDB::get_instance(E->key()); if (o) { - CollisionObject2D *co = Object::cast_to<CollisionObject2D>(o); if (co) { co->_mouse_exit(); @@ -771,7 +731,6 @@ void Viewport::_notification(int p_what) { bool captured = false; if (physics_object_capture.is_valid()) { - CollisionObject3D *co = Object::cast_to<CollisionObject3D>(ObjectDB::get_instance(physics_object_capture)); if (co && camera) { _collision_object_input_event(co, camera, ev, Vector3(), Vector3(), 0); @@ -788,7 +747,6 @@ void Viewport::_notification(int p_what) { if (captured) { //none } else if (pos == last_pos) { - if (last_id.is_valid()) { if (ObjectDB::get_instance(last_id) && last_object) { //good, exists @@ -799,22 +757,17 @@ void Viewport::_notification(int p_what) { } } } else { - if (camera) { - Vector3 from = camera->project_ray_origin(pos); Vector3 dir = camera->project_ray_normal(pos); PhysicsDirectSpaceState3D *space = PhysicsServer3D::get_singleton()->space_get_direct_state(find_world_3d()->get_space()); if (space) { - bool col = space->intersect_ray(from, from + dir * 10000, result, Set<RID>(), 0xFFFFFFFF, true, true, true); ObjectID new_collider; if (col) { - CollisionObject3D *co = Object::cast_to<CollisionObject3D>(result.collider); if (co) { - _collision_object_input_event(co, camera, ev, result.position, result.normal, result.shape); last_object = co; last_id = result.collider_id; @@ -826,9 +779,7 @@ void Viewport::_notification(int p_what) { } if (is_mouse && new_collider != physics_object_over) { - if (physics_object_over.is_valid()) { - CollisionObject3D *co = Object::cast_to<CollisionObject3D>(ObjectDB::get_instance(physics_object_over)); if (co) { co->_mouse_exit(); @@ -836,7 +787,6 @@ void Viewport::_notification(int p_what) { } if (new_collider.is_valid()) { - CollisionObject3D *co = Object::cast_to<CollisionObject3D>(ObjectDB::get_instance(new_collider)); if (co) { co->_mouse_enter(); @@ -857,7 +807,6 @@ void Viewport::_notification(int p_what) { } break; case NOTIFICATION_WM_MOUSE_EXIT: case NOTIFICATION_WM_FOCUS_OUT: { - _drop_physics_mouseover(); if (gui.mouse_focus && !gui.forced_mouse_focus) { @@ -868,7 +817,6 @@ void Viewport::_notification(int p_what) { } RID Viewport::get_viewport_rid() const { - return viewport; } @@ -880,7 +828,6 @@ void Viewport::update_canvas_items() { } void Viewport::_set_size(const Size2i &p_size, const Size2i &p_size_2d_override, const Rect2i &p_to_screen_rect, const Transform2D &p_stretch_transform, bool p_allocated) { - if (size == p_size && size_allocated == p_allocated && stretch_transform == p_stretch_transform && p_size_2d_override == size_2d_override && to_screen_rect != p_to_screen_rect) return; @@ -913,7 +860,6 @@ bool Viewport::_is_size_allocated() const { } Rect2 Viewport::get_visible_rect() const { - Rect2 r; if (size == Size2()) { @@ -933,7 +879,6 @@ void Viewport::_update_listener() { } void Viewport::_update_listener_2d() { - /* if (is_inside_tree() && audio_listener && (!get_parent() || (Object::cast_to<Control>(get_parent()) && Object::cast_to<Control>(get_parent())->is_visible_in_tree()))) SpatialSound2DServer::get_singleton()->listener_set_space(internal_listener_2d, find_world_2d()->get_sound_space()); @@ -943,7 +888,6 @@ void Viewport::_update_listener_2d() { } void Viewport::set_as_audio_listener(bool p_enable) { - if (p_enable == audio_listener) return; @@ -952,12 +896,10 @@ void Viewport::set_as_audio_listener(bool p_enable) { } bool Viewport::is_audio_listener() const { - return audio_listener; } void Viewport::set_as_audio_listener_2d(bool p_enable) { - if (p_enable == audio_listener_2d) return; @@ -967,7 +909,6 @@ void Viewport::set_as_audio_listener_2d(bool p_enable) { } bool Viewport::is_audio_listener_2d() const { - return audio_listener_2d; } @@ -1004,7 +945,6 @@ Transform2D Viewport::get_canvas_transform_override() const { } void Viewport::set_canvas_transform(const Transform2D &p_transform) { - canvas_transform = p_transform; if (!override_canvas_transform) { @@ -1013,26 +953,22 @@ void Viewport::set_canvas_transform(const Transform2D &p_transform) { } Transform2D Viewport::get_canvas_transform() const { - return canvas_transform; } void Viewport::_update_global_transform() { - Transform2D sxform = stretch_transform * global_canvas_transform; RenderingServer::get_singleton()->viewport_set_global_canvas_transform(viewport, sxform); } void Viewport::set_global_canvas_transform(const Transform2D &p_transform) { - global_canvas_transform = p_transform; _update_global_transform(); } Transform2D Viewport::get_global_canvas_transform() const { - return global_canvas_transform; } @@ -1040,7 +976,6 @@ void Viewport::_listener_transform_changed_notify() { } void Viewport::_listener_set(Listener3D *p_listener) { - #ifndef _3D_DISABLED if (listener == p_listener) @@ -1054,13 +989,11 @@ void Viewport::_listener_set(Listener3D *p_listener) { } bool Viewport::_listener_add(Listener3D *p_listener) { - listeners.insert(p_listener); return listeners.size() == 1; } void Viewport::_listener_remove(Listener3D *p_listener) { - listeners.erase(p_listener); if (listener == p_listener) { listener = nullptr; @@ -1069,10 +1002,8 @@ void Viewport::_listener_remove(Listener3D *p_listener) { #ifndef _3D_DISABLED void Viewport::_listener_make_next_current(Listener3D *p_exclude) { - if (listeners.size() > 0) { for (Set<Listener3D *>::Element *E = listeners.front(); E; E = E->next()) { - if (p_exclude == E->get()) continue; if (!E->get()->is_inside_tree()) @@ -1093,13 +1024,11 @@ void Viewport::_listener_make_next_current(Listener3D *p_exclude) { #endif void Viewport::_camera_transform_changed_notify() { - #ifndef _3D_DISABLED #endif } void Viewport::_camera_set(Camera3D *p_camera) { - #ifndef _3D_DISABLED if (camera == p_camera) @@ -1128,13 +1057,11 @@ void Viewport::_camera_set(Camera3D *p_camera) { } bool Viewport::_camera_add(Camera3D *p_camera) { - cameras.insert(p_camera); return cameras.size() == 1; } void Viewport::_camera_remove(Camera3D *p_camera) { - cameras.erase(p_camera); if (camera == p_camera) { camera->notification(Camera3D::NOTIFICATION_LOST_CURRENT); @@ -1144,9 +1071,7 @@ void Viewport::_camera_remove(Camera3D *p_camera) { #ifndef _3D_DISABLED void Viewport::_camera_make_next_current(Camera3D *p_exclude) { - for (Set<Camera3D *>::Element *E = cameras.front(); E; E = E->next()) { - if (p_exclude == E->get()) continue; if (!E->get()->is_inside_tree()) @@ -1160,23 +1085,19 @@ void Viewport::_camera_make_next_current(Camera3D *p_exclude) { #endif void Viewport::_canvas_layer_add(CanvasLayer *p_canvas_layer) { - canvas_layers.insert(p_canvas_layer); } void Viewport::_canvas_layer_remove(CanvasLayer *p_canvas_layer) { - canvas_layers.erase(p_canvas_layer); } void Viewport::set_transparent_background(bool p_enable) { - transparent_bg = p_enable; RS::get_singleton()->viewport_set_transparent_background(viewport, p_enable); } bool Viewport::has_transparent_background() const { - return transparent_bg; } @@ -1211,7 +1132,6 @@ void Viewport::set_world_2d(const Ref<World2D> &p_world_2d) { } Ref<World2D> Viewport::find_world_2d() const { - if (world_2d.is_valid()) return world_2d; else if (parent) @@ -1221,9 +1141,7 @@ Ref<World2D> Viewport::find_world_2d() const { } void Viewport::_propagate_enter_world(Node *p_node) { - if (p_node != this) { - if (!p_node->is_inside_tree()) //may not have entered scene yet return; @@ -1234,7 +1152,6 @@ void Viewport::_propagate_enter_world(Node *p_node) { #endif Viewport *v = Object::cast_to<Viewport>(p_node); if (v) { - if (v->world_3d.is_valid() || v->own_world_3d.is_valid()) return; } @@ -1244,13 +1161,11 @@ void Viewport::_propagate_enter_world(Node *p_node) { } for (int i = 0; i < p_node->get_child_count(); i++) { - _propagate_enter_world(p_node->get_child(i)); } } void Viewport::_propagate_viewport_notification(Node *p_node, int p_what) { - p_node->notification(p_what); for (int i = 0; i < p_node->get_child_count(); i++) { Node *c = p_node->get_child(i); @@ -1261,9 +1176,7 @@ void Viewport::_propagate_viewport_notification(Node *p_node, int p_what) { } void Viewport::_propagate_exit_world(Node *p_node) { - if (p_node != this) { - if (!p_node->is_inside_tree()) //may have exited scene already return; @@ -1274,7 +1187,6 @@ void Viewport::_propagate_exit_world(Node *p_node) { #endif Viewport *v = Object::cast_to<Viewport>(p_node); if (v) { - if (v->world_3d.is_valid() || v->own_world_3d.is_valid()) return; } @@ -1284,13 +1196,11 @@ void Viewport::_propagate_exit_world(Node *p_node) { } for (int i = 0; i < p_node->get_child_count(); i++) { - _propagate_exit_world(p_node->get_child(i)); } } void Viewport::set_world_3d(const Ref<World3D> &p_world_3d) { - if (world_3d == p_world_3d) return; @@ -1323,17 +1233,14 @@ void Viewport::set_world_3d(const Ref<World3D> &p_world_3d) { } Ref<World3D> Viewport::get_world_3d() const { - return world_3d; } Ref<World2D> Viewport::get_world_2d() const { - return world_2d; } Ref<World3D> Viewport::find_world_3d() const { - if (own_world_3d.is_valid()) return own_world_3d; else if (world_3d.is_valid()) @@ -1345,7 +1252,6 @@ Ref<World3D> Viewport::find_world_3d() const { } Listener3D *Viewport::get_listener() const { - return listener; } @@ -1354,7 +1260,6 @@ Camera3D *Viewport::get_camera() const { } void Viewport::enable_camera_override(bool p_enable) { - #ifndef _3D_DISABLED if (p_enable == camera_override) { return; @@ -1427,13 +1332,11 @@ void Viewport::set_camera_override_orthogonal(float p_size, float p_z_near, floa } Transform2D Viewport::get_final_transform() const { - return stretch_transform * global_canvas_transform; } void Viewport::_update_canvas_items(Node *p_node) { if (p_node != this) { - Viewport *vp = Object::cast_to<Viewport>(p_node); if (vp) return; @@ -1452,12 +1355,10 @@ void Viewport::_update_canvas_items(Node *p_node) { } Ref<ViewportTexture> Viewport::get_texture() const { - return default_texture; } void Viewport::set_shadow_atlas_size(int p_size) { - if (shadow_atlas_size == p_size) return; @@ -1466,12 +1367,10 @@ void Viewport::set_shadow_atlas_size(int p_size) { } int Viewport::get_shadow_atlas_size() const { - return shadow_atlas_size; } void Viewport::set_shadow_atlas_quadrant_subdiv(int p_quadrant, ShadowAtlasQuadrantSubdiv p_subdiv) { - ERR_FAIL_INDEX(p_quadrant, 4); ERR_FAIL_INDEX(p_subdiv, SHADOW_ATLAS_QUADRANT_SUBDIV_MAX); @@ -1484,17 +1383,14 @@ void Viewport::set_shadow_atlas_quadrant_subdiv(int p_quadrant, ShadowAtlasQuadr RS::get_singleton()->viewport_set_shadow_atlas_quadrant_subdivision(viewport, p_quadrant, subdiv[p_subdiv]); } Viewport::ShadowAtlasQuadrantSubdiv Viewport::get_shadow_atlas_quadrant_subdiv(int p_quadrant) const { - ERR_FAIL_INDEX_V(p_quadrant, 4, SHADOW_ATLAS_QUADRANT_SUBDIV_DISABLED); return shadow_atlas_quadrant_subdiv[p_quadrant]; } Transform2D Viewport::_get_input_pre_xform() const { - Transform2D pre_xf; if (to_screen_rect.size.x != 0 && to_screen_rect.size.y != 0) { - pre_xf.elements[2] = -to_screen_rect.position; pre_xf.scale(size / to_screen_rect.size); } @@ -1503,25 +1399,21 @@ Transform2D Viewport::_get_input_pre_xform() const { } Ref<InputEvent> Viewport::_make_input_local(const Ref<InputEvent> &ev) { - Transform2D ai = get_final_transform().affine_inverse() * _get_input_pre_xform(); return ev->xformed_by(ai); } Vector2 Viewport::get_mouse_position() const { - return gui.last_mouse_pos; } void Viewport::warp_mouse(const Vector2 &p_pos) { - Vector2 gpos = (get_final_transform().affine_inverse() * _get_input_pre_xform()).affine_inverse().xform(p_pos); Input::get_singleton()->warp_mouse_position(gpos); } void Viewport::_gui_sort_roots() { - if (!gui.roots_order_dirty) return; @@ -1531,7 +1423,6 @@ void Viewport::_gui_sort_roots() { } void Viewport::_gui_cancel_tooltip() { - gui.tooltip = nullptr; gui.tooltip_timer = -1; if (gui.tooltip_popup) { @@ -1542,12 +1433,10 @@ void Viewport::_gui_cancel_tooltip() { } String Viewport::_gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Control **r_which) { - Vector2 pos = p_pos; String tooltip; while (p_control) { - tooltip = p_control->get_tooltip(pos); if (r_which) { @@ -1570,7 +1459,6 @@ String Viewport::_gui_get_tooltip(Control *p_control, const Vector2 &p_pos, Cont } void Viewport::_gui_show_tooltip() { - if (!gui.tooltip) { return; } @@ -1639,7 +1527,6 @@ void Viewport::_gui_show_tooltip() { } void Viewport::_gui_call_input(Control *p_control, const Ref<InputEvent> &p_input) { - //_block(); Ref<InputEvent> ev = p_input; @@ -1659,10 +1546,8 @@ void Viewport::_gui_call_input(Control *p_control, const Ref<InputEvent> &p_inpu CanvasItem *ci = p_control; while (ci) { - Control *control = Object::cast_to<Control>(ci); if (control) { - if (control->data.mouse_filter != Control::MOUSE_FILTER_IGNORE) { control->emit_signal(SceneStringNames::get_singleton()->gui_input, ev); //signal should be first, so it's possible to override an event (and then accept it) } @@ -1694,13 +1579,10 @@ void Viewport::_gui_call_input(Control *p_control, const Ref<InputEvent> &p_inpu } void Viewport::_gui_call_notification(Control *p_control, int p_what) { - CanvasItem *ci = p_control; while (ci) { - Control *control = Object::cast_to<Control>(ci); if (control) { - if (control->data.mouse_filter != Control::MOUSE_FILTER_IGNORE) { control->notification(p_what); } @@ -1723,12 +1605,10 @@ void Viewport::_gui_call_notification(Control *p_control, int p_what) { //_unblock(); } Control *Viewport::_gui_find_control(const Point2 &p_global) { - //aca va subwindows _gui_sort_roots(); for (List<Control *>::Element *E = gui.roots.back(); E; E = E->prev()) { - Control *sw = E->get(); if (!sw->is_visible_in_tree()) continue; @@ -1749,7 +1629,6 @@ Control *Viewport::_gui_find_control(const Point2 &p_global) { } Control *Viewport::_gui_find_control_at_pos(CanvasItem *p_node, const Point2 &p_global, const Transform2D &p_xform, Transform2D &r_inv_xform) { - if (Object::cast_to<Viewport>(p_node)) return nullptr; @@ -1766,9 +1645,7 @@ Control *Viewport::_gui_find_control_at_pos(CanvasItem *p_node, const Point2 &p_ Control *c = Object::cast_to<Control>(p_node); if (!c || !c->clips_input() || c->has_point(matrix.affine_inverse().xform(p_global))) { - for (int i = p_node->get_child_count() - 1; i >= 0; i--) { - CanvasItem *ci = Object::cast_to<CanvasItem>(p_node->get_child(i)); if (!ci || ci->is_set_as_toplevel()) continue; @@ -1793,14 +1670,11 @@ Control *Viewport::_gui_find_control_at_pos(CanvasItem *p_node, const Point2 &p_ } bool Viewport::_gui_drop(Control *p_at_control, Point2 p_at_pos, bool p_just_check) { - { //attempt grab, try parent controls too CanvasItem *ci = p_at_control; while (ci) { - Control *control = Object::cast_to<Control>(ci); if (control) { - if (control->can_drop_data(p_at_pos, gui.drag_data)) { if (!p_just_check) { control->drop_data(p_at_pos, gui.drag_data); @@ -1826,7 +1700,6 @@ bool Viewport::_gui_drop(Control *p_at_control, Point2 p_at_pos, bool p_just_che } void Viewport::_gui_input_event(Ref<InputEvent> p_event) { - ERR_FAIL_COND(p_event.is_null()); //? @@ -1839,19 +1712,15 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid()) { - gui.key_event_accepted = false; Point2 mpos = mb->get_position(); if (mb->is_pressed()) { - Size2 pos = mpos; if (gui.mouse_focus_mask) { - //do not steal mouse focus and stuff while a focus mask exists gui.mouse_focus_mask |= 1 << (mb->get_button_index() - 1); //add the button to the mask } else { - bool is_handled = false; if (is_handled) { @@ -1892,7 +1761,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { #ifdef DEBUG_ENABLED if (EngineDebugger::get_singleton() && gui.mouse_focus) { - Array arr; arr.push_back(gui.mouse_focus->get_path()); arr.push_back(gui.mouse_focus->get_class()); @@ -1903,7 +1771,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { if (mb->get_button_index() == BUTTON_LEFT) { //assign focus CanvasItem *ci = gui.mouse_focus; while (ci) { - Control *control = Object::cast_to<Control>(ci); if (control) { if (control->get_focus_mode() != Control::FOCUS_NONE) { @@ -1931,7 +1798,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { set_input_as_handled(); if (gui.drag_data.get_type() != Variant::NIL && mb->get_button_index() == BUTTON_LEFT) { - //alternate drop use (when using force_drag(), as proposed by #5342 if (gui.mouse_focus) { _gui_drop(gui.mouse_focus, pos, false); @@ -1952,9 +1818,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { //gui.tooltip_popup->hide(); } else { - if (gui.drag_data.get_type() != Variant::NIL && mb->get_button_index() == BUTTON_LEFT) { - if (gui.drag_mouse_over) { _gui_drop(gui.drag_mouse_over, gui.drag_mouse_over_pos, false); } @@ -2009,7 +1873,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - gui.key_event_accepted = false; Point2 mpos = mm->get_position(); @@ -2019,22 +1882,17 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { // D&D if (!gui.drag_attempted && gui.mouse_focus && mm->get_button_mask() & BUTTON_MASK_LEFT) { - gui.drag_accum += mm->get_relative(); float len = gui.drag_accum.length(); if (len > 10) { - { //attempt grab, try parent controls too CanvasItem *ci = gui.mouse_focus; while (ci) { - Control *control = Object::cast_to<Control>(ci); if (control) { - gui.dragging = true; gui.drag_data = control->get_drag_data(control->get_global_transform_with_canvas().affine_inverse().xform(mpos) - gui.drag_accum); if (gui.drag_data.get_type() != Variant::NIL) { - gui.mouse_focus = nullptr; gui.forced_mouse_focus = false; gui.mouse_focus_mask = 0; @@ -2061,7 +1919,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { gui.drag_attempted = true; if (gui.drag_data.get_type() != Variant::NIL) { - _propagate_viewport_notification(this, NOTIFICATION_DRAG_BEGIN); } } @@ -2072,12 +1929,10 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { //recompute focus_inv_xform again here } else { - over = _gui_find_control(mpos); } if (over != gui.mouse_over) { - if (gui.mouse_over) { _gui_call_notification(gui.mouse_over, Control::NOTIFICATION_MOUSE_EXIT); } @@ -2094,7 +1949,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { DisplayServer::CursorShape ds_cursor_shape = (DisplayServer::CursorShape)Input::get_singleton()->get_default_cursor_shape(); if (over) { - Transform2D localizer = over->get_global_transform_with_canvas().affine_inverse(); Size2 pos = localizer.xform(mpos); Vector2 speed = localizer.basis_xform(mm->get_speed()); @@ -2124,7 +1978,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { is_tooltip_shown = true; } } else { - Variant t = gui.tooltip_popup->call("get_tooltip_text"); if (t.get_type() == Variant::STRING) { @@ -2140,7 +1993,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { } if (can_tooltip && !is_tooltip_shown) { - gui.tooltip = over; gui.tooltip_pos = over->get_screen_transform().xform(pos); //(parent_xform * get_transform()).affine_inverse().xform(pos); gui.tooltip_timer = gui.tooltip_delay; @@ -2263,7 +2115,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { gui.drag_mouse_over_pos = localizer.xform(viewport_pos); if (mm->get_button_mask() & BUTTON_MASK_LEFT) { - bool can_drop = _gui_drop(gui.drag_mouse_over, gui.drag_mouse_over_pos, true); if (!can_drop) { @@ -2284,15 +2135,11 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Ref<InputEventScreenTouch> touch_event = p_event; if (touch_event.is_valid()) { - Size2 pos = touch_event->get_position(); if (touch_event->is_pressed()) { - Control *over = _gui_find_control(pos); if (over) { - if (over->can_process()) { - touch_event = touch_event->xformed_by(Transform2D()); //make a copy if (over == gui.mouse_focus) { pos = gui.focus_inv_xform.xform(pos); @@ -2306,9 +2153,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { return; } } else if (touch_event->get_index() == 0 && gui.last_mouse_focus) { - if (gui.last_mouse_focus->can_process()) { - touch_event = touch_event->xformed_by(Transform2D()); //make a copy touch_event->set_position(gui.focus_inv_xform.xform(pos)); @@ -2321,7 +2166,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Ref<InputEventGesture> gesture_event = p_event; if (gesture_event.is_valid()) { - gui.key_event_accepted = false; _gui_cancel_tooltip(); @@ -2330,9 +2174,7 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Control *over = _gui_find_control(pos); if (over) { - if (over->can_process()) { - gesture_event = gesture_event->xformed_by(Transform2D()); //make a copy if (over == gui.mouse_focus) { pos = gui.focus_inv_xform.xform(pos); @@ -2349,15 +2191,12 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Ref<InputEventScreenDrag> drag_event = p_event; if (drag_event.is_valid()) { - Control *over = gui.mouse_focus; if (!over) { over = _gui_find_control(drag_event->get_position()); } if (over) { - if (over->can_process()) { - Transform2D localizer = over->get_global_transform_with_canvas().affine_inverse(); Size2 pos = localizer.xform(drag_event->get_position()); Vector2 speed = localizer.basis_xform(drag_event->get_speed()); @@ -2378,13 +2217,11 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { } if (mm.is_null() && mb.is_null() && p_event->is_action_type()) { - if (gui.key_focus && !gui.key_focus->is_visible_in_tree()) { gui.key_focus->release_focus(); } if (gui.key_focus) { - gui.key_event_accepted = false; if (gui.key_focus->can_process()) { gui.key_focus->call_multilevel(SceneStringNames::get_singleton()->_gui_input, p_event); @@ -2393,7 +2230,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { } if (gui.key_event_accepted) { - set_input_as_handled(); return; } @@ -2414,32 +2250,26 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { Input *input = Input::get_singleton(); if (p_event->is_action_pressed("ui_focus_next") && input->is_action_just_pressed("ui_focus_next")) { - next = from->find_next_valid_focus(); } if (p_event->is_action_pressed("ui_focus_prev") && input->is_action_just_pressed("ui_focus_prev")) { - next = from->find_prev_valid_focus(); } if (!mods && p_event->is_action_pressed("ui_up") && input->is_action_just_pressed("ui_up")) { - next = from->_get_focus_neighbour(MARGIN_TOP); } if (!mods && p_event->is_action_pressed("ui_left") && input->is_action_just_pressed("ui_left")) { - next = from->_get_focus_neighbour(MARGIN_LEFT); } if (!mods && p_event->is_action_pressed("ui_right") && input->is_action_just_pressed("ui_right")) { - next = from->_get_focus_neighbour(MARGIN_RIGHT); } if (!mods && p_event->is_action_pressed("ui_down") && input->is_action_just_pressed("ui_down")) { - next = from->_get_focus_neighbour(MARGIN_BOTTOM); } @@ -2452,7 +2282,6 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) { } List<Control *>::Element *Viewport::_gui_add_root_control(Control *p_control) { - gui.roots_order_dirty = true; return gui.roots.push_back(p_control); } @@ -2462,7 +2291,6 @@ void Viewport::_gui_set_root_order_dirty() { } void Viewport::_gui_force_drag(Control *p_base, const Variant &p_data, Control *p_control) { - ERR_FAIL_COND_MSG(p_data.get_type() == Variant::NIL, "Drag data must be a value."); gui.dragging = true; @@ -2475,7 +2303,6 @@ void Viewport::_gui_force_drag(Control *p_base, const Variant &p_data, Control * } void Viewport::_gui_set_drag_preview(Control *p_base, Control *p_control) { - ERR_FAIL_NULL(p_control); ERR_FAIL_COND(!Object::cast_to<Control>((Object *)p_control)); ERR_FAIL_COND(p_control->is_inside_tree()); @@ -2493,19 +2320,16 @@ void Viewport::_gui_set_drag_preview(Control *p_base, Control *p_control) { } void Viewport::_gui_remove_root_control(List<Control *>::Element *RI) { - gui.roots.erase(RI); } void Viewport::_gui_unfocus_control(Control *p_control) { - if (gui.key_focus == p_control) { gui.key_focus->release_focus(); } } void Viewport::_gui_hid_control(Control *p_control) { - if (gui.mouse_focus == p_control) { _drop_mouse_focus(); } @@ -2521,7 +2345,6 @@ void Viewport::_gui_hid_control(Control *p_control) { } void Viewport::_gui_remove_control(Control *p_control) { - if (gui.mouse_focus == p_control) { gui.mouse_focus = nullptr; gui.forced_mouse_focus = false; @@ -2541,7 +2364,6 @@ void Viewport::_gui_remove_control(Control *p_control) { } void Viewport::_gui_remove_focus() { - if (gui.key_focus) { Node *f = gui.key_focus; gui.key_focus = nullptr; @@ -2550,12 +2372,10 @@ void Viewport::_gui_remove_focus() { } bool Viewport::_gui_control_has_focus(const Control *p_control) { - return gui.key_focus == p_control; } void Viewport::_gui_control_grab_focus(Control *p_control) { - //no need for change if (gui.key_focus && gui.key_focus == p_control) return; @@ -2567,14 +2387,12 @@ void Viewport::_gui_control_grab_focus(Control *p_control) { } void Viewport::_gui_accept_event() { - gui.key_event_accepted = true; if (is_inside_tree()) set_input_as_handled(); } void Viewport::_drop_mouse_focus() { - Control *c = gui.mouse_focus; int mask = gui.mouse_focus_mask; gui.mouse_focus = nullptr; @@ -2582,7 +2400,6 @@ void Viewport::_drop_mouse_focus() { gui.mouse_focus_mask = 0; for (int i = 0; i < 3; i++) { - if (mask & (1 << i)) { Ref<InputEventMouseButton> mb; mb.instance(); @@ -2596,7 +2413,6 @@ void Viewport::_drop_mouse_focus() { } void Viewport::_drop_physics_mouseover() { - physics_has_last_mousepos = false; while (physics_2d_mouseover.size()) { @@ -2622,18 +2438,15 @@ void Viewport::_drop_physics_mouseover() { } Control *Viewport::_gui_get_focus_owner() { - return gui.key_focus; } void Viewport::_gui_grab_click_focus(Control *p_control) { - gui.mouse_click_grabber = p_control; call_deferred("_post_gui_grab_click_focus"); } void Viewport::_post_gui_grab_click_focus() { - Control *focus_grabber = gui.mouse_click_grabber; if (!focus_grabber) { // Redundant grab requests were made @@ -2642,7 +2455,6 @@ void Viewport::_post_gui_grab_click_focus() { gui.mouse_click_grabber = nullptr; if (gui.mouse_focus) { - if (gui.mouse_focus == focus_grabber) return; @@ -2650,9 +2462,7 @@ void Viewport::_post_gui_grab_click_focus() { Point2 click = gui.mouse_focus->get_global_transform_with_canvas().affine_inverse().xform(gui.last_mouse_pos); for (int i = 0; i < 3; i++) { - if (mask & (1 << i)) { - Ref<InputEventMouseButton> mb; mb.instance(); @@ -2670,9 +2480,7 @@ void Viewport::_post_gui_grab_click_focus() { click = gui.mouse_focus->get_global_transform_with_canvas().affine_inverse().xform(gui.last_mouse_pos); for (int i = 0; i < 3; i++) { - if (mask & (1 << i)) { - Ref<InputEventMouseButton> mb; mb.instance(); @@ -2690,7 +2498,6 @@ void Viewport::_post_gui_grab_click_focus() { /////////////////////////////// void Viewport::input_text(const String &p_text) { - if (gui.subwindow_focused) { gui.subwindow_focused->input_text(p_text); return; @@ -2701,7 +2508,6 @@ void Viewport::input_text(const String &p_text) { } } Viewport::SubWindowResize Viewport::_sub_window_get_resize_margin(Window *p_subwindow, const Point2 &p_point) { - if (p_subwindow->get_flag(Window::FLAG_BORDERLESS)) { return SUB_WINDOW_RESIZE_DISABLED; } @@ -2765,14 +2571,11 @@ Viewport::SubWindowResize Viewport::_sub_window_get_resize_margin(Window *p_subw return SUB_WINDOW_RESIZE_DISABLED; } bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { - if (gui.subwindow_drag != SUB_WINDOW_DRAG_DISABLED) { - ERR_FAIL_COND_V(gui.subwindow_focused == nullptr, false); Ref<InputEventMouseButton> mb = p_event; if (mb.is_valid() && !mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - if (gui.subwindow_drag == SUB_WINDOW_DRAG_CLOSE) { if (gui.subwindow_drag_close_rect.has_point(mb->get_position())) { //close window @@ -2787,7 +2590,6 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - if (gui.subwindow_drag == SUB_WINDOW_DRAG_MOVE) { Vector2 diff = mm->get_position() - gui.subwindow_drag_from; Rect2i new_rect(gui.subwindow_drag_pos + diff, gui.subwindow_focused->get_size()); @@ -2813,7 +2615,6 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { switch (gui.subwindow_resize_mode) { case SUB_WINDOW_RESIZE_TOP_LEFT: { - diff.x = MIN(diff.x, limit.x); diff.y = MIN(diff.y, limit.y); r.position += diff; @@ -2879,7 +2680,6 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { //if the event is a mouse button, we need to check whether another window was clicked if (mb.is_valid() && mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) { - bool click_on_window = false; for (int i = gui.sub_windows.size() - 1; i >= 0; i--) { SubWindow &sw = gui.sub_windows.write[i]; @@ -2896,7 +2696,6 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { title_bar.size.y = title_height; if (title_bar.has_point(mb->get_position())) { - click_on_window = true; int close_h_ofs = sw.window->get_theme_constant("close_h_ofs"); @@ -2913,12 +2712,10 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { } if (close_rect.has_point(mb->get_position())) { - gui.subwindow_drag = SUB_WINDOW_DRAG_CLOSE; gui.subwindow_drag_close_inside = true; //starts inside gui.subwindow_drag_close_rect = close_rect; } else { - gui.subwindow_drag = SUB_WINDOW_DRAG_MOVE; } @@ -2958,13 +2755,10 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { } if (gui.subwindow_focused) { - Ref<InputEventMouseMotion> mm = p_event; if (mm.is_valid()) { - SubWindowResize resize = _sub_window_get_resize_margin(gui.subwindow_focused, mm->get_position()); if (resize != SUB_WINDOW_RESIZE_DISABLED) { - DisplayServer::CursorShape shapes[SUB_WINDOW_RESIZE_MAX] = { DisplayServer::CURSOR_ARROW, DisplayServer::CURSOR_FDIAGSIZE, @@ -3003,7 +2797,6 @@ bool Viewport::_sub_windows_forward_input(const Ref<InputEvent> &p_event) { } void Viewport::input(const Ref<InputEvent> &p_event, bool p_local_coords) { - ERR_FAIL_COND(!is_inside_tree()); if (disable_input) @@ -3038,7 +2831,6 @@ void Viewport::input(const Ref<InputEvent> &p_event, bool p_local_coords) { } void Viewport::unhandled_input(const Ref<InputEvent> &p_event, bool p_local_coords) { - ERR_FAIL_COND(!is_inside_tree()); if (disable_input) @@ -3063,7 +2855,6 @@ void Viewport::unhandled_input(const Ref<InputEvent> &p_event, bool p_local_coor } if (physics_object_picking && !is_input_handled()) { - if (Input::get_singleton()->get_mouse_mode() != Input::MOUSE_MODE_CAPTURED && (Object::cast_to<InputEventMouseButton>(*ev) || Object::cast_to<InputEventMouseMotion>(*ev) || @@ -3078,7 +2869,6 @@ void Viewport::unhandled_input(const Ref<InputEvent> &p_event, bool p_local_coor } void Viewport::set_use_own_world_3d(bool p_world_3d) { - if (p_world_3d == own_world_3d.is_valid()) return; @@ -3110,12 +2900,10 @@ void Viewport::set_use_own_world_3d(bool p_world_3d) { } bool Viewport::is_using_own_world_3d() const { - return own_world_3d.is_valid(); } void Viewport::set_physics_object_picking(bool p_enable) { - physics_object_picking = p_enable; if (!physics_object_picking) { physics_picking_events.clear(); @@ -3123,18 +2911,15 @@ void Viewport::set_physics_object_picking(bool p_enable) { } bool Viewport::get_physics_object_picking() { - return physics_object_picking; } Vector2 Viewport::get_camera_coords(const Vector2 &p_viewport_coords) const { - Transform2D xf = get_final_transform(); return xf.xform(p_viewport_coords); } Vector2 Viewport::get_camera_rect_size() const { - return size; } @@ -3143,7 +2928,6 @@ void Viewport::set_disable_input(bool p_disable) { } bool Viewport::is_input_disabled() const { - return disable_input; } @@ -3167,12 +2951,10 @@ void Viewport::gui_reset_canvas_sort_index() { gui.canvas_sort_index = 0; } int Viewport::gui_get_canvas_sort_index() { - return gui.canvas_sort_index++; } void Viewport::set_msaa(MSAA p_msaa) { - ERR_FAIL_INDEX(p_msaa, MSAA_MAX); if (msaa == p_msaa) return; @@ -3181,12 +2963,10 @@ void Viewport::set_msaa(MSAA p_msaa) { } Viewport::MSAA Viewport::get_msaa() const { - return msaa; } void Viewport::set_screen_space_aa(ScreenSpaceAA p_screen_space_aa) { - ERR_FAIL_INDEX(p_screen_space_aa, SCREEN_SPACE_AA_MAX); if (screen_space_aa == p_screen_space_aa) return; @@ -3195,32 +2975,26 @@ void Viewport::set_screen_space_aa(ScreenSpaceAA p_screen_space_aa) { } Viewport::ScreenSpaceAA Viewport::get_screen_space_aa() const { - return screen_space_aa; } void Viewport::set_debug_draw(DebugDraw p_debug_draw) { - debug_draw = p_debug_draw; RS::get_singleton()->viewport_set_debug_draw(viewport, RS::ViewportDebugDraw(p_debug_draw)); } Viewport::DebugDraw Viewport::get_debug_draw() const { - return debug_draw; } int Viewport::get_render_info(RenderInfo p_info) { - return RS::get_singleton()->viewport_get_render_info(viewport, RS::ViewportRenderInfo(p_info)); } void Viewport::set_snap_controls_to_pixels(bool p_enable) { - snap_controls_to_pixels = p_enable; } bool Viewport::is_snap_controls_to_pixels_enabled() const { - return snap_controls_to_pixels; } @@ -3362,7 +3136,6 @@ void Viewport::pass_mouse_focus_to(Viewport *p_viewport, Control *p_control) { } void Viewport::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_world_2d", "world_2d"), &Viewport::set_world_2d); ClassDB::bind_method(D_METHOD("get_world_2d"), &Viewport::get_world_2d); ClassDB::bind_method(D_METHOD("find_world_2d"), &Viewport::find_world_2d); @@ -3544,7 +3317,6 @@ void Viewport::_bind_methods() { } Viewport::Viewport() { - world_2d = Ref<World2D>(memnew(World2D)); viewport = RenderingServer::get_singleton()->viewport_create(); @@ -3629,7 +3401,6 @@ Viewport::Viewport() { } Viewport::~Viewport() { - //erase itself from viewport textures for (Set<ViewportTexture *>::Element *E = viewport_textures.front(); E; E = E->next()) { E->get()->vp = nullptr; @@ -3657,16 +3428,13 @@ Size2i SubViewport::get_size() const { } void SubViewport::set_size_2d_override(const Size2i &p_size) { - _set_size(_get_size(), p_size, Rect2i(), _stretch_transform(), true); } Size2i SubViewport::get_size_2d_override() const { - return _get_size_2d_override(); } void SubViewport::set_size_2d_override_stretch(bool p_enable) { - if (p_enable == size_2d_override_stretch) { return; } @@ -3675,27 +3443,22 @@ void SubViewport::set_size_2d_override_stretch(bool p_enable) { _set_size(_get_size(), _get_size_2d_override(), Rect2i(), _stretch_transform(), true); } bool SubViewport::is_size_2d_override_stretch_enabled() const { - return size_2d_override_stretch; } void SubViewport::set_update_mode(UpdateMode p_mode) { - update_mode = p_mode; RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::ViewportUpdateMode(p_mode)); } SubViewport::UpdateMode SubViewport::get_update_mode() const { - return update_mode; } void SubViewport::set_clear_mode(ClearMode p_mode) { - clear_mode = p_mode; RS::get_singleton()->viewport_set_clear_mode(get_viewport_rid(), RS::ViewportClearMode(p_mode)); } SubViewport::ClearMode SubViewport::get_clear_mode() const { - return clear_mode; } @@ -3704,7 +3467,6 @@ DisplayServer::WindowID SubViewport::get_window_id() const { } Transform2D SubViewport::_stretch_transform() { - Transform2D transform = Transform2D(); Size2i view_size_2d_override = _get_size_2d_override(); if (size_2d_override_stretch && view_size_2d_override.width > 0 && view_size_2d_override.height > 0) { @@ -3716,7 +3478,6 @@ Transform2D SubViewport::_stretch_transform() { } void SubViewport::_notification(int p_what) { - if (p_what == NOTIFICATION_ENTER_TREE) { RS::get_singleton()->viewport_set_active(get_viewport_rid(), true); } diff --git a/scene/main/viewport.h b/scene/main/viewport.h index 7da57347fd..4536b558f9 100644 --- a/scene/main/viewport.h +++ b/scene/main/viewport.h @@ -51,7 +51,6 @@ class Viewport; class CollisionObject3D; class ViewportTexture : public Texture2D { - GDCLASS(ViewportTexture, Texture2D); NodePath path; @@ -85,7 +84,6 @@ public: }; class Viewport : public Node { - GDCLASS(Viewport, Node); public: @@ -236,7 +234,6 @@ private: bool physics_has_last_mousepos; Vector2 physics_last_mousepos; struct { - bool alt; bool control; bool shift; @@ -579,7 +576,6 @@ public: }; class SubViewport : public Viewport { - GDCLASS(SubViewport, Viewport); public: diff --git a/scene/main/window.cpp b/scene/main/window.cpp index 19954299de..ea2a2083be 100644 --- a/scene/main/window.cpp +++ b/scene/main/window.cpp @@ -43,7 +43,6 @@ void Window::set_title(const String &p_title) { embedder->_sub_window_update(this); } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_title(p_title, window_id); } } @@ -65,14 +64,12 @@ int Window::get_current_screen() const { } void Window::set_position(const Point2i &p_position) { - position = p_position; if (embedder) { embedder->_sub_window_update(this); } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_position(p_position, window_id); } } @@ -85,12 +82,10 @@ void Window::set_size(const Size2i &p_size) { _update_window_size(); } Size2i Window::get_size() const { - return size; } Size2i Window::get_real_size() const { - if (window_id != DisplayServer::INVALID_WINDOW_ID) { return DisplayServer::get_singleton()->window_get_real_size(window_id); } @@ -128,20 +123,17 @@ Size2i Window::get_min_size() const { } void Window::set_mode(Mode p_mode) { - mode = p_mode; if (embedder) { embedder->_sub_window_update(this); } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_mode(DisplayServer::WindowMode(p_mode), window_id); } } Window::Mode Window::get_mode() const { - if (window_id != DisplayServer::INVALID_WINDOW_ID) { mode = (Mode)DisplayServer::get_singleton()->window_get_mode(window_id); } @@ -156,7 +148,6 @@ void Window::set_flag(Flags p_flag, bool p_enabled) { embedder->_sub_window_update(this); } else if (window_id != DisplayServer::INVALID_WINDOW_ID) { - DisplayServer::get_singleton()->window_set_flag(DisplayServer::WindowFlags(p_flag), p_enabled, window_id); } } @@ -182,7 +173,6 @@ void Window::request_attention() { } } void Window::move_to_foreground() { - if (embedder) { embedder->_sub_window_grab_focus(this); @@ -252,7 +242,6 @@ void Window::_make_window() { RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_WHEN_VISIBLE); } void Window::_update_from_window() { - ERR_FAIL_COND(window_id == DisplayServer::INVALID_WINDOW_ID); mode = (Mode)DisplayServer::get_singleton()->window_get_mode(window_id); for (int i = 0; i < FLAG_MAX; i++) { @@ -283,7 +272,6 @@ void Window::_clear_window() { } void Window::_rect_changed_callback(const Rect2i &p_callback) { - //we must always accept this as the truth if (size == p_callback.size && position == p_callback.position) { return; @@ -309,7 +297,6 @@ void Window::_propagate_window_notification(Node *p_node, int p_notification) { } void Window::_event_callback(DisplayServer::WindowEvent p_event) { - switch (p_event) { case DisplayServer::WINDOW_EVENT_MOUSE_ENTER: { _propagate_window_notification(this, NOTIFICATION_WM_MOUSE_ENTER); @@ -356,7 +343,6 @@ void Window::hide() { } void Window::set_visible(bool p_visible) { - if (visible == p_visible) { return; } @@ -478,7 +464,6 @@ bool Window::is_transient() const { } void Window::set_exclusive(bool p_exclusive) { - if (exclusive == p_exclusive) { return; } @@ -506,7 +491,6 @@ bool Window::is_visible() const { } void Window::_update_window_size() { - Size2i size_limit; if (wrap_controls) { size_limit = get_contents_minimum_size(); @@ -545,12 +529,10 @@ void Window::_update_viewport_size() { float font_oversampling = 1.0; if (content_scale_mode == CONTENT_SCALE_MODE_DISABLED || content_scale_size.x == 0 || content_scale_size.y == 0) { - stretch_transform = Transform2D(); final_size = size; } else { - //actual screen video mode Size2 video_mode = size; Size2 desired_res = content_scale_size; @@ -569,7 +551,6 @@ void Window::_update_viewport_size() { // screen ratio is smaller vertically if (content_scale_aspect == CONTENT_SCALE_ASPECT_KEEP_HEIGHT || content_scale_aspect == CONTENT_SCALE_ASPECT_EXPAND) { - //will stretch horizontally viewport_size.x = desired_res.y * video_mode_aspect; viewport_size.y = desired_res.y; @@ -584,7 +565,6 @@ void Window::_update_viewport_size() { } else { //screen ratio is smaller horizontally if (content_scale_aspect == CONTENT_SCALE_ASPECT_KEEP_WIDTH || content_scale_aspect == CONTENT_SCALE_ASPECT_EXPAND) { - //will stretch horizontally viewport_size.x = desired_res.x; viewport_size.y = desired_res.x / video_mode_aspect; @@ -622,14 +602,12 @@ void Window::_update_viewport_size() { //_update_font_oversampling(1.0); } break; case CONTENT_SCALE_MODE_OBJECTS: { - final_size = screen_size; final_size_override = viewport_size; attach_to_screen_rect = Rect2(margin, screen_size); font_oversampling = screen_size.x / viewport_size.x; } break; case CONTENT_SCALE_MODE_PIXELS: { - final_size = viewport_size; attach_to_screen_rect = Rect2(margin, screen_size); @@ -652,12 +630,10 @@ void Window::_update_viewport_size() { } if (window_id == DisplayServer::MAIN_WINDOW_ID) { - if (!use_font_oversampling) { font_oversampling = 1.0; } if (DynamicFontAtSize::font_oversampling != font_oversampling) { - DynamicFontAtSize::font_oversampling = font_oversampling; DynamicFont::update_oversampling(); } @@ -679,11 +655,9 @@ void Window::_update_window_callbacks() { } Viewport *Window::_get_embedder() const { - Viewport *vp = get_parent_viewport(); while (vp) { - if (vp->is_embedding_subwindows()) { return vp; } @@ -699,10 +673,8 @@ Viewport *Window::_get_embedder() const { void Window::_notification(int p_what) { if (p_what == NOTIFICATION_ENTER_TREE) { - bool embedded = false; { - embedder = _get_embedder(); if (embedder) { @@ -757,29 +729,24 @@ void Window::_notification(int p_what) { } if (p_what == NOTIFICATION_READY) { - if (wrap_controls) { _update_child_controls(); } } if (p_what == NOTIFICATION_EXIT_TREE) { - if (transient) { _clear_transient(); } if (!is_embedded() && window_id != DisplayServer::INVALID_WINDOW_ID) { - if (window_id == DisplayServer::MAIN_WINDOW_ID) { - RS::get_singleton()->viewport_set_update_mode(get_viewport_rid(), RS::VIEWPORT_UPDATE_DISABLED); _update_window_callbacks(); } else { _clear_window(); } } else { - if (embedder) { embedder->_sub_window_remove(this); embedder = nullptr; @@ -862,7 +829,6 @@ Size2 Window::_get_contents_minimum_size() const { return max; } void Window::_update_child_controls() { - if (!updating_child_controls) { return; } @@ -872,7 +838,6 @@ void Window::_update_child_controls() { updating_child_controls = false; } void Window::child_controls_changed() { - if (!is_inside_tree() || !visible || updating_child_controls) { return; } @@ -913,7 +878,6 @@ void Window::_window_drop_files(const Vector<String> &p_files) { } Viewport *Window::get_parent_viewport() const { - if (get_parent()) { return get_parent()->get_viewport(); } else { @@ -922,7 +886,6 @@ Viewport *Window::get_parent_viewport() const { } Window *Window::get_parent_visible_window() const { - Viewport *vp = get_parent_viewport(); Window *window = nullptr; while (vp) { @@ -940,7 +903,6 @@ Window *Window::get_parent_visible_window() const { } void Window::popup_on_parent(const Rect2i &p_parent_rect) { - ERR_FAIL_COND(!is_inside_tree()); ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); @@ -958,7 +920,6 @@ void Window::popup_on_parent(const Rect2i &p_parent_rect) { } void Window::popup_centered_clamped(const Size2i &p_size, float p_fallback_ratio) { - ERR_FAIL_COND(!is_inside_tree()); ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); @@ -1009,7 +970,6 @@ void Window::popup_centered(const Size2i &p_minsize) { } void Window::popup_centered_ratio(float p_ratio) { - ERR_FAIL_COND(!is_inside_tree()); ERR_FAIL_COND_MSG(window_id == DisplayServer::MAIN_WINDOW_ID, "Can't popup the main window."); @@ -1032,7 +992,6 @@ void Window::popup_centered_ratio(float p_ratio) { } void Window::popup(const Rect2i &p_screen_rect) { - emit_signal("about_to_popup"); if (p_screen_rect != Rect2i()) { @@ -1074,7 +1033,6 @@ Rect2i Window::get_usable_parent_rect() const { if (is_embedded()) { parent = _get_embedder()->get_visible_rect(); } else { - const Window *w = is_visible() ? this : get_parent_visible_window(); //find a parent that can contain us ERR_FAIL_COND_V(!w, Rect2()); @@ -1085,7 +1043,6 @@ Rect2i Window::get_usable_parent_rect() const { } void Window::add_child_notify(Node *p_child) { - Control *child_c = Object::cast_to<Control>(p_child); if (child_c && child_c->data.theme.is_null() && (theme_owner || theme_owner_window)) { @@ -1104,7 +1061,6 @@ void Window::add_child_notify(Node *p_child) { } void Window::remove_child_notify(Node *p_child) { - Control *child_c = Object::cast_to<Control>(p_child); if (child_c && (child_c->data.theme_owner || child_c->data.theme_owner_window) && child_c->data.theme.is_null()) { @@ -1123,19 +1079,16 @@ void Window::remove_child_notify(Node *p_child) { } void Window::set_theme(const Ref<Theme> &p_theme) { - if (theme == p_theme) return; theme = p_theme; if (!p_theme.is_null()) { - theme_owner = nullptr; theme_owner_window = this; Control::_propagate_theme_changed(this, nullptr, this); } else { - Control *parent_c = cast_to<Control>(get_parent()); if (parent_c && (parent_c->data.theme_owner || parent_c->data.theme_owner_window)) { Control::_propagate_theme_changed(this, parent_c->data.theme_owner, parent_c->data.theme_owner_window); @@ -1240,7 +1193,6 @@ Rect2i Window::get_parent_rect() const { } void Window::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_title", "title"), &Window::set_title); ClassDB::bind_method(D_METHOD("get_title"), &Window::get_title); diff --git a/scene/register_scene_types.cpp b/scene/register_scene_types.cpp index 24f92bdc20..5588d1bd97 100644 --- a/scene/register_scene_types.cpp +++ b/scene/register_scene_types.cpp @@ -235,7 +235,6 @@ static Ref<ResourceFormatSaverShader> resource_saver_shader; static Ref<ResourceFormatLoaderShader> resource_loader_shader; void register_scene_types() { - SceneStringNames::create(); OS::get_singleton()->yield(); //may take time to init @@ -922,7 +921,6 @@ void register_scene_types() { } void unregister_scene_types() { - SceneDebugger::deinitialize(); clear_default_theme(); diff --git a/scene/resources/animation.cpp b/scene/resources/animation.cpp index c5806ee7b3..44aa3f8319 100644 --- a/scene/resources/animation.cpp +++ b/scene/resources/animation.cpp @@ -36,38 +36,28 @@ #define ANIM_MIN_LENGTH 0.001 bool Animation::_set(const StringName &p_name, const Variant &p_value) { - String name = p_name; if (name.begins_with("tracks/")) { - int track = name.get_slicec('/', 1).to_int(); String what = name.get_slicec('/', 2); if (tracks.size() == track && what == "type") { - String type = p_value; if (type == "transform") { - add_track(TYPE_TRANSFORM); } else if (type == "value") { - add_track(TYPE_VALUE); } else if (type == "method") { - add_track(TYPE_METHOD); } else if (type == "bezier") { - add_track(TYPE_BEZIER); } else if (type == "audio") { - add_track(TYPE_AUDIO); } else if (type == "animation") { - add_track(TYPE_ANIMATION); } else { - return false; } @@ -87,9 +77,7 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { else if (what == "enabled") track_set_enabled(track, p_value); else if (what == "keys" || what == "key_values") { - if (track_get_type(track) == TYPE_TRANSFORM) { - TransformTrack *tt = static_cast<TransformTrack *>(tracks[track]); Vector<float> values = p_value; int vcount = values.size(); @@ -100,7 +88,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { tt->transforms.resize(vcount / 12); for (int i = 0; i < (vcount / 12); i++) { - TKey<TransformKey> &tk = tt->transforms.write[i]; const float *ofs = &r[i * 12]; tk.time = ofs[0]; @@ -121,7 +108,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { } } else if (track_get_type(track) == TYPE_VALUE) { - ValueTrack *vt = static_cast<ValueTrack *>(tracks[track]); Dictionary d = p_value; ERR_FAIL_COND_V(!d.has("times"), false); @@ -146,7 +132,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { ERR_FAIL_COND_V(times.size() != values.size(), false); if (times.size()) { - int valcount = times.size(); const float *rt = times.ptr(); @@ -154,20 +139,17 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { vt->values.resize(valcount); for (int i = 0; i < valcount; i++) { - vt->values.write[i].time = rt[i]; vt->values.write[i].value = values[i]; } if (d.has("transitions")) { - Vector<float> transitions = d["transitions"]; ERR_FAIL_COND_V(transitions.size() != valcount, false); const float *rtr = transitions.ptr(); for (int i = 0; i < valcount; i++) { - vt->values.write[i].transition = rtr[i]; } } @@ -176,7 +158,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { return true; } else if (track_get_type(track) == TYPE_METHOD) { - while (track_get_key_count(track)) track_remove_key(track, 0); //well shouldn't be set anyway @@ -190,31 +171,26 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { ERR_FAIL_COND_V(times.size() != values.size(), false); if (times.size()) { - int valcount = times.size(); const float *rt = times.ptr(); for (int i = 0; i < valcount; i++) { - track_insert_key(track, rt[i], values[i]); } if (d.has("transitions")) { - Vector<float> transitions = d["transitions"]; ERR_FAIL_COND_V(transitions.size() != valcount, false); const float *rtr = transitions.ptr(); for (int i = 0; i < valcount; i++) { - track_set_key_transition(track, i, rtr[i]); } } } } else if (track_get_type(track) == TYPE_BEZIER) { - BezierTrack *bt = static_cast<BezierTrack *>(tracks[track]); Dictionary d = p_value; ERR_FAIL_COND_V(!d.has("times"), false); @@ -226,7 +202,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { ERR_FAIL_COND_V(times.size() * 5 != values.size(), false); if (times.size()) { - int valcount = times.size(); const float *rt = times.ptr(); @@ -235,7 +210,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { bt->values.resize(valcount); for (int i = 0; i < valcount; i++) { - bt->values.write[i].time = rt[i]; bt->values.write[i].transition = 0; //unused in bezier bt->values.write[i].value.value = rv[i * 5 + 0]; @@ -248,7 +222,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { return true; } else if (track_get_type(track) == TYPE_AUDIO) { - AudioTrack *ad = static_cast<AudioTrack *>(tracks[track]); Dictionary d = p_value; ERR_FAIL_COND_V(!d.has("times"), false); @@ -260,7 +233,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { ERR_FAIL_COND_V(clips.size() != times.size(), false); if (times.size()) { - int valcount = times.size(); const float *rt = times.ptr(); @@ -268,7 +240,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { ad->values.clear(); for (int i = 0; i < valcount; i++) { - Dictionary d2 = clips[i]; if (!d2.has("start_offset")) continue; @@ -289,7 +260,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { return true; } else if (track_get_type(track) == TYPE_ANIMATION) { - AnimationTrack *an = static_cast<AnimationTrack *>(tracks[track]); Dictionary d = p_value; ERR_FAIL_COND_V(!d.has("times"), false); @@ -301,7 +271,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { ERR_FAIL_COND_V(clips.size() != times.size(), false); if (times.size()) { - int valcount = times.size(); const float *rt = times.ptr(); @@ -310,7 +279,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { an->values.resize(valcount); for (int i = 0; i < valcount; i++) { - TKey<StringName> ak; ak.time = rt[i]; ak.value = rc[i]; @@ -331,7 +299,6 @@ bool Animation::_set(const StringName &p_name, const Variant &p_value) { } bool Animation::_get(const StringName &p_name, Variant &r_ret) const { - String name = p_name; if (name == "length") @@ -341,14 +308,11 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { else if (name == "step") r_ret = step; else if (name.begins_with("tracks/")) { - int track = name.get_slicec('/', 1).to_int(); String what = name.get_slicec('/', 2); ERR_FAIL_INDEX_V(track, tracks.size(), false); if (what == "type") { - switch (track_get_type(track)) { - case TYPE_TRANSFORM: r_ret = "transform"; break; @@ -382,9 +346,7 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { else if (what == "enabled") r_ret = track_is_enabled(track); else if (what == "keys") { - if (track_get_type(track) == TYPE_TRANSFORM) { - Vector<float> keys; int kk = track_get_key_count(track); keys.resize(kk * 12); @@ -393,7 +355,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { int idx = 0; for (int i = 0; i < track_get_key_count(track); i++) { - Vector3 loc; Quat rot; Vector3 scale; @@ -419,7 +380,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { return true; } else if (track_get_type(track) == TYPE_VALUE) { - const ValueTrack *vt = static_cast<const ValueTrack *>(tracks[track]); Dictionary d; @@ -442,7 +402,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { const TKey<Variant> *vls = vt->values.ptr(); for (int i = 0; i < kk; i++) { - wti[idx] = vls[i].time; wtr[idx] = vls[i].transition; key_values[idx] = vls[i].value; @@ -461,7 +420,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { return true; } else if (track_get_type(track) == TYPE_METHOD) { - Dictionary d; Vector<float> key_times; @@ -479,7 +437,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { int idx = 0; for (int i = 0; i < track_get_key_count(track); i++) { - wti[idx] = track_get_key_time(track, i); wtr[idx] = track_get_key_transition(track, i); key_values[idx] = track_get_key_value(track, i); @@ -497,7 +454,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { return true; } else if (track_get_type(track) == TYPE_BEZIER) { - const BezierTrack *bt = static_cast<const BezierTrack *>(tracks[track]); Dictionary d; @@ -518,7 +474,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { const TKey<BezierKey> *vls = bt->values.ptr(); for (int i = 0; i < kk; i++) { - wti[idx] = vls[i].time; wpo[idx * 5 + 0] = vls[i].value.value; wpo[idx * 5 + 1] = vls[i].value.in_handle.x; @@ -535,7 +490,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { return true; } else if (track_get_type(track) == TYPE_AUDIO) { - const AudioTrack *ad = static_cast<const AudioTrack *>(tracks[track]); Dictionary d; @@ -554,7 +508,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { const TKey<AudioKey> *vls = ad->values.ptr(); for (int i = 0; i < kk; i++) { - wti[idx] = vls[i].time; Dictionary clip; clip["start_offset"] = vls[i].value.start_offset; @@ -571,7 +524,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { return true; } else if (track_get_type(track) == TYPE_ANIMATION) { - const AnimationTrack *an = static_cast<const AnimationTrack *>(tracks[track]); Dictionary d; @@ -590,7 +542,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { const TKey<StringName> *vls = an->values.ptr(); for (int i = 0; i < kk; i++) { - wti[i] = vls[i].time; wcl[i] = vls[i].value; } @@ -612,7 +563,6 @@ bool Animation::_get(const StringName &p_name, Variant &r_ret) const { void Animation::_get_property_list(List<PropertyInfo> *p_list) const { for (int i = 0; i < tracks.size(); i++) { - p_list->push_back(PropertyInfo(Variant::STRING, "tracks/" + itos(i) + "/type", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::NODE_PATH, "tracks/" + itos(i) + "/path", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); p_list->push_back(PropertyInfo(Variant::INT, "tracks/" + itos(i) + "/interp", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL)); @@ -624,44 +574,35 @@ void Animation::_get_property_list(List<PropertyInfo> *p_list) const { } int Animation::add_track(TrackType p_type, int p_at_pos) { - if (p_at_pos < 0 || p_at_pos >= tracks.size()) p_at_pos = tracks.size(); switch (p_type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = memnew(TransformTrack); tracks.insert(p_at_pos, tt); } break; case TYPE_VALUE: { - tracks.insert(p_at_pos, memnew(ValueTrack)); } break; case TYPE_METHOD: { - tracks.insert(p_at_pos, memnew(MethodTrack)); } break; case TYPE_BEZIER: { - tracks.insert(p_at_pos, memnew(BezierTrack)); } break; case TYPE_AUDIO: { - tracks.insert(p_at_pos, memnew(AudioTrack)); } break; case TYPE_ANIMATION: { - tracks.insert(p_at_pos, memnew(AnimationTrack)); } break; default: { - ERR_PRINT("Unknown track type"); } } @@ -671,44 +612,36 @@ int Animation::add_track(TrackType p_type, int p_at_pos) { } void Animation::remove_track(int p_track) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); _clear(tt->transforms); } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); _clear(vt->values); } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); _clear(mt->methods); } break; case TYPE_BEZIER: { - BezierTrack *bz = static_cast<BezierTrack *>(t); _clear(bz->values); } break; case TYPE_AUDIO: { - AudioTrack *ad = static_cast<AudioTrack *>(t); _clear(ad->values); } break; case TYPE_ANIMATION: { - AnimationTrack *an = static_cast<AnimationTrack *>(t); _clear(an->values); @@ -722,18 +655,15 @@ void Animation::remove_track(int p_track) { } int Animation::get_track_count() const { - return tracks.size(); } Animation::TrackType Animation::track_get_type(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), TYPE_TRANSFORM); return tracks[p_track]->type; } void Animation::track_set_path(int p_track, const NodePath &p_path) { - ERR_FAIL_INDEX(p_track, tracks.size()); tracks[p_track]->path = p_path; emit_changed(); @@ -741,15 +671,12 @@ void Animation::track_set_path(int p_track, const NodePath &p_path) { } NodePath Animation::track_get_path(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), NodePath()); return tracks[p_track]->path; } int Animation::find_track(const NodePath &p_path) const { - for (int i = 0; i < tracks.size(); i++) { - if (tracks[i]->path == p_path) return i; }; @@ -757,7 +684,6 @@ int Animation::find_track(const NodePath &p_path) const { }; void Animation::track_set_interpolation_type(int p_track, InterpolationType p_interp) { - ERR_FAIL_INDEX(p_track, tracks.size()); ERR_FAIL_INDEX(p_interp, 3); tracks[p_track]->interpolation = p_interp; @@ -765,7 +691,6 @@ void Animation::track_set_interpolation_type(int p_track, InterpolationType p_in } Animation::InterpolationType Animation::track_get_interpolation_type(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), INTERPOLATION_NEAREST); return tracks[p_track]->interpolation; } @@ -777,7 +702,6 @@ void Animation::track_set_interpolation_loop_wrap(int p_track, bool p_enable) { } bool Animation::track_get_interpolation_loop_wrap(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), INTERPOLATION_NEAREST); return tracks[p_track]->loop_wrap; } @@ -811,20 +735,16 @@ int Animation::_insert_pos(float p_time, T& p_keys) { */ template <class T, class V> int Animation::_insert(float p_time, T &p_keys, const V &p_value) { - int idx = p_keys.size(); while (true) { - // Condition for replacement. if (idx > 0 && Math::is_equal_approx(p_keys[idx - 1].time, p_time)) { - p_keys.write[idx - 1] = p_value; return idx - 1; // Condition for insert. } else if (idx == 0 || p_keys[idx - 1].time < p_time) { - p_keys.insert(idx, p_value); return idx; } @@ -837,12 +757,10 @@ int Animation::_insert(float p_time, T &p_keys, const V &p_value) { template <class T> void Animation::_clear(T &p_keys) { - p_keys.clear(); } Error Animation::transform_track_get_key(int p_track, int p_key, Vector3 *r_loc, Quat *r_rot, Vector3 *r_scale) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), ERR_INVALID_PARAMETER); Track *t = tracks[p_track]; @@ -861,7 +779,6 @@ Error Animation::transform_track_get_key(int p_track, int p_key, Vector3 *r_loc, } int Animation::transform_track_insert_key(int p_track, float p_time, const Vector3 &p_loc, const Quat &p_rot, const Vector3 &p_scale) { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_TRANSFORM, -1); @@ -880,55 +797,47 @@ int Animation::transform_track_insert_key(int p_track, float p_time, const Vecto } void Animation::track_remove_key_at_position(int p_track, float p_pos) { - int idx = track_find_key(p_track, p_pos, true); ERR_FAIL_COND(idx < 0); track_remove_key(p_track, idx); } void Animation::track_remove_key(int p_track, int p_idx) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; switch (t->type) { case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); ERR_FAIL_INDEX(p_idx, tt->transforms.size()); tt->transforms.remove(p_idx); } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); ERR_FAIL_INDEX(p_idx, vt->values.size()); vt->values.remove(p_idx); } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_INDEX(p_idx, mt->methods.size()); mt->methods.remove(p_idx); } break; case TYPE_BEZIER: { - BezierTrack *bz = static_cast<BezierTrack *>(t); ERR_FAIL_INDEX(p_idx, bz->values.size()); bz->values.remove(p_idx); } break; case TYPE_AUDIO: { - AudioTrack *ad = static_cast<AudioTrack *>(t); ERR_FAIL_INDEX(p_idx, ad->values.size()); ad->values.remove(p_idx); } break; case TYPE_ANIMATION: { - AnimationTrack *an = static_cast<AnimationTrack *>(t); ERR_FAIL_INDEX(p_idx, an->values.size()); an->values.remove(p_idx); @@ -940,13 +849,11 @@ void Animation::track_remove_key(int p_track, int p_idx) { } int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; switch (t->type) { case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); int k = _find(tt->transforms, p_time); if (k < 0 || k >= tt->transforms.size()) @@ -957,7 +864,6 @@ int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); int k = _find(vt->values, p_time); if (k < 0 || k >= vt->values.size()) @@ -968,7 +874,6 @@ int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); int k = _find(mt->methods, p_time); if (k < 0 || k >= mt->methods.size()) @@ -979,7 +884,6 @@ int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { } break; case TYPE_BEZIER: { - BezierTrack *bt = static_cast<BezierTrack *>(t); int k = _find(bt->values, p_time); if (k < 0 || k >= bt->values.size()) @@ -990,7 +894,6 @@ int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { } break; case TYPE_AUDIO: { - AudioTrack *at = static_cast<AudioTrack *>(t); int k = _find(at->values, p_time); if (k < 0 || k >= at->values.size()) @@ -1001,7 +904,6 @@ int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { } break; case TYPE_ANIMATION: { - AnimationTrack *at = static_cast<AnimationTrack *>(t); int k = _find(at->values, p_time); if (k < 0 || k >= at->values.size()) @@ -1017,14 +919,11 @@ int Animation::track_find_key(int p_track, float p_time, bool p_exact) const { } void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key, float p_transition) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - Dictionary d = p_key; Vector3 loc; if (d.has("location")) @@ -1043,7 +942,6 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); TKey<Variant> k; @@ -1054,7 +952,6 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_COND(p_key.get_type() != Variant::DICTIONARY); @@ -1074,7 +971,6 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key } break; case TYPE_BEZIER: { - BezierTrack *bt = static_cast<BezierTrack *>(t); Array arr = p_key; @@ -1091,7 +987,6 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key } break; case TYPE_AUDIO: { - AudioTrack *at = static_cast<AudioTrack *>(t); Dictionary k = p_key; @@ -1108,7 +1003,6 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key } break; case TYPE_ANIMATION: { - AnimationTrack *at = static_cast<AnimationTrack *>(t); TKey<StringName> ak; @@ -1124,40 +1018,32 @@ void Animation::track_insert_key(int p_track, float p_time, const Variant &p_key } int Animation::track_get_key_count(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); return tt->transforms.size(); } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); return vt->values.size(); } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); return mt->methods.size(); } break; case TYPE_BEZIER: { - BezierTrack *bt = static_cast<BezierTrack *>(t); return bt->values.size(); } break; case TYPE_AUDIO: { - AudioTrack *at = static_cast<AudioTrack *>(t); return at->values.size(); } break; case TYPE_ANIMATION: { - AnimationTrack *at = static_cast<AnimationTrack *>(t); return at->values.size(); } break; @@ -1167,14 +1053,11 @@ int Animation::track_get_key_count(int p_track) const { } Variant Animation::track_get_key_value(int p_track, int p_key_idx) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), Variant()); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, tt->transforms.size(), Variant()); @@ -1186,14 +1069,12 @@ Variant Animation::track_get_key_value(int p_track, int p_key_idx) const { return d; } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, vt->values.size(), Variant()); return vt->values[p_key_idx].value; } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, mt->methods.size(), Variant()); Dictionary d; @@ -1203,7 +1084,6 @@ Variant Animation::track_get_key_value(int p_track, int p_key_idx) const { } break; case TYPE_BEZIER: { - BezierTrack *bt = static_cast<BezierTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, bt->values.size(), Variant()); @@ -1218,7 +1098,6 @@ Variant Animation::track_get_key_value(int p_track, int p_key_idx) const { } break; case TYPE_AUDIO: { - AudioTrack *at = static_cast<AudioTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, at->values.size(), Variant()); @@ -1230,7 +1109,6 @@ Variant Animation::track_get_key_value(int p_track, int p_key_idx) const { } break; case TYPE_ANIMATION: { - AnimationTrack *at = static_cast<AnimationTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, at->values.size(), Variant()); @@ -1243,48 +1121,40 @@ Variant Animation::track_get_key_value(int p_track, int p_key_idx) const { } float Animation::track_get_key_time(int p_track, int p_key_idx) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, tt->transforms.size(), -1); return tt->transforms[p_key_idx].time; } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, vt->values.size(), -1); return vt->values[p_key_idx].time; } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, mt->methods.size(), -1); return mt->methods[p_key_idx].time; } break; case TYPE_BEZIER: { - BezierTrack *bt = static_cast<BezierTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, bt->values.size(), -1); return bt->values[p_key_idx].time; } break; case TYPE_AUDIO: { - AudioTrack *at = static_cast<AudioTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, at->values.size(), -1); return at->values[p_key_idx].time; } break; case TYPE_ANIMATION: { - AnimationTrack *at = static_cast<AnimationTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, at->values.size(), -1); return at->values[p_key_idx].time; @@ -1296,14 +1166,11 @@ float Animation::track_get_key_time(int p_track, int p_key_idx) const { } void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); ERR_FAIL_INDEX(p_key_idx, tt->transforms.size()); TKey<TransformKey> key = tt->transforms[p_key_idx]; @@ -1313,7 +1180,6 @@ void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { return; } case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); ERR_FAIL_INDEX(p_key_idx, vt->values.size()); TKey<Variant> key = vt->values[p_key_idx]; @@ -1323,7 +1189,6 @@ void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { return; } case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_INDEX(p_key_idx, mt->methods.size()); MethodKey key = mt->methods[p_key_idx]; @@ -1333,7 +1198,6 @@ void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { return; } case TYPE_BEZIER: { - BezierTrack *bt = static_cast<BezierTrack *>(t); ERR_FAIL_INDEX(p_key_idx, bt->values.size()); TKey<BezierKey> key = bt->values[p_key_idx]; @@ -1343,7 +1207,6 @@ void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { return; } case TYPE_AUDIO: { - AudioTrack *at = static_cast<AudioTrack *>(t); ERR_FAIL_INDEX(p_key_idx, at->values.size()); TKey<AudioKey> key = at->values[p_key_idx]; @@ -1353,7 +1216,6 @@ void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { return; } case TYPE_ANIMATION: { - AnimationTrack *at = static_cast<AnimationTrack *>(t); ERR_FAIL_INDEX(p_key_idx, at->values.size()); TKey<StringName> key = at->values[p_key_idx]; @@ -1368,42 +1230,34 @@ void Animation::track_set_key_time(int p_track, int p_key_idx, float p_time) { } float Animation::track_get_key_transition(int p_track, int p_key_idx) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, tt->transforms.size(), -1); return tt->transforms[p_key_idx].transition; } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, vt->values.size(), -1); return vt->values[p_key_idx].transition; } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_INDEX_V(p_key_idx, mt->methods.size(), -1); return mt->methods[p_key_idx].transition; } break; case TYPE_BEZIER: { - return 1; //bezier does not really use transitions } break; case TYPE_AUDIO: { - return 1; //audio does not really use transitions } break; case TYPE_ANIMATION: { - return 1; //animation does not really use transitions } break; } @@ -1412,14 +1266,11 @@ float Animation::track_get_key_transition(int p_track, int p_key_idx) const { } void Animation::track_set_key_value(int p_track, int p_key_idx, const Variant &p_value) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); ERR_FAIL_INDEX(p_key_idx, tt->transforms.size()); @@ -1434,7 +1285,6 @@ void Animation::track_set_key_value(int p_track, int p_key_idx, const Variant &p } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); ERR_FAIL_INDEX(p_key_idx, vt->values.size()); @@ -1442,7 +1292,6 @@ void Animation::track_set_key_value(int p_track, int p_key_idx, const Variant &p } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_INDEX(p_key_idx, mt->methods.size()); @@ -1455,7 +1304,6 @@ void Animation::track_set_key_value(int p_track, int p_key_idx, const Variant &p } break; case TYPE_BEZIER: { - BezierTrack *bt = static_cast<BezierTrack *>(t); ERR_FAIL_INDEX(p_key_idx, bt->values.size()); @@ -1470,7 +1318,6 @@ void Animation::track_set_key_value(int p_track, int p_key_idx, const Variant &p } break; case TYPE_AUDIO: { - AudioTrack *at = static_cast<AudioTrack *>(t); ERR_FAIL_INDEX(p_key_idx, at->values.size()); @@ -1485,7 +1332,6 @@ void Animation::track_set_key_value(int p_track, int p_key_idx, const Variant &p } break; case TYPE_ANIMATION: { - AnimationTrack *at = static_cast<AnimationTrack *>(t); ERR_FAIL_INDEX(p_key_idx, at->values.size()); @@ -1498,27 +1344,22 @@ void Animation::track_set_key_value(int p_track, int p_key_idx, const Variant &p } void Animation::track_set_key_transition(int p_track, int p_key_idx, float p_transition) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; switch (t->type) { - case TYPE_TRANSFORM: { - TransformTrack *tt = static_cast<TransformTrack *>(t); ERR_FAIL_INDEX(p_key_idx, tt->transforms.size()); tt->transforms.write[p_key_idx].transition = p_transition; } break; case TYPE_VALUE: { - ValueTrack *vt = static_cast<ValueTrack *>(t); ERR_FAIL_INDEX(p_key_idx, vt->values.size()); vt->values.write[p_key_idx].transition = p_transition; } break; case TYPE_METHOD: { - MethodTrack *mt = static_cast<MethodTrack *>(t); ERR_FAIL_INDEX(p_key_idx, mt->methods.size()); mt->methods.write[p_key_idx].transition = p_transition; @@ -1536,7 +1377,6 @@ void Animation::track_set_key_transition(int p_track, int p_key_idx, float p_tra template <class K> int Animation::_find(const Vector<K> &p_keys, float p_time) const { - int len = p_keys.size(); if (len == 0) return -2; @@ -1553,7 +1393,6 @@ int Animation::_find(const Vector<K> &p_keys, float p_time) const { const K *keys = &p_keys[0]; while (low <= high) { - middle = (low + high) / 2; if (Math::is_equal_approx(p_time, keys[middle].time)) { //match @@ -1571,7 +1410,6 @@ int Animation::_find(const Vector<K> &p_keys, float p_time) const { } Animation::TransformKey Animation::_interpolate(const Animation::TransformKey &p_a, const Animation::TransformKey &p_b, float p_c) const { - TransformKey ret; ret.loc = _interpolate(p_a.loc, p_b.loc, p_c); ret.rot = _interpolate(p_a.rot, p_b.rot, p_c); @@ -1581,27 +1419,22 @@ Animation::TransformKey Animation::_interpolate(const Animation::TransformKey &p } Vector3 Animation::_interpolate(const Vector3 &p_a, const Vector3 &p_b, float p_c) const { - return p_a.lerp(p_b, p_c); } Quat Animation::_interpolate(const Quat &p_a, const Quat &p_b, float p_c) const { - return p_a.slerp(p_b, p_c); } Variant Animation::_interpolate(const Variant &p_a, const Variant &p_b, float p_c) const { - Variant dst; Variant::interpolate(p_a, p_b, p_c, dst); return dst; } float Animation::_interpolate(const float &p_a, const float &p_b, float p_c) const { - return p_a * (1.0 - p_c) + p_b * p_c; } Animation::TransformKey Animation::_cubic_interpolate(const Animation::TransformKey &p_pre_a, const Animation::TransformKey &p_a, const Animation::TransformKey &p_b, const Animation::TransformKey &p_post_b, float p_c) const { - Animation::TransformKey tk; tk.loc = p_a.loc.cubic_interpolate(p_b.loc, p_pre_a.loc, p_post_b.loc, p_c); @@ -1611,15 +1444,12 @@ Animation::TransformKey Animation::_cubic_interpolate(const Animation::Transform return tk; } Vector3 Animation::_cubic_interpolate(const Vector3 &p_pre_a, const Vector3 &p_a, const Vector3 &p_b, const Vector3 &p_post_b, float p_c) const { - return p_a.cubic_interpolate(p_b, p_pre_a, p_post_b, p_c); } Quat Animation::_cubic_interpolate(const Quat &p_pre_a, const Quat &p_a, const Quat &p_b, const Quat &p_post_b, float p_c) const { - return p_a.cubic_slerp(p_b, p_pre_a, p_post_b, p_c); } Variant Animation::_cubic_interpolate(const Variant &p_pre_a, const Variant &p_a, const Variant &p_b, const Variant &p_post_b, float p_c) const { - Variant::Type type_a = p_a.get_type(); Variant::Type type_b = p_b.get_type(); Variant::Type type_pa = p_pre_a.get_type(); @@ -1650,14 +1480,11 @@ Variant Animation::_cubic_interpolate(const Variant &p_pre_a, const Variant &p_a (-p0 + 3.0f * p1 - 3.0f * p2 + p3) * t3); } else if ((vformat & (vformat - 1))) { - return p_a; //can't interpolate, mix of types } switch (type_a) { - case Variant::VECTOR2: { - Vector2 a = p_a; Vector2 b = p_b; Vector2 pa = p_pre_a; @@ -1666,7 +1493,6 @@ Variant Animation::_cubic_interpolate(const Variant &p_pre_a, const Variant &p_a return a.cubic_interpolate(b, pa, pb, p_c); } case Variant::RECT2: { - Rect2 a = p_a; Rect2 b = p_b; Rect2 pa = p_pre_a; @@ -1677,7 +1503,6 @@ Variant Animation::_cubic_interpolate(const Variant &p_pre_a, const Variant &p_a a.size.cubic_interpolate(b.size, pa.size, pb.size, p_c)); } case Variant::VECTOR3: { - Vector3 a = p_a; Vector3 b = p_b; Vector3 pa = p_pre_a; @@ -1686,7 +1511,6 @@ Variant Animation::_cubic_interpolate(const Variant &p_pre_a, const Variant &p_a return a.cubic_interpolate(b, pa, pb, p_c); } case Variant::QUAT: { - Quat a = p_a; Quat b = p_b; Quat pa = p_pre_a; @@ -1695,7 +1519,6 @@ Variant Animation::_cubic_interpolate(const Variant &p_pre_a, const Variant &p_a return a.cubic_slerp(b, pa, pb, p_c); } case Variant::AABB: { - AABB a = p_a; AABB b = p_b; AABB pa = p_pre_a; @@ -1706,19 +1529,16 @@ Variant Animation::_cubic_interpolate(const Variant &p_pre_a, const Variant &p_a a.size.cubic_interpolate(b.size, pa.size, pb.size, p_c)); } default: { - return _interpolate(p_a, p_b, p_c); } } } float Animation::_cubic_interpolate(const float &p_pre_a, const float &p_a, const float &p_b, const float &p_post_b, float p_c) const { - return _interpolate(p_a, p_b, p_c); } template <class T> T Animation::_interpolate(const Vector<TKey<T>> &p_keys, float p_time, InterpolationType p_interp, bool p_loop_wrap, bool *p_ok) const { - int len = _find(p_keys, length) + 1; // try to find last key (there may be more past the end) if (len <= 0) { @@ -1746,9 +1566,7 @@ T Animation::_interpolate(const Vector<TKey<T>> &p_keys, float p_time, Interpola if (loop && p_loop_wrap) { // loop if (idx >= 0) { - if ((idx + 1) < len) { - next = idx + 1; float delta = p_keys[next].time - p_keys[idx].time; float from = p_time - p_keys[idx].time; @@ -1759,7 +1577,6 @@ T Animation::_interpolate(const Vector<TKey<T>> &p_keys, float p_time, Interpola c = from / delta; } else { - next = 0; float delta = (length - p_keys[idx].time) + p_keys[next].time; float from = p_time - p_keys[idx].time; @@ -1789,9 +1606,7 @@ T Animation::_interpolate(const Vector<TKey<T>> &p_keys, float p_time, Interpola } else { // no loop if (idx >= 0) { - if ((idx + 1) < len) { - next = idx + 1; float delta = p_keys[next].time - p_keys[idx].time; float from = p_time - p_keys[idx].time; @@ -1802,12 +1617,10 @@ T Animation::_interpolate(const Vector<TKey<T>> &p_keys, float p_time, Interpola c = from / delta; } else { - next = idx; } } else { - // only allow extending first key to anim start if looping if (loop) idx = next = 0; @@ -1829,18 +1642,14 @@ T Animation::_interpolate(const Vector<TKey<T>> &p_keys, float p_time, Interpola } if (tr != 1.0) { - c = Math::ease(c, tr); } switch (p_interp) { - case INTERPOLATION_NEAREST: { - return p_keys[idx].value; } break; case INTERPOLATION_LINEAR: { - return _interpolate(p_keys[idx].value, p_keys[next].value, c); } break; case INTERPOLATION_CUBIC: { @@ -1862,7 +1671,6 @@ T Animation::_interpolate(const Vector<TKey<T>> &p_keys, float p_time, Interpola } Error Animation::transform_track_interpolate(int p_track, float p_time, Vector3 *r_loc, Quat *r_rot, Vector3 *r_scale) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), ERR_INVALID_PARAMETER); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_TRANSFORM, ERR_INVALID_PARAMETER); @@ -1889,7 +1697,6 @@ Error Animation::transform_track_interpolate(int p_track, float p_time, Vector3 } Variant Animation::value_track_interpolate(int p_track, float p_time) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), 0); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_VALUE, Variant()); @@ -1900,7 +1707,6 @@ Variant Animation::value_track_interpolate(int p_track, float p_time) const { Variant res = _interpolate(vt->values, p_time, (vt->update_mode == UPDATE_CONTINUOUS || vt->update_mode == UPDATE_CAPTURE) ? vt->interpolation : INTERPOLATION_NEAREST, vt->loop_wrap, &ok); if (ok) { - return res; } @@ -1908,7 +1714,6 @@ Variant Animation::value_track_interpolate(int p_track, float p_time) const { } void Animation::_value_track_get_key_indices_in_range(const ValueTrack *vt, float from_time, float to_time, List<int> *p_indices) const { - if (from_time != length && to_time == length) to_time = length * 1.001; //include a little more if at the end int to = _find(vt->values, to_time); @@ -1936,14 +1741,12 @@ void Animation::_value_track_get_key_indices_in_range(const ValueTrack *vt, floa int max = vt->values.size(); for (int i = from; i <= to; i++) { - ERR_CONTINUE(i < 0 || i >= max); // shouldn't happen p_indices->push_back(i); } } void Animation::value_track_get_key_indices(int p_track, float p_time, float p_delta, List<int> *p_indices) const { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_VALUE); @@ -1957,7 +1760,6 @@ void Animation::value_track_get_key_indices(int p_track, float p_time, float p_d SWAP(from_time, to_time); if (loop) { - from_time = Math::fposmod(from_time, length); to_time = Math::fposmod(to_time, length); @@ -1968,7 +1770,6 @@ void Animation::value_track_get_key_indices(int p_track, float p_time, float p_d return; } } else { - if (from_time < 0) from_time = 0; if (from_time > length) @@ -1984,7 +1785,6 @@ void Animation::value_track_get_key_indices(int p_track, float p_time, float p_d } void Animation::value_track_set_update_mode(int p_track, UpdateMode p_mode) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_VALUE); @@ -1995,7 +1795,6 @@ void Animation::value_track_set_update_mode(int p_track, UpdateMode p_mode) { } Animation::UpdateMode Animation::value_track_get_update_mode(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), UPDATE_CONTINUOUS); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_VALUE, UPDATE_CONTINUOUS); @@ -2006,7 +1805,6 @@ Animation::UpdateMode Animation::value_track_get_update_mode(int p_track) const template <class T> void Animation::_track_get_key_indices_in_range(const Vector<T> &p_array, float from_time, float to_time, List<int> *p_indices) const { - if (from_time != length && to_time == length) to_time = length * 1.01; //include a little more if at the end @@ -2030,14 +1828,12 @@ void Animation::_track_get_key_indices_in_range(const Vector<T> &p_array, float int max = p_array.size(); for (int i = from; i <= to; i++) { - ERR_CONTINUE(i < 0 || i >= max); // shouldn't happen p_indices->push_back(i); } } void Animation::track_get_key_indices_in_range(int p_track, float p_time, float p_delta, List<int> *p_indices) const { - ERR_FAIL_INDEX(p_track, tracks.size()); const Track *t = tracks[p_track]; @@ -2048,7 +1844,6 @@ void Animation::track_get_key_indices_in_range(int p_track, float p_time, float SWAP(from_time, to_time); if (loop) { - if (from_time > length || from_time < 0) from_time = Math::fposmod(from_time, length); @@ -2059,44 +1854,37 @@ void Animation::track_get_key_indices_in_range(int p_track, float p_time, float // handle loop by splitting switch (t->type) { - case TYPE_TRANSFORM: { - const TransformTrack *tt = static_cast<const TransformTrack *>(t); _track_get_key_indices_in_range(tt->transforms, from_time, length, p_indices); _track_get_key_indices_in_range(tt->transforms, 0, to_time, p_indices); } break; case TYPE_VALUE: { - const ValueTrack *vt = static_cast<const ValueTrack *>(t); _track_get_key_indices_in_range(vt->values, from_time, length, p_indices); _track_get_key_indices_in_range(vt->values, 0, to_time, p_indices); } break; case TYPE_METHOD: { - const MethodTrack *mt = static_cast<const MethodTrack *>(t); _track_get_key_indices_in_range(mt->methods, from_time, length, p_indices); _track_get_key_indices_in_range(mt->methods, 0, to_time, p_indices); } break; case TYPE_BEZIER: { - const BezierTrack *bz = static_cast<const BezierTrack *>(t); _track_get_key_indices_in_range(bz->values, from_time, length, p_indices); _track_get_key_indices_in_range(bz->values, 0, to_time, p_indices); } break; case TYPE_AUDIO: { - const AudioTrack *ad = static_cast<const AudioTrack *>(t); _track_get_key_indices_in_range(ad->values, from_time, length, p_indices); _track_get_key_indices_in_range(ad->values, 0, to_time, p_indices); } break; case TYPE_ANIMATION: { - const AnimationTrack *an = static_cast<const AnimationTrack *>(t); _track_get_key_indices_in_range(an->values, from_time, length, p_indices); _track_get_key_indices_in_range(an->values, 0, to_time, p_indices); @@ -2106,7 +1894,6 @@ void Animation::track_get_key_indices_in_range(int p_track, float p_time, float return; } } else { - if (from_time < 0) from_time = 0; if (from_time > length) @@ -2119,39 +1906,32 @@ void Animation::track_get_key_indices_in_range(int p_track, float p_time, float } switch (t->type) { - case TYPE_TRANSFORM: { - const TransformTrack *tt = static_cast<const TransformTrack *>(t); _track_get_key_indices_in_range(tt->transforms, from_time, to_time, p_indices); } break; case TYPE_VALUE: { - const ValueTrack *vt = static_cast<const ValueTrack *>(t); _track_get_key_indices_in_range(vt->values, from_time, to_time, p_indices); } break; case TYPE_METHOD: { - const MethodTrack *mt = static_cast<const MethodTrack *>(t); _track_get_key_indices_in_range(mt->methods, from_time, to_time, p_indices); } break; case TYPE_BEZIER: { - const BezierTrack *bz = static_cast<const BezierTrack *>(t); _track_get_key_indices_in_range(bz->values, from_time, to_time, p_indices); } break; case TYPE_AUDIO: { - const AudioTrack *ad = static_cast<const AudioTrack *>(t); _track_get_key_indices_in_range(ad->values, from_time, to_time, p_indices); } break; case TYPE_ANIMATION: { - const AnimationTrack *an = static_cast<const AnimationTrack *>(t); _track_get_key_indices_in_range(an->values, from_time, to_time, p_indices); @@ -2160,7 +1940,6 @@ void Animation::track_get_key_indices_in_range(int p_track, float p_time, float } void Animation::_method_track_get_key_indices_in_range(const MethodTrack *mt, float from_time, float to_time, List<int> *p_indices) const { - if (from_time != length && to_time == length) to_time = length * 1.01; //include a little more if at the end @@ -2184,14 +1963,12 @@ void Animation::_method_track_get_key_indices_in_range(const MethodTrack *mt, fl int max = mt->methods.size(); for (int i = from; i <= to; i++) { - ERR_CONTINUE(i < 0 || i >= max); // shouldn't happen p_indices->push_back(i); } } void Animation::method_track_get_key_indices(int p_track, float p_time, float p_delta, List<int> *p_indices) const { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_METHOD); @@ -2205,7 +1982,6 @@ void Animation::method_track_get_key_indices(int p_track, float p_time, float p_ SWAP(from_time, to_time); if (loop) { - if (from_time > length || from_time < 0) from_time = Math::fposmod(from_time, length); @@ -2219,7 +1995,6 @@ void Animation::method_track_get_key_indices(int p_track, float p_time, float p_ return; } } else { - if (from_time < 0) from_time = 0; if (from_time > length) @@ -2234,7 +2009,6 @@ void Animation::method_track_get_key_indices(int p_track, float p_time, float p_ _method_track_get_key_indices_in_range(mt, from_time, to_time, p_indices); } Vector<Variant> Animation::method_track_get_params(int p_track, int p_key_idx) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), Vector<Variant>()); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_METHOD, Vector<Variant>()); @@ -2248,7 +2022,6 @@ Vector<Variant> Animation::method_track_get_params(int p_track, int p_key_idx) c return mk.params; } StringName Animation::method_track_get_name(int p_track, int p_key_idx) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), StringName()); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_METHOD, StringName()); @@ -2261,7 +2034,6 @@ StringName Animation::method_track_get_name(int p_track, int p_key_idx) const { } int Animation::bezier_track_insert_key(int p_track, float p_time, float p_value, const Vector2 &p_in_handle, const Vector2 &p_out_handle) { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_BEZIER, -1); @@ -2288,7 +2060,6 @@ int Animation::bezier_track_insert_key(int p_track, float p_time, float p_value, } void Animation::bezier_track_set_key_value(int p_track, int p_index, float p_value) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_BEZIER); @@ -2302,7 +2073,6 @@ void Animation::bezier_track_set_key_value(int p_track, int p_index, float p_val } void Animation::bezier_track_set_key_in_handle(int p_track, int p_index, const Vector2 &p_handle) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_BEZIER); @@ -2318,7 +2088,6 @@ void Animation::bezier_track_set_key_in_handle(int p_track, int p_index, const V emit_changed(); } void Animation::bezier_track_set_key_out_handle(int p_track, int p_index, const Vector2 &p_handle) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_BEZIER); @@ -2334,7 +2103,6 @@ void Animation::bezier_track_set_key_out_handle(int p_track, int p_index, const emit_changed(); } float Animation::bezier_track_get_key_value(int p_track, int p_index) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), 0); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_BEZIER, 0); @@ -2346,7 +2114,6 @@ float Animation::bezier_track_get_key_value(int p_track, int p_index) const { return bt->values[p_index].value.value; } Vector2 Animation::bezier_track_get_key_in_handle(int p_track, int p_index) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), Vector2()); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_BEZIER, Vector2()); @@ -2358,7 +2125,6 @@ Vector2 Animation::bezier_track_get_key_in_handle(int p_track, int p_index) cons return bt->values[p_index].value.in_handle; } Vector2 Animation::bezier_track_get_key_out_handle(int p_track, int p_index) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), Vector2()); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_BEZIER, Vector2()); @@ -2428,7 +2194,6 @@ float Animation::bezier_track_interpolate(int p_track, float p_time) const { //narrow high and low as much as possible for (int i = 0; i < iterations; i++) { - middle = (low + high) / 2; Vector2 interp = _bezier_interp(middle, start, start_out, end_in, end); @@ -2449,7 +2214,6 @@ float Animation::bezier_track_interpolate(int p_track, float p_time) const { } int Animation::audio_track_insert_key(int p_track, float p_time, const RES &p_stream, float p_start_offset, float p_end_offset) { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_AUDIO, -1); @@ -2474,7 +2238,6 @@ int Animation::audio_track_insert_key(int p_track, float p_time, const RES &p_st } void Animation::audio_track_set_key_stream(int p_track, int p_key, const RES &p_stream) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_AUDIO); @@ -2489,7 +2252,6 @@ void Animation::audio_track_set_key_stream(int p_track, int p_key, const RES &p_ } void Animation::audio_track_set_key_start_offset(int p_track, int p_key, float p_offset) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_AUDIO); @@ -2507,7 +2269,6 @@ void Animation::audio_track_set_key_start_offset(int p_track, int p_key, float p } void Animation::audio_track_set_key_end_offset(int p_track, int p_key, float p_offset) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_AUDIO); @@ -2525,7 +2286,6 @@ void Animation::audio_track_set_key_end_offset(int p_track, int p_key, float p_o } RES Animation::audio_track_get_key_stream(int p_track, int p_key) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), RES()); const Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_AUDIO, RES()); @@ -2537,7 +2297,6 @@ RES Animation::audio_track_get_key_stream(int p_track, int p_key) const { return at->values[p_key].value.stream; } float Animation::audio_track_get_key_start_offset(int p_track, int p_key) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), 0); const Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_AUDIO, 0); @@ -2549,7 +2308,6 @@ float Animation::audio_track_get_key_start_offset(int p_track, int p_key) const return at->values[p_key].value.start_offset; } float Animation::audio_track_get_key_end_offset(int p_track, int p_key) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), 0); const Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_AUDIO, 0); @@ -2564,7 +2322,6 @@ float Animation::audio_track_get_key_end_offset(int p_track, int p_key) const { // int Animation::animation_track_insert_key(int p_track, float p_time, const StringName &p_animation) { - ERR_FAIL_INDEX_V(p_track, tracks.size(), -1); Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_ANIMATION, -1); @@ -2583,7 +2340,6 @@ int Animation::animation_track_insert_key(int p_track, float p_time, const Strin } void Animation::animation_track_set_key_animation(int p_track, int p_key, const StringName &p_animation) { - ERR_FAIL_INDEX(p_track, tracks.size()); Track *t = tracks[p_track]; ERR_FAIL_COND(t->type != TYPE_ANIMATION); @@ -2598,7 +2354,6 @@ void Animation::animation_track_set_key_animation(int p_track, int p_key, const } StringName Animation::animation_track_get_key_animation(int p_track, int p_key) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), StringName()); const Track *t = tracks[p_track]; ERR_FAIL_COND_V(t->type != TYPE_ANIMATION, StringName()); @@ -2611,7 +2366,6 @@ StringName Animation::animation_track_get_key_animation(int p_track, int p_key) } void Animation::set_length(float p_length) { - if (p_length < ANIM_MIN_LENGTH) { p_length = ANIM_MIN_LENGTH; } @@ -2619,49 +2373,40 @@ void Animation::set_length(float p_length) { emit_changed(); } float Animation::get_length() const { - return length; } void Animation::set_loop(bool p_enabled) { - loop = p_enabled; emit_changed(); } bool Animation::has_loop() const { - return loop; } void Animation::track_set_imported(int p_track, bool p_imported) { - ERR_FAIL_INDEX(p_track, tracks.size()); tracks[p_track]->imported = p_imported; } bool Animation::track_is_imported(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), false); return tracks[p_track]->imported; } void Animation::track_set_enabled(int p_track, bool p_enabled) { - ERR_FAIL_INDEX(p_track, tracks.size()); tracks[p_track]->enabled = p_enabled; emit_changed(); } bool Animation::track_is_enabled(int p_track) const { - ERR_FAIL_INDEX_V(p_track, tracks.size(), false); return tracks[p_track]->enabled; } void Animation::track_move_up(int p_track) { - if (p_track >= 0 && p_track < (tracks.size() - 1)) { - SWAP(tracks.write[p_track], tracks.write[p_track + 1]); } @@ -2670,9 +2415,7 @@ void Animation::track_move_up(int p_track) { } void Animation::track_move_down(int p_track) { - if (p_track > 0 && p_track < tracks.size()) { - SWAP(tracks.write[p_track], tracks.write[p_track - 1]); } @@ -2681,7 +2424,6 @@ void Animation::track_move_down(int p_track) { } void Animation::track_move_to(int p_track, int p_to_index) { - ERR_FAIL_INDEX(p_track, tracks.size()); ERR_FAIL_INDEX(p_to_index, tracks.size() + 1); if (p_track == p_to_index || p_track == p_to_index - 1) @@ -2697,7 +2439,6 @@ void Animation::track_move_to(int p_track, int p_to_index) { } void Animation::track_swap(int p_track, int p_with_track) { - ERR_FAIL_INDEX(p_track, tracks.size()); ERR_FAIL_INDEX(p_with_track, tracks.size()); if (p_track == p_with_track) @@ -2709,13 +2450,11 @@ void Animation::track_swap(int p_track, int p_with_track) { } void Animation::set_step(float p_step) { - step = p_step; emit_changed(); } float Animation::get_step() const { - return step; } @@ -2737,7 +2476,6 @@ void Animation::copy_track(int p_track, Ref<Animation> p_to_animation) { } void Animation::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_track", "type", "at_position"), &Animation::add_track, DEFVAL(-1)); ClassDB::bind_method(D_METHOD("remove_track", "track_idx"), &Animation::remove_track); ClassDB::bind_method(D_METHOD("get_track_count"), &Animation::get_track_count); @@ -2847,7 +2585,6 @@ void Animation::_bind_methods() { } void Animation::clear() { - for (int i = 0; i < tracks.size(); i++) memdelete(tracks[i]); tracks.clear(); @@ -2858,7 +2595,6 @@ void Animation::clear() { } bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, const TKey<TransformKey> &t1, const TKey<TransformKey> &t2, float p_alowed_linear_err, float p_alowed_angular_err, float p_max_optimizable_angle, const Vector3 &p_norm) { - real_t c = (t1.time - t0.time) / (t2.time - t0.time); real_t t[3] = { -1, -1, -1 }; @@ -2876,7 +2612,6 @@ bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, cons } } else { - Vector3 pd = (v2 - v0); float d0 = pd.dot(v0); float d1 = pd.dot(v1); @@ -2908,12 +2643,10 @@ bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, cons //localize both to rotation from q0 if (q0.is_equal_approx(q2)) { - if (!q0.is_equal_approx(q1)) return false; } else { - Quat r02 = (q0.inverse() * q2).normalized(); Quat r01 = (q0.inverse() * q1).normalized(); @@ -2965,7 +2698,6 @@ bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, cons } } else { - Vector3 pd = (v2 - v0); float d0 = pd.dot(v0); float d1 = pd.dot(v1); @@ -2987,10 +2719,8 @@ bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, cons bool erase = false; if (t[0] == -1 && t[1] == -1 && t[2] == -1) { - erase = true; } else { - erase = true; real_t lt = -1; for (int j = 0; j < 3; j++) { @@ -3014,7 +2744,6 @@ bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, cons ERR_FAIL_COND_V(lt == -1, false); if (erase) { - if (Math::abs(lt - c) > p_alowed_linear_err) { //todo, evaluate changing the transition if this fails? //this could be done as a second pass and would be @@ -3028,7 +2757,6 @@ bool Animation::_transform_track_optimize_key(const TKey<TransformKey> &t0, cons } void Animation::_transform_track_optimize(int p_idx, float p_allowed_linear_err, float p_allowed_angular_err, float p_max_optimizable_angle) { - ERR_FAIL_INDEX(p_idx, tracks.size()); ERR_FAIL_COND(tracks[p_idx]->type != TYPE_TRANSFORM); TransformTrack *tt = static_cast<TransformTrack *>(tracks[p_idx]); @@ -3038,7 +2766,6 @@ void Animation::_transform_track_optimize(int p_idx, float p_allowed_linear_err, Vector3 norm; for (int i = 1; i < tt->transforms.size() - 1; i++) { - TKey<TransformKey> &t0 = tt->transforms.write[i - 1]; TKey<TransformKey> &t1 = tt->transforms.write[i]; TKey<TransformKey> &t2 = tt->transforms.write[i + 1]; @@ -3054,7 +2781,6 @@ void Animation::_transform_track_optimize(int p_idx, float p_allowed_linear_err, } if (erase) { - if (!prev_erased) { first_erased = t1; prev_erased = true; @@ -3071,23 +2797,19 @@ void Animation::_transform_track_optimize(int p_idx, float p_allowed_linear_err, } void Animation::optimize(float p_allowed_linear_err, float p_allowed_angular_err, float p_max_optimizable_angle) { - for (int i = 0; i < tracks.size(); i++) { - if (tracks[i]->type == TYPE_TRANSFORM) _transform_track_optimize(i, p_allowed_linear_err, p_allowed_angular_err, p_max_optimizable_angle); } } Animation::Animation() { - step = 0.1; loop = false; length = 1; } Animation::~Animation() { - for (int i = 0; i < tracks.size(); i++) memdelete(tracks[i]); } diff --git a/scene/resources/animation.h b/scene/resources/animation.h index e4e5177a8c..722a400fd6 100644 --- a/scene/resources/animation.h +++ b/scene/resources/animation.h @@ -34,7 +34,6 @@ #include "core/resource.h" class Animation : public Resource { - GDCLASS(Animation, Resource); RES_BASE_EXTENSION("anim"); @@ -64,7 +63,6 @@ public: private: struct Track { - TrackType type; InterpolationType interpolation; bool loop_wrap; @@ -81,7 +79,6 @@ private: }; struct Key { - float transition; float time; // time in secs Key() { @@ -93,12 +90,10 @@ private: // transform key holds either Vector3 or Quaternion template <class T> struct TKey : public Key { - T value; }; struct TransformKey { - Vector3 loc; Quat rot; Vector3 scale; @@ -107,7 +102,6 @@ private: /* TRANSFORM TRACK */ struct TransformTrack : public Track { - Vector<TKey<TransformKey>> transforms; TransformTrack() { type = TYPE_TRANSFORM; } @@ -116,7 +110,6 @@ private: /* PROPERTY VALUE TRACK */ struct ValueTrack : public Track { - UpdateMode update_mode; bool update_on_seek; Vector<TKey<Variant>> values; @@ -130,13 +123,11 @@ private: /* METHOD TRACK */ struct MethodKey : public Key { - StringName method; Vector<Variant> params; }; struct MethodTrack : public Track { - Vector<MethodKey> methods; MethodTrack() { type = TYPE_METHOD; } }; @@ -150,7 +141,6 @@ private: }; struct BezierTrack : public Track { - Vector<TKey<BezierKey>> values; BezierTrack() { @@ -171,7 +161,6 @@ private: }; struct AudioTrack : public Track { - Vector<TKey<AudioKey>> values; AudioTrack() { @@ -182,7 +171,6 @@ private: /* AUDIO TRACK */ struct AnimationTrack : public Track { - Vector<TKey<StringName>> values; AnimationTrack() { @@ -246,25 +234,21 @@ private: } Vector<int> _value_track_get_key_indices(int p_track, float p_time, float p_delta) const { - List<int> idxs; value_track_get_key_indices(p_track, p_time, p_delta, &idxs); Vector<int> idxr; for (List<int>::Element *E = idxs.front(); E; E = E->next()) { - idxr.push_back(E->get()); } return idxr; } Vector<int> _method_track_get_key_indices(int p_track, float p_time, float p_delta) const { - List<int> idxs; method_track_get_key_indices(p_track, p_time, p_delta, &idxs); Vector<int> idxr; for (List<int>::Element *E = idxs.front(); E; E = E->next()) { - idxr.push_back(E->get()); } return idxr; diff --git a/scene/resources/audio_stream_sample.cpp b/scene/resources/audio_stream_sample.cpp index fdf5e2c2d0..b6608b47d0 100644 --- a/scene/resources/audio_stream_sample.cpp +++ b/scene/resources/audio_stream_sample.cpp @@ -34,7 +34,6 @@ #include "core/os/file_access.h" void AudioStreamPlaybackSample::start(float p_from_pos) { - if (base->format == AudioStreamSample::FORMAT_IMA_ADPCM) { //no seeking in IMA_ADPCM for (int i = 0; i < 2; i++) { @@ -57,26 +56,21 @@ void AudioStreamPlaybackSample::start(float p_from_pos) { } void AudioStreamPlaybackSample::stop() { - active = false; } bool AudioStreamPlaybackSample::is_playing() const { - return active; } int AudioStreamPlaybackSample::get_loop_count() const { - return 0; } float AudioStreamPlaybackSample::get_playback_position() const { - return float(offset >> MIX_FRAC_BITS) / base->mix_rate; } void AudioStreamPlaybackSample::seek(float p_time) { - if (base->format == AudioStreamSample::FORMAT_IMA_ADPCM) return; //no seeking in ima-adpcm @@ -92,7 +86,6 @@ void AudioStreamPlaybackSample::seek(float p_time) { template <class Depth, bool is_stereo, bool is_ima_adpcm> void AudioStreamPlaybackSample::do_resample(const Depth *p_src, AudioFrame *p_dst, int64_t &offset, int32_t &increment, uint32_t amount, IMA_ADPCM_State *ima_adpcm) { - // this function will be compiled branchless by any decent compiler int32_t final, final_r, next, next_r; @@ -103,11 +96,9 @@ void AudioStreamPlaybackSample::do_resample(const Depth *p_src, AudioFrame *p_ds pos <<= 1; if (is_ima_adpcm) { - int64_t sample_pos = pos + ima_adpcm[0].window_ofs; while (sample_pos > ima_adpcm[0].last_nibble) { - static const int16_t _ima_adpcm_step_table[89] = { 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, @@ -126,7 +117,6 @@ void AudioStreamPlaybackSample::do_resample(const Depth *p_src, AudioFrame *p_ds }; for (int i = 0; i < (is_stereo ? 2 : 1); i++) { - int16_t nibble, diff, step; ima_adpcm[i].last_nibble++; @@ -161,7 +151,6 @@ void AudioStreamPlaybackSample::do_resample(const Depth *p_src, AudioFrame *p_ds /* store loop if there */ if (ima_adpcm[i].last_nibble == ima_adpcm[i].loop_pos) { - ima_adpcm[i].loop_step_index = ima_adpcm[i].step_index; ima_adpcm[i].loop_predictor = ima_adpcm[i].predictor; } @@ -187,7 +176,6 @@ void AudioStreamPlaybackSample::do_resample(const Depth *p_src, AudioFrame *p_ds } if (is_stereo) { - next = p_src[pos + 2]; next_r = p_src[pos + 3]; } else { @@ -220,7 +208,6 @@ void AudioStreamPlaybackSample::do_resample(const Depth *p_src, AudioFrame *p_ds } void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, int p_frames) { - if (!base->data || !active) { for (int i = 0; i < p_frames; i++) { p_buffer[i] = AudioFrame(0, 0); @@ -279,7 +266,6 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in AudioFrame *dst_buff = p_buffer; if (format == AudioStreamSample::FORMAT_IMA_ADPCM) { - if (loop_format != AudioStreamSample::LOOP_DISABLED) { ima_adpcm[0].loop_pos = loop_begin_fp >> MIX_FRAC_BITS; ima_adpcm[1].loop_pos = loop_begin_fp >> MIX_FRAC_BITS; @@ -288,7 +274,6 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in } while (todo > 0) { - int64_t limit = 0; int32_t target = 0, aux = 0; @@ -311,7 +296,6 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in } else { /* check for sample not reaching beginning */ if (offset < 0) { - active = false; break; } @@ -343,7 +327,6 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in } else { /* no loop, check for end of sample */ if (offset >= length_fp) { - active = false; break; } @@ -369,7 +352,6 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in switch (base->format) { case AudioStreamSample::FORMAT_8_BITS: { - if (is_stereo) do_resample<int8_t, true, false>((int8_t *)data, dst_buff, offset, increment, target, ima_adpcm); else @@ -404,7 +386,6 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in } AudioStreamPlaybackSample::AudioStreamPlaybackSample() { - active = false; offset = 0; sign = 1; @@ -413,62 +394,49 @@ AudioStreamPlaybackSample::AudioStreamPlaybackSample() { ///////////////////// void AudioStreamSample::set_format(Format p_format) { - format = p_format; } AudioStreamSample::Format AudioStreamSample::get_format() const { - return format; } void AudioStreamSample::set_loop_mode(LoopMode p_loop_mode) { - loop_mode = p_loop_mode; } AudioStreamSample::LoopMode AudioStreamSample::get_loop_mode() const { - return loop_mode; } void AudioStreamSample::set_loop_begin(int p_frame) { - loop_begin = p_frame; } int AudioStreamSample::get_loop_begin() const { - return loop_begin; } void AudioStreamSample::set_loop_end(int p_frame) { - loop_end = p_frame; } int AudioStreamSample::get_loop_end() const { - return loop_end; } void AudioStreamSample::set_mix_rate(int p_hz) { - ERR_FAIL_COND(p_hz == 0); mix_rate = p_hz; } int AudioStreamSample::get_mix_rate() const { - return mix_rate; } void AudioStreamSample::set_stereo(bool p_enable) { - stereo = p_enable; } bool AudioStreamSample::is_stereo() const { - return stereo; } float AudioStreamSample::get_length() const { - int len = data_bytes; switch (format) { case AudioStreamSample::FORMAT_8_BITS: @@ -490,7 +458,6 @@ float AudioStreamSample::get_length() const { } void AudioStreamSample::set_data(const Vector<uint8_t> &p_data) { - AudioServer::get_singleton()->lock(); if (data) { memfree(data); @@ -500,7 +467,6 @@ void AudioStreamSample::set_data(const Vector<uint8_t> &p_data) { int datalen = p_data.size(); if (datalen) { - const uint8_t *r = p_data.ptr(); int alloc_len = datalen + DATA_PAD * 2; data = memalloc(alloc_len); //alloc with some padding for interpolation @@ -513,13 +479,11 @@ void AudioStreamSample::set_data(const Vector<uint8_t> &p_data) { AudioServer::get_singleton()->unlock(); } Vector<uint8_t> AudioStreamSample::get_data() const { - Vector<uint8_t> pv; if (data) { pv.resize(data_bytes); { - uint8_t *w = pv.ptrw(); uint8_t *dataptr = (uint8_t *)data; copymem(w, dataptr + DATA_PAD, data_bytes); @@ -610,7 +574,6 @@ Error AudioStreamSample::save_to_wav(const String &p_path) { } Ref<AudioStreamPlayback> AudioStreamSample::instance_playback() { - Ref<AudioStreamPlaybackSample> sample; sample.instance(); sample->base = Ref<AudioStreamSample>(this); @@ -618,12 +581,10 @@ Ref<AudioStreamPlayback> AudioStreamSample::instance_playback() { } String AudioStreamSample::get_stream_name() const { - return ""; } void AudioStreamSample::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_data", "data"), &AudioStreamSample::set_data); ClassDB::bind_method(D_METHOD("get_data"), &AudioStreamSample::get_data); diff --git a/scene/resources/audio_stream_sample.h b/scene/resources/audio_stream_sample.h index 0b46bc1c75..2bd358117c 100644 --- a/scene/resources/audio_stream_sample.h +++ b/scene/resources/audio_stream_sample.h @@ -36,7 +36,6 @@ class AudioStreamSample; class AudioStreamPlaybackSample : public AudioStreamPlayback { - GDCLASS(AudioStreamPlaybackSample, AudioStreamPlayback); enum { MIX_FRAC_BITS = 13, @@ -45,7 +44,6 @@ class AudioStreamPlaybackSample : public AudioStreamPlayback { }; struct IMA_ADPCM_State { - int16_t step_index; int32_t predictor; /* values at loop point */ diff --git a/scene/resources/bit_map.cpp b/scene/resources/bit_map.cpp index d45f36dfd1..27a5fee934 100644 --- a/scene/resources/bit_map.cpp +++ b/scene/resources/bit_map.cpp @@ -33,7 +33,6 @@ #include "core/io/image_loader.h" void BitMap::create(const Size2 &p_size) { - ERR_FAIL_COND(p_size.width < 1); ERR_FAIL_COND(p_size.height < 1); @@ -44,7 +43,6 @@ void BitMap::create(const Size2 &p_size) { } void BitMap::create_from_image_alpha(const Ref<Image> &p_image, float p_threshold) { - ERR_FAIL_COND(p_image.is_null() || p_image->empty()); Ref<Image> img = p_image->duplicate(); img->convert(Image::FORMAT_LA8); @@ -56,7 +54,6 @@ void BitMap::create_from_image_alpha(const Ref<Image> &p_image, float p_threshol uint8_t *w = bitmask.ptrw(); for (int i = 0; i < width * height; i++) { - int bbyte = i / 8; int bbit = i % 8; if (r[i * 2 + 1] / 255.0 > p_threshold) { @@ -66,14 +63,11 @@ void BitMap::create_from_image_alpha(const Ref<Image> &p_image, float p_threshol } void BitMap::set_bit_rect(const Rect2 &p_rect, bool p_value) { - Rect2i current = Rect2i(0, 0, width, height).clip(p_rect); uint8_t *data = bitmask.ptrw(); for (int i = current.position.x; i < current.position.x + current.size.x; i++) { - for (int j = current.position.y; j < current.position.y + current.size.y; j++) { - int ofs = width * j + i; int bbyte = ofs / 8; int bbit = ofs % 8; @@ -91,7 +85,6 @@ void BitMap::set_bit_rect(const Rect2 &p_rect, bool p_value) { } int BitMap::get_true_bit_count() const { - int ds = bitmask.size(); const uint8_t *d = bitmask.ptr(); int c = 0; @@ -99,7 +92,6 @@ int BitMap::get_true_bit_count() const { //fast, almost branchless version for (int i = 0; i < ds; i++) { - c += (d[i] & (1 << 7)) >> 7; c += (d[i] & (1 << 6)) >> 6; c += (d[i] & (1 << 5)) >> 5; @@ -114,7 +106,6 @@ int BitMap::get_true_bit_count() const { } void BitMap::set_bit(const Point2 &p_pos, bool p_value) { - int x = p_pos.x; int y = p_pos.y; @@ -136,7 +127,6 @@ void BitMap::set_bit(const Point2 &p_pos, bool p_value) { } bool BitMap::get_bit(const Point2 &p_pos) const { - int x = Math::fast_ftoi(p_pos.x); int y = Math::fast_ftoi(p_pos.y); ERR_FAIL_INDEX_V(x, width, false); @@ -150,12 +140,10 @@ bool BitMap::get_bit(const Point2 &p_pos) const { } Size2 BitMap::get_size() const { - return Size2(width, height); } void BitMap::_set_data(const Dictionary &p_d) { - ERR_FAIL_COND(!p_d.has("size")); ERR_FAIL_COND(!p_d.has("data")); @@ -164,7 +152,6 @@ void BitMap::_set_data(const Dictionary &p_d) { } Dictionary BitMap::_get_data() const { - Dictionary d; d["size"] = get_size(); d["data"] = bitmask; @@ -172,7 +159,6 @@ Dictionary BitMap::_get_data() const { } Vector<Vector2> BitMap::_march_square(const Rect2i &rect, const Point2i &start) const { - int stepx = 0; int stepy = 0; int prevx = 0; @@ -209,7 +195,6 @@ Vector<Vector2> BitMap::_march_square(const Rect2i &rect, const Point2i &start) } switch (sv) { - case 1: case 5: case 13: @@ -368,7 +353,6 @@ static Vector<Vector2> rdp(const Vector<Vector2> &v, float optimization) { } } if (dist > optimization) { - Vector<Vector2> left, right; left.resize(index); for (int i = 0; i < index; i++) { @@ -424,7 +408,6 @@ struct FillBitsStackEntry { }; static void fill_bits(const BitMap *p_src, Ref<BitMap> &p_map, const Point2i &p_pos, const Rect2i &rect) { - // Using a custom stack to work iteratively to avoid stack overflow on big bitmaps Vector<FillBitsStackEntry> stack; // Tracking size since we won't be shrinking the stack vector @@ -494,7 +477,6 @@ static void fill_bits(const BitMap *p_src, Ref<BitMap> &p_map, const Point2i &p_ } Vector<Vector<Vector2>> BitMap::clip_opaque_to_polygons(const Rect2 &p_rect, float p_epsilon) const { - Rect2i r = Rect2i(0, 0, width, height).clip(p_rect); print_verbose("BitMap: Rect: " + r); @@ -507,7 +489,6 @@ Vector<Vector<Vector2>> BitMap::clip_opaque_to_polygons(const Rect2 &p_rect, flo for (int i = r.position.y; i < r.position.y + r.size.height; i++) { for (int j = r.position.x; j < r.position.x + r.size.width; j++) { if (!fill->get_bit(Point2(j, i)) && get_bit(Point2(j, i))) { - fill_bits(this, fill, Point2i(j, i), r); Vector<Vector2> polygon = _march_square(r, Point2i(j, i)); @@ -529,7 +510,6 @@ Vector<Vector<Vector2>> BitMap::clip_opaque_to_polygons(const Rect2 &p_rect, flo } void BitMap::grow_mask(int p_pixels, const Rect2 &p_rect) { - if (p_pixels == 0) { return; } @@ -553,7 +533,6 @@ void BitMap::grow_mask(int p_pixels, const Rect2 &p_rect) { for (int y = i - p_pixels; y <= i + p_pixels; y++) { for (int x = j - p_pixels; x <= j + p_pixels; x++) { - bool outside = false; if ((x < p_rect.position.x) || (x >= p_rect.position.x + p_rect.size.x) || (y < p_rect.position.y) || (y >= p_rect.position.y + p_rect.size.y)) { @@ -585,12 +564,10 @@ void BitMap::grow_mask(int p_pixels, const Rect2 &p_rect) { } void BitMap::shrink_mask(int p_pixels, const Rect2 &p_rect) { - grow_mask(-p_pixels, p_rect); } Array BitMap::_opaque_to_polygons_bind(const Rect2 &p_rect, float p_epsilon) const { - Vector<Vector<Vector2>> result = clip_opaque_to_polygons(p_rect, p_epsilon); // Convert result to bindable types @@ -598,7 +575,6 @@ Array BitMap::_opaque_to_polygons_bind(const Rect2 &p_rect, float p_epsilon) con Array result_array; result_array.resize(result.size()); for (int i = 0; i < result.size(); i++) { - const Vector<Vector2> &polygon = result[i]; PackedVector2Array polygon_array; @@ -618,7 +594,6 @@ Array BitMap::_opaque_to_polygons_bind(const Rect2 &p_rect, float p_epsilon) con } void BitMap::resize(const Size2 &p_new_size) { - Ref<BitMap> new_bitmap; new_bitmap.instance(); new_bitmap->create(p_new_size); @@ -636,7 +611,6 @@ void BitMap::resize(const Size2 &p_new_size) { } Ref<Image> BitMap::convert_to_image() const { - Ref<Image> image; image.instance(); image->create(width, height, false, Image::FORMAT_L8); @@ -650,7 +624,6 @@ Ref<Image> BitMap::convert_to_image() const { return image; } void BitMap::blit(const Vector2 &p_pos, const Ref<BitMap> &p_bitmap) { - int x = p_pos.x; int y = p_pos.y; int w = p_bitmap->get_size().width; @@ -672,7 +645,6 @@ void BitMap::blit(const Vector2 &p_pos, const Ref<BitMap> &p_bitmap) { } void BitMap::_bind_methods() { - ClassDB::bind_method(D_METHOD("create", "size"), &BitMap::create); ClassDB::bind_method(D_METHOD("create_from_image_alpha", "image", "threshold"), &BitMap::create_from_image_alpha, DEFVAL(0.1)); @@ -694,7 +666,6 @@ void BitMap::_bind_methods() { } BitMap::BitMap() { - width = 0; height = 0; } diff --git a/scene/resources/bit_map.h b/scene/resources/bit_map.h index 05313a0cff..59f3b4dc3c 100644 --- a/scene/resources/bit_map.h +++ b/scene/resources/bit_map.h @@ -36,7 +36,6 @@ #include "core/resource.h" class BitMap : public Resource { - GDCLASS(BitMap, Resource); OBJ_SAVE_TYPE(BitMap); diff --git a/scene/resources/box_shape_3d.cpp b/scene/resources/box_shape_3d.cpp index 64c821a011..69339faf76 100644 --- a/scene/resources/box_shape_3d.cpp +++ b/scene/resources/box_shape_3d.cpp @@ -32,7 +32,6 @@ #include "servers/physics_server_3d.h" Vector<Vector3> BoxShape3D::get_debug_mesh_lines() { - Vector<Vector3> lines; AABB aabb; aabb.position = -get_extents(); @@ -53,13 +52,11 @@ real_t BoxShape3D::get_enclosing_radius() const { } void BoxShape3D::_update_shape() { - PhysicsServer3D::get_singleton()->shape_set_data(get_shape(), extents); Shape3D::_update_shape(); } void BoxShape3D::set_extents(const Vector3 &p_extents) { - extents = p_extents; _update_shape(); notify_change_to_owners(); @@ -67,12 +64,10 @@ void BoxShape3D::set_extents(const Vector3 &p_extents) { } Vector3 BoxShape3D::get_extents() const { - return extents; } void BoxShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_extents", "extents"), &BoxShape3D::set_extents); ClassDB::bind_method(D_METHOD("get_extents"), &BoxShape3D::get_extents); @@ -81,6 +76,5 @@ void BoxShape3D::_bind_methods() { BoxShape3D::BoxShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_BOX)) { - set_extents(Vector3(1, 1, 1)); } diff --git a/scene/resources/box_shape_3d.h b/scene/resources/box_shape_3d.h index a93fd8d33a..e00b523815 100644 --- a/scene/resources/box_shape_3d.h +++ b/scene/resources/box_shape_3d.h @@ -34,7 +34,6 @@ #include "scene/resources/shape_3d.h" class BoxShape3D : public Shape3D { - GDCLASS(BoxShape3D, Shape3D); Vector3 extents; diff --git a/scene/resources/capsule_shape_2d.cpp b/scene/resources/capsule_shape_2d.cpp index 5a3282478c..1054365459 100644 --- a/scene/resources/capsule_shape_2d.cpp +++ b/scene/resources/capsule_shape_2d.cpp @@ -34,7 +34,6 @@ #include "servers/rendering_server.h" Vector<Vector2> CapsuleShape2D::_get_points() const { - Vector<Vector2> points; for (int i = 0; i < 24; i++) { Vector2 ofs = Vector2(0, (i > 6 && i <= 18) ? -get_height() * 0.5 : get_height() * 0.5); @@ -48,29 +47,24 @@ Vector<Vector2> CapsuleShape2D::_get_points() const { } bool CapsuleShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - return Geometry::is_point_in_polygon(p_point, _get_points()); } void CapsuleShape2D::_update_shape() { - PhysicsServer2D::get_singleton()->shape_set_data(get_rid(), Vector2(radius, height)); emit_changed(); } void CapsuleShape2D::set_radius(real_t p_radius) { - radius = p_radius; _update_shape(); } real_t CapsuleShape2D::get_radius() const { - return radius; } void CapsuleShape2D::set_height(real_t p_height) { - height = p_height; if (height < 0) height = 0; @@ -79,12 +73,10 @@ void CapsuleShape2D::set_height(real_t p_height) { } real_t CapsuleShape2D::get_height() const { - return height; } void CapsuleShape2D::draw(const RID &p_to_rid, const Color &p_color) { - Vector<Vector2> points = _get_points(); Vector<Color> col; col.push_back(p_color); @@ -92,7 +84,6 @@ void CapsuleShape2D::draw(const RID &p_to_rid, const Color &p_color) { } Rect2 CapsuleShape2D::get_rect() const { - Vector2 he = Point2(get_radius(), get_radius() + get_height() * 0.5); Rect2 rect; rect.position = -he; @@ -105,7 +96,6 @@ real_t CapsuleShape2D::get_enclosing_radius() const { } void CapsuleShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_radius", "radius"), &CapsuleShape2D::set_radius); ClassDB::bind_method(D_METHOD("get_radius"), &CapsuleShape2D::get_radius); @@ -118,7 +108,6 @@ void CapsuleShape2D::_bind_methods() { CapsuleShape2D::CapsuleShape2D() : Shape2D(PhysicsServer2D::get_singleton()->capsule_shape_create()) { - radius = 10; height = 20; _update_shape(); diff --git a/scene/resources/capsule_shape_3d.cpp b/scene/resources/capsule_shape_3d.cpp index da3ffcb306..28fc0d470c 100644 --- a/scene/resources/capsule_shape_3d.cpp +++ b/scene/resources/capsule_shape_3d.cpp @@ -32,7 +32,6 @@ #include "servers/physics_server_3d.h" Vector<Vector3> CapsuleShape3D::get_debug_mesh_lines() { - float radius = get_radius(); float height = get_height(); @@ -40,7 +39,6 @@ Vector<Vector3> CapsuleShape3D::get_debug_mesh_lines() { Vector3 d(0, height * 0.5, 0); for (int i = 0; i < 360; i++) { - float ra = Math::deg2rad((float)i); float rb = Math::deg2rad((float)i + 1); Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * radius; @@ -53,7 +51,6 @@ Vector<Vector3> CapsuleShape3D::get_debug_mesh_lines() { points.push_back(Vector3(b.x, 0, b.y) - d); if (i % 90 == 0) { - points.push_back(Vector3(a.x, 0, a.y) + d); points.push_back(Vector3(a.x, 0, a.y) - d); } @@ -74,7 +71,6 @@ real_t CapsuleShape3D::get_enclosing_radius() const { } void CapsuleShape3D::_update_shape() { - Dictionary d; d["radius"] = radius; d["height"] = height; @@ -83,7 +79,6 @@ void CapsuleShape3D::_update_shape() { } void CapsuleShape3D::set_radius(float p_radius) { - radius = p_radius; _update_shape(); notify_change_to_owners(); @@ -91,12 +86,10 @@ void CapsuleShape3D::set_radius(float p_radius) { } float CapsuleShape3D::get_radius() const { - return radius; } void CapsuleShape3D::set_height(float p_height) { - height = p_height; _update_shape(); notify_change_to_owners(); @@ -104,12 +97,10 @@ void CapsuleShape3D::set_height(float p_height) { } float CapsuleShape3D::get_height() const { - return height; } void CapsuleShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_radius", "radius"), &CapsuleShape3D::set_radius); ClassDB::bind_method(D_METHOD("get_radius"), &CapsuleShape3D::get_radius); ClassDB::bind_method(D_METHOD("set_height", "height"), &CapsuleShape3D::set_height); @@ -121,7 +112,6 @@ void CapsuleShape3D::_bind_methods() { CapsuleShape3D::CapsuleShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_CAPSULE)) { - radius = 1.0; height = 1.0; _update_shape(); diff --git a/scene/resources/capsule_shape_3d.h b/scene/resources/capsule_shape_3d.h index dca7a6c983..5892f97709 100644 --- a/scene/resources/capsule_shape_3d.h +++ b/scene/resources/capsule_shape_3d.h @@ -34,7 +34,6 @@ #include "scene/resources/shape_3d.h" class CapsuleShape3D : public Shape3D { - GDCLASS(CapsuleShape3D, Shape3D); float radius; float height; diff --git a/scene/resources/circle_shape_2d.cpp b/scene/resources/circle_shape_2d.cpp index afb7597280..dc1bf3b185 100644 --- a/scene/resources/circle_shape_2d.cpp +++ b/scene/resources/circle_shape_2d.cpp @@ -34,29 +34,24 @@ #include "servers/rendering_server.h" bool CircleShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - return p_point.length() < get_radius() + p_tolerance; } void CircleShape2D::_update_shape() { - PhysicsServer2D::get_singleton()->shape_set_data(get_rid(), radius); emit_changed(); } void CircleShape2D::set_radius(real_t p_radius) { - radius = p_radius; _update_shape(); } real_t CircleShape2D::get_radius() const { - return radius; } void CircleShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_radius", "radius"), &CircleShape2D::set_radius); ClassDB::bind_method(D_METHOD("get_radius"), &CircleShape2D::get_radius); @@ -75,10 +70,8 @@ real_t CircleShape2D::get_enclosing_radius() const { } void CircleShape2D::draw(const RID &p_to_rid, const Color &p_color) { - Vector<Vector2> points; for (int i = 0; i < 24; i++) { - points.push_back(Vector2(Math::cos(i * Math_PI * 2 / 24.0), Math::sin(i * Math_PI * 2 / 24.0)) * get_radius()); } @@ -89,7 +82,6 @@ void CircleShape2D::draw(const RID &p_to_rid, const Color &p_color) { CircleShape2D::CircleShape2D() : Shape2D(PhysicsServer2D::get_singleton()->circle_shape_create()) { - radius = 10; _update_shape(); } diff --git a/scene/resources/concave_polygon_shape_2d.cpp b/scene/resources/concave_polygon_shape_2d.cpp index c8fec3b72d..9cc8ea0fac 100644 --- a/scene/resources/concave_polygon_shape_2d.cpp +++ b/scene/resources/concave_polygon_shape_2d.cpp @@ -34,7 +34,6 @@ #include "servers/rendering_server.h" bool ConcavePolygonShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - Vector<Vector2> s = get_segments(); int len = s.size(); if (len == 0 || (len % 2) == 1) @@ -51,18 +50,15 @@ bool ConcavePolygonShape2D::_edit_is_selected_on_click(const Point2 &p_point, do } void ConcavePolygonShape2D::set_segments(const Vector<Vector2> &p_segments) { - PhysicsServer2D::get_singleton()->shape_set_data(get_rid(), p_segments); emit_changed(); } Vector<Vector2> ConcavePolygonShape2D::get_segments() const { - return PhysicsServer2D::get_singleton()->shape_get_data(get_rid()); } void ConcavePolygonShape2D::draw(const RID &p_to_rid, const Color &p_color) { - Vector<Vector2> s = get_segments(); int len = s.size(); if (len == 0 || (len % 2) == 1) @@ -75,7 +71,6 @@ void ConcavePolygonShape2D::draw(const RID &p_to_rid, const Color &p_color) { } Rect2 ConcavePolygonShape2D::get_rect() const { - Vector<Vector2> s = get_segments(); int len = s.size(); if (len == 0) @@ -105,7 +100,6 @@ real_t ConcavePolygonShape2D::get_enclosing_radius() const { } void ConcavePolygonShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_segments", "segments"), &ConcavePolygonShape2D::set_segments); ClassDB::bind_method(D_METHOD("get_segments"), &ConcavePolygonShape2D::get_segments); diff --git a/scene/resources/concave_polygon_shape_3d.cpp b/scene/resources/concave_polygon_shape_3d.cpp index 42e06a49b6..7315945c03 100644 --- a/scene/resources/concave_polygon_shape_3d.cpp +++ b/scene/resources/concave_polygon_shape_3d.cpp @@ -33,7 +33,6 @@ #include "servers/physics_server_3d.h" Vector<Vector3> ConcavePolygonShape3D::get_debug_mesh_lines() { - Set<DrawEdge> edges; Vector<Vector3> data = get_faces(); @@ -43,9 +42,7 @@ Vector<Vector3> ConcavePolygonShape3D::get_debug_mesh_lines() { const Vector3 *r = data.ptr(); for (int i = 0; i < datalen; i += 3) { - for (int j = 0; j < 3; j++) { - DrawEdge de(r[i + j], r[i + ((j + 1) % 3)]); edges.insert(de); } @@ -55,7 +52,6 @@ Vector<Vector3> ConcavePolygonShape3D::get_debug_mesh_lines() { points.resize(edges.size() * 2); int idx = 0; for (Set<DrawEdge>::Element *E = edges.front(); E; E = E->next()) { - points.write[idx + 0] = E->get().a; points.write[idx + 1] = E->get().b; idx += 2; @@ -79,18 +75,15 @@ void ConcavePolygonShape3D::_update_shape() { } void ConcavePolygonShape3D::set_faces(const Vector<Vector3> &p_faces) { - PhysicsServer3D::get_singleton()->shape_set_data(get_shape(), p_faces); notify_change_to_owners(); } Vector<Vector3> ConcavePolygonShape3D::get_faces() const { - return PhysicsServer3D::get_singleton()->shape_get_data(get_shape()); } void ConcavePolygonShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_faces", "faces"), &ConcavePolygonShape3D::set_faces); ClassDB::bind_method(D_METHOD("get_faces"), &ConcavePolygonShape3D::get_faces); ADD_PROPERTY(PropertyInfo(Variant::PACKED_VECTOR3_ARRAY, "data", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "set_faces", "get_faces"); @@ -98,6 +91,5 @@ void ConcavePolygonShape3D::_bind_methods() { ConcavePolygonShape3D::ConcavePolygonShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_CONCAVE_POLYGON)) { - //set_planes(Vector3(1,1,1)); } diff --git a/scene/resources/concave_polygon_shape_3d.h b/scene/resources/concave_polygon_shape_3d.h index b4e96c662f..3646724131 100644 --- a/scene/resources/concave_polygon_shape_3d.h +++ b/scene/resources/concave_polygon_shape_3d.h @@ -34,11 +34,9 @@ #include "scene/resources/shape_3d.h" class ConcavePolygonShape3D : public Shape3D { - GDCLASS(ConcavePolygonShape3D, Shape3D); struct DrawEdge { - Vector3 a; Vector3 b; bool operator<(const DrawEdge &p_edge) const { diff --git a/scene/resources/convex_polygon_shape_2d.cpp b/scene/resources/convex_polygon_shape_2d.cpp index 6b1ddec507..59b2e3a9cd 100644 --- a/scene/resources/convex_polygon_shape_2d.cpp +++ b/scene/resources/convex_polygon_shape_2d.cpp @@ -35,12 +35,10 @@ #include "servers/rendering_server.h" bool ConvexPolygonShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - return Geometry::is_point_in_polygon(p_point, points); } void ConvexPolygonShape2D::_update_shape() { - Vector<Vector2> final_points = points; if (Geometry::is_polygon_clockwise(final_points)) { //needs to be counter clockwise final_points.invert(); @@ -50,26 +48,22 @@ void ConvexPolygonShape2D::_update_shape() { } void ConvexPolygonShape2D::set_point_cloud(const Vector<Vector2> &p_points) { - Vector<Point2> hull = Geometry::convex_hull_2d(p_points); ERR_FAIL_COND(hull.size() < 3); set_points(hull); } void ConvexPolygonShape2D::set_points(const Vector<Vector2> &p_points) { - points = p_points; _update_shape(); } Vector<Vector2> ConvexPolygonShape2D::get_points() const { - return points; } void ConvexPolygonShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_point_cloud", "point_cloud"), &ConvexPolygonShape2D::set_point_cloud); ClassDB::bind_method(D_METHOD("set_points", "points"), &ConvexPolygonShape2D::set_points); ClassDB::bind_method(D_METHOD("get_points"), &ConvexPolygonShape2D::get_points); @@ -78,14 +72,12 @@ void ConvexPolygonShape2D::_bind_methods() { } void ConvexPolygonShape2D::draw(const RID &p_to_rid, const Color &p_color) { - Vector<Color> col; col.push_back(p_color); RenderingServer::get_singleton()->canvas_item_add_polygon(p_to_rid, points, col); } Rect2 ConvexPolygonShape2D::get_rect() const { - Rect2 rect; for (int i = 0; i < points.size(); i++) { if (i == 0) diff --git a/scene/resources/convex_polygon_shape_3d.cpp b/scene/resources/convex_polygon_shape_3d.cpp index ec9ab68015..e52df73663 100644 --- a/scene/resources/convex_polygon_shape_3d.cpp +++ b/scene/resources/convex_polygon_shape_3d.cpp @@ -33,11 +33,9 @@ #include "servers/physics_server_3d.h" Vector<Vector3> ConvexPolygonShape3D::get_debug_mesh_lines() { - Vector<Vector3> points = get_points(); if (points.size() > 3) { - Vector<Vector3> varr = Variant(points); Geometry::MeshData md; Error err = QuickHull::build(varr, md); @@ -66,25 +64,21 @@ real_t ConvexPolygonShape3D::get_enclosing_radius() const { } void ConvexPolygonShape3D::_update_shape() { - PhysicsServer3D::get_singleton()->shape_set_data(get_shape(), points); Shape3D::_update_shape(); } void ConvexPolygonShape3D::set_points(const Vector<Vector3> &p_points) { - points = p_points; _update_shape(); notify_change_to_owners(); } Vector<Vector3> ConvexPolygonShape3D::get_points() const { - return points; } void ConvexPolygonShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_points", "points"), &ConvexPolygonShape3D::set_points); ClassDB::bind_method(D_METHOD("get_points"), &ConvexPolygonShape3D::get_points); diff --git a/scene/resources/convex_polygon_shape_3d.h b/scene/resources/convex_polygon_shape_3d.h index 51e4c8eb0b..0e3dde47a5 100644 --- a/scene/resources/convex_polygon_shape_3d.h +++ b/scene/resources/convex_polygon_shape_3d.h @@ -34,7 +34,6 @@ #include "scene/resources/shape_3d.h" class ConvexPolygonShape3D : public Shape3D { - GDCLASS(ConvexPolygonShape3D, Shape3D); Vector<Vector3> points; diff --git a/scene/resources/curve.cpp b/scene/resources/curve.cpp index ae705a47e8..d8f0640242 100644 --- a/scene/resources/curve.cpp +++ b/scene/resources/curve.cpp @@ -83,7 +83,6 @@ int Curve::add_point(Vector2 p_pos, real_t left_tangent, real_t right_tangent, T } } else { - int i = get_index(p_pos.x); if (i == 0 && p_pos.x < _points[0].pos.x) { @@ -106,7 +105,6 @@ int Curve::add_point(Vector2 p_pos, real_t left_tangent, real_t right_tangent, T } int Curve::get_index(real_t offset) const { - // Lower-bound float binary search int imin = 0; @@ -136,7 +134,6 @@ int Curve::get_index(real_t offset) const { } void Curve::clean_dupes() { - bool dirty = false; for (int i = 1; i < _points.size(); ++i) { @@ -254,7 +251,6 @@ Curve::Point Curve::get_point(int p_index) const { } void Curve::update_auto_tangents(int i) { - Point &p = _points.write[i]; if (i > 0) { @@ -324,7 +320,6 @@ real_t Curve::interpolate(real_t offset) const { } real_t Curve::interpolate_local_nocheck(int index, real_t local_offset) const { - const Point a = _points[index]; const Point b = _points[index + 1]; @@ -362,13 +357,11 @@ void Curve::mark_dirty() { } Array Curve::get_data() const { - Array output; const unsigned int ELEMS = 5; output.resize(_points.size() * ELEMS); for (int j = 0; j < _points.size(); ++j) { - const Point p = _points[j]; int i = j * ELEMS; @@ -406,7 +399,6 @@ void Curve::set_data(Array input) { _points.resize(input.size() / ELEMS); for (int j = 0; j < _points.size(); ++j) { - Point &p = _points.write[j]; int i = j * ELEMS; @@ -486,7 +478,6 @@ real_t Curve::interpolate_baked(real_t offset) { void Curve::ensure_default_setup(float p_min, float p_max) { if (_points.size() == 0 && _min_value == 0 && _max_value == 1) { - add_point(Vector2(0, 1)); add_point(Vector2(1, 1)); set_min_value(p_min); @@ -495,7 +486,6 @@ void Curve::ensure_default_setup(float p_min, float p_max) { } void Curve::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_point_count"), &Curve::get_point_count); ClassDB::bind_method(D_METHOD("add_point", "position", "left_tangent", "right_tangent", "left_mode", "right_mode"), &Curve::add_point, DEFVAL(0), DEFVAL(0), DEFVAL(TANGENT_FREE), DEFVAL(TANGENT_FREE)); ClassDB::bind_method(D_METHOD("remove_point", "index"), &Curve::remove_point); @@ -537,11 +527,9 @@ void Curve::_bind_methods() { } int Curve2D::get_point_count() const { - return points.size(); } void Curve2D::add_point(const Vector2 &p_pos, const Vector2 &p_in, const Vector2 &p_out, int p_atpos) { - Point n; n.pos = p_pos; n.in = p_in; @@ -556,7 +544,6 @@ void Curve2D::add_point(const Vector2 &p_pos, const Vector2 &p_in, const Vector2 } void Curve2D::set_point_position(int p_index, const Vector2 &p_pos) { - ERR_FAIL_INDEX(p_index, points.size()); points.write[p_index].pos = p_pos; @@ -564,13 +551,11 @@ void Curve2D::set_point_position(int p_index, const Vector2 &p_pos) { emit_signal(CoreStringNames::get_singleton()->changed); } Vector2 Curve2D::get_point_position(int p_index) const { - ERR_FAIL_INDEX_V(p_index, points.size(), Vector2()); return points[p_index].pos; } void Curve2D::set_point_in(int p_index, const Vector2 &p_in) { - ERR_FAIL_INDEX(p_index, points.size()); points.write[p_index].in = p_in; @@ -578,13 +563,11 @@ void Curve2D::set_point_in(int p_index, const Vector2 &p_in) { emit_signal(CoreStringNames::get_singleton()->changed); } Vector2 Curve2D::get_point_in(int p_index) const { - ERR_FAIL_INDEX_V(p_index, points.size(), Vector2()); return points[p_index].in; } void Curve2D::set_point_out(int p_index, const Vector2 &p_out) { - ERR_FAIL_INDEX(p_index, points.size()); points.write[p_index].out = p_out; @@ -593,13 +576,11 @@ void Curve2D::set_point_out(int p_index, const Vector2 &p_out) { } Vector2 Curve2D::get_point_out(int p_index) const { - ERR_FAIL_INDEX_V(p_index, points.size(), Vector2()); return points[p_index].out; } void Curve2D::remove_point(int p_index) { - ERR_FAIL_INDEX(p_index, points.size()); points.remove(p_index); baked_cache_dirty = true; @@ -615,7 +596,6 @@ void Curve2D::clear_points() { } Vector2 Curve2D::interpolate(int p_index, float p_offset) const { - int pc = points.size(); ERR_FAIL_COND_V(pc == 0, Vector2()); @@ -633,7 +613,6 @@ Vector2 Curve2D::interpolate(int p_index, float p_offset) const { } Vector2 Curve2D::interpolatef(real_t p_findex) const { - if (p_findex < 0) p_findex = 0; else if (p_findex >= points.size()) @@ -643,7 +622,6 @@ Vector2 Curve2D::interpolatef(real_t p_findex) const { } void Curve2D::_bake_segment2d(Map<float, Vector2> &r_bake, float p_begin, float p_end, const Vector2 &p_a, const Vector2 &p_out, const Vector2 &p_b, const Vector2 &p_in, int p_depth, int p_max_depth, float p_tol) const { - float mp = p_begin + (p_end - p_begin) * 0.5; Vector2 beg = _bezier_interp(p_begin, p_a, p_a + p_out, p_b + p_in, p_b); Vector2 mid = _bezier_interp(mp, p_a, p_a + p_out, p_b + p_in, p_b); @@ -654,7 +632,6 @@ void Curve2D::_bake_segment2d(Map<float, Vector2> &r_bake, float p_begin, float float dp = na.dot(nb); if (dp < Math::cos(Math::deg2rad(p_tol))) { - r_bake[mp] = mid; } @@ -665,7 +642,6 @@ void Curve2D::_bake_segment2d(Map<float, Vector2> &r_bake, float p_begin, float } void Curve2D::_bake() const { - if (!baked_cache_dirty) return; @@ -678,7 +654,6 @@ void Curve2D::_bake() const { } if (points.size() == 1) { - baked_point_cache.resize(1); baked_point_cache.set(0, points[0].pos); return; @@ -690,12 +665,10 @@ void Curve2D::_bake() const { pointlist.push_back(pos); //start always from origin for (int i = 0; i < points.size() - 1; i++) { - float step = 0.1; // at least 10 substeps ought to be enough? float p = 0; while (p < 1.0) { - float np = p + step; if (np > 1.0) np = 1.0; @@ -713,7 +686,6 @@ void Curve2D::_bake() const { float mid = low + (hi - low) * 0.5; for (int j = 0; j < iterations; j++) { - npp = _bezier_interp(mid, points[i].pos, points[i].pos + points[i].out, points[i + 1].pos + points[i + 1].in, points[i + 1].pos); d = pos.distance_to(npp); @@ -728,7 +700,6 @@ void Curve2D::_bake() const { p = mid; pointlist.push_back(pos); } else { - p = np; } } @@ -745,21 +716,18 @@ void Curve2D::_bake() const { int idx = 0; for (List<Vector2>::Element *E = pointlist.front(); E; E = E->next()) { - w[idx] = E->get(); idx++; } } float Curve2D::get_baked_length() const { - if (baked_cache_dirty) _bake(); return baked_max_ofs; } Vector2 Curve2D::interpolate_baked(float p_offset, bool p_cubic) const { - if (baked_cache_dirty) _bake(); @@ -791,7 +759,6 @@ Vector2 Curve2D::interpolate_baked(float p_offset, bool p_cubic) const { } if (p_cubic) { - Vector2 pre = idx > 0 ? r[idx - 1] : r[idx]; Vector2 post = (idx < (bpc - 2)) ? r[idx + 2] : r[idx + 1]; return r[idx].cubic_interpolate(r[idx + 1], pre, post, frac); @@ -801,7 +768,6 @@ Vector2 Curve2D::interpolate_baked(float p_offset, bool p_cubic) const { } PackedVector2Array Curve2D::get_baked_points() const { - if (baked_cache_dirty) _bake(); @@ -809,14 +775,12 @@ PackedVector2Array Curve2D::get_baked_points() const { } void Curve2D::set_bake_interval(float p_tolerance) { - bake_interval = p_tolerance; baked_cache_dirty = true; emit_signal(CoreStringNames::get_singleton()->changed); } float Curve2D::get_bake_interval() const { - return bake_interval; } @@ -896,7 +860,6 @@ float Curve2D::get_closest_offset(const Vector2 &p_to_point) const { } Dictionary Curve2D::_get_data() const { - Dictionary dc; PackedVector2Array d; @@ -904,7 +867,6 @@ Dictionary Curve2D::_get_data() const { Vector2 *w = d.ptrw(); for (int i = 0; i < points.size(); i++) { - w[i * 3 + 0] = points[i].in; w[i * 3 + 1] = points[i].out; w[i * 3 + 2] = points[i].pos; @@ -915,7 +877,6 @@ Dictionary Curve2D::_get_data() const { return dc; } void Curve2D::_set_data(const Dictionary &p_data) { - ERR_FAIL_COND(!p_data.has("points")); PackedVector2Array rp = p_data["points"]; @@ -925,7 +886,6 @@ void Curve2D::_set_data(const Dictionary &p_data) { const Vector2 *r = rp.ptr(); for (int i = 0; i < points.size(); i++) { - points.write[i].in = r[i * 3 + 0]; points.write[i].out = r[i * 3 + 1]; points.write[i].pos = r[i * 3 + 2]; @@ -935,7 +895,6 @@ void Curve2D::_set_data(const Dictionary &p_data) { } PackedVector2Array Curve2D::tessellate(int p_max_stages, float p_tolerance) const { - PackedVector2Array tess; if (points.size() == 0) { @@ -947,7 +906,6 @@ PackedVector2Array Curve2D::tessellate(int p_max_stages, float p_tolerance) cons int pc = 1; for (int i = 0; i < points.size() - 1; i++) { - _bake_segment2d(midpoints.write[i], 0, 1, points[i].pos, points[i].out, points[i + 1].pos, points[i + 1].in, 0, p_max_stages, p_tolerance); pc++; pc += midpoints[i].size(); @@ -959,9 +917,7 @@ PackedVector2Array Curve2D::tessellate(int p_max_stages, float p_tolerance) cons int pidx = 0; for (int i = 0; i < points.size() - 1; i++) { - for (Map<float, Vector2>::Element *E = midpoints[i].front(); E; E = E->next()) { - pidx++; bpw[pidx] = E->get(); } @@ -974,7 +930,6 @@ PackedVector2Array Curve2D::tessellate(int p_max_stages, float p_tolerance) cons } void Curve2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_point_count"), &Curve2D::get_point_count); ClassDB::bind_method(D_METHOD("add_point", "position", "in", "out", "at_position"), &Curve2D::add_point, DEFVAL(Vector2()), DEFVAL(Vector2()), DEFVAL(-1)); ClassDB::bind_method(D_METHOD("set_point_position", "idx", "position"), &Curve2D::set_point_position); @@ -1022,11 +977,9 @@ Curve2D::Curve2D() { /***********************************************************************************/ int Curve3D::get_point_count() const { - return points.size(); } void Curve3D::add_point(const Vector3 &p_pos, const Vector3 &p_in, const Vector3 &p_out, int p_atpos) { - Point n; n.pos = p_pos; n.in = p_in; @@ -1040,7 +993,6 @@ void Curve3D::add_point(const Vector3 &p_pos, const Vector3 &p_in, const Vector3 emit_signal(CoreStringNames::get_singleton()->changed); } void Curve3D::set_point_position(int p_index, const Vector3 &p_pos) { - ERR_FAIL_INDEX(p_index, points.size()); points.write[p_index].pos = p_pos; @@ -1048,13 +1000,11 @@ void Curve3D::set_point_position(int p_index, const Vector3 &p_pos) { emit_signal(CoreStringNames::get_singleton()->changed); } Vector3 Curve3D::get_point_position(int p_index) const { - ERR_FAIL_INDEX_V(p_index, points.size(), Vector3()); return points[p_index].pos; } void Curve3D::set_point_tilt(int p_index, float p_tilt) { - ERR_FAIL_INDEX(p_index, points.size()); points.write[p_index].tilt = p_tilt; @@ -1062,13 +1012,11 @@ void Curve3D::set_point_tilt(int p_index, float p_tilt) { emit_signal(CoreStringNames::get_singleton()->changed); } float Curve3D::get_point_tilt(int p_index) const { - ERR_FAIL_INDEX_V(p_index, points.size(), 0); return points[p_index].tilt; } void Curve3D::set_point_in(int p_index, const Vector3 &p_in) { - ERR_FAIL_INDEX(p_index, points.size()); points.write[p_index].in = p_in; @@ -1076,13 +1024,11 @@ void Curve3D::set_point_in(int p_index, const Vector3 &p_in) { emit_signal(CoreStringNames::get_singleton()->changed); } Vector3 Curve3D::get_point_in(int p_index) const { - ERR_FAIL_INDEX_V(p_index, points.size(), Vector3()); return points[p_index].in; } void Curve3D::set_point_out(int p_index, const Vector3 &p_out) { - ERR_FAIL_INDEX(p_index, points.size()); points.write[p_index].out = p_out; @@ -1091,13 +1037,11 @@ void Curve3D::set_point_out(int p_index, const Vector3 &p_out) { } Vector3 Curve3D::get_point_out(int p_index) const { - ERR_FAIL_INDEX_V(p_index, points.size(), Vector3()); return points[p_index].out; } void Curve3D::remove_point(int p_index) { - ERR_FAIL_INDEX(p_index, points.size()); points.remove(p_index); baked_cache_dirty = true; @@ -1105,7 +1049,6 @@ void Curve3D::remove_point(int p_index) { } void Curve3D::clear_points() { - if (!points.empty()) { points.clear(); baked_cache_dirty = true; @@ -1114,7 +1057,6 @@ void Curve3D::clear_points() { } Vector3 Curve3D::interpolate(int p_index, float p_offset) const { - int pc = points.size(); ERR_FAIL_COND_V(pc == 0, Vector3()); @@ -1132,7 +1074,6 @@ Vector3 Curve3D::interpolate(int p_index, float p_offset) const { } Vector3 Curve3D::interpolatef(real_t p_findex) const { - if (p_findex < 0) p_findex = 0; else if (p_findex >= points.size()) @@ -1142,7 +1083,6 @@ Vector3 Curve3D::interpolatef(real_t p_findex) const { } void Curve3D::_bake_segment3d(Map<float, Vector3> &r_bake, float p_begin, float p_end, const Vector3 &p_a, const Vector3 &p_out, const Vector3 &p_b, const Vector3 &p_in, int p_depth, int p_max_depth, float p_tol) const { - float mp = p_begin + (p_end - p_begin) * 0.5; Vector3 beg = _bezier_interp(p_begin, p_a, p_a + p_out, p_b + p_in, p_b); Vector3 mid = _bezier_interp(mp, p_a, p_a + p_out, p_b + p_in, p_b); @@ -1153,7 +1093,6 @@ void Curve3D::_bake_segment3d(Map<float, Vector3> &r_bake, float p_begin, float float dp = na.dot(nb); if (dp < Math::cos(Math::deg2rad(p_tol))) { - r_bake[mp] = mid; } if (p_depth < p_max_depth) { @@ -1163,7 +1102,6 @@ void Curve3D::_bake_segment3d(Map<float, Vector3> &r_bake, float p_begin, float } void Curve3D::_bake() const { - if (!baked_cache_dirty) return; @@ -1178,14 +1116,12 @@ void Curve3D::_bake() const { } if (points.size() == 1) { - baked_point_cache.resize(1); baked_point_cache.set(0, points[0].pos); baked_tilt_cache.resize(1); baked_tilt_cache.set(0, points[0].tilt); if (up_vector_enabled) { - baked_up_vector_cache.resize(1); baked_up_vector_cache.set(0, Vector3(0, 1, 0)); } else @@ -1199,12 +1135,10 @@ void Curve3D::_bake() const { pointlist.push_back(Plane(pos, points[0].tilt)); for (int i = 0; i < points.size() - 1; i++) { - float step = 0.1; // at least 10 substeps ought to be enough? float p = 0; while (p < 1.0) { - float np = p + step; if (np > 1.0) np = 1.0; @@ -1222,7 +1156,6 @@ void Curve3D::_bake() const { float mid = low + (hi - low) * 0.5; for (int j = 0; j < iterations; j++) { - npp = _bezier_interp(mid, points[i].pos, points[i].pos + points[i].out, points[i + 1].pos + points[i + 1].in, points[i + 1].pos); d = pos.distance_to(npp); @@ -1240,7 +1173,6 @@ void Curve3D::_bake() const { post.d = Math::lerp(points[i].tilt, points[i + 1].tilt, mid); pointlist.push_back(post); } else { - p = np; } } @@ -1272,7 +1204,6 @@ void Curve3D::_bake() const { Vector3 prev_forward = Vector3(0, 0, 1); for (List<Plane>::Element *E = pointlist.front(); E; E = E->next()) { - w[idx] = E->get().normal; wt[idx] = E->get().d; @@ -1310,14 +1241,12 @@ void Curve3D::_bake() const { } float Curve3D::get_baked_length() const { - if (baked_cache_dirty) _bake(); return baked_max_ofs; } Vector3 Curve3D::interpolate_baked(float p_offset, bool p_cubic) const { - if (baked_cache_dirty) _bake(); @@ -1349,7 +1278,6 @@ Vector3 Curve3D::interpolate_baked(float p_offset, bool p_cubic) const { } if (p_cubic) { - Vector3 pre = idx > 0 ? r[idx - 1] : r[idx]; Vector3 post = (idx < (bpc - 2)) ? r[idx + 2] : r[idx + 1]; return r[idx].cubic_interpolate(r[idx + 1], pre, post, frac); @@ -1359,7 +1287,6 @@ Vector3 Curve3D::interpolate_baked(float p_offset, bool p_cubic) const { } float Curve3D::interpolate_baked_tilt(float p_offset) const { - if (baked_cache_dirty) _bake(); @@ -1394,7 +1321,6 @@ float Curve3D::interpolate_baked_tilt(float p_offset) const { } Vector3 Curve3D::interpolate_baked_up_vector(float p_offset, bool p_apply_tilt) const { - if (baked_cache_dirty) _bake(); @@ -1438,7 +1364,6 @@ Vector3 Curve3D::interpolate_baked_up_vector(float p_offset, bool p_apply_tilt) } PackedVector3Array Curve3D::get_baked_points() const { - if (baked_cache_dirty) _bake(); @@ -1446,7 +1371,6 @@ PackedVector3Array Curve3D::get_baked_points() const { } PackedFloat32Array Curve3D::get_baked_tilts() const { - if (baked_cache_dirty) _bake(); @@ -1454,7 +1378,6 @@ PackedFloat32Array Curve3D::get_baked_tilts() const { } PackedVector3Array Curve3D::get_baked_up_vectors() const { - if (baked_cache_dirty) _bake(); @@ -1537,31 +1460,26 @@ float Curve3D::get_closest_offset(const Vector3 &p_to_point) const { } void Curve3D::set_bake_interval(float p_tolerance) { - bake_interval = p_tolerance; baked_cache_dirty = true; emit_signal(CoreStringNames::get_singleton()->changed); } float Curve3D::get_bake_interval() const { - return bake_interval; } void Curve3D::set_up_vector_enabled(bool p_enable) { - up_vector_enabled = p_enable; baked_cache_dirty = true; emit_signal(CoreStringNames::get_singleton()->changed); } bool Curve3D::is_up_vector_enabled() const { - return up_vector_enabled; } Dictionary Curve3D::_get_data() const { - Dictionary dc; PackedVector3Array d; @@ -1572,7 +1490,6 @@ Dictionary Curve3D::_get_data() const { real_t *wt = t.ptrw(); for (int i = 0; i < points.size(); i++) { - w[i * 3 + 0] = points[i].in; w[i * 3 + 1] = points[i].out; w[i * 3 + 2] = points[i].pos; @@ -1585,7 +1502,6 @@ Dictionary Curve3D::_get_data() const { return dc; } void Curve3D::_set_data(const Dictionary &p_data) { - ERR_FAIL_COND(!p_data.has("points")); ERR_FAIL_COND(!p_data.has("tilts")); @@ -1598,7 +1514,6 @@ void Curve3D::_set_data(const Dictionary &p_data) { const real_t *rt = rtl.ptr(); for (int i = 0; i < points.size(); i++) { - points.write[i].in = r[i * 3 + 0]; points.write[i].out = r[i * 3 + 1]; points.write[i].pos = r[i * 3 + 2]; @@ -1609,7 +1524,6 @@ void Curve3D::_set_data(const Dictionary &p_data) { } PackedVector3Array Curve3D::tessellate(int p_max_stages, float p_tolerance) const { - PackedVector3Array tess; if (points.size() == 0) { @@ -1621,7 +1535,6 @@ PackedVector3Array Curve3D::tessellate(int p_max_stages, float p_tolerance) cons int pc = 1; for (int i = 0; i < points.size() - 1; i++) { - _bake_segment3d(midpoints.write[i], 0, 1, points[i].pos, points[i].out, points[i + 1].pos, points[i + 1].in, 0, p_max_stages, p_tolerance); pc++; pc += midpoints[i].size(); @@ -1633,9 +1546,7 @@ PackedVector3Array Curve3D::tessellate(int p_max_stages, float p_tolerance) cons int pidx = 0; for (int i = 0; i < points.size() - 1; i++) { - for (Map<float, Vector3>::Element *E = midpoints[i].front(); E; E = E->next()) { - pidx++; bpw[pidx] = E->get(); } @@ -1648,7 +1559,6 @@ PackedVector3Array Curve3D::tessellate(int p_max_stages, float p_tolerance) cons } void Curve3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_point_count"), &Curve3D::get_point_count); ClassDB::bind_method(D_METHOD("add_point", "position", "in", "out", "at_position"), &Curve3D::add_point, DEFVAL(Vector3()), DEFVAL(Vector3()), DEFVAL(-1)); ClassDB::bind_method(D_METHOD("set_point_position", "idx", "position"), &Curve3D::set_point_position); diff --git a/scene/resources/curve.h b/scene/resources/curve.h index 7dcbf1ceff..57ddaf897d 100644 --- a/scene/resources/curve.h +++ b/scene/resources/curve.h @@ -68,7 +68,6 @@ public: real_t p_right = 0, TangentMode p_left_mode = TANGENT_FREE, TangentMode p_right_mode = TANGENT_FREE) { - pos = p_pos; left_tangent = p_left; right_tangent = p_right; @@ -149,11 +148,9 @@ private: VARIANT_ENUM_CAST(Curve::TangentMode) class Curve2D : public Resource { - GDCLASS(Curve2D, Resource); struct Point { - Vector2 in; Vector2 out; Vector2 pos; @@ -162,7 +159,6 @@ class Curve2D : public Resource { Vector<Point> points; struct BakedPoint { - float ofs; Vector2 point; }; @@ -212,11 +208,9 @@ public: }; class Curve3D : public Resource { - GDCLASS(Curve3D, Resource); struct Point { - Vector3 in; Vector3 out; Vector3 pos; @@ -228,7 +222,6 @@ class Curve3D : public Resource { Vector<Point> points; struct BakedPoint { - float ofs; Vector3 point; }; diff --git a/scene/resources/cylinder_shape_3d.cpp b/scene/resources/cylinder_shape_3d.cpp index 19f0542818..44786d6025 100644 --- a/scene/resources/cylinder_shape_3d.cpp +++ b/scene/resources/cylinder_shape_3d.cpp @@ -32,7 +32,6 @@ #include "servers/physics_server_3d.h" Vector<Vector3> CylinderShape3D::get_debug_mesh_lines() { - float radius = get_radius(); float height = get_height(); @@ -40,7 +39,6 @@ Vector<Vector3> CylinderShape3D::get_debug_mesh_lines() { Vector3 d(0, height * 0.5, 0); for (int i = 0; i < 360; i++) { - float ra = Math::deg2rad((float)i); float rb = Math::deg2rad((float)i + 1); Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * radius; @@ -53,7 +51,6 @@ Vector<Vector3> CylinderShape3D::get_debug_mesh_lines() { points.push_back(Vector3(b.x, 0, b.y) - d); if (i % 90 == 0) { - points.push_back(Vector3(a.x, 0, a.y) + d); points.push_back(Vector3(a.x, 0, a.y) - d); } @@ -67,7 +64,6 @@ real_t CylinderShape3D::get_enclosing_radius() const { } void CylinderShape3D::_update_shape() { - Dictionary d; d["radius"] = radius; d["height"] = height; @@ -76,7 +72,6 @@ void CylinderShape3D::_update_shape() { } void CylinderShape3D::set_radius(float p_radius) { - radius = p_radius; _update_shape(); notify_change_to_owners(); @@ -84,12 +79,10 @@ void CylinderShape3D::set_radius(float p_radius) { } float CylinderShape3D::get_radius() const { - return radius; } void CylinderShape3D::set_height(float p_height) { - height = p_height; _update_shape(); notify_change_to_owners(); @@ -97,12 +90,10 @@ void CylinderShape3D::set_height(float p_height) { } float CylinderShape3D::get_height() const { - return height; } void CylinderShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_radius", "radius"), &CylinderShape3D::set_radius); ClassDB::bind_method(D_METHOD("get_radius"), &CylinderShape3D::get_radius); ClassDB::bind_method(D_METHOD("set_height", "height"), &CylinderShape3D::set_height); @@ -114,7 +105,6 @@ void CylinderShape3D::_bind_methods() { CylinderShape3D::CylinderShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_CYLINDER)) { - radius = 1.0; height = 2.0; _update_shape(); diff --git a/scene/resources/cylinder_shape_3d.h b/scene/resources/cylinder_shape_3d.h index 7b37f733e0..23d206cbab 100644 --- a/scene/resources/cylinder_shape_3d.h +++ b/scene/resources/cylinder_shape_3d.h @@ -34,7 +34,6 @@ #include "scene/resources/shape_3d.h" class CylinderShape3D : public Shape3D { - GDCLASS(CylinderShape3D, Shape3D); float radius; float height; diff --git a/scene/resources/default_theme/default_theme.cpp b/scene/resources/default_theme/default_theme.cpp index a1e8bf51bd..9f7fdc2316 100644 --- a/scene/resources/default_theme/default_theme.cpp +++ b/scene/resources/default_theme/default_theme.cpp @@ -45,13 +45,11 @@ static float scale = 1; template <class T> static Ref<StyleBoxTexture> make_stylebox(T p_src, float p_left, float p_top, float p_right, float p_botton, float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_botton = -1, bool p_draw_center = true) { - Ref<ImageTexture> texture; if (tex_cache->has(p_src)) { texture = (*tex_cache)[p_src]; } else { - texture = Ref<ImageTexture>(memnew(ImageTexture)); Ref<Image> img = memnew(Image(p_src)); @@ -89,7 +87,6 @@ static Ref<StyleBoxTexture> make_stylebox(T p_src, float p_left, float p_top, fl } static Ref<StyleBoxTexture> sb_expand(Ref<StyleBoxTexture> p_sbox, float p_left, float p_top, float p_right, float p_botton) { - p_sbox->set_expand_margin_size(MARGIN_LEFT, p_left * scale); p_sbox->set_expand_margin_size(MARGIN_TOP, p_top * scale); p_sbox->set_expand_margin_size(MARGIN_RIGHT, p_right * scale); @@ -99,7 +96,6 @@ static Ref<StyleBoxTexture> sb_expand(Ref<StyleBoxTexture> p_sbox, float p_left, template <class T> static Ref<Texture2D> make_icon(T p_src) { - Ref<ImageTexture> texture(memnew(ImageTexture)); Ref<Image> img = memnew(Image(p_src)); if (scale > 1) { @@ -121,7 +117,6 @@ static Ref<Texture2D> make_icon(T p_src) { } static Ref<BitmapFont> make_font(int p_height, int p_ascent, int p_charcount, const int *p_char_rects, int p_kerning_count, const int *p_kernings, int p_w, int p_h, const unsigned char *p_img) { - Ref<BitmapFont> font(memnew(BitmapFont)); Ref<Image> image = memnew(Image(p_img)); @@ -131,7 +126,6 @@ static Ref<BitmapFont> make_font(int p_height, int p_ascent, int p_charcount, co font->add_texture(tex); for (int i = 0; i < p_charcount; i++) { - const int *c = &p_char_rects[i * 8]; int chr = c[0]; @@ -147,7 +141,6 @@ static Ref<BitmapFont> make_font(int p_height, int p_ascent, int p_charcount, co } for (int i = 0; i < p_kerning_count; i++) { - font->add_kerning_pair(p_kernings[i * 3 + 0], p_kernings[i * 3 + 1], p_kernings[i * 3 + 2]); } @@ -158,7 +151,6 @@ static Ref<BitmapFont> make_font(int p_height, int p_ascent, int p_charcount, co } static Ref<StyleBox> make_empty_stylebox(float p_margin_left = -1, float p_margin_top = -1, float p_margin_right = -1, float p_margin_botton = -1) { - Ref<StyleBox> style(memnew(StyleBoxEmpty)); style->set_default_margin(MARGIN_LEFT, p_margin_left * scale); @@ -170,7 +162,6 @@ static Ref<StyleBox> make_empty_stylebox(float p_margin_left = -1, float p_margi } void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const Ref<Font> &large_font, Ref<Texture2D> &default_icon, Ref<StyleBox> &default_style, float p_scale) { - scale = p_scale; tex_cache = memnew(TexCacheMap); @@ -867,7 +858,6 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const } void make_default_theme(bool p_hidpi, Ref<Font> p_font) { - Ref<Theme> t; t.instance(); @@ -891,7 +881,6 @@ void make_default_theme(bool p_hidpi, Ref<Font> p_font) { } void clear_default_theme() { - Theme::set_project_default(nullptr); Theme::set_default(nullptr); Theme::set_default_icon(nullptr); diff --git a/scene/resources/dynamic_font.cpp b/scene/resources/dynamic_font.cpp index 442151de36..5d2d690084 100644 --- a/scene/resources/dynamic_font.cpp +++ b/scene/resources/dynamic_font.cpp @@ -46,7 +46,6 @@ bool DynamicFontData::CacheID::operator<(CacheID right) const { } Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(CacheID p_cache_id) { - if (size_cache.has(p_cache_id)) { return Ref<DynamicFontAtSize>(size_cache[p_cache_id]); } @@ -65,13 +64,11 @@ Ref<DynamicFontAtSize> DynamicFontData::_get_dynamic_font_at_size(CacheID p_cach } void DynamicFontData::set_font_ptr(const uint8_t *p_font_mem, int p_font_mem_size) { - font_mem = p_font_mem; font_mem_size = p_font_mem_size; } void DynamicFontData::set_font_path(const String &p_path) { - font_path = p_path; } @@ -80,7 +77,6 @@ String DynamicFontData::get_font_path() const { } void DynamicFontData::set_force_autohinter(bool p_force) { - force_autohinter = p_force; } @@ -103,7 +99,6 @@ void DynamicFontData::_bind_methods() { } DynamicFontData::DynamicFontData() { - antialiased = true; force_autohinter = false; hinting = DynamicFontData::HINTING_NORMAL; @@ -118,7 +113,6 @@ DynamicFontData::~DynamicFontData() { HashMap<String, Vector<uint8_t>> DynamicFontAtSize::_fontdata; Error DynamicFontAtSize::_load() { - int error = FT_Init_FreeType(&library); ERR_FAIL_COND_V_MSG(error != 0, ERR_CANT_CREATE, "Error initializing FreeType."); @@ -127,11 +121,9 @@ Error DynamicFontAtSize::_load() { if (OS::get_singleton()->get_name() == "Android" && font->font_mem == nullptr && font->font_path != String()) { // cache font only once for each font->font_path if (_fontdata.has(font->font_path)) { - font->set_font_ptr(_fontdata[font->font_path].ptr(), _fontdata[font->font_path].size()); } else { - FileAccess *f = FileAccess::open(font->font_path, FileAccess::READ); if (!f) { FT_Done_FreeType(library); @@ -149,7 +141,6 @@ Error DynamicFontAtSize::_load() { } if (font->font_mem == nullptr && font->font_path != String()) { - FileAccess *f = FileAccess::open(font->font_path, FileAccess::READ); if (!f) { FT_Done_FreeType(library); @@ -170,7 +161,6 @@ Error DynamicFontAtSize::_load() { fargs.stream = &stream; error = FT_Open_Face(library, &fargs, 0, &face); } else if (font->font_mem) { - memset(&stream, 0, sizeof(FT_StreamRec)); stream.base = (unsigned char *)font->font_mem; stream.size = font->font_mem_size; @@ -192,12 +182,10 @@ Error DynamicFontAtSize::_load() { //error = FT_New_Face( library, src_path.utf8().get_data(),0,&face ); if (error == FT_Err_Unknown_File_Format) { - FT_Done_FreeType(library); ERR_FAIL_V_MSG(ERR_FILE_CANT_OPEN, "Unknown font format."); } else if (error) { - FT_Done_FreeType(library); ERR_FAIL_V_MSG(ERR_FILE_CANT_OPEN, "Error loading font."); } @@ -232,26 +220,21 @@ Error DynamicFontAtSize::_load() { float DynamicFontAtSize::font_oversampling = 1.0; float DynamicFontAtSize::get_height() const { - return ascent + descent; } float DynamicFontAtSize::get_ascent() const { - return ascent; } float DynamicFontAtSize::get_descent() const { - return descent; } float DynamicFontAtSize::get_underline_position() const { - return underline_position; } float DynamicFontAtSize::get_underline_thickness() const { - return underline_thickness; } @@ -260,10 +243,8 @@ const Pair<const DynamicFontAtSize::Character *, DynamicFontAtSize *> DynamicFon ERR_FAIL_COND_V(!chr, (Pair<const Character *, DynamicFontAtSize *>(nullptr, nullptr))); if (!chr->found) { - //not found, try in fallbacks for (int i = 0; i < p_fallbacks.size(); i++) { - DynamicFontAtSize *fb = const_cast<DynamicFontAtSize *>(p_fallbacks[i].ptr()); if (!fb->valid) continue; @@ -288,7 +269,6 @@ const Pair<const DynamicFontAtSize::Character *, DynamicFontAtSize *> DynamicFon } Size2 DynamicFontAtSize::get_char_size(CharType p_char, CharType p_next, const Vector<Ref<DynamicFontAtSize>> &p_fallbacks) const { - if (!valid) return Size2(1, 1); const_cast<DynamicFontAtSize *>(this)->_update_char(p_char); @@ -307,7 +287,6 @@ Size2 DynamicFontAtSize::get_char_size(CharType p_char, CharType p_next, const V } float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_char, CharType p_next, const Color &p_modulate, const Vector<Ref<DynamicFontAtSize>> &p_fallbacks, bool p_advance_only, bool p_outline) const { - if (!valid) return 0; @@ -358,7 +337,6 @@ float DynamicFontAtSize::draw_char(RID p_canvas_item, const Point2 &p_pos, CharT } unsigned long DynamicFontAtSize::_ft_stream_io(FT_Stream stream, unsigned long offset, unsigned char *buffer, unsigned long count) { - FileAccess *f = (FileAccess *)stream->descriptor.pointer; if (f->get_position() != offset) { @@ -371,7 +349,6 @@ unsigned long DynamicFontAtSize::_ft_stream_io(FT_Stream stream, unsigned long o return f->get_buffer(buffer, count); } void DynamicFontAtSize::_ft_stream_close(FT_Stream stream) { - FileAccess *f = (FileAccess *)stream->descriptor.pointer; f->close(); memdelete(f); @@ -397,7 +374,6 @@ DynamicFontAtSize::TexturePosition DynamicFontAtSize::_find_texture_pos_for_glyp int mh = p_height; for (int i = 0; i < textures.size(); i++) { - const CharTexture &ct = textures[i]; if (ct.texture->get_format() != p_image_format) @@ -410,11 +386,9 @@ DynamicFontAtSize::TexturePosition DynamicFontAtSize::_find_texture_pos_for_glyp ret.x = 0; for (int j = 0; j < ct.texture_size - mw; j++) { - int max_y = 0; for (int k = j; k < j + mw; k++) { - int y = ct.offsets[k]; if (y > max_y) max_y = y; @@ -496,7 +470,6 @@ DynamicFontAtSize::Character DynamicFontAtSize::_bitmap_to_character(FT_Bitmap b for (int i = 0; i < h; i++) { for (int j = 0; j < w; j++) { - int ofs = ((i + tex_pos.y + rect_margin) * tex.texture_size + j + tex_pos.x + rect_margin) * color_size; ERR_FAIL_COND_V(ofs >= tex.imgdata.size(), Character::not_found()); switch (bitmap.pixel_mode) { @@ -528,7 +501,6 @@ DynamicFontAtSize::Character DynamicFontAtSize::_bitmap_to_character(FT_Bitmap b //blit to image and texture { - Ref<Image> img = memnew(Image(tex.texture_size, tex.texture_size, 0, require_format, tex.imgdata)); if (tex.texture.is_null()) { @@ -591,7 +563,6 @@ cleanup_stroker: } void DynamicFontAtSize::_update_char(CharType p_char) { - if (char_map.has(p_char)) return; @@ -650,7 +621,6 @@ void DynamicFontAtSize::update_oversampling() { } DynamicFontAtSize::DynamicFontAtSize() { - valid = false; rect_margin = 1; ascent = 1; @@ -661,7 +631,6 @@ DynamicFontAtSize::DynamicFontAtSize() { } DynamicFontAtSize::~DynamicFontAtSize() { - if (valid) { FT_Done_FreeType(library); } @@ -672,7 +641,6 @@ DynamicFontAtSize::~DynamicFontAtSize() { ///////////////////////// void DynamicFont::_reload_cache() { - ERR_FAIL_COND(cache_id.size < 1); if (!data.is_valid()) { data_at_size.unref(); @@ -703,7 +671,6 @@ void DynamicFont::_reload_cache() { } void DynamicFont::set_font_data(const Ref<DynamicFontData> &p_data) { - data = p_data; _reload_cache(); @@ -712,12 +679,10 @@ void DynamicFont::set_font_data(const Ref<DynamicFontData> &p_data) { } Ref<DynamicFontData> DynamicFont::get_font_data() const { - return data; } void DynamicFont::set_size(int p_size) { - if (cache_id.size == p_size) return; cache_id.size = p_size; @@ -726,7 +691,6 @@ void DynamicFont::set_size(int p_size) { } int DynamicFont::get_size() const { - return cache_id.size; } @@ -755,31 +719,26 @@ Color DynamicFont::get_outline_color() const { } bool DynamicFontData::is_antialiased() const { - return antialiased; } void DynamicFontData::set_antialiased(bool p_antialiased) { - if (antialiased == p_antialiased) return; antialiased = p_antialiased; } DynamicFontData::Hinting DynamicFontData::get_hinting() const { - return hinting; } void DynamicFontData::set_hinting(Hinting p_hinting) { - if (hinting == p_hinting) return; hinting = p_hinting; } int DynamicFont::get_spacing(int p_type) const { - if (p_type == SPACING_TOP) { return spacing_top; } else if (p_type == SPACING_BOTTOM) { @@ -794,7 +753,6 @@ int DynamicFont::get_spacing(int p_type) const { } void DynamicFont::set_spacing(int p_type, int p_value) { - if (p_type == SPACING_TOP) { spacing_top = p_value; } else if (p_type == SPACING_BOTTOM) { @@ -810,7 +768,6 @@ void DynamicFont::set_spacing(int p_type, int p_value) { } float DynamicFont::get_height() const { - if (!data_at_size.is_valid()) return 1; @@ -818,7 +775,6 @@ float DynamicFont::get_height() const { } float DynamicFont::get_ascent() const { - if (!data_at_size.is_valid()) return 1; @@ -826,7 +782,6 @@ float DynamicFont::get_ascent() const { } float DynamicFont::get_descent() const { - if (!data_at_size.is_valid()) return 1; @@ -834,7 +789,6 @@ float DynamicFont::get_descent() const { } float DynamicFont::get_underline_position() const { - if (!data_at_size.is_valid()) return 2; @@ -842,7 +796,6 @@ float DynamicFont::get_underline_position() const { } float DynamicFont::get_underline_thickness() const { - if (!data_at_size.is_valid()) return 1; @@ -850,7 +803,6 @@ float DynamicFont::get_underline_thickness() const { } Size2 DynamicFont::get_char_size(CharType p_char, CharType p_next) const { - if (!data_at_size.is_valid()) return Size2(1, 1); @@ -864,7 +816,6 @@ Size2 DynamicFont::get_char_size(CharType p_char, CharType p_next) const { } bool DynamicFont::is_distance_field_hint() const { - return false; } @@ -887,7 +838,6 @@ float DynamicFont::draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_ } void DynamicFont::set_fallback(int p_idx, const Ref<DynamicFontData> &p_data) { - ERR_FAIL_COND(p_data.is_null()); ERR_FAIL_INDEX(p_idx, fallbacks.size()); fallbacks.write[p_idx] = p_data; @@ -895,7 +845,6 @@ void DynamicFont::set_fallback(int p_idx, const Ref<DynamicFontData> &p_data) { } void DynamicFont::add_fallback(const Ref<DynamicFontData> &p_data) { - ERR_FAIL_COND(p_data.is_null()); fallbacks.push_back(p_data); fallback_data_at_size.push_back(fallbacks.write[fallbacks.size() - 1]->_get_dynamic_font_at_size(cache_id)); //const.. @@ -911,13 +860,11 @@ int DynamicFont::get_fallback_count() const { return fallbacks.size(); } Ref<DynamicFontData> DynamicFont::get_fallback(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, fallbacks.size(), Ref<DynamicFontData>()); return fallbacks[p_idx]; } void DynamicFont::remove_fallback(int p_idx) { - ERR_FAIL_INDEX(p_idx, fallbacks.size()); fallbacks.remove(p_idx); fallback_data_at_size.remove(p_idx); @@ -926,7 +873,6 @@ void DynamicFont::remove_fallback(int p_idx) { } bool DynamicFont::_set(const StringName &p_name, const Variant &p_value) { - String str = p_name; if (str.begins_with("fallback/")) { int idx = str.get_slicec('/', 1).to_int(); @@ -952,7 +898,6 @@ bool DynamicFont::_set(const StringName &p_name, const Variant &p_value) { } bool DynamicFont::_get(const StringName &p_name, Variant &r_ret) const { - String str = p_name; if (str.begins_with("fallback/")) { int idx = str.get_slicec('/', 1).to_int(); @@ -969,7 +914,6 @@ bool DynamicFont::_get(const StringName &p_name, Variant &r_ret) const { return false; } void DynamicFont::_get_property_list(List<PropertyInfo> *p_list) const { - for (int i = 0; i < fallbacks.size(); i++) { p_list->push_back(PropertyInfo(Variant::OBJECT, "fallback/" + itos(i), PROPERTY_HINT_RESOURCE_TYPE, "DynamicFontData")); } @@ -978,7 +922,6 @@ void DynamicFont::_get_property_list(List<PropertyInfo> *p_list) const { } void DynamicFont::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_font_data", "data"), &DynamicFont::set_font_data); ClassDB::bind_method(D_METHOD("get_font_data"), &DynamicFont::get_font_data); @@ -1024,7 +967,6 @@ SelfList<DynamicFont>::List *DynamicFont::dynamic_fonts = nullptr; DynamicFont::DynamicFont() : font_list(this) { - valid = false; cache_id.size = 16; outline_cache_id.size = 16; @@ -1053,14 +995,12 @@ void DynamicFont::finish_dynamic_fonts() { } void DynamicFont::update_oversampling() { - Vector<Ref<DynamicFont>> changed; { MutexLock lock(dynamic_font_mutex); SelfList<DynamicFont> *E = dynamic_fonts->first(); while (E) { - if (E->self()->data_at_size.is_valid()) { E->self()->data_at_size->update_oversampling(); @@ -1093,7 +1033,6 @@ void DynamicFont::update_oversampling() { ///////////////////////// RES ResourceFormatLoaderDynamicFont::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) { - if (r_error) *r_error = ERR_FILE_CANT_OPEN; @@ -1108,18 +1047,15 @@ RES ResourceFormatLoaderDynamicFont::load(const String &p_path, const String &p_ } void ResourceFormatLoaderDynamicFont::get_recognized_extensions(List<String> *p_extensions) const { - p_extensions->push_back("ttf"); p_extensions->push_back("otf"); } bool ResourceFormatLoaderDynamicFont::handles_type(const String &p_type) const { - return (p_type == "DynamicFontData"); } String ResourceFormatLoaderDynamicFont::get_resource_type(const String &p_path) const { - String el = p_path.get_extension().to_lower(); if (el == "ttf" || el == "otf") return "DynamicFontData"; diff --git a/scene/resources/dynamic_font.h b/scene/resources/dynamic_font.h index 2fa1951d27..08ad20a92d 100644 --- a/scene/resources/dynamic_font.h +++ b/scene/resources/dynamic_font.h @@ -47,7 +47,6 @@ class DynamicFontAtSize; class DynamicFont; class DynamicFontData : public Resource { - GDCLASS(DynamicFontData, Resource); public: @@ -109,7 +108,6 @@ public: VARIANT_ENUM_CAST(DynamicFontData::Hinting); class DynamicFontAtSize : public Reference { - GDCLASS(DynamicFontAtSize, Reference); _THREAD_SAFE_CLASS_ @@ -130,7 +128,6 @@ class DynamicFontAtSize : public Reference { bool valid; struct CharTexture { - Vector<uint8_t> imgdata; int texture_size; Vector<int> offsets; @@ -140,7 +137,6 @@ class DynamicFontAtSize : public Reference { Vector<CharTexture> textures; struct Character { - bool found; int texture_idx; Rect2 rect; @@ -206,7 +202,6 @@ public: /////////////// class DynamicFont : public Font { - GDCLASS(DynamicFont, Font); public: diff --git a/scene/resources/environment.cpp b/scene/resources/environment.cpp index abbe579307..87d070db6f 100644 --- a/scene/resources/environment.cpp +++ b/scene/resources/environment.cpp @@ -34,19 +34,16 @@ #include "texture.h" RID Environment::get_rid() const { - return environment; } void Environment::set_background(BGMode p_bg) { - bg_mode = p_bg; RS::get_singleton()->environment_set_background(environment, RS::EnvironmentBG(p_bg)); _change_notify(); } void Environment::set_sky(const Ref<Sky> &p_sky) { - bg_sky = p_sky; RID sb_rid; @@ -57,37 +54,30 @@ void Environment::set_sky(const Ref<Sky> &p_sky) { } void Environment::set_sky_custom_fov(float p_scale) { - bg_sky_custom_fov = p_scale; RS::get_singleton()->environment_set_sky_custom_fov(environment, p_scale); } void Environment::set_bg_color(const Color &p_color) { - bg_color = p_color; RS::get_singleton()->environment_set_bg_color(environment, p_color); } void Environment::set_bg_energy(float p_energy) { - bg_energy = p_energy; RS::get_singleton()->environment_set_bg_energy(environment, p_energy); } void Environment::set_canvas_max_layer(int p_max_layer) { - bg_canvas_max_layer = p_max_layer; RS::get_singleton()->environment_set_canvas_max_layer(environment, p_max_layer); } void Environment::set_ambient_light_color(const Color &p_color) { - ambient_color = p_color; RS::get_singleton()->environment_set_ambient_light(environment, ambient_color, RS::EnvironmentAmbientSource(ambient_source), ambient_energy, ambient_sky_contribution, RS::EnvironmentReflectionSource(reflection_source), ao_color); } void Environment::set_ambient_light_energy(float p_energy) { - ambient_energy = p_energy; RS::get_singleton()->environment_set_ambient_light(environment, ambient_color, RS::EnvironmentAmbientSource(ambient_source), ambient_energy, ambient_sky_contribution, RS::EnvironmentReflectionSource(reflection_source), ao_color); } void Environment::set_ambient_light_sky_contribution(float p_energy) { - ambient_sky_contribution = p_energy; RS::get_singleton()->environment_set_ambient_light(environment, ambient_color, RS::EnvironmentAmbientSource(ambient_source), ambient_energy, ambient_sky_contribution, RS::EnvironmentReflectionSource(reflection_source), ao_color); } @@ -117,16 +107,13 @@ Environment::ReflectionSource Environment::get_reflection_source() const { } Environment::BGMode Environment::get_background() const { - return bg_mode; } Ref<Sky> Environment::get_sky() const { - return bg_sky; } float Environment::get_sky_custom_fov() const { - return bg_sky_custom_fov; } @@ -136,176 +123,141 @@ void Environment::set_sky_rotation(const Vector3 &p_rotation) { } Vector3 Environment::get_sky_rotation() const { - return sky_rotation; } Color Environment::get_bg_color() const { - return bg_color; } float Environment::get_bg_energy() const { - return bg_energy; } int Environment::get_canvas_max_layer() const { - return bg_canvas_max_layer; } Color Environment::get_ambient_light_color() const { - return ambient_color; } float Environment::get_ambient_light_energy() const { - return ambient_energy; } float Environment::get_ambient_light_sky_contribution() const { - return ambient_sky_contribution; } int Environment::get_camera_feed_id() const { - return camera_feed_id; } void Environment::set_tonemapper(ToneMapper p_tone_mapper) { - tone_mapper = p_tone_mapper; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); } Environment::ToneMapper Environment::get_tonemapper() const { - return tone_mapper; } void Environment::set_tonemap_exposure(float p_exposure) { - tonemap_exposure = p_exposure; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); } float Environment::get_tonemap_exposure() const { - return tonemap_exposure; } void Environment::set_tonemap_white(float p_white) { - tonemap_white = p_white; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); } float Environment::get_tonemap_white() const { - return tonemap_white; } void Environment::set_tonemap_auto_exposure(bool p_enabled) { - tonemap_auto_exposure = p_enabled; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); _change_notify(); } bool Environment::get_tonemap_auto_exposure() const { - return tonemap_auto_exposure; } void Environment::set_tonemap_auto_exposure_max(float p_auto_exposure_max) { - tonemap_auto_exposure_max = p_auto_exposure_max; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); } float Environment::get_tonemap_auto_exposure_max() const { - return tonemap_auto_exposure_max; } void Environment::set_tonemap_auto_exposure_min(float p_auto_exposure_min) { - tonemap_auto_exposure_min = p_auto_exposure_min; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); } float Environment::get_tonemap_auto_exposure_min() const { - return tonemap_auto_exposure_min; } void Environment::set_tonemap_auto_exposure_speed(float p_auto_exposure_speed) { - tonemap_auto_exposure_speed = p_auto_exposure_speed; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); } float Environment::get_tonemap_auto_exposure_speed() const { - return tonemap_auto_exposure_speed; } void Environment::set_tonemap_auto_exposure_grey(float p_auto_exposure_grey) { - tonemap_auto_exposure_grey = p_auto_exposure_grey; RS::get_singleton()->environment_set_tonemap(environment, RS::EnvironmentToneMapper(tone_mapper), tonemap_exposure, tonemap_white, tonemap_auto_exposure, tonemap_auto_exposure_min, tonemap_auto_exposure_max, tonemap_auto_exposure_speed, tonemap_auto_exposure_grey); } float Environment::get_tonemap_auto_exposure_grey() const { - return tonemap_auto_exposure_grey; } void Environment::set_adjustment_enable(bool p_enable) { - adjustment_enabled = p_enable; RS::get_singleton()->environment_set_adjustment(environment, adjustment_enabled, adjustment_brightness, adjustment_contrast, adjustment_saturation, adjustment_color_correction.is_valid() ? adjustment_color_correction->get_rid() : RID()); _change_notify(); } bool Environment::is_adjustment_enabled() const { - return adjustment_enabled; } void Environment::set_adjustment_brightness(float p_brightness) { - adjustment_brightness = p_brightness; RS::get_singleton()->environment_set_adjustment(environment, adjustment_enabled, adjustment_brightness, adjustment_contrast, adjustment_saturation, adjustment_color_correction.is_valid() ? adjustment_color_correction->get_rid() : RID()); } float Environment::get_adjustment_brightness() const { - return adjustment_brightness; } void Environment::set_adjustment_contrast(float p_contrast) { - adjustment_contrast = p_contrast; RS::get_singleton()->environment_set_adjustment(environment, adjustment_enabled, adjustment_brightness, adjustment_contrast, adjustment_saturation, adjustment_color_correction.is_valid() ? adjustment_color_correction->get_rid() : RID()); } float Environment::get_adjustment_contrast() const { - return adjustment_contrast; } void Environment::set_adjustment_saturation(float p_saturation) { - adjustment_saturation = p_saturation; RS::get_singleton()->environment_set_adjustment(environment, adjustment_enabled, adjustment_brightness, adjustment_contrast, adjustment_saturation, adjustment_color_correction.is_valid() ? adjustment_color_correction->get_rid() : RID()); } float Environment::get_adjustment_saturation() const { - return adjustment_saturation; } void Environment::set_adjustment_color_correction(const Ref<Texture2D> &p_ramp) { - adjustment_color_correction = p_ramp; RS::get_singleton()->environment_set_adjustment(environment, adjustment_enabled, adjustment_brightness, adjustment_contrast, adjustment_saturation, adjustment_color_correction.is_valid() ? adjustment_color_correction->get_rid() : RID()); } Ref<Texture2D> Environment::get_adjustment_color_correction() const { - return adjustment_color_correction; } void Environment::_validate_property(PropertyInfo &property) const { - if (property.name == "sky" || property.name == "sky_custom_fov" || property.name == "sky_rotation" || property.name == "ambient_light/sky_contribution") { if (bg_mode != BG_SKY && ambient_source != AMBIENT_SOURCE_SKY && reflection_source != REFLECTION_SOURCE_SKY) { property.usage = PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL; @@ -387,166 +339,135 @@ void Environment::_validate_property(PropertyInfo &property) const { } void Environment::set_ssr_enabled(bool p_enable) { - ssr_enabled = p_enable; RS::get_singleton()->environment_set_ssr(environment, ssr_enabled, ssr_max_steps, ssr_fade_in, ssr_fade_out, ssr_depth_tolerance); _change_notify(); } bool Environment::is_ssr_enabled() const { - return ssr_enabled; } void Environment::set_ssr_max_steps(int p_steps) { - ssr_max_steps = p_steps; RS::get_singleton()->environment_set_ssr(environment, ssr_enabled, ssr_max_steps, ssr_fade_in, ssr_fade_out, ssr_depth_tolerance); } int Environment::get_ssr_max_steps() const { - return ssr_max_steps; } void Environment::set_ssr_fade_in(float p_fade_in) { - ssr_fade_in = p_fade_in; RS::get_singleton()->environment_set_ssr(environment, ssr_enabled, ssr_max_steps, ssr_fade_in, ssr_fade_out, ssr_depth_tolerance); } float Environment::get_ssr_fade_in() const { - return ssr_fade_in; } void Environment::set_ssr_fade_out(float p_fade_out) { - ssr_fade_out = p_fade_out; RS::get_singleton()->environment_set_ssr(environment, ssr_enabled, ssr_max_steps, ssr_fade_in, ssr_fade_out, ssr_depth_tolerance); } float Environment::get_ssr_fade_out() const { - return ssr_fade_out; } void Environment::set_ssr_depth_tolerance(float p_depth_tolerance) { - ssr_depth_tolerance = p_depth_tolerance; RS::get_singleton()->environment_set_ssr(environment, ssr_enabled, ssr_max_steps, ssr_fade_in, ssr_fade_out, ssr_depth_tolerance); } float Environment::get_ssr_depth_tolerance() const { - return ssr_depth_tolerance; } void Environment::set_ssao_enabled(bool p_enable) { - ssao_enabled = p_enable; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); _change_notify(); } bool Environment::is_ssao_enabled() const { - return ssao_enabled; } void Environment::set_ssao_radius(float p_radius) { - ssao_radius = p_radius; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); } float Environment::get_ssao_radius() const { - return ssao_radius; } void Environment::set_ssao_intensity(float p_intensity) { - ssao_intensity = p_intensity; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); } float Environment::get_ssao_intensity() const { - return ssao_intensity; } void Environment::set_ssao_bias(float p_bias) { - ssao_bias = p_bias; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); } float Environment::get_ssao_bias() const { - return ssao_bias; } void Environment::set_ssao_direct_light_affect(float p_direct_light_affect) { - ssao_direct_light_affect = p_direct_light_affect; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); } float Environment::get_ssao_direct_light_affect() const { - return ssao_direct_light_affect; } void Environment::set_ssao_ao_channel_affect(float p_ao_channel_affect) { - ssao_ao_channel_affect = p_ao_channel_affect; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); } float Environment::get_ssao_ao_channel_affect() const { - return ssao_ao_channel_affect; } void Environment::set_ao_color(const Color &p_color) { - ao_color = p_color; RS::get_singleton()->environment_set_ambient_light(environment, ambient_color, RS::EnvironmentAmbientSource(ambient_source), ambient_energy, ambient_sky_contribution, RS::EnvironmentReflectionSource(reflection_source), ao_color); } Color Environment::get_ao_color() const { - return ao_color; } void Environment::set_ssao_blur(SSAOBlur p_blur) { - ssao_blur = p_blur; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); } Environment::SSAOBlur Environment::get_ssao_blur() const { - return ssao_blur; } void Environment::set_ssao_edge_sharpness(float p_edge_sharpness) { - ssao_edge_sharpness = p_edge_sharpness; RS::get_singleton()->environment_set_ssao(environment, ssao_enabled, ssao_radius, ssao_intensity, ssao_bias, ssao_direct_light_affect, ssao_ao_channel_affect, RS::EnvironmentSSAOBlur(ssao_blur), ssao_edge_sharpness); } float Environment::get_ssao_edge_sharpness() const { - return ssao_edge_sharpness; } void Environment::set_glow_enabled(bool p_enabled) { - glow_enabled = p_enabled; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); _change_notify(); } bool Environment::is_glow_enabled() const { - return glow_enabled; } void Environment::set_glow_level(int p_level, bool p_enabled) { - ERR_FAIL_INDEX(p_level, RS::MAX_GLOW_LEVELS); if (p_enabled) @@ -557,239 +478,194 @@ void Environment::set_glow_level(int p_level, bool p_enabled) { RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } bool Environment::is_glow_level_enabled(int p_level) const { - ERR_FAIL_INDEX_V(p_level, RS::MAX_GLOW_LEVELS, false); return glow_levels & (1 << p_level); } void Environment::set_glow_intensity(float p_intensity) { - glow_intensity = p_intensity; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } float Environment::get_glow_intensity() const { - return glow_intensity; } void Environment::set_glow_strength(float p_strength) { - glow_strength = p_strength; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } float Environment::get_glow_strength() const { - return glow_strength; } void Environment::set_glow_mix(float p_mix) { - glow_mix = p_mix; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } float Environment::get_glow_mix() const { - return glow_mix; } void Environment::set_glow_bloom(float p_threshold) { - glow_bloom = p_threshold; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } float Environment::get_glow_bloom() const { - return glow_bloom; } void Environment::set_glow_blend_mode(GlowBlendMode p_mode) { - glow_blend_mode = p_mode; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); _change_notify(); } Environment::GlowBlendMode Environment::get_glow_blend_mode() const { - return glow_blend_mode; } void Environment::set_glow_hdr_bleed_threshold(float p_threshold) { - glow_hdr_bleed_threshold = p_threshold; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } float Environment::get_glow_hdr_bleed_threshold() const { - return glow_hdr_bleed_threshold; } void Environment::set_glow_hdr_luminance_cap(float p_amount) { - glow_hdr_luminance_cap = p_amount; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } float Environment::get_glow_hdr_luminance_cap() const { - return glow_hdr_luminance_cap; } void Environment::set_glow_hdr_bleed_scale(float p_scale) { - glow_hdr_bleed_scale = p_scale; RS::get_singleton()->environment_set_glow(environment, glow_enabled, glow_levels, glow_intensity, glow_strength, glow_mix, glow_bloom, RS::EnvironmentGlowBlendMode(glow_blend_mode), glow_hdr_bleed_threshold, glow_hdr_bleed_threshold, glow_hdr_luminance_cap); } float Environment::get_glow_hdr_bleed_scale() const { - return glow_hdr_bleed_scale; } void Environment::set_fog_enabled(bool p_enabled) { - fog_enabled = p_enabled; RS::get_singleton()->environment_set_fog(environment, fog_enabled, fog_color, fog_sun_color, fog_sun_amount); _change_notify(); } bool Environment::is_fog_enabled() const { - return fog_enabled; } void Environment::set_fog_color(const Color &p_color) { - fog_color = p_color; RS::get_singleton()->environment_set_fog(environment, fog_enabled, fog_color, fog_sun_color, fog_sun_amount); } Color Environment::get_fog_color() const { - return fog_color; } void Environment::set_fog_sun_color(const Color &p_color) { - fog_sun_color = p_color; RS::get_singleton()->environment_set_fog(environment, fog_enabled, fog_color, fog_sun_color, fog_sun_amount); } Color Environment::get_fog_sun_color() const { - return fog_sun_color; } void Environment::set_fog_sun_amount(float p_amount) { - fog_sun_amount = p_amount; RS::get_singleton()->environment_set_fog(environment, fog_enabled, fog_color, fog_sun_color, fog_sun_amount); } float Environment::get_fog_sun_amount() const { - return fog_sun_amount; } void Environment::set_fog_depth_enabled(bool p_enabled) { - fog_depth_enabled = p_enabled; RS::get_singleton()->environment_set_fog_depth(environment, fog_depth_enabled, fog_depth_begin, fog_depth_end, fog_depth_curve, fog_transmit_enabled, fog_transmit_curve); } bool Environment::is_fog_depth_enabled() const { - return fog_depth_enabled; } void Environment::set_fog_depth_begin(float p_distance) { - fog_depth_begin = p_distance; RS::get_singleton()->environment_set_fog_depth(environment, fog_depth_enabled, fog_depth_begin, fog_depth_end, fog_depth_curve, fog_transmit_enabled, fog_transmit_curve); } float Environment::get_fog_depth_begin() const { - return fog_depth_begin; } void Environment::set_fog_depth_end(float p_distance) { - fog_depth_end = p_distance; RS::get_singleton()->environment_set_fog_depth(environment, fog_depth_enabled, fog_depth_begin, fog_depth_end, fog_depth_curve, fog_transmit_enabled, fog_transmit_curve); } float Environment::get_fog_depth_end() const { - return fog_depth_end; } void Environment::set_fog_depth_curve(float p_curve) { - fog_depth_curve = p_curve; RS::get_singleton()->environment_set_fog_depth(environment, fog_depth_enabled, fog_depth_begin, fog_depth_end, fog_depth_curve, fog_transmit_enabled, fog_transmit_curve); } float Environment::get_fog_depth_curve() const { - return fog_depth_curve; } void Environment::set_fog_transmit_enabled(bool p_enabled) { - fog_transmit_enabled = p_enabled; RS::get_singleton()->environment_set_fog_depth(environment, fog_depth_enabled, fog_depth_begin, fog_depth_end, fog_depth_curve, fog_transmit_enabled, fog_transmit_curve); } bool Environment::is_fog_transmit_enabled() const { - return fog_transmit_enabled; } void Environment::set_fog_transmit_curve(float p_curve) { - fog_transmit_curve = p_curve; RS::get_singleton()->environment_set_fog_depth(environment, fog_depth_enabled, fog_depth_begin, fog_depth_end, fog_depth_curve, fog_transmit_enabled, fog_transmit_curve); } float Environment::get_fog_transmit_curve() const { - return fog_transmit_curve; } void Environment::set_fog_height_enabled(bool p_enabled) { - fog_height_enabled = p_enabled; RS::get_singleton()->environment_set_fog_height(environment, fog_height_enabled, fog_height_min, fog_height_max, fog_height_curve); } bool Environment::is_fog_height_enabled() const { - return fog_height_enabled; } void Environment::set_fog_height_min(float p_distance) { - fog_height_min = p_distance; RS::get_singleton()->environment_set_fog_height(environment, fog_height_enabled, fog_height_min, fog_height_max, fog_height_curve); } float Environment::get_fog_height_min() const { - return fog_height_min; } void Environment::set_fog_height_max(float p_distance) { - fog_height_max = p_distance; RS::get_singleton()->environment_set_fog_height(environment, fog_height_enabled, fog_height_min, fog_height_max, fog_height_curve); } float Environment::get_fog_height_max() const { - return fog_height_max; } void Environment::set_fog_height_curve(float p_distance) { - fog_height_curve = p_distance; RS::get_singleton()->environment_set_fog_height(environment, fog_height_enabled, fog_height_min, fog_height_max, fog_height_curve); } float Environment::get_fog_height_curve() const { - return fog_height_curve; } @@ -813,7 +689,6 @@ bool Environment::_set(const StringName &p_name, const Variant &p_value) { #endif void Environment::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_background", "mode"), &Environment::set_background); ClassDB::bind_method(D_METHOD("set_sky", "sky"), &Environment::set_sky); ClassDB::bind_method(D_METHOD("set_sky_custom_fov", "scale"), &Environment::set_sky_custom_fov); @@ -1118,7 +993,6 @@ void Environment::_bind_methods() { } Environment::Environment() { - environment = RS::get_singleton()->environment_create(); bg_mode = BG_CLEAR_COLOR; @@ -1200,84 +1074,69 @@ Environment::Environment() { } Environment::~Environment() { - RS::get_singleton()->free(environment); } ////////////////////// void CameraEffects::set_dof_blur_far_enabled(bool p_enable) { - dof_blur_far_enabled = p_enable; RS::get_singleton()->camera_effects_set_dof_blur(camera_effects, dof_blur_far_enabled, dof_blur_far_distance, dof_blur_far_transition, dof_blur_near_enabled, dof_blur_near_distance, dof_blur_near_transition, dof_blur_amount); } bool CameraEffects::is_dof_blur_far_enabled() const { - return dof_blur_far_enabled; } void CameraEffects::set_dof_blur_far_distance(float p_distance) { - dof_blur_far_distance = p_distance; RS::get_singleton()->camera_effects_set_dof_blur(camera_effects, dof_blur_far_enabled, dof_blur_far_distance, dof_blur_far_transition, dof_blur_near_enabled, dof_blur_near_distance, dof_blur_near_transition, dof_blur_amount); } float CameraEffects::get_dof_blur_far_distance() const { - return dof_blur_far_distance; } void CameraEffects::set_dof_blur_far_transition(float p_distance) { - dof_blur_far_transition = p_distance; RS::get_singleton()->camera_effects_set_dof_blur(camera_effects, dof_blur_far_enabled, dof_blur_far_distance, dof_blur_far_transition, dof_blur_near_enabled, dof_blur_near_distance, dof_blur_near_transition, dof_blur_amount); } float CameraEffects::get_dof_blur_far_transition() const { - return dof_blur_far_transition; } void CameraEffects::set_dof_blur_near_enabled(bool p_enable) { - dof_blur_near_enabled = p_enable; RS::get_singleton()->camera_effects_set_dof_blur(camera_effects, dof_blur_far_enabled, dof_blur_far_distance, dof_blur_far_transition, dof_blur_near_enabled, dof_blur_near_distance, dof_blur_near_transition, dof_blur_amount); _change_notify(); } bool CameraEffects::is_dof_blur_near_enabled() const { - return dof_blur_near_enabled; } void CameraEffects::set_dof_blur_near_distance(float p_distance) { - dof_blur_near_distance = p_distance; RS::get_singleton()->camera_effects_set_dof_blur(camera_effects, dof_blur_far_enabled, dof_blur_far_distance, dof_blur_far_transition, dof_blur_near_enabled, dof_blur_near_distance, dof_blur_near_transition, dof_blur_amount); } float CameraEffects::get_dof_blur_near_distance() const { - return dof_blur_near_distance; } void CameraEffects::set_dof_blur_near_transition(float p_distance) { - dof_blur_near_transition = p_distance; RS::get_singleton()->camera_effects_set_dof_blur(camera_effects, dof_blur_far_enabled, dof_blur_far_distance, dof_blur_far_transition, dof_blur_near_enabled, dof_blur_near_distance, dof_blur_near_transition, dof_blur_amount); } float CameraEffects::get_dof_blur_near_transition() const { - return dof_blur_near_transition; } void CameraEffects::set_dof_blur_amount(float p_amount) { - dof_blur_amount = p_amount; RS::get_singleton()->camera_effects_set_dof_blur(camera_effects, dof_blur_far_enabled, dof_blur_far_distance, dof_blur_far_transition, dof_blur_near_enabled, dof_blur_near_distance, dof_blur_near_transition, dof_blur_amount); } float CameraEffects::get_dof_blur_amount() const { - return dof_blur_amount; } @@ -1304,7 +1163,6 @@ RID CameraEffects::get_rid() const { } void CameraEffects::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_dof_blur_far_enabled", "enabled"), &CameraEffects::set_dof_blur_far_enabled); ClassDB::bind_method(D_METHOD("is_dof_blur_far_enabled"), &CameraEffects::is_dof_blur_far_enabled); @@ -1346,7 +1204,6 @@ void CameraEffects::_bind_methods() { } CameraEffects::CameraEffects() { - camera_effects = RS::get_singleton()->camera_effects_create(); dof_blur_far_enabled = false; @@ -1364,6 +1221,5 @@ CameraEffects::CameraEffects() { } CameraEffects::~CameraEffects() { - RS::get_singleton()->free(camera_effects); } diff --git a/scene/resources/environment.h b/scene/resources/environment.h index f0ea8489ff..b8caa59aab 100644 --- a/scene/resources/environment.h +++ b/scene/resources/environment.h @@ -37,7 +37,6 @@ #include "servers/rendering_server.h" class Environment : public Resource { - GDCLASS(Environment, Resource); public: @@ -369,7 +368,6 @@ VARIANT_ENUM_CAST(Environment::GlowBlendMode) VARIANT_ENUM_CAST(Environment::SSAOBlur) class CameraEffects : public Resource { - GDCLASS(CameraEffects, Resource); private: diff --git a/scene/resources/font.cpp b/scene/resources/font.cpp index 51c2ff389a..c67a300580 100644 --- a/scene/resources/font.cpp +++ b/scene/resources/font.cpp @@ -65,7 +65,6 @@ void Font::draw(RID p_canvas_item, const Point2 &p_pos, const String &p_text, co int chars_drawn = 0; bool with_outline = has_outline(); for (int i = 0; i < p_text.length(); i++) { - int width = get_char_size(p_text[i]).width; if (p_clip_w >= 0 && (ofs.x + width) > p_clip_w) @@ -84,12 +83,10 @@ void Font::draw(RID p_canvas_item, const Point2 &p_pos, const String &p_text, co } void Font::update_changes() { - emit_changed(); } void Font::_bind_methods() { - ClassDB::bind_method(D_METHOD("draw", "canvas_item", "position", "string", "modulate", "clip_w", "outline_modulate"), &Font::draw, DEFVAL(Color(1, 1, 1)), DEFVAL(-1), DEFVAL(Color(1, 1, 1))); ClassDB::bind_method(D_METHOD("get_ascent"), &Font::get_ascent); ClassDB::bind_method(D_METHOD("get_descent"), &Font::get_descent); @@ -108,7 +105,6 @@ Font::Font() { ///////////////////////////////////////////////////////////////// void BitmapFont::_set_chars(const Vector<int> &p_chars) { - int len = p_chars.size(); //char 1 charsize 1 texture, 4 rect, 2 align, advance 1 ERR_FAIL_COND(len % 9); @@ -118,20 +114,17 @@ void BitmapFont::_set_chars(const Vector<int> &p_chars) { const int *r = p_chars.ptr(); for (int i = 0; i < chars; i++) { - const int *data = &r[i * 9]; add_char(data[0], data[1], Rect2(data[2], data[3], data[4], data[5]), Size2(data[6], data[7]), data[8]); } } Vector<int> BitmapFont::_get_chars() const { - Vector<int> chars; const CharType *key = nullptr; while ((key = char_map.next(key))) { - const Character *c = char_map.getptr(*key); ERR_FAIL_COND_V(!c, Vector<int>()); chars.push_back(*key); @@ -150,7 +143,6 @@ Vector<int> BitmapFont::_get_chars() const { } void BitmapFont::_set_kernings(const Vector<int> &p_kernings) { - int len = p_kernings.size(); ERR_FAIL_COND(len % 3); if (!len) @@ -158,18 +150,15 @@ void BitmapFont::_set_kernings(const Vector<int> &p_kernings) { const int *r = p_kernings.ptr(); for (int i = 0; i < len / 3; i++) { - const int *data = &r[i * 3]; add_kerning_pair(data[0], data[1], data[2]); } } Vector<int> BitmapFont::_get_kernings() const { - Vector<int> kernings; for (Map<KerningPairKey, int>::Element *E = kerning_map.front(); E; E = E->next()) { - kernings.push_back(E->key().A); kernings.push_back(E->key().B); kernings.push_back(E->get()); @@ -179,7 +168,6 @@ Vector<int> BitmapFont::_get_kernings() const { } void BitmapFont::_set_textures(const Vector<Variant> &p_textures) { - textures.clear(); for (int i = 0; i < p_textures.size(); i++) { Ref<Texture2D> tex = p_textures[i]; @@ -189,7 +177,6 @@ void BitmapFont::_set_textures(const Vector<Variant> &p_textures) { } Vector<Variant> BitmapFont::_get_textures() const { - Vector<Variant> rtextures; for (int i = 0; i < textures.size(); i++) rtextures.push_back(textures[i]); @@ -207,7 +194,6 @@ Error BitmapFont::create_from_fnt(const String &p_file) { clear(); while (true) { - String line = f->get_line(); int delimiter = line.find(" "); @@ -219,7 +205,6 @@ Error BitmapFont::create_from_fnt(const String &p_file) { pos++; while (pos < line.size()) { - int eq = line.find("=", pos); if (eq == -1) break; @@ -249,7 +234,6 @@ Error BitmapFont::create_from_fnt(const String &p_file) { } if (type == "info") { - if (keys.has("face")) set_name(keys["face"]); /* @@ -258,16 +242,13 @@ Error BitmapFont::create_from_fnt(const String &p_file) { */ } else if (type == "common") { - if (keys.has("lineHeight")) set_height(keys["lineHeight"].to_int()); if (keys.has("base")) set_ascent(keys["base"].to_int()); } else if (type == "page") { - if (keys.has("file")) { - String base_dir = p_file.get_base_dir(); String file = base_dir.plus_file(keys["file"]); Ref<Texture2D> tex = ResourceLoader::load(file); @@ -278,7 +259,6 @@ Error BitmapFont::create_from_fnt(const String &p_file) { } } } else if (type == "char") { - CharType idx = 0; if (keys.has("id")) idx = keys["id"].to_int(); @@ -311,7 +291,6 @@ Error BitmapFont::create_from_fnt(const String &p_file) { add_char(idx, texture, rect, ofs, advance); } else if (type == "kerning") { - CharType first = 0, second = 0; int k = 0; @@ -335,67 +314,54 @@ Error BitmapFont::create_from_fnt(const String &p_file) { } void BitmapFont::set_height(float p_height) { - height = p_height; } float BitmapFont::get_height() const { - return height; } void BitmapFont::set_ascent(float p_ascent) { - ascent = p_ascent; } float BitmapFont::get_ascent() const { - return ascent; } float BitmapFont::get_descent() const { - return height - ascent; } float BitmapFont::get_underline_position() const { - return 2; } float BitmapFont::get_underline_thickness() const { - return 1; } void BitmapFont::add_texture(const Ref<Texture2D> &p_texture) { - ERR_FAIL_COND_MSG(p_texture.is_null(), "It's not a reference to a valid Texture object."); textures.push_back(p_texture); } int BitmapFont::get_texture_count() const { - return textures.size(); }; Ref<Texture2D> BitmapFont::get_texture(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, textures.size(), Ref<Texture2D>()); return textures[p_idx]; }; int BitmapFont::get_character_count() const { - return char_map.size(); }; Vector<CharType> BitmapFont::get_char_keys() const { - Vector<CharType> chars; chars.resize(char_map.size()); const CharType *ct = nullptr; int count = 0; while ((ct = char_map.next(ct))) { - chars.write[count++] = *ct; }; @@ -403,7 +369,6 @@ Vector<CharType> BitmapFont::get_char_keys() const { }; BitmapFont::Character BitmapFont::get_character(CharType p_char) const { - if (!char_map.has(p_char)) { ERR_FAIL_V(Character()); }; @@ -412,7 +377,6 @@ BitmapFont::Character BitmapFont::get_character(CharType p_char) const { }; void BitmapFont::add_char(CharType p_char, int p_texture_idx, const Rect2 &p_rect, const Size2 &p_align, float p_advance) { - if (p_advance < 0) p_advance = p_rect.size.width; @@ -427,22 +391,18 @@ void BitmapFont::add_char(CharType p_char, int p_texture_idx, const Rect2 &p_rec } void BitmapFont::add_kerning_pair(CharType p_A, CharType p_B, int p_kerning) { - KerningPairKey kpk; kpk.A = p_A; kpk.B = p_B; if (p_kerning == 0 && kerning_map.has(kpk)) { - kerning_map.erase(kpk); } else { - kerning_map[kpk] = p_kerning; } } Vector<BitmapFont::KerningPairKey> BitmapFont::get_kerning_pair_keys() const { - Vector<BitmapFont::KerningPairKey> ret; ret.resize(kerning_map.size()); int i = 0; @@ -455,7 +415,6 @@ Vector<BitmapFont::KerningPairKey> BitmapFont::get_kerning_pair_keys() const { } int BitmapFont::get_kerning_pair(CharType p_A, CharType p_B) const { - KerningPairKey kpk; kpk.A = p_A; kpk.B = p_B; @@ -468,18 +427,15 @@ int BitmapFont::get_kerning_pair(CharType p_A, CharType p_B) const { } void BitmapFont::set_distance_field_hint(bool p_distance_field) { - distance_field_hint = p_distance_field; emit_changed(); } bool BitmapFont::is_distance_field_hint() const { - return distance_field_hint; } void BitmapFont::clear() { - height = 1; ascent = 0; char_map.clear(); @@ -489,7 +445,6 @@ void BitmapFont::clear() { } Size2 Font::get_string_size(const String &p_string) const { - float w = 0; int l = p_string.length(); @@ -498,7 +453,6 @@ Size2 Font::get_string_size(const String &p_string) const { const CharType *sptr = &p_string[0]; for (int i = 0; i < l; i++) { - w += get_char_size(sptr[i], sptr[i + 1]).width; } @@ -506,7 +460,6 @@ Size2 Font::get_string_size(const String &p_string) const { } Size2 Font::get_wordwrap_string_size(const String &p_string, float p_width) const { - ERR_FAIL_COND_V(p_width <= 0, Vector2(0, get_height())); int l = p_string.length(); @@ -537,7 +490,6 @@ Size2 Font::get_wordwrap_string_size(const String &p_string, float p_width) cons } void BitmapFont::set_fallback(const Ref<BitmapFont> &p_fallback) { - for (Ref<BitmapFont> fallback_child = p_fallback; fallback_child != nullptr; fallback_child = fallback_child->get_fallback()) { ERR_FAIL_COND_MSG(fallback_child == this, "Can't set as fallback one of its parents to prevent crashes due to recursive loop."); } @@ -546,12 +498,10 @@ void BitmapFont::set_fallback(const Ref<BitmapFont> &p_fallback) { } Ref<BitmapFont> BitmapFont::get_fallback() const { - return fallback; } float BitmapFont::draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_char, CharType p_next, const Color &p_modulate, bool p_outline) const { - const Character *c = char_map.getptr(p_char); if (!c) { @@ -573,7 +523,6 @@ float BitmapFont::draw_char(RID p_canvas_item, const Point2 &p_pos, CharType p_c } Size2 BitmapFont::get_char_size(CharType p_char, CharType p_next) const { - const Character *c = char_map.getptr(p_char); if (!c) { @@ -585,14 +534,12 @@ Size2 BitmapFont::get_char_size(CharType p_char, CharType p_next) const { Size2 ret(c->advance, c->rect.size.y); if (p_next) { - KerningPairKey kpk; kpk.A = p_char; kpk.B = p_next; const Map<KerningPairKey, int>::Element *E = kerning_map.find(kpk); if (E) { - ret.width -= E->get(); } } @@ -601,7 +548,6 @@ Size2 BitmapFont::get_char_size(CharType p_char, CharType p_next) const { } void BitmapFont::_bind_methods() { - ClassDB::bind_method(D_METHOD("create_from_fnt", "path"), &BitmapFont::create_from_fnt); ClassDB::bind_method(D_METHOD("set_height", "px"), &BitmapFont::set_height); @@ -645,19 +591,16 @@ void BitmapFont::_bind_methods() { } BitmapFont::BitmapFont() { - clear(); } BitmapFont::~BitmapFont() { - clear(); } //////////// RES ResourceFormatLoaderBMFont::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) { - if (r_error) *r_error = ERR_FILE_CANT_OPEN; @@ -676,17 +619,14 @@ RES ResourceFormatLoaderBMFont::load(const String &p_path, const String &p_origi } void ResourceFormatLoaderBMFont::get_recognized_extensions(List<String> *p_extensions) const { - p_extensions->push_back("fnt"); } bool ResourceFormatLoaderBMFont::handles_type(const String &p_type) const { - return (p_type == "BitmapFont"); } String ResourceFormatLoaderBMFont::get_resource_type(const String &p_path) const { - String el = p_path.get_extension().to_lower(); if (el == "fnt") return "BitmapFont"; diff --git a/scene/resources/font.h b/scene/resources/font.h index 54b1eaa1b9..14312308bb 100644 --- a/scene/resources/font.h +++ b/scene/resources/font.h @@ -36,7 +36,6 @@ #include "scene/resources/texture.h" class Font : public Resource { - GDCLASS(Font, Resource); protected: @@ -106,7 +105,6 @@ public: }; class BitmapFont : public Font { - GDCLASS(BitmapFont, Font); RES_BASE_EXTENSION("font"); @@ -114,7 +112,6 @@ class BitmapFont : public Font { public: struct Character { - int texture_idx; Rect2 rect; float v_align; @@ -128,7 +125,6 @@ public: }; struct KerningPairKey { - union { struct { uint32_t A, B; diff --git a/scene/resources/gradient.cpp b/scene/resources/gradient.cpp index 7bce04beaf..2ccabe0b80 100644 --- a/scene/resources/gradient.cpp +++ b/scene/resources/gradient.cpp @@ -52,7 +52,6 @@ Gradient::~Gradient() { } void Gradient::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_point", "offset", "color"), &Gradient::add_point); ClassDB::bind_method(D_METHOD("remove_point", "offset"), &Gradient::remove_point); @@ -118,7 +117,6 @@ Vector<Gradient::Point> &Gradient::get_points() { } void Gradient::add_point(float p_offset, const Color &p_color) { - Point p; p.offset = p_offset; p.color = p_color; @@ -129,7 +127,6 @@ void Gradient::add_point(float p_offset, const Color &p_color) { } void Gradient::remove_point(int p_index) { - ERR_FAIL_INDEX(p_index, points.size()); ERR_FAIL_COND(points.size() <= 2); points.remove(p_index); @@ -143,7 +140,6 @@ void Gradient::set_points(Vector<Gradient::Point> &p_points) { } void Gradient::set_offset(int pos, const float offset) { - ERR_FAIL_COND(pos < 0); if (points.size() <= pos) points.resize(pos + 1); diff --git a/scene/resources/gradient.h b/scene/resources/gradient.h index 573749ea7e..fa654cf31d 100644 --- a/scene/resources/gradient.h +++ b/scene/resources/gradient.h @@ -39,7 +39,6 @@ class Gradient : public Resource { public: struct Point { - float offset; Color color; bool operator<(const Point &p_ponit) const { @@ -77,7 +76,6 @@ public: Vector<Color> get_colors() const; _FORCE_INLINE_ Color get_color_at_offset(float p_offset) { - if (points.empty()) return Color(0, 0, 0, 1); diff --git a/scene/resources/height_map_shape_3d.cpp b/scene/resources/height_map_shape_3d.cpp index 33b6063299..5450d78426 100644 --- a/scene/resources/height_map_shape_3d.cpp +++ b/scene/resources/height_map_shape_3d.cpp @@ -35,7 +35,6 @@ Vector<Vector3> HeightMapShape3D::get_debug_mesh_lines() { Vector<Vector3> points; if ((map_width != 0) && (map_depth != 0)) { - // This will be slow for large maps... // also we'll have to figure out how well bullet centers this shape... @@ -81,7 +80,6 @@ real_t HeightMapShape3D::get_enclosing_radius() const { } void HeightMapShape3D::_update_shape() { - Dictionary d; d["width"] = map_width; d["depth"] = map_depth; @@ -193,7 +191,6 @@ void HeightMapShape3D::_bind_methods() { HeightMapShape3D::HeightMapShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_HEIGHTMAP)) { - map_width = 2; map_depth = 2; map_data.resize(map_width * map_depth); diff --git a/scene/resources/line_shape_2d.cpp b/scene/resources/line_shape_2d.cpp index 71d4f79e48..cc7108e92e 100644 --- a/scene/resources/line_shape_2d.cpp +++ b/scene/resources/line_shape_2d.cpp @@ -34,7 +34,6 @@ #include "servers/rendering_server.h" bool LineShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - Vector2 point = get_distance() * get_normal(); Vector2 l[2][2] = { { point - get_normal().tangent() * 100, point + get_normal().tangent() * 100 }, { point, point + get_normal() * 30 } }; @@ -48,7 +47,6 @@ bool LineShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tol } void LineShape2D::_update_shape() { - Array arr; arr.push_back(normal); arr.push_back(distance); @@ -57,28 +55,23 @@ void LineShape2D::_update_shape() { } void LineShape2D::set_normal(const Vector2 &p_normal) { - normal = p_normal; _update_shape(); } void LineShape2D::set_distance(real_t p_distance) { - distance = p_distance; _update_shape(); } Vector2 LineShape2D::get_normal() const { - return normal; } real_t LineShape2D::get_distance() const { - return distance; } void LineShape2D::draw(const RID &p_to_rid, const Color &p_color) { - Vector2 point = get_distance() * get_normal(); Vector2 l1[2] = { point - get_normal().tangent() * 100, point + get_normal().tangent() * 100 }; @@ -87,7 +80,6 @@ void LineShape2D::draw(const RID &p_to_rid, const Color &p_color) { RS::get_singleton()->canvas_item_add_line(p_to_rid, l2[0], l2[1], p_color, 3); } Rect2 LineShape2D::get_rect() const { - Vector2 point = get_distance() * get_normal(); Vector2 l1[2] = { point - get_normal().tangent() * 100, point + get_normal().tangent() * 100 }; @@ -105,7 +97,6 @@ real_t LineShape2D::get_enclosing_radius() const { } void LineShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_normal", "normal"), &LineShape2D::set_normal); ClassDB::bind_method(D_METHOD("get_normal"), &LineShape2D::get_normal); @@ -118,7 +109,6 @@ void LineShape2D::_bind_methods() { LineShape2D::LineShape2D() : Shape2D(PhysicsServer2D::get_singleton()->line_shape_create()) { - normal = Vector2(0, 1); distance = 0; _update_shape(); diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index 137657d239..aa5f7677c7 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -39,7 +39,6 @@ #include "scene/scene_string_names.h" void Material::set_next_pass(const Ref<Material> &p_pass) { - for (Ref<Material> pass_child = p_pass; pass_child != nullptr; pass_child = pass_child->get_next_pass()) { ERR_FAIL_COND_MSG(pass_child == this, "Can't set as next_pass one of its parents to prevent crashes due to recursive loop."); } @@ -55,12 +54,10 @@ void Material::set_next_pass(const Ref<Material> &p_pass) { } Ref<Material> Material::get_next_pass() const { - return next_pass; } void Material::set_render_priority(int p_priority) { - ERR_FAIL_COND(p_priority < RENDER_PRIORITY_MIN); ERR_FAIL_COND(p_priority > RENDER_PRIORITY_MAX); render_priority = p_priority; @@ -68,23 +65,19 @@ void Material::set_render_priority(int p_priority) { } int Material::get_render_priority() const { - return render_priority; } RID Material::get_rid() const { - return material; } void Material::_validate_property(PropertyInfo &property) const { - if (!_can_do_next_pass() && property.name == "next_pass") { property.usage = 0; } } void Material::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_next_pass", "next_pass"), &Material::set_next_pass); ClassDB::bind_method(D_METHOD("get_next_pass"), &Material::get_next_pass); @@ -99,22 +92,18 @@ void Material::_bind_methods() { } Material::Material() { - material = RenderingServer::get_singleton()->material_create(); render_priority = 0; } Material::~Material() { - RenderingServer::get_singleton()->free(material); } /////////////////////////////////// bool ShaderMaterial::_set(const StringName &p_name, const Variant &p_value) { - if (shader.is_valid()) { - StringName pr = shader->remap_param(p_name); if (!pr) { String n = p_name; @@ -135,9 +124,7 @@ bool ShaderMaterial::_set(const StringName &p_name, const Variant &p_value) { } bool ShaderMaterial::_get(const StringName &p_name, Variant &r_ret) const { - if (shader.is_valid()) { - StringName pr = shader->remap_param(p_name); if (!pr) { String n = p_name; @@ -159,16 +146,13 @@ bool ShaderMaterial::_get(const StringName &p_name, Variant &r_ret) const { } void ShaderMaterial::_get_property_list(List<PropertyInfo> *p_list) const { - if (!shader.is_null()) { - shader->get_param_list(p_list); } } bool ShaderMaterial::property_can_revert(const String &p_name) { if (shader.is_valid()) { - StringName pr = shader->remap_param(p_name); if (pr) { Variant default_value = RenderingServer::get_singleton()->shader_get_param_default(shader->get_rid(), pr); @@ -192,7 +176,6 @@ Variant ShaderMaterial::property_get_revert(const String &p_name) { } void ShaderMaterial::set_shader(const Ref<Shader> &p_shader) { - // Only connect/disconnect the signal when running in the editor. // This can be a slow operation, and `_change_notify()` (which is called by `_shader_changed()`) // does nothing in non-editor builds anyway. See GH-34741 for details. @@ -217,17 +200,14 @@ void ShaderMaterial::set_shader(const Ref<Shader> &p_shader) { } Ref<Shader> ShaderMaterial::get_shader() const { - return shader; } void ShaderMaterial::set_shader_param(const StringName &p_param, const Variant &p_value) { - RS::get_singleton()->material_set_param(_get_material(), p_param, p_value); } Variant ShaderMaterial::get_shader_param(const StringName &p_param) const { - return RS::get_singleton()->material_get_param(_get_material(), p_param); } @@ -236,7 +216,6 @@ void ShaderMaterial::_shader_changed() { } void ShaderMaterial::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_shader", "shader"), &ShaderMaterial::set_shader); ClassDB::bind_method(D_METHOD("get_shader"), &ShaderMaterial::get_shader); ClassDB::bind_method(D_METHOD("set_shader_param", "param", "value"), &ShaderMaterial::set_shader_param); @@ -248,7 +227,6 @@ void ShaderMaterial::_bind_methods() { } void ShaderMaterial::get_argument_options(const StringName &p_function, int p_idx, List<String> *r_options) const { - #ifdef TOOLS_ENABLED const String quote_style = EDITOR_DEF("text_editor/completion/use_single_quotes", 0) ? "'" : "\""; #else @@ -257,7 +235,6 @@ void ShaderMaterial::get_argument_options(const StringName &p_function, int p_id String f = p_function.operator String(); if ((f == "get_shader_param" || f == "set_shader_param") && p_idx == 0) { - if (shader.is_valid()) { List<PropertyInfo> pl; shader->get_param_list(&pl); @@ -270,7 +247,6 @@ void ShaderMaterial::get_argument_options(const StringName &p_function, int p_id } bool ShaderMaterial::_can_do_next_pass() const { - return shader.is_valid() && shader->get_mode() == Shader::MODE_SPATIAL; } @@ -295,7 +271,6 @@ Map<BaseMaterial3D::MaterialKey, BaseMaterial3D::ShaderData> BaseMaterial3D::sha BaseMaterial3D::ShaderNames *BaseMaterial3D::shader_names = nullptr; void BaseMaterial3D::init_shaders() { - dirty_materials = memnew(SelfList<BaseMaterial3D>::List); shader_names = memnew(ShaderNames); @@ -375,7 +350,6 @@ void BaseMaterial3D::init_shaders() { Ref<StandardMaterial3D> BaseMaterial3D::materials_for_2d[BaseMaterial3D::MAX_MATERIALS_FOR_2D]; void BaseMaterial3D::finish_shaders() { - for (int i = 0; i < MAX_MATERIALS_FOR_2D; i++) { materials_for_2d[i].unref(); } @@ -387,7 +361,6 @@ void BaseMaterial3D::finish_shaders() { } void BaseMaterial3D::_update_shader() { - dirty_materials->remove(&element); MaterialKey mk = _compute_key(); @@ -406,7 +379,6 @@ void BaseMaterial3D::_update_shader() { current_key = mk; if (shader_map.has(mk)) { - RS::get_singleton()->material_set_shader(_get_material(), shader_map[mk].shader); shader_map[mk].users++; return; @@ -606,7 +578,6 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_EMISSION]) { - code += "uniform sampler2D texture_emission : hint_black_albedo," + texfilter_str + ";\n"; code += "uniform vec4 emission : hint_color;\n"; code += "uniform float emission_energy;\n"; @@ -649,13 +620,11 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_SUBSURFACE_SCATTERING]) { - code += "uniform float subsurface_scattering_strength : hint_range(0,1);\n"; code += "uniform sampler2D texture_subsurface_scattering : hint_white," + texfilter_str + ";\n"; } if (features[FEATURE_SUBSURFACE_TRANSMITTANCE]) { - code += "uniform vec4 transmittance_color : hint_color;\n"; code += "uniform float transmittance_depth;\n"; code += "uniform sampler2D texture_subsurface_transmittance : hint_white," + texfilter_str + ";\n"; @@ -664,7 +633,6 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_BACKLIGHT]) { - code += "uniform vec4 backlight : hint_color;\n"; code += "uniform sampler2D texture_backlight : hint_black," + texfilter_str + ";\n"; } @@ -702,18 +670,15 @@ void BaseMaterial3D::_update_shader() { code += "void vertex() {\n"; if (flags[FLAG_SRGB_VERTEX_COLOR]) { - code += "\tif (!OUTPUT_IS_SRGB) {\n"; code += "\t\tCOLOR.rgb = mix( pow((COLOR.rgb + vec3(0.055)) * (1.0 / (1.0 + 0.055)), vec3(2.4)), COLOR.rgb* (1.0 / 12.92), lessThan(COLOR.rgb,vec3(0.04045)) );\n"; code += "\t}\n"; } if (flags[FLAG_USE_POINT_SIZE]) { - code += "\tPOINT_SIZE=point_size;\n"; } if (shading_mode == SHADING_MODE_PER_VERTEX) { - code += "\tROUGHNESS=roughness;\n"; } @@ -723,10 +688,8 @@ void BaseMaterial3D::_update_shader() { switch (billboard_mode) { case BILLBOARD_DISABLED: { - } break; case BILLBOARD_ENABLED: { - code += "\tMODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat4(CAMERA_MATRIX[0],CAMERA_MATRIX[1],CAMERA_MATRIX[2],WORLD_MATRIX[3]);\n"; if (flags[FLAG_BILLBOARD_KEEP_SCALE]) { @@ -734,7 +697,6 @@ void BaseMaterial3D::_update_shader() { } } break; case BILLBOARD_FIXED_Y: { - code += "\tMODELVIEW_MATRIX = INV_CAMERA_MATRIX * mat4(CAMERA_MATRIX[0],WORLD_MATRIX[1],vec4(normalize(cross(CAMERA_MATRIX[0].xyz,WORLD_MATRIX[1].xyz)), 0.0),WORLD_MATRIX[3]);\n"; if (flags[FLAG_BILLBOARD_KEEP_SCALE]) { @@ -744,7 +706,6 @@ void BaseMaterial3D::_update_shader() { } } break; case BILLBOARD_PARTICLES: { - //make billboard code += "\tmat4 mat_world = mat4(normalize(CAMERA_MATRIX[0])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[1])*length(WORLD_MATRIX[0]),normalize(CAMERA_MATRIX[2])*length(WORLD_MATRIX[2]),WORLD_MATRIX[3]);\n"; //rotate by rotation @@ -768,7 +729,6 @@ void BaseMaterial3D::_update_shader() { } if (flags[FLAG_FIXED_SIZE]) { - code += "\tif (PROJECTION_MATRIX[3][3] != 0.0) {\n"; //orthogonal matrix, try to do about the same //with viewport size @@ -803,7 +763,6 @@ void BaseMaterial3D::_update_shader() { } if (flags[FLAG_UV1_USE_TRIPLANAR]) { - code += "\tuv1_power_normal=pow(abs(NORMAL),vec3(uv1_blend_sharpness));\n"; code += "\tuv1_power_normal/=dot(uv1_power_normal,vec3(1.0));\n"; code += "\tuv1_triplanar_pos = VERTEX * uv1_scale + uv1_offset;\n"; @@ -811,7 +770,6 @@ void BaseMaterial3D::_update_shader() { } if (flags[FLAG_UV2_USE_TRIPLANAR]) { - code += "\tuv2_power_normal=pow(abs(NORMAL), vec3(uv2_blend_sharpness));\n"; code += "\tuv2_power_normal/=dot(uv2_power_normal,vec3(1.0));\n"; code += "\tuv2_triplanar_pos = VERTEX * uv2_scale + uv2_offset;\n"; @@ -992,7 +950,6 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_REFRACTION]) { - if (features[FEATURE_NORMAL_MAPPING]) { code += "\tvec3 ref_normal = normalize( mix(NORMAL,TANGENT * NORMALMAP.x + BINORMAL * NORMALMAP.y + NORMAL * NORMALMAP.z,NORMALMAP_DEPTH) );\n"; } else { @@ -1023,7 +980,6 @@ void BaseMaterial3D::_update_shader() { if (distance_fade != DISTANCE_FADE_DISABLED) { if ((distance_fade == DISTANCE_FADE_OBJECT_DITHER || distance_fade == DISTANCE_FADE_PIXEL_DITHER)) { - if (!RenderingServer::get_singleton()->is_low_end()) { code += "\t{\n"; if (distance_fade == DISTANCE_FADE_OBJECT_DITHER) { @@ -1097,7 +1053,6 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_AMBIENT_OCCLUSION]) { - if (!orm) { if (flags[FLAG_AO_ON_UV2]) { if (flags[FLAG_UV2_USE_TRIPLANAR]) { @@ -1120,7 +1075,6 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_SUBSURFACE_SCATTERING]) { - if (flags[FLAG_UV1_USE_TRIPLANAR]) { code += "\tfloat sss_tex = triplanar_texture(texture_subsurface_scattering,uv1_power_normal,uv1_triplanar_pos).r;\n"; } else { @@ -1130,7 +1084,6 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_SUBSURFACE_TRANSMITTANCE]) { - if (flags[FLAG_UV1_USE_TRIPLANAR]) { code += "\tvec4 trans_color_tex = triplanar_texture(texture_subsurface_transmittance,uv1_power_normal,uv1_triplanar_pos);\n"; } else { @@ -1153,7 +1106,6 @@ void BaseMaterial3D::_update_shader() { } if (features[FEATURE_DETAIL]) { - bool triplanar = (flags[FLAG_UV1_USE_TRIPLANAR] && detail_uv == DETAIL_UV_1) || (flags[FLAG_UV2_USE_TRIPLANAR] && detail_uv == DETAIL_UV_2); if (triplanar) { @@ -1168,7 +1120,6 @@ void BaseMaterial3D::_update_shader() { } if (flags[FLAG_UV1_USE_TRIPLANAR]) { - code += "\tvec4 detail_mask_tex = triplanar_texture(texture_detail_mask,uv1_power_normal,uv1_triplanar_pos);\n"; } else { code += "\tvec4 detail_mask_tex = texture(texture_detail_mask,base_uv);\n"; @@ -1208,17 +1159,14 @@ void BaseMaterial3D::_update_shader() { } void BaseMaterial3D::flush_changes() { - MutexLock lock(material_mutex); while (dirty_materials->first()) { - dirty_materials->first()->self()->_update_shader(); } } void BaseMaterial3D::_queue_shader_change() { - MutexLock lock(material_mutex); if (!element.in_list()) { @@ -1227,167 +1175,136 @@ void BaseMaterial3D::_queue_shader_change() { } bool BaseMaterial3D::_is_shader_dirty() const { - MutexLock lock(material_mutex); return element.in_list(); } void BaseMaterial3D::set_albedo(const Color &p_albedo) { - albedo = p_albedo; RS::get_singleton()->material_set_param(_get_material(), shader_names->albedo, p_albedo); } Color BaseMaterial3D::get_albedo() const { - return albedo; } void BaseMaterial3D::set_specular(float p_specular) { - specular = p_specular; RS::get_singleton()->material_set_param(_get_material(), shader_names->specular, p_specular); } float BaseMaterial3D::get_specular() const { - return specular; } void BaseMaterial3D::set_roughness(float p_roughness) { - roughness = p_roughness; RS::get_singleton()->material_set_param(_get_material(), shader_names->roughness, p_roughness); } float BaseMaterial3D::get_roughness() const { - return roughness; } void BaseMaterial3D::set_metallic(float p_metallic) { - metallic = p_metallic; RS::get_singleton()->material_set_param(_get_material(), shader_names->metallic, p_metallic); } float BaseMaterial3D::get_metallic() const { - return metallic; } void BaseMaterial3D::set_emission(const Color &p_emission) { - emission = p_emission; RS::get_singleton()->material_set_param(_get_material(), shader_names->emission, p_emission); } Color BaseMaterial3D::get_emission() const { - return emission; } void BaseMaterial3D::set_emission_energy(float p_emission_energy) { - emission_energy = p_emission_energy; RS::get_singleton()->material_set_param(_get_material(), shader_names->emission_energy, p_emission_energy); } float BaseMaterial3D::get_emission_energy() const { - return emission_energy; } void BaseMaterial3D::set_normal_scale(float p_normal_scale) { - normal_scale = p_normal_scale; RS::get_singleton()->material_set_param(_get_material(), shader_names->normal_scale, p_normal_scale); } float BaseMaterial3D::get_normal_scale() const { - return normal_scale; } void BaseMaterial3D::set_rim(float p_rim) { - rim = p_rim; RS::get_singleton()->material_set_param(_get_material(), shader_names->rim, p_rim); } float BaseMaterial3D::get_rim() const { - return rim; } void BaseMaterial3D::set_rim_tint(float p_rim_tint) { - rim_tint = p_rim_tint; RS::get_singleton()->material_set_param(_get_material(), shader_names->rim_tint, p_rim_tint); } float BaseMaterial3D::get_rim_tint() const { - return rim_tint; } void BaseMaterial3D::set_ao_light_affect(float p_ao_light_affect) { - ao_light_affect = p_ao_light_affect; RS::get_singleton()->material_set_param(_get_material(), shader_names->ao_light_affect, p_ao_light_affect); } float BaseMaterial3D::get_ao_light_affect() const { - return ao_light_affect; } void BaseMaterial3D::set_clearcoat(float p_clearcoat) { - clearcoat = p_clearcoat; RS::get_singleton()->material_set_param(_get_material(), shader_names->clearcoat, p_clearcoat); } float BaseMaterial3D::get_clearcoat() const { - return clearcoat; } void BaseMaterial3D::set_clearcoat_gloss(float p_clearcoat_gloss) { - clearcoat_gloss = p_clearcoat_gloss; RS::get_singleton()->material_set_param(_get_material(), shader_names->clearcoat_gloss, p_clearcoat_gloss); } float BaseMaterial3D::get_clearcoat_gloss() const { - return clearcoat_gloss; } void BaseMaterial3D::set_anisotropy(float p_anisotropy) { - anisotropy = p_anisotropy; RS::get_singleton()->material_set_param(_get_material(), shader_names->anisotropy, p_anisotropy); } float BaseMaterial3D::get_anisotropy() const { - return anisotropy; } void BaseMaterial3D::set_heightmap_scale(float p_heightmap_scale) { - heightmap_scale = p_heightmap_scale; RS::get_singleton()->material_set_param(_get_material(), shader_names->heightmap_scale, p_heightmap_scale); } float BaseMaterial3D::get_heightmap_scale() const { - return heightmap_scale; } void BaseMaterial3D::set_subsurface_scattering_strength(float p_subsurface_scattering_strength) { - subsurface_scattering_strength = p_subsurface_scattering_strength; RS::get_singleton()->material_set_param(_get_material(), shader_names->subsurface_scattering_strength, subsurface_scattering_strength); } float BaseMaterial3D::get_subsurface_scattering_strength() const { - return subsurface_scattering_strength; } @@ -1425,29 +1342,24 @@ float BaseMaterial3D::get_transmittance_boost() const { } void BaseMaterial3D::set_backlight(const Color &p_backlight) { - backlight = p_backlight; RS::get_singleton()->material_set_param(_get_material(), shader_names->backlight, backlight); } Color BaseMaterial3D::get_backlight() const { - return backlight; } void BaseMaterial3D::set_refraction(float p_refraction) { - refraction = p_refraction; RS::get_singleton()->material_set_param(_get_material(), shader_names->refraction, refraction); } float BaseMaterial3D::get_refraction() const { - return refraction; } void BaseMaterial3D::set_detail_uv(DetailUV p_detail_uv) { - if (detail_uv == p_detail_uv) return; @@ -1455,12 +1367,10 @@ void BaseMaterial3D::set_detail_uv(DetailUV p_detail_uv) { _queue_shader_change(); } BaseMaterial3D::DetailUV BaseMaterial3D::get_detail_uv() const { - return detail_uv; } void BaseMaterial3D::set_blend_mode(BlendMode p_mode) { - if (blend_mode == p_mode) return; @@ -1468,22 +1378,18 @@ void BaseMaterial3D::set_blend_mode(BlendMode p_mode) { _queue_shader_change(); } BaseMaterial3D::BlendMode BaseMaterial3D::get_blend_mode() const { - return blend_mode; } void BaseMaterial3D::set_detail_blend_mode(BlendMode p_mode) { - detail_blend_mode = p_mode; _queue_shader_change(); } BaseMaterial3D::BlendMode BaseMaterial3D::get_detail_blend_mode() const { - return detail_blend_mode; } void BaseMaterial3D::set_transparency(Transparency p_transparency) { - if (transparency == p_transparency) { return; } @@ -1498,7 +1404,6 @@ BaseMaterial3D::Transparency BaseMaterial3D::get_transparency() const { } void BaseMaterial3D::set_shading_mode(ShadingMode p_shading_mode) { - if (shading_mode == p_shading_mode) { return; } @@ -1513,7 +1418,6 @@ BaseMaterial3D::ShadingMode BaseMaterial3D::get_shading_mode() const { } void BaseMaterial3D::set_depth_draw_mode(DepthDrawMode p_mode) { - if (depth_draw_mode == p_mode) return; @@ -1521,12 +1425,10 @@ void BaseMaterial3D::set_depth_draw_mode(DepthDrawMode p_mode) { _queue_shader_change(); } BaseMaterial3D::DepthDrawMode BaseMaterial3D::get_depth_draw_mode() const { - return depth_draw_mode; } void BaseMaterial3D::set_cull_mode(CullMode p_mode) { - if (cull_mode == p_mode) return; @@ -1534,12 +1436,10 @@ void BaseMaterial3D::set_cull_mode(CullMode p_mode) { _queue_shader_change(); } BaseMaterial3D::CullMode BaseMaterial3D::get_cull_mode() const { - return cull_mode; } void BaseMaterial3D::set_diffuse_mode(DiffuseMode p_mode) { - if (diffuse_mode == p_mode) return; @@ -1547,12 +1447,10 @@ void BaseMaterial3D::set_diffuse_mode(DiffuseMode p_mode) { _queue_shader_change(); } BaseMaterial3D::DiffuseMode BaseMaterial3D::get_diffuse_mode() const { - return diffuse_mode; } void BaseMaterial3D::set_specular_mode(SpecularMode p_mode) { - if (specular_mode == p_mode) return; @@ -1560,12 +1458,10 @@ void BaseMaterial3D::set_specular_mode(SpecularMode p_mode) { _queue_shader_change(); } BaseMaterial3D::SpecularMode BaseMaterial3D::get_specular_mode() const { - return specular_mode; } void BaseMaterial3D::set_flag(Flags p_flag, bool p_enabled) { - ERR_FAIL_INDEX(p_flag, FLAG_MAX); if (flags[p_flag] == p_enabled) @@ -1579,13 +1475,11 @@ void BaseMaterial3D::set_flag(Flags p_flag, bool p_enabled) { } bool BaseMaterial3D::get_flag(Flags p_flag) const { - ERR_FAIL_INDEX_V(p_flag, FLAG_MAX, false); return flags[p_flag]; } void BaseMaterial3D::set_feature(Feature p_feature, bool p_enabled) { - ERR_FAIL_INDEX(p_feature, FEATURE_MAX); if (features[p_feature] == p_enabled) return; @@ -1596,13 +1490,11 @@ void BaseMaterial3D::set_feature(Feature p_feature, bool p_enabled) { } bool BaseMaterial3D::get_feature(Feature p_feature) const { - ERR_FAIL_INDEX_V(p_feature, FEATURE_MAX, false); return features[p_feature]; } void BaseMaterial3D::set_texture(TextureParam p_param, const Ref<Texture2D> &p_texture) { - ERR_FAIL_INDEX(p_param, TEXTURE_MAX); textures[p_param] = p_texture; RID rid = p_texture.is_valid() ? p_texture->get_rid() : RID(); @@ -1612,7 +1504,6 @@ void BaseMaterial3D::set_texture(TextureParam p_param, const Ref<Texture2D> &p_t } Ref<Texture2D> BaseMaterial3D::get_texture(TextureParam p_param) const { - ERR_FAIL_INDEX_V(p_param, TEXTURE_MAX, Ref<Texture2D>()); return textures[p_param]; } @@ -1695,7 +1586,6 @@ void BaseMaterial3D::_validate_property(PropertyInfo &property) const { } if (orm) { - if (property.name == "shading_mode") { property.hint_string = "Unshaded,PerPixel"; //vertex not supported in ORM mode, since no individual roughness. } @@ -1710,9 +1600,7 @@ void BaseMaterial3D::_validate_property(PropertyInfo &property) const { } if (shading_mode != SHADING_MODE_PER_PIXEL) { - if (shading_mode != SHADING_MODE_PER_VERTEX) { - //these may still work per vertex if (property.name.begins_with("ao")) { property.usage = 0; @@ -1761,176 +1649,144 @@ void BaseMaterial3D::_validate_property(PropertyInfo &property) const { } void BaseMaterial3D::set_point_size(float p_point_size) { - point_size = p_point_size; RS::get_singleton()->material_set_param(_get_material(), shader_names->point_size, p_point_size); } float BaseMaterial3D::get_point_size() const { - return point_size; } void BaseMaterial3D::set_uv1_scale(const Vector3 &p_scale) { - uv1_scale = p_scale; RS::get_singleton()->material_set_param(_get_material(), shader_names->uv1_scale, p_scale); } Vector3 BaseMaterial3D::get_uv1_scale() const { - return uv1_scale; } void BaseMaterial3D::set_uv1_offset(const Vector3 &p_offset) { - uv1_offset = p_offset; RS::get_singleton()->material_set_param(_get_material(), shader_names->uv1_offset, p_offset); } Vector3 BaseMaterial3D::get_uv1_offset() const { - return uv1_offset; } void BaseMaterial3D::set_uv1_triplanar_blend_sharpness(float p_sharpness) { - uv1_triplanar_sharpness = p_sharpness; RS::get_singleton()->material_set_param(_get_material(), shader_names->uv1_blend_sharpness, p_sharpness); } float BaseMaterial3D::get_uv1_triplanar_blend_sharpness() const { - return uv1_triplanar_sharpness; } void BaseMaterial3D::set_uv2_scale(const Vector3 &p_scale) { - uv2_scale = p_scale; RS::get_singleton()->material_set_param(_get_material(), shader_names->uv2_scale, p_scale); } Vector3 BaseMaterial3D::get_uv2_scale() const { - return uv2_scale; } void BaseMaterial3D::set_uv2_offset(const Vector3 &p_offset) { - uv2_offset = p_offset; RS::get_singleton()->material_set_param(_get_material(), shader_names->uv2_offset, p_offset); } Vector3 BaseMaterial3D::get_uv2_offset() const { - return uv2_offset; } void BaseMaterial3D::set_uv2_triplanar_blend_sharpness(float p_sharpness) { - uv2_triplanar_sharpness = p_sharpness; RS::get_singleton()->material_set_param(_get_material(), shader_names->uv2_blend_sharpness, p_sharpness); } float BaseMaterial3D::get_uv2_triplanar_blend_sharpness() const { - return uv2_triplanar_sharpness; } void BaseMaterial3D::set_billboard_mode(BillboardMode p_mode) { - billboard_mode = p_mode; _queue_shader_change(); _change_notify(); } BaseMaterial3D::BillboardMode BaseMaterial3D::get_billboard_mode() const { - return billboard_mode; } void BaseMaterial3D::set_particles_anim_h_frames(int p_frames) { - particles_anim_h_frames = p_frames; RS::get_singleton()->material_set_param(_get_material(), shader_names->particles_anim_h_frames, p_frames); } int BaseMaterial3D::get_particles_anim_h_frames() const { - return particles_anim_h_frames; } void BaseMaterial3D::set_particles_anim_v_frames(int p_frames) { - particles_anim_v_frames = p_frames; RS::get_singleton()->material_set_param(_get_material(), shader_names->particles_anim_v_frames, p_frames); } int BaseMaterial3D::get_particles_anim_v_frames() const { - return particles_anim_v_frames; } void BaseMaterial3D::set_particles_anim_loop(bool p_loop) { - particles_anim_loop = p_loop; RS::get_singleton()->material_set_param(_get_material(), shader_names->particles_anim_loop, particles_anim_loop); } bool BaseMaterial3D::get_particles_anim_loop() const { - return particles_anim_loop; } void BaseMaterial3D::set_heightmap_deep_parallax(bool p_enable) { - deep_parallax = p_enable; _queue_shader_change(); _change_notify(); } bool BaseMaterial3D::is_heightmap_deep_parallax_enabled() const { - return deep_parallax; } void BaseMaterial3D::set_heightmap_deep_parallax_min_layers(int p_layer) { - deep_parallax_min_layers = p_layer; RS::get_singleton()->material_set_param(_get_material(), shader_names->heightmap_min_layers, p_layer); } int BaseMaterial3D::get_heightmap_deep_parallax_min_layers() const { - return deep_parallax_min_layers; } void BaseMaterial3D::set_heightmap_deep_parallax_max_layers(int p_layer) { - deep_parallax_max_layers = p_layer; RS::get_singleton()->material_set_param(_get_material(), shader_names->heightmap_max_layers, p_layer); } int BaseMaterial3D::get_heightmap_deep_parallax_max_layers() const { - return deep_parallax_max_layers; } void BaseMaterial3D::set_heightmap_deep_parallax_flip_tangent(bool p_flip) { - heightmap_parallax_flip_tangent = p_flip; RS::get_singleton()->material_set_param(_get_material(), shader_names->heightmap_flip, Vector2(heightmap_parallax_flip_tangent ? -1 : 1, heightmap_parallax_flip_binormal ? -1 : 1)); } bool BaseMaterial3D::get_heightmap_deep_parallax_flip_tangent() const { - return heightmap_parallax_flip_tangent; } void BaseMaterial3D::set_heightmap_deep_parallax_flip_binormal(bool p_flip) { - heightmap_parallax_flip_binormal = p_flip; RS::get_singleton()->material_set_param(_get_material(), shader_names->heightmap_flip, Vector2(heightmap_parallax_flip_tangent ? -1 : 1, heightmap_parallax_flip_binormal ? -1 : 1)); } bool BaseMaterial3D::get_heightmap_deep_parallax_flip_binormal() const { - return heightmap_parallax_flip_binormal; } @@ -1950,7 +1806,6 @@ void BaseMaterial3D::set_alpha_scissor_threshold(float p_threshold) { } float BaseMaterial3D::get_alpha_scissor_threshold() const { - return alpha_scissor_threshold; } @@ -1960,7 +1815,6 @@ void BaseMaterial3D::set_grow(float p_grow) { } float BaseMaterial3D::get_grow() const { - return grow; } @@ -1987,7 +1841,6 @@ BaseMaterial3D::TextureChannel BaseMaterial3D::get_metallic_texture_channel() co } void BaseMaterial3D::set_roughness_texture_channel(TextureChannel p_channel) { - ERR_FAIL_INDEX(p_channel, 5); roughness_texture_channel = p_channel; _queue_shader_change(); @@ -1998,7 +1851,6 @@ BaseMaterial3D::TextureChannel BaseMaterial3D::get_roughness_texture_channel() c } void BaseMaterial3D::set_ao_texture_channel(TextureChannel p_channel) { - ERR_FAIL_INDEX(p_channel, 5); ao_texture_channel = p_channel; RS::get_singleton()->material_set_param(_get_material(), shader_names->ao_texture_channel, _get_texture_mask(p_channel)); @@ -2009,7 +1861,6 @@ BaseMaterial3D::TextureChannel BaseMaterial3D::get_ao_texture_channel() const { } void BaseMaterial3D::set_refraction_texture_channel(TextureChannel p_channel) { - ERR_FAIL_INDEX(p_channel, 5); refraction_texture_channel = p_channel; RS::get_singleton()->material_set_param(_get_material(), shader_names->refraction_texture_channel, _get_texture_mask(p_channel)); @@ -2020,7 +1871,6 @@ BaseMaterial3D::TextureChannel BaseMaterial3D::get_refraction_texture_channel() } RID BaseMaterial3D::get_material_rid_for_2d(bool p_shaded, bool p_transparent, bool p_double_sided, bool p_cut_alpha, bool p_opaque_prepass, bool p_billboard, bool p_billboard_y) { - int version = 0; if (p_shaded) version = 1; @@ -2066,61 +1916,50 @@ void BaseMaterial3D::set_on_top_of_alpha() { } void BaseMaterial3D::set_proximity_fade(bool p_enable) { - proximity_fade_enabled = p_enable; _queue_shader_change(); _change_notify(); } bool BaseMaterial3D::is_proximity_fade_enabled() const { - return proximity_fade_enabled; } void BaseMaterial3D::set_proximity_fade_distance(float p_distance) { - proximity_fade_distance = p_distance; RS::get_singleton()->material_set_param(_get_material(), shader_names->proximity_fade_distance, p_distance); } float BaseMaterial3D::get_proximity_fade_distance() const { - return proximity_fade_distance; } void BaseMaterial3D::set_distance_fade(DistanceFadeMode p_mode) { - distance_fade = p_mode; _queue_shader_change(); _change_notify(); } BaseMaterial3D::DistanceFadeMode BaseMaterial3D::get_distance_fade() const { - return distance_fade; } void BaseMaterial3D::set_distance_fade_max_distance(float p_distance) { - distance_fade_max_distance = p_distance; RS::get_singleton()->material_set_param(_get_material(), shader_names->distance_fade_max, distance_fade_max_distance); } float BaseMaterial3D::get_distance_fade_max_distance() const { - return distance_fade_max_distance; } void BaseMaterial3D::set_distance_fade_min_distance(float p_distance) { - distance_fade_min_distance = p_distance; RS::get_singleton()->material_set_param(_get_material(), shader_names->distance_fade_min, distance_fade_min_distance); } float BaseMaterial3D::get_distance_fade_min_distance() const { - return distance_fade_min_distance; } void BaseMaterial3D::set_emission_operator(EmissionOperator p_op) { - if (emission_op == p_op) return; emission_op = p_op; @@ -2128,23 +1967,19 @@ void BaseMaterial3D::set_emission_operator(EmissionOperator p_op) { } BaseMaterial3D::EmissionOperator BaseMaterial3D::get_emission_operator() const { - return emission_op; } RID BaseMaterial3D::get_shader_rid() const { - ERR_FAIL_COND_V(!shader_map.has(current_key), RID()); return shader_map[current_key].shader; } Shader::Mode BaseMaterial3D::get_shader_mode() const { - return Shader::MODE_SPATIAL; } void BaseMaterial3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_albedo", "albedo"), &BaseMaterial3D::set_albedo); ClassDB::bind_method(D_METHOD("get_albedo"), &BaseMaterial3D::get_albedo); @@ -2622,7 +2457,6 @@ void BaseMaterial3D::_bind_methods() { BaseMaterial3D::BaseMaterial3D(bool p_orm) : element(this) { - orm = p_orm; // Initialize to the same values as the shader transparency = TRANSPARENCY_DISABLED; @@ -2709,7 +2543,6 @@ BaseMaterial3D::BaseMaterial3D(bool p_orm) : } BaseMaterial3D::~BaseMaterial3D() { - MutexLock lock(material_mutex); if (shader_map.has(current_key)) { diff --git a/scene/resources/material.h b/scene/resources/material.h index 241357ba9b..433e3d304e 100644 --- a/scene/resources/material.h +++ b/scene/resources/material.h @@ -39,7 +39,6 @@ #include "servers/rendering_server.h" class Material : public Resource { - GDCLASS(Material, Resource); RES_BASE_EXTENSION("material") OBJ_SAVE_TYPE(Material); @@ -74,7 +73,6 @@ public: }; class ShaderMaterial : public Material { - GDCLASS(ShaderMaterial, Material); Ref<Shader> shader; @@ -109,7 +107,6 @@ public: class StandardMaterial3D; class BaseMaterial3D : public Material { - GDCLASS(BaseMaterial3D, Material); public: @@ -269,7 +266,6 @@ public: private: union MaterialKey { - struct { uint64_t feature_mask : FEATURE_MAX; uint64_t detail_uv : 1; @@ -316,7 +312,6 @@ private: MaterialKey current_key; _FORCE_INLINE_ MaterialKey _compute_key() const { - MaterialKey mk; mk.key0 = 0; mk.key1 = 0; diff --git a/scene/resources/mesh.cpp b/scene/resources/mesh.cpp index 6548c65cd7..9c641cf6d8 100644 --- a/scene/resources/mesh.cpp +++ b/scene/resources/mesh.cpp @@ -40,22 +40,18 @@ Mesh::ConvexDecompositionFunc Mesh::convex_composition_function = nullptr; Ref<TriangleMesh> Mesh::generate_triangle_mesh() const { - if (triangle_mesh.is_valid()) return triangle_mesh; int facecount = 0; for (int i = 0; i < get_surface_count(); i++) { - if (surface_get_primitive_type(i) != PRIMITIVE_TRIANGLES) continue; if (surface_get_format(i) & ARRAY_FORMAT_INDEX) { - facecount += surface_get_array_index_len(i); } else { - facecount += surface_get_array_len(i); } } @@ -70,7 +66,6 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const { int widx = 0; for (int i = 0; i < get_surface_count(); i++) { - if (surface_get_primitive_type(i) != PRIMITIVE_TRIANGLES) continue; @@ -82,7 +77,6 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const { const Vector3 *vr = vertices.ptr(); if (surface_get_format(i) & ARRAY_FORMAT_INDEX) { - int ic = surface_get_array_index_len(i); Vector<int> indices = a[ARRAY_INDEX]; const int *ir = indices.ptr(); @@ -93,7 +87,6 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const { } } else { - for (int j = 0; j < vc; j++) facesw[widx++] = vr[j]; } @@ -106,7 +99,6 @@ Ref<TriangleMesh> Mesh::generate_triangle_mesh() const { } void Mesh::generate_debug_mesh_lines(Vector<Vector3> &r_lines) { - if (debug_lines.size() > 0) { r_lines = debug_lines; return; @@ -161,7 +153,6 @@ bool Mesh::surface_is_softbody_friendly(int p_idx) const { } Vector<Face3> Mesh::get_faces() const { - Ref<TriangleMesh> tm = generate_triangle_mesh(); if (tm.is_valid()) return tm->get_faces(); @@ -227,11 +218,9 @@ Vector<Face3> Mesh::get_faces() const { } Ref<Shape3D> Mesh::create_convex_shape() const { - Vector<Vector3> vertices; for (int i = 0; i < get_surface_count(); i++) { - Array a = surface_get_arrays(i); ERR_FAIL_COND_V(a.empty(), Ref<ConvexPolygonShape3D>()); Vector<Vector3> v = a[ARRAY_VERTEX]; @@ -244,7 +233,6 @@ Ref<Shape3D> Mesh::create_convex_shape() const { } Ref<Shape3D> Mesh::create_trimesh_shape() const { - Vector<Face3> faces = get_faces(); if (faces.size() == 0) return Ref<Shape3D>(); @@ -253,7 +241,6 @@ Ref<Shape3D> Mesh::create_trimesh_shape() const { face_points.resize(faces.size() * 3); for (int i = 0; i < face_points.size(); i += 3) { - Face3 f = faces.get(i / 3); face_points.set(i, f.vertex[0]); face_points.set(i + 1, f.vertex[1]); @@ -266,11 +253,9 @@ Ref<Shape3D> Mesh::create_trimesh_shape() const { } Ref<Mesh> Mesh::create_outline(float p_margin) const { - Array arrays; int index_accum = 0; for (int i = 0; i < get_surface_count(); i++) { - if (surface_get_primitive_type(i) != PRIMITIVE_TRIANGLES) continue; @@ -282,10 +267,8 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { Vector<Vector3> v = a[ARRAY_VERTEX]; index_accum += v.size(); } else { - int vcount = 0; for (int j = 0; j < arrays.size(); j++) { - if (arrays[j].get_type() == Variant::NIL || a[j].get_type() == Variant::NIL) { //mismatch, do not use arrays[j] = Variant(); @@ -293,10 +276,8 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { } switch (j) { - case ARRAY_VERTEX: case ARRAY_NORMAL: { - Vector<Vector3> dst = arrays[j]; Vector<Vector3> src = a[j]; if (j == ARRAY_VERTEX) @@ -311,7 +292,6 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { case ARRAY_TANGENT: case ARRAY_BONES: case ARRAY_WEIGHTS: { - Vector<real_t> dst = arrays[j]; Vector<real_t> src = a[j]; if (dst.size() == 0 || src.size() == 0) { @@ -391,7 +371,6 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { //fill normals with triangle normals for (int i = 0; i < vc; i += 3) { - Vector3 t[3]; if (has_indices) { @@ -407,7 +386,6 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { Vector3 n = Plane(t[0], t[1], t[2]).normal; for (int j = 0; j < 3; j++) { - Map<Vector3, Vector3>::Element *E = normal_accum.find(t[j]); if (!E) { normal_accum[t[j]] = n; @@ -430,7 +408,6 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { int vc2 = vertices.size(); for (int i = 0; i < vc2; i++) { - Vector3 t = r[i]; Map<Vector3, Vector3>::Element *E = normal_accum.find(t); @@ -443,13 +420,11 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { arrays[ARRAY_VERTEX] = vertices; if (!has_indices) { - Vector<int> new_indices; new_indices.resize(vertices.size()); int *iw = new_indices.ptrw(); for (int j = 0; j < vc2; j += 3) { - iw[j] = j; iw[j + 1] = j + 2; iw[j + 2] = j + 1; @@ -458,9 +433,7 @@ Ref<Mesh> Mesh::create_outline(float p_margin) const { arrays[ARRAY_INDEX] = new_indices; } else { - for (int j = 0; j < vc; j += 3) { - SWAP(ir[j + 1], ir[j + 2]); } arrays[ARRAY_INDEX] = indices; @@ -481,7 +454,6 @@ Size2i Mesh::get_lightmap_size_hint() const { } void Mesh::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_lightmap_size_hint", "size"), &Mesh::set_lightmap_size_hint); ClassDB::bind_method(D_METHOD("get_lightmap_size_hint"), &Mesh::get_lightmap_size_hint); ClassDB::bind_method(D_METHOD("get_aabb"), &Mesh::get_aabb); @@ -542,7 +514,6 @@ void Mesh::clear_cache() const { } Vector<Ref<Shape3D>> Mesh::convex_decompose() const { - ERR_FAIL_COND_V(!convex_composition_function, Vector<Ref<Shape3D>>()); const Vector<Face3> faces = get_faces(); @@ -582,7 +553,6 @@ Mesh::Mesh() { } static Vector<uint8_t> _fix_array_compatibility(const Vector<uint8_t> &p_src, uint32_t p_format, uint32_t p_elements) { - bool vertex_16bit = p_format & ((1 << (Mesh::ARRAY_VERTEX + Mesh::ARRAY_COMPRESS_BASE))); bool has_bones = (p_format & Mesh::ARRAY_FORMAT_BONES); bool bone_8 = has_bones && !(p_format & (Mesh::ARRAY_COMPRESS_INDEX << 2)); @@ -607,7 +577,6 @@ static Vector<uint8_t> _fix_array_compatibility(const Vector<uint8_t> &p_src, ui const uint8_t *r = p_src.ptr(); for (uint32_t i = 0; i < p_elements; i++) { - uint32_t remaining = src_stride; const uint8_t *src = (const uint8_t *)(r + src_stride * i); uint8_t *dst = (uint8_t *)(w + dst_stride * i); @@ -642,7 +611,6 @@ static Vector<uint8_t> _fix_array_compatibility(const Vector<uint8_t> &p_src, ui } if (has_bones) { - remaining -= bone_8 ? 4 : 8; remaining -= weight_32 ? 16 : 8; } @@ -652,12 +620,10 @@ static Vector<uint8_t> _fix_array_compatibility(const Vector<uint8_t> &p_src, ui } if (has_bones) { - dst += remaining; src += remaining; if (bone_8) { - const uint8_t *src_bones = (const uint8_t *)src; uint16_t *dst_bones = (uint16_t *)dst; @@ -678,7 +644,6 @@ static Vector<uint8_t> _fix_array_compatibility(const Vector<uint8_t> &p_src, ui dst += 8; if (weight_32) { - const float *src_weights = (const float *)src; uint16_t *dst_weights = (uint16_t *)dst; @@ -700,11 +665,9 @@ static Vector<uint8_t> _fix_array_compatibility(const Vector<uint8_t> &p_src, ui } bool ArrayMesh::_set(const StringName &p_name, const Variant &p_value) { - String sname = p_name; if (p_name == "blend_shape/names") { - Vector<String> sk = p_value; int sz = sk.size(); const String *r = sk.ptr(); @@ -714,13 +677,11 @@ bool ArrayMesh::_set(const StringName &p_name, const Variant &p_value) { } if (p_name == "blend_shape/mode") { - set_blend_shape_mode(BlendShapeMode(int(p_value))); return true; } if (sname.begins_with("surface_")) { - int sl = sname.find("/"); if (sl == -1) return false; @@ -744,7 +705,6 @@ bool ArrayMesh::_set(const StringName &p_name, const Variant &p_value) { String what = sname.get_slicec('/', 2); if (idx == surfaces.size()) { - //create Dictionary d = p_value; ERR_FAIL_COND_V(!d.has("primitive"), false); @@ -824,7 +784,6 @@ bool ArrayMesh::_set(const StringName &p_name, const Variant &p_value) { } if (d.has("material")) { - surface_set_material(idx, d["material"]); } if (d.has("name")) { @@ -839,7 +798,6 @@ bool ArrayMesh::_set(const StringName &p_name, const Variant &p_value) { } Array ArrayMesh::_get_surfaces() const { - if (mesh.is_null()) { return Array(); } @@ -908,7 +866,6 @@ void ArrayMesh::_create_if_empty() const { } void ArrayMesh::_set_surfaces(const Array &p_surfaces) { - Vector<RS::SurfaceData> surface_data; Vector<Ref<Material>> surface_materials; Vector<String> surface_names; @@ -1031,25 +988,21 @@ void ArrayMesh::_set_surfaces(const Array &p_surfaces) { } bool ArrayMesh::_get(const StringName &p_name, Variant &r_ret) const { - if (_is_generated()) return false; String sname = p_name; if (p_name == "blend_shape/names") { - Vector<String> sk; for (int i = 0; i < blend_shapes.size(); i++) sk.push_back(blend_shapes[i]); r_ret = sk; return true; } else if (p_name == "blend_shape/mode") { - r_ret = get_blend_shape_mode(); return true; } else if (sname.begins_with("surface_")) { - int sl = sname.find("/"); if (sl == -1) return false; @@ -1066,7 +1019,6 @@ bool ArrayMesh::_get(const StringName &p_name, Variant &r_ret) const { } void ArrayMesh::_get_property_list(List<PropertyInfo> *p_list) const { - if (_is_generated()) return; @@ -1076,7 +1028,6 @@ void ArrayMesh::_get_property_list(List<PropertyInfo> *p_list) const { } for (int i = 0; i < surfaces.size(); i++) { - p_list->push_back(PropertyInfo(Variant::STRING, "surface_" + itos(i + 1) + "/name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_EDITOR)); if (surfaces[i].is_2d) { p_list->push_back(PropertyInfo(Variant::OBJECT, "surface_" + itos(i + 1) + "/material", PROPERTY_HINT_RESOURCE_TYPE, "ShaderMaterial,CanvasItemMaterial", PROPERTY_USAGE_EDITOR)); @@ -1087,12 +1038,10 @@ void ArrayMesh::_get_property_list(List<PropertyInfo> *p_list) const { } void ArrayMesh::_recompute_aabb() { - // regenerate AABB aabb = AABB(); for (int i = 0; i < surfaces.size(); i++) { - if (i == 0) aabb = surfaces[i].aabb; else @@ -1103,7 +1052,6 @@ void ArrayMesh::_recompute_aabb() { #warning need to add binding to add_surface using future MeshSurfaceData object #endif void ArrayMesh::add_surface(uint32_t p_format, PrimitiveType p_primitive, const Vector<uint8_t> &p_array, int p_vertex_count, const Vector<uint8_t> &p_index_array, int p_index_count, const AABB &p_aabb, const Vector<Vector<uint8_t>> &p_blend_shapes, const Vector<AABB> &p_bone_aabb, const Vector<RS::SurfaceData::LOD> &p_lods) { - _create_if_empty(); Surface s; @@ -1137,7 +1085,6 @@ void ArrayMesh::add_surface(uint32_t p_format, PrimitiveType p_primitive, const } void ArrayMesh::add_surface_from_arrays(PrimitiveType p_primitive, const Array &p_arrays, const Array &p_blend_shapes, const Dictionary &p_lods, uint32_t p_flags) { - ERR_FAIL_COND(p_arrays.size() != ARRAY_MAX); RS::SurfaceData surface; @@ -1157,12 +1104,10 @@ void ArrayMesh::add_surface_from_arrays(PrimitiveType p_primitive, const Array & } Array ArrayMesh::surface_get_arrays(int p_surface) const { - ERR_FAIL_INDEX_V(p_surface, surfaces.size(), Array()); return RenderingServer::get_singleton()->mesh_surface_get_arrays(mesh, p_surface); } Array ArrayMesh::surface_get_blend_shape_arrays(int p_surface) const { - ERR_FAIL_INDEX_V(p_surface, surfaces.size(), Array()); return RenderingServer::get_singleton()->mesh_surface_get_blend_shape_arrays(mesh, p_surface); } @@ -1172,21 +1117,17 @@ Dictionary ArrayMesh::surface_get_lods(int p_surface) const { } int ArrayMesh::get_surface_count() const { - return surfaces.size(); } void ArrayMesh::add_blend_shape(const StringName &p_name) { - ERR_FAIL_COND_MSG(surfaces.size(), "Can't add a shape key count if surfaces are already created."); StringName name = p_name; if (blend_shapes.find(name) != -1) { - int count = 2; do { - name = String(p_name) + " " + itos(count); count++; } while (blend_shapes.find(name) != -1); @@ -1197,7 +1138,6 @@ void ArrayMesh::add_blend_shape(const StringName &p_name) { } int ArrayMesh::get_blend_shape_count() const { - return blend_shapes.size(); } StringName ArrayMesh::get_blend_shape_name(int p_index) const { @@ -1205,14 +1145,12 @@ StringName ArrayMesh::get_blend_shape_name(int p_index) const { return blend_shapes[p_index]; } void ArrayMesh::clear_blend_shapes() { - ERR_FAIL_COND_MSG(surfaces.size(), "Can't set shape key count if surfaces are already created."); blend_shapes.clear(); } void ArrayMesh::set_blend_shape_mode(BlendShapeMode p_mode) { - blend_shape_mode = p_mode; if (mesh.is_valid()) { RS::get_singleton()->mesh_set_blend_shape_mode(mesh, (RS::BlendShapeMode)p_mode); @@ -1220,36 +1158,30 @@ void ArrayMesh::set_blend_shape_mode(BlendShapeMode p_mode) { } ArrayMesh::BlendShapeMode ArrayMesh::get_blend_shape_mode() const { - return blend_shape_mode; } int ArrayMesh::surface_get_array_len(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, surfaces.size(), -1); return surfaces[p_idx].array_length; } int ArrayMesh::surface_get_array_index_len(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, surfaces.size(), -1); return surfaces[p_idx].index_array_length; } uint32_t ArrayMesh::surface_get_format(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, surfaces.size(), 0); return surfaces[p_idx].format; } ArrayMesh::PrimitiveType ArrayMesh::surface_get_primitive_type(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, surfaces.size(), PRIMITIVE_LINES); return surfaces[p_idx].primitive; } void ArrayMesh::surface_set_material(int p_idx, const Ref<Material> &p_material) { - ERR_FAIL_INDEX(p_idx, surfaces.size()); if (surfaces[p_idx].material == p_material) return; @@ -1270,7 +1202,6 @@ int ArrayMesh::surface_find_by_name(const String &p_name) const { } void ArrayMesh::surface_set_name(int p_idx, const String &p_name) { - ERR_FAIL_INDEX(p_idx, surfaces.size()); surfaces.write[p_idx].name = p_name; @@ -1278,20 +1209,17 @@ void ArrayMesh::surface_set_name(int p_idx, const String &p_name) { } String ArrayMesh::surface_get_name(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, surfaces.size(), String()); return surfaces[p_idx].name; } void ArrayMesh::surface_update_region(int p_surface, int p_offset, const Vector<uint8_t> &p_data) { - ERR_FAIL_INDEX(p_surface, surfaces.size()); RS::get_singleton()->mesh_surface_update_region(mesh, p_surface, p_offset, p_data); emit_changed(); } void ArrayMesh::surface_set_custom_aabb(int p_idx, const AABB &p_aabb) { - ERR_FAIL_INDEX(p_idx, surfaces.size()); surfaces.write[p_idx].aabb = p_aabb; // set custom aabb too? @@ -1299,18 +1227,15 @@ void ArrayMesh::surface_set_custom_aabb(int p_idx, const AABB &p_aabb) { } Ref<Material> ArrayMesh::surface_get_material(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, surfaces.size(), Ref<Material>()); return surfaces[p_idx].material; } RID ArrayMesh::get_rid() const { - _create_if_empty(); return mesh; } AABB ArrayMesh::get_aabb() const { - return aabb; } @@ -1324,7 +1249,6 @@ void ArrayMesh::clear_surfaces() { } void ArrayMesh::set_custom_aabb(const AABB &p_custom) { - _create_if_empty(); custom_aabb = p_custom; RS::get_singleton()->mesh_set_custom_aabb(mesh, custom_aabb); @@ -1332,18 +1256,15 @@ void ArrayMesh::set_custom_aabb(const AABB &p_custom) { } AABB ArrayMesh::get_custom_aabb() const { - return custom_aabb; } void ArrayMesh::regen_normalmaps() { - if (surfaces.size() == 0) { return; } Vector<Ref<SurfaceTool>> surfs; for (int i = 0; i < get_surface_count(); i++) { - Ref<SurfaceTool> st = memnew(SurfaceTool); st->create_from(Ref<ArrayMesh>(this), i); surfs.push_back(st); @@ -1352,7 +1273,6 @@ void ArrayMesh::regen_normalmaps() { clear_surfaces(); for (int i = 0; i < surfs.size(); i++) { - surfs.write[i]->generate_tangents(); surfs.write[i]->commit(Ref<ArrayMesh>(this)); } @@ -1362,7 +1282,6 @@ void ArrayMesh::regen_normalmaps() { bool (*array_mesh_lightmap_unwrap_callback)(float p_texel_size, const float *p_vertices, const float *p_normals, int p_vertex_count, const int *p_indices, int p_index_count, float **r_uv, int **r_vertex, int *r_vertex_count, int **r_index, int *r_index_count, int *r_size_hint_x, int *r_size_hint_y, int *&r_cache_data, unsigned int &r_cache_size, bool &r_used_cache); struct ArrayMeshLightmapSurface { - Ref<Material> material; Vector<SurfaceTool::Vertex> vertices; Mesh::PrimitiveType primitive; @@ -1377,7 +1296,6 @@ Error ArrayMesh::lightmap_unwrap(const Transform &p_base_transform, float p_texe } Error ArrayMesh::lightmap_unwrap_cached(int *&r_cache_data, unsigned int &r_cache_size, bool &r_used_cache, const Transform &p_base_transform, float p_texel_size) { - ERR_FAIL_COND_V(!array_mesh_lightmap_unwrap_callback, ERR_UNCONFIGURED); ERR_FAIL_COND_V_MSG(blend_shapes.size() != 0, ERR_UNAVAILABLE, "Can't unwrap mesh with blend shapes."); @@ -1422,7 +1340,6 @@ Error ArrayMesh::lightmap_unwrap_cached(int *&r_cache_data, unsigned int &r_cach uv_indices.resize(vertex_ofs + vc); for (int j = 0; j < vc; j++) { - Vector3 v = transform.xform(r[j]); Vector3 n = normal_basis.xform(rn[j]).normalized(); @@ -1439,7 +1356,6 @@ Error ArrayMesh::lightmap_unwrap_cached(int *&r_cache_data, unsigned int &r_cach int ic = rindices.size(); if (ic == 0) { - for (int j = 0; j < vc / 3; j++) { if (Face3(r[j * 3 + 0], r[j * 3 + 1], r[j * 3 + 2]).is_degenerate()) continue; @@ -1497,7 +1413,6 @@ Error ArrayMesh::lightmap_unwrap_cached(int *&r_cache_data, unsigned int &r_cach print_verbose("Mesh: Gen indices: " + itos(gen_index_count)); //go through all indices for (int i = 0; i < gen_index_count; i += 3) { - ERR_FAIL_INDEX_V(gen_vertices[gen_indices[i + 0]], uv_indices.size(), ERR_BUG); ERR_FAIL_INDEX_V(gen_vertices[gen_indices[i + 1]], uv_indices.size(), ERR_BUG); ERR_FAIL_INDEX_V(gen_vertices[gen_indices[i + 2]], uv_indices.size(), ERR_BUG); @@ -1507,7 +1422,6 @@ Error ArrayMesh::lightmap_unwrap_cached(int *&r_cache_data, unsigned int &r_cach int surface = uv_indices[gen_vertices[gen_indices[i + 0]]].first; for (int j = 0; j < 3; j++) { - SurfaceTool::Vertex v = lightmap_surfaces[surface].vertices[uv_indices[gen_vertices[gen_indices[i + j]]].second]; if (lightmap_surfaces[surface].format & ARRAY_FORMAT_COLOR) { @@ -1559,7 +1473,6 @@ Error ArrayMesh::lightmap_unwrap_cached(int *&r_cache_data, unsigned int &r_cach } void ArrayMesh::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_blend_shape", "name"), &ArrayMesh::add_blend_shape); ClassDB::bind_method(D_METHOD("get_blend_shape_count"), &ArrayMesh::get_blend_shape_count); ClassDB::bind_method(D_METHOD("get_blend_shape_name", "index"), &ArrayMesh::get_blend_shape_name); @@ -1634,14 +1547,12 @@ void ArrayMesh::reload_from_file() { } ArrayMesh::ArrayMesh() { - //mesh is now created on demand //mesh = RenderingServer::get_singleton()->mesh_create(); blend_shape_mode = BLEND_SHAPE_MODE_RELATIVE; } ArrayMesh::~ArrayMesh() { - if (mesh.is_valid()) { RenderingServer::get_singleton()->free(mesh); } diff --git a/scene/resources/mesh.h b/scene/resources/mesh.h index 80cd57846b..44e4e78322 100644 --- a/scene/resources/mesh.h +++ b/scene/resources/mesh.h @@ -152,7 +152,6 @@ public: }; class ArrayMesh : public Mesh { - GDCLASS(ArrayMesh, Mesh); RES_BASE_EXTENSION("mesh"); diff --git a/scene/resources/mesh_data_tool.cpp b/scene/resources/mesh_data_tool.cpp index 76d96786bc..d428191f96 100644 --- a/scene/resources/mesh_data_tool.cpp +++ b/scene/resources/mesh_data_tool.cpp @@ -31,7 +31,6 @@ #include "mesh_data_tool.h" void MeshDataTool::clear() { - vertices.clear(); edges.clear(); faces.clear(); @@ -40,7 +39,6 @@ void MeshDataTool::clear() { } Error MeshDataTool::create_from_surface(const Ref<ArrayMesh> &p_mesh, int p_surface) { - ERR_FAIL_COND_V(p_mesh.is_null(), ERR_INVALID_PARAMETER); ERR_FAIL_COND_V(p_mesh->surface_get_primitive_type(p_surface) != Mesh::PRIMITIVE_TRIANGLES, ERR_INVALID_PARAMETER); @@ -88,7 +86,6 @@ Error MeshDataTool::create_from_surface(const Ref<ArrayMesh> &p_mesh, int p_surf vertices.resize(vcount); for (int i = 0; i < vcount; i++) { - Vertex v; v.vertex = vr[i]; if (nr) @@ -103,7 +100,6 @@ Error MeshDataTool::create_from_surface(const Ref<ArrayMesh> &p_mesh, int p_surf v.color = col[i]; if (we) { - v.weights.push_back(we[i * 4 + 0]); v.weights.push_back(we[i * 4 + 1]); v.weights.push_back(we[i * 4 + 2]); @@ -111,7 +107,6 @@ Error MeshDataTool::create_from_surface(const Ref<ArrayMesh> &p_mesh, int p_surf } if (bo) { - v.bones.push_back(bo[i * 4 + 0]); v.bones.push_back(bo[i * 4 + 1]); v.bones.push_back(bo[i * 4 + 2]); @@ -124,7 +119,6 @@ Error MeshDataTool::create_from_surface(const Ref<ArrayMesh> &p_mesh, int p_surf Vector<int> indices; if (arrays[Mesh::ARRAY_INDEX].get_type() != Variant::NIL) { - indices = arrays[Mesh::ARRAY_INDEX]; } else { //make code simpler @@ -140,14 +134,12 @@ Error MeshDataTool::create_from_surface(const Ref<ArrayMesh> &p_mesh, int p_surf Map<Point2i, int> edge_indices; for (int i = 0; i < icount; i += 3) { - Vertex *v[3] = { &vertices.write[r[i + 0]], &vertices.write[r[i + 1]], &vertices.write[r[i + 2]] }; int fidx = faces.size(); Face face; for (int j = 0; j < 3; j++) { - face.v[j] = r[i + j]; Point2i edge(r[i + j], r[i + (j + 1) % 3]); @@ -180,7 +172,6 @@ Error MeshDataTool::create_from_surface(const Ref<ArrayMesh> &p_mesh, int p_surf } Error MeshDataTool::commit_to_surface(const Ref<ArrayMesh> &p_mesh) { - ERR_FAIL_COND_V(p_mesh.is_null(), ERR_INVALID_PARAMETER); Array arr; arr.resize(Mesh::ARRAY_MAX); @@ -198,7 +189,6 @@ Error MeshDataTool::commit_to_surface(const Ref<ArrayMesh> &p_mesh) { Vector<int> in; { - v.resize(vcount); Vector3 *vr = v.ptrw(); @@ -245,7 +235,6 @@ Error MeshDataTool::commit_to_surface(const Ref<ArrayMesh> &p_mesh) { } for (int i = 0; i < vcount; i++) { - const Vertex &vtx = vertices[i]; vr[i] = vtx.vertex; @@ -265,7 +254,6 @@ Error MeshDataTool::commit_to_surface(const Ref<ArrayMesh> &p_mesh) { col[i] = vtx.color; if (we) { - we[i * 4 + 0] = vtx.weights[0]; we[i * 4 + 1] = vtx.weights[1]; we[i * 4 + 2] = vtx.weights[2]; @@ -273,7 +261,6 @@ Error MeshDataTool::commit_to_surface(const Ref<ArrayMesh> &p_mesh) { } if (bo) { - bo[i * 4 + 0] = vtx.bones[0]; bo[i * 4 + 1] = vtx.bones[1]; bo[i * 4 + 2] = vtx.bones[2]; @@ -285,7 +272,6 @@ Error MeshDataTool::commit_to_surface(const Ref<ArrayMesh> &p_mesh) { in.resize(fc * 3); int *iw = in.ptrw(); for (int i = 0; i < fc; i++) { - iw[i * 3 + 0] = faces[i].v[0]; iw[i * 3 + 1] = faces[i].v[1]; iw[i * 3 + 2] = faces[i].v[2]; @@ -318,108 +304,89 @@ Error MeshDataTool::commit_to_surface(const Ref<ArrayMesh> &p_mesh) { } int MeshDataTool::get_format() const { - return format; } int MeshDataTool::get_vertex_count() const { - return vertices.size(); } int MeshDataTool::get_edge_count() const { - return edges.size(); } int MeshDataTool::get_face_count() const { - return faces.size(); } Vector3 MeshDataTool::get_vertex(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector3()); return vertices[p_idx].vertex; } void MeshDataTool::set_vertex(int p_idx, const Vector3 &p_vertex) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].vertex = p_vertex; } Vector3 MeshDataTool::get_vertex_normal(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector3()); return vertices[p_idx].normal; } void MeshDataTool::set_vertex_normal(int p_idx, const Vector3 &p_normal) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].normal = p_normal; format |= Mesh::ARRAY_FORMAT_NORMAL; } Plane MeshDataTool::get_vertex_tangent(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Plane()); return vertices[p_idx].tangent; } void MeshDataTool::set_vertex_tangent(int p_idx, const Plane &p_tangent) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].tangent = p_tangent; format |= Mesh::ARRAY_FORMAT_TANGENT; } Vector2 MeshDataTool::get_vertex_uv(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector2()); return vertices[p_idx].uv; } void MeshDataTool::set_vertex_uv(int p_idx, const Vector2 &p_uv) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].uv = p_uv; format |= Mesh::ARRAY_FORMAT_TEX_UV; } Vector2 MeshDataTool::get_vertex_uv2(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector2()); return vertices[p_idx].uv2; } void MeshDataTool::set_vertex_uv2(int p_idx, const Vector2 &p_uv2) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].uv2 = p_uv2; format |= Mesh::ARRAY_FORMAT_TEX_UV2; } Color MeshDataTool::get_vertex_color(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Color()); return vertices[p_idx].color; } void MeshDataTool::set_vertex_color(int p_idx, const Color &p_color) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].color = p_color; format |= Mesh::ARRAY_FORMAT_COLOR; } Vector<int> MeshDataTool::get_vertex_bones(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector<int>()); return vertices[p_idx].bones; } void MeshDataTool::set_vertex_bones(int p_idx, const Vector<int> &p_bones) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].bones = p_bones; format |= Mesh::ARRAY_FORMAT_BONES; } Vector<float> MeshDataTool::get_vertex_weights(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector<float>()); return vertices[p_idx].weights; } @@ -430,75 +397,62 @@ void MeshDataTool::set_vertex_weights(int p_idx, const Vector<float> &p_weights) } Variant MeshDataTool::get_vertex_meta(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Variant()); return vertices[p_idx].meta; } void MeshDataTool::set_vertex_meta(int p_idx, const Variant &p_meta) { - ERR_FAIL_INDEX(p_idx, vertices.size()); vertices.write[p_idx].meta = p_meta; } Vector<int> MeshDataTool::get_vertex_edges(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector<int>()); return vertices[p_idx].edges; } Vector<int> MeshDataTool::get_vertex_faces(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, vertices.size(), Vector<int>()); return vertices[p_idx].faces; } int MeshDataTool::get_edge_vertex(int p_edge, int p_vertex) const { - ERR_FAIL_INDEX_V(p_edge, edges.size(), -1); ERR_FAIL_INDEX_V(p_vertex, 2, -1); return edges[p_edge].vertex[p_vertex]; } Vector<int> MeshDataTool::get_edge_faces(int p_edge) const { - ERR_FAIL_INDEX_V(p_edge, edges.size(), Vector<int>()); return edges[p_edge].faces; } Variant MeshDataTool::get_edge_meta(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, edges.size(), Variant()); return edges[p_idx].meta; } void MeshDataTool::set_edge_meta(int p_idx, const Variant &p_meta) { - ERR_FAIL_INDEX(p_idx, edges.size()); edges.write[p_idx].meta = p_meta; } int MeshDataTool::get_face_vertex(int p_face, int p_vertex) const { - ERR_FAIL_INDEX_V(p_face, faces.size(), -1); ERR_FAIL_INDEX_V(p_vertex, 3, -1); return faces[p_face].v[p_vertex]; } int MeshDataTool::get_face_edge(int p_face, int p_vertex) const { - ERR_FAIL_INDEX_V(p_face, faces.size(), -1); ERR_FAIL_INDEX_V(p_vertex, 3, -1); return faces[p_face].edges[p_vertex]; } Variant MeshDataTool::get_face_meta(int p_face) const { - ERR_FAIL_INDEX_V(p_face, faces.size(), Variant()); return faces[p_face].meta; } void MeshDataTool::set_face_meta(int p_face, const Variant &p_meta) { - ERR_FAIL_INDEX(p_face, faces.size()); faces.write[p_face].meta = p_meta; } Vector3 MeshDataTool::get_face_normal(int p_face) const { - ERR_FAIL_INDEX_V(p_face, faces.size(), Vector3()); Vector3 v0 = vertices[faces[p_face].v[0]].vertex; Vector3 v1 = vertices[faces[p_face].v[1]].vertex; @@ -508,17 +462,14 @@ Vector3 MeshDataTool::get_face_normal(int p_face) const { } Ref<Material> MeshDataTool::get_material() const { - return material; } void MeshDataTool::set_material(const Ref<Material> &p_material) { - material = p_material; } void MeshDataTool::_bind_methods() { - ClassDB::bind_method(D_METHOD("clear"), &MeshDataTool::clear); ClassDB::bind_method(D_METHOD("create_from_surface", "mesh", "surface"), &MeshDataTool::create_from_surface); ClassDB::bind_method(D_METHOD("commit_to_surface", "mesh"), &MeshDataTool::commit_to_surface); @@ -578,6 +529,5 @@ void MeshDataTool::_bind_methods() { } MeshDataTool::MeshDataTool() { - clear(); } diff --git a/scene/resources/mesh_data_tool.h b/scene/resources/mesh_data_tool.h index 5ac2c7e702..bf9f0dd25f 100644 --- a/scene/resources/mesh_data_tool.h +++ b/scene/resources/mesh_data_tool.h @@ -34,7 +34,6 @@ #include "scene/resources/mesh.h" class MeshDataTool : public Reference { - GDCLASS(MeshDataTool, Reference); int format; @@ -55,7 +54,6 @@ class MeshDataTool : public Reference { Vector<Vertex> vertices; struct Edge { - int vertex[2]; Vector<int> faces; Variant meta; @@ -64,7 +62,6 @@ class MeshDataTool : public Reference { Vector<Edge> edges; struct Face { - int v[3]; int edges[3]; Variant meta; diff --git a/scene/resources/mesh_library.cpp b/scene/resources/mesh_library.cpp index fffd192348..c0615d9b29 100644 --- a/scene/resources/mesh_library.cpp +++ b/scene/resources/mesh_library.cpp @@ -31,10 +31,8 @@ #include "mesh_library.h" bool MeshLibrary::_set(const StringName &p_name, const Variant &p_value) { - String name = p_name; if (name.begins_with("item/")) { - int idx = name.get_slicec('/', 1).to_int(); String what = name.get_slicec('/', 2); if (!item_map.has(idx)) @@ -68,7 +66,6 @@ bool MeshLibrary::_set(const StringName &p_name, const Variant &p_value) { } bool MeshLibrary::_get(const StringName &p_name, Variant &r_ret) const { - String name = p_name; int idx = name.get_slicec('/', 1).to_int(); ERR_FAIL_COND_V(!item_map.has(idx), false); @@ -93,9 +90,7 @@ bool MeshLibrary::_get(const StringName &p_name, Variant &r_ret) const { } void MeshLibrary::_get_property_list(List<PropertyInfo> *p_list) const { - for (Map<int, Item>::Element *E = item_map.front(); E; E = E->next()) { - String name = "item/" + itos(E->key()) + "/"; p_list->push_back(PropertyInfo(Variant::STRING, name + "name")); p_list->push_back(PropertyInfo(Variant::OBJECT, name + "mesh", PROPERTY_HINT_RESOURCE_TYPE, "Mesh")); @@ -108,7 +103,6 @@ void MeshLibrary::_get_property_list(List<PropertyInfo> *p_list) const { } void MeshLibrary::create_item(int p_item) { - ERR_FAIL_COND(p_item < 0); ERR_FAIL_COND(item_map.has(p_item)); item_map[p_item] = Item(); @@ -116,7 +110,6 @@ void MeshLibrary::create_item(int p_item) { } void MeshLibrary::set_item_name(int p_item, const String &p_name) { - ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map[p_item].name = p_name; emit_changed(); @@ -124,7 +117,6 @@ void MeshLibrary::set_item_name(int p_item, const String &p_name) { } void MeshLibrary::set_item_mesh(int p_item, const Ref<Mesh> &p_mesh) { - ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map[p_item].mesh = p_mesh; notify_change_to_owners(); @@ -133,7 +125,6 @@ void MeshLibrary::set_item_mesh(int p_item, const Ref<Mesh> &p_mesh) { } void MeshLibrary::set_item_shapes(int p_item, const Vector<ShapeData> &p_shapes) { - ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map[p_item].shapes = p_shapes; _change_notify(); @@ -143,7 +134,6 @@ void MeshLibrary::set_item_shapes(int p_item, const Vector<ShapeData> &p_shapes) } void MeshLibrary::set_item_navmesh(int p_item, const Ref<NavigationMesh> &p_navmesh) { - ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map[p_item].navmesh = p_navmesh; _change_notify(); @@ -153,7 +143,6 @@ void MeshLibrary::set_item_navmesh(int p_item, const Ref<NavigationMesh> &p_navm } void MeshLibrary::set_item_navmesh_transform(int p_item, const Transform &p_transform) { - ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map[p_item].navmesh_transform = p_transform; notify_change_to_owners(); @@ -162,7 +151,6 @@ void MeshLibrary::set_item_navmesh_transform(int p_item, const Transform &p_tran } void MeshLibrary::set_item_preview(int p_item, const Ref<Texture2D> &p_preview) { - ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map[p_item].preview = p_preview; emit_changed(); @@ -170,47 +158,39 @@ void MeshLibrary::set_item_preview(int p_item, const Ref<Texture2D> &p_preview) } String MeshLibrary::get_item_name(int p_item) const { - ERR_FAIL_COND_V_MSG(!item_map.has(p_item), "", "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); return item_map[p_item].name; } Ref<Mesh> MeshLibrary::get_item_mesh(int p_item) const { - ERR_FAIL_COND_V_MSG(!item_map.has(p_item), Ref<Mesh>(), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); return item_map[p_item].mesh; } Vector<MeshLibrary::ShapeData> MeshLibrary::get_item_shapes(int p_item) const { - ERR_FAIL_COND_V_MSG(!item_map.has(p_item), Vector<ShapeData>(), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); return item_map[p_item].shapes; } Ref<NavigationMesh> MeshLibrary::get_item_navmesh(int p_item) const { - ERR_FAIL_COND_V_MSG(!item_map.has(p_item), Ref<NavigationMesh>(), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); return item_map[p_item].navmesh; } Transform MeshLibrary::get_item_navmesh_transform(int p_item) const { - ERR_FAIL_COND_V_MSG(!item_map.has(p_item), Transform(), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); return item_map[p_item].navmesh_transform; } Ref<Texture2D> MeshLibrary::get_item_preview(int p_item) const { - ERR_FAIL_COND_V_MSG(!item_map.has(p_item), Ref<Texture2D>(), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); return item_map[p_item].preview; } bool MeshLibrary::has_item(int p_item) const { - return item_map.has(p_item); } void MeshLibrary::remove_item(int p_item) { - ERR_FAIL_COND_MSG(!item_map.has(p_item), "Requested for nonexistent MeshLibrary item '" + itos(p_item) + "'."); item_map.erase(p_item); notify_change_to_owners(); @@ -219,7 +199,6 @@ void MeshLibrary::remove_item(int p_item) { } void MeshLibrary::clear() { - item_map.clear(); notify_change_to_owners(); _change_notify(); @@ -227,12 +206,10 @@ void MeshLibrary::clear() { } Vector<int> MeshLibrary::get_item_list() const { - Vector<int> ret; ret.resize(item_map.size()); int idx = 0; for (Map<int, Item>::Element *E = item_map.front(); E; E = E->next()) { - ret.write[idx++] = E->key(); } @@ -240,9 +217,7 @@ Vector<int> MeshLibrary::get_item_list() const { } int MeshLibrary::find_item_by_name(const String &p_name) const { - for (Map<int, Item>::Element *E = item_map.front(); E; E = E->next()) { - if (E->get().name == p_name) return E->key(); } @@ -250,7 +225,6 @@ int MeshLibrary::find_item_by_name(const String &p_name) const { } int MeshLibrary::get_last_unused_item_id() const { - if (!item_map.size()) return 0; else @@ -258,7 +232,6 @@ int MeshLibrary::get_last_unused_item_id() const { } void MeshLibrary::_set_item_shapes(int p_item, const Array &p_shapes) { - ERR_FAIL_COND(p_shapes.size() & 1); Vector<ShapeData> shapes; for (int i = 0; i < p_shapes.size(); i += 2) { @@ -275,7 +248,6 @@ void MeshLibrary::_set_item_shapes(int p_item, const Array &p_shapes) { } Array MeshLibrary::_get_item_shapes(int p_item) const { - Vector<ShapeData> shapes = get_item_shapes(p_item); Array ret; for (int i = 0; i < shapes.size(); i++) { @@ -287,7 +259,6 @@ Array MeshLibrary::_get_item_shapes(int p_item) const { } void MeshLibrary::_bind_methods() { - ClassDB::bind_method(D_METHOD("create_item", "id"), &MeshLibrary::create_item); ClassDB::bind_method(D_METHOD("set_item_name", "id", "name"), &MeshLibrary::set_item_name); ClassDB::bind_method(D_METHOD("set_item_mesh", "id", "mesh"), &MeshLibrary::set_item_mesh); diff --git a/scene/resources/mesh_library.h b/scene/resources/mesh_library.h index 55001f2545..7b78398669 100644 --- a/scene/resources/mesh_library.h +++ b/scene/resources/mesh_library.h @@ -38,7 +38,6 @@ #include "shape_3d.h" class MeshLibrary : public Resource { - GDCLASS(MeshLibrary, Resource); RES_BASE_EXTENSION("meshlib"); diff --git a/scene/resources/multimesh.cpp b/scene/resources/multimesh.cpp index ce561bfaaf..795ec0df4b 100644 --- a/scene/resources/multimesh.cpp +++ b/scene/resources/multimesh.cpp @@ -48,7 +48,6 @@ void MultiMesh::_set_transform_array(const Vector<Vector3> &p_array) { const Vector3 *r = xforms.ptr(); for (int i = 0; i < len / 4; i++) { - Transform t; t.basis[0] = r[i * 4 + 0]; t.basis[1] = r[i * 4 + 1]; @@ -60,7 +59,6 @@ void MultiMesh::_set_transform_array(const Vector<Vector3> &p_array) { } Vector<Vector3> MultiMesh::_get_transform_array() const { - if (transform_format != TRANSFORM_3D) return Vector<Vector3>(); @@ -73,7 +71,6 @@ Vector<Vector3> MultiMesh::_get_transform_array() const { Vector3 *w = xforms.ptrw(); for (int i = 0; i < instance_count; i++) { - Transform t = get_instance_transform(i); w[i * 4 + 0] = t.basis[0]; w[i * 4 + 1] = t.basis[1]; @@ -85,7 +82,6 @@ Vector<Vector3> MultiMesh::_get_transform_array() const { } void MultiMesh::_set_transform_2d_array(const Vector<Vector2> &p_array) { - if (transform_format != TRANSFORM_2D) return; @@ -98,7 +94,6 @@ void MultiMesh::_set_transform_2d_array(const Vector<Vector2> &p_array) { const Vector2 *r = xforms.ptr(); for (int i = 0; i < len / 3; i++) { - Transform2D t; t.elements[0] = r[i * 3 + 0]; t.elements[1] = r[i * 3 + 1]; @@ -109,7 +104,6 @@ void MultiMesh::_set_transform_2d_array(const Vector<Vector2> &p_array) { } Vector<Vector2> MultiMesh::_get_transform_2d_array() const { - if (transform_format != TRANSFORM_2D) return Vector<Vector2>(); @@ -122,7 +116,6 @@ Vector<Vector2> MultiMesh::_get_transform_2d_array() const { Vector2 *w = xforms.ptrw(); for (int i = 0; i < instance_count; i++) { - Transform2D t = get_instance_transform_2d(i); w[i * 3 + 0] = t.elements[0]; w[i * 3 + 1] = t.elements[1]; @@ -133,7 +126,6 @@ Vector<Vector2> MultiMesh::_get_transform_2d_array() const { } void MultiMesh::_set_color_array(const Vector<Color> &p_array) { - const Vector<Color> &colors = p_array; int len = colors.size(); if (len == 0) @@ -143,13 +135,11 @@ void MultiMesh::_set_color_array(const Vector<Color> &p_array) { const Color *r = colors.ptr(); for (int i = 0; i < len; i++) { - set_instance_color(i, r[i]); } } Vector<Color> MultiMesh::_get_color_array() const { - if (instance_count == 0 || !use_colors) return Vector<Color>(); @@ -157,7 +147,6 @@ Vector<Color> MultiMesh::_get_color_array() const { colors.resize(instance_count); for (int i = 0; i < instance_count; i++) { - colors.set(i, get_instance_color(i)); } @@ -165,7 +154,6 @@ Vector<Color> MultiMesh::_get_color_array() const { } void MultiMesh::_set_custom_data_array(const Vector<Color> &p_array) { - const Vector<Color> &custom_datas = p_array; int len = custom_datas.size(); if (len == 0) @@ -175,13 +163,11 @@ void MultiMesh::_set_custom_data_array(const Vector<Color> &p_array) { const Color *r = custom_datas.ptr(); for (int i = 0; i < len; i++) { - set_instance_custom_data(i, r[i]); } } Vector<Color> MultiMesh::_get_custom_data_array() const { - if (instance_count == 0 || !use_custom_data) return Vector<Color>(); @@ -189,7 +175,6 @@ Vector<Color> MultiMesh::_get_custom_data_array() const { custom_datas.resize(instance_count); for (int i = 0; i < instance_count; i++) { - custom_datas.set(i, get_instance_custom_data(i)); } @@ -206,7 +191,6 @@ Vector<float> MultiMesh::get_buffer() const { } void MultiMesh::set_mesh(const Ref<Mesh> &p_mesh) { - mesh = p_mesh; if (!mesh.is_null()) RenderingServer::get_singleton()->multimesh_set_mesh(multimesh, mesh->get_rid()); @@ -215,7 +199,6 @@ void MultiMesh::set_mesh(const Ref<Mesh> &p_mesh) { } Ref<Mesh> MultiMesh::get_mesh() const { - return mesh; } @@ -225,7 +208,6 @@ void MultiMesh::set_instance_count(int p_count) { instance_count = p_count; } int MultiMesh::get_instance_count() const { - return instance_count; } @@ -236,55 +218,44 @@ void MultiMesh::set_visible_instance_count(int p_count) { visible_instance_count = p_count; } int MultiMesh::get_visible_instance_count() const { - return visible_instance_count; } void MultiMesh::set_instance_transform(int p_instance, const Transform &p_transform) { - RenderingServer::get_singleton()->multimesh_instance_set_transform(multimesh, p_instance, p_transform); } void MultiMesh::set_instance_transform_2d(int p_instance, const Transform2D &p_transform) { - RenderingServer::get_singleton()->multimesh_instance_set_transform_2d(multimesh, p_instance, p_transform); } Transform MultiMesh::get_instance_transform(int p_instance) const { - return RenderingServer::get_singleton()->multimesh_instance_get_transform(multimesh, p_instance); } Transform2D MultiMesh::get_instance_transform_2d(int p_instance) const { - return RenderingServer::get_singleton()->multimesh_instance_get_transform_2d(multimesh, p_instance); } void MultiMesh::set_instance_color(int p_instance, const Color &p_color) { - RenderingServer::get_singleton()->multimesh_instance_set_color(multimesh, p_instance, p_color); } Color MultiMesh::get_instance_color(int p_instance) const { - return RenderingServer::get_singleton()->multimesh_instance_get_color(multimesh, p_instance); } void MultiMesh::set_instance_custom_data(int p_instance, const Color &p_custom_data) { - RenderingServer::get_singleton()->multimesh_instance_set_custom_data(multimesh, p_instance, p_custom_data); } Color MultiMesh::get_instance_custom_data(int p_instance) const { - return RenderingServer::get_singleton()->multimesh_instance_get_custom_data(multimesh, p_instance); } AABB MultiMesh::get_aabb() const { - return RenderingServer::get_singleton()->multimesh_get_aabb(multimesh); } RID MultiMesh::get_rid() const { - return multimesh; } @@ -307,17 +278,14 @@ bool MultiMesh::is_using_custom_data() const { } void MultiMesh::set_transform_format(TransformFormat p_transform_format) { - ERR_FAIL_COND(instance_count > 0); transform_format = p_transform_format; } MultiMesh::TransformFormat MultiMesh::get_transform_format() const { - return transform_format; } void MultiMesh::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_mesh", "mesh"), &MultiMesh::set_mesh); ClassDB::bind_method(D_METHOD("get_mesh"), &MultiMesh::get_mesh); ClassDB::bind_method(D_METHOD("set_use_colors", "enable"), &MultiMesh::set_use_colors); @@ -374,7 +342,6 @@ void MultiMesh::_bind_methods() { } MultiMesh::MultiMesh() { - multimesh = RenderingServer::get_singleton()->multimesh_create(); use_colors = false; use_custom_data = false; @@ -384,6 +351,5 @@ MultiMesh::MultiMesh() { } MultiMesh::~MultiMesh() { - RenderingServer::get_singleton()->free(multimesh); } diff --git a/scene/resources/multimesh.h b/scene/resources/multimesh.h index c1e52bc981..8478789d41 100644 --- a/scene/resources/multimesh.h +++ b/scene/resources/multimesh.h @@ -35,7 +35,6 @@ #include "servers/rendering_server.h" class MultiMesh : public Resource { - GDCLASS(MultiMesh, Resource); RES_BASE_EXTENSION("multimesh"); diff --git a/scene/resources/navigation_mesh.cpp b/scene/resources/navigation_mesh.cpp index e0aff2182e..f5d3c7a3fb 100644 --- a/scene/resources/navigation_mesh.cpp +++ b/scene/resources/navigation_mesh.cpp @@ -31,12 +31,10 @@ #include "navigation_mesh.h" void NavigationMesh::create_from_mesh(const Ref<Mesh> &p_mesh) { - vertices = Vector<Vector3>(); clear_polygons(); for (int i = 0; i < p_mesh->get_surface_count(); i++) { - if (p_mesh->surface_get_primitive_type(i) != Mesh::PRIMITIVE_TRIANGLES) continue; Array arr = p_mesh->surface_get_arrays(i); @@ -82,17 +80,14 @@ int NavigationMesh::get_parsed_geometry_type() const { } void NavigationMesh::set_collision_mask(uint32_t p_mask) { - collision_mask = p_mask; } uint32_t NavigationMesh::get_collision_mask() const { - return collision_mask; } void NavigationMesh::set_collision_mask_bit(int p_bit, bool p_value) { - uint32_t mask = get_collision_mask(); if (p_value) mask |= 1 << p_bit; @@ -102,7 +97,6 @@ void NavigationMesh::set_collision_mask_bit(int p_bit, bool p_value) { } bool NavigationMesh::get_collision_mask_bit(int p_bit) const { - return get_collision_mask() & (1 << p_bit); } @@ -253,18 +247,15 @@ bool NavigationMesh::get_filter_walkable_low_height_spans() const { } void NavigationMesh::set_vertices(const Vector<Vector3> &p_vertices) { - vertices = p_vertices; _change_notify(); } Vector<Vector3> NavigationMesh::get_vertices() const { - return vertices; } void NavigationMesh::_set_polygons(const Array &p_array) { - polygons.resize(p_array.size()); for (int i = 0; i < p_array.size(); i++) { polygons.write[i].indices = p_array[i]; @@ -273,7 +264,6 @@ void NavigationMesh::_set_polygons(const Array &p_array) { } Array NavigationMesh::_get_polygons() const { - Array ret; ret.resize(polygons.size()); for (int i = 0; i < ret.size(); i++) { @@ -284,28 +274,23 @@ Array NavigationMesh::_get_polygons() const { } void NavigationMesh::add_polygon(const Vector<int> &p_polygon) { - Polygon polygon; polygon.indices = p_polygon; polygons.push_back(polygon); _change_notify(); } int NavigationMesh::get_polygon_count() const { - return polygons.size(); } Vector<int> NavigationMesh::get_polygon(int p_idx) { - ERR_FAIL_INDEX_V(p_idx, polygons.size(), Vector<int>()); return polygons[p_idx].indices; } void NavigationMesh::clear_polygons() { - polygons.clear(); } Ref<Mesh> NavigationMesh::get_debug_mesh() { - if (debug_mesh.is_valid()) return debug_mesh; @@ -334,11 +319,9 @@ Ref<Mesh> NavigationMesh::get_debug_mesh() { int tidx = 0; for (List<Face3>::Element *E = faces.front(); E; E = E->next()) { - const Face3 &f = E->get(); for (int j = 0; j < 3; j++) { - tw[tidx++] = f.vertex[j]; _EdgeKey ek; ek.from = f.vertex[j].snapped(Vector3(CMP_EPSILON, CMP_EPSILON, CMP_EPSILON)); @@ -349,11 +332,9 @@ Ref<Mesh> NavigationMesh::get_debug_mesh() { Map<_EdgeKey, bool>::Element *F = edge_map.find(ek); if (F) { - F->get() = false; } else { - edge_map[ek] = true; } } @@ -362,7 +343,6 @@ Ref<Mesh> NavigationMesh::get_debug_mesh() { List<Vector3> lines; for (Map<_EdgeKey, bool>::Element *E = edge_map.front(); E; E = E->next()) { - if (E->get()) { lines.push_back(E->key().from); lines.push_back(E->key().to); diff --git a/scene/resources/navigation_mesh.h b/scene/resources/navigation_mesh.h index cc3ac6e3fd..6b9d1964f5 100644 --- a/scene/resources/navigation_mesh.h +++ b/scene/resources/navigation_mesh.h @@ -36,7 +36,6 @@ class Mesh; class NavigationMesh : public Resource { - GDCLASS(NavigationMesh, Resource); Vector<Vector3> vertices; @@ -47,7 +46,6 @@ class NavigationMesh : public Resource { Ref<ArrayMesh> debug_mesh; struct _EdgeKey { - Vector3 from; Vector3 to; diff --git a/scene/resources/packed_scene.cpp b/scene/resources/packed_scene.cpp index 633771506e..199f0e3989 100644 --- a/scene/resources/packed_scene.cpp +++ b/scene/resources/packed_scene.cpp @@ -42,12 +42,10 @@ #define PACKED_SCENE_VERSION 2 bool SceneState::can_instance() const { - return nodes.size() > 0; } Node *SceneState::instance(GenEditState p_edit_state) const { - // nodes where instancing failed (because something is missing) List<Node *> stray_instances; @@ -85,18 +83,15 @@ Node *SceneState::instance(GenEditState p_edit_state) const { Map<Ref<Resource>, Ref<Resource>> resources_local_to_scene; for (int i = 0; i < nc; i++) { - const NodeData &n = nd[i]; Node *parent = nullptr; if (i > 0) { - ERR_FAIL_COND_V_MSG(n.parent == -1, nullptr, vformat("Invalid scene: node %s does not specify its parent node.", snames[n.name])); NODE_FROM_ID(nparent, n.parent); #ifdef DEBUG_ENABLED if (!nparent && (n.parent & FLAG_ID_IS_PATH)) { - WARN_PRINT(String("Parent path '" + String(node_paths[n.parent & FLAG_MASK]) + "' for node '" + String(snames[n.name]) + "' has vanished when instancing: '" + get_path() + "'.").ascii().get_data()); } #endif @@ -118,10 +113,8 @@ Node *SceneState::instance(GenEditState p_edit_state) const { } else if (n.instance >= 0) { //instance a scene into this node if (n.instance & FLAG_INSTANCE_IS_PLACEHOLDER) { - String path = props[n.instance & FLAG_MASK]; if (disable_placeholders) { - Ref<PackedScene> sdata = ResourceLoader::load(path, "PackedScene"); ERR_FAIL_COND_V(!sdata.is_valid(), nullptr); node = sdata->instance(p_edit_state == GEN_EDIT_STATE_DISABLED ? PackedScene::GEN_EDIT_STATE_DISABLED : PackedScene::GEN_EDIT_STATE_INSTANCE); @@ -187,11 +180,9 @@ Node *SceneState::instance(GenEditState p_edit_state) const { //properties int nprop_count = n.properties.size(); if (nprop_count) { - const NodeData::Property *nprops = &n.properties[0]; for (int j = 0; j < nprop_count; j++) { - bool valid; ERR_FAIL_INDEX_V(nprops[j].name, sname_count, nullptr); ERR_FAIL_INDEX_V(nprops[j].value, prop_count, nullptr); @@ -213,7 +204,6 @@ Node *SceneState::instance(GenEditState p_edit_state) const { node->set(E->get().first, E->get().second); } } else { - Variant value = props[nprops[j].value]; if (value.get_type() == Variant::OBJECT) { @@ -221,13 +211,11 @@ Node *SceneState::instance(GenEditState p_edit_state) const { Ref<Resource> res = value; if (res.is_valid()) { if (res->is_local_to_scene()) { - Map<Ref<Resource>, Ref<Resource>>::Element *E = resources_local_to_scene.find(res); if (E) { value = E->get(); } else { - Node *base = i == 0 ? node : ret_nodes[0]; if (p_edit_state == GEN_EDIT_STATE_MAIN) { @@ -259,7 +247,6 @@ Node *SceneState::instance(GenEditState p_edit_state) const { //groups for (int j = 0; j < n.groups.size(); j++) { - ERR_FAIL_INDEX_V(n.groups[j], sname_count, nullptr); node->add_to_group(snames[n.groups[j]], true); } @@ -287,7 +274,6 @@ Node *SceneState::instance(GenEditState p_edit_state) const { } if (n.owner >= 0) { - NODE_FROM_ID(owner, n.owner); if (owner) node->_set_owner_nocheck(owner); @@ -303,7 +289,6 @@ Node *SceneState::instance(GenEditState p_edit_state) const { } for (Map<Ref<Resource>, Ref<Resource>>::Element *E = resources_local_to_scene.front(); E; E = E->next()) { - E->get()->setup_local_to_scene(); } @@ -313,7 +298,6 @@ Node *SceneState::instance(GenEditState p_edit_state) const { const ConnectionData *cdata = connections.ptr(); for (int i = 0; i < cc; i++) { - const ConnectionData &c = cdata[i]; //ERR_FAIL_INDEX_V( c.from, nc, nullptr ); //ERR_FAIL_INDEX_V( c.to, nc, nullptr ); @@ -353,7 +337,6 @@ Node *SceneState::instance(GenEditState p_edit_state) const { } static int _nm_get_string(const String &p_string, Map<StringName, int> &name_map) { - if (name_map.has(p_string)) return name_map[p_string]; @@ -363,7 +346,6 @@ static int _nm_get_string(const String &p_string, Map<StringName, int> &name_map } static int _vm_get_variant(const Variant &p_variant, HashMap<Variant, int, VariantHasher, VariantComparator> &variant_map) { - if (variant_map.has(p_variant)) return variant_map[p_variant]; @@ -373,7 +355,6 @@ static int _vm_get_variant(const Variant &p_variant, HashMap<Variant, int, Varia } Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map<StringName, int> &name_map, HashMap<Variant, int, VariantHasher, VariantComparator> &variant_map, Map<Node *, int> &node_map, Map<Node *, int> &nodepath_map) { - // this function handles all the work related to properly packing scenes, be it // instanced or inherited. // given the complexity of this process, an attempt will be made to properly @@ -418,9 +399,7 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map Node *n = p_node; while (n) { - if (n == p_owner) { - Ref<SceneState> state = n->get_scene_inherited_state(); if (state.is_valid()) { int node = state->find_node_by_path(n->get_path_to(p_node)); @@ -435,7 +414,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map } if (p_node->get_filename() != String() && p_node->get_owner() == p_owner && instanced_by_owner) { - if (p_node->get_scene_instance_load_placeholder()) { //it's a placeholder, use the placeholder path nd.instance = _vm_get_variant(p_node->get_filename(), variant_map); @@ -479,7 +457,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map StringName type = p_node->get_class(); for (List<PropertyInfo>::Element *E = plist.front(); E; E = E->next()) { - if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) { continue; } @@ -530,7 +507,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map } if (exists) { - //check if already exists and did not change if (value.get_type() == Variant::FLOAT && original.get_type() == Variant::FLOAT) { //this must be done because, as some scenes save as text, there might be a tiny difference in floats due to numerical error @@ -540,7 +516,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map if (Math::is_equal_approx(a, b)) continue; } else if (bool(Variant::evaluate(Variant::OP_EQUAL, value, original))) { - continue; } } @@ -552,7 +527,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map } } else { - if (isdefault) { //it's the default value, no point in saving it continue; @@ -608,7 +582,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map //part of saved scene nd.owner = 0; } else { - nd.owner = -1; } @@ -637,14 +610,12 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map int parent_node = NO_PARENT_SAVED; if (save_node) { - //don't save the node if nothing and subscene node_map[p_node] = idx; //ok validate parent node if (p_parent_idx == NO_PARENT_SAVED) { - int sidx; if (nodepath_map.has(p_node->get_parent())) { sidx = nodepath_map[p_node->get_parent()]; @@ -663,7 +634,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map } for (int i = 0; i < p_node->get_child_count(); i++) { - Node *c = p_node->get_child(i); Error err = _parse_node(p_owner, c, parent_node, name_map, variant_map, node_map, nodepath_map); if (err) @@ -674,7 +644,6 @@ Error SceneState::_parse_node(Node *p_owner, Node *p_node, int p_parent_idx, Map } Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName, int> &name_map, HashMap<Variant, int, VariantHasher, VariantComparator> &variant_map, Map<Node *, int> &node_map, Map<Node *, int> &nodepath_map) { - if (p_node != p_owner && p_node->get_owner() && p_node->get_owner() != p_owner && !p_owner->is_editable_instance(p_node->get_owner())) return OK; @@ -686,14 +655,12 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName //NodeData &nd = nodes[node_map[p_node]]; for (List<MethodInfo>::Element *E = _signals.front(); E; E = E->next()) { - List<Node::Connection> conns; p_node->get_signal_connection_list(E->get().name, &conns); conns.sort(); for (List<Node::Connection>::Element *F = conns.front(); F; F = F->next()) { - const Node::Connection &c = F->get(); if (!(c.flags & CONNECT_PERSIST)) //only persistent connections get saved @@ -721,7 +688,6 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName //go through ownership chain to see if this exists while (common_parent) { - Ref<SceneState> ps; if (common_parent == p_owner) @@ -730,7 +696,6 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName ps = common_parent->get_scene_instance_state(); if (ps.is_valid()) { - NodePath signal_from = common_parent->get_path_to(p_node); NodePath signal_to = common_parent->get_path_to(target); @@ -756,9 +721,7 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName bool exists2 = false; while (nl) { - if (nl == p_owner) { - Ref<SceneState> state = nl->get_scene_inherited_state(); if (state.is_valid()) { int from_node = state->find_node_by_path(nl->get_path_to(p_node)); @@ -835,7 +798,6 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName cd.signal = _nm_get_string(c.signal.get_name(), name_map); cd.flags = c.flags; for (int i = 0; i < c.binds.size(); i++) { - cd.binds.push_back(_vm_get_variant(c.binds[i], variant_map)); } connections.push_back(cd); @@ -843,7 +805,6 @@ Error SceneState::_parse_connections(Node *p_owner, Node *p_node, Map<StringName } for (int i = 0; i < p_node->get_child_count(); i++) { - Node *c = p_node->get_child(i); Error err = _parse_connections(p_owner, c, name_map, variant_map, node_map, nodepath_map); if (err) @@ -870,7 +831,6 @@ Error SceneState::pack(Node *p_scene) { String path = scene->get_scene_inherited_state()->get_path(); Ref<PackedScene> instance = ResourceLoader::load(path); if (instance.is_valid()) { - base_scene_idx = _vm_get_variant(instance, variant_map); } } @@ -891,21 +851,18 @@ Error SceneState::pack(Node *p_scene) { names.resize(name_map.size()); for (Map<StringName, int>::Element *E = name_map.front(); E; E = E->next()) { - names.write[E->get()] = E->key(); } variants.resize(variant_map.size()); const Variant *K = nullptr; while ((K = variant_map.next(K))) { - int idx = variant_map[*K]; variants.write[idx] = *K; } node_paths.resize(nodepath_map.size()); for (Map<Node *, int>::Element *E = nodepath_map.front(); E; E = E->next()) { - node_paths.write[E->get()] = scene->get_path_to(E->key()); } @@ -913,17 +870,14 @@ Error SceneState::pack(Node *p_scene) { } void SceneState::set_path(const String &p_path) { - path = p_path; } String SceneState::get_path() const { - return path; } void SceneState::clear() { - names.clear(); variants.clear(); nodes.clear(); @@ -935,9 +889,7 @@ void SceneState::clear() { } Ref<SceneState> SceneState::_get_base_scene_state() const { - if (base_scene_idx >= 0) { - Ref<PackedScene> ps = variants[base_scene_idx]; if (ps.is_valid()) { return ps->get_state(); @@ -948,7 +900,6 @@ Ref<SceneState> SceneState::_get_base_scene_state() const { } int SceneState::find_node_by_path(const NodePath &p_node) const { - if (!node_path_cache.has(p_node)) { if (_get_base_scene_state().is_valid()) { int idx = _get_base_scene_state()->find_node_by_path(p_node); @@ -980,7 +931,6 @@ int SceneState::find_node_by_path(const NodePath &p_node) const { } int SceneState::_find_base_scene_node_remap_key(int p_idx) const { - for (Map<int, int>::Element *E = base_scene_node_remap.front(); E; E = E->next()) { if (E->value() == p_idx) { return E->key(); @@ -990,7 +940,6 @@ int SceneState::_find_base_scene_node_remap_key(int p_idx) const { } Variant SceneState::get_property_value(int p_node, const StringName &p_property, bool &found) const { - found = false; ERR_FAIL_COND_V(p_node < 0, Variant()); @@ -1019,7 +968,6 @@ Variant SceneState::get_property_value(int p_node, const StringName &p_property, } bool SceneState::is_node_in_group(int p_node, const StringName &p_group) const { - ERR_FAIL_COND_V(p_node < 0, false); if (p_node < nodes.size()) { @@ -1040,17 +988,14 @@ bool SceneState::is_node_in_group(int p_node, const StringName &p_group) const { bool SceneState::disable_placeholders = false; void SceneState::set_disable_placeholders(bool p_disable) { - disable_placeholders = p_disable; } bool SceneState::is_connection(int p_node, const StringName &p_signal, int p_to_node, const StringName &p_to_method) const { - ERR_FAIL_COND_V(p_node < 0, false); ERR_FAIL_COND_V(p_to_node < 0, false); if (p_node < nodes.size() && p_to_node < nodes.size()) { - int signal_idx = -1; int method_idx = -1; for (int i = 0; i < names.size(); i++) { @@ -1065,9 +1010,7 @@ bool SceneState::is_connection(int p_node, const StringName &p_signal, int p_to_ //signal and method strings are stored.. for (int i = 0; i < connections.size(); i++) { - if (connections[i].from == p_node && connections[i].to == p_to_node && connections[i].signal == signal_idx && connections[i].method == method_idx) { - return true; } } @@ -1082,7 +1025,6 @@ bool SceneState::is_connection(int p_node, const StringName &p_signal, int p_to_ } void SceneState::set_bundled_scene(const Dictionary &p_dictionary) { - ERR_FAIL_COND(!p_dictionary.has("names")); ERR_FAIL_COND(!p_dictionary.has("variants")); ERR_FAIL_COND(!p_dictionary.has("node_count")); @@ -1107,7 +1049,6 @@ void SceneState::set_bundled_scene(const Dictionary &p_dictionary) { Vector<String> snames = p_dictionary["names"]; if (snames.size()) { - int namecount = snames.size(); names.resize(namecount); const String *r = snames.ptr(); @@ -1121,7 +1062,6 @@ void SceneState::set_bundled_scene(const Dictionary &p_dictionary) { int varcount = svariants.size(); variants.resize(varcount); for (int i = 0; i < varcount; i++) { - variants.write[i] = svariants[i]; } @@ -1145,13 +1085,11 @@ void SceneState::set_bundled_scene(const Dictionary &p_dictionary) { nd.instance = r[idx++]; nd.properties.resize(r[idx++]); for (int j = 0; j < nd.properties.size(); j++) { - nd.properties.write[j].name = r[idx++]; nd.properties.write[j].value = r[idx++]; } nd.groups.resize(r[idx++]); for (int j = 0; j < nd.groups.size(); j++) { - nd.groups.write[j] = r[idx++]; } } @@ -1171,7 +1109,6 @@ void SceneState::set_bundled_scene(const Dictionary &p_dictionary) { cd.binds.resize(r[idx++]); for (int j = 0; j < cd.binds.size(); j++) { - cd.binds.write[j] = r[idx++]; } } @@ -1204,12 +1141,10 @@ void SceneState::set_bundled_scene(const Dictionary &p_dictionary) { } Dictionary SceneState::get_bundled_scene() const { - Vector<String> rnames; rnames.resize(names.size()); if (names.size()) { - String *r = rnames.ptrw(); for (int i = 0; i < names.size(); i++) @@ -1224,7 +1159,6 @@ Dictionary SceneState::get_bundled_scene() const { d["node_count"] = nodes.size(); for (int i = 0; i < nodes.size(); i++) { - const NodeData &nd = nodes[i]; rnodes.push_back(nd.parent); rnodes.push_back(nd.owner); @@ -1237,13 +1171,11 @@ Dictionary SceneState::get_bundled_scene() const { rnodes.push_back(nd.instance); rnodes.push_back(nd.properties.size()); for (int j = 0; j < nd.properties.size(); j++) { - rnodes.push_back(nd.properties[j].name); rnodes.push_back(nd.properties[j].value); } rnodes.push_back(nd.groups.size()); for (int j = 0; j < nd.groups.size(); j++) { - rnodes.push_back(nd.groups[j]); } } @@ -1254,7 +1186,6 @@ Dictionary SceneState::get_bundled_scene() const { d["conn_count"] = connections.size(); for (int i = 0; i < connections.size(); i++) { - const ConnectionData &cd = connections[i]; rconns.push_back(cd.from); rconns.push_back(cd.to); @@ -1291,12 +1222,10 @@ Dictionary SceneState::get_bundled_scene() const { } int SceneState::get_node_count() const { - return nodes.size(); } StringName SceneState::get_node_type(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, nodes.size(), StringName()); if (nodes[p_idx].type == TYPE_INSTANCED) return StringName(); @@ -1304,7 +1233,6 @@ StringName SceneState::get_node_type(int p_idx) const { } StringName SceneState::get_node_name(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, nodes.size(), StringName()); return names[nodes[p_idx].name]; } @@ -1315,7 +1243,6 @@ int SceneState::get_node_index(int p_idx) const { } bool SceneState::is_node_instance_placeholder(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, nodes.size(), false); return nodes[p_idx].instance >= 0 && (nodes[p_idx].instance & FLAG_INSTANCE_IS_PLACEHOLDER); @@ -1330,7 +1257,6 @@ Ref<PackedScene> SceneState::get_node_instance(int p_idx) const { else return variants[nodes[p_idx].instance & FLAG_MASK]; } else if (nodes[p_idx].parent < 0 || nodes[p_idx].parent == NO_PARENT_SAVED) { - if (base_scene_idx >= 0) { return variants[base_scene_idx]; } @@ -1340,7 +1266,6 @@ Ref<PackedScene> SceneState::get_node_instance(int p_idx) const { } String SceneState::get_node_instance_placeholder(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, nodes.size(), String()); if (nodes[p_idx].instance >= 0 && (nodes[p_idx].instance & FLAG_INSTANCE_IS_PLACEHOLDER)) { @@ -1360,7 +1285,6 @@ Vector<StringName> SceneState::get_node_groups(int p_idx) const { } NodePath SceneState::get_node_path(int p_idx, bool p_for_parent) const { - ERR_FAIL_INDEX_V(p_idx, nodes.size(), NodePath()); if (nodes[p_idx].parent < 0 || nodes[p_idx].parent == NO_PARENT_SAVED) { @@ -1376,7 +1300,6 @@ NodePath SceneState::get_node_path(int p_idx, bool p_for_parent) const { int nidx = p_idx; while (true) { if (nodes[nidx].parent == NO_PARENT_SAVED || nodes[nidx].parent < 0) { - sub_path.insert(0, "."); break; } @@ -1405,7 +1328,6 @@ NodePath SceneState::get_node_path(int p_idx, bool p_for_parent) const { } int SceneState::get_node_property_count(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, nodes.size(), -1); return nodes[p_idx].properties.size(); } @@ -1422,7 +1344,6 @@ Variant SceneState::get_node_property_value(int p_idx, int p_prop) const { } NodePath SceneState::get_node_owner_path(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, nodes.size(), NodePath()); if (nodes[p_idx].owner < 0 || nodes[p_idx].owner == NO_PARENT_SAVED) return NodePath(); //root likely @@ -1434,11 +1355,9 @@ NodePath SceneState::get_node_owner_path(int p_idx) const { } int SceneState::get_connection_count() const { - return connections.size(); } NodePath SceneState::get_connection_source(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, connections.size(), NodePath()); if (connections[p_idx].from & FLAG_ID_IS_PATH) { return node_paths[connections[p_idx].from & FLAG_MASK]; @@ -1448,12 +1367,10 @@ NodePath SceneState::get_connection_source(int p_idx) const { } StringName SceneState::get_connection_signal(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, connections.size(), StringName()); return names[connections[p_idx].signal]; } NodePath SceneState::get_connection_target(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, connections.size(), NodePath()); if (connections[p_idx].to & FLAG_ID_IS_PATH) { return node_paths[connections[p_idx].to & FLAG_MASK]; @@ -1462,19 +1379,16 @@ NodePath SceneState::get_connection_target(int p_idx) const { } } StringName SceneState::get_connection_method(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, connections.size(), StringName()); return names[connections[p_idx].method]; } int SceneState::get_connection_flags(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, connections.size(), -1); return connections[p_idx].flags; } Array SceneState::get_connection_binds(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, connections.size(), Array()); Array binds; for (int i = 0; i < connections[p_idx].binds.size(); i++) { @@ -1484,7 +1398,6 @@ Array SceneState::get_connection_binds(int p_idx) const { } bool SceneState::has_connection(const NodePath &p_node_from, const StringName &p_signal, const NodePath &p_node_to, const StringName &p_method) { - // this method cannot be const because of this Ref<SceneState> ss = this; @@ -1528,13 +1441,11 @@ Vector<NodePath> SceneState::get_editable_instances() const { //add int SceneState::add_name(const StringName &p_name) { - names.push_back(p_name); return names.size() - 1; } int SceneState::find_name(const StringName &p_name) const { - for (int i = 0; i < names.size(); i++) { if (names[i] == p_name) return i; @@ -1544,18 +1455,15 @@ int SceneState::find_name(const StringName &p_name) const { } int SceneState::add_value(const Variant &p_value) { - variants.push_back(p_value); return variants.size() - 1; } int SceneState::add_node_path(const NodePath &p_path) { - node_paths.push_back(p_path); return (node_paths.size() - 1) | FLAG_ID_IS_PATH; } int SceneState::add_node(int p_parent, int p_owner, int p_type, int p_name, int p_instance, int p_index) { - NodeData nd; nd.parent = p_parent; nd.owner = p_owner; @@ -1569,7 +1477,6 @@ int SceneState::add_node(int p_parent, int p_owner, int p_type, int p_name, int return nodes.size() - 1; } void SceneState::add_node_property(int p_node, int p_name, int p_value) { - ERR_FAIL_INDEX(p_node, nodes.size()); ERR_FAIL_INDEX(p_name, names.size()); ERR_FAIL_INDEX(p_value, variants.size()); @@ -1580,18 +1487,15 @@ void SceneState::add_node_property(int p_node, int p_name, int p_value) { nodes.write[p_node].properties.push_back(prop); } void SceneState::add_node_group(int p_node, int p_group) { - ERR_FAIL_INDEX(p_node, nodes.size()); ERR_FAIL_INDEX(p_group, names.size()); nodes.write[p_node].groups.push_back(p_group); } void SceneState::set_base_scene(int p_idx) { - ERR_FAIL_INDEX(p_idx, variants.size()); base_scene_idx = p_idx; } void SceneState::add_connection(int p_from, int p_to, int p_signal, int p_method, int p_flags, const Vector<int> &p_binds) { - ERR_FAIL_INDEX(p_signal, names.size()); ERR_FAIL_INDEX(p_method, names.size()); @@ -1608,12 +1512,10 @@ void SceneState::add_connection(int p_from, int p_to, int p_signal, int p_method connections.push_back(c); } void SceneState::add_editable_instance(const NodePath &p_path) { - editable_instances.push_back(p_path); } Vector<String> SceneState::_get_node_groups(int p_idx) const { - Vector<StringName> groups = get_node_groups(p_idx); Vector<String> ret; @@ -1624,7 +1526,6 @@ Vector<String> SceneState::_get_node_groups(int p_idx) const { } void SceneState::_bind_methods() { - //unbuild API ClassDB::bind_method(D_METHOD("get_node_count"), &SceneState::get_node_count); @@ -1654,7 +1555,6 @@ void SceneState::_bind_methods() { } SceneState::SceneState() { - base_scene_idx = -1; last_modified_time = 0; } @@ -1662,32 +1562,26 @@ SceneState::SceneState() { //////////////// void PackedScene::_set_bundled_scene(const Dictionary &p_scene) { - state->set_bundled_scene(p_scene); } Dictionary PackedScene::_get_bundled_scene() const { - return state->get_bundled_scene(); } Error PackedScene::pack(Node *p_scene) { - return state->pack(p_scene); } void PackedScene::clear() { - state->clear(); } bool PackedScene::can_instance() const { - return state->can_instance(); } Node *PackedScene::instance(GenEditState p_edit_state) const { - #ifndef TOOLS_ENABLED ERR_FAIL_COND_V_MSG(p_edit_state != GEN_EDIT_STATE_DISABLED, nullptr, "Edit state is only for editors, does not work without tools compiled."); #endif @@ -1709,7 +1603,6 @@ Node *PackedScene::instance(GenEditState p_edit_state) const { } void PackedScene::replace_state(Ref<SceneState> p_by) { - state = p_by; state->set_path(get_path()); #ifdef TOOLS_ENABLED @@ -1718,7 +1611,6 @@ void PackedScene::replace_state(Ref<SceneState> p_by) { } void PackedScene::recreate_state() { - state = Ref<SceneState>(memnew(SceneState)); state->set_path(get_path()); #ifdef TOOLS_ENABLED @@ -1727,18 +1619,15 @@ void PackedScene::recreate_state() { } Ref<SceneState> PackedScene::get_state() { - return state; } void PackedScene::set_path(const String &p_path, bool p_take_over) { - state->set_path(p_path); Resource::set_path(p_path, p_take_over); } void PackedScene::_bind_methods() { - ClassDB::bind_method(D_METHOD("pack", "path"), &PackedScene::pack); ClassDB::bind_method(D_METHOD("instance", "edit_state"), &PackedScene::instance, DEFVAL(GEN_EDIT_STATE_DISABLED)); ClassDB::bind_method(D_METHOD("can_instance"), &PackedScene::can_instance); @@ -1754,6 +1643,5 @@ void PackedScene::_bind_methods() { } PackedScene::PackedScene() { - state = Ref<SceneState>(memnew(SceneState)); } diff --git a/scene/resources/packed_scene.h b/scene/resources/packed_scene.h index c5873a0792..898d5ff11f 100644 --- a/scene/resources/packed_scene.h +++ b/scene/resources/packed_scene.h @@ -35,7 +35,6 @@ #include "scene/main/node.h" class SceneState : public Reference { - GDCLASS(SceneState, Reference); Vector<StringName> names; @@ -54,7 +53,6 @@ class SceneState : public Reference { }; struct NodeData { - int parent; int owner; int type; @@ -63,7 +61,6 @@ class SceneState : public Reference { int index; struct Property { - int name; int value; }; @@ -81,7 +78,6 @@ class SceneState : public Reference { Vector<NodeData> nodes; struct ConnectionData { - int from; int to; int signal; @@ -195,7 +191,6 @@ public: VARIANT_ENUM_CAST(SceneState::GenEditState) class PackedScene : public Resource { - GDCLASS(PackedScene, Resource); RES_BASE_EXTENSION("scn"); diff --git a/scene/resources/particles_material.cpp b/scene/resources/particles_material.cpp index 1a28e2586d..e24cddd013 100644 --- a/scene/resources/particles_material.cpp +++ b/scene/resources/particles_material.cpp @@ -36,7 +36,6 @@ Map<ParticlesMaterial::MaterialKey, ParticlesMaterial::ShaderData> ParticlesMate ParticlesMaterial::ShaderNames *ParticlesMaterial::shader_names = nullptr; void ParticlesMaterial::init_shaders() { - dirty_materials = memnew(SelfList<ParticlesMaterial>::List); shader_names = memnew(ShaderNames); @@ -102,7 +101,6 @@ void ParticlesMaterial::init_shaders() { } void ParticlesMaterial::finish_shaders() { - memdelete(dirty_materials); dirty_materials = nullptr; @@ -110,7 +108,6 @@ void ParticlesMaterial::finish_shaders() { } void ParticlesMaterial::_update_shader() { - dirty_materials->remove(&element); MaterialKey mk = _compute_key(); @@ -129,7 +126,6 @@ void ParticlesMaterial::_update_shader() { current_key = mk; if (shader_map.has(mk)) { - RS::get_singleton()->material_set_shader(_get_material(), shader_map[mk].shader); shader_map[mk].users++; return; @@ -307,7 +303,6 @@ void ParticlesMaterial::_update_shader() { code += " float spread_rad = spread * degree_to_rad;\n"; if (flags[FLAG_DISABLE_Z]) { - code += " float angle1_rad = rand_from_seed_m1_p1(alt_seed) * spread_rad;\n"; code += " angle1_rad += direction.x != 0.0 ? atan(direction.y, direction.x) : sign(direction.y) * (pi / 2.0);\n"; code += " vec3 rot = vec3(cos(angle1_rad), sin(angle1_rad), 0.0);\n"; @@ -352,7 +347,6 @@ void ParticlesMaterial::_update_shader() { if (emission_shape == EMISSION_SHAPE_DIRECTED_POINTS) { if (flags[FLAG_DISABLE_Z]) { - code += " mat2 rotm;"; code += " rotm[0] = texelFetch(emission_texture_normal, emission_tex_ofs, 0).xy;\n"; code += " rotm[1] = rotm[0].yx * vec2(1.0, -1.0);\n"; @@ -386,7 +380,6 @@ void ParticlesMaterial::_update_shader() { code += " float tex_linear_velocity = 0.0;\n"; if (flags[FLAG_DISABLE_Z]) { - if (tex_parameters[PARAM_ORBIT_VELOCITY].is_valid()) code += " float tex_orbit_velocity = textureLod(orbit_velocity_texture, vec2(CUSTOM.y, 0.0), 0.0).r;\n"; else @@ -456,7 +449,6 @@ void ParticlesMaterial::_update_shader() { code += " VELOCITY += force * DELTA;\n"; code += " // orbit velocity\n"; if (flags[FLAG_DISABLE_Z]) { - code += " float orbit_amount = (orbit_velocity + tex_orbit_velocity) * mix(1.0, rand_from_seed(alt_seed), orbit_velocity_random);\n"; code += " if (orbit_amount != 0.0) {\n"; code += " float ang = orbit_amount * DELTA * pi * 2.0;\n"; @@ -527,7 +519,6 @@ void ParticlesMaterial::_update_shader() { code += "\n"; if (flags[FLAG_DISABLE_Z]) { - if (flags[FLAG_ALIGN_Y_TO_VELOCITY]) { code += " if (length(VELOCITY) > 0.0) {\n"; code += " TRANSFORM[1].xyz = normalize(VELOCITY);\n"; @@ -603,17 +594,14 @@ void ParticlesMaterial::_update_shader() { } void ParticlesMaterial::flush_changes() { - MutexLock lock(material_mutex); while (dirty_materials->first()) { - dirty_materials->first()->self()->_update_shader(); } } void ParticlesMaterial::_queue_shader_change() { - MutexLock lock(material_mutex); if (!element.in_list()) { @@ -622,46 +610,38 @@ void ParticlesMaterial::_queue_shader_change() { } bool ParticlesMaterial::_is_shader_dirty() const { - MutexLock lock(material_mutex); return element.in_list(); } void ParticlesMaterial::set_direction(Vector3 p_direction) { - direction = p_direction; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->direction, direction); } Vector3 ParticlesMaterial::get_direction() const { - return direction; } void ParticlesMaterial::set_spread(float p_spread) { - spread = p_spread; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->spread, p_spread); } float ParticlesMaterial::get_spread() const { - return spread; } void ParticlesMaterial::set_flatness(float p_flatness) { - flatness = p_flatness; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->flatness, p_flatness); } float ParticlesMaterial::get_flatness() const { - return flatness; } void ParticlesMaterial::set_param(Parameter p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); parameters[p_param] = p_value; @@ -708,14 +688,12 @@ void ParticlesMaterial::set_param(Parameter p_param, float p_value) { } } float ParticlesMaterial::get_param(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return parameters[p_param]; } void ParticlesMaterial::set_param_randomness(Parameter p_param, float p_value) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); randomness[p_param] = p_value; @@ -762,14 +740,12 @@ void ParticlesMaterial::set_param_randomness(Parameter p_param, float p_value) { } } float ParticlesMaterial::get_param_randomness(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, 0); return randomness[p_param]; } static void _adjust_curve_range(const Ref<Texture2D> &p_texture, float p_min, float p_max) { - Ref<CurveTexture> curve_tex = p_texture; if (!curve_tex.is_valid()) return; @@ -778,7 +754,6 @@ static void _adjust_curve_range(const Ref<Texture2D> &p_texture, float p_min, fl } void ParticlesMaterial::set_param_texture(Parameter p_param, const Ref<Texture2D> &p_texture) { - ERR_FAIL_INDEX(p_param, PARAM_MAX); tex_parameters[p_param] = p_texture; @@ -837,25 +812,21 @@ void ParticlesMaterial::set_param_texture(Parameter p_param, const Ref<Texture2D _queue_shader_change(); } Ref<Texture2D> ParticlesMaterial::get_param_texture(Parameter p_param) const { - ERR_FAIL_INDEX_V(p_param, PARAM_MAX, Ref<Texture2D>()); return tex_parameters[p_param]; } void ParticlesMaterial::set_color(const Color &p_color) { - RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->color, p_color); color = p_color; } Color ParticlesMaterial::get_color() const { - return color; } void ParticlesMaterial::set_color_ramp(const Ref<Texture2D> &p_texture) { - color_ramp = p_texture; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->color_ramp, p_texture); _queue_shader_change(); @@ -863,7 +834,6 @@ void ParticlesMaterial::set_color_ramp(const Ref<Texture2D> &p_texture) { } Ref<Texture2D> ParticlesMaterial::get_color_ramp() const { - return color_ramp; } @@ -889,87 +859,71 @@ void ParticlesMaterial::set_emission_shape(EmissionShape p_shape) { } void ParticlesMaterial::set_emission_sphere_radius(float p_radius) { - emission_sphere_radius = p_radius; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->emission_sphere_radius, p_radius); } void ParticlesMaterial::set_emission_box_extents(Vector3 p_extents) { - emission_box_extents = p_extents; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->emission_box_extents, p_extents); } void ParticlesMaterial::set_emission_point_texture(const Ref<Texture2D> &p_points) { - emission_point_texture = p_points; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->emission_texture_points, p_points); } void ParticlesMaterial::set_emission_normal_texture(const Ref<Texture2D> &p_normals) { - emission_normal_texture = p_normals; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->emission_texture_normal, p_normals); } void ParticlesMaterial::set_emission_color_texture(const Ref<Texture2D> &p_colors) { - emission_color_texture = p_colors; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->emission_texture_color, p_colors); _queue_shader_change(); } void ParticlesMaterial::set_emission_point_count(int p_count) { - emission_point_count = p_count; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->emission_texture_point_count, p_count); } ParticlesMaterial::EmissionShape ParticlesMaterial::get_emission_shape() const { - return emission_shape; } float ParticlesMaterial::get_emission_sphere_radius() const { - return emission_sphere_radius; } Vector3 ParticlesMaterial::get_emission_box_extents() const { - return emission_box_extents; } Ref<Texture2D> ParticlesMaterial::get_emission_point_texture() const { - return emission_point_texture; } Ref<Texture2D> ParticlesMaterial::get_emission_normal_texture() const { - return emission_normal_texture; } Ref<Texture2D> ParticlesMaterial::get_emission_color_texture() const { - return emission_color_texture; } int ParticlesMaterial::get_emission_point_count() const { - return emission_point_count; } void ParticlesMaterial::set_trail_divisor(int p_divisor) { - trail_divisor = p_divisor; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->trail_divisor, p_divisor); } int ParticlesMaterial::get_trail_divisor() const { - return trail_divisor; } void ParticlesMaterial::set_trail_size_modifier(const Ref<CurveTexture> &p_trail_size_modifier) { - trail_size_modifier = p_trail_size_modifier; Ref<CurveTexture> curve = trail_size_modifier; @@ -982,24 +936,20 @@ void ParticlesMaterial::set_trail_size_modifier(const Ref<CurveTexture> &p_trail } Ref<CurveTexture> ParticlesMaterial::get_trail_size_modifier() const { - return trail_size_modifier; } void ParticlesMaterial::set_trail_color_modifier(const Ref<GradientTexture> &p_trail_color_modifier) { - trail_color_modifier = p_trail_color_modifier; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->trail_color_modifier, p_trail_color_modifier); _queue_shader_change(); } Ref<GradientTexture> ParticlesMaterial::get_trail_color_modifier() const { - return trail_color_modifier; } void ParticlesMaterial::set_gravity(const Vector3 &p_gravity) { - gravity = p_gravity; Vector3 gset = gravity; if (gset == Vector3()) { @@ -1009,29 +959,24 @@ void ParticlesMaterial::set_gravity(const Vector3 &p_gravity) { } Vector3 ParticlesMaterial::get_gravity() const { - return gravity; } void ParticlesMaterial::set_lifetime_randomness(float p_lifetime) { - lifetime_randomness = p_lifetime; RenderingServer::get_singleton()->material_set_param(_get_material(), shader_names->lifetime_randomness, lifetime_randomness); } float ParticlesMaterial::get_lifetime_randomness() const { - return lifetime_randomness; } RID ParticlesMaterial::get_shader_rid() const { - ERR_FAIL_COND_V(!shader_map.has(current_key), RID()); return shader_map[current_key].shader; } void ParticlesMaterial::_validate_property(PropertyInfo &property) const { - if (property.name == "color" && color_ramp.is_valid()) { property.usage = 0; } @@ -1062,12 +1007,10 @@ void ParticlesMaterial::_validate_property(PropertyInfo &property) const { } Shader::Mode ParticlesMaterial::get_shader_mode() const { - return Shader::MODE_PARTICLES; } void ParticlesMaterial::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_direction", "degrees"), &ParticlesMaterial::set_direction); ClassDB::bind_method(D_METHOD("get_direction"), &ParticlesMaterial::get_direction); @@ -1235,7 +1178,6 @@ void ParticlesMaterial::_bind_methods() { ParticlesMaterial::ParticlesMaterial() : element(this) { - set_direction(Vector3(1, 0, 0)); set_spread(45); set_flatness(0); @@ -1276,7 +1218,6 @@ ParticlesMaterial::ParticlesMaterial() : } ParticlesMaterial::~ParticlesMaterial() { - MutexLock lock(material_mutex); if (shader_map.has(current_key)) { diff --git a/scene/resources/particles_material.h b/scene/resources/particles_material.h index c6c8316995..a1a4c38842 100644 --- a/scene/resources/particles_material.h +++ b/scene/resources/particles_material.h @@ -35,7 +35,6 @@ #define PARTICLES_MATERIAL_H class ParticlesMaterial : public Material { - GDCLASS(ParticlesMaterial, Material); public: @@ -74,7 +73,6 @@ public: private: union MaterialKey { - struct { uint32_t texture_mask : 16; uint32_t texture_color : 1; @@ -103,7 +101,6 @@ private: MaterialKey current_key; _FORCE_INLINE_ MaterialKey _compute_key() const { - MaterialKey mk; mk.key = 0; for (int i = 0; i < PARAM_MAX; i++) { diff --git a/scene/resources/physics_material.cpp b/scene/resources/physics_material.cpp index 89fbf7a248..2a5cd1101a 100644 --- a/scene/resources/physics_material.cpp +++ b/scene/resources/physics_material.cpp @@ -31,7 +31,6 @@ #include "physics_material.h" void PhysicsMaterial::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_friction", "friction"), &PhysicsMaterial::set_friction); ClassDB::bind_method(D_METHOD("get_friction"), &PhysicsMaterial::get_friction); diff --git a/scene/resources/physics_material.h b/scene/resources/physics_material.h index 1fac3fa6ef..34aa7066df 100644 --- a/scene/resources/physics_material.h +++ b/scene/resources/physics_material.h @@ -35,7 +35,6 @@ #include "servers/physics_server_3d.h" class PhysicsMaterial : public Resource { - GDCLASS(PhysicsMaterial, Resource); OBJ_SAVE_TYPE(PhysicsMaterial); RES_BASE_EXTENSION("phymat"); diff --git a/scene/resources/polygon_path_finder.cpp b/scene/resources/polygon_path_finder.cpp index c3daedf918..8e65ae8bed 100644 --- a/scene/resources/polygon_path_finder.cpp +++ b/scene/resources/polygon_path_finder.cpp @@ -32,11 +32,9 @@ #include "core/math/geometry.h" bool PolygonPathFinder::_is_point_inside(const Vector2 &p_point) const { - int crosses = 0; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { - const Edge &e = E->get(); Vector2 a = points[e.points[0]].pos; @@ -51,7 +49,6 @@ bool PolygonPathFinder::_is_point_inside(const Vector2 &p_point) const { } void PolygonPathFinder::setup(const Vector<Vector2> &p_points, const Vector<int> &p_connections) { - ERR_FAIL_COND(p_connections.size() & 1); points.clear(); @@ -64,7 +61,6 @@ void PolygonPathFinder::setup(const Vector<Vector2> &p_points, const Vector<int> bounds = Rect2(); for (int i = 0; i < p_points.size(); i++) { - points.write[i].pos = p_points[i]; points.write[i].penalty = 0; @@ -84,7 +80,6 @@ void PolygonPathFinder::setup(const Vector<Vector2> &p_points, const Vector<int> //insert edges (which are also connetions) for (int i = 0; i < p_connections.size(); i += 2) { - Edge e(p_connections[i], p_connections[i + 1]); ERR_FAIL_INDEX(e.points[0], point_count); ERR_FAIL_INDEX(e.points[1], point_count); @@ -96,9 +91,7 @@ void PolygonPathFinder::setup(const Vector<Vector2> &p_points, const Vector<int> //fill the remaining connections based on visibility for (int i = 0; i < point_count; i++) { - for (int j = i + 1; j < point_count; j++) { - if (edges.has(Edge(i, j))) continue; //if in edge ignore @@ -111,7 +104,6 @@ void PolygonPathFinder::setup(const Vector<Vector2> &p_points, const Vector<int> bool valid = true; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { - const Edge &e = E->get(); if (e.points[0] == i || e.points[1] == i || e.points[0] == j || e.points[1] == j) continue; @@ -134,7 +126,6 @@ void PolygonPathFinder::setup(const Vector<Vector2> &p_points, const Vector<int> } Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector2 &p_to) { - Vector<Vector2> path; Vector2 from = p_from; @@ -143,12 +134,10 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector Edge ignore_to_edge(-1, -1); if (!_is_point_inside(from)) { - float closest_dist = 1e20; Vector2 closest_point; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { - const Edge &e = E->get(); Vector2 seg[2] = { points[e.points[0]].pos, @@ -173,7 +162,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector Vector2 closest_point; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { - const Edge &e = E->get(); Vector2 seg[2] = { points[e.points[0]].pos, @@ -195,11 +183,9 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector //test direct connection { - bool can_see_eachother = true; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { - const Edge &e = E->get(); if (e.points[0] == ignore_from_edge.points[0] && e.points[1] == ignore_from_edge.points[1]) continue; @@ -216,7 +202,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector } if (can_see_eachother) { - path.push_back(from); path.push_back(to); return path; @@ -237,7 +222,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector points.write[bidx].penalty = 0; for (int i = 0; i < points.size() - 2; i++) { - bool valid_a = true; bool valid_b = true; points.write[i].prev = -1; @@ -252,7 +236,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector } for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { - const Edge &e = E->get(); if (e.points[0] == i || e.points[1] == i) @@ -262,12 +245,10 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector Vector2 b = points[e.points[1]].pos; if (valid_a) { - if (e.points[0] != ignore_from_edge.points[1] && e.points[1] != ignore_from_edge.points[1] && e.points[0] != ignore_from_edge.points[0] && e.points[1] != ignore_from_edge.points[0]) { - if (Geometry::segment_intersects_segment_2d(a, b, from, points[i].pos, nullptr)) { valid_a = false; } @@ -275,12 +256,10 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector } if (valid_b) { - if (e.points[0] != ignore_to_edge.points[1] && e.points[1] != ignore_to_edge.points[1] && e.points[0] != ignore_to_edge.points[0] && e.points[1] != ignore_to_edge.points[0]) { - if (Geometry::segment_intersects_segment_2d(a, b, to, points[i].pos, nullptr)) { valid_b = false; } @@ -308,7 +287,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector points.write[aidx].distance = 0; points.write[aidx].prev = aidx; for (Set<int>::Element *E = points[aidx].connections.front(); E; E = E->next()) { - open_list.insert(E->get()); points.write[E->get()].distance = from.distance_to(points[E->get()].pos); points.write[E->get()].prev = aidx; @@ -317,7 +295,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector bool found_route = false; while (true) { - if (open_list.size() == 0) { printf("open list empty\n"); break; @@ -329,14 +306,12 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector //this could be faster (cache previous results) for (Set<int>::Element *E = open_list.front(); E; E = E->next()) { - const Point &p = points[E->get()]; float cost = p.distance; cost += p.pos.distance_to(to); cost += p.penalty; if (cost < least_cost) { - least_cost_point = E->get(); least_cost = cost; } @@ -346,7 +321,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector //open the neighbours for search for (Set<int>::Element *E = np.connections.front(); E; E = E->next()) { - Point &p = points.write[E->get()]; float distance = np.pos.distance_to(p.pos) + np.distance; @@ -354,7 +328,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector //oh this was visited already, can we win the cost? if (p.distance > distance) { - p.prev = least_cost_point; //reasign previous p.distance = distance; } @@ -391,7 +364,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector } for (int i = 0; i < points.size() - 2; i++) { - points.write[i].connections.erase(aidx); points.write[i].connections.erase(bidx); points.write[i].prev = -1; @@ -409,7 +381,6 @@ Vector<Vector2> PolygonPathFinder::find_path(const Vector2 &p_from, const Vector } void PolygonPathFinder::_set_data(const Dictionary &p_data) { - ERR_FAIL_COND(!p_data.has("points")); ERR_FAIL_COND(!p_data.has("connections")); ERR_FAIL_COND(!p_data.has("segments")); @@ -432,13 +403,11 @@ void PolygonPathFinder::_set_data(const Dictionary &p_data) { const int *cr = con.ptr(); int cc = con.size(); for (int j = 0; j < cc; j++) { - points.write[i].connections.insert(cr[j]); } } if (p_data.has("penalties")) { - Vector<float> penalties = p_data["penalties"]; if (penalties.size() == pc) { const float *pr2 = penalties.ptr(); @@ -453,7 +422,6 @@ void PolygonPathFinder::_set_data(const Dictionary &p_data) { ERR_FAIL_COND(sc & 1); const int *sr = segs.ptr(); for (int i = 0; i < sc; i += 2) { - Edge e(sr[i], sr[i + 1]); edges.insert(e); } @@ -461,7 +429,6 @@ void PolygonPathFinder::_set_data(const Dictionary &p_data) { } Dictionary PolygonPathFinder::_get_data() const { - Dictionary d; Vector<Vector2> p; Vector<int> ind; @@ -491,7 +458,6 @@ Dictionary PolygonPathFinder::_get_data() const { } } { - int *iw = ind.ptrw(); int idx = 0; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { @@ -510,17 +476,14 @@ Dictionary PolygonPathFinder::_get_data() const { } bool PolygonPathFinder::is_point_inside(const Vector2 &p_point) const { - return _is_point_inside(p_point); } Vector2 PolygonPathFinder::get_closest_point(const Vector2 &p_point) const { - float closest_dist = 1e20; Vector2 closest_point; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { - const Edge &e = E->get(); Vector2 seg[2] = { points[e.points[0]].pos, @@ -542,7 +505,6 @@ Vector2 PolygonPathFinder::get_closest_point(const Vector2 &p_point) const { } Vector<Vector2> PolygonPathFinder::get_intersections(const Vector2 &p_from, const Vector2 &p_to) const { - Vector<Vector2> inters; for (Set<Edge>::Element *E = edges.front(); E; E = E->next()) { @@ -559,24 +521,20 @@ Vector<Vector2> PolygonPathFinder::get_intersections(const Vector2 &p_from, cons } Rect2 PolygonPathFinder::get_bounds() const { - return bounds; } void PolygonPathFinder::set_point_penalty(int p_point, float p_penalty) { - ERR_FAIL_INDEX(p_point, points.size() - 2); points.write[p_point].penalty = p_penalty; } float PolygonPathFinder::get_point_penalty(int p_point) const { - ERR_FAIL_INDEX_V(p_point, points.size() - 2, 0); return points[p_point].penalty; } void PolygonPathFinder::_bind_methods() { - ClassDB::bind_method(D_METHOD("setup", "points", "connections"), &PolygonPathFinder::setup); ClassDB::bind_method(D_METHOD("find_path", "from", "to"), &PolygonPathFinder::find_path); ClassDB::bind_method(D_METHOD("get_intersections", "from", "to"), &PolygonPathFinder::get_intersections); diff --git a/scene/resources/polygon_path_finder.h b/scene/resources/polygon_path_finder.h index 2ef5c89e2a..f29299055e 100644 --- a/scene/resources/polygon_path_finder.h +++ b/scene/resources/polygon_path_finder.h @@ -34,7 +34,6 @@ #include "core/resource.h" class PolygonPathFinder : public Resource { - GDCLASS(PolygonPathFinder, Resource); struct Point { @@ -46,11 +45,9 @@ class PolygonPathFinder : public Resource { }; struct Edge { - int points[2]; _FORCE_INLINE_ bool operator<(const Edge &p_edge) const { - if (points[0] == p_edge.points[0]) return points[1] < p_edge.points[1]; else @@ -58,7 +55,6 @@ class PolygonPathFinder : public Resource { } Edge(int a = 0, int b = 0) { - if (a > b) { SWAP(a, b); } diff --git a/scene/resources/primitive_meshes.cpp b/scene/resources/primitive_meshes.cpp index 46e8575018..30d884a5ac 100644 --- a/scene/resources/primitive_meshes.cpp +++ b/scene/resources/primitive_meshes.cpp @@ -35,7 +35,6 @@ PrimitiveMesh */ void PrimitiveMesh::_update() const { - Array arr; arr.resize(RS::ARRAY_MAX); _create_mesh_array(arr); @@ -47,7 +46,6 @@ void PrimitiveMesh::_update() const { int pc = points.size(); ERR_FAIL_COND(pc == 0); { - const Vector3 *r = points.ptr(); for (int i = 0; i < pc; i++) { if (i == 0) @@ -63,7 +61,6 @@ void PrimitiveMesh::_update() const { Vector<Vector3> normals = arr[RS::ARRAY_NORMAL]; if (normals.size() && indices.size()) { - { int nc = normals.size(); Vector3 *w = normals.ptrw(); @@ -99,7 +96,6 @@ void PrimitiveMesh::_update() const { } void PrimitiveMesh::_request_update() { - if (pending_request) return; _update(); @@ -143,7 +139,6 @@ Dictionary PrimitiveMesh::surface_get_lods(int p_surface) const { return Dictionary(); //not really supported } Array PrimitiveMesh::surface_get_blend_shape_arrays(int p_surface) const { - return Array(); //not really supported } @@ -230,14 +225,12 @@ Array PrimitiveMesh::get_mesh_arrays() const { } void PrimitiveMesh::set_custom_aabb(const AABB &p_custom) { - custom_aabb = p_custom; RS::get_singleton()->mesh_set_custom_aabb(mesh, custom_aabb); emit_changed(); } AABB PrimitiveMesh::get_custom_aabb() const { - return custom_aabb; } @@ -251,7 +244,6 @@ bool PrimitiveMesh::get_flip_faces() const { } PrimitiveMesh::PrimitiveMesh() { - flip_faces = false; // defaults mesh = RenderingServer::get_singleton()->mesh_create(); @@ -1382,7 +1374,6 @@ void QuadMesh::_create_mesh_array(Array &p_arr) const { }; for (int i = 0; i < 6; i++) { - int j = indices[i]; faces.set(i, quad_faces[j]); normals.set(i, Vector3(0, 0, 1)); diff --git a/scene/resources/primitive_meshes.h b/scene/resources/primitive_meshes.h index 5f17680c9e..3cffa44e3a 100644 --- a/scene/resources/primitive_meshes.h +++ b/scene/resources/primitive_meshes.h @@ -42,7 +42,6 @@ This class is set apart that it assumes a single surface is always generated for our mesh. */ class PrimitiveMesh : public Mesh { - GDCLASS(PrimitiveMesh, Mesh); private: @@ -134,7 +133,6 @@ public: Similar to test cube but with subdivision support and different texture coordinates */ class CubeMesh : public PrimitiveMesh { - GDCLASS(CubeMesh, PrimitiveMesh); private: @@ -168,7 +166,6 @@ public: */ class CylinderMesh : public PrimitiveMesh { - GDCLASS(CylinderMesh, PrimitiveMesh); private: @@ -205,7 +202,6 @@ public: Similar to quadmesh but with tessellation support */ class PlaneMesh : public PrimitiveMesh { - GDCLASS(PlaneMesh, PrimitiveMesh); private: @@ -234,7 +230,6 @@ public: A prism shapen, handy for ramps, triangles, etc. */ class PrismMesh : public PrimitiveMesh { - GDCLASS(PrismMesh, PrimitiveMesh); private: @@ -272,7 +267,6 @@ public: */ class QuadMesh : public PrimitiveMesh { - GDCLASS(QuadMesh, PrimitiveMesh); private: @@ -293,7 +287,6 @@ public: A sphere.. */ class SphereMesh : public PrimitiveMesh { - GDCLASS(SphereMesh, PrimitiveMesh); private: @@ -331,7 +324,6 @@ public: */ class PointMesh : public PrimitiveMesh { - GDCLASS(PointMesh, PrimitiveMesh) protected: diff --git a/scene/resources/ray_shape_3d.cpp b/scene/resources/ray_shape_3d.cpp index 0211c55f46..17205a500a 100644 --- a/scene/resources/ray_shape_3d.cpp +++ b/scene/resources/ray_shape_3d.cpp @@ -33,7 +33,6 @@ #include "servers/physics_server_3d.h" Vector<Vector3> RayShape3D::get_debug_mesh_lines() { - Vector<Vector3> points; points.push_back(Vector3()); points.push_back(Vector3(0, 0, get_length())); @@ -46,7 +45,6 @@ real_t RayShape3D::get_enclosing_radius() const { } void RayShape3D::_update_shape() { - Dictionary d; d["length"] = length; d["slips_on_slope"] = slips_on_slope; @@ -55,7 +53,6 @@ void RayShape3D::_update_shape() { } void RayShape3D::set_length(float p_length) { - length = p_length; _update_shape(); notify_change_to_owners(); @@ -63,12 +60,10 @@ void RayShape3D::set_length(float p_length) { } float RayShape3D::get_length() const { - return length; } void RayShape3D::set_slips_on_slope(bool p_active) { - slips_on_slope = p_active; _update_shape(); notify_change_to_owners(); @@ -80,7 +75,6 @@ bool RayShape3D::get_slips_on_slope() const { } void RayShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_length", "length"), &RayShape3D::set_length); ClassDB::bind_method(D_METHOD("get_length"), &RayShape3D::get_length); @@ -93,7 +87,6 @@ void RayShape3D::_bind_methods() { RayShape3D::RayShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_RAY)) { - length = 1.0; slips_on_slope = false; diff --git a/scene/resources/ray_shape_3d.h b/scene/resources/ray_shape_3d.h index 83bb71cca3..ef849d2dee 100644 --- a/scene/resources/ray_shape_3d.h +++ b/scene/resources/ray_shape_3d.h @@ -33,7 +33,6 @@ #include "scene/resources/shape_3d.h" class RayShape3D : public Shape3D { - GDCLASS(RayShape3D, Shape3D); float length; bool slips_on_slope; diff --git a/scene/resources/rectangle_shape_2d.cpp b/scene/resources/rectangle_shape_2d.cpp index 19e72a65b0..949fddf2e7 100644 --- a/scene/resources/rectangle_shape_2d.cpp +++ b/scene/resources/rectangle_shape_2d.cpp @@ -33,29 +33,24 @@ #include "servers/physics_server_2d.h" #include "servers/rendering_server.h" void RectangleShape2D::_update_shape() { - PhysicsServer2D::get_singleton()->shape_set_data(get_rid(), extents); emit_changed(); } void RectangleShape2D::set_extents(const Vector2 &p_extents) { - extents = p_extents; _update_shape(); } Vector2 RectangleShape2D::get_extents() const { - return extents; } void RectangleShape2D::draw(const RID &p_to_rid, const Color &p_color) { - RenderingServer::get_singleton()->canvas_item_add_rect(p_to_rid, Rect2(-extents, extents * 2.0), p_color); } Rect2 RectangleShape2D::get_rect() const { - return Rect2(-extents, extents * 2.0); } @@ -64,7 +59,6 @@ real_t RectangleShape2D::get_enclosing_radius() const { } void RectangleShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_extents", "extents"), &RectangleShape2D::set_extents); ClassDB::bind_method(D_METHOD("get_extents"), &RectangleShape2D::get_extents); @@ -73,7 +67,6 @@ void RectangleShape2D::_bind_methods() { RectangleShape2D::RectangleShape2D() : Shape2D(PhysicsServer2D::get_singleton()->rectangle_shape_create()) { - extents = Vector2(10, 10); _update_shape(); } diff --git a/scene/resources/resource_format_text.cpp b/scene/resources/resource_format_text.cpp index 41146036f6..01af96b1e0 100644 --- a/scene/resources/resource_format_text.cpp +++ b/scene/resources/resource_format_text.cpp @@ -46,17 +46,14 @@ /// void ResourceLoaderText::set_local_path(const String &p_local_path) { - res_path = p_local_path; } Ref<Resource> ResourceLoaderText::get_resource() { - return resource; } Error ResourceLoaderText::_parse_sub_resource_dummy(DummyReadData *p_data, VariantParser::Stream *p_stream, Ref<Resource> &r_res, int &line, String &r_err_str) { - VariantParser::Token token; VariantParser::get_token(p_stream, token, line, r_err_str); if (token.type != VariantParser::TK_NUMBER) { @@ -86,7 +83,6 @@ Error ResourceLoaderText::_parse_sub_resource_dummy(DummyReadData *p_data, Varia } Error ResourceLoaderText::_parse_ext_resource_dummy(DummyReadData *p_data, VariantParser::Stream *p_stream, Ref<Resource> &r_res, int &line, String &r_err_str) { - VariantParser::Token token; VariantParser::get_token(p_stream, token, line, r_err_str); if (token.type != VariantParser::TK_NUMBER) { @@ -110,7 +106,6 @@ Error ResourceLoaderText::_parse_ext_resource_dummy(DummyReadData *p_data, Varia } Error ResourceLoaderText::_parse_sub_resource(VariantParser::Stream *p_stream, Ref<Resource> &r_res, int &line, String &r_err_str) { - VariantParser::Token token; VariantParser::get_token(p_stream, token, line, r_err_str); if (token.type != VariantParser::TK_NUMBER) { @@ -123,11 +118,9 @@ Error ResourceLoaderText::_parse_sub_resource(VariantParser::Stream *p_stream, R if (use_nocache) { r_res = int_resources[index]; } else { - String path = local_path + "::" + itos(index); if (!ignore_resource_parsing) { - if (!ResourceCache::has(path)) { r_err_str = "Can't load cached sub-resource: " + path; return ERR_PARSE_ERROR; @@ -149,7 +142,6 @@ Error ResourceLoaderText::_parse_sub_resource(VariantParser::Stream *p_stream, R } Error ResourceLoaderText::_parse_ext_resource(VariantParser::Stream *p_stream, Ref<Resource> &r_res, int &line, String &r_err_str) { - VariantParser::Token token; VariantParser::get_token(p_stream, token, line, r_err_str); if (token.type != VariantParser::TK_NUMBER) { @@ -160,7 +152,6 @@ Error ResourceLoaderText::_parse_ext_resource(VariantParser::Stream *p_stream, R int id = token.value; if (!ignore_resource_parsing) { - if (!ext_resources.has(id)) { r_err_str = "Can't load cached ext-resource #" + itos(id); return ERR_PARSE_ERROR; @@ -172,10 +163,8 @@ Error ResourceLoaderText::_parse_ext_resource(VariantParser::Stream *p_stream, R if (ext_resources[id].cache.is_valid()) { r_res = ext_resources[id].cache; } else if (use_sub_threads) { - RES res = ResourceLoader::load_threaded_get(path); if (res.is_null()) { - if (ResourceLoader::get_abort_on_missing_resources()) { error = ERR_FILE_CORRUPT; error_text = "[ext_resource] referenced nonexistent resource at: " + path; @@ -212,9 +201,7 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars packed_scene.instance(); while (true) { - if (next_tag.name == "node") { - int parent = -1; int owner = -1; int type = -1; @@ -240,7 +227,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars } if (next_tag.fields.has("instance")) { - instance = packed_scene->get_state()->add_value(next_tag.fields["instance"]); if (packed_scene->get_state()->get_node_count() == 0 && parent == -1) { @@ -250,7 +236,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars } if (next_tag.fields.has("instance_placeholder")) { - String path = next_tag.fields["instance_placeholder"]; int path_v = packed_scene->get_state()->add_value(path); @@ -279,7 +264,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars int node_id = packed_scene->get_state()->add_node(parent, owner, type, name, instance, index); if (next_tag.fields.has("groups")) { - Array groups = next_tag.fields["groups"]; for (int i = 0; i < groups.size(); i++) { packed_scene->get_state()->add_node_group(node_id, packed_scene->get_state()->add_name(groups[i])); @@ -287,7 +271,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars } while (true) { - String assign; Variant value; @@ -313,7 +296,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars } } } else if (next_tag.name == "connection") { - if (!next_tag.fields.has("from")) { error = ERR_FILE_CORRUPT; error_text = "missing 'from' field from connection tag"; @@ -378,7 +360,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars } } } else if (next_tag.name == "editable") { - if (!next_tag.fields.has("path")) { error = ERR_FILE_CORRUPT; error_text = "missing 'path' field from connection tag"; @@ -402,7 +383,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars } } } else { - error = ERR_FILE_CORRUPT; _printerr(); return Ref<PackedScene>(); @@ -411,7 +391,6 @@ Ref<PackedScene> ResourceLoaderText::_parse_node_tag(VariantParser::ResourcePars } Error ResourceLoaderText::load() { - if (error != OK) return error; @@ -459,7 +438,6 @@ Error ResourceLoaderText::load() { er.type = type; if (use_sub_threads) { - Error err = ResourceLoader::load_threaded_request(path, type, use_sub_threads, local_path); if (err != OK) { @@ -477,7 +455,6 @@ Error ResourceLoaderText::load() { RES res = ResourceLoader::load(path, type); if (res.is_null()) { - if (ResourceLoader::get_abort_on_missing_resources()) { error = ERR_FILE_CORRUPT; error_text = "[ext_resource] referenced nonexistent resource at: " + path; @@ -487,7 +464,6 @@ Error ResourceLoaderText::load() { ResourceLoader::notify_dependency_error(local_path, path, type); } } else { - #ifdef TOOLS_ENABLED //remember ID for saving res->set_id_for_path(local_path, index); @@ -544,7 +520,6 @@ Error ResourceLoaderText::load() { Object *obj = ClassDB::instance(type); if (!obj) { - error_text += "Can't create sub resource of type: " + type; _printerr(); error = ERR_FILE_CORRUPT; @@ -553,7 +528,6 @@ Error ResourceLoaderText::load() { Resource *r = Object::cast_to<Resource>(obj); if (!r) { - error_text += "Can't create sub resource of type, because not a resource: " + type; _printerr(); error = ERR_FILE_CORRUPT; @@ -570,7 +544,6 @@ Error ResourceLoaderText::load() { resource_current++; while (true) { - String assign; Variant value; @@ -587,7 +560,6 @@ Error ResourceLoaderText::load() { } //it's assignment } else if (next_tag.name != String()) { - error = OK; break; } else { @@ -609,7 +581,6 @@ Error ResourceLoaderText::load() { } if (is_scene) { - error_text += "found the 'resource' tag on a scene file!"; _printerr(); error = ERR_FILE_CORRUPT; @@ -618,7 +589,6 @@ Error ResourceLoaderText::load() { Object *obj = ClassDB::instance(res_type); if (!obj) { - error_text += "Can't create sub resource of type: " + res_type; _printerr(); error = ERR_FILE_CORRUPT; @@ -627,7 +597,6 @@ Error ResourceLoaderText::load() { Resource *r = Object::cast_to<Resource>(obj); if (!r) { - error_text += "Can't create sub resource of type, because not a resource: " + res_type; _printerr(); error = ERR_FILE_CORRUPT; @@ -639,7 +608,6 @@ Error ResourceLoaderText::load() { resource_current++; while (true) { - String assign; Variant value; @@ -664,7 +632,6 @@ Error ResourceLoaderText::load() { resource->set(assign, value); //it's assignment } else if (next_tag.name != String()) { - error = ERR_FILE_CORRUPT; error_text = "Extra tag found when parsing main resource file"; _printerr(); @@ -683,9 +650,7 @@ Error ResourceLoaderText::load() { //for scene files if (next_tag.name == "node") { - if (!is_scene) { - error_text += "found the 'node' tag on a resource file!"; _printerr(); error = ERR_FILE_CORRUPT; @@ -720,21 +685,17 @@ Error ResourceLoaderText::load() { } int ResourceLoaderText::get_stage() const { - return resource_current; } int ResourceLoaderText::get_stage_count() const { - return resources_total; //+ext_resources; } void ResourceLoaderText::set_translation_remapped(bool p_remapped) { - translation_remapped = p_remapped; } ResourceLoaderText::ResourceLoaderText() { - use_nocache = false; resources_total = 0; @@ -749,18 +710,15 @@ ResourceLoaderText::ResourceLoaderText() { } ResourceLoaderText::~ResourceLoaderText() { - memdelete(f); } void ResourceLoaderText::get_dependencies(FileAccess *p_f, List<String> *p_dependencies, bool p_add_types) { - open(p_f); ignore_resource_parsing = true; ERR_FAIL_COND(error != OK); while (next_tag.name == "ext_resource") { - if (!next_tag.fields.has("type")) { error = ERR_FILE_CORRUPT; error_text = "Missing 'type' in external resource tag"; @@ -801,7 +759,6 @@ void ResourceLoaderText::get_dependencies(FileAccess *p_f, List<String> *p_depen } Error ResourceLoaderText::rename_dependencies(FileAccess *p_f, const String &p_path, const Map<String, String> &p_map) { - open(p_f, true); ERR_FAIL_COND_V(error != OK, error); ignore_resource_parsing = true; @@ -814,7 +771,6 @@ Error ResourceLoaderText::rename_dependencies(FileAccess *p_f, const String &p_p uint64_t tag_end = f->get_position(); while (true) { - Error err = VariantParser::parse_tag(&stream, lines, error_text, next_tag, &rp); if (err != OK) { @@ -826,7 +782,6 @@ Error ResourceLoaderText::rename_dependencies(FileAccess *p_f, const String &p_p } if (next_tag.name != "ext_resource") { - //nothing was done if (!fw) return OK; @@ -834,9 +789,7 @@ Error ResourceLoaderText::rename_dependencies(FileAccess *p_f, const String &p_p break; } else { - if (!fw) { - fw = FileAccess::open(p_path + ".depren", FileAccess::WRITE); if (is_scene) { fw->store_line("[gd_scene load_steps=" + itos(resources_total) + " format=" + itos(FORMAT_VERSION) + "]\n"); @@ -903,7 +856,6 @@ Error ResourceLoaderText::rename_dependencies(FileAccess *p_f, const String &p_p } void ResourceLoaderText::open(FileAccess *p_f, bool p_skip_first_tag) { - error = OK; lines = 1; @@ -918,7 +870,6 @@ void ResourceLoaderText::open(FileAccess *p_f, bool p_skip_first_tag) { Error err = VariantParser::parse_tag(&stream, lines, error_text, tag); if (err) { - error = err; _printerr(); return; @@ -961,7 +912,6 @@ void ResourceLoaderText::open(FileAccess *p_f, bool p_skip_first_tag) { } if (!p_skip_first_tag) { - err = VariantParser::parse_tag(&stream, lines, error_text, next_tag, &rp); if (err) { @@ -978,7 +928,6 @@ void ResourceLoaderText::open(FileAccess *p_f, bool p_skip_first_tag) { } static void bs_save_unicode_string(FileAccess *f, const String &p_string, bool p_bit_on_len = false) { - CharString utf8 = p_string.utf8(); if (p_bit_on_len) { f->store_32((utf8.length() + 1) | 0x80000000); @@ -989,7 +938,6 @@ static void bs_save_unicode_string(FileAccess *f, const String &p_string, bool p } Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) { - if (error) return error; @@ -1028,7 +976,6 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) rp.userdata = &dummy_read; while (next_tag.name == "ext_resource") { - if (!next_tag.fields.has("path")) { error = ERR_FILE_CORRUPT; error_text = "Missing 'path' in external resource tag"; @@ -1092,7 +1039,6 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) Vector<size_t> local_pointers_pos; while (next_tag.name == "sub_resource" || next_tag.name == "resource") { - String type; int id = -1; bool main_res; @@ -1134,7 +1080,6 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) int prop_count = 0; while (true) { - String assign; Variant value; @@ -1151,14 +1096,12 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) } if (assign != String()) { - Map<StringName, int> empty_string_map; //unused bs_save_unicode_string(wf2, assign, true); ResourceFormatSaverBinaryInstance::write_variant(wf2, value, dummy_read.resource_set, dummy_read.external_resources, empty_string_map); prop_count++; } else if (next_tag.name != String()) { - error = OK; break; } else { @@ -1178,7 +1121,6 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) //this is a node, must save one more! if (!is_scene) { - error_text += "found the 'node' tag on a resource file!"; _printerr(); error = ERR_FILE_CORRUPT; @@ -1207,7 +1149,6 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) int prop_count = 0; for (List<PropertyInfo>::Element *E = props.front(); E; E = E->next()) { - if (!(E->get().usage & PROPERTY_USAGE_STORAGE)) continue; @@ -1253,7 +1194,6 @@ Error ResourceLoaderText::save_as_binary(FileAccess *p_f, const String &p_path) } String ResourceLoaderText::recognize(FileAccess *p_f) { - error = OK; lines = 1; @@ -1298,7 +1238,6 @@ String ResourceLoaderText::recognize(FileAccess *p_f) { ///////////////////// RES ResourceFormatLoaderText::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) { - if (r_error) *r_error = ERR_CANT_OPEN; @@ -1329,7 +1268,6 @@ RES ResourceFormatLoaderText::load(const String &p_path, const String &p_origina } void ResourceFormatLoaderText::get_recognized_extensions_for_type(const String &p_type, List<String> *p_extensions) const { - if (p_type == "") { get_recognized_extensions(p_extensions); return; @@ -1342,17 +1280,14 @@ void ResourceFormatLoaderText::get_recognized_extensions_for_type(const String & } void ResourceFormatLoaderText::get_recognized_extensions(List<String> *p_extensions) const { - p_extensions->push_back("tscn"); p_extensions->push_back("tres"); } bool ResourceFormatLoaderText::handles_type(const String &p_type) const { - return true; } String ResourceFormatLoaderText::get_resource_type(const String &p_path) const { - String ext = p_path.get_extension().to_lower(); if (ext == "tscn") return "PackedScene"; @@ -1363,7 +1298,6 @@ String ResourceFormatLoaderText::get_resource_type(const String &p_path) const { FileAccess *f = FileAccess::open(p_path, FileAccess::READ); if (!f) { - return ""; //could not rwead } @@ -1376,10 +1310,8 @@ String ResourceFormatLoaderText::get_resource_type(const String &p_path) const { } void ResourceFormatLoaderText::get_dependencies(const String &p_path, List<String> *p_dependencies, bool p_add_types) { - FileAccess *f = FileAccess::open(p_path, FileAccess::READ); if (!f) { - ERR_FAIL(); } @@ -1391,10 +1323,8 @@ void ResourceFormatLoaderText::get_dependencies(const String &p_path, List<Strin } Error ResourceFormatLoaderText::rename_dependencies(const String &p_path, const Map<String, String> &p_map) { - FileAccess *f = FileAccess::open(p_path, FileAccess::READ); if (!f) { - ERR_FAIL_V(ERR_CANT_OPEN); } @@ -1408,7 +1338,6 @@ Error ResourceFormatLoaderText::rename_dependencies(const String &p_path, const ResourceFormatLoaderText *ResourceFormatLoaderText::singleton = nullptr; Error ResourceFormatLoaderText::convert_file_to_binary(const String &p_src_path, const String &p_dst_path) { - Error err; FileAccess *f = FileAccess::open(p_src_path, FileAccess::READ, &err); @@ -1435,18 +1364,14 @@ Error ResourceFormatLoaderText::convert_file_to_binary(const String &p_src_path, /*****************************************************************************************************/ String ResourceFormatSaverTextInstance::_write_resources(void *ud, const RES &p_resource) { - ResourceFormatSaverTextInstance *rsi = (ResourceFormatSaverTextInstance *)ud; return rsi->_write_resource(p_resource); } String ResourceFormatSaverTextInstance::_write_resource(const RES &res) { - if (external_resources.has(res)) { - return "ExtResource( " + itos(external_resources[res]) + " )"; } else { - if (internal_resources.has(res)) { return "SubResource( " + itos(internal_resources[res]) + " )"; } else if (res->get_path().length() && res->get_path().find("::") == -1) { @@ -1464,10 +1389,8 @@ String ResourceFormatSaverTextInstance::_write_resource(const RES &res) { } void ResourceFormatSaverTextInstance::_find_resources(const Variant &p_variant, bool p_main) { - switch (p_variant.get_type()) { case Variant::OBJECT: { - RES res = p_variant; if (res.is_null() || external_resources.has(res)) @@ -1494,11 +1417,9 @@ void ResourceFormatSaverTextInstance::_find_resources(const Variant &p_variant, List<PropertyInfo>::Element *I = property_list.front(); while (I) { - PropertyInfo pi = I->get(); if (pi.usage & PROPERTY_USAGE_STORAGE) { - Variant v = res->get(I->get().name); if (pi.usage & PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT) { @@ -1524,23 +1445,19 @@ void ResourceFormatSaverTextInstance::_find_resources(const Variant &p_variant, } break; case Variant::ARRAY: { - Array varray = p_variant; int len = varray.size(); for (int i = 0; i < len; i++) { - const Variant &v = varray.get(i); _find_resources(v); } } break; case Variant::DICTIONARY: { - Dictionary d = p_variant; List<Variant> keys; d.get_key_list(&keys); for (List<Variant>::Element *E = keys.front(); E; E = E->next()) { - Variant v = d[E->get()]; _find_resources(v); } @@ -1551,7 +1468,6 @@ void ResourceFormatSaverTextInstance::_find_resources(const Variant &p_variant, } Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_resource, uint32_t p_flags) { - if (p_path.ends_with(".tscn")) { packed_scene = p_resource; } @@ -1648,7 +1564,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r Vector<ResourceSort> sorted_er; for (Map<RES, int>::Element *E = external_resources.front(); E; E = E->next()) { - ResourceSort rs; rs.resource = E->key(); rs.index = E->get(); @@ -1669,10 +1584,8 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r Set<int> used_indices; for (List<RES>::Element *E = saved_resources.front(); E; E = E->next()) { - RES res = E->get(); if (E->next() && (res->get_path() == "" || res->get_path().find("::") != -1)) { - if (res->get_subindex() != 0) { if (used_indices.has(res->get_subindex())) { res->set_subindex(0); //repeated @@ -1684,7 +1597,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r } for (List<RES>::Element *E = saved_resources.front(); E; E = E->next()) { - RES res = E->get(); ERR_CONTINUE(!resource_set.has(res)); bool main = (E->next() == nullptr); @@ -1723,12 +1635,10 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r res->get_property_list(&property_list); //property_list.sort(); for (List<PropertyInfo>::Element *PE = property_list.front(); PE; PE = PE->next()) { - if (skip_editor && PE->get().name.begins_with("__editor")) continue; if (PE->get().usage & PROPERTY_USAGE_STORAGE) { - String name = PE->get().name; Variant value; if (PE->get().usage & PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT) { @@ -1764,7 +1674,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r //if this is a scene, save nodes and connections! Ref<SceneState> state = packed_scene->get_state(); for (int i = 0; i < state->get_node_count(); i++) { - StringName type = state->get_node_type(i); StringName name = state->get_node_name(i); int index = state->get_node_index(i); @@ -1802,7 +1711,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r f->store_string(header); if (instance_placeholder != String()) { - String vars; f->store_string(" instance_placeholder="); VariantWriter::write_to_string(instance_placeholder, vars, _write_resources, this); @@ -1810,7 +1718,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r } if (instance.is_valid()) { - String vars; f->store_string(" instance="); VariantWriter::write_to_string(instance, vars, _write_resources, this); @@ -1820,7 +1727,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r f->store_line("]"); for (int j = 0; j < state->get_node_property_count(i); j++) { - String vars; VariantWriter::write_to_string(state->get_node_property_value(i, j), vars, _write_resources, this); @@ -1832,7 +1738,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r } for (int i = 0; i < state->get_connection_count(); i++) { - String connstr = "[connection"; connstr += " signal=\"" + String(state->get_connection_signal(i)) + "\""; connstr += " from=\"" + String(state->get_connection_source(i).simplified()) + "\""; @@ -1872,7 +1777,6 @@ Error ResourceFormatSaverTextInstance::save(const String &p_path, const RES &p_r } Error ResourceFormatSaverText::save(const String &p_path, const RES &p_resource, uint32_t p_flags) { - if (p_path.ends_with(".sct") && p_resource->get_class() != "PackedScene") { return ERR_FILE_UNRECOGNIZED; } @@ -1882,11 +1786,9 @@ Error ResourceFormatSaverText::save(const String &p_path, const RES &p_resource, } bool ResourceFormatSaverText::recognize(const RES &p_resource) const { - return true; // all recognized! } void ResourceFormatSaverText::get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const { - if (p_resource->get_class() == "PackedScene") p_extensions->push_back("tscn"); //text scene else diff --git a/scene/resources/resource_format_text.h b/scene/resources/resource_format_text.h index b9a6db5f36..cf522c9364 100644 --- a/scene/resources/resource_format_text.h +++ b/scene/resources/resource_format_text.h @@ -38,7 +38,6 @@ #include "scene/resources/packed_scene.h" class ResourceLoaderText { - bool translation_remapped; String local_path; String res_path; @@ -92,7 +91,6 @@ class ResourceLoaderText { }; struct DummyReadData { - Map<RES, int> external_resources; Map<int, RES> rev_external_resources; Set<RES> resource_set; @@ -150,7 +148,6 @@ public: }; class ResourceFormatSaverTextInstance { - String local_path; Ref<PackedScene> packed_scene; diff --git a/scene/resources/segment_shape_2d.cpp b/scene/resources/segment_shape_2d.cpp index 814c349784..6fce80b0df 100644 --- a/scene/resources/segment_shape_2d.cpp +++ b/scene/resources/segment_shape_2d.cpp @@ -34,14 +34,12 @@ #include "servers/rendering_server.h" bool SegmentShape2D::_edit_is_selected_on_click(const Point2 &p_point, double p_tolerance) const { - Vector2 l[2] = { a, b }; Vector2 closest = Geometry::get_closest_point_to_segment_2d(p_point, l); return p_point.distance_to(closest) < p_tolerance; } void SegmentShape2D::_update_shape() { - Rect2 r; r.position = a; r.size = b; @@ -50,32 +48,26 @@ void SegmentShape2D::_update_shape() { } void SegmentShape2D::set_a(const Vector2 &p_a) { - a = p_a; _update_shape(); } Vector2 SegmentShape2D::get_a() const { - return a; } void SegmentShape2D::set_b(const Vector2 &p_b) { - b = p_b; _update_shape(); } Vector2 SegmentShape2D::get_b() const { - return b; } void SegmentShape2D::draw(const RID &p_to_rid, const Color &p_color) { - RenderingServer::get_singleton()->canvas_item_add_line(p_to_rid, a, b, p_color, 3); } Rect2 SegmentShape2D::get_rect() const { - Rect2 rect; rect.position = a; rect.expand_to(b); @@ -87,7 +79,6 @@ real_t SegmentShape2D::get_enclosing_radius() const { } void SegmentShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_a", "a"), &SegmentShape2D::set_a); ClassDB::bind_method(D_METHOD("get_a"), &SegmentShape2D::get_a); @@ -100,7 +91,6 @@ void SegmentShape2D::_bind_methods() { SegmentShape2D::SegmentShape2D() : Shape2D(PhysicsServer2D::get_singleton()->segment_shape_create()) { - a = Vector2(); b = Vector2(0, 10); _update_shape(); @@ -109,7 +99,6 @@ SegmentShape2D::SegmentShape2D() : //////////////////////////////////////////////////////////// void RayShape2D::_update_shape() { - Dictionary d; d["length"] = length; d["slips_on_slope"] = slips_on_slope; @@ -118,7 +107,6 @@ void RayShape2D::_update_shape() { } void RayShape2D::draw(const RID &p_to_rid, const Color &p_color) { - Vector2 tip = Vector2(0, get_length()); RS::get_singleton()->canvas_item_add_line(p_to_rid, Vector2(), tip, p_color, 3); Vector<Vector2> pts; @@ -134,7 +122,6 @@ void RayShape2D::draw(const RID &p_to_rid, const Color &p_color) { } Rect2 RayShape2D::get_rect() const { - Rect2 rect; rect.position = Vector2(); rect.expand_to(Vector2(0, length)); @@ -147,7 +134,6 @@ real_t RayShape2D::get_enclosing_radius() const { } void RayShape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_length", "length"), &RayShape2D::set_length); ClassDB::bind_method(D_METHOD("get_length"), &RayShape2D::get_length); @@ -159,17 +145,14 @@ void RayShape2D::_bind_methods() { } void RayShape2D::set_length(real_t p_length) { - length = p_length; _update_shape(); } real_t RayShape2D::get_length() const { - return length; } void RayShape2D::set_slips_on_slope(bool p_active) { - slips_on_slope = p_active; _update_shape(); } @@ -180,7 +163,6 @@ bool RayShape2D::get_slips_on_slope() const { RayShape2D::RayShape2D() : Shape2D(PhysicsServer2D::get_singleton()->ray_shape_create()) { - length = 20; slips_on_slope = false; _update_shape(); diff --git a/scene/resources/shader.cpp b/scene/resources/shader.cpp index 1ac2f7c3c9..188fc70ed3 100644 --- a/scene/resources/shader.cpp +++ b/scene/resources/shader.cpp @@ -36,12 +36,10 @@ #include "texture.h" Shader::Mode Shader::get_mode() const { - return mode; } void Shader::set_code(const String &p_code) { - String type = ShaderLanguage::get_shader_type(p_code); if (type == "canvas_item") { @@ -61,13 +59,11 @@ void Shader::set_code(const String &p_code) { } String Shader::get_code() const { - _update_shader(); return RenderingServer::get_singleton()->shader_get_code(shader); } void Shader::get_param_list(List<PropertyInfo> *p_params) const { - _update_shader(); List<PropertyInfo> local; @@ -76,7 +72,6 @@ void Shader::get_param_list(List<PropertyInfo> *p_params) const { params_cache_dirty = false; for (List<PropertyInfo>::Element *E = local.front(); E; E = E->next()) { - PropertyInfo pi = E->get(); if (default_textures.has(pi.name)) { //do not show default textures continue; @@ -84,7 +79,6 @@ void Shader::get_param_list(List<PropertyInfo> *p_params) const { pi.name = "shader_param/" + pi.name; params_cache[pi.name] = E->get().name; if (p_params) { - //small little hack if (pi.type == Variant::_RID) pi.type = Variant::OBJECT; @@ -94,14 +88,12 @@ void Shader::get_param_list(List<PropertyInfo> *p_params) const { } RID Shader::get_rid() const { - _update_shader(); return shader; } void Shader::set_default_texture_param(const StringName &p_param, const Ref<Texture2D> &p_texture) { - if (p_texture.is_valid()) { default_textures[p_param] = p_texture; RS::get_singleton()->shader_set_default_texture_param(shader, p_param, p_texture->get_rid()); @@ -114,7 +106,6 @@ void Shader::set_default_texture_param(const StringName &p_param, const Ref<Text } Ref<Texture2D> Shader::get_default_texture_param(const StringName &p_param) const { - if (default_textures.has(p_param)) return default_textures[p_param]; else @@ -122,9 +113,7 @@ Ref<Texture2D> Shader::get_default_texture_param(const StringName &p_param) cons } void Shader::get_default_texture_param_list(List<StringName> *r_textures) const { - for (const Map<StringName, Ref<Texture2D>>::Element *E = default_textures.front(); E; E = E->next()) { - r_textures->push_back(E->key()); } } @@ -134,7 +123,6 @@ bool Shader::is_text_shader() const { } bool Shader::has_param(const StringName &p_param) const { - return params_cache.has(p_param); } @@ -142,7 +130,6 @@ void Shader::_update_shader() const { } void Shader::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_mode"), &Shader::get_mode); ClassDB::bind_method(D_METHOD("set_code", "code"), &Shader::set_code); @@ -164,20 +151,17 @@ void Shader::_bind_methods() { } Shader::Shader() { - mode = MODE_SPATIAL; shader = RenderingServer::get_singleton()->shader_create(); params_cache_dirty = true; } Shader::~Shader() { - RenderingServer::get_singleton()->free(shader); } //////////// RES ResourceFormatLoaderShader::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) { - if (r_error) *r_error = ERR_FILE_CANT_OPEN; @@ -198,17 +182,14 @@ RES ResourceFormatLoaderShader::load(const String &p_path, const String &p_origi } void ResourceFormatLoaderShader::get_recognized_extensions(List<String> *p_extensions) const { - p_extensions->push_back("shader"); } bool ResourceFormatLoaderShader::handles_type(const String &p_type) const { - return (p_type == "Shader"); } String ResourceFormatLoaderShader::get_resource_type(const String &p_path) const { - String el = p_path.get_extension().to_lower(); if (el == "shader") return "Shader"; @@ -216,7 +197,6 @@ String ResourceFormatLoaderShader::get_resource_type(const String &p_path) const } Error ResourceFormatSaverShader::save(const String &p_path, const RES &p_resource, uint32_t p_flags) { - Ref<Shader> shader = p_resource; ERR_FAIL_COND_V(shader.is_null(), ERR_INVALID_PARAMETER); @@ -239,7 +219,6 @@ Error ResourceFormatSaverShader::save(const String &p_path, const RES &p_resourc } void ResourceFormatSaverShader::get_recognized_extensions(const RES &p_resource, List<String> *p_extensions) const { - if (const Shader *shader = Object::cast_to<Shader>(*p_resource)) { if (shader->is_text_shader()) { p_extensions->push_back("shader"); @@ -247,6 +226,5 @@ void ResourceFormatSaverShader::get_recognized_extensions(const RES &p_resource, } } bool ResourceFormatSaverShader::recognize(const RES &p_resource) const { - return p_resource->get_class_name() == "Shader"; //only shader, not inherited } diff --git a/scene/resources/shader.h b/scene/resources/shader.h index 75c38bd561..9fa8a9ae95 100644 --- a/scene/resources/shader.h +++ b/scene/resources/shader.h @@ -37,7 +37,6 @@ #include "scene/resources/texture.h" class Shader : public Resource { - GDCLASS(Shader, Resource); OBJ_SAVE_TYPE(Shader); diff --git a/scene/resources/shape_2d.cpp b/scene/resources/shape_2d.cpp index 4fe585053a..b48de1aeb3 100644 --- a/scene/resources/shape_2d.cpp +++ b/scene/resources/shape_2d.cpp @@ -31,23 +31,19 @@ #include "shape_2d.h" #include "servers/physics_server_2d.h" RID Shape2D::get_rid() const { - return shape; } void Shape2D::set_custom_solver_bias(real_t p_bias) { - custom_bias = p_bias; PhysicsServer2D::get_singleton()->shape_set_custom_solver_bias(shape, custom_bias); } real_t Shape2D::get_custom_solver_bias() const { - return custom_bias; } bool Shape2D::collide_with_motion(const Transform2D &p_local_xform, const Vector2 &p_local_motion, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform, const Vector2 &p_shape_motion) { - ERR_FAIL_COND_V(p_shape.is_null(), false); int r; return PhysicsServer2D::get_singleton()->shape_collide(get_rid(), p_local_xform, p_local_motion, p_shape->get_rid(), p_shape_xform, p_shape_motion, nullptr, 0, r); @@ -60,7 +56,6 @@ bool Shape2D::collide(const Transform2D &p_local_xform, const Ref<Shape2D> &p_sh } Array Shape2D::collide_with_motion_and_get_contacts(const Transform2D &p_local_xform, const Vector2 &p_local_motion, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform, const Vector2 &p_shape_motion) { - ERR_FAIL_COND_V(p_shape.is_null(), Array()); const int max_contacts = 16; Vector2 result[max_contacts * 2]; @@ -78,7 +73,6 @@ Array Shape2D::collide_with_motion_and_get_contacts(const Transform2D &p_local_x return results; } Array Shape2D::collide_and_get_contacts(const Transform2D &p_local_xform, const Ref<Shape2D> &p_shape, const Transform2D &p_shape_xform) { - ERR_FAIL_COND_V(p_shape.is_null(), Array()); const int max_contacts = 16; Vector2 result[max_contacts * 2]; @@ -97,7 +91,6 @@ Array Shape2D::collide_and_get_contacts(const Transform2D &p_local_xform, const } void Shape2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_custom_solver_bias", "bias"), &Shape2D::set_custom_solver_bias); ClassDB::bind_method(D_METHOD("get_custom_solver_bias"), &Shape2D::get_custom_solver_bias); ClassDB::bind_method(D_METHOD("collide", "local_xform", "with_shape", "shape_xform"), &Shape2D::collide); @@ -114,6 +107,5 @@ Shape2D::Shape2D(const RID &p_rid) { } Shape2D::~Shape2D() { - PhysicsServer2D::get_singleton()->free(shape); } diff --git a/scene/resources/shape_3d.cpp b/scene/resources/shape_3d.cpp index 97d03b3cfc..110543723c 100644 --- a/scene/resources/shape_3d.cpp +++ b/scene/resources/shape_3d.cpp @@ -36,11 +36,9 @@ #include "servers/physics_server_3d.h" void Shape3D::add_vertices_to_array(Vector<Vector3> &array, const Transform &p_xform) { - Vector<Vector3> toadd = get_debug_mesh_lines(); if (toadd.size()) { - int base = array.size(); array.resize(base + toadd.size()); Vector3 *w = array.ptrw(); @@ -60,7 +58,6 @@ void Shape3D::set_margin(real_t p_margin) { } Ref<ArrayMesh> Shape3D::get_debug_mesh() { - if (debug_mesh_cache.is_valid()) return debug_mesh_cache; @@ -73,7 +70,6 @@ Ref<ArrayMesh> Shape3D::get_debug_mesh() { Vector<Vector3> array; array.resize(lines.size()); { - Vector3 *w = array.ptrw(); for (int i = 0; i < lines.size(); i++) { w[i] = lines[i]; @@ -102,7 +98,6 @@ void Shape3D::_update_shape() { } void Shape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_margin", "margin"), &Shape3D::set_margin); ClassDB::bind_method(D_METHOD("get_margin"), &Shape3D::get_margin); diff --git a/scene/resources/shape_3d.h b/scene/resources/shape_3d.h index 6516868fd5..a83b2ed009 100644 --- a/scene/resources/shape_3d.h +++ b/scene/resources/shape_3d.h @@ -36,7 +36,6 @@ class ArrayMesh; class Shape3D : public Resource { - GDCLASS(Shape3D, Resource); OBJ_SAVE_TYPE(Shape3D); RES_BASE_EXTENSION("shape"); diff --git a/scene/resources/skin.cpp b/scene/resources/skin.cpp index df0620b6c4..86b65925f5 100644 --- a/scene/resources/skin.cpp +++ b/scene/resources/skin.cpp @@ -46,7 +46,6 @@ void Skin::add_bind(int p_bone, const Transform &p_pose) { } void Skin::add_named_bind(const String &p_name, const Transform &p_pose) { - uint32_t index = bind_count; set_bind_count(bind_count + 1); set_bind_name(index, p_name); @@ -105,7 +104,6 @@ bool Skin::_set(const StringName &p_name, const Variant &p_value) { } bool Skin::_get(const StringName &p_name, Variant &r_ret) const { - String name = p_name; if (name == "bind_count") { r_ret = get_bind_count(); @@ -136,7 +134,6 @@ void Skin::_get_property_list(List<PropertyInfo> *p_list) const { } void Skin::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_bind_count", "bind_count"), &Skin::set_bind_count); ClassDB::bind_method(D_METHOD("get_bind_count"), &Skin::get_bind_count); diff --git a/scene/resources/sky.cpp b/scene/resources/sky.cpp index cbe86b16b2..e7ca12162b 100644 --- a/scene/resources/sky.cpp +++ b/scene/resources/sky.cpp @@ -43,7 +43,6 @@ void Sky::set_radiance_size(RadianceSize p_size) { } Sky::RadianceSize Sky::get_radiance_size() const { - return radiance_size; } @@ -69,12 +68,10 @@ Ref<Material> Sky::get_material() const { } RID Sky::get_rid() const { - return sky; } void Sky::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_radiance_size", "size"), &Sky::set_radiance_size); ClassDB::bind_method(D_METHOD("get_radiance_size"), &Sky::get_radiance_size); @@ -108,6 +105,5 @@ Sky::Sky() { } Sky::~Sky() { - RS::get_singleton()->free(sky); }
\ No newline at end of file diff --git a/scene/resources/sky_material.cpp b/scene/resources/sky_material.cpp index a0b6ab1e30..860673bee6 100644 --- a/scene/resources/sky_material.cpp +++ b/scene/resources/sky_material.cpp @@ -31,103 +31,83 @@ #include "sky_material.h" void ProceduralSkyMaterial::set_sky_top_color(const Color &p_sky_top) { - sky_top_color = p_sky_top; RS::get_singleton()->material_set_param(_get_material(), "sky_top_color", sky_top_color.to_linear()); } Color ProceduralSkyMaterial::get_sky_top_color() const { - return sky_top_color; } void ProceduralSkyMaterial::set_sky_horizon_color(const Color &p_sky_horizon) { - sky_horizon_color = p_sky_horizon; RS::get_singleton()->material_set_param(_get_material(), "sky_horizon_color", sky_horizon_color.to_linear()); } Color ProceduralSkyMaterial::get_sky_horizon_color() const { - return sky_horizon_color; } void ProceduralSkyMaterial::set_sky_curve(float p_curve) { - sky_curve = p_curve; RS::get_singleton()->material_set_param(_get_material(), "sky_curve", sky_curve); } float ProceduralSkyMaterial::get_sky_curve() const { - return sky_curve; } void ProceduralSkyMaterial::set_sky_energy(float p_energy) { - sky_energy = p_energy; RS::get_singleton()->material_set_param(_get_material(), "sky_energy", sky_energy); } float ProceduralSkyMaterial::get_sky_energy() const { - return sky_energy; } void ProceduralSkyMaterial::set_ground_bottom_color(const Color &p_ground_bottom) { - ground_bottom_color = p_ground_bottom; RS::get_singleton()->material_set_param(_get_material(), "ground_bottom_color", ground_bottom_color.to_linear()); } Color ProceduralSkyMaterial::get_ground_bottom_color() const { - return ground_bottom_color; } void ProceduralSkyMaterial::set_ground_horizon_color(const Color &p_ground_horizon) { - ground_horizon_color = p_ground_horizon; RS::get_singleton()->material_set_param(_get_material(), "ground_horizon_color", ground_horizon_color.to_linear()); } Color ProceduralSkyMaterial::get_ground_horizon_color() const { - return ground_horizon_color; } void ProceduralSkyMaterial::set_ground_curve(float p_curve) { - ground_curve = p_curve; RS::get_singleton()->material_set_param(_get_material(), "ground_curve", ground_curve); } float ProceduralSkyMaterial::get_ground_curve() const { - return ground_curve; } void ProceduralSkyMaterial::set_ground_energy(float p_energy) { - ground_energy = p_energy; RS::get_singleton()->material_set_param(_get_material(), "ground_energy", ground_energy); } float ProceduralSkyMaterial::get_ground_energy() const { - return ground_energy; } void ProceduralSkyMaterial::set_sun_angle_max(float p_angle) { - sun_angle_max = p_angle; RS::get_singleton()->material_set_param(_get_material(), "sun_angle_max", Math::deg2rad(sun_angle_max)); } float ProceduralSkyMaterial::get_sun_angle_max() const { - return sun_angle_max; } void ProceduralSkyMaterial::set_sun_curve(float p_curve) { - sun_curve = p_curve; RS::get_singleton()->material_set_param(_get_material(), "sun_curve", sun_curve); } float ProceduralSkyMaterial::get_sun_curve() const { - return sun_curve; } @@ -136,17 +116,14 @@ bool ProceduralSkyMaterial::_can_do_next_pass() const { } Shader::Mode ProceduralSkyMaterial::get_shader_mode() const { - return Shader::MODE_SKY; } RID ProceduralSkyMaterial::get_shader_rid() const { - return shader; } void ProceduralSkyMaterial::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_sky_top_color", "color"), &ProceduralSkyMaterial::set_sky_top_color); ClassDB::bind_method(D_METHOD("get_sky_top_color"), &ProceduralSkyMaterial::get_sky_top_color); @@ -195,7 +172,6 @@ void ProceduralSkyMaterial::_bind_methods() { } ProceduralSkyMaterial::ProceduralSkyMaterial() { - String code = "shader_type sky;\n\n"; code += "uniform vec4 sky_top_color : hint_color = vec4(0.35, 0.46, 0.71, 1.0);\n"; @@ -285,13 +261,11 @@ ProceduralSkyMaterial::~ProceduralSkyMaterial() { /* PanoramaSkyMaterial */ void PanoramaSkyMaterial::set_panorama(const Ref<Texture2D> &p_panorama) { - panorama = p_panorama; RS::get_singleton()->material_set_param(_get_material(), "source_panorama", panorama); } Ref<Texture2D> PanoramaSkyMaterial::get_panorama() const { - return panorama; } @@ -300,17 +274,14 @@ bool PanoramaSkyMaterial::_can_do_next_pass() const { } Shader::Mode PanoramaSkyMaterial::get_shader_mode() const { - return Shader::MODE_SKY; } RID PanoramaSkyMaterial::get_shader_rid() const { - return shader; } void PanoramaSkyMaterial::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_panorama", "texture"), &PanoramaSkyMaterial::set_panorama); ClassDB::bind_method(D_METHOD("get_panorama"), &PanoramaSkyMaterial::get_panorama); @@ -340,47 +311,38 @@ PanoramaSkyMaterial::~PanoramaSkyMaterial() { /* PhysicalSkyMaterial */ void PhysicalSkyMaterial::set_rayleigh_coefficient(float p_rayleigh) { - rayleigh = p_rayleigh; RS::get_singleton()->material_set_param(_get_material(), "rayleigh", rayleigh); } float PhysicalSkyMaterial::get_rayleigh_coefficient() const { - return rayleigh; } void PhysicalSkyMaterial::set_rayleigh_color(Color p_rayleigh_color) { - rayleigh_color = p_rayleigh_color; RS::get_singleton()->material_set_param(_get_material(), "rayleigh_color", rayleigh_color); } Color PhysicalSkyMaterial::get_rayleigh_color() const { - return rayleigh_color; } void PhysicalSkyMaterial::set_mie_coefficient(float p_mie) { - mie = p_mie; RS::get_singleton()->material_set_param(_get_material(), "mie", mie); } float PhysicalSkyMaterial::get_mie_coefficient() const { - return mie; } void PhysicalSkyMaterial::set_mie_eccentricity(float p_eccentricity) { - mie_eccentricity = p_eccentricity; RS::get_singleton()->material_set_param(_get_material(), "mie_eccentricity", mie_eccentricity); } float PhysicalSkyMaterial::get_mie_eccentricity() const { - return mie_eccentricity; } void PhysicalSkyMaterial::set_mie_color(Color p_mie_color) { - mie_color = p_mie_color; RS::get_singleton()->material_set_param(_get_material(), "mie_color", mie_color); } @@ -389,52 +351,42 @@ Color PhysicalSkyMaterial::get_mie_color() const { } void PhysicalSkyMaterial::set_turbidity(float p_turbidity) { - turbidity = p_turbidity; RS::get_singleton()->material_set_param(_get_material(), "turbidity", turbidity); } float PhysicalSkyMaterial::get_turbidity() const { - return turbidity; } void PhysicalSkyMaterial::set_sun_disk_scale(float p_sun_disk_scale) { - sun_disk_scale = p_sun_disk_scale; RS::get_singleton()->material_set_param(_get_material(), "sun_disk_scale", sun_disk_scale); } float PhysicalSkyMaterial::get_sun_disk_scale() const { - return sun_disk_scale; } void PhysicalSkyMaterial::set_ground_color(Color p_ground_color) { - ground_color = p_ground_color; RS::get_singleton()->material_set_param(_get_material(), "ground_color", ground_color); } Color PhysicalSkyMaterial::get_ground_color() const { - return ground_color; } void PhysicalSkyMaterial::set_exposure(float p_exposure) { - exposure = p_exposure; RS::get_singleton()->material_set_param(_get_material(), "exposure", exposure); } float PhysicalSkyMaterial::get_exposure() const { - return exposure; } void PhysicalSkyMaterial::set_dither_strength(float p_dither_strength) { - dither_strength = p_dither_strength; RS::get_singleton()->material_set_param(_get_material(), "dither_strength", dither_strength); } float PhysicalSkyMaterial::get_dither_strength() const { - return dither_strength; } @@ -443,17 +395,14 @@ bool PhysicalSkyMaterial::_can_do_next_pass() const { } Shader::Mode PhysicalSkyMaterial::get_shader_mode() const { - return Shader::MODE_SKY; } RID PhysicalSkyMaterial::get_shader_rid() const { - return shader; } void PhysicalSkyMaterial::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_rayleigh_coefficient", "rayleigh"), &PhysicalSkyMaterial::set_rayleigh_coefficient); ClassDB::bind_method(D_METHOD("get_rayleigh_coefficient"), &PhysicalSkyMaterial::get_rayleigh_coefficient); diff --git a/scene/resources/sky_material.h b/scene/resources/sky_material.h index 9bd9d7ec8b..cd245a2897 100644 --- a/scene/resources/sky_material.h +++ b/scene/resources/sky_material.h @@ -35,7 +35,6 @@ #define SKY_MATERIAL_H class ProceduralSkyMaterial : public Material { - GDCLASS(ProceduralSkyMaterial, Material); private: diff --git a/scene/resources/sphere_shape_3d.cpp b/scene/resources/sphere_shape_3d.cpp index 153db4c291..d24998ff18 100644 --- a/scene/resources/sphere_shape_3d.cpp +++ b/scene/resources/sphere_shape_3d.cpp @@ -32,13 +32,11 @@ #include "servers/physics_server_3d.h" Vector<Vector3> SphereShape3D::get_debug_mesh_lines() { - float r = get_radius(); Vector<Vector3> points; for (int i = 0; i <= 360; i++) { - float ra = Math::deg2rad((float)i); float rb = Math::deg2rad((float)i + 1); Point2 a = Vector2(Math::sin(ra), Math::cos(ra)) * r; @@ -60,13 +58,11 @@ real_t SphereShape3D::get_enclosing_radius() const { } void SphereShape3D::_update_shape() { - PhysicsServer3D::get_singleton()->shape_set_data(get_shape(), radius); Shape3D::_update_shape(); } void SphereShape3D::set_radius(float p_radius) { - radius = p_radius; _update_shape(); notify_change_to_owners(); @@ -74,12 +70,10 @@ void SphereShape3D::set_radius(float p_radius) { } float SphereShape3D::get_radius() const { - return radius; } void SphereShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_radius", "radius"), &SphereShape3D::set_radius); ClassDB::bind_method(D_METHOD("get_radius"), &SphereShape3D::get_radius); @@ -88,6 +82,5 @@ void SphereShape3D::_bind_methods() { SphereShape3D::SphereShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_SPHERE)) { - set_radius(1.0); } diff --git a/scene/resources/sphere_shape_3d.h b/scene/resources/sphere_shape_3d.h index 3ed50cfe83..ee31bb615c 100644 --- a/scene/resources/sphere_shape_3d.h +++ b/scene/resources/sphere_shape_3d.h @@ -34,7 +34,6 @@ #include "scene/resources/shape_3d.h" class SphereShape3D : public Shape3D { - GDCLASS(SphereShape3D, Shape3D); float radius; diff --git a/scene/resources/style_box.cpp b/scene/resources/style_box.cpp index 56fb5d441f..550abd29af 100644 --- a/scene/resources/style_box.cpp +++ b/scene/resources/style_box.cpp @@ -35,26 +35,22 @@ #include <limits.h> bool StyleBox::test_mask(const Point2 &p_point, const Rect2 &p_rect) const { - return true; } void StyleBox::set_default_margin(Margin p_margin, float p_value) { - ERR_FAIL_INDEX((int)p_margin, 4); margin[p_margin] = p_value; emit_changed(); } float StyleBox::get_default_margin(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); return margin[p_margin]; } float StyleBox::get_margin(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); if (margin[p_margin] < 0) @@ -68,17 +64,14 @@ CanvasItem *StyleBox::get_current_item_drawn() const { } Size2 StyleBox::get_minimum_size() const { - return Size2(get_margin(MARGIN_LEFT) + get_margin(MARGIN_RIGHT), get_margin(MARGIN_TOP) + get_margin(MARGIN_BOTTOM)); } Point2 StyleBox::get_offset() const { - return Point2(get_margin(MARGIN_LEFT), get_margin(MARGIN_TOP)); } Size2 StyleBox::get_center_size() const { - return Size2(); } @@ -87,7 +80,6 @@ Rect2 StyleBox::get_draw_rect(const Rect2 &p_rect) const { } void StyleBox::_bind_methods() { - ClassDB::bind_method(D_METHOD("test_mask", "point", "rect"), &StyleBox::test_mask); ClassDB::bind_method(D_METHOD("set_default_margin", "margin", "offset"), &StyleBox::set_default_margin); @@ -112,15 +104,12 @@ void StyleBox::_bind_methods() { } StyleBox::StyleBox() { - for (int i = 0; i < 4; i++) { - margin[i] = -1; } } void StyleBoxTexture::set_texture(Ref<Texture2D> p_texture) { - if (texture == p_texture) return; texture = p_texture; @@ -135,12 +124,10 @@ void StyleBoxTexture::set_texture(Ref<Texture2D> p_texture) { } Ref<Texture2D> StyleBoxTexture::get_texture() const { - return texture; } void StyleBoxTexture::set_normal_map(Ref<Texture2D> p_normal_map) { - if (normal_map == p_normal_map) return; normal_map = p_normal_map; @@ -148,12 +135,10 @@ void StyleBoxTexture::set_normal_map(Ref<Texture2D> p_normal_map) { } Ref<Texture2D> StyleBoxTexture::get_normal_map() const { - return normal_map; } void StyleBoxTexture::set_margin_size(Margin p_margin, float p_size) { - ERR_FAIL_INDEX((int)p_margin, 4); margin[p_margin] = p_size; @@ -167,14 +152,12 @@ void StyleBoxTexture::set_margin_size(Margin p_margin, float p_size) { _change_notify(margin_prop[p_margin]); } float StyleBoxTexture::get_margin_size(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); return margin[p_margin]; } float StyleBoxTexture::get_style_margin(Margin p_margin) const { - ERR_FAIL_INDEX_V((int)p_margin, 4, 0.0); return margin[p_margin]; @@ -206,18 +189,15 @@ void StyleBoxTexture::draw(RID p_canvas_item, const Rect2 &p_rect) const { } void StyleBoxTexture::set_draw_center(bool p_enabled) { - draw_center = p_enabled; emit_changed(); } bool StyleBoxTexture::is_draw_center_enabled() const { - return draw_center; } Size2 StyleBoxTexture::get_center_size() const { - if (texture.is_null()) return Size2(); @@ -225,7 +205,6 @@ Size2 StyleBoxTexture::get_center_size() const { } void StyleBoxTexture::set_expand_margin_size(Margin p_expand_margin, float p_size) { - ERR_FAIL_INDEX((int)p_expand_margin, 4); expand_margin[p_expand_margin] = p_size; emit_changed(); @@ -241,20 +220,17 @@ void StyleBoxTexture::set_expand_margin_size_individual(float p_left, float p_to void StyleBoxTexture::set_expand_margin_size_all(float p_expand_margin_size) { for (int i = 0; i < 4; i++) { - expand_margin[i] = p_expand_margin_size; } emit_changed(); } float StyleBoxTexture::get_expand_margin_size(Margin p_expand_margin) const { - ERR_FAIL_INDEX_V((int)p_expand_margin, 4, 0); return expand_margin[p_expand_margin]; } void StyleBoxTexture::set_region_rect(const Rect2 &p_region_rect) { - if (region_rect == p_region_rect) return; @@ -263,31 +239,26 @@ void StyleBoxTexture::set_region_rect(const Rect2 &p_region_rect) { } Rect2 StyleBoxTexture::get_region_rect() const { - return region_rect; } void StyleBoxTexture::set_h_axis_stretch_mode(AxisStretchMode p_mode) { - ERR_FAIL_INDEX((int)p_mode, 3); axis_h = p_mode; emit_changed(); } StyleBoxTexture::AxisStretchMode StyleBoxTexture::get_h_axis_stretch_mode() const { - return axis_h; } void StyleBoxTexture::set_v_axis_stretch_mode(AxisStretchMode p_mode) { - ERR_FAIL_INDEX((int)p_mode, 3); axis_v = p_mode; emit_changed(); } StyleBoxTexture::AxisStretchMode StyleBoxTexture::get_v_axis_stretch_mode() const { - return axis_v; } @@ -299,12 +270,10 @@ void StyleBoxTexture::set_modulate(const Color &p_modulate) { } Color StyleBoxTexture::get_modulate() const { - return modulate; } void StyleBoxTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_texture", "texture"), &StyleBoxTexture::set_texture); ClassDB::bind_method(D_METHOD("get_texture"), &StyleBoxTexture::get_texture); @@ -362,7 +331,6 @@ void StyleBoxTexture::_bind_methods() { } StyleBoxTexture::StyleBoxTexture() { - for (int i = 0; i < 4; i++) { margin[i] = 0; expand_margin[i] = 0; @@ -379,23 +347,19 @@ StyleBoxTexture::~StyleBoxTexture() { //////////////// void StyleBoxFlat::set_bg_color(const Color &p_color) { - bg_color = p_color; emit_changed(); } Color StyleBoxFlat::get_bg_color() const { - return bg_color; } void StyleBoxFlat::set_border_color(const Color &p_color) { - border_color = p_color; emit_changed(); } Color StyleBoxFlat::get_border_color() const { - return border_color; } @@ -407,7 +371,6 @@ void StyleBoxFlat::set_border_width_all(int p_size) { emit_changed(); } int StyleBoxFlat::get_border_width_min() const { - return MIN(MIN(border_width[0], border_width[1]), MIN(border_width[2], border_width[3])); } @@ -423,17 +386,14 @@ int StyleBoxFlat::get_border_width(Margin p_margin) const { } void StyleBoxFlat::set_border_blend(bool p_blend) { - blend_border = p_blend; emit_changed(); } bool StyleBoxFlat::get_border_blend() const { - return blend_border; } void StyleBoxFlat::set_corner_radius_all(int radius) { - for (int i = 0; i < 4; i++) { corner_radius[i] = radius; } @@ -459,19 +419,16 @@ int StyleBoxFlat::get_corner_radius_min() const { } void StyleBoxFlat::set_corner_radius(const Corner p_corner, const int radius) { - ERR_FAIL_INDEX((int)p_corner, 4); corner_radius[p_corner] = radius; emit_changed(); } int StyleBoxFlat::get_corner_radius(const Corner p_corner) const { - ERR_FAIL_INDEX_V((int)p_corner, 4, 0); return corner_radius[p_corner]; } void StyleBoxFlat::set_expand_margin_size(Margin p_expand_margin, float p_size) { - ERR_FAIL_INDEX((int)p_expand_margin, 4); expand_margin[p_expand_margin] = p_size; emit_changed(); @@ -487,54 +444,44 @@ void StyleBoxFlat::set_expand_margin_size_individual(float p_left, float p_top, void StyleBoxFlat::set_expand_margin_size_all(float p_expand_margin_size) { for (int i = 0; i < 4; i++) { - expand_margin[i] = p_expand_margin_size; } emit_changed(); } float StyleBoxFlat::get_expand_margin_size(Margin p_expand_margin) const { - ERR_FAIL_INDEX_V((int)p_expand_margin, 4, 0.0); return expand_margin[p_expand_margin]; } void StyleBoxFlat::set_draw_center(bool p_enabled) { - draw_center = p_enabled; emit_changed(); } bool StyleBoxFlat::is_draw_center_enabled() const { - return draw_center; } void StyleBoxFlat::set_shadow_color(const Color &p_color) { - shadow_color = p_color; emit_changed(); } Color StyleBoxFlat::get_shadow_color() const { - return shadow_color; } void StyleBoxFlat::set_shadow_size(const int &p_size) { - shadow_size = p_size; emit_changed(); } int StyleBoxFlat::get_shadow_size() const { - return shadow_size; } void StyleBoxFlat::set_shadow_offset(const Point2 &p_offset) { - shadow_offset = p_offset; emit_changed(); } Point2 StyleBoxFlat::get_shadow_offset() const { - return shadow_offset; } @@ -563,7 +510,6 @@ int StyleBoxFlat::get_corner_detail() const { } Size2 StyleBoxFlat::get_center_size() const { - return Size2(); } @@ -593,7 +539,6 @@ inline void set_inner_corner_radius(const Rect2 style_rect, const Rect2 inner_re inline void draw_ring(Vector<Vector2> &verts, Vector<int> &indices, Vector<Color> &colors, const Rect2 &style_rect, const int corner_radius[4], const Rect2 &ring_rect, const Rect2 &inner_rect, const Color &inner_color, const Color &outer_color, const int corner_detail, const bool fill_center = false) { - int vert_offset = verts.size(); if (!vert_offset) { vert_offset = 0; @@ -705,7 +650,6 @@ Rect2 StyleBoxFlat::get_draw_rect(const Rect2 &p_rect) const { } void StyleBoxFlat::draw(RID p_canvas_item, const Rect2 &p_rect) const { - //PREPARATIONS bool draw_border = (border_width[0] > 0) || (border_width[1] > 0) || (border_width[2] > 0) || (border_width[3] > 0); bool draw_shadow = (shadow_size > 0); @@ -862,7 +806,6 @@ float StyleBoxFlat::get_style_margin(Margin p_margin) const { return border_width[p_margin]; } void StyleBoxFlat::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_bg_color", "color"), &StyleBoxFlat::set_bg_color); ClassDB::bind_method(D_METHOD("get_bg_color"), &StyleBoxFlat::get_bg_color); @@ -950,7 +893,6 @@ void StyleBoxFlat::_bind_methods() { } StyleBoxFlat::StyleBoxFlat() { - bg_color = Color(0.6, 0.6, 0.6); shadow_color = Color(0, 0, 0, 0.6); border_color = Color(0.8, 0.8, 0.8); @@ -1023,7 +965,6 @@ float StyleBoxLine::get_grow_begin() const { } void StyleBoxLine::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_color", "color"), &StyleBoxLine::set_color); ClassDB::bind_method(D_METHOD("get_color"), &StyleBoxLine::get_color); ClassDB::bind_method(D_METHOD("set_thickness", "thickness"), &StyleBoxLine::set_thickness); diff --git a/scene/resources/style_box.h b/scene/resources/style_box.h index f19b93d00d..99adbe589a 100644 --- a/scene/resources/style_box.h +++ b/scene/resources/style_box.h @@ -38,7 +38,6 @@ class CanvasItem; class StyleBox : public Resource { - GDCLASS(StyleBox, Resource); RES_BASE_EXTENSION("stylebox"); OBJ_SAVE_TYPE(StyleBox); @@ -68,7 +67,6 @@ public: }; class StyleBoxEmpty : public StyleBox { - GDCLASS(StyleBoxEmpty, StyleBox); virtual float get_style_margin(Margin p_margin) const { return 0; } @@ -78,7 +76,6 @@ public: }; class StyleBoxTexture : public StyleBox { - GDCLASS(StyleBoxTexture, StyleBox); public: @@ -144,7 +141,6 @@ public: VARIANT_ENUM_CAST(StyleBoxTexture::AxisStretchMode) class StyleBoxFlat : public StyleBox { - GDCLASS(StyleBoxFlat, StyleBox); Color bg_color; @@ -238,7 +234,6 @@ public: // just used to draw lines. class StyleBoxLine : public StyleBox { - GDCLASS(StyleBoxLine, StyleBox); Color color; int thickness; diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index 4b392e23b7..95eaf461e1 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -36,7 +36,6 @@ #define EQ_VERTEX_DIST 0.00001 bool SurfaceTool::Vertex::operator==(const Vertex &p_vertex) const { - if (vertex != p_vertex.vertex) return false; @@ -72,7 +71,6 @@ bool SurfaceTool::Vertex::operator==(const Vertex &p_vertex) const { } uint32_t SurfaceTool::VertexHasher::hash(const Vertex &p_vtx) { - uint32_t h = hash_djb2_buffer((const uint8_t *)&p_vtx.vertex, sizeof(real_t) * 3); h = hash_djb2_buffer((const uint8_t *)&p_vtx.normal, sizeof(real_t) * 3, h); h = hash_djb2_buffer((const uint8_t *)&p_vtx.binormal, sizeof(real_t) * 3, h); @@ -86,7 +84,6 @@ uint32_t SurfaceTool::VertexHasher::hash(const Vertex &p_vtx) { } void SurfaceTool::begin(Mesh::PrimitiveType p_primitive) { - clear(); primitive = p_primitive; @@ -95,7 +92,6 @@ void SurfaceTool::begin(Mesh::PrimitiveType p_primitive) { } void SurfaceTool::add_vertex(const Vector3 &p_vertex) { - ERR_FAIL_COND(!begun); Vertex vtx; @@ -160,7 +156,6 @@ void SurfaceTool::add_vertex(const Vector3 &p_vertex) { format |= Mesh::ARRAY_FORMAT_VERTEX; } void SurfaceTool::add_color(Color p_color) { - ERR_FAIL_COND(!begun); ERR_FAIL_COND(!first && !(format & Mesh::ARRAY_FORMAT_COLOR)); @@ -169,7 +164,6 @@ void SurfaceTool::add_color(Color p_color) { last_color = p_color; } void SurfaceTool::add_normal(const Vector3 &p_normal) { - ERR_FAIL_COND(!begun); ERR_FAIL_COND(!first && !(format & Mesh::ARRAY_FORMAT_NORMAL)); @@ -179,7 +173,6 @@ void SurfaceTool::add_normal(const Vector3 &p_normal) { } void SurfaceTool::add_tangent(const Plane &p_tangent) { - ERR_FAIL_COND(!begun); ERR_FAIL_COND(!first && !(format & Mesh::ARRAY_FORMAT_TANGENT)); @@ -188,7 +181,6 @@ void SurfaceTool::add_tangent(const Plane &p_tangent) { } void SurfaceTool::add_uv(const Vector2 &p_uv) { - ERR_FAIL_COND(!begun); ERR_FAIL_COND(!first && !(format & Mesh::ARRAY_FORMAT_TEX_UV)); @@ -197,7 +189,6 @@ void SurfaceTool::add_uv(const Vector2 &p_uv) { } void SurfaceTool::add_uv2(const Vector2 &p_uv2) { - ERR_FAIL_COND(!begun); ERR_FAIL_COND(!first && !(format & Mesh::ARRAY_FORMAT_TEX_UV2)); @@ -206,7 +197,6 @@ void SurfaceTool::add_uv2(const Vector2 &p_uv2) { } void SurfaceTool::add_bones(const Vector<int> &p_bones) { - ERR_FAIL_COND(!begun); ERR_FAIL_COND(!first && !(format & Mesh::ARRAY_FORMAT_BONES)); @@ -215,7 +205,6 @@ void SurfaceTool::add_bones(const Vector<int> &p_bones) { } void SurfaceTool::add_weights(const Vector<float> &p_weights) { - ERR_FAIL_COND(!begun); ERR_FAIL_COND(!first && !(format & Mesh::ARRAY_FORMAT_WEIGHTS)); @@ -224,12 +213,10 @@ void SurfaceTool::add_weights(const Vector<float> &p_weights) { } void SurfaceTool::add_smooth_group(bool p_smooth) { - ERR_FAIL_COND(!begun); if (index_array.size()) { smooth_groups[index_array.size()] = p_smooth; } else { - smooth_groups[vertex_array.size()] = p_smooth; } } @@ -264,7 +251,6 @@ void SurfaceTool::add_triangle_fan(const Vector<Vector3> &p_vertices, const Vect } void SurfaceTool::add_index(int p_index) { - ERR_FAIL_COND(!begun); format |= Mesh::ARRAY_FORMAT_INDEX; @@ -272,29 +258,24 @@ void SurfaceTool::add_index(int p_index) { } Array SurfaceTool::commit_to_arrays() { - int varr_len = vertex_array.size(); Array a; a.resize(Mesh::ARRAY_MAX); for (int i = 0; i < Mesh::ARRAY_MAX; i++) { - if (!(format & (1 << i))) continue; //not in format switch (i) { - case Mesh::ARRAY_VERTEX: case Mesh::ARRAY_NORMAL: { - Vector<Vector3> array; array.resize(varr_len); Vector3 *w = array.ptrw(); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next(), idx++) { - const Vertex &v = E->get(); switch (i) { @@ -313,18 +294,15 @@ Array SurfaceTool::commit_to_arrays() { case Mesh::ARRAY_TEX_UV: case Mesh::ARRAY_TEX_UV2: { - Vector<Vector2> array; array.resize(varr_len); Vector2 *w = array.ptrw(); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next(), idx++) { - const Vertex &v = E->get(); switch (i) { - case Mesh::ARRAY_TEX_UV: { w[idx] = v.uv; } break; @@ -337,14 +315,12 @@ Array SurfaceTool::commit_to_arrays() { a[i] = array; } break; case Mesh::ARRAY_TANGENT: { - Vector<float> array; array.resize(varr_len * 4); float *w = array.ptrw(); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next(), idx += 4) { - const Vertex &v = E->get(); w[idx + 0] = v.tangent.x; @@ -360,14 +336,12 @@ Array SurfaceTool::commit_to_arrays() { } break; case Mesh::ARRAY_COLOR: { - Vector<Color> array; array.resize(varr_len); Color *w = array.ptrw(); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next(), idx++) { - const Vertex &v = E->get(); w[idx] = v.color; } @@ -375,14 +349,12 @@ Array SurfaceTool::commit_to_arrays() { a[i] = array; } break; case Mesh::ARRAY_BONES: { - Vector<int> array; array.resize(varr_len * 4); int *w = array.ptrw(); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next(), idx += 4) { - const Vertex &v = E->get(); ERR_CONTINUE(v.bones.size() != 4); @@ -396,19 +368,16 @@ Array SurfaceTool::commit_to_arrays() { } break; case Mesh::ARRAY_WEIGHTS: { - Vector<float> array; array.resize(varr_len * 4); float *w = array.ptrw(); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next(), idx += 4) { - const Vertex &v = E->get(); ERR_CONTINUE(v.weights.size() != 4); for (int j = 0; j < 4; j++) { - w[idx + j] = v.weights[j]; } } @@ -417,7 +386,6 @@ Array SurfaceTool::commit_to_arrays() { } break; case Mesh::ARRAY_INDEX: { - ERR_CONTINUE(index_array.size() == 0); Vector<int> array; @@ -426,7 +394,6 @@ Array SurfaceTool::commit_to_arrays() { int idx = 0; for (List<int>::Element *E = index_array.front(); E; E = E->next(), idx++) { - w[idx] = E->get(); } @@ -442,7 +409,6 @@ Array SurfaceTool::commit_to_arrays() { } Ref<ArrayMesh> SurfaceTool::commit(const Ref<ArrayMesh> &p_existing, uint32_t p_flags) { - Ref<ArrayMesh> mesh; if (p_existing.is_valid()) mesh = p_existing; @@ -467,7 +433,6 @@ Ref<ArrayMesh> SurfaceTool::commit(const Ref<ArrayMesh> &p_existing, uint32_t p_ } void SurfaceTool::index() { - if (index_array.size()) return; //already indexed @@ -475,7 +440,6 @@ void SurfaceTool::index() { List<Vertex> new_vertices; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next()) { - int *idxptr = indices.getptr(E->get()); int idx; if (!idxptr) { @@ -496,19 +460,16 @@ void SurfaceTool::index() { } void SurfaceTool::deindex() { - if (index_array.size() == 0) return; //nothing to deindex Vector<Vertex> varr; varr.resize(vertex_array.size()); int idx = 0; for (List<Vertex>::Element *E = vertex_array.front(); E; E = E->next()) { - varr.write[idx++] = E->get(); } vertex_array.clear(); for (List<int>::Element *E = index_array.front(); E; E = E->next()) { - ERR_FAIL_INDEX(E->get(), varr.size()); vertex_array.push_back(varr[E->get()]); } @@ -517,14 +478,12 @@ void SurfaceTool::deindex() { } void SurfaceTool::_create_list(const Ref<Mesh> &p_existing, int p_surface, List<Vertex> *r_vertex, List<int> *r_index, int &lformat) { - Array arr = p_existing->surface_get_arrays(p_surface); ERR_FAIL_COND(arr.size() != RS::ARRAY_MAX); _create_list_from_arrays(arr, r_vertex, r_index, lformat); } Vector<SurfaceTool::Vertex> SurfaceTool::create_vertex_array_from_triangle_arrays(const Array &p_arrays) { - Vector<SurfaceTool::Vertex> ret; Vector<Vector3> varr = p_arrays[RS::ARRAY_VERTEX]; @@ -609,7 +568,6 @@ Vector<SurfaceTool::Vertex> SurfaceTool::create_vertex_array_from_triangle_array } void SurfaceTool::_create_list_from_arrays(Array arr, List<Vertex> *r_vertex, List<int> *r_index, int &lformat) { - Vector<Vector3> varr = arr[RS::ARRAY_VERTEX]; Vector<Vector3> narr = arr[RS::ARRAY_NORMAL]; Vector<float> tarr = arr[RS::ARRAY_TANGENT]; @@ -693,7 +651,6 @@ void SurfaceTool::_create_list_from_arrays(Array arr, List<Vertex> *r_vertex, Li Vector<int> idx = arr[RS::ARRAY_INDEX]; int is = idx.size(); if (is) { - lformat |= RS::ARRAY_FORMAT_INDEX; const int *iarr = idx.ptr(); for (int i = 0; i < is; i++) { @@ -703,14 +660,12 @@ void SurfaceTool::_create_list_from_arrays(Array arr, List<Vertex> *r_vertex, Li } void SurfaceTool::create_from_triangle_arrays(const Array &p_arrays) { - clear(); primitive = Mesh::PRIMITIVE_TRIANGLES; _create_list_from_arrays(p_arrays, &vertex_array, &index_array, format); } void SurfaceTool::create_from(const Ref<Mesh> &p_existing, int p_surface) { - clear(); primitive = p_existing->surface_get_primitive_type(p_surface); _create_list(p_existing, p_surface, &vertex_array, &index_array, format); @@ -738,7 +693,6 @@ void SurfaceTool::create_from_blend_shape(const Ref<Mesh> &p_existing, int p_sur } void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const Transform &p_xform) { - if (vertex_array.size() == 0) { primitive = p_existing->surface_get_primitive_type(p_surface); format = 0; @@ -752,7 +706,6 @@ void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const int vfrom = vertex_array.size(); for (List<Vertex>::Element *E = nvertices.front(); E; E = E->next()) { - Vertex v = E->get(); v.vertex = p_xform.xform(v.vertex); if (nformat & RS::ARRAY_FORMAT_NORMAL) { @@ -767,7 +720,6 @@ void SurfaceTool::append_from(const Ref<Mesh> &p_existing, int p_surface, const } for (List<int>::Element *E = nindices.front(); E; E = E->next()) { - int dst_index = E->get() + vfrom; index_array.push_back(dst_index); } @@ -785,7 +737,6 @@ struct TangentGenerationContextUserData { } // namespace int SurfaceTool::mikktGetNumFaces(const SMikkTSpaceContext *pContext) { - TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); if (triangle_data.indices.size() > 0) { @@ -795,11 +746,9 @@ int SurfaceTool::mikktGetNumFaces(const SMikkTSpaceContext *pContext) { } } int SurfaceTool::mikktGetNumVerticesOfFace(const SMikkTSpaceContext *pContext, const int iFace) { - return 3; //always 3 } void SurfaceTool::mikktGetPosition(const SMikkTSpaceContext *pContext, float fvPosOut[], const int iFace, const int iVert) { - TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); Vector3 v; if (triangle_data.indices.size() > 0) { @@ -817,7 +766,6 @@ void SurfaceTool::mikktGetPosition(const SMikkTSpaceContext *pContext, float fvP } void SurfaceTool::mikktGetNormal(const SMikkTSpaceContext *pContext, float fvNormOut[], const int iFace, const int iVert) { - TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); Vector3 v; if (triangle_data.indices.size() > 0) { @@ -834,7 +782,6 @@ void SurfaceTool::mikktGetNormal(const SMikkTSpaceContext *pContext, float fvNor fvNormOut[2] = v.z; } void SurfaceTool::mikktGetTexCoord(const SMikkTSpaceContext *pContext, float fvTexcOut[], const int iFace, const int iVert) { - TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); Vector2 v; if (triangle_data.indices.size() > 0) { @@ -852,7 +799,6 @@ void SurfaceTool::mikktGetTexCoord(const SMikkTSpaceContext *pContext, float fvT void SurfaceTool::mikktSetTSpaceDefault(const SMikkTSpaceContext *pContext, const float fvTangent[], const float fvBiTangent[], const float fMagS, const float fMagT, const tbool bIsOrientationPreserving, const int iFace, const int iVert) { - TangentGenerationContextUserData &triangle_data = *reinterpret_cast<TangentGenerationContextUserData *>(pContext->m_pUserData); Vertex *vtx = nullptr; if (triangle_data.indices.size() > 0) { @@ -871,7 +817,6 @@ void SurfaceTool::mikktSetTSpaceDefault(const SMikkTSpaceContext *pContext, cons } void SurfaceTool::generate_tangents() { - ERR_FAIL_COND(!(format & Mesh::ARRAY_FORMAT_TEX_UV)); ERR_FAIL_COND(!(format & Mesh::ARRAY_FORMAT_NORMAL)); @@ -909,7 +854,6 @@ void SurfaceTool::generate_tangents() { } void SurfaceTool::generate_normals(bool p_flip) { - ERR_FAIL_COND(primitive != Mesh::PRIMITIVE_TRIANGLES); bool was_indexed = index_array.size(); @@ -925,7 +869,6 @@ void SurfaceTool::generate_normals(bool p_flip) { List<Vertex>::Element *B = vertex_array.front(); for (List<Vertex>::Element *E = B; E;) { - List<Vertex>::Element *v[3]; v[0] = E; v[1] = v[0]->next(); @@ -941,9 +884,7 @@ void SurfaceTool::generate_normals(bool p_flip) { normal = Plane(v[2]->get().vertex, v[1]->get().vertex, v[0]->get().vertex).normal; if (smooth) { - for (int i = 0; i < 3; i++) { - Vector3 *lv = vertex_hash.getptr(v[i]->get()); if (!lv) { vertex_hash.set(v[i]->get(), normal); @@ -952,20 +893,15 @@ void SurfaceTool::generate_normals(bool p_flip) { } } } else { - for (int i = 0; i < 3; i++) { - v[i]->get().normal = normal; } } count += 3; if (smooth_groups.has(count) || !E) { - if (vertex_hash.size()) { - while (B != E) { - Vector3 *lv = vertex_hash.getptr(B->get()); if (lv) { B->get().normal = lv->normalized(); @@ -994,12 +930,10 @@ void SurfaceTool::generate_normals(bool p_flip) { } void SurfaceTool::set_material(const Ref<Material> &p_material) { - material = p_material; } void SurfaceTool::clear() { - begun = false; primitive = Mesh::PRIMITIVE_LINES; format = 0; @@ -1012,7 +946,6 @@ void SurfaceTool::clear() { } void SurfaceTool::_bind_methods() { - ClassDB::bind_method(D_METHOD("begin", "primitive"), &SurfaceTool::begin); ClassDB::bind_method(D_METHOD("add_vertex", "vertex"), &SurfaceTool::add_vertex); @@ -1046,7 +979,6 @@ void SurfaceTool::_bind_methods() { } SurfaceTool::SurfaceTool() { - first = false; begun = false; primitive = Mesh::PRIMITIVE_LINES; diff --git a/scene/resources/surface_tool.h b/scene/resources/surface_tool.h index 89034f656d..d7b255e695 100644 --- a/scene/resources/surface_tool.h +++ b/scene/resources/surface_tool.h @@ -36,12 +36,10 @@ #include "thirdparty/misc/mikktspace.h" class SurfaceTool : public Reference { - GDCLASS(SurfaceTool, Reference); public: struct Vertex { - Vector3 vertex; Color color; Vector3 normal; // normal, binormal, tangent diff --git a/scene/resources/text_file.cpp b/scene/resources/text_file.cpp index e291dcb67e..e3bd5ce0ae 100644 --- a/scene/resources/text_file.cpp +++ b/scene/resources/text_file.cpp @@ -49,7 +49,6 @@ void TextFile::reload_from_file() { } Error TextFile::load_text(const String &p_path) { - Vector<uint8_t> sourcef; Error err; FileAccess *f = FileAccess::open(p_path, FileAccess::READ, &err); diff --git a/scene/resources/text_file.h b/scene/resources/text_file.h index 666c088d04..356b070ea0 100644 --- a/scene/resources/text_file.h +++ b/scene/resources/text_file.h @@ -35,7 +35,6 @@ #include "core/io/resource_saver.h" class TextFile : public Resource { - GDCLASS(TextFile, Resource); private: diff --git a/scene/resources/texture.cpp b/scene/resources/texture.cpp index b212bba826..78b8e4d9ff 100644 --- a/scene/resources/texture.cpp +++ b/scene/resources/texture.cpp @@ -39,7 +39,6 @@ #include "servers/camera/camera_feed.h" Size2 Texture2D::get_size() const { - return Size2(get_width(), get_height()); } @@ -48,28 +47,24 @@ bool Texture2D::is_pixel_opaque(int p_x, int p_y) const { } void Texture2D::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); RID specular_rid = p_specular_map.is_valid() ? p_specular_map->get_rid() : RID(); RenderingServer::get_singleton()->canvas_item_add_texture_rect(p_canvas_item, Rect2(p_pos, get_size()), get_rid(), false, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } void Texture2D::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); RID specular_rid = p_specular_map.is_valid() ? p_specular_map->get_rid() : RID(); RenderingServer::get_singleton()->canvas_item_add_texture_rect(p_canvas_item, p_rect, get_rid(), p_tile, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } void Texture2D::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat, bool p_clip_uv) const { - RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); RID specular_rid = p_specular_map.is_valid() ? p_specular_map->get_rid() : RID(); RenderingServer::get_singleton()->canvas_item_add_texture_rect_region(p_canvas_item, p_rect, get_rid(), p_src_rect, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, p_clip_uv, p_texture_filter, p_texture_repeat); } bool Texture2D::get_rect_region(const Rect2 &p_rect, const Rect2 &p_src_rect, Rect2 &r_rect, Rect2 &r_src_rect) const { - r_rect = p_rect; r_src_rect = p_src_rect; @@ -77,7 +72,6 @@ bool Texture2D::get_rect_region(const Rect2 &p_rect, const Rect2 &p_src_rect, Re } void Texture2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_width"), &Texture2D::get_width); ClassDB::bind_method(D_METHOD("get_height"), &Texture2D::get_height); ClassDB::bind_method(D_METHOD("get_size"), &Texture2D::get_size); @@ -96,7 +90,6 @@ Texture2D::Texture2D() { ///////////////////// void ImageTexture::reload_from_file() { - String path = ResourceLoader::path_remap(get_path()); if (!path.is_resource_file()) return; @@ -114,7 +107,6 @@ void ImageTexture::reload_from_file() { } bool ImageTexture::_set(const StringName &p_name, const Variant &p_value) { - if (p_name == "image") create_from_image(p_value); else if (p_name == "size") { @@ -129,7 +121,6 @@ bool ImageTexture::_set(const StringName &p_name, const Variant &p_value) { } bool ImageTexture::_get(const StringName &p_name, Variant &r_ret) const { - if (p_name == "image") r_ret = get_data(); else if (p_name == "size") @@ -141,13 +132,11 @@ bool ImageTexture::_get(const StringName &p_name, Variant &r_ret) const { } void ImageTexture::_get_property_list(List<PropertyInfo> *p_list) const { - p_list->push_back(PropertyInfo(Variant::OBJECT, "image", PROPERTY_HINT_RESOURCE_TYPE, "Image", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_RESOURCE_NOT_PERSISTENT)); p_list->push_back(PropertyInfo(Variant::VECTOR2, "size", PROPERTY_HINT_NONE, "")); } void ImageTexture::_reload_hook(const RID &p_hook) { - String path = get_path(); if (!path.is_resource_file()) return; @@ -166,7 +155,6 @@ void ImageTexture::_reload_hook(const RID &p_hook) { } void ImageTexture::create_from_image(const Ref<Image> &p_image) { - ERR_FAIL_COND(p_image.is_null()); w = p_image->get_width(); h = p_image->get_height(); @@ -186,12 +174,10 @@ void ImageTexture::create_from_image(const Ref<Image> &p_image) { } Image::Format ImageTexture::get_format() const { - return format; } void ImageTexture::update(const Ref<Image> &p_image, bool p_immediate) { - ERR_FAIL_COND(p_image.is_null()); ERR_FAIL_COND(texture.is_null()); ERR_FAIL_COND(p_image->get_width() != w || p_image->get_height() != h); @@ -212,12 +198,10 @@ void ImageTexture::update(const Ref<Image> &p_image, bool p_immediate) { } void ImageTexture::_resource_path_changed() { - String path = get_path(); } Ref<Image> ImageTexture::get_data() const { - if (image_stored) { return RenderingServer::get_singleton()->texture_2d_get(texture); } else { @@ -226,17 +210,14 @@ Ref<Image> ImageTexture::get_data() const { } int ImageTexture::get_width() const { - return w; } int ImageTexture::get_height() const { - return h; } RID ImageTexture::get_rid() const { - if (texture.is_null()) { //we are in trouble, create something temporary texture = RenderingServer::get_singleton()->texture_2d_placeholder_create(); @@ -245,12 +226,10 @@ RID ImageTexture::get_rid() const { } bool ImageTexture::has_alpha() const { - return (format == Image::FORMAT_LA8 || format == Image::FORMAT_RGBA8); } void ImageTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - if ((w | h) == 0) return; RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -258,7 +237,6 @@ void ImageTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_m RenderingServer::get_singleton()->canvas_item_add_texture_rect(p_canvas_item, Rect2(p_pos, Size2(w, h)), texture, false, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } void ImageTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - if ((w | h) == 0) return; RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -266,7 +244,6 @@ void ImageTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile RenderingServer::get_singleton()->canvas_item_add_texture_rect(p_canvas_item, p_rect, texture, p_tile, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } void ImageTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat, bool p_clip_uv) const { - if ((w | h) == 0) return; RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -275,7 +252,6 @@ void ImageTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, cons } bool ImageTexture::is_pixel_opaque(int p_x, int p_y) const { - if (!alpha_cache.is_valid()) { Ref<Image> img = get_data(); if (img.is_valid()) { @@ -290,7 +266,6 @@ bool ImageTexture::is_pixel_opaque(int p_x, int p_y) const { } if (alpha_cache.is_valid()) { - int aw = int(alpha_cache->get_size().width); int ah = int(alpha_cache->get_size().height); if (aw == 0 || ah == 0) { @@ -310,7 +285,6 @@ bool ImageTexture::is_pixel_opaque(int p_x, int p_y) const { } void ImageTexture::set_size_override(const Size2 &p_size) { - Size2 s = p_size; if (s.x != 0) w = s.x; @@ -320,7 +294,6 @@ void ImageTexture::set_size_override(const Size2 &p_size) { } void ImageTexture::set_path(const String &p_path, bool p_take_over) { - if (texture.is_valid()) { RenderingServer::get_singleton()->texture_set_path(texture, p_path); } @@ -329,7 +302,6 @@ void ImageTexture::set_path(const String &p_path, bool p_take_over) { } void ImageTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("create_from_image", "image"), &ImageTexture::create_from_image); ClassDB::bind_method(D_METHOD("get_format"), &ImageTexture::get_format); @@ -339,7 +311,6 @@ void ImageTexture::_bind_methods() { } ImageTexture::ImageTexture() { - w = h = 0; image_stored = false; mipmaps = false; @@ -347,7 +318,6 @@ ImageTexture::ImageTexture() { } ImageTexture::~ImageTexture() { - if (texture.is_valid()) { RenderingServer::get_singleton()->free(texture); } @@ -356,7 +326,6 @@ ImageTexture::~ImageTexture() { ////////////////////////////////////////// Ref<Image> StreamTexture2D::load_image_from_file(FileAccess *f, int p_size_limit) { - uint32_t data_format = f->get_32(); uint32_t w = f->get_16(); uint32_t h = f->get_16(); @@ -376,7 +345,6 @@ Ref<Image> StreamTexture2D::load_image_from_file(FileAccess *f, int p_size_limit bool first = true; for (uint32_t i = 0; i < mipmaps + 1; i++) { - uint32_t size = f->get_32(); if (p_size_limit > 0 && i < (mipmaps - 1) && (sw > p_size_limit || sh > p_size_limit)) { @@ -444,7 +412,6 @@ Ref<Image> StreamTexture2D::load_image_from_file(FileAccess *f, int p_size_limit int ofs = 0; for (int i = 0; i < mipmap_images.size(); i++) { - Vector<uint8_t> id = mipmap_images[i]->get_data(); int len = id.size(); const uint8_t *r = id.ptr(); @@ -458,7 +425,6 @@ Ref<Image> StreamTexture2D::load_image_from_file(FileAccess *f, int p_size_limit } } else if (data_format == DATA_FORMAT_IMAGE) { - int size = Image::get_image_data_size(w, h, format, mipmaps ? true : false); for (uint32_t i = 0; i < mipmaps + 1; i++) { @@ -493,7 +459,6 @@ Ref<Image> StreamTexture2D::load_image_from_file(FileAccess *f, int p_size_limit } void StreamTexture2D::set_path(const String &p_path, bool p_take_over) { - if (texture.is_valid()) { RenderingServer::get_singleton()->texture_set_path(texture, p_path); } @@ -502,7 +467,6 @@ void StreamTexture2D::set_path(const String &p_path, bool p_take_over) { } void StreamTexture2D::_requested_3d(void *p_ud) { - StreamTexture2D *st = (StreamTexture2D *)p_ud; Ref<StreamTexture2D> stex(st); ERR_FAIL_COND(!request_3d_callback); @@ -510,7 +474,6 @@ void StreamTexture2D::_requested_3d(void *p_ud) { } void StreamTexture2D::_requested_roughness(void *p_ud, const String &p_normal_path, RS::TextureDetectRoughnessChannel p_roughness_channel) { - StreamTexture2D *st = (StreamTexture2D *)p_ud; Ref<StreamTexture2D> stex(st); ERR_FAIL_COND(!request_roughness_callback); @@ -518,7 +481,6 @@ void StreamTexture2D::_requested_roughness(void *p_ud, const String &p_normal_pa } void StreamTexture2D::_requested_normal(void *p_ud) { - StreamTexture2D *st = (StreamTexture2D *)p_ud; Ref<StreamTexture2D> stex(st); ERR_FAIL_COND(!request_normal_callback); @@ -530,12 +492,10 @@ StreamTexture2D::TextureFormatRoughnessRequestCallback StreamTexture2D::request_ StreamTexture2D::TextureFormatRequestCallback StreamTexture2D::request_normal_callback = nullptr; Image::Format StreamTexture2D::get_format() const { - return format; } Error StreamTexture2D::_load_data(const String &p_path, int &tw, int &th, int &tw_custom, int &th_custom, Ref<Image> &image, bool &r_request_3d, bool &r_request_normal, bool &r_request_roughness, int &mipmap_limit, int p_size_limit) { - alpha_cache.unref(); ERR_FAIL_COND_V(image.is_null(), ERR_INVALID_PARAMETER); @@ -596,7 +556,6 @@ Error StreamTexture2D::_load_data(const String &p_path, int &tw, int &th, int &t } Error StreamTexture2D::load(const String &p_path) { - int lw, lh, lwc, lhc; Ref<Image> image; image.instance(); @@ -662,20 +621,16 @@ Error StreamTexture2D::load(const String &p_path) { return OK; } String StreamTexture2D::get_load_path() const { - return path_to_file; } int StreamTexture2D::get_width() const { - return w; } int StreamTexture2D::get_height() const { - return h; } RID StreamTexture2D::get_rid() const { - if (!texture.is_valid()) { texture = RS::get_singleton()->texture_2d_placeholder_create(); } @@ -683,7 +638,6 @@ RID StreamTexture2D::get_rid() const { } void StreamTexture2D::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - if ((w | h) == 0) return; RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -691,7 +645,6 @@ void StreamTexture2D::draw(RID p_canvas_item, const Point2 &p_pos, const Color & RenderingServer::get_singleton()->canvas_item_add_texture_rect(p_canvas_item, Rect2(p_pos, Size2(w, h)), texture, false, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } void StreamTexture2D::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - if ((w | h) == 0) return; RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -699,7 +652,6 @@ void StreamTexture2D::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_t RenderingServer::get_singleton()->canvas_item_add_texture_rect(p_canvas_item, p_rect, texture, p_tile, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } void StreamTexture2D::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat, bool p_clip_uv) const { - if ((w | h) == 0) return; RID normal_rid = p_normal_map.is_valid() ? p_normal_map->get_rid() : RID(); @@ -708,12 +660,10 @@ void StreamTexture2D::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, c } bool StreamTexture2D::has_alpha() const { - return false; } Ref<Image> StreamTexture2D::get_data() const { - if (texture.is_valid()) { return RS::get_singleton()->texture_2d_get(texture); } else { @@ -722,7 +672,6 @@ Ref<Image> StreamTexture2D::get_data() const { } bool StreamTexture2D::is_pixel_opaque(int p_x, int p_y) const { - if (!alpha_cache.is_valid()) { Ref<Image> img = get_data(); if (img.is_valid()) { @@ -738,7 +687,6 @@ bool StreamTexture2D::is_pixel_opaque(int p_x, int p_y) const { } if (alpha_cache.is_valid()) { - int aw = int(alpha_cache->get_size().width); int ah = int(alpha_cache->get_size().height); if (aw == 0 || ah == 0) { @@ -758,7 +706,6 @@ bool StreamTexture2D::is_pixel_opaque(int p_x, int p_y) const { } void StreamTexture2D::reload_from_file() { - String path = get_path(); if (!path.is_resource_file()) return; @@ -775,7 +722,6 @@ void StreamTexture2D::_validate_property(PropertyInfo &property) const { } void StreamTexture2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("load", "path"), &StreamTexture2D::load); ClassDB::bind_method(D_METHOD("get_load_path"), &StreamTexture2D::get_load_path); @@ -783,21 +729,18 @@ void StreamTexture2D::_bind_methods() { } StreamTexture2D::StreamTexture2D() { - format = Image::FORMAT_MAX; w = 0; h = 0; } StreamTexture2D::~StreamTexture2D() { - if (texture.is_valid()) { RS::get_singleton()->free(texture); } } RES ResourceFormatLoaderStreamTexture2D::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) { - Ref<StreamTexture2D> st; st.instance(); Error err = st->load(p_path); @@ -810,14 +753,12 @@ RES ResourceFormatLoaderStreamTexture2D::load(const String &p_path, const String } void ResourceFormatLoaderStreamTexture2D::get_recognized_extensions(List<String> *p_extensions) const { - p_extensions->push_back("stex"); } bool ResourceFormatLoaderStreamTexture2D::handles_type(const String &p_type) const { return p_type == "StreamTexture2D"; } String ResourceFormatLoaderStreamTexture2D::get_resource_type(const String &p_path) const { - if (p_path.get_extension().to_lower() == "stex") return "StreamTexture2D"; return ""; @@ -826,7 +767,6 @@ String ResourceFormatLoaderStreamTexture2D::get_resource_type(const String &p_pa ////////////////////////////////////////// int AtlasTexture::get_width() const { - if (region.size.width == 0) { if (atlas.is_valid()) return atlas->get_width(); @@ -836,7 +776,6 @@ int AtlasTexture::get_width() const { } } int AtlasTexture::get_height() const { - if (region.size.height == 0) { if (atlas.is_valid()) return atlas->get_height(); @@ -846,7 +785,6 @@ int AtlasTexture::get_height() const { } } RID AtlasTexture::get_rid() const { - if (atlas.is_valid()) return atlas->get_rid(); @@ -854,7 +792,6 @@ RID AtlasTexture::get_rid() const { } bool AtlasTexture::has_alpha() const { - if (atlas.is_valid()) return atlas->has_alpha(); @@ -862,7 +799,6 @@ bool AtlasTexture::has_alpha() const { } void AtlasTexture::set_atlas(const Ref<Texture2D> &p_atlas) { - ERR_FAIL_COND(p_atlas == this); if (atlas == p_atlas) return; @@ -871,12 +807,10 @@ void AtlasTexture::set_atlas(const Ref<Texture2D> &p_atlas) { _change_notify("atlas"); } Ref<Texture2D> AtlasTexture::get_atlas() const { - return atlas; } void AtlasTexture::set_region(const Rect2 &p_region) { - if (region == p_region) return; region = p_region; @@ -885,12 +819,10 @@ void AtlasTexture::set_region(const Rect2 &p_region) { } Rect2 AtlasTexture::get_region() const { - return region; } void AtlasTexture::set_margin(const Rect2 &p_margin) { - if (margin == p_margin) return; margin = p_margin; @@ -899,24 +831,20 @@ void AtlasTexture::set_margin(const Rect2 &p_margin) { } Rect2 AtlasTexture::get_margin() const { - return margin; } void AtlasTexture::set_filter_clip(const bool p_enable) { - filter_clip = p_enable; emit_changed(); _change_notify("filter_clip"); } bool AtlasTexture::has_filter_clip() const { - return filter_clip; } void AtlasTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_atlas", "atlas"), &AtlasTexture::set_atlas); ClassDB::bind_method(D_METHOD("get_atlas"), &AtlasTexture::get_atlas); @@ -936,7 +864,6 @@ void AtlasTexture::_bind_methods() { } void AtlasTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - if (!atlas.is_valid()) return; @@ -956,7 +883,6 @@ void AtlasTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_m } void AtlasTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - if (!atlas.is_valid()) return; @@ -978,7 +904,6 @@ void AtlasTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile RS::get_singleton()->canvas_item_add_texture_rect_region(p_canvas_item, dr, atlas->get_rid(), rc, p_modulate, p_transpose, normal_rid, specular_rid, p_specular_color_shininess, filter_clip, p_texture_filter, p_texture_repeat); } void AtlasTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat, bool p_clip_uv) const { - //this might not necessarily work well if using a rect, needs to be fixed properly if (!atlas.is_valid()) return; @@ -993,7 +918,6 @@ void AtlasTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, cons } bool AtlasTexture::get_rect_region(const Rect2 &p_rect, const Rect2 &p_src_rect, Rect2 &r_rect, Rect2 &r_src_rect) const { - if (!atlas.is_valid()) return false; @@ -1029,7 +953,6 @@ bool AtlasTexture::get_rect_region(const Rect2 &p_rect, const Rect2 &p_src_rect, } bool AtlasTexture::is_pixel_opaque(int p_x, int p_y) const { - if (!atlas.is_valid()) return true; @@ -1077,7 +1000,6 @@ void MeshTexture::set_image_size(const Size2 &p_size) { } Size2 MeshTexture::get_image_size() const { - return size; } @@ -1090,7 +1012,6 @@ Ref<Texture2D> MeshTexture::get_base_texture() const { } void MeshTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - if (mesh.is_null() || base_texture.is_null()) { return; } @@ -1128,7 +1049,6 @@ void MeshTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile, RenderingServer::get_singleton()->canvas_item_add_mesh(p_canvas_item, mesh->get_rid(), xform, p_modulate, base_texture->get_rid(), normal_rid, specular_rid, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } void MeshTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat, bool p_clip_uv) const { - if (mesh.is_null() || base_texture.is_null()) { return; } @@ -1180,20 +1100,16 @@ MeshTexture::MeshTexture() { ////////////////////////////////////////// int LargeTexture::get_width() const { - return size.width; } int LargeTexture::get_height() const { - return size.height; } RID LargeTexture::get_rid() const { - return RID(); } bool LargeTexture::has_alpha() const { - for (int i = 0; i < pieces.size(); i++) { if (pieces[i].texture->has_alpha()) return true; @@ -1203,7 +1119,6 @@ bool LargeTexture::has_alpha() const { } int LargeTexture::add_piece(const Point2 &p_offset, const Ref<Texture2D> &p_texture) { - ERR_FAIL_COND_V(p_texture.is_null(), -1); Piece p; p.offset = p_offset; @@ -1214,13 +1129,11 @@ int LargeTexture::add_piece(const Point2 &p_offset, const Ref<Texture2D> &p_text } void LargeTexture::set_piece_offset(int p_idx, const Point2 &p_offset) { - ERR_FAIL_INDEX(p_idx, pieces.size()); pieces.write[p_idx].offset = p_offset; }; void LargeTexture::set_piece_texture(int p_idx, const Ref<Texture2D> &p_texture) { - ERR_FAIL_COND(p_texture == this); ERR_FAIL_COND(p_texture.is_null()); ERR_FAIL_INDEX(p_idx, pieces.size()); @@ -1228,17 +1141,14 @@ void LargeTexture::set_piece_texture(int p_idx, const Ref<Texture2D> &p_texture) }; void LargeTexture::set_size(const Size2 &p_size) { - size = p_size; } void LargeTexture::clear() { - pieces.clear(); size = Size2i(); } Array LargeTexture::_get_data() const { - Array arr; for (int i = 0; i < pieces.size(); i++) { arr.push_back(pieces[i].offset); @@ -1248,7 +1158,6 @@ Array LargeTexture::_get_data() const { return arr; } void LargeTexture::_set_data(const Array &p_array) { - ERR_FAIL_COND(p_array.size() < 1); ERR_FAIL_COND(!(p_array.size() & 1)); clear(); @@ -1259,24 +1168,19 @@ void LargeTexture::_set_data(const Array &p_array) { } int LargeTexture::get_piece_count() const { - return pieces.size(); } Vector2 LargeTexture::get_piece_offset(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, pieces.size(), Vector2()); return pieces[p_idx].offset; } Ref<Texture2D> LargeTexture::get_piece_texture(int p_idx) const { - ERR_FAIL_INDEX_V(p_idx, pieces.size(), Ref<Texture2D>()); return pieces[p_idx].texture; } Ref<Image> LargeTexture::to_image() const { - Ref<Image> img = memnew(Image(this->get_width(), this->get_height(), false, Image::FORMAT_RGBA8)); for (int i = 0; i < pieces.size(); i++) { - Ref<Image> src_img = pieces[i].texture->get_data(); img->blit_rect(src_img, Rect2(0, 0, src_img->get_width(), src_img->get_height()), pieces[i].offset); } @@ -1285,7 +1189,6 @@ Ref<Image> LargeTexture::to_image() const { } void LargeTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("add_piece", "ofs", "texture"), &LargeTexture::add_piece); ClassDB::bind_method(D_METHOD("set_piece_offset", "idx", "ofs"), &LargeTexture::set_piece_offset); ClassDB::bind_method(D_METHOD("set_piece_texture", "idx", "texture"), &LargeTexture::set_piece_texture); @@ -1303,16 +1206,13 @@ void LargeTexture::_bind_methods() { } void LargeTexture::draw(RID p_canvas_item, const Point2 &p_pos, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - for (int i = 0; i < pieces.size(); i++) { - // TODO pieces[i].texture->draw(p_canvas_item, pieces[i].offset + p_pos, p_modulate, p_transpose, p_normal_map, p_specular_map, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } } void LargeTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat) const { - //tiling not supported for this if (size.x == 0 || size.y == 0) return; @@ -1320,13 +1220,11 @@ void LargeTexture::draw_rect(RID p_canvas_item, const Rect2 &p_rect, bool p_tile Size2 scale = p_rect.size / size; for (int i = 0; i < pieces.size(); i++) { - // TODO pieces[i].texture->draw_rect(p_canvas_item, Rect2(pieces[i].offset * scale + p_rect.position, pieces[i].texture->get_size() * scale), false, p_modulate, p_transpose, p_normal_map, p_specular_map, p_specular_color_shininess, p_texture_filter, p_texture_repeat); } } void LargeTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, const Rect2 &p_src_rect, const Color &p_modulate, bool p_transpose, const Ref<Texture2D> &p_normal_map, const Ref<Texture2D> &p_specular_map, const Color &p_specular_color_shininess, RS::CanvasItemTextureFilter p_texture_filter, RS::CanvasItemTextureRepeat p_texture_repeat, bool p_clip_uv) const { - //tiling not supported for this if (p_src_rect.size.x == 0 || p_src_rect.size.y == 0) return; @@ -1334,7 +1232,6 @@ void LargeTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, cons Size2 scale = p_rect.size / p_src_rect.size; for (int i = 0; i < pieces.size(); i++) { - // TODO Rect2 rect(pieces[i].offset, pieces[i].texture->get_size()); if (!p_src_rect.intersects(rect)) @@ -1349,9 +1246,7 @@ void LargeTexture::draw_rect_region(RID p_canvas_item, const Rect2 &p_rect, cons } bool LargeTexture::is_pixel_opaque(int p_x, int p_y) const { - for (int i = 0; i < pieces.size(); i++) { - // TODO if (!pieces[i].texture.is_valid()) continue; @@ -1371,7 +1266,6 @@ LargeTexture::LargeTexture() { /////////////////// void CurveTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_width", "width"), &CurveTexture::set_width); ClassDB::bind_method(D_METHOD("set_curve", "curve"), &CurveTexture::set_curve); @@ -1384,14 +1278,12 @@ void CurveTexture::_bind_methods() { } void CurveTexture::set_width(int p_width) { - ERR_FAIL_COND(p_width < 32 || p_width > 4096); _width = p_width; _update(); } int CurveTexture::get_width() const { - return _width; } @@ -1421,7 +1313,6 @@ void CurveTexture::set_curve(Ref<Curve> p_curve) { } void CurveTexture::_update() { - Vector<uint8_t> data; data.resize(_width * sizeof(float)); @@ -1457,12 +1348,10 @@ void CurveTexture::_update() { } Ref<Curve> CurveTexture::get_curve() const { - return _curve; } RID CurveTexture::get_rid() const { - if (!_texture.is_valid()) { _texture = RS::get_singleton()->texture_2d_placeholder_create(); } @@ -1499,7 +1388,6 @@ GradientTexture::~GradientTexture() { } void GradientTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_gradient", "gradient"), &GradientTexture::set_gradient); ClassDB::bind_method(D_METHOD("get_gradient"), &GradientTexture::get_gradient); @@ -1530,7 +1418,6 @@ Ref<Gradient> GradientTexture::get_gradient() const { } void GradientTexture::_queue_update() { - if (update_pending) return; @@ -1539,7 +1426,6 @@ void GradientTexture::_queue_update() { } void GradientTexture::_update() { - update_pending = false; if (gradient.is_null()) @@ -1552,7 +1438,6 @@ void GradientTexture::_update() { Gradient &g = **gradient; for (int i = 0; i < width; i++) { - float ofs = float(i) / (width - 1); Color color = g.get_color_at_offset(ofs); @@ -1576,12 +1461,10 @@ void GradientTexture::_update() { } void GradientTexture::set_width(int p_width) { - width = p_width; _queue_update(); } int GradientTexture::get_width() const { - return width; } @@ -1595,7 +1478,6 @@ Ref<Image> GradientTexture::get_data() const { ////////////////////////////////////// void ProxyTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_base", "base"), &ProxyTexture::set_base); ClassDB::bind_method(D_METHOD("get_base"), &ProxyTexture::get_base); @@ -1603,7 +1485,6 @@ void ProxyTexture::_bind_methods() { } void ProxyTexture::set_base(const Ref<Texture2D> &p_texture) { - ERR_FAIL_COND(p_texture == this); base = p_texture; @@ -1621,24 +1502,20 @@ void ProxyTexture::set_base(const Ref<Texture2D> &p_texture) { } Ref<Texture2D> ProxyTexture::get_base() const { - return base; } int ProxyTexture::get_width() const { - if (base.is_valid()) return base->get_width(); return 1; } int ProxyTexture::get_height() const { - if (base.is_valid()) return base->get_height(); return 1; } RID ProxyTexture::get_rid() const { - if (proxy.is_null()) { proxy_ph = RS::get_singleton()->texture_2d_placeholder_create(); proxy = RS::get_singleton()->texture_proxy_create(proxy_ph); @@ -1647,19 +1524,16 @@ RID ProxyTexture::get_rid() const { } bool ProxyTexture::has_alpha() const { - if (base.is_valid()) return base->has_alpha(); return false; } ProxyTexture::ProxyTexture() { - //proxy = RS::get_singleton()->texture_create(); } ProxyTexture::~ProxyTexture() { - if (proxy_ph.is_valid()) { RS::get_singleton()->free(proxy_ph); } @@ -1670,7 +1544,6 @@ ProxyTexture::~ProxyTexture() { ////////////////////////////////////////////// void AnimatedTexture::_update_proxy() { - RWLockRead r(rw_lock); float delta; @@ -1758,7 +1631,6 @@ bool AnimatedTexture::get_oneshot() const { } void AnimatedTexture::set_frame_texture(int p_frame, const Ref<Texture2D> &p_texture) { - ERR_FAIL_COND(p_texture == this); ERR_FAIL_INDEX(p_frame, MAX_FRAMES); @@ -1821,7 +1693,6 @@ RID AnimatedTexture::get_rid() const { } bool AnimatedTexture::has_alpha() const { - RWLockRead r(rw_lock); if (!frames[current_frame].texture.is_valid()) { @@ -1832,7 +1703,6 @@ bool AnimatedTexture::has_alpha() const { } Ref<Image> AnimatedTexture::get_data() const { - RWLockRead r(rw_lock); if (!frames[current_frame].texture.is_valid()) { @@ -1843,7 +1713,6 @@ Ref<Image> AnimatedTexture::get_data() const { } bool AnimatedTexture::is_pixel_opaque(int p_x, int p_y) const { - RWLockRead r(rw_lock); if (frames[current_frame].texture.is_valid()) { @@ -1853,7 +1722,6 @@ bool AnimatedTexture::is_pixel_opaque(int p_x, int p_y) const { } void AnimatedTexture::_validate_property(PropertyInfo &property) const { - String prop = property.name; if (prop.begins_with("frame_")) { int frame = prop.get_slicec('/', 0).get_slicec('_', 1).to_int(); @@ -1931,7 +1799,6 @@ AnimatedTexture::~AnimatedTexture() { /////////////////////////////// void TextureLayered::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_format"), &TextureLayered::get_format); ClassDB::bind_method(D_METHOD("get_layered_type"), &TextureLayered::get_layered_type); ClassDB::bind_method(D_METHOD("get_width"), &TextureLayered::get_width); @@ -1990,7 +1857,6 @@ Array ImageTextureLayered::_get_images() const { } Error ImageTextureLayered::create_from_images(Vector<Ref<Image>> p_images) { - int new_layers = p_images.size(); ERR_FAIL_COND_V(new_layers == 0, ERR_INVALID_PARAMETER); if (layered_type == LAYERED_TYPE_CUBEMAP) { @@ -2065,7 +1931,6 @@ void ImageTextureLayered::set_path(const String &p_path, bool p_take_over) { } void ImageTextureLayered::_bind_methods() { - ClassDB::bind_method(D_METHOD("create_from_images", "images"), &ImageTextureLayered::_create_from_images); ClassDB::bind_method(D_METHOD("update_layer", "image", "layer"), &ImageTextureLayered::update_layer); @@ -2092,7 +1957,6 @@ ImageTextureLayered::~ImageTextureLayered() { /////////////////////////////////////////// void StreamTextureLayered::set_path(const String &p_path, bool p_take_over) { - if (texture.is_valid()) { RenderingServer::get_singleton()->texture_set_path(texture, p_path); } @@ -2101,12 +1965,10 @@ void StreamTextureLayered::set_path(const String &p_path, bool p_take_over) { } Image::Format StreamTextureLayered::get_format() const { - return format; } Error StreamTextureLayered::_load_data(const String &p_path, Vector<Ref<Image>> &images, int &mipmap_limit, int p_size_limit) { - ERR_FAIL_COND_V(images.size() != 0, ERR_INVALID_PARAMETER); FileAccessRef f = FileAccess::open(p_path, FileAccess::READ); @@ -2151,7 +2013,6 @@ Error StreamTextureLayered::_load_data(const String &p_path, Vector<Ref<Image>> } Error StreamTextureLayered::load(const String &p_path) { - Vector<Ref<Image>> images; int mipmap_limit; @@ -2185,20 +2046,16 @@ Error StreamTextureLayered::load(const String &p_path) { return OK; } String StreamTextureLayered::get_load_path() const { - return path_to_file; } int StreamTextureLayered::get_width() const { - return w; } int StreamTextureLayered::get_height() const { - return h; } int StreamTextureLayered::get_layers() const { - return layers; } bool StreamTextureLayered::has_mipmaps() const { @@ -2206,12 +2063,10 @@ bool StreamTextureLayered::has_mipmaps() const { } TextureLayered::LayeredType StreamTextureLayered::get_layered_type() const { - return layered_type; } RID StreamTextureLayered::get_rid() const { - if (!texture.is_valid()) { texture = RS::get_singleton()->texture_2d_layered_placeholder_create(RS::TextureLayeredType(layered_type)); } @@ -2219,7 +2074,6 @@ RID StreamTextureLayered::get_rid() const { } Ref<Image> StreamTextureLayered::get_layer_data(int p_layer) const { - if (texture.is_valid()) { return RS::get_singleton()->texture_2d_layer_get(texture, p_layer); } else { @@ -2228,7 +2082,6 @@ Ref<Image> StreamTextureLayered::get_layer_data(int p_layer) const { } void StreamTextureLayered::reload_from_file() { - String path = get_path(); if (!path.is_resource_file()) return; @@ -2245,7 +2098,6 @@ void StreamTextureLayered::_validate_property(PropertyInfo &property) const { } void StreamTextureLayered::_bind_methods() { - ClassDB::bind_method(D_METHOD("load", "path"), &StreamTextureLayered::load); ClassDB::bind_method(D_METHOD("get_load_path"), &StreamTextureLayered::get_load_path); @@ -2253,7 +2105,6 @@ void StreamTextureLayered::_bind_methods() { } StreamTextureLayered::StreamTextureLayered(LayeredType p_type) { - layered_type = p_type; format = Image::FORMAT_MAX; w = 0; @@ -2263,7 +2114,6 @@ StreamTextureLayered::StreamTextureLayered(LayeredType p_type) { } StreamTextureLayered::~StreamTextureLayered() { - if (texture.is_valid()) { RS::get_singleton()->free(texture); } @@ -2272,7 +2122,6 @@ StreamTextureLayered::~StreamTextureLayered() { ///////////////////////////////////////////////// RES ResourceFormatLoaderStreamTextureLayered::load(const String &p_path, const String &p_original_path, Error *r_error, bool p_use_sub_threads, float *r_progress, bool p_no_cache) { - Ref<StreamTextureLayered> st; if (p_path.get_extension().to_lower() == "stexarray") { Ref<StreamTexture2DArray> s; @@ -2302,7 +2151,6 @@ RES ResourceFormatLoaderStreamTextureLayered::load(const String &p_path, const S } void ResourceFormatLoaderStreamTextureLayered::get_recognized_extensions(List<String> *p_extensions) const { - p_extensions->push_back("stexarray"); p_extensions->push_back("scube"); p_extensions->push_back("scubearray"); @@ -2311,7 +2159,6 @@ bool ResourceFormatLoaderStreamTextureLayered::handles_type(const String &p_type return p_type == "StreamTexture2DArray" || p_type == "StreamCubemap" || p_type == "StreamCubemapArray"; } String ResourceFormatLoaderStreamTextureLayered::get_resource_type(const String &p_path) const { - if (p_path.get_extension().to_lower() == "stexarray") return "StreamTexture2DArray"; if (p_path.get_extension().to_lower() == "scube") diff --git a/scene/resources/texture.h b/scene/resources/texture.h index 5d4131ec4c..005f899512 100644 --- a/scene/resources/texture.h +++ b/scene/resources/texture.h @@ -51,7 +51,6 @@ public: }; class Texture2D : public Texture { - GDCLASS(Texture2D, Texture); OBJ_SAVE_TYPE(Texture2D); // Saves derived classes with common type so they can be interchanged. @@ -81,7 +80,6 @@ public: class BitMap; class ImageTexture : public Texture2D { - GDCLASS(ImageTexture, Texture2D); RES_BASE_EXTENSION("tex"); @@ -133,7 +131,6 @@ public: }; class StreamTexture2D : public Texture2D { - GDCLASS(StreamTexture2D, Texture2D); public: @@ -220,7 +217,6 @@ public: }; class AtlasTexture : public Texture2D { - GDCLASS(AtlasTexture, Texture2D); RES_BASE_EXTENSION("atlastex"); @@ -264,7 +260,6 @@ public: class Mesh; class MeshTexture : public Texture2D { - GDCLASS(MeshTexture, Texture2D); RES_BASE_EXTENSION("meshtex"); @@ -302,13 +297,11 @@ public: }; class LargeTexture : public Texture2D { - GDCLASS(LargeTexture, Texture2D); RES_BASE_EXTENSION("largetex"); protected: struct Piece { - Point2 offset; Ref<Texture2D> texture; }; @@ -373,7 +366,6 @@ public: VARIANT_ENUM_CAST(TextureLayered::LayeredType) class ImageTextureLayered : public TextureLayered { - GDCLASS(ImageTextureLayered, TextureLayered); LayeredType layered_type; @@ -413,7 +405,6 @@ public: }; class Texture2DArray : public ImageTextureLayered { - GDCLASS(Texture2DArray, ImageTextureLayered) public: Texture2DArray() : @@ -421,7 +412,6 @@ public: }; class Cubemap : public ImageTextureLayered { - GDCLASS(Cubemap, ImageTextureLayered); public: @@ -430,7 +420,6 @@ public: }; class CubemapArray : public ImageTextureLayered { - GDCLASS(CubemapArray, ImageTextureLayered); public: @@ -439,7 +428,6 @@ public: }; class StreamTextureLayered : public TextureLayered { - GDCLASS(StreamTextureLayered, TextureLayered); public: @@ -498,7 +486,6 @@ public: }; class StreamTexture2DArray : public StreamTextureLayered { - GDCLASS(StreamTexture2DArray, StreamTextureLayered) public: StreamTexture2DArray() : @@ -506,7 +493,6 @@ public: }; class StreamCubemap : public StreamTextureLayered { - GDCLASS(StreamCubemap, StreamTextureLayered); public: @@ -515,7 +501,6 @@ public: }; class StreamCubemapArray : public StreamTextureLayered { - GDCLASS(StreamCubemapArray, StreamTextureLayered); public: @@ -532,7 +517,6 @@ public: }; class CurveTexture : public Texture2D { - GDCLASS(CurveTexture, Texture2D); RES_BASE_EXTENSION("curvetex") @@ -582,7 +566,6 @@ class GradientTexture : public Texture2D { public: struct Point { - float offset; Color color; bool operator<(const Point &p_ponit) const { @@ -659,7 +642,6 @@ private: RID proxy; struct Frame { - Ref<Texture2D> texture; float delay_sec; diff --git a/scene/resources/theme.cpp b/scene/resources/theme.cpp index 325ada69ea..7a28927583 100644 --- a/scene/resources/theme.cpp +++ b/scene/resources/theme.cpp @@ -33,12 +33,10 @@ #include "core/print_string.h" void Theme::_emit_theme_changed() { - emit_changed(); } Vector<String> Theme::_get_icon_list(const String &p_type) const { - Vector<String> ilret; List<StringName> il; @@ -54,7 +52,6 @@ Vector<String> Theme::_get_icon_list(const String &p_type) const { } Vector<String> Theme::_get_stylebox_list(const String &p_type) const { - Vector<String> ilret; List<StringName> il; @@ -70,7 +67,6 @@ Vector<String> Theme::_get_stylebox_list(const String &p_type) const { } Vector<String> Theme::_get_stylebox_types() const { - Vector<String> ilret; List<StringName> il; @@ -86,7 +82,6 @@ Vector<String> Theme::_get_stylebox_types() const { } Vector<String> Theme::_get_font_list(const String &p_type) const { - Vector<String> ilret; List<StringName> il; @@ -102,7 +97,6 @@ Vector<String> Theme::_get_font_list(const String &p_type) const { } Vector<String> Theme::_get_color_list(const String &p_type) const { - Vector<String> ilret; List<StringName> il; @@ -118,7 +112,6 @@ Vector<String> Theme::_get_color_list(const String &p_type) const { } Vector<String> Theme::_get_constant_list(const String &p_type) const { - Vector<String> ilret; List<StringName> il; @@ -134,7 +127,6 @@ Vector<String> Theme::_get_constant_list(const String &p_type) const { } Vector<String> Theme::_get_type_list(const String &p_type) const { - Vector<String> ilret; List<StringName> il; @@ -150,29 +142,22 @@ Vector<String> Theme::_get_type_list(const String &p_type) const { } bool Theme::_set(const StringName &p_name, const Variant &p_value) { - String sname = p_name; if (sname.find("/") != -1) { - String type = sname.get_slicec('/', 1); String node_type = sname.get_slicec('/', 0); String name = sname.get_slicec('/', 2); if (type == "icons") { - set_icon(name, node_type, p_value); } else if (type == "styles") { - set_stylebox(name, node_type, p_value); } else if (type == "fonts") { - set_font(name, node_type, p_value); } else if (type == "colors") { - set_color(name, node_type, p_value); } else if (type == "constants") { - set_constant(name, node_type, p_value); } else return false; @@ -184,38 +169,31 @@ bool Theme::_set(const StringName &p_name, const Variant &p_value) { } bool Theme::_get(const StringName &p_name, Variant &r_ret) const { - String sname = p_name; if (sname.find("/") != -1) { - String type = sname.get_slicec('/', 1); String node_type = sname.get_slicec('/', 0); String name = sname.get_slicec('/', 2); if (type == "icons") { - if (!has_icon(name, node_type)) r_ret = Ref<Texture2D>(); else r_ret = get_icon(name, node_type); } else if (type == "styles") { - if (!has_stylebox(name, node_type)) r_ret = Ref<StyleBox>(); else r_ret = get_stylebox(name, node_type); } else if (type == "fonts") { - if (!has_font(name, node_type)) r_ret = Ref<Font>(); else r_ret = get_font(name, node_type); } else if (type == "colors") { - r_ret = get_color(name, node_type); } else if (type == "constants") { - r_ret = get_constant(name, node_type); } else return false; @@ -227,17 +205,14 @@ bool Theme::_get(const StringName &p_name, Variant &r_ret) const { } void Theme::_get_property_list(List<PropertyInfo> *p_list) const { - List<PropertyInfo> list; const StringName *key = nullptr; while ((key = icon_map.next(key))) { - const StringName *key2 = nullptr; while ((key2 = icon_map[*key].next(key2))) { - list.push_back(PropertyInfo(Variant::OBJECT, String() + *key + "/icons/" + *key2, PROPERTY_HINT_RESOURCE_TYPE, "Texture2D", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_STORE_IF_NULL)); } } @@ -245,11 +220,9 @@ void Theme::_get_property_list(List<PropertyInfo> *p_list) const { key = nullptr; while ((key = style_map.next(key))) { - const StringName *key2 = nullptr; while ((key2 = style_map[*key].next(key2))) { - list.push_back(PropertyInfo(Variant::OBJECT, String() + *key + "/styles/" + *key2, PROPERTY_HINT_RESOURCE_TYPE, "StyleBox", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_STORE_IF_NULL)); } } @@ -257,11 +230,9 @@ void Theme::_get_property_list(List<PropertyInfo> *p_list) const { key = nullptr; while ((key = font_map.next(key))) { - const StringName *key2 = nullptr; while ((key2 = font_map[*key].next(key2))) { - list.push_back(PropertyInfo(Variant::OBJECT, String() + *key + "/fonts/" + *key2, PROPERTY_HINT_RESOURCE_TYPE, "Font", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_STORE_IF_NULL)); } } @@ -269,11 +240,9 @@ void Theme::_get_property_list(List<PropertyInfo> *p_list) const { key = nullptr; while ((key = color_map.next(key))) { - const StringName *key2 = nullptr; while ((key2 = color_map[*key].next(key2))) { - list.push_back(PropertyInfo(Variant::COLOR, String() + *key + "/colors/" + *key2)); } } @@ -281,11 +250,9 @@ void Theme::_get_property_list(List<PropertyInfo> *p_list) const { key = nullptr; while ((key = constant_map.next(key))) { - const StringName *key2 = nullptr; while ((key2 = constant_map[*key].next(key2))) { - list.push_back(PropertyInfo(Variant::INT, String() + *key + "/constants/" + *key2)); } } @@ -297,7 +264,6 @@ void Theme::_get_property_list(List<PropertyInfo> *p_list) const { } void Theme::set_default_theme_font(const Ref<Font> &p_default_font) { - if (default_theme_font == p_default_font) return; @@ -316,7 +282,6 @@ void Theme::set_default_theme_font(const Ref<Font> &p_default_font) { } Ref<Font> Theme::get_default_theme_font() const { - return default_theme_font; } @@ -327,40 +292,32 @@ Ref<StyleBox> Theme::default_style; Ref<Font> Theme::default_font; Ref<Theme> Theme::get_default() { - return default_theme; } void Theme::set_default(const Ref<Theme> &p_default) { - default_theme = p_default; } Ref<Theme> Theme::get_project_default() { - return project_default_theme; } void Theme::set_project_default(const Ref<Theme> &p_project_default) { - project_default_theme = p_project_default; } void Theme::set_default_icon(const Ref<Texture2D> &p_icon) { - default_icon = p_icon; } void Theme::set_default_style(const Ref<StyleBox> &p_style) { - default_style = p_style; } void Theme::set_default_font(const Ref<Font> &p_font) { - default_font = p_font; } void Theme::set_icon(const StringName &p_name, const StringName &p_type, const Ref<Texture2D> &p_icon) { - //ERR_FAIL_COND(p_icon.is_null()); bool new_value = !icon_map.has(p_type) || !icon_map[p_type].has(p_name); @@ -381,9 +338,7 @@ void Theme::set_icon(const StringName &p_name, const StringName &p_type, const R } } Ref<Texture2D> Theme::get_icon(const StringName &p_name, const StringName &p_type) const { - if (icon_map.has(p_type) && icon_map[p_type].has(p_name) && icon_map[p_type][p_name].is_valid()) { - return icon_map[p_type][p_name]; } else { return default_icon; @@ -391,12 +346,10 @@ Ref<Texture2D> Theme::get_icon(const StringName &p_name, const StringName &p_typ } bool Theme::has_icon(const StringName &p_name, const StringName &p_type) const { - return (icon_map.has(p_type) && icon_map[p_type].has(p_name) && icon_map[p_type][p_name].is_valid()); } void Theme::clear_icon(const StringName &p_name, const StringName &p_type) { - ERR_FAIL_COND(!icon_map.has(p_type)); ERR_FAIL_COND(!icon_map[p_type].has(p_name)); @@ -411,7 +364,6 @@ void Theme::clear_icon(const StringName &p_name, const StringName &p_type) { } void Theme::get_icon_list(StringName p_type, List<StringName> *p_list) const { - ERR_FAIL_NULL(p_list); if (!icon_map.has(p_type)) @@ -420,7 +372,6 @@ void Theme::get_icon_list(StringName p_type, List<StringName> *p_list) const { const StringName *key = nullptr; while ((key = icon_map[p_type].next(key))) { - p_list->push_back(*key); } } @@ -458,7 +409,6 @@ void Theme::clear_shader(const StringName &p_name, const StringName &p_type) { } void Theme::get_shader_list(const StringName &p_type, List<StringName> *p_list) const { - ERR_FAIL_NULL(p_list); if (!shader_map.has(p_type)) @@ -467,13 +417,11 @@ void Theme::get_shader_list(const StringName &p_type, List<StringName> *p_list) const StringName *key = nullptr; while ((key = shader_map[p_type].next(key))) { - p_list->push_back(*key); } } void Theme::set_stylebox(const StringName &p_name, const StringName &p_type, const Ref<StyleBox> &p_style) { - //ERR_FAIL_COND(p_style.is_null()); bool new_value = !style_map.has(p_type) || !style_map[p_type].has(p_name); @@ -494,9 +442,7 @@ void Theme::set_stylebox(const StringName &p_name, const StringName &p_type, con } Ref<StyleBox> Theme::get_stylebox(const StringName &p_name, const StringName &p_type) const { - if (style_map.has(p_type) && style_map[p_type].has(p_name) && style_map[p_type][p_name].is_valid()) { - return style_map[p_type][p_name]; } else { return default_style; @@ -504,12 +450,10 @@ Ref<StyleBox> Theme::get_stylebox(const StringName &p_name, const StringName &p_ } bool Theme::has_stylebox(const StringName &p_name, const StringName &p_type) const { - return (style_map.has(p_type) && style_map[p_type].has(p_name) && style_map[p_type][p_name].is_valid()); } void Theme::clear_stylebox(const StringName &p_name, const StringName &p_type) { - ERR_FAIL_COND(!style_map.has(p_type)); ERR_FAIL_COND(!style_map[p_type].has(p_name)); @@ -524,7 +468,6 @@ void Theme::clear_stylebox(const StringName &p_name, const StringName &p_type) { } void Theme::get_stylebox_list(StringName p_type, List<StringName> *p_list) const { - ERR_FAIL_NULL(p_list); if (!style_map.has(p_type)) @@ -533,7 +476,6 @@ void Theme::get_stylebox_list(StringName p_type, List<StringName> *p_list) const const StringName *key = nullptr; while ((key = style_map[p_type].next(key))) { - p_list->push_back(*key); } } @@ -548,7 +490,6 @@ void Theme::get_stylebox_types(List<StringName> *p_list) const { } void Theme::set_font(const StringName &p_name, const StringName &p_type, const Ref<Font> &p_font) { - //ERR_FAIL_COND(p_font.is_null()); bool new_value = !font_map.has(p_type) || !font_map[p_type].has(p_name); @@ -569,7 +510,6 @@ void Theme::set_font(const StringName &p_name, const StringName &p_type, const R } } Ref<Font> Theme::get_font(const StringName &p_name, const StringName &p_type) const { - if (font_map.has(p_type) && font_map[p_type].has(p_name) && font_map[p_type][p_name].is_valid()) return font_map[p_type][p_name]; else if (default_theme_font.is_valid()) @@ -579,12 +519,10 @@ Ref<Font> Theme::get_font(const StringName &p_name, const StringName &p_type) co } bool Theme::has_font(const StringName &p_name, const StringName &p_type) const { - return (font_map.has(p_type) && font_map[p_type].has(p_name) && font_map[p_type][p_name].is_valid()); } void Theme::clear_font(const StringName &p_name, const StringName &p_type) { - ERR_FAIL_COND(!font_map.has(p_type)); ERR_FAIL_COND(!font_map[p_type].has(p_name)); @@ -598,7 +536,6 @@ void Theme::clear_font(const StringName &p_name, const StringName &p_type) { } void Theme::get_font_list(StringName p_type, List<StringName> *p_list) const { - ERR_FAIL_NULL(p_list); if (!font_map.has(p_type)) @@ -607,13 +544,11 @@ void Theme::get_font_list(StringName p_type, List<StringName> *p_list) const { const StringName *key = nullptr; while ((key = font_map[p_type].next(key))) { - p_list->push_back(*key); } } void Theme::set_color(const StringName &p_name, const StringName &p_type, const Color &p_color) { - bool new_value = !color_map.has(p_type) || !color_map[p_type].has(p_name); color_map[p_type][p_name] = p_color; @@ -625,7 +560,6 @@ void Theme::set_color(const StringName &p_name, const StringName &p_type, const } Color Theme::get_color(const StringName &p_name, const StringName &p_type) const { - if (color_map.has(p_type) && color_map[p_type].has(p_name)) return color_map[p_type][p_name]; else @@ -633,12 +567,10 @@ Color Theme::get_color(const StringName &p_name, const StringName &p_type) const } bool Theme::has_color(const StringName &p_name, const StringName &p_type) const { - return (color_map.has(p_type) && color_map[p_type].has(p_name)); } void Theme::clear_color(const StringName &p_name, const StringName &p_type) { - ERR_FAIL_COND(!color_map.has(p_type)); ERR_FAIL_COND(!color_map[p_type].has(p_name)); @@ -648,7 +580,6 @@ void Theme::clear_color(const StringName &p_name, const StringName &p_type) { } void Theme::get_color_list(StringName p_type, List<StringName> *p_list) const { - ERR_FAIL_NULL(p_list); if (!color_map.has(p_type)) @@ -657,13 +588,11 @@ void Theme::get_color_list(StringName p_type, List<StringName> *p_list) const { const StringName *key = nullptr; while ((key = color_map[p_type].next(key))) { - p_list->push_back(*key); } } void Theme::set_constant(const StringName &p_name, const StringName &p_type, int p_constant) { - bool new_value = !constant_map.has(p_type) || !constant_map[p_type].has(p_name); constant_map[p_type][p_name] = p_constant; @@ -674,7 +603,6 @@ void Theme::set_constant(const StringName &p_name, const StringName &p_type, int } int Theme::get_constant(const StringName &p_name, const StringName &p_type) const { - if (constant_map.has(p_type) && constant_map[p_type].has(p_name)) return constant_map[p_type][p_name]; else { @@ -683,12 +611,10 @@ int Theme::get_constant(const StringName &p_name, const StringName &p_type) cons } bool Theme::has_constant(const StringName &p_name, const StringName &p_type) const { - return (constant_map.has(p_type) && constant_map[p_type].has(p_name)); } void Theme::clear_constant(const StringName &p_name, const StringName &p_type) { - ERR_FAIL_COND(!constant_map.has(p_type)); ERR_FAIL_COND(!constant_map[p_type].has(p_name)); @@ -698,7 +624,6 @@ void Theme::clear_constant(const StringName &p_name, const StringName &p_type) { } void Theme::get_constant_list(StringName p_type, List<StringName> *p_list) const { - ERR_FAIL_NULL(p_list); if (!constant_map.has(p_type)) @@ -707,13 +632,11 @@ void Theme::get_constant_list(StringName p_type, List<StringName> *p_list) const const StringName *key = nullptr; while ((key = constant_map[p_type].next(key))) { - p_list->push_back(*key); } } void Theme::clear() { - //these need disconnecting { const StringName *K = nullptr; @@ -766,13 +689,11 @@ void Theme::clear() { } void Theme::copy_default_theme() { - Ref<Theme> default_theme2 = get_default(); copy_theme(default_theme2); } void Theme::copy_theme(const Ref<Theme> &p_other) { - if (p_other.is_null()) { clear(); @@ -821,53 +742,45 @@ void Theme::copy_theme(const Ref<Theme> &p_other) { } void Theme::get_type_list(List<StringName> *p_list) const { - ERR_FAIL_NULL(p_list); Set<StringName> types; const StringName *key = nullptr; while ((key = icon_map.next(key))) { - types.insert(*key); } key = nullptr; while ((key = style_map.next(key))) { - types.insert(*key); } key = nullptr; while ((key = font_map.next(key))) { - types.insert(*key); } key = nullptr; while ((key = color_map.next(key))) { - types.insert(*key); } key = nullptr; while ((key = constant_map.next(key))) { - types.insert(*key); } for (Set<StringName>::Element *E = types.front(); E; E = E->next()) { - p_list->push_back(E->get()); } } void Theme::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_icon", "name", "type", "texture"), &Theme::set_icon); ClassDB::bind_method(D_METHOD("get_icon", "name", "type"), &Theme::get_icon); ClassDB::bind_method(D_METHOD("has_icon", "name", "type"), &Theme::has_icon); diff --git a/scene/resources/theme.h b/scene/resources/theme.h index b5043c35e8..3c72ddd8a2 100644 --- a/scene/resources/theme.h +++ b/scene/resources/theme.h @@ -39,7 +39,6 @@ #include "scene/resources/texture.h" class Theme : public Resource { - GDCLASS(Theme, Resource); RES_BASE_EXTENSION("theme"); diff --git a/scene/resources/tile_set.cpp b/scene/resources/tile_set.cpp index 1b68b7486b..38e50e35f1 100644 --- a/scene/resources/tile_set.cpp +++ b/scene/resources/tile_set.cpp @@ -33,7 +33,6 @@ #include "core/engine.h" bool TileSet::_set(const StringName &p_name, const Variant &p_value) { - String n = p_name; int slash = n.find("/"); if (slash == -1) @@ -206,7 +205,6 @@ bool TileSet::_set(const StringName &p_name, const Variant &p_value) { } bool TileSet::_get(const StringName &p_name, Variant &r_ret) const { - String n = p_name; int slash = n.find("/"); if (slash == -1) @@ -320,9 +318,7 @@ bool TileSet::_get(const StringName &p_name, Variant &r_ret) const { } void TileSet::_get_property_list(List<PropertyInfo> *p_list) const { - for (Map<int, TileData>::Element *E = tile_map.front(); E; E = E->next()) { - int id = E->key(); String pre = itos(id) + "/"; p_list->push_back(PropertyInfo(Variant::STRING, pre + "name", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); @@ -382,13 +378,11 @@ void TileSet::autotile_set_bitmask_mode(int p_id, BitmaskMode p_mode) { } TileSet::BitmaskMode TileSet::autotile_get_bitmask_mode(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), BITMASK_2X2); return tile_map[p_id].autotile_data.bitmask_mode; } void TileSet::tile_set_texture(int p_id, const Ref<Texture2D> &p_texture) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].texture = p_texture; emit_changed(); @@ -396,39 +390,33 @@ void TileSet::tile_set_texture(int p_id, const Ref<Texture2D> &p_texture) { } Ref<Texture2D> TileSet::tile_get_texture(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<Texture2D>()); return tile_map[p_id].texture; } void TileSet::tile_set_normal_map(int p_id, const Ref<Texture2D> &p_normal_map) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].normal_map = p_normal_map; emit_changed(); } Ref<Texture2D> TileSet::tile_get_normal_map(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<Texture2D>()); return tile_map[p_id].normal_map; } void TileSet::tile_set_material(int p_id, const Ref<ShaderMaterial> &p_material) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].material = p_material; emit_changed(); } Ref<ShaderMaterial> TileSet::tile_get_material(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<ShaderMaterial>()); return tile_map[p_id].material; } void TileSet::tile_set_modulate(int p_id, const Color &p_modulate) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].modulate = p_modulate; emit_changed(); @@ -436,26 +424,22 @@ void TileSet::tile_set_modulate(int p_id, const Color &p_modulate) { } Color TileSet::tile_get_modulate(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Color(1, 1, 1)); return tile_map[p_id].modulate; } void TileSet::tile_set_texture_offset(int p_id, const Vector2 &p_offset) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].offset = p_offset; emit_changed(); } Vector2 TileSet::tile_get_texture_offset(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Vector2()); return tile_map[p_id].offset; } void TileSet::tile_set_region(int p_id, const Rect2 &p_region) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].region = p_region; emit_changed(); @@ -463,7 +447,6 @@ void TileSet::tile_set_region(int p_id, const Rect2 &p_region) { } Rect2 TileSet::tile_get_region(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Rect2()); return tile_map[p_id].region; } @@ -476,26 +459,22 @@ void TileSet::tile_set_tile_mode(int p_id, TileMode p_tile_mode) { } TileSet::TileMode TileSet::tile_get_tile_mode(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), SINGLE_TILE); return tile_map[p_id].tile_mode; } void TileSet::autotile_set_icon_coordinate(int p_id, Vector2 coord) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].autotile_data.icon_coord = coord; emit_changed(); } Vector2 TileSet::autotile_get_icon_coordinate(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Vector2()); return tile_map[p_id].autotile_data.icon_coord; } void TileSet::autotile_set_spacing(int p_id, int p_spacing) { - ERR_FAIL_COND(!tile_map.has(p_id)); ERR_FAIL_COND(p_spacing < 0); tile_map[p_id].autotile_data.spacing = p_spacing; @@ -503,39 +482,33 @@ void TileSet::autotile_set_spacing(int p_id, int p_spacing) { } int TileSet::autotile_get_spacing(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), 0); return tile_map[p_id].autotile_data.spacing; } void TileSet::autotile_set_size(int p_id, Size2 p_size) { - ERR_FAIL_COND(!tile_map.has(p_id)); ERR_FAIL_COND(p_size.x <= 0 || p_size.y <= 0); tile_map[p_id].autotile_data.size = p_size; } Size2 TileSet::autotile_get_size(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Size2()); return tile_map[p_id].autotile_data.size; } void TileSet::autotile_clear_bitmask_map(int p_id) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].autotile_data.flags.clear(); } void TileSet::autotile_set_subtile_priority(int p_id, const Vector2 &p_coord, int p_priority) { - ERR_FAIL_COND(!tile_map.has(p_id)); ERR_FAIL_COND(p_priority <= 0); tile_map[p_id].autotile_data.priority_map[p_coord] = p_priority; } int TileSet::autotile_get_subtile_priority(int p_id, const Vector2 &p_coord) { - ERR_FAIL_COND_V(!tile_map.has(p_id), 1); if (tile_map[p_id].autotile_data.priority_map.has(p_coord)) { return tile_map[p_id].autotile_data.priority_map[p_coord]; @@ -545,21 +518,18 @@ int TileSet::autotile_get_subtile_priority(int p_id, const Vector2 &p_coord) { } const Map<Vector2, int> &TileSet::autotile_get_priority_map(int p_id) const { - static Map<Vector2, int> dummy; ERR_FAIL_COND_V(!tile_map.has(p_id), dummy); return tile_map[p_id].autotile_data.priority_map; } void TileSet::autotile_set_z_index(int p_id, const Vector2 &p_coord, int p_z_index) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].autotile_data.z_index_map[p_coord] = p_z_index; emit_changed(); } int TileSet::autotile_get_z_index(int p_id, const Vector2 &p_coord) { - ERR_FAIL_COND_V(!tile_map.has(p_id), 1); if (tile_map[p_id].autotile_data.z_index_map.has(p_coord)) { return tile_map[p_id].autotile_data.z_index_map[p_coord]; @@ -569,14 +539,12 @@ int TileSet::autotile_get_z_index(int p_id, const Vector2 &p_coord) { } const Map<Vector2, int> &TileSet::autotile_get_z_index_map(int p_id) const { - static Map<Vector2, int> dummy; ERR_FAIL_COND_V(!tile_map.has(p_id), dummy); return tile_map[p_id].autotile_data.z_index_map; } void TileSet::autotile_set_bitmask(int p_id, Vector2 p_coord, uint32_t p_flag) { - ERR_FAIL_COND(!tile_map.has(p_id)); if (p_flag == 0) { if (tile_map[p_id].autotile_data.flags.has(p_coord)) @@ -587,7 +555,6 @@ void TileSet::autotile_set_bitmask(int p_id, Vector2 p_coord, uint32_t p_flag) { } uint32_t TileSet::autotile_get_bitmask(int p_id, Vector2 p_coord) { - ERR_FAIL_COND_V(!tile_map.has(p_id), 0); if (!tile_map[p_id].autotile_data.flags.has(p_coord)) { return 0; @@ -596,7 +563,6 @@ uint32_t TileSet::autotile_get_bitmask(int p_id, Vector2 p_coord) { } const Map<Vector2, uint32_t> &TileSet::autotile_get_bitmask_map(int p_id) { - static Map<Vector2, uint32_t> dummy; static Map<Vector2, uint32_t> dummy_atlas; ERR_FAIL_COND_V(!tile_map.has(p_id), dummy); @@ -616,7 +582,6 @@ const Map<Vector2, uint32_t> &TileSet::autotile_get_bitmask_map(int p_id) { } Vector2 TileSet::autotile_get_subtile_for_bitmask(int p_id, uint16_t p_bitmask, const Node *p_tilemap_node, const Vector2 &p_tile_location) { - ERR_FAIL_COND_V(!tile_map.has(p_id), Vector2()); //First try to forward selection to script if (p_tilemap_node->get_class_name() == "TileMap") { @@ -678,7 +643,6 @@ Vector2 TileSet::autotile_get_subtile_for_bitmask(int p_id, uint16_t p_bitmask, } Vector2 TileSet::atlastile_get_subtile_by_priority(int p_id, const Node *p_tilemap_node, const Vector2 &p_tile_location) { - ERR_FAIL_COND_V(!tile_map.has(p_id), Vector2()); //First try to forward selection to script if (get_script_instance() != nullptr) { @@ -708,7 +672,6 @@ Vector2 TileSet::atlastile_get_subtile_by_priority(int p_id, const Node *p_tilem } void TileSet::tile_set_name(int p_id, const String &p_name) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].name = p_name; emit_changed(); @@ -716,19 +679,16 @@ void TileSet::tile_set_name(int p_id, const String &p_name) { } String TileSet::tile_get_name(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), String()); return tile_map[p_id].name; } void TileSet::tile_clear_shapes(int p_id) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].shapes_data.clear(); } void TileSet::tile_add_shape(int p_id, const Ref<Shape2D> &p_shape, const Transform2D &p_transform, bool p_one_way, const Vector2 &p_autotile_coord) { - ERR_FAIL_COND(!tile_map.has(p_id)); ShapeData new_data = ShapeData(); @@ -741,13 +701,11 @@ void TileSet::tile_add_shape(int p_id, const Ref<Shape2D> &p_shape, const Transf } int TileSet::tile_get_shape_count(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), 0); return tile_map[p_id].shapes_data.size(); } void TileSet::tile_set_shape(int p_id, int p_shape_id, const Ref<Shape2D> &p_shape) { - ERR_FAIL_COND(!tile_map.has(p_id)); ERR_FAIL_COND(p_shape_id < 0); @@ -759,7 +717,6 @@ void TileSet::tile_set_shape(int p_id, int p_shape_id, const Ref<Shape2D> &p_sha } Ref<Shape2D> TileSet::tile_get_shape(int p_id, int p_shape_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<Shape2D>()); ERR_FAIL_COND_V(p_shape_id < 0, Ref<Shape2D>()); @@ -770,7 +727,6 @@ Ref<Shape2D> TileSet::tile_get_shape(int p_id, int p_shape_id) const { } void TileSet::tile_set_shape_transform(int p_id, int p_shape_id, const Transform2D &p_offset) { - ERR_FAIL_COND(!tile_map.has(p_id)); ERR_FAIL_COND(p_shape_id < 0); @@ -781,7 +737,6 @@ void TileSet::tile_set_shape_transform(int p_id, int p_shape_id, const Transform } Transform2D TileSet::tile_get_shape_transform(int p_id, int p_shape_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Transform2D()); ERR_FAIL_COND_V(p_shape_id < 0, Transform2D()); @@ -802,7 +757,6 @@ Vector2 TileSet::tile_get_shape_offset(int p_id, int p_shape_id) const { } void TileSet::tile_set_shape_one_way(int p_id, int p_shape_id, const bool p_one_way) { - ERR_FAIL_COND(!tile_map.has(p_id)); ERR_FAIL_COND(p_shape_id < 0); @@ -813,7 +767,6 @@ void TileSet::tile_set_shape_one_way(int p_id, int p_shape_id, const bool p_one_ } bool TileSet::tile_get_shape_one_way(int p_id, int p_shape_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), false); ERR_FAIL_COND_V(p_shape_id < 0, false); @@ -824,7 +777,6 @@ bool TileSet::tile_get_shape_one_way(int p_id, int p_shape_id) const { } void TileSet::tile_set_shape_one_way_margin(int p_id, int p_shape_id, float p_margin) { - ERR_FAIL_COND(!tile_map.has(p_id)); ERR_FAIL_COND(p_shape_id < 0); @@ -835,7 +787,6 @@ void TileSet::tile_set_shape_one_way_margin(int p_id, int p_shape_id, float p_ma } float TileSet::tile_get_shape_one_way_margin(int p_id, int p_shape_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), 0); ERR_FAIL_COND_V(p_shape_id < 0, 0); @@ -846,13 +797,11 @@ float TileSet::tile_get_shape_one_way_margin(int p_id, int p_shape_id) const { } void TileSet::tile_set_light_occluder(int p_id, const Ref<OccluderPolygon2D> &p_light_occluder) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].occluder = p_light_occluder; } Ref<OccluderPolygon2D> TileSet::tile_get_light_occluder(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<OccluderPolygon2D>()); return tile_map[p_id].occluder; } @@ -869,7 +818,6 @@ void TileSet::autotile_set_light_occluder(int p_id, const Ref<OccluderPolygon2D> } Ref<OccluderPolygon2D> TileSet::autotile_get_light_occluder(int p_id, const Vector2 &p_coord) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<OccluderPolygon2D>()); if (!tile_map[p_id].autotile_data.occluder_map.has(p_coord)) { @@ -880,38 +828,32 @@ Ref<OccluderPolygon2D> TileSet::autotile_get_light_occluder(int p_id, const Vect } void TileSet::tile_set_navigation_polygon_offset(int p_id, const Vector2 &p_offset) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].navigation_polygon_offset = p_offset; } Vector2 TileSet::tile_get_navigation_polygon_offset(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Vector2()); return tile_map[p_id].navigation_polygon_offset; } void TileSet::tile_set_navigation_polygon(int p_id, const Ref<NavigationPolygon> &p_navigation_polygon) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].navigation_polygon = p_navigation_polygon; } Ref<NavigationPolygon> TileSet::tile_get_navigation_polygon(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<NavigationPolygon>()); return tile_map[p_id].navigation_polygon; } const Map<Vector2, Ref<OccluderPolygon2D>> &TileSet::autotile_get_light_oclusion_map(int p_id) const { - static Map<Vector2, Ref<OccluderPolygon2D>> dummy; ERR_FAIL_COND_V(!tile_map.has(p_id), dummy); return tile_map[p_id].autotile_data.occluder_map; } void TileSet::autotile_set_navigation_polygon(int p_id, const Ref<NavigationPolygon> &p_navigation_polygon, const Vector2 &p_coord) { - ERR_FAIL_COND(!tile_map.has(p_id)); if (p_navigation_polygon.is_null()) { if (tile_map[p_id].autotile_data.navpoly_map.has(p_coord)) { @@ -923,7 +865,6 @@ void TileSet::autotile_set_navigation_polygon(int p_id, const Ref<NavigationPoly } Ref<NavigationPolygon> TileSet::autotile_get_navigation_polygon(int p_id, const Vector2 &p_coord) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Ref<NavigationPolygon>()); if (!tile_map[p_id].autotile_data.navpoly_map.has(p_coord)) { return Ref<NavigationPolygon>(); @@ -933,26 +874,22 @@ Ref<NavigationPolygon> TileSet::autotile_get_navigation_polygon(int p_id, const } const Map<Vector2, Ref<NavigationPolygon>> &TileSet::autotile_get_navigation_map(int p_id) const { - static Map<Vector2, Ref<NavigationPolygon>> dummy; ERR_FAIL_COND_V(!tile_map.has(p_id), dummy); return tile_map[p_id].autotile_data.navpoly_map; } void TileSet::tile_set_occluder_offset(int p_id, const Vector2 &p_offset) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].occluder_offset = p_offset; } Vector2 TileSet::tile_get_occluder_offset(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Vector2()); return tile_map[p_id].occluder_offset; } void TileSet::tile_set_shapes(int p_id, const Vector<ShapeData> &p_shapes) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].shapes_data = p_shapes; for (int i = 0; i < p_shapes.size(); i++) { @@ -962,27 +899,23 @@ void TileSet::tile_set_shapes(int p_id, const Vector<ShapeData> &p_shapes) { } Vector<TileSet::ShapeData> TileSet::tile_get_shapes(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Vector<ShapeData>()); return tile_map[p_id].shapes_data; } int TileSet::tile_get_z_index(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), 0); return tile_map[p_id].z_index; } void TileSet::tile_set_z_index(int p_id, int p_z_index) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map[p_id].z_index = p_z_index; emit_changed(); } void TileSet::_tile_set_shapes(int p_id, const Array &p_shapes) { - ERR_FAIL_COND(!tile_map.has(p_id)); Vector<ShapeData> shapes_data; Transform2D default_transform = tile_get_shape_transform(p_id, 0); @@ -1043,7 +976,6 @@ void TileSet::_tile_set_shapes(int p_id, const Array &p_shapes) { } Array TileSet::_tile_get_shapes(int p_id) const { - ERR_FAIL_COND_V(!tile_map.has(p_id), Array()); Array arr; @@ -1062,7 +994,6 @@ Array TileSet::_tile_get_shapes(int p_id) const { } Array TileSet::_get_tiles_ids() const { - Array arr; for (Map<int, TileData>::Element *E = tile_map.front(); E; E = E->next()) { @@ -1093,20 +1024,16 @@ void TileSet::_decompose_convex_shape(Ref<Shape2D> p_shape) { } void TileSet::get_tile_list(List<int> *p_tiles) const { - for (Map<int, TileData>::Element *E = tile_map.front(); E; E = E->next()) { - p_tiles->push_back(E->key()); } } bool TileSet::has_tile(int p_id) const { - return tile_map.has(p_id); } bool TileSet::is_tile_bound(int p_drawn_id, int p_neighbor_id) { - if (p_drawn_id == p_neighbor_id) { return true; } else if (get_script_instance() != nullptr) { @@ -1121,7 +1048,6 @@ bool TileSet::is_tile_bound(int p_drawn_id, int p_neighbor_id) { } void TileSet::remove_tile(int p_id) { - ERR_FAIL_COND(!tile_map.has(p_id)); tile_map.erase(p_id); _change_notify(""); @@ -1129,7 +1055,6 @@ void TileSet::remove_tile(int p_id) { } int TileSet::get_last_unused_tile_id() const { - if (tile_map.size()) return tile_map.back()->key() + 1; else @@ -1137,9 +1062,7 @@ int TileSet::get_last_unused_tile_id() const { } int TileSet::find_tile_by_name(const String &p_name) const { - for (Map<int, TileData>::Element *E = tile_map.front(); E; E = E->next()) { - if (p_name == E->get().name) return E->key(); } @@ -1147,14 +1070,12 @@ int TileSet::find_tile_by_name(const String &p_name) const { } void TileSet::clear() { - tile_map.clear(); _change_notify(""); emit_changed(); } void TileSet::_bind_methods() { - ClassDB::bind_method(D_METHOD("create_tile", "id"), &TileSet::create_tile); ClassDB::bind_method(D_METHOD("autotile_clear_bitmask_map", "id"), &TileSet::autotile_clear_bitmask_map); ClassDB::bind_method(D_METHOD("autotile_set_icon_coordinate", "id", "coord"), &TileSet::autotile_set_icon_coordinate); diff --git a/scene/resources/tile_set.h b/scene/resources/tile_set.h index 5f01959253..78f34e46ce 100644 --- a/scene/resources/tile_set.h +++ b/scene/resources/tile_set.h @@ -40,7 +40,6 @@ #include "scene/resources/texture.h" class TileSet : public Resource { - GDCLASS(TileSet, Resource); public: @@ -105,7 +104,6 @@ public: private: struct TileData { - String name; Ref<Texture2D> texture; Ref<Texture2D> normal_map; diff --git a/scene/resources/video_stream.h b/scene/resources/video_stream.h index a9b96214c3..379ba53a34 100644 --- a/scene/resources/video_stream.h +++ b/scene/resources/video_stream.h @@ -34,7 +34,6 @@ #include "scene/resources/texture.h" class VideoStreamPlayback : public Resource { - GDCLASS(VideoStreamPlayback, Resource); public: @@ -68,7 +67,6 @@ public: }; class VideoStream : public Resource { - GDCLASS(VideoStream, Resource); OBJ_SAVE_TYPE(VideoStream); // Saves derived classes with common type so they can be interchanged. diff --git a/scene/resources/visual_shader.cpp b/scene/resources/visual_shader.cpp index 5637aaec9a..31d0fc2c9d 100644 --- a/scene/resources/visual_shader.cpp +++ b/scene/resources/visual_shader.cpp @@ -39,12 +39,10 @@ bool VisualShaderNode::is_simple_decl() const { } void VisualShaderNode::set_output_port_for_preview(int p_index) { - port_preview = p_index; } int VisualShaderNode::get_output_port_for_preview() const { - return port_preview; } @@ -85,7 +83,6 @@ Vector<StringName> VisualShaderNode::get_editable_properties() const { } Array VisualShaderNode::get_default_input_values() const { - Array ret; for (Map<int, Variant>::Element *E = default_input_values.front(); E; E = E->next()) { ret.push_back(E->key()); @@ -94,7 +91,6 @@ Array VisualShaderNode::get_default_input_values() const { return ret; } void VisualShaderNode::set_default_input_values(const Array &p_values) { - if (p_values.size() % 2 == 0) { for (int i = 0; i < p_values.size(); i += 2) { default_input_values[p_values[i + 0]] = p_values[i + 1]; @@ -113,7 +109,6 @@ String VisualShaderNode::get_input_port_default_hint(int p_port) const { } void VisualShaderNode::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_output_port_for_preview", "port"), &VisualShaderNode::set_output_port_for_preview); ClassDB::bind_method(D_METHOD("get_output_port_for_preview"), &VisualShaderNode::get_output_port_for_preview); @@ -225,7 +220,6 @@ String VisualShaderNodeCustom::get_output_port_name(int p_port) const { } String VisualShaderNodeCustom::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - ERR_FAIL_COND_V(!get_script_instance(), ""); ERR_FAIL_COND_V(!get_script_instance()->has_method("_get_code"), ""); Array input_vars; @@ -264,7 +258,6 @@ String VisualShaderNodeCustom::generate_global_per_node(Shader::Mode p_mode, Vis } void VisualShaderNodeCustom::_bind_methods() { - BIND_VMETHOD(MethodInfo(Variant::STRING, "_get_name")); BIND_VMETHOD(MethodInfo(Variant::STRING, "_get_description")); BIND_VMETHOD(MethodInfo(Variant::STRING, "_get_category")); @@ -445,7 +438,6 @@ bool VisualShader::is_node_connection(Type p_type, int p_from_node, int p_from_p const Graph *g = &graph[p_type]; for (const List<Connection>::Element *E = g->connections.front(); E; E = E->next()) { - if (E->get().from_node == p_from_node && E->get().from_port == p_from_port && E->get().to_node == p_to_node && E->get().to_port == p_to_port) { return true; } @@ -460,7 +452,6 @@ bool VisualShader::is_nodes_connected_relatively(const Graph *p_graph, int p_nod const VisualShader::Node &node = p_graph->nodes[p_node]; for (const List<int>::Element *E = node.prev_connected_nodes.front(); E; E = E->next()) { - if (E->get() == p_target) { return true; } @@ -474,7 +465,6 @@ bool VisualShader::is_nodes_connected_relatively(const Graph *p_graph, int p_nod } bool VisualShader::can_connect_nodes(Type p_type, int p_from_node, int p_from_port, int p_to_node, int p_to_port) const { - ERR_FAIL_INDEX_V(p_type, TYPE_MAX, false); const Graph *g = &graph[p_type]; @@ -501,7 +491,6 @@ bool VisualShader::can_connect_nodes(Type p_type, int p_from_node, int p_from_po } for (const List<Connection>::Element *E = g->connections.front(); E; E = E->next()) { - if (E->get().from_node == p_from_node && E->get().from_port == p_from_port && E->get().to_node == p_to_node && E->get().to_port == p_to_port) { return false; } @@ -546,7 +535,6 @@ Error VisualShader::connect_nodes(Type p_type, int p_from_node, int p_from_port, ERR_FAIL_COND_V_MSG(!is_port_types_compatible(from_port_type, to_port_type), ERR_INVALID_PARAMETER, "Incompatible port types (scalar/vec/bool) with transform."); for (List<Connection>::Element *E = g->connections.front(); E; E = E->next()) { - if (E->get().from_node == p_from_node && E->get().from_port == p_from_port && E->get().to_node == p_to_node && E->get().to_port == p_to_port) { ERR_FAIL_V(ERR_ALREADY_EXISTS); } @@ -569,7 +557,6 @@ void VisualShader::disconnect_nodes(Type p_type, int p_from_node, int p_from_por Graph *g = &graph[p_type]; for (List<Connection>::Element *E = g->connections.front(); E; E = E->next()) { - if (E->get().from_node == p_from_node && E->get().from_port == p_from_port && E->get().to_node == p_to_node && E->get().to_port == p_to_port) { g->connections.erase(E); g->nodes[p_to_node].prev_connected_nodes.erase(p_from_node); @@ -615,9 +602,7 @@ void VisualShader::set_mode(Mode p_mode) { flags.clear(); shader_mode = p_mode; for (int i = 0; i < TYPE_MAX; i++) { - for (Map<int, Node>::Element *E = graph[i].nodes.front(); E; E = E->next()) { - Ref<VisualShaderNodeInput> input = E->get().node; if (input.is_valid()) { input->shader_mode = shader_mode; @@ -630,7 +615,6 @@ void VisualShader::set_mode(Mode p_mode) { // clear connections since they are no longer valid for (List<Connection>::Element *E = graph[i].connections.front(); E;) { - bool keep = true; List<Connection>::Element *N = E->next(); @@ -684,7 +668,6 @@ bool VisualShader::is_text_shader() const { } String VisualShader::generate_preview_shader(Type p_type, int p_node, int p_port, Vector<DefaultTextureParam> &default_tex_params) const { - Ref<VisualShaderNode> node = get_node(p_type, p_node); ERR_FAIL_COND_V(!node.is_valid(), String()); ERR_FAIL_COND_V(p_port < 0 || p_port >= node->get_output_port_count(), String()); @@ -703,7 +686,6 @@ String VisualShader::generate_preview_shader(Type p_type, int p_node, int p_port for (Map<int, Node>::Element *E = graph[i].nodes.front(); E; E = E->next()) { Ref<VisualShaderNodeGlobalExpression> global_expression = Object::cast_to<VisualShaderNodeGlobalExpression>(E->get().node.ptr()); if (global_expression.is_valid()) { - String expr = ""; expr += "// " + global_expression->get_caption() + ":" + itos(index++) + "\n"; expr += global_expression->generate_global(get_mode(), Type(i), -1); @@ -772,7 +754,6 @@ String VisualShader::validate_port_name(const String &p_name, const List<String> } if (name != String()) { - String valid_name; for (int i = 0; i < name.length(); i++) { @@ -813,13 +794,11 @@ String VisualShader::validate_port_name(const String &p_name, const List<String> } String VisualShader::validate_uniform_name(const String &p_name, const Ref<VisualShaderNodeUniform> &p_uniform) const { - String name = p_name; //validate name first while (name.length() && !IS_INITIAL_CHAR(name[0])) { name = name.substr(1, name.length() - 1); } if (name != String()) { - String valid_name; for (int i = 0; i < name.length(); i++) { @@ -840,7 +819,6 @@ String VisualShader::validate_uniform_name(const String &p_name, const Ref<Visua int attempt = 1; while (true) { - bool exists = false; for (int i = 0; i < TYPE_MAX; i++) { for (const Map<int, Node>::Element *E = graph[i].nodes.front(); E; E = E->next()) { @@ -890,7 +868,6 @@ static const char *type_string[VisualShader::TYPE_MAX] = { "light" }; bool VisualShader::_set(const StringName &p_name, const Variant &p_value) { - String name = p_name; if (name == "mode") { set_mode(Shader::Mode(int(p_value))); @@ -927,7 +904,6 @@ bool VisualShader::_set(const StringName &p_name, const Variant &p_value) { String index = name.get_slicec('/', 2); if (index == "connections") { - Vector<int> conns = p_value; if (conns.size() % 4 == 0) { for (int i = 0; i < conns.size(); i += 4) { @@ -964,7 +940,6 @@ bool VisualShader::_set(const StringName &p_name, const Variant &p_value) { } bool VisualShader::_get(const StringName &p_name, Variant &r_ret) const { - String name = p_name; if (name == "mode") { r_ret = get_mode(); @@ -993,7 +968,6 @@ bool VisualShader::_get(const StringName &p_name, Variant &r_ret) const { String index = name.get_slicec('/', 2); if (index == "connections") { - Vector<int> conns; for (const List<Connection>::Element *E = graph[type].connections.front(); E; E = E->next()) { conns.push_back(E->get().from_node); @@ -1074,13 +1048,11 @@ void VisualShader::_get_property_list(List<PropertyInfo> *p_list) const { for (int i = 0; i < TYPE_MAX; i++) { for (Map<int, Node>::Element *E = graph[i].nodes.front(); E; E = E->next()) { - String prop_name = "nodes/"; prop_name += type_string[i]; prop_name += "/" + itos(E->key()); if (E->key() != NODE_ID_OUTPUT) { - p_list->push_back(PropertyInfo(Variant::OBJECT, prop_name + "/node", PROPERTY_HINT_RESOURCE_TYPE, "VisualShaderNode", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_DO_NOT_SHARE_ON_DUPLICATE)); } p_list->push_back(PropertyInfo(Variant::VECTOR2, prop_name + "/position", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR)); @@ -1099,7 +1071,6 @@ void VisualShader::_get_property_list(List<PropertyInfo> *p_list) const { } Error VisualShader::_write_node(Type type, StringBuilder &global_code, StringBuilder &global_code_per_node, Map<Type, StringBuilder> &global_code_per_func, StringBuilder &code, Vector<VisualShader::DefaultTextureParam> &def_tex_params, const VMap<ConnectionKey, const List<Connection>::Element *> &input_connections, const VMap<ConnectionKey, const List<Connection>::Element *> &output_connections, int node, Set<int> &processed, bool for_preview, Set<StringName> &r_classes) const { - const Ref<VisualShaderNode> vsnode = graph[type].nodes[node].node; //check inputs recursively first @@ -1181,7 +1152,6 @@ Error VisualShader::_write_node(Type type, StringBuilder &global_code, StringBui inputs[i] = "int(" + src_var + ")"; } } else { - Variant defval = vsnode->get_input_port_default_value(i); if (defval.get_type() == Variant::FLOAT) { float val = defval; @@ -1283,7 +1253,6 @@ Error VisualShader::_write_node(Type type, StringBuilder &global_code, StringBui bool skip_global = input.is_valid() && for_preview; if (!skip_global) { - global_code += vsnode->generate_global(get_mode(), type, node); String class_name = vsnode->get_class_name(); @@ -1330,11 +1299,8 @@ void VisualShader::_update_shader() const { //fill render mode enums int idx = 0; while (render_mode_enums[idx].string) { - if (shader_mode == render_mode_enums[idx].mode) { - if (modes.has(render_mode_enums[idx].string)) { - int which = modes[render_mode_enums[idx].string]; int count = 0; for (int i = 0; i < ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader_mode)).size(); i++) { @@ -1357,7 +1323,6 @@ void VisualShader::_update_shader() const { //fill render mode flags for (int i = 0; i < ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader_mode)).size(); i++) { - String mode = ShaderTypes::get_singleton()->get_modes(RenderingServer::ShaderMode(shader_mode))[i]; if (flags.has(mode)) { if (render_mode != String()) { @@ -1369,7 +1334,6 @@ void VisualShader::_update_shader() const { } if (render_mode != String()) { - global_code += "render_mode " + render_mode + ";\n\n"; } @@ -1377,7 +1341,6 @@ void VisualShader::_update_shader() const { String global_expressions; for (int i = 0, index = 0; i < TYPE_MAX; i++) { - if (!ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader_mode)).has(func_name[i])) { continue; } @@ -1385,7 +1348,6 @@ void VisualShader::_update_shader() const { for (Map<int, Node>::Element *E = graph[i].nodes.front(); E; E = E->next()) { Ref<VisualShaderNodeGlobalExpression> global_expression = Object::cast_to<VisualShaderNodeGlobalExpression>(E->get().node.ptr()); if (global_expression.is_valid()) { - String expr = ""; expr += "// " + global_expression->get_caption() + ":" + itos(index++) + "\n"; expr += global_expression->generate_global(get_mode(), Type(i), -1); @@ -1397,7 +1359,6 @@ void VisualShader::_update_shader() const { } for (int i = 0; i < TYPE_MAX; i++) { - if (!ShaderTypes::get_singleton()->get_functions(RenderingServer::ShaderMode(shader_mode)).has(func_name[i])) { continue; } @@ -1483,7 +1444,6 @@ void VisualShader::rebuild() { } void VisualShader::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_mode", "mode"), &VisualShader::set_mode); ClassDB::bind_method(D_METHOD("add_node", "type", "node", "position", "id"), &VisualShader::add_node); @@ -1762,24 +1722,19 @@ const VisualShaderNodeInput::Port VisualShaderNodeInput::preview_ports[] = { }; int VisualShaderNodeInput::get_input_port_count() const { - return 0; } VisualShaderNodeInput::PortType VisualShaderNodeInput::get_input_port_type(int p_port) const { - return PORT_TYPE_SCALAR; } String VisualShaderNodeInput::get_input_port_name(int p_port) const { - return ""; } int VisualShaderNodeInput::get_output_port_count() const { - return 1; } VisualShaderNodeInput::PortType VisualShaderNodeInput::get_output_port_type(int p_port) const { - return get_input_type_by_name(input_name); } String VisualShaderNodeInput::get_output_port_name(int p_port) const { @@ -1791,7 +1746,6 @@ String VisualShaderNodeInput::get_caption() const { } String VisualShaderNodeInput::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - if (get_output_port_type(0) == PORT_TYPE_SAMPLER) { return ""; } @@ -1868,7 +1822,6 @@ String VisualShaderNodeInput::get_input_name() const { } String VisualShaderNodeInput::get_input_real_name() const { - int idx = 0; while (ports[idx].mode != Shader::MODE_MAX) { @@ -1882,7 +1835,6 @@ String VisualShaderNodeInput::get_input_real_name() const { } VisualShaderNodeInput::PortType VisualShaderNodeInput::get_input_type_by_name(String p_name) const { - int idx = 0; while (ports[idx].mode != Shader::MODE_MAX) { @@ -1944,7 +1896,6 @@ String VisualShaderNodeInput::get_input_index_name(int p_index) const { } void VisualShaderNodeInput::_validate_property(PropertyInfo &property) const { - if (property.name == "input_name") { String port_list; @@ -1974,7 +1925,6 @@ Vector<StringName> VisualShaderNodeInput::get_editable_properties() const { } void VisualShaderNodeInput::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_input_name", "name"), &VisualShaderNodeInput::set_input_name); ClassDB::bind_method(D_METHOD("get_input_name"), &VisualShaderNodeInput::get_input_name); ClassDB::bind_method(D_METHOD("get_input_real_name"), &VisualShaderNodeInput::get_input_real_name); @@ -2060,7 +2010,6 @@ const VisualShaderNodeOutput::Port VisualShaderNodeOutput::ports[] = { }; int VisualShaderNodeOutput::get_input_port_count() const { - int idx = 0; int count = 0; @@ -2075,7 +2024,6 @@ int VisualShaderNodeOutput::get_input_port_count() const { } VisualShaderNodeOutput::PortType VisualShaderNodeOutput::get_input_port_type(int p_port) const { - int idx = 0; int count = 0; @@ -2093,7 +2041,6 @@ VisualShaderNodeOutput::PortType VisualShaderNodeOutput::get_input_port_type(int } String VisualShaderNodeOutput::get_input_port_name(int p_port) const { - int idx = 0; int count = 0; @@ -2115,7 +2062,6 @@ Variant VisualShaderNodeOutput::get_input_port_default_value(int p_port) const { } int VisualShaderNodeOutput::get_output_port_count() const { - return 0; } VisualShaderNodeOutput::PortType VisualShaderNodeOutput::get_output_port_type(int p_port) const { @@ -2126,7 +2072,6 @@ String VisualShaderNodeOutput::get_output_port_name(int p_port) const { } bool VisualShaderNodeOutput::is_port_separator(int p_index) const { - if (shader_mode == Shader::MODE_SPATIAL && shader_type == VisualShader::TYPE_FRAGMENT) { String name = get_input_port_name(p_index); return (name == "Normal" || name == "Rim" || name == "Alpha Scissor"); @@ -2139,14 +2084,12 @@ String VisualShaderNodeOutput::get_caption() const { } String VisualShaderNodeOutput::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - int idx = 0; int count = 0; String code; while (ports[idx].mode != Shader::MODE_MAX) { if (ports[idx].mode == shader_mode && ports[idx].shader_type == shader_type) { - if (p_input_vars[count] != String()) { String s = ports[idx].string; if (s.find(":") != -1) { @@ -2188,7 +2131,6 @@ VisualShaderNodeUniform::Qualifier VisualShaderNodeUniform::get_qualifier() cons } void VisualShaderNodeUniform::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_uniform_name", "name"), &VisualShaderNodeUniform::set_uniform_name); ClassDB::bind_method(D_METHOD("get_uniform_name"), &VisualShaderNodeUniform::get_uniform_name); @@ -2218,7 +2160,6 @@ String VisualShaderNodeUniform::_get_qual_str() const { } String VisualShaderNodeUniform::get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const { - List<String> keyword_list; ShaderLanguage::get_keyword_list(&keyword_list); if (keyword_list.find(uniform_name)) { @@ -2256,7 +2197,6 @@ Vector2 VisualShaderNodeGroupBase::get_size() const { } void VisualShaderNodeGroupBase::set_inputs(const String &p_inputs) { - if (inputs == p_inputs) return; @@ -2269,7 +2209,6 @@ void VisualShaderNodeGroupBase::set_inputs(const String &p_inputs) { int input_port_count = input_strings.size(); for (int i = 0; i < input_port_count; i++) { - Vector<String> arr = input_strings[i].split(","); ERR_FAIL_COND(arr.size() != 3); @@ -2289,7 +2228,6 @@ String VisualShaderNodeGroupBase::get_inputs() const { } void VisualShaderNodeGroupBase::set_outputs(const String &p_outputs) { - if (outputs == p_outputs) return; @@ -2302,7 +2240,6 @@ void VisualShaderNodeGroupBase::set_outputs(const String &p_outputs) { int output_port_count = output_strings.size(); for (int i = 0; i < output_port_count; i++) { - Vector<String> arr = output_strings[i].split(","); ERR_FAIL_COND(arr.size() != 3); @@ -2339,7 +2276,6 @@ bool VisualShaderNodeGroupBase::is_valid_port_name(const String &p_name) const { } void VisualShaderNodeGroupBase::add_input_port(int p_id, int p_type, const String &p_name) { - String str = itos(p_id) + "," + itos(p_type) + "," + p_name + ";"; Vector<String> inputs_strings = inputs.split(";", false); int index = 0; @@ -2376,7 +2312,6 @@ void VisualShaderNodeGroupBase::add_input_port(int p_id, int p_type, const Strin } void VisualShaderNodeGroupBase::remove_input_port(int p_id) { - ERR_FAIL_COND(!has_input_port(p_id)); Vector<String> inputs_strings = inputs.split(";", false); @@ -2409,7 +2344,6 @@ bool VisualShaderNodeGroupBase::has_input_port(int p_id) const { } void VisualShaderNodeGroupBase::add_output_port(int p_id, int p_type, const String &p_name) { - String str = itos(p_id) + "," + itos(p_type) + "," + p_name + ";"; Vector<String> outputs_strings = outputs.split(";", false); int index = 0; @@ -2446,7 +2380,6 @@ void VisualShaderNodeGroupBase::add_output_port(int p_id, int p_type, const Stri } void VisualShaderNodeGroupBase::remove_output_port(int p_id) { - ERR_FAIL_COND(!has_output_port(p_id)); Vector<String> outputs_strings = outputs.split(";", false); @@ -2487,7 +2420,6 @@ void VisualShaderNodeGroupBase::clear_output_ports() { } void VisualShaderNodeGroupBase::set_input_port_type(int p_id, int p_type) { - ERR_FAIL_COND(!has_input_port(p_id)); ERR_FAIL_COND(p_type < 0 || p_type >= PORT_TYPE_MAX); @@ -2522,7 +2454,6 @@ VisualShaderNodeGroupBase::PortType VisualShaderNodeGroupBase::get_input_port_ty } void VisualShaderNodeGroupBase::set_input_port_name(int p_id, const String &p_name) { - ERR_FAIL_COND(!has_input_port(p_id)); ERR_FAIL_COND(!is_valid_port_name(p_name)); @@ -2557,7 +2488,6 @@ String VisualShaderNodeGroupBase::get_input_port_name(int p_id) const { } void VisualShaderNodeGroupBase::set_output_port_type(int p_id, int p_type) { - ERR_FAIL_COND(!has_output_port(p_id)); ERR_FAIL_COND(p_type < 0 || p_type >= PORT_TYPE_MAX); @@ -2592,7 +2522,6 @@ VisualShaderNodeGroupBase::PortType VisualShaderNodeGroupBase::get_output_port_t } void VisualShaderNodeGroupBase::set_output_port_name(int p_id, const String &p_name) { - ERR_FAIL_COND(!has_output_port(p_id)); ERR_FAIL_COND(!is_valid_port_name(p_name)); @@ -2644,7 +2573,6 @@ Control *VisualShaderNodeGroupBase::get_control(int p_index) { } void VisualShaderNodeGroupBase::_apply_port_changes() { - Vector<String> inputs_strings = inputs.split(";", false); Vector<String> outputs_strings = outputs.split(";", false); @@ -2680,7 +2608,6 @@ bool VisualShaderNodeGroupBase::is_editable() const { } void VisualShaderNodeGroupBase::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_size", "size"), &VisualShaderNodeGroupBase::set_size); ClassDB::bind_method(D_METHOD("get_size"), &VisualShaderNodeGroupBase::get_size); @@ -2742,7 +2669,6 @@ String VisualShaderNodeExpression::get_expression() const { } String VisualShaderNodeExpression::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String _expression = expression; _expression = _expression.insert(0, "\n"); @@ -2842,7 +2768,6 @@ String VisualShaderNodeExpression::generate_code(Shader::Mode p_mode, VisualShad } void VisualShaderNodeExpression::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_expression", "expression"), &VisualShaderNodeExpression::set_expression); ClassDB::bind_method(D_METHOD("get_expression"), &VisualShaderNodeExpression::get_expression); diff --git a/scene/resources/visual_shader.h b/scene/resources/visual_shader.h index 56f8e74d2b..8bd09df512 100644 --- a/scene/resources/visual_shader.h +++ b/scene/resources/visual_shader.h @@ -98,7 +98,6 @@ private: void _queue_update(); union ConnectionKey { - struct { uint64_t node : 32; uint64_t port : 32; diff --git a/scene/resources/visual_shader_nodes.cpp b/scene/resources/visual_shader_nodes.cpp index 03db8c3ac5..b89f069211 100644 --- a/scene/resources/visual_shader_nodes.cpp +++ b/scene/resources/visual_shader_nodes.cpp @@ -65,13 +65,11 @@ String VisualShaderNodeFloatConstant::generate_code(Shader::Mode p_mode, VisualS } void VisualShaderNodeFloatConstant::set_constant(float p_value) { - constant = p_value; emit_changed(); } float VisualShaderNodeFloatConstant::get_constant() const { - return constant; } @@ -82,7 +80,6 @@ Vector<StringName> VisualShaderNodeFloatConstant::get_editable_properties() cons } void VisualShaderNodeFloatConstant::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant", "value"), &VisualShaderNodeFloatConstant::set_constant); ClassDB::bind_method(D_METHOD("get_constant"), &VisualShaderNodeFloatConstant::get_constant); @@ -143,7 +140,6 @@ Vector<StringName> VisualShaderNodeIntConstant::get_editable_properties() const } void VisualShaderNodeIntConstant::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant", "value"), &VisualShaderNodeIntConstant::set_constant); ClassDB::bind_method(D_METHOD("get_constant"), &VisualShaderNodeIntConstant::get_constant); @@ -204,7 +200,6 @@ Vector<StringName> VisualShaderNodeBooleanConstant::get_editable_properties() co } void VisualShaderNodeBooleanConstant::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant", "value"), &VisualShaderNodeBooleanConstant::set_constant); ClassDB::bind_method(D_METHOD("get_constant"), &VisualShaderNodeBooleanConstant::get_constant); @@ -246,7 +241,6 @@ String VisualShaderNodeColorConstant::get_output_port_name(int p_port) const { } String VisualShaderNodeColorConstant::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code; code += "\t" + p_output_vars[0] + " = " + vformat("vec3(%.6f, %.6f, %.6f)", constant.r, constant.g, constant.b) + ";\n"; code += "\t" + p_output_vars[1] + " = " + vformat("%.6f", constant.a) + ";\n"; @@ -255,13 +249,11 @@ String VisualShaderNodeColorConstant::generate_code(Shader::Mode p_mode, VisualS } void VisualShaderNodeColorConstant::set_constant(Color p_value) { - constant = p_value; emit_changed(); } Color VisualShaderNodeColorConstant::get_constant() const { - return constant; } @@ -272,7 +264,6 @@ Vector<StringName> VisualShaderNodeColorConstant::get_editable_properties() cons } void VisualShaderNodeColorConstant::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant", "value"), &VisualShaderNodeColorConstant::set_constant); ClassDB::bind_method(D_METHOD("get_constant"), &VisualShaderNodeColorConstant::get_constant); @@ -318,13 +309,11 @@ String VisualShaderNodeVec3Constant::generate_code(Shader::Mode p_mode, VisualSh } void VisualShaderNodeVec3Constant::set_constant(Vector3 p_value) { - constant = p_value; emit_changed(); } Vector3 VisualShaderNodeVec3Constant::get_constant() const { - return constant; } @@ -335,7 +324,6 @@ Vector<StringName> VisualShaderNodeVec3Constant::get_editable_properties() const } void VisualShaderNodeVec3Constant::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant", "value"), &VisualShaderNodeVec3Constant::set_constant); ClassDB::bind_method(D_METHOD("get_constant"), &VisualShaderNodeVec3Constant::get_constant); @@ -388,13 +376,11 @@ String VisualShaderNodeTransformConstant::generate_code(Shader::Mode p_mode, Vis } void VisualShaderNodeTransformConstant::set_constant(Transform p_value) { - constant = p_value; emit_changed(); } Transform VisualShaderNodeTransformConstant::get_constant() const { - return constant; } @@ -405,7 +391,6 @@ Vector<StringName> VisualShaderNodeTransformConstant::get_editable_properties() } void VisualShaderNodeTransformConstant::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_constant", "value"), &VisualShaderNodeTransformConstant::set_constant); ClassDB::bind_method(D_METHOD("get_constant"), &VisualShaderNodeTransformConstant::get_constant); @@ -426,7 +411,6 @@ int VisualShaderNodeTexture::get_input_port_count() const { } VisualShaderNodeTexture::PortType VisualShaderNodeTexture::get_input_port_type(int p_port) const { - switch (p_port) { case 0: return PORT_TYPE_VECTOR; @@ -440,7 +424,6 @@ VisualShaderNodeTexture::PortType VisualShaderNodeTexture::get_input_port_type(i } String VisualShaderNodeTexture::get_input_port_name(int p_port) const { - switch (p_port) { case 0: return "uv"; @@ -477,7 +460,6 @@ String VisualShaderNodeTexture::get_input_port_default_hint(int p_port) const { } static String make_unique_id(VisualShader::Type p_type, int p_id, const String &p_name) { - static const char *typepf[VisualShader::TYPE_MAX] = { "vtx", "frg", "lgt" }; return p_name + "_" + String(typepf[p_type]) + "_" + itos(p_id); } @@ -492,9 +474,7 @@ Vector<VisualShader::DefaultTextureParam> VisualShaderNodeTexture::get_default_t } String VisualShaderNodeTexture::generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const { - if (source == SOURCE_TEXTURE) { - String u = "uniform sampler2D " + make_unique_id(p_type, p_id, "tex"); switch (texture_type) { case TYPE_DATA: @@ -513,7 +493,6 @@ String VisualShaderNodeTexture::generate_global(Shader::Mode p_mode, VisualShade } String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - if (source == SOURCE_TEXTURE) { String id = make_unique_id(p_type, p_id, "tex"); String code; @@ -568,7 +547,6 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: } if (source == SOURCE_SCREEN && (p_mode == Shader::MODE_SPATIAL || p_mode == Shader::MODE_CANVAS_ITEM) && p_type == VisualShader::TYPE_FRAGMENT) { - String code = "\t{\n"; if (p_input_vars[0] == String() || p_for_preview) { // Use UV by default. @@ -592,7 +570,6 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: } if (source == SOURCE_2D_TEXTURE && p_mode == Shader::MODE_CANVAS_ITEM && p_type == VisualShader::TYPE_FRAGMENT) { - String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. @@ -616,7 +593,6 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: } if (source == SOURCE_2D_NORMAL && p_mode == Shader::MODE_CANVAS_ITEM && p_type == VisualShader::TYPE_FRAGMENT) { - String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. @@ -650,7 +626,6 @@ String VisualShaderNodeTexture::generate_code(Shader::Mode p_mode, VisualShader: } if (source == SOURCE_DEPTH && p_mode == Shader::MODE_SPATIAL && p_type == VisualShader::TYPE_FRAGMENT) { - String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. @@ -716,13 +691,11 @@ VisualShaderNodeTexture::Source VisualShaderNodeTexture::get_source() const { } void VisualShaderNodeTexture::set_texture(Ref<Texture2D> p_value) { - texture = p_value; emit_changed(); } Ref<Texture2D> VisualShaderNodeTexture::get_texture() const { - return texture; } @@ -746,7 +719,6 @@ Vector<StringName> VisualShaderNodeTexture::get_editable_properties() const { } String VisualShaderNodeTexture::get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const { - if (source == SOURCE_TEXTURE) { return String(); // all good } @@ -756,22 +728,18 @@ String VisualShaderNodeTexture::get_warning(Shader::Mode p_mode, VisualShader::T } if (source == SOURCE_SCREEN && (p_mode == Shader::MODE_SPATIAL || p_mode == Shader::MODE_CANVAS_ITEM) && p_type == VisualShader::TYPE_FRAGMENT) { - return String(); // all good } if (source == SOURCE_2D_TEXTURE && p_mode == Shader::MODE_CANVAS_ITEM && p_type == VisualShader::TYPE_FRAGMENT) { - return String(); // all good } if (source == SOURCE_2D_NORMAL && p_mode == Shader::MODE_CANVAS_ITEM) { - return String(); // all good } if (source == SOURCE_DEPTH && p_mode == Shader::MODE_SPATIAL && p_type == VisualShader::TYPE_FRAGMENT) { - if (get_output_port_for_preview() == 0) { // DEPTH_TEXTURE is not supported in preview(canvas_item) shader return TTR("Invalid source for preview."); } @@ -782,7 +750,6 @@ String VisualShaderNodeTexture::get_warning(Shader::Mode p_mode, VisualShader::T } void VisualShaderNodeTexture::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_source", "value"), &VisualShaderNodeTexture::set_source); ClassDB::bind_method(D_METHOD("get_source"), &VisualShaderNodeTexture::get_source); @@ -870,7 +837,6 @@ Vector<VisualShader::DefaultTextureParam> VisualShaderNodeCubemap::get_default_t } String VisualShaderNodeCubemap::generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const { - if (source == SOURCE_TEXTURE) { String u = "uniform samplerCube " + make_unique_id(p_type, p_id, "cube"); switch (texture_type) { @@ -889,7 +855,6 @@ String VisualShaderNodeCubemap::generate_global(Shader::Mode p_mode, VisualShade } String VisualShaderNodeCubemap::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code; String id; if (source == SOURCE_TEXTURE) { @@ -949,13 +914,11 @@ VisualShaderNodeCubemap::Source VisualShaderNodeCubemap::get_source() const { } void VisualShaderNodeCubemap::set_cube_map(Ref<Cubemap> p_value) { - cube_map = p_value; emit_changed(); } Ref<Cubemap> VisualShaderNodeCubemap::get_cube_map() const { - return cube_map; } @@ -979,7 +942,6 @@ Vector<StringName> VisualShaderNodeCubemap::get_editable_properties() const { } void VisualShaderNodeCubemap::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_source", "value"), &VisualShaderNodeCubemap::set_source); ClassDB::bind_method(D_METHOD("get_source"), &VisualShaderNodeCubemap::get_source); @@ -1038,10 +1000,8 @@ String VisualShaderNodeFloatOp::get_output_port_name(int p_port) const { } String VisualShaderNodeFloatOp::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code = "\t" + p_output_vars[0] + " = "; switch (op) { - case OP_ADD: code += p_input_vars[0] + " + " + p_input_vars[1] + ";\n"; break; @@ -1078,13 +1038,11 @@ String VisualShaderNodeFloatOp::generate_code(Shader::Mode p_mode, VisualShader: } void VisualShaderNodeFloatOp::set_operator(Operator p_op) { - op = p_op; emit_changed(); } VisualShaderNodeFloatOp::Operator VisualShaderNodeFloatOp::get_operator() const { - return op; } @@ -1095,7 +1053,6 @@ Vector<StringName> VisualShaderNodeFloatOp::get_editable_properties() const { } void VisualShaderNodeFloatOp::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_operator", "op"), &VisualShaderNodeFloatOp::set_operator); ClassDB::bind_method(D_METHOD("get_operator"), &VisualShaderNodeFloatOp::get_operator); @@ -1150,10 +1107,8 @@ String VisualShaderNodeIntOp::get_output_port_name(int p_port) const { } String VisualShaderNodeIntOp::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code = "\t" + p_output_vars[0] + " = "; switch (op) { - case OP_ADD: code += p_input_vars[0] + " + " + p_input_vars[1] + ";\n"; break; @@ -1181,7 +1136,6 @@ String VisualShaderNodeIntOp::generate_code(Shader::Mode p_mode, VisualShader::T } void VisualShaderNodeIntOp::set_operator(Operator p_op) { - op = p_op; emit_changed(); } @@ -1197,7 +1151,6 @@ Vector<StringName> VisualShaderNodeIntOp::get_editable_properties() const { } void VisualShaderNodeIntOp::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_operator", "op"), &VisualShaderNodeIntOp::set_operator); ClassDB::bind_method(D_METHOD("get_operator"), &VisualShaderNodeIntOp::get_operator); @@ -1249,10 +1202,8 @@ String VisualShaderNodeVectorOp::get_output_port_name(int p_port) const { } String VisualShaderNodeVectorOp::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code = "\t" + p_output_vars[0] + " = "; switch (op) { - case OP_ADD: code += p_input_vars[0] + " + " + p_input_vars[1] + ";\n"; break; @@ -1295,13 +1246,11 @@ String VisualShaderNodeVectorOp::generate_code(Shader::Mode p_mode, VisualShader } void VisualShaderNodeVectorOp::set_operator(Operator p_op) { - op = p_op; emit_changed(); } VisualShaderNodeVectorOp::Operator VisualShaderNodeVectorOp::get_operator() const { - return op; } @@ -1312,7 +1261,6 @@ Vector<StringName> VisualShaderNodeVectorOp::get_editable_properties() const { } void VisualShaderNodeVectorOp::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_operator", "op"), &VisualShaderNodeVectorOp::set_operator); ClassDB::bind_method(D_METHOD("get_operator"), &VisualShaderNodeVectorOp::get_operator); @@ -1369,29 +1317,23 @@ String VisualShaderNodeColorOp::get_output_port_name(int p_port) const { } String VisualShaderNodeColorOp::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code; static const char *axisn[3] = { "x", "y", "z" }; switch (op) { case OP_SCREEN: { - code += "\t" + p_output_vars[0] + " = vec3(1.0) - (vec3(1.0) - " + p_input_vars[0] + ") * (vec3(1.0) - " + p_input_vars[1] + ");\n"; } break; case OP_DIFFERENCE: { - code += "\t" + p_output_vars[0] + " = abs(" + p_input_vars[0] + " - " + p_input_vars[1] + ");\n"; } break; case OP_DARKEN: { - code += "\t" + p_output_vars[0] + " = min(" + p_input_vars[0] + ", " + p_input_vars[1] + ");\n"; } break; case OP_LIGHTEN: { - code += "\t" + p_output_vars[0] + " = max(" + p_input_vars[0] + ", " + p_input_vars[1] + ");\n"; } break; case OP_OVERLAY: { - for (int i = 0; i < 3; i++) { code += "\t{\n"; code += "\t\tfloat base = " + p_input_vars[0] + "." + axisn[i] + ";\n"; @@ -1406,16 +1348,13 @@ String VisualShaderNodeColorOp::generate_code(Shader::Mode p_mode, VisualShader: } break; case OP_DODGE: { - code += "\t" + p_output_vars[0] + " = (" + p_input_vars[0] + ") / (vec3(1.0) - " + p_input_vars[1] + ");\n"; } break; case OP_BURN: { - code += "\t" + p_output_vars[0] + " = vec3(1.0) - (vec3(1.0) - " + p_input_vars[0] + ") / (" + p_input_vars[1] + ");\n"; } break; case OP_SOFT_LIGHT: { - for (int i = 0; i < 3; i++) { code += "\t{\n"; code += "\t\tfloat base = " + p_input_vars[0] + "." + axisn[i] + ";\n"; @@ -1430,7 +1369,6 @@ String VisualShaderNodeColorOp::generate_code(Shader::Mode p_mode, VisualShader: } break; case OP_HARD_LIGHT: { - for (int i = 0; i < 3; i++) { code += "\t{\n"; code += "\t\tfloat base = " + p_input_vars[0] + "." + axisn[i] + ";\n"; @@ -1450,7 +1388,6 @@ String VisualShaderNodeColorOp::generate_code(Shader::Mode p_mode, VisualShader: } void VisualShaderNodeColorOp::set_operator(Operator p_op) { - op = p_op; switch (op) { case OP_SCREEN: @@ -1485,7 +1422,6 @@ void VisualShaderNodeColorOp::set_operator(Operator p_op) { } VisualShaderNodeColorOp::Operator VisualShaderNodeColorOp::get_operator() const { - return op; } @@ -1496,7 +1432,6 @@ Vector<StringName> VisualShaderNodeColorOp::get_editable_properties() const { } void VisualShaderNodeColorOp::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_operator", "op"), &VisualShaderNodeColorOp::set_operator); ClassDB::bind_method(D_METHOD("get_operator"), &VisualShaderNodeColorOp::get_operator); @@ -1550,7 +1485,6 @@ String VisualShaderNodeTransformMult::get_output_port_name(int p_port) const { } String VisualShaderNodeTransformMult::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - if (op == OP_AxB) { return "\t" + p_output_vars[0] + " = " + p_input_vars[0] + " * " + p_input_vars[1] + ";\n"; } else if (op == OP_BxA) { @@ -1563,13 +1497,11 @@ String VisualShaderNodeTransformMult::generate_code(Shader::Mode p_mode, VisualS } void VisualShaderNodeTransformMult::set_operator(Operator p_op) { - op = p_op; emit_changed(); } VisualShaderNodeTransformMult::Operator VisualShaderNodeTransformMult::get_operator() const { - return op; } @@ -1580,7 +1512,6 @@ Vector<StringName> VisualShaderNodeTransformMult::get_editable_properties() cons } void VisualShaderNodeTransformMult::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_operator", "op"), &VisualShaderNodeTransformMult::set_operator); ClassDB::bind_method(D_METHOD("get_operator"), &VisualShaderNodeTransformMult::get_operator); @@ -1641,13 +1572,11 @@ String VisualShaderNodeTransformVecMult::generate_code(Shader::Mode p_mode, Visu } void VisualShaderNodeTransformVecMult::set_operator(Operator p_op) { - op = p_op; emit_changed(); } VisualShaderNodeTransformVecMult::Operator VisualShaderNodeTransformVecMult::get_operator() const { - return op; } @@ -1658,7 +1587,6 @@ Vector<StringName> VisualShaderNodeTransformVecMult::get_editable_properties() c } void VisualShaderNodeTransformVecMult::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_operator", "op"), &VisualShaderNodeTransformVecMult::set_operator); ClassDB::bind_method(D_METHOD("get_operator"), &VisualShaderNodeTransformVecMult::get_operator); @@ -1707,7 +1635,6 @@ String VisualShaderNodeFloatFunc::get_output_port_name(int p_port) const { } String VisualShaderNodeFloatFunc::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - static const char *scalar_func_id[FUNC_ONEMINUS + 1] = { "sin($)", "cos($)", @@ -1747,13 +1674,11 @@ String VisualShaderNodeFloatFunc::generate_code(Shader::Mode p_mode, VisualShade } void VisualShaderNodeFloatFunc::set_function(Function p_func) { - func = p_func; emit_changed(); } VisualShaderNodeFloatFunc::Function VisualShaderNodeFloatFunc::get_function() const { - return func; } @@ -1764,7 +1689,6 @@ Vector<StringName> VisualShaderNodeFloatFunc::get_editable_properties() const { } void VisualShaderNodeFloatFunc::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeFloatFunc::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeFloatFunc::get_function); @@ -1878,7 +1802,6 @@ void VisualShaderNodeIntFunc::set_function(Function p_func) { } VisualShaderNodeIntFunc::Function VisualShaderNodeIntFunc::get_function() const { - return func; } @@ -1889,7 +1812,6 @@ Vector<StringName> VisualShaderNodeIntFunc::get_editable_properties() const { } void VisualShaderNodeIntFunc::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeIntFunc::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeIntFunc::get_function); @@ -1937,7 +1859,6 @@ String VisualShaderNodeVectorFunc::get_output_port_name(int p_port) const { } String VisualShaderNodeVectorFunc::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - static const char *vec_func_id[FUNC_ONEMINUS + 1] = { "normalize($)", "max(min($, vec3(1.0)), vec3(0.0))", @@ -2004,7 +1925,6 @@ String VisualShaderNodeVectorFunc::generate_code(Shader::Mode p_mode, VisualShad } void VisualShaderNodeVectorFunc::set_function(Function p_func) { - func = p_func; if (func == FUNC_RGB2HSV) { simple_decl = false; @@ -2017,7 +1937,6 @@ void VisualShaderNodeVectorFunc::set_function(Function p_func) { } VisualShaderNodeVectorFunc::Function VisualShaderNodeVectorFunc::get_function() const { - return func; } @@ -2028,7 +1947,6 @@ Vector<StringName> VisualShaderNodeVectorFunc::get_editable_properties() const { } void VisualShaderNodeVectorFunc::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeVectorFunc::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeVectorFunc::get_function); @@ -2107,7 +2025,6 @@ String VisualShaderNodeColorFunc::get_output_port_name(int p_port) const { } String VisualShaderNodeColorFunc::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code; switch (func) { @@ -2135,13 +2052,11 @@ String VisualShaderNodeColorFunc::generate_code(Shader::Mode p_mode, VisualShade } void VisualShaderNodeColorFunc::set_function(Function p_func) { - func = p_func; emit_changed(); } VisualShaderNodeColorFunc::Function VisualShaderNodeColorFunc::get_function() const { - return func; } @@ -2152,7 +2067,6 @@ Vector<StringName> VisualShaderNodeColorFunc::get_editable_properties() const { } void VisualShaderNodeColorFunc::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeColorFunc::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeColorFunc::get_function); @@ -2199,7 +2113,6 @@ String VisualShaderNodeTransformFunc::get_output_port_name(int p_port) const { } String VisualShaderNodeTransformFunc::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - static const char *funcs[FUNC_TRANSPOSE + 1] = { "inverse($)", "transpose($)" @@ -2211,13 +2124,11 @@ String VisualShaderNodeTransformFunc::generate_code(Shader::Mode p_mode, VisualS } void VisualShaderNodeTransformFunc::set_function(Function p_func) { - func = p_func; emit_changed(); } VisualShaderNodeTransformFunc::Function VisualShaderNodeTransformFunc::get_function() const { - return func; } @@ -2228,7 +2139,6 @@ Vector<StringName> VisualShaderNodeTransformFunc::get_editable_properties() cons } void VisualShaderNodeTransformFunc::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeTransformFunc::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeTransformFunc::get_function); @@ -2389,7 +2299,6 @@ String VisualShaderNodeScalarDerivativeFunc::get_output_port_name(int p_port) co } String VisualShaderNodeScalarDerivativeFunc::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - static const char *funcs[FUNC_Y + 1] = { "fwidth($)", "dFdx($)", @@ -2402,13 +2311,11 @@ String VisualShaderNodeScalarDerivativeFunc::generate_code(Shader::Mode p_mode, } void VisualShaderNodeScalarDerivativeFunc::set_function(Function p_func) { - func = p_func; emit_changed(); } VisualShaderNodeScalarDerivativeFunc::Function VisualShaderNodeScalarDerivativeFunc::get_function() const { - return func; } @@ -2419,7 +2326,6 @@ Vector<StringName> VisualShaderNodeScalarDerivativeFunc::get_editable_properties } void VisualShaderNodeScalarDerivativeFunc::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeScalarDerivativeFunc::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeScalarDerivativeFunc::get_function); @@ -2466,7 +2372,6 @@ String VisualShaderNodeVectorDerivativeFunc::get_output_port_name(int p_port) co } String VisualShaderNodeVectorDerivativeFunc::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - static const char *funcs[FUNC_Y + 1] = { "fwidth($)", "dFdx($)", @@ -2479,13 +2384,11 @@ String VisualShaderNodeVectorDerivativeFunc::generate_code(Shader::Mode p_mode, } void VisualShaderNodeVectorDerivativeFunc::set_function(Function p_func) { - func = p_func; emit_changed(); } VisualShaderNodeVectorDerivativeFunc::Function VisualShaderNodeVectorDerivativeFunc::get_function() const { - return func; } @@ -2496,7 +2399,6 @@ Vector<StringName> VisualShaderNodeVectorDerivativeFunc::get_editable_properties } void VisualShaderNodeVectorDerivativeFunc::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeVectorDerivativeFunc::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeVectorDerivativeFunc::get_function); @@ -2943,7 +2845,6 @@ int VisualShaderNodeVectorRefract::get_input_port_count() const { } VisualShaderNodeVectorRefract::PortType VisualShaderNodeVectorRefract::get_input_port_type(int p_port) const { - if (p_port == 2) { return PORT_TYPE_SCALAR; } @@ -3165,7 +3066,6 @@ String VisualShaderNodeVectorCompose::generate_code(Shader::Mode p_mode, VisualS } VisualShaderNodeVectorCompose::VisualShaderNodeVectorCompose() { - set_input_port_default_value(0, 0.0); set_input_port_default_value(1, 0.0); set_input_port_default_value(2, 0.0); @@ -3214,7 +3114,6 @@ String VisualShaderNodeTransformCompose::generate_code(Shader::Mode p_mode, Visu } VisualShaderNodeTransformCompose::VisualShaderNodeTransformCompose() { - set_input_port_default_value(0, Vector3()); set_input_port_default_value(1, Vector3()); set_input_port_default_value(2, Vector3()); @@ -3647,7 +3546,6 @@ String VisualShaderNodeColorUniform::get_output_port_name(int p_port) const { } String VisualShaderNodeColorUniform::generate_global(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const { - return _get_qual_str() + "uniform vec4 " + get_uniform_name() + " : hint_color;\n"; } @@ -3777,7 +3675,6 @@ int VisualShaderNodeTextureUniform::get_output_port_count() const { } VisualShaderNodeTextureUniform::PortType VisualShaderNodeTextureUniform::get_output_port_type(int p_port) const { - switch (p_port) { case 0: return PORT_TYPE_VECTOR; @@ -3791,7 +3688,6 @@ VisualShaderNodeTextureUniform::PortType VisualShaderNodeTextureUniform::get_out } String VisualShaderNodeTextureUniform::get_output_port_name(int p_port) const { - switch (p_port) { case 0: return "rgb"; @@ -3832,7 +3728,6 @@ String VisualShaderNodeTextureUniform::generate_global(Shader::Mode p_mode, Visu } String VisualShaderNodeTextureUniform::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String id = get_uniform_name(); String code = "\t{\n"; if (p_input_vars[0] == String()) { // Use UV by default. @@ -3855,7 +3750,6 @@ String VisualShaderNodeTextureUniform::generate_code(Shader::Mode p_mode, Visual } void VisualShaderNodeTextureUniform::set_texture_type(TextureType p_type) { - texture_type = p_type; emit_changed(); } @@ -3953,7 +3847,6 @@ String VisualShaderNodeTextureUniformTriplanar::get_input_port_name(int p_port) } String VisualShaderNodeTextureUniformTriplanar::generate_global_per_node(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const { - String code; code += "// TRIPLANAR FUNCTION GLOBAL CODE\n"; @@ -3976,11 +3869,9 @@ String VisualShaderNodeTextureUniformTriplanar::generate_global_per_node(Shader: } String VisualShaderNodeTextureUniformTriplanar::generate_global_per_func(Shader::Mode p_mode, VisualShader::Type p_type, int p_id) const { - String code; if (p_type == VisualShader::TYPE_VERTEX) { - code += "\t// TRIPLANAR FUNCTION VERTEX CODE\n"; code += "\t\ttriplanar_power_normal = pow(abs(NORMAL), vec3(triplanar_sharpness));\n"; code += "\t\ttriplanar_power_normal /= dot(triplanar_power_normal, vec3(1.0));\n"; @@ -3992,7 +3883,6 @@ String VisualShaderNodeTextureUniformTriplanar::generate_global_per_func(Shader: } String VisualShaderNodeTextureUniformTriplanar::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String id = get_uniform_name(); String code = "\t{\n"; @@ -4142,7 +4032,6 @@ String VisualShaderNodeIf::get_output_port_name(int p_port) const { } String VisualShaderNodeIf::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code; code += "\tif(abs(" + p_input_vars[0] + " - " + p_input_vars[1] + ") < " + p_input_vars[2] + ")\n"; // abs(a - b) < tolerance eg. a == b code += "\t{\n"; @@ -4212,7 +4101,6 @@ String VisualShaderNodeSwitch::get_output_port_name(int p_port) const { } String VisualShaderNodeSwitch::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String code; code += "\tif(" + p_input_vars[0] + ")\n"; code += "\t{\n"; @@ -4308,7 +4196,6 @@ String VisualShaderNodeFresnel::get_output_port_name(int p_port) const { } String VisualShaderNodeFresnel::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - String normal; String view; if (p_input_vars[0] == String()) { @@ -4342,42 +4229,34 @@ VisualShaderNodeFresnel::VisualShaderNodeFresnel() { ////////////// Is String VisualShaderNodeIs::get_caption() const { - return "Is"; } int VisualShaderNodeIs::get_input_port_count() const { - return 1; } VisualShaderNodeIs::PortType VisualShaderNodeIs::get_input_port_type(int p_port) const { - return PORT_TYPE_SCALAR; } String VisualShaderNodeIs::get_input_port_name(int p_port) const { - return ""; } int VisualShaderNodeIs::get_output_port_count() const { - return 1; } VisualShaderNodeIs::PortType VisualShaderNodeIs::get_output_port_type(int p_port) const { - return PORT_TYPE_BOOLEAN; } String VisualShaderNodeIs::get_output_port_name(int p_port) const { - return ""; } String VisualShaderNodeIs::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - static const char *funcs[FUNC_IS_NAN + 1] = { "isinf($)", "isnan($)" @@ -4389,25 +4268,21 @@ String VisualShaderNodeIs::generate_code(Shader::Mode p_mode, VisualShader::Type } void VisualShaderNodeIs::set_function(Function p_func) { - func = p_func; emit_changed(); } VisualShaderNodeIs::Function VisualShaderNodeIs::get_function() const { - return func; } Vector<StringName> VisualShaderNodeIs::get_editable_properties() const { - Vector<StringName> props; props.push_back("function"); return props; } void VisualShaderNodeIs::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_function", "func"), &VisualShaderNodeIs::set_function); ClassDB::bind_method(D_METHOD("get_function"), &VisualShaderNodeIs::get_function); @@ -4418,7 +4293,6 @@ void VisualShaderNodeIs::_bind_methods() { } VisualShaderNodeIs::VisualShaderNodeIs() { - func = FUNC_IS_INF; set_input_port_default_value(0, 0.0); } @@ -4426,12 +4300,10 @@ VisualShaderNodeIs::VisualShaderNodeIs() { ////////////// Compare String VisualShaderNodeCompare::get_caption() const { - return "Compare"; } int VisualShaderNodeCompare::get_input_port_count() const { - if (ctype == CTYPE_SCALAR && (func == FUNC_EQUAL || func == FUNC_NOT_EQUAL)) { return 3; } @@ -4439,7 +4311,6 @@ int VisualShaderNodeCompare::get_input_port_count() const { } VisualShaderNodeCompare::PortType VisualShaderNodeCompare::get_input_port_type(int p_port) const { - if (p_port == 2) return PORT_TYPE_SCALAR; switch (ctype) { @@ -4482,7 +4353,6 @@ String VisualShaderNodeCompare::get_output_port_name(int p_port) const { } String VisualShaderNodeCompare::get_warning(Shader::Mode p_mode, VisualShader::Type p_type) const { - if (ctype == CTYPE_BOOLEAN || ctype == CTYPE_TRANSFORM) { if (func > FUNC_NOT_EQUAL) { return TTR("Invalid comparison function for that type."); @@ -4493,7 +4363,6 @@ String VisualShaderNodeCompare::get_warning(Shader::Mode p_mode, VisualShader::T } String VisualShaderNodeCompare::generate_code(Shader::Mode p_mode, VisualShader::Type p_type, int p_id, const String *p_input_vars, const String *p_output_vars, bool p_for_preview) const { - static const char *ops[FUNC_LESS_THAN_EQUAL + 1] = { "==", "!=", @@ -4559,7 +4428,6 @@ String VisualShaderNodeCompare::generate_code(Shader::Mode p_mode, VisualShader: } void VisualShaderNodeCompare::set_comparison_type(ComparisonType p_type) { - ctype = p_type; switch (ctype) { @@ -4593,29 +4461,24 @@ void VisualShaderNodeCompare::set_comparison_type(ComparisonType p_type) { } VisualShaderNodeCompare::ComparisonType VisualShaderNodeCompare::get_comparison_type() const { - return ctype; } void VisualShaderNodeCompare::set_function(Function p_func) { - func = p_func; emit_changed(); } VisualShaderNodeCompare::Function VisualShaderNodeCompare::get_function() const { - return func; } void VisualShaderNodeCompare::set_condition(Condition p_cond) { - condition = p_cond; emit_changed(); } VisualShaderNodeCompare::Condition VisualShaderNodeCompare::get_condition() const { - return condition; } @@ -4629,7 +4492,6 @@ Vector<StringName> VisualShaderNodeCompare::get_editable_properties() const { } void VisualShaderNodeCompare::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_comparison_type", "type"), &VisualShaderNodeCompare::set_comparison_type); ClassDB::bind_method(D_METHOD("get_comparison_type"), &VisualShaderNodeCompare::get_comparison_type); diff --git a/scene/resources/world_2d.cpp b/scene/resources/world_2d.cpp index f2f67d3814..99b9c7803e 100644 --- a/scene/resources/world_2d.cpp +++ b/scene/resources/world_2d.cpp @@ -38,9 +38,7 @@ #include "servers/rendering_server.h" struct SpatialIndexer2D { - struct CellRef { - int ref; _FORCE_INLINE_ int inc() { @@ -58,7 +56,6 @@ struct SpatialIndexer2D { }; struct CellKey { - union { struct { int32_t x; @@ -74,7 +71,6 @@ struct SpatialIndexer2D { }; struct CellData { - Map<VisibilityNotifier2D *, CellRef> notifiers; }; @@ -84,7 +80,6 @@ struct SpatialIndexer2D { Map<VisibilityNotifier2D *, Rect2> notifiers; struct ViewportData { - Map<VisibilityNotifier2D *, uint64_t> notifiers; Rect2 rect; }; @@ -96,30 +91,24 @@ struct SpatialIndexer2D { uint64_t pass; void _notifier_update_cells(VisibilityNotifier2D *p_notifier, const Rect2 &p_rect, bool p_add) { - Point2i begin = p_rect.position; begin /= cell_size; Point2i end = p_rect.position + p_rect.size; end /= cell_size; for (int i = begin.x; i <= end.x; i++) { - for (int j = begin.y; j <= end.y; j++) { - CellKey ck; ck.x = i; ck.y = j; Map<CellKey, CellData>::Element *E = cells.find(ck); if (p_add) { - if (!E) E = cells.insert(ck, CellData()); E->get().notifiers[p_notifier].inc(); } else { - ERR_CONTINUE(!E); if (E->get().notifiers[p_notifier].dec() == 0) { - E->get().notifiers.erase(p_notifier); if (E->get().notifiers.empty()) { cells.erase(E); @@ -131,7 +120,6 @@ struct SpatialIndexer2D { } void _notifier_add(VisibilityNotifier2D *p_notifier, const Rect2 &p_rect) { - ERR_FAIL_COND(notifiers.has(p_notifier)); notifiers[p_notifier] = p_rect; _notifier_update_cells(p_notifier, p_rect, true); @@ -139,7 +127,6 @@ struct SpatialIndexer2D { } void _notifier_update(VisibilityNotifier2D *p_notifier, const Rect2 &p_rect) { - Map<VisibilityNotifier2D *, Rect2>::Element *E = notifiers.find(p_notifier); ERR_FAIL_COND(!E); if (E->get() == p_rect) @@ -152,7 +139,6 @@ struct SpatialIndexer2D { } void _notifier_remove(VisibilityNotifier2D *p_notifier) { - Map<VisibilityNotifier2D *, Rect2>::Element *E = notifiers.find(p_notifier); ERR_FAIL_COND(!E); _notifier_update_cells(p_notifier, E->get(), false); @@ -160,7 +146,6 @@ struct SpatialIndexer2D { List<Viewport *> removed; for (Map<Viewport *, ViewportData>::Element *F = viewports.front(); F; F = F->next()) { - Map<VisibilityNotifier2D *, uint64_t>::Element *G = F->get().notifiers.find(p_notifier); if (G) { @@ -170,7 +155,6 @@ struct SpatialIndexer2D { } while (!removed.empty()) { - p_notifier->_exit_viewport(removed.front()->get()); removed.pop_front(); } @@ -179,7 +163,6 @@ struct SpatialIndexer2D { } void _add_viewport(Viewport *p_viewport, const Rect2 &p_rect) { - ERR_FAIL_COND(viewports.has(p_viewport)); ViewportData vd; vd.rect = p_rect; @@ -188,7 +171,6 @@ struct SpatialIndexer2D { } void _update_viewport(Viewport *p_viewport, const Rect2 &p_rect) { - Map<Viewport *, ViewportData>::Element *E = viewports.find(p_viewport); ERR_FAIL_COND(!E); if (E->get().rect == p_rect) @@ -201,7 +183,6 @@ struct SpatialIndexer2D { ERR_FAIL_COND(!viewports.has(p_viewport)); List<VisibilityNotifier2D *> removed; for (Map<VisibilityNotifier2D *, uint64_t>::Element *E = viewports[p_viewport].notifiers.front(); E; E = E->next()) { - removed.push_back(E->key()); } @@ -214,12 +195,10 @@ struct SpatialIndexer2D { } void _update() { - if (!changed) return; for (Map<Viewport *, ViewportData>::Element *E = viewports.front(); E; E = E->next()) { - Point2i begin = E->get().rect.position; begin /= cell_size; Point2i end = E->get().rect.position + E->get().rect.size; @@ -231,11 +210,9 @@ struct SpatialIndexer2D { int visible_cells = (end.x - begin.x) * (end.y - begin.y); if (visible_cells > 10000) { - //well you zoomed out a lot, it's your problem. To avoid freezing in the for loops below, we'll manually check cell by cell for (Map<CellKey, CellData>::Element *F = cells.front(); F; F = F->next()) { - const CellKey &ck = F->key(); if (ck.x < begin.x || ck.x > end.x) @@ -245,10 +222,8 @@ struct SpatialIndexer2D { //notifiers in cell for (Map<VisibilityNotifier2D *, CellRef>::Element *G = F->get().notifiers.front(); G; G = G->next()) { - Map<VisibilityNotifier2D *, uint64_t>::Element *H = E->get().notifiers.find(G->key()); if (!H) { - H = E->get().notifiers.insert(G->key(), pass); added.push_back(G->key()); } else { @@ -258,12 +233,9 @@ struct SpatialIndexer2D { } } else { - //check cells in grid fashion for (int i = begin.x; i <= end.x; i++) { - for (int j = begin.y; j <= end.y; j++) { - CellKey ck; ck.x = i; ck.y = j; @@ -275,10 +247,8 @@ struct SpatialIndexer2D { //notifiers in cell for (Map<VisibilityNotifier2D *, CellRef>::Element *G = F->get().notifiers.front(); G; G = G->next()) { - Map<VisibilityNotifier2D *, uint64_t>::Element *H = E->get().notifiers.find(G->key()); if (!H) { - H = E->get().notifiers.insert(G->key(), pass); added.push_back(G->key()); } else { @@ -290,7 +260,6 @@ struct SpatialIndexer2D { } for (Map<VisibilityNotifier2D *, uint64_t>::Element *F = E->get().notifiers.front(); F; F = F->next()) { - if (F->get() != pass) removed.push_back(F->key()); } @@ -311,7 +280,6 @@ struct SpatialIndexer2D { } SpatialIndexer2D() { - pass = 0; changed = false; cell_size = GLOBAL_DEF("world/2d/cell_size", 100); @@ -319,56 +287,45 @@ struct SpatialIndexer2D { }; void World2D::_register_viewport(Viewport *p_viewport, const Rect2 &p_rect) { - indexer->_add_viewport(p_viewport, p_rect); } void World2D::_update_viewport(Viewport *p_viewport, const Rect2 &p_rect) { - indexer->_update_viewport(p_viewport, p_rect); } void World2D::_remove_viewport(Viewport *p_viewport) { - indexer->_remove_viewport(p_viewport); } void World2D::_register_notifier(VisibilityNotifier2D *p_notifier, const Rect2 &p_rect) { - indexer->_notifier_add(p_notifier, p_rect); } void World2D::_update_notifier(VisibilityNotifier2D *p_notifier, const Rect2 &p_rect) { - indexer->_notifier_update(p_notifier, p_rect); } void World2D::_remove_notifier(VisibilityNotifier2D *p_notifier) { - indexer->_notifier_remove(p_notifier); } void World2D::_update() { - indexer->_update(); } RID World2D::get_canvas() { - return canvas; } RID World2D::get_space() { - return space; } void World2D::get_viewport_list(List<Viewport *> *r_viewports) { - for (Map<Viewport *, SpatialIndexer2D::ViewportData>::Element *E = indexer->viewports.front(); E; E = E->next()) { r_viewports->push_back(E->key()); } } void World2D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_canvas"), &World2D::get_canvas); ClassDB::bind_method(D_METHOD("get_space"), &World2D::get_space); @@ -380,12 +337,10 @@ void World2D::_bind_methods() { } PhysicsDirectSpaceState2D *World2D::get_direct_space_state() { - return PhysicsServer2D::get_singleton()->space_get_direct_state(space); } World2D::World2D() { - canvas = RenderingServer::get_singleton()->canvas_create(); space = PhysicsServer2D::get_singleton()->space_create(); @@ -401,7 +356,6 @@ World2D::World2D() { } World2D::~World2D() { - RenderingServer::get_singleton()->free(canvas); PhysicsServer2D::get_singleton()->free(space); memdelete(indexer); diff --git a/scene/resources/world_2d.h b/scene/resources/world_2d.h index 88b4c2594c..c330719104 100644 --- a/scene/resources/world_2d.h +++ b/scene/resources/world_2d.h @@ -40,7 +40,6 @@ class Viewport; struct SpatialIndexer2D; class World2D : public Resource { - GDCLASS(World2D, Resource); RID canvas; diff --git a/scene/resources/world_3d.cpp b/scene/resources/world_3d.cpp index dee00dd82a..d8ec7f507c 100644 --- a/scene/resources/world_3d.cpp +++ b/scene/resources/world_3d.cpp @@ -37,18 +37,15 @@ #include "scene/scene_string_names.h" struct SpatialIndexer { - Octree<VisibilityNotifier3D> octree; struct NotifierData { - AABB aabb; OctreeElementID id; }; Map<VisibilityNotifier3D *, NotifierData> notifiers; struct CameraData { - Map<VisibilityNotifier3D *, uint64_t> notifiers; }; @@ -65,7 +62,6 @@ struct SpatialIndexer { uint64_t last_frame; void _notifier_add(VisibilityNotifier3D *p_notifier, const AABB &p_rect) { - ERR_FAIL_COND(notifiers.has(p_notifier)); notifiers[p_notifier].aabb = p_rect; notifiers[p_notifier].id = octree.create(p_notifier, p_rect); @@ -73,7 +69,6 @@ struct SpatialIndexer { } void _notifier_update(VisibilityNotifier3D *p_notifier, const AABB &p_rect) { - Map<VisibilityNotifier3D *, NotifierData>::Element *E = notifiers.find(p_notifier); ERR_FAIL_COND(!E); if (E->get().aabb == p_rect) @@ -85,7 +80,6 @@ struct SpatialIndexer { } void _notifier_remove(VisibilityNotifier3D *p_notifier) { - Map<VisibilityNotifier3D *, NotifierData>::Element *E = notifiers.find(p_notifier); ERR_FAIL_COND(!E); @@ -94,7 +88,6 @@ struct SpatialIndexer { List<Camera3D *> removed; for (Map<Camera3D *, CameraData>::Element *F = cameras.front(); F; F = F->next()) { - Map<VisibilityNotifier3D *, uint64_t>::Element *G = F->get().notifiers.find(p_notifier); if (G) { @@ -104,7 +97,6 @@ struct SpatialIndexer { } while (!removed.empty()) { - p_notifier->_exit_camera(removed.front()->get()); removed.pop_front(); } @@ -113,7 +105,6 @@ struct SpatialIndexer { } void _add_camera(Camera3D *p_camera) { - ERR_FAIL_COND(cameras.has(p_camera)); CameraData vd; cameras[p_camera] = vd; @@ -121,7 +112,6 @@ struct SpatialIndexer { } void _update_camera(Camera3D *p_camera) { - Map<Camera3D *, CameraData>::Element *E = cameras.find(p_camera); ERR_FAIL_COND(!E); changed = true; @@ -131,7 +121,6 @@ struct SpatialIndexer { ERR_FAIL_COND(!cameras.has(p_camera)); List<VisibilityNotifier3D *> removed; for (Map<VisibilityNotifier3D *, uint64_t>::Element *E = cameras[p_camera].notifiers.front(); E; E = E->next()) { - removed.push_back(E->key()); } @@ -144,7 +133,6 @@ struct SpatialIndexer { } void _update(uint64_t p_frame) { - if (p_frame == last_frame) return; last_frame = p_frame; @@ -153,7 +141,6 @@ struct SpatialIndexer { return; for (Map<Camera3D *, CameraData>::Element *E = cameras.front(); E; E = E->next()) { - pass++; Camera3D *c = E->key(); @@ -168,12 +155,10 @@ struct SpatialIndexer { List<VisibilityNotifier3D *> removed; for (int i = 0; i < culled; i++) { - //notifiers in frustum Map<VisibilityNotifier3D *, uint64_t>::Element *H = E->get().notifiers.find(ptr[i]); if (!H) { - E->get().notifiers.insert(ptr[i], pass); added.push_back(ptr[i]); } else { @@ -182,7 +167,6 @@ struct SpatialIndexer { } for (Map<VisibilityNotifier3D *, uint64_t>::Element *F = E->get().notifiers.front(); F; F = F->next()) { - if (F->get() != pass) removed.push_back(F->key()); } @@ -202,7 +186,6 @@ struct SpatialIndexer { } SpatialIndexer() { - pass = 0; last_frame = 0; changed = false; @@ -211,60 +194,51 @@ struct SpatialIndexer { }; void World3D::_register_camera(Camera3D *p_camera) { - #ifndef _3D_DISABLED indexer->_add_camera(p_camera); #endif } void World3D::_update_camera(Camera3D *p_camera) { - #ifndef _3D_DISABLED indexer->_update_camera(p_camera); #endif } void World3D::_remove_camera(Camera3D *p_camera) { - #ifndef _3D_DISABLED indexer->_remove_camera(p_camera); #endif } void World3D::_register_notifier(VisibilityNotifier3D *p_notifier, const AABB &p_rect) { - #ifndef _3D_DISABLED indexer->_notifier_add(p_notifier, p_rect); #endif } void World3D::_update_notifier(VisibilityNotifier3D *p_notifier, const AABB &p_rect) { - #ifndef _3D_DISABLED indexer->_notifier_update(p_notifier, p_rect); #endif } void World3D::_remove_notifier(VisibilityNotifier3D *p_notifier) { - #ifndef _3D_DISABLED indexer->_notifier_remove(p_notifier); #endif } void World3D::_update(uint64_t p_frame) { - #ifndef _3D_DISABLED indexer->_update(p_frame); #endif } RID World3D::get_space() const { - return space; } RID World3D::get_scenario() const { - return scenario; } @@ -283,7 +257,6 @@ void World3D::set_environment(const Ref<Environment> &p_environment) { } Ref<Environment> World3D::get_environment() const { - return environment; } @@ -302,12 +275,10 @@ void World3D::set_fallback_environment(const Ref<Environment> &p_environment) { } Ref<Environment> World3D::get_fallback_environment() const { - return fallback_environment; } void World3D::set_camera_effects(const Ref<CameraEffects> &p_camera_effects) { - camera_effects = p_camera_effects; if (camera_effects.is_valid()) RS::get_singleton()->scenario_set_camera_effects(scenario, camera_effects->get_rid()); @@ -316,24 +287,20 @@ void World3D::set_camera_effects(const Ref<CameraEffects> &p_camera_effects) { } Ref<CameraEffects> World3D::get_camera_effects() const { - return camera_effects; } PhysicsDirectSpaceState3D *World3D::get_direct_space_state() { - return PhysicsServer3D::get_singleton()->space_get_direct_state(space); } void World3D::get_camera_list(List<Camera3D *> *r_cameras) { - for (Map<Camera3D *, SpatialIndexer::CameraData>::Element *E = indexer->cameras.front(); E; E = E->next()) { r_cameras->push_back(E->key()); } } void World3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("get_space"), &World3D::get_space); ClassDB::bind_method(D_METHOD("get_scenario"), &World3D::get_scenario); ClassDB::bind_method(D_METHOD("set_environment", "env"), &World3D::set_environment); @@ -352,7 +319,6 @@ void World3D::_bind_methods() { } World3D::World3D() { - space = PhysicsServer3D::get_singleton()->space_create(); scenario = RenderingServer::get_singleton()->scenario_create(); @@ -372,7 +338,6 @@ World3D::World3D() { } World3D::~World3D() { - PhysicsServer3D::get_singleton()->free(space); RenderingServer::get_singleton()->free(scenario); diff --git a/scene/resources/world_margin_shape_3d.cpp b/scene/resources/world_margin_shape_3d.cpp index aa96f8aa68..d613413b33 100644 --- a/scene/resources/world_margin_shape_3d.cpp +++ b/scene/resources/world_margin_shape_3d.cpp @@ -33,7 +33,6 @@ #include "servers/physics_server_3d.h" Vector<Vector3> WorldMarginShape3D::get_debug_mesh_lines() { - Plane p = get_plane(); Vector<Vector3> points; @@ -62,13 +61,11 @@ Vector<Vector3> WorldMarginShape3D::get_debug_mesh_lines() { } void WorldMarginShape3D::_update_shape() { - PhysicsServer3D::get_singleton()->shape_set_data(get_shape(), plane); Shape3D::_update_shape(); } void WorldMarginShape3D::set_plane(Plane p_plane) { - plane = p_plane; _update_shape(); notify_change_to_owners(); @@ -76,12 +73,10 @@ void WorldMarginShape3D::set_plane(Plane p_plane) { } Plane WorldMarginShape3D::get_plane() const { - return plane; } void WorldMarginShape3D::_bind_methods() { - ClassDB::bind_method(D_METHOD("set_plane", "plane"), &WorldMarginShape3D::set_plane); ClassDB::bind_method(D_METHOD("get_plane"), &WorldMarginShape3D::get_plane); @@ -90,6 +85,5 @@ void WorldMarginShape3D::_bind_methods() { WorldMarginShape3D::WorldMarginShape3D() : Shape3D(PhysicsServer3D::get_singleton()->shape_create(PhysicsServer3D::SHAPE_PLANE)) { - set_plane(Plane(0, 1, 0, 0)); } diff --git a/scene/resources/world_margin_shape_3d.h b/scene/resources/world_margin_shape_3d.h index 5e0f046628..acb479972b 100644 --- a/scene/resources/world_margin_shape_3d.h +++ b/scene/resources/world_margin_shape_3d.h @@ -34,7 +34,6 @@ #include "scene/resources/shape_3d.h" class WorldMarginShape3D : public Shape3D { - GDCLASS(WorldMarginShape3D, Shape3D); Plane plane; diff --git a/scene/scene_string_names.cpp b/scene/scene_string_names.cpp index e761354cc9..7f87da3724 100644 --- a/scene/scene_string_names.cpp +++ b/scene/scene_string_names.cpp @@ -33,7 +33,6 @@ SceneStringNames *SceneStringNames::singleton = nullptr; SceneStringNames::SceneStringNames() { - _estimate_cost = StaticCString::create("_estimate_cost"); _compute_cost = StaticCString::create("_compute_cost"); @@ -189,7 +188,6 @@ SceneStringNames::SceneStringNames() { _default = StaticCString::create("default"); for (int i = 0; i < MAX_MATERIALS; i++) { - mesh_materials[i] = "material/" + itos(i); } diff --git a/scene/scene_string_names.h b/scene/scene_string_names.h index c5c98ba9e5..1a6ffbd5dd 100644 --- a/scene/scene_string_names.h +++ b/scene/scene_string_names.h @@ -35,7 +35,6 @@ #include "core/string_name.h" class SceneStringNames { - friend void register_scene_types(); friend void unregister_scene_types(); |