diff --git a/Environment/volcanoes.xml b/Environment/volcanoes.xml index b9ffb4726..d069a614c 100644 --- a/Environment/volcanoes.xml +++ b/Environment/volcanoes.xml @@ -33,5 +33,10 @@ 0 + + 0 + 0 + + diff --git a/Models/Volcanoes/Surtsey/ash.png b/Models/Volcanoes/Surtsey/ash.png new file mode 100755 index 000000000..acf8bcfdc Binary files /dev/null and b/Models/Volcanoes/Surtsey/ash.png differ diff --git a/Models/Volcanoes/Surtsey/main_crater.xml b/Models/Volcanoes/Surtsey/main_crater.xml new file mode 100755 index 000000000..3ef11a070 --- /dev/null +++ b/Models/Volcanoes/Surtsey/main_crater.xml @@ -0,0 +1,82 @@ + + + + + + + + + + + + surtsey_smoke.xml + + 0.0 + 0.0 + 0.0 + 0 + + + + /environment/volcanoes/surtsey/main-activity + 1 + + + + + + surtsey_main_ash_eruption.xml + + 0.0 + 0.0 + 0.0 + 0 + + + + /environment/volcanoes/surtsey/main-activity + 2 + + + + + + surtsey_main_ash_eruption_secondary.xml + + 0.0 + 0.0 + 0.0 + 0 + + + + /environment/volcanoes/surtsey/main-activity + 2 + + + + + + surtsey_smoke_small.xml + + 50.0 + 500.0 + 0.0 + 0 + + + + /environment/volcanoes/surtsey/side-activity + 1 + + + + + + + + + + + + \ No newline at end of file diff --git a/Models/Volcanoes/Surtsey/smoke_turbulent.png b/Models/Volcanoes/Surtsey/smoke_turbulent.png new file mode 100755 index 000000000..f71a7ad83 Binary files /dev/null and b/Models/Volcanoes/Surtsey/smoke_turbulent.png differ diff --git a/Models/Volcanoes/Surtsey/surtsey.nas b/Models/Volcanoes/Surtsey/surtsey.nas new file mode 100755 index 000000000..22797a89e --- /dev/null +++ b/Models/Volcanoes/Surtsey/surtsey.nas @@ -0,0 +1,71 @@ + var surtsey_ash_loop_flag = 0; + + var surtsey_main_factor = 1.0; + var surtsey_main_probability = 0.985; + + var surtsey_pos = geo.Coord.new().set_latlon(63.30510848, -20.6054166); + + + var surtsey_ash_loop = func (timer) { + + if (surtsey_ash_loop_flag == 0) + { + print("Ending Surtsey ash eruption simulation."); + return; + } + + if (timer < 0.0) + { + + if (rand() > 0.6) + { + setprop("/environment/volcanoes/surtsey/ash-main-alpha", (rand() - 0.5) * 40.0); + setprop("/environment/volcanoes/surtsey/ash-main-beta", (rand() - 0.5) * 40.0); + } + else + { + setprop("/environment/volcanoes/surtsey/ash-main-alpha", 0.0); + setprop("/environment/volcanoes/surtsey/ash-main-beta", 0.0); + } + timer = 2.0 + 3.0 * rand(); + } + + var aircraft_pos = geo.aircraft_position(); + var dist = aircraft_pos.distance_to(surtsey_pos); + var turbulence = 100000.0/(dist * dist); + if (turbulence > 1.0) {turbulence = 1.0;} + + setprop("/environment/volcanoes/turbulence", turbulence); + + timer = timer - 0.1; + + settimer(func {surtsey_ash_loop(timer);}, 0.1); + } + + + surtsey_state_manager = func { + + var state_main = getprop("/environment/volcanoes/surtsey/main-activity"); + + if ( (state_main > 1) and (surtsey_ash_loop_flag == 0)) + { + print ("Starting Surtsey ash eruption simulation."); + surtsey_ash_loop_flag = 1; + surtsey_ash_loop(0.0); + } + else if ((state_main < 2) and (surtsey_ash_loop_flag == 1)) + { + surtsey_ash_loop_flag = 0; + setprop("/environment/volcanoes/turbulence", 0); + + } + + + + + } + + # call state manager once to get correct autosaved behavior, otherwise use listener + + surtsey_state_manager(); + setlistener("/environment/volcanoes/surtsey/main-activity", surtsey_state_manager); \ No newline at end of file diff --git a/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption.xml b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption.xml new file mode 100755 index 000000000..525b3a873 --- /dev/null +++ b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption.xml @@ -0,0 +1,110 @@ + + + + + + + surtsey-main-ash-eruption + ash.png + false + false + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + + + global + + + point + + + + 0 + 5 + 0 + 360 + + 320 + 150 + + + 0 + 0 + -20 + 0 + 0 + 20 + + + + + + 8 + 1 + + + + billboard + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.5 + + + + 150.0 + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.3 + + + + 1000.0 + + + + 120 + + 6.15 + 0.05 + + + + air + false + true + + + + + + + + \ No newline at end of file diff --git a/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption_secondary.xml b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption_secondary.xml new file mode 100755 index 000000000..e1c7e05a6 --- /dev/null +++ b/Models/Volcanoes/Surtsey/surtsey_main_ash_eruption_secondary.xml @@ -0,0 +1,142 @@ + + + + + + + surtsey-main-ash-eruption-secondary + ash.png + false + false + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + + + global + + + point + + + + 0 + 5 + 0 + 360 + + 240 + 100 + + + 0 + 0 + -20 + 0 + 0 + 20 + + + + + + 10 + 1 + + + + billboard + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.5 + + + + 80.0 + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.3 + + + + 350.0 + + + + 80 + + 6.15 + 0.05 + + + + air + false + true + + + + + + + surtsey-main-ash-eruption-secondary + rotate + /environment/volcanoes/surtsey/ash-main-alpha + 1 +
+ 0 + 0 + 0 +
+ + 0 + 1 + 0 + +
+ + + surtsey-main-ash-eruption-secondary + rotate + /environment/volcanoes/surtsey/ash-main-beta + 1 +
+ 0 + 0 + 0 +
+ + 1 + 0 + 0 + +
+ +
\ No newline at end of file diff --git a/Models/Volcanoes/Surtsey/surtsey_smoke.xml b/Models/Volcanoes/Surtsey/surtsey_smoke.xml new file mode 100755 index 000000000..f6a5b4241 --- /dev/null +++ b/Models/Volcanoes/Surtsey/surtsey_smoke.xml @@ -0,0 +1,107 @@ + + + + + + + surtsey-smoke + smoke_turbulent.png + false + false + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + + + local + + + point + + + + 90 + 90 + 0 + 0 + + 20 + 10 + + + 0 + 0 + -40 + 0 + 0 + 40 + + + + + + 1 + 1 + + + + billboard + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.6 + + + + 50.0 + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.1 + + + + 350.0 + + + + 120 + + 1.0 + 2.50 + + + + air + true + true + + + + + \ No newline at end of file diff --git a/Models/Volcanoes/Surtsey/surtsey_smoke_small.xml b/Models/Volcanoes/Surtsey/surtsey_smoke_small.xml new file mode 100755 index 000000000..9a33f2050 --- /dev/null +++ b/Models/Volcanoes/Surtsey/surtsey_smoke_small.xml @@ -0,0 +1,107 @@ + + + + + + + surtsey-smoke-small + smoke_turbulent.png + false + false + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + 0.0 + + + global + + + point + + + + 90 + 90 + 0 + 0 + + 20 + 10 + + + 0 + 0 + -40 + 0 + 0 + 40 + + + + + + 4 + 1 + + + + billboard + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.6 + + + + 10.0 + + + + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + /rendering/scene/diffuse/green + + + 0.1 + + + + 50.0 + + + + 30 + + 1.0 + 2.50 + + + + air + true + true + + + + + \ No newline at end of file diff --git a/Nasal/volcano.nas b/Nasal/volcano.nas index b447df1c3..04c126d45 100644 --- a/Nasal/volcano.nas +++ b/Nasal/volcano.nas @@ -143,6 +143,13 @@ geo.put_model("Models/Volcanoes/Katla/main_crater.xml", 63.65750, -19.182871 ); } +var set_surtsey = func { + +io.include("Models/Volcanoes/Surtsey/surtsey.nas"); +geo.put_model("Models/Volcanoes/Surtsey/main_crater.xml", 63.30510848, -20.6054166 ); + +} + # volcano definitions var kilauea = volcano.new("Kilauea", 19.39, -155.20); @@ -169,6 +176,11 @@ var katla = volcano.new("Katla", 63.65750, -19.182871); katla.set = set_katla; append(volcano_manager.volcano_array, katla); +var surtsey = volcano.new("Surtsey", 63.305, -20.605); +surtsey.set = set_surtsey; +append(volcano_manager.volcano_array, surtsey); + + # start the manager when autosaved (need some delay for terrain loading to finish) settimer(func {volcano_manager.start();}, 5.0); diff --git a/gui/dialogs/volcano-surtsey.xml b/gui/dialogs/volcano-surtsey.xml new file mode 100644 index 000000000..bf1aad75b --- /dev/null +++ b/gui/dialogs/volcano-surtsey.xml @@ -0,0 +1,141 @@ + + + + Surtsey + vbox + 1 + false + 400 + + + 6 + + + + + + + + 4 + + + + + + table + + + + left + 0 + 0 + + + + + 0 + 1 + + + + central + 0 + 2 + 0 + 2 + 1 + true + /environment/volcanoes/surtsey/main-activity + + dialog-apply + central + + + + + + 0 + 3 + + + + + left + 1 + 0 + + + + + 1 + 1 + + + + side + 1 + 2 + 0 + 1 + 1 + true + /environment/volcanoes/surtsey/side-activity + + dialog-apply + side + + + + + + 1 + 3 + + + + + + + + + 12 + + + + + + 20 + + + + table + + + + + + + +