void ResourcePreloaderEditor::edit(ResourcePreloader *p_preloader) { preloader = p_preloader; if (p_preloader) { _update_library(); } else { hide(); set_physics_process(false); } }
void InterpolatedCamera::_notification(int p_what) { switch (p_what) { case NOTIFICATION_ENTER_TREE: { if (Engine::get_singleton()->is_editor_hint() && enabled) set_physics_process(false); } break; case NOTIFICATION_PROCESS: { if (!enabled) break; if (has_node(target)) { Spatial *node = Object::cast_to<Spatial>(get_node(target)); if (!node) break; float delta = speed * get_process_delta_time(); Transform target_xform = node->get_global_transform(); Transform local_transform = get_global_transform(); local_transform = local_transform.interpolate_with(target_xform, delta); set_global_transform(local_transform); Camera *cam = Object::cast_to<Camera>(node); if (cam) { if (cam->get_projection() == get_projection()) { float new_near = Math::lerp(get_znear(), cam->get_znear(), delta); float new_far = Math::lerp(get_zfar(), cam->get_zfar(), delta); if (cam->get_projection() == PROJECTION_ORTHOGONAL) { float size = Math::lerp(get_size(), cam->get_size(), delta); set_orthogonal(size, new_near, new_far); } else { float fov = Math::lerp(get_fov(), cam->get_fov(), delta); set_perspective(fov, new_near, new_far); } } } } } break; } }
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 set_physics_process(false); set_process(false); } //_set_process(false); clear_caches(); } break; case NOTIFICATION_READY: { if (!Engine::get_singleton()->is_editor_hint() && animation_set.has(autoplay)) { play(autoplay); _animation_process(0); } } break; case NOTIFICATION_INTERNAL_PROCESS: { if (animation_process_mode == ANIMATION_PROCESS_PHYSICS) break; if (processing) _animation_process(get_process_delta_time()); } break; case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: { if (animation_process_mode == ANIMATION_PROCESS_IDLE) break; if (processing) _animation_process(get_physics_process_delta_time()); } break; case NOTIFICATION_EXIT_TREE: { //stop_all(); clear_caches(); } break; } }