Add a `sleeping_state_changed` signal to RigidBody and RigidBody2D classes
Closes #3911
(cherry picked from commit 6dcd1354c2
)
This commit is contained in:
parent
dea6671d58
commit
63e33cfdd2
|
@ -544,7 +544,10 @@ void RigidBody2D::_direct_state_changed(Object *p_state) {
|
||||||
set_global_transform(state->get_transform());
|
set_global_transform(state->get_transform());
|
||||||
linear_velocity=state->get_linear_velocity();
|
linear_velocity=state->get_linear_velocity();
|
||||||
angular_velocity=state->get_angular_velocity();
|
angular_velocity=state->get_angular_velocity();
|
||||||
sleeping=state->is_sleeping();
|
if(sleeping!=state->is_sleeping()) {
|
||||||
|
sleeping=state->is_sleeping();
|
||||||
|
emit_signal(SceneStringNames::get_singleton()->sleeping_state_changed);
|
||||||
|
}
|
||||||
if (get_script_instance())
|
if (get_script_instance())
|
||||||
get_script_instance()->call("_integrate_forces",state);
|
get_script_instance()->call("_integrate_forces",state);
|
||||||
set_block_transform_notify(false); // want it back
|
set_block_transform_notify(false); // want it back
|
||||||
|
@ -934,6 +937,7 @@ void RigidBody2D::_bind_methods() {
|
||||||
ADD_SIGNAL( MethodInfo("body_exit_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape")));
|
ADD_SIGNAL( MethodInfo("body_exit_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape")));
|
||||||
ADD_SIGNAL( MethodInfo("body_enter",PropertyInfo(Variant::OBJECT,"body")));
|
ADD_SIGNAL( MethodInfo("body_enter",PropertyInfo(Variant::OBJECT,"body")));
|
||||||
ADD_SIGNAL( MethodInfo("body_exit",PropertyInfo(Variant::OBJECT,"body")));
|
ADD_SIGNAL( MethodInfo("body_exit",PropertyInfo(Variant::OBJECT,"body")));
|
||||||
|
ADD_SIGNAL( MethodInfo("sleeping_state_changed"));
|
||||||
|
|
||||||
BIND_CONSTANT( MODE_STATIC );
|
BIND_CONSTANT( MODE_STATIC );
|
||||||
BIND_CONSTANT( MODE_KINEMATIC );
|
BIND_CONSTANT( MODE_KINEMATIC );
|
||||||
|
|
|
@ -419,7 +419,10 @@ void RigidBody::_direct_state_changed(Object *p_state) {
|
||||||
set_global_transform(state->get_transform());
|
set_global_transform(state->get_transform());
|
||||||
linear_velocity=state->get_linear_velocity();
|
linear_velocity=state->get_linear_velocity();
|
||||||
angular_velocity=state->get_angular_velocity();
|
angular_velocity=state->get_angular_velocity();
|
||||||
sleeping=state->is_sleeping();
|
if(sleeping!=state->is_sleeping()) {
|
||||||
|
sleeping=state->is_sleeping();
|
||||||
|
emit_signal(SceneStringNames::get_singleton()->sleeping_state_changed);
|
||||||
|
}
|
||||||
if (get_script_instance())
|
if (get_script_instance())
|
||||||
get_script_instance()->call("_integrate_forces",state);
|
get_script_instance()->call("_integrate_forces",state);
|
||||||
set_ignore_transform_notification(false);
|
set_ignore_transform_notification(false);
|
||||||
|
@ -811,6 +814,7 @@ void RigidBody::_bind_methods() {
|
||||||
ADD_SIGNAL( MethodInfo("body_exit_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape")));
|
ADD_SIGNAL( MethodInfo("body_exit_shape",PropertyInfo(Variant::INT,"body_id"),PropertyInfo(Variant::OBJECT,"body"),PropertyInfo(Variant::INT,"body_shape"),PropertyInfo(Variant::INT,"local_shape")));
|
||||||
ADD_SIGNAL( MethodInfo("body_enter",PropertyInfo(Variant::OBJECT,"body")));
|
ADD_SIGNAL( MethodInfo("body_enter",PropertyInfo(Variant::OBJECT,"body")));
|
||||||
ADD_SIGNAL( MethodInfo("body_exit",PropertyInfo(Variant::OBJECT,"body")));
|
ADD_SIGNAL( MethodInfo("body_exit",PropertyInfo(Variant::OBJECT,"body")));
|
||||||
|
ADD_SIGNAL( MethodInfo("sleeping_state_changed"));
|
||||||
|
|
||||||
BIND_CONSTANT( MODE_STATIC );
|
BIND_CONSTANT( MODE_STATIC );
|
||||||
BIND_CONSTANT( MODE_KINEMATIC );
|
BIND_CONSTANT( MODE_KINEMATIC );
|
||||||
|
|
|
@ -48,6 +48,7 @@ SceneStringNames::SceneStringNames() {
|
||||||
item_rect_changed=StaticCString::create("item_rect_changed");
|
item_rect_changed=StaticCString::create("item_rect_changed");
|
||||||
size_flags_changed=StaticCString::create("size_flags_changed");
|
size_flags_changed=StaticCString::create("size_flags_changed");
|
||||||
minimum_size_changed=StaticCString::create("minimum_size_changed");
|
minimum_size_changed=StaticCString::create("minimum_size_changed");
|
||||||
|
sleeping_state_changed=StaticCString::create("sleeping_state_changed");
|
||||||
|
|
||||||
finished=StaticCString::create("finished");
|
finished=StaticCString::create("finished");
|
||||||
animation_changed=StaticCString::create("animation_changed");
|
animation_changed=StaticCString::create("animation_changed");
|
||||||
|
|
|
@ -62,6 +62,7 @@ public:
|
||||||
StringName exit_tree;
|
StringName exit_tree;
|
||||||
StringName size_flags_changed;
|
StringName size_flags_changed;
|
||||||
StringName minimum_size_changed;
|
StringName minimum_size_changed;
|
||||||
|
StringName sleeping_state_changed;
|
||||||
StringName idle;
|
StringName idle;
|
||||||
StringName iteration;
|
StringName iteration;
|
||||||
StringName update;
|
StringName update;
|
||||||
|
|
Loading…
Reference in New Issue