Exemplo n.º 1
0
void AnimController::freeze() {
    if (!_freezing) {
        _freezing = true;
        status_cache.clear();
        for (Map<StringName, Node*>::Element *E = anim_nodes.front(); E; E=E->next()) {
            AnimationPlayer *player = E->get()->cast_to<AnimationPlayer>();
            if (player->is_playing()) {
                AnimationStatus status;
                status.name = player->get_current_animation();
                status.position = player->get_current_animation_pos();
                status.player = player;
                status_cache.push_back(status);
                player->stop(false);
                player->set_active(false);
            }
        }
    }
}
Exemplo n.º 2
0
void VisibilityEnabler::_change_node_state(Node *p_node, bool p_enabled) {

	ERR_FAIL_COND(!nodes.has(p_node));

	{
		RigidBody *rb = Object::cast_to<RigidBody>(p_node);
		if (rb)

			rb->set_sleeping(!p_enabled);
	}

	{
		AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node);

		if (ap) {

			ap->set_active(p_enabled);
		}
	}
}
Exemplo n.º 3
0
void VisibilityEnabler2D::_change_node_state(Node *p_node, bool p_enabled) {

	ERR_FAIL_COND(!nodes.has(p_node));

	{
		RigidBody2D *rb = Object::cast_to<RigidBody2D>(p_node);
		if (rb) {

			rb->set_sleeping(!p_enabled);
		}
	}

	{
		AnimationPlayer *ap = Object::cast_to<AnimationPlayer>(p_node);

		if (ap) {

			ap->set_active(p_enabled);
		}
	}
	{
		AnimatedSprite *as = Object::cast_to<AnimatedSprite>(p_node);

		if (as) {

			if (p_enabled)
				as->play();
			else
				as->stop();
		}
	}

	{
		Particles2D *ps = Object::cast_to<Particles2D>(p_node);

		if (ps) {

			ps->set_emitting(p_enabled);
		}
	}
}