1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-25 15:37:42 +00:00

Improve visibility rect/AABB generation usability in Particles

- Don't display the time dialog if the automatically calculated
  generation time is short enough.
- Clarify the purpose of waiting in the progress dialog.
This commit is contained in:
Hugo Locurcio
2021-07-05 15:09:46 +02:00
parent cdced052f0
commit cf002d4a99
2 changed files with 17 additions and 12 deletions

View File

@@ -255,14 +255,16 @@ void ParticlesEditor::_notification(int p_notification) {
void ParticlesEditor::_menu_option(int p_option) {
switch (p_option) {
case MENU_OPTION_GENERATE_AABB: {
float gen_time = node->get_lifetime();
// Add one second to the default generation lifetime, since the progress is updated every second.
generate_seconds->set_value(MAX(1.0, trunc(node->get_lifetime()) + 1.0));
if (gen_time < 1.0) {
generate_seconds->set_value(1.0);
if (generate_seconds->get_value() >= 11.0 + CMP_EPSILON) {
// Only pop up the time dialog if the particle's lifetime is long enough to warrant shortening it.
generate_aabb->popup_centered_minsize();
} else {
generate_seconds->set_value(trunc(gen_time) + 1.0);
// Generate the visibility AABB immediately.
_generate_aabb();
}
generate_aabb->popup_centered_minsize();
} break;
case MENU_OPTION_CREATE_EMISSION_VOLUME_FROM_MESH: {
Ref<ParticlesMaterial> material = node->get_process_material();
@@ -313,7 +315,7 @@ void ParticlesEditor::_generate_aabb() {
float running = 0.0;
EditorProgress ep("gen_aabb", TTR("Generating AABB"), int(time));
EditorProgress ep("gen_aabb", TTR("Generating Visibility AABB (Waiting for Particle Simulation)"), int(time));
bool was_emitting = node->is_emitting();
if (!was_emitting) {