Browse Source

Background Loading Demo

Juan Linietsky 7 years ago
parent
commit
c6b481aaf0
31 changed files with 961 additions and 0 deletions
  1. 68 0
      misc/background_load/background_load.gd
  2. 45 0
      misc/background_load/background_load.tscn
  3. BIN
      misc/background_load/painting_babel.jpg
  4. 29 0
      misc/background_load/painting_babel.jpg.import
  5. BIN
      misc/background_load/painting_las_meninas.png
  6. 29 0
      misc/background_load/painting_las_meninas.png.import
  7. BIN
      misc/background_load/painting_mona_lisa.jpg
  8. 29 0
      misc/background_load/painting_mona_lisa.jpg.import
  9. BIN
      misc/background_load/painting_old_guitarist.jpg
  10. 29 0
      misc/background_load/painting_old_guitarist.jpg.import
  11. BIN
      misc/background_load/painting_parasol.jpg
  12. 29 0
      misc/background_load/painting_parasol.jpg.import
  13. BIN
      misc/background_load/painting_the_swing.jpg
  14. 29 0
      misc/background_load/painting_the_swing.jpg.import
  15. 6 0
      misc/background_load/paintings.gd
  16. 229 0
      misc/background_load/paintings.tscn
  17. 97 0
      misc/background_load/project.godot
  18. BIN
      misc/background_load/sculpture_david.jpg
  19. 29 0
      misc/background_load/sculpture_david.jpg.import
  20. BIN
      misc/background_load/sculpture_fountain.jpg
  21. 29 0
      misc/background_load/sculpture_fountain.jpg.import
  22. BIN
      misc/background_load/sculpture_four_parts_of_earth.jpg
  23. 29 0
      misc/background_load/sculpture_four_parts_of_earth.jpg.import
  24. BIN
      misc/background_load/sculpture_lincoln.jpg
  25. 29 0
      misc/background_load/sculpture_lincoln.jpg.import
  26. BIN
      misc/background_load/sculpture_thinker.jpg
  27. 29 0
      misc/background_load/sculpture_thinker.jpg.import
  28. BIN
      misc/background_load/sculpture_venus.png
  29. 29 0
      misc/background_load/sculpture_venus.png.import
  30. 6 0
      misc/background_load/sculptures.gd
  31. 162 0
      misc/background_load/sculptures.tscn

+ 68 - 0
misc/background_load/background_load.gd

@@ -0,0 +1,68 @@
+extends Control
+
+var current_scene = null
+
+var thread = null
+
+onready var progress = $progress
+
+var SIMULATED_DELAY_SEC = 1.0
+
+func _thread_load(path):
+	var ril = ResourceLoader.load_interactive(path)
+	assert( ril )
+	var total = ril.get_stage_count()
+	# Call deferred to configure max load steps
+	progress.call_deferred("set_max",total)
+	
+	var res = null
+	
+	while (true): #iterate until we have a resource
+		# Update progress bar, use call deferred, which routes to main thread
+		progress.call_deferred("set_value",ril.get_stage())
+		# Simulate a delay
+		OS.delay_msec( SIMULATED_DELAY_SEC * 1000.0 )
+		# Poll (does a load step)
+		var err = ril.poll()
+		# if OK, then load another one. If EOF, it' s done. Otherwise there was an error.
+		if ( err == ERR_FILE_EOF):
+			#loading done, fetch resource
+			res = ril.get_resource()
+			break
+		elif (err != OK):
+			#Not OK, there was an error
+			print("There was an error loading")
+			break
+	
+	# Send whathever we did (or not) get
+	call_deferred("_thread_done",res)
+
+func _thread_done(resource):
+	assert( resource )
+	
+	# Always wait for threads to finish, this is required on Windows
+	thread.wait_to_finish()
+	
+	#Hide the progress bar
+	progress.hide()
+	
+	# Instantiate new scene
+	var new_scene = resource.instance()
+	# Free current scene
+	get_tree().current_scene.free()
+	get_tree().current_scene = null
+	# Add new one to root
+	get_tree().root.add_child( new_scene ) 
+	# Set as current scene
+	get_tree().current_scene = new_scene
+	
+	progress.visible = false
+
+func load_scene(path):
+	
+	thread = Thread.new()
+	thread.start( self, "_thread_load", path)
+	raise() #show on top
+	progress.visible = true
+
+	

+ 45 - 0
misc/background_load/background_load.tscn

@@ -0,0 +1,45 @@
+[gd_scene load_steps=2 format=2]
+
+[ext_resource path="res://background_load.gd" type="Script" id=1]
+
+[node name="bgload" type="Control" index="0"]
+anchor_left = 0.0
+anchor_top = 0.0
+anchor_right = 0.0
+anchor_bottom = 0.0
+rect_pivot_offset = Vector2( 0, 0 )
+rect_clip_content = false
+mouse_filter = 0
+mouse_default_cursor_shape = 0
+size_flags_horizontal = 1
+size_flags_vertical = 1
+script = ExtResource( 1 )
+
+[node name="progress" type="ProgressBar" parent="." index="0"]
+visible = false
+anchor_left = 0.0
+anchor_top = 0.0
+anchor_right = 0.0
+anchor_bottom = 0.0
+margin_left = 7.0
+margin_top = 8.0
+margin_right = 207.0
+margin_bottom = 22.0
+rect_pivot_offset = Vector2( 0, 0 )
+rect_clip_content = false
+mouse_filter = 0
+mouse_default_cursor_shape = 0
+size_flags_horizontal = 1
+size_flags_vertical = 0
+min_value = 0.0
+max_value = 100.0
+step = 1.0
+page = 0.0
+value = 0.0
+exp_edit = false
+rounded = false
+allow_greater = false
+allow_lesser = false
+percent_visible = true
+_sections_unfolded = [ "Visibility" ]
+

BIN
misc/background_load/painting_babel.jpg


+ 29 - 0
misc/background_load/painting_babel.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/painting_babel.jpg-bb6b7c64c260f78ce43012bcac8a1c4e.stex"
+
+[deps]
+
+source_file="res://painting_babel.jpg"
+dest_files=[ "res://.import/painting_babel.jpg-bb6b7c64c260f78ce43012bcac8a1c4e.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/painting_las_meninas.png


+ 29 - 0
misc/background_load/painting_las_meninas.png.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/painting_las_meninas.png-158bef53fe63c53626df2020827ea75b.stex"
+
+[deps]
+
+source_file="res://painting_las_meninas.png"
+dest_files=[ "res://.import/painting_las_meninas.png-158bef53fe63c53626df2020827ea75b.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/painting_mona_lisa.jpg


+ 29 - 0
misc/background_load/painting_mona_lisa.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/painting_mona_lisa.jpg-cefdc64dfa49e9ee9566b078597cd552.stex"
+
+[deps]
+
+source_file="res://painting_mona_lisa.jpg"
+dest_files=[ "res://.import/painting_mona_lisa.jpg-cefdc64dfa49e9ee9566b078597cd552.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/painting_old_guitarist.jpg


+ 29 - 0
misc/background_load/painting_old_guitarist.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/painting_old_guitarist.jpg-f04ba627b38b0def60d96cb6c0bfa12b.stex"
+
+[deps]
+
+source_file="res://painting_old_guitarist.jpg"
+dest_files=[ "res://.import/painting_old_guitarist.jpg-f04ba627b38b0def60d96cb6c0bfa12b.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/painting_parasol.jpg


+ 29 - 0
misc/background_load/painting_parasol.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/painting_parasol.jpg-2864da595fcb4f0e842ba9c49097a056.stex"
+
+[deps]
+
+source_file="res://painting_parasol.jpg"
+dest_files=[ "res://.import/painting_parasol.jpg-2864da595fcb4f0e842ba9c49097a056.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/painting_the_swing.jpg


+ 29 - 0
misc/background_load/painting_the_swing.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/painting_the_swing.jpg-1303041ac03cbc85efa4b07ce56efbc4.stex"
+
+[deps]
+
+source_file="res://painting_the_swing.jpg"
+dest_files=[ "res://.import/painting_the_swing.jpg-1303041ac03cbc85efa4b07ce56efbc4.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 6 - 0
misc/background_load/paintings.gd

@@ -0,0 +1,6 @@
+extends Node2D
+
+
+func _on_switch_pressed():
+	$switch.hide()
+	background_load.load_scene("res://sculptures.tscn")

+ 229 - 0
misc/background_load/paintings.tscn

@@ -0,0 +1,229 @@
+[gd_scene load_steps=9 format=2]
+
+[ext_resource path="res://paintings.gd" type="Script" id=1]
+[ext_resource path="res://painting_parasol.jpg" type="Texture" id=2]
+[ext_resource path="res://painting_babel.jpg" type="Texture" id=3]
+[ext_resource path="res://painting_mona_lisa.jpg" type="Texture" id=4]
+[ext_resource path="res://painting_las_meninas.png" type="Texture" id=5]
+[ext_resource path="res://painting_old_guitarist.jpg" type="Texture" id=6]
+[ext_resource path="res://painting_the_swing.jpg" type="Texture" id=7]
+
+[sub_resource type="Animation" id=1]
+
+resource_name = "move_around"
+length = 4.0
+loop = true
+step = 0.1
+tracks/0/type = "value"
+tracks/0/path = NodePath("painting_mona_lisa:position")
+tracks/0/interp = 2
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector2( 117.659, 173.793 ), Vector2( 164.387, 206.955 ) ]
+}
+tracks/1/type = "value"
+tracks/1/path = NodePath("painting_mona_lisa:rotation_degrees")
+tracks/1/interp = 2
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ 0.0, 0.0 ]
+}
+tracks/2/type = "value"
+tracks/2/path = NodePath("painting_parasol:position")
+tracks/2/interp = 2
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector2( 451.448, 256.916 ), Vector2( 483.102, 317.21 ) ]
+}
+tracks/3/type = "value"
+tracks/3/path = NodePath("painting_parasol:rotation_degrees")
+tracks/3/interp = 2
+tracks/3/loop_wrap = true
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ 0.0, 0.0 ]
+}
+tracks/4/type = "value"
+tracks/4/path = NodePath("painting_the_swing:position")
+tracks/4/interp = 2
+tracks/4/loop_wrap = true
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector2( 715.927, 181.745 ), Vector2( 661.663, 205.863 ) ]
+}
+tracks/5/type = "value"
+tracks/5/path = NodePath("painting_the_swing:rotation_degrees")
+tracks/5/interp = 2
+tracks/5/loop_wrap = true
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ 0.0, 0.0 ]
+}
+tracks/6/type = "value"
+tracks/6/path = NodePath("painting_old_guitarist:position")
+tracks/6/interp = 2
+tracks/6/loop_wrap = true
+tracks/6/imported = false
+tracks/6/enabled = true
+tracks/6/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector2( 886.982, 185.641 ), Vector2( 901.179, 210.693 ) ]
+}
+tracks/7/type = "value"
+tracks/7/path = NodePath("painting_old_guitarist:rotation_degrees")
+tracks/7/interp = 2
+tracks/7/loop_wrap = true
+tracks/7/imported = false
+tracks/7/enabled = true
+tracks/7/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ 0.0, 15.0 ]
+}
+tracks/8/type = "value"
+tracks/8/path = NodePath("painting_babel:position")
+tracks/8/interp = 2
+tracks/8/loop_wrap = true
+tracks/8/imported = false
+tracks/8/enabled = true
+tracks/8/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector2( 155.796, 468.287 ), Vector2( 194.21, 444.904 ) ]
+}
+tracks/9/type = "value"
+tracks/9/path = NodePath("painting_babel:rotation_degrees")
+tracks/9/interp = 2
+tracks/9/loop_wrap = true
+tracks/9/imported = false
+tracks/9/enabled = true
+tracks/9/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ 0.0, 0.0 ]
+}
+tracks/10/type = "value"
+tracks/10/path = NodePath("painting_las_meninas:position")
+tracks/10/interp = 2
+tracks/10/loop_wrap = true
+tracks/10/imported = false
+tracks/10/enabled = true
+tracks/10/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Vector2( 861.734, 494.059 ), Vector2( 840.022, 470.677 ) ]
+}
+tracks/11/type = "value"
+tracks/11/path = NodePath("painting_las_meninas:rotation_degrees")
+tracks/11/interp = 2
+tracks/11/loop_wrap = true
+tracks/11/imported = false
+tracks/11/enabled = true
+tracks/11/keys = {
+"times": PoolRealArray( 0, 2 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ 0.0, 0.0 ]
+}
+
+[node name="Node2D" type="Node2D"]
+script = ExtResource( 1 )
+
+[node name="painting_parasol" type="Sprite" parent="." index="0"]
+position = Vector2( 451.448, 256.916 )
+scale = Vector2( 0.557998, 0.557998 )
+texture = ExtResource( 2 )
+
+[node name="painting_babel" type="Sprite" parent="." index="1"]
+position = Vector2( 155.796, 468.287 )
+scale = Vector2( 0.29005, 0.29005 )
+texture = ExtResource( 3 )
+
+[node name="painting_mona_lisa" type="Sprite" parent="." index="2"]
+position = Vector2( 117.659, 173.793 )
+scale = Vector2( 0.696799, 0.696799 )
+texture = ExtResource( 4 )
+_sections_unfolded = [ "Transform" ]
+
+[node name="painting_las_meninas" type="Sprite" parent="." index="3"]
+position = Vector2( 861.734, 494.059 )
+scale = Vector2( 0.348146, 0.348146 )
+texture = ExtResource( 5 )
+
+[node name="painting_old_guitarist" type="Sprite" parent="." index="4"]
+position = Vector2( 886.982, 185.641 )
+scale = Vector2( 0.344706, 0.328421 )
+texture = ExtResource( 6 )
+
+[node name="painting_the_swing" type="Sprite" parent="." index="5"]
+position = Vector2( 715.927, 181.745 )
+scale = Vector2( 0.286677, 0.286677 )
+texture = ExtResource( 7 )
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="6"]
+root_node = NodePath("..")
+autoplay = "move_around"
+playback_process_mode = 1
+playback_default_blend_time = 0.0
+playback_speed = 1.0
+anims/move_around = SubResource( 1 )
+blend_times = [  ]
+
+[node name="switch" type="Button" parent="." index="7"]
+anchor_left = 0.0
+anchor_top = 0.0
+anchor_right = 0.0
+anchor_bottom = 0.0
+margin_left = 6.0
+margin_top = 7.0
+margin_right = 152.0
+margin_bottom = 27.0
+rect_pivot_offset = Vector2( 0, 0 )
+rect_clip_content = false
+focus_mode = 2
+mouse_filter = 0
+mouse_default_cursor_shape = 0
+size_flags_horizontal = 1
+size_flags_vertical = 1
+toggle_mode = false
+enabled_focus_mode = 2
+shortcut = null
+group = null
+text = "Switch to Sulptures"
+flat = false
+align = 1
+
+[connection signal="pressed" from="switch" to="." method="_on_switch_pressed"]

+ 97 - 0
misc/background_load/project.godot

@@ -0,0 +1,97 @@
+; Engine configuration file.
+; It's best edited using the editor UI and not directly,
+; since the parameters that go here are not all obvious.
+;
+; Format:
+;   [section] ; section goes between []
+;   param=value ; assign values to parameters
+
+config_version=4
+
+_global_script_classes=[  ]
+
+[application]
+
+config/name="Background Thread Loading Demo"
+run/main_scene="res://paintings.tscn"
+
+[autoload]
+
+background_load="*res://background_load.tscn"
+
+[input]
+
+ui_accept={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777221,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777222,"unicode":0,"echo":false,"script":null)
+, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null)
+ ]
+}
+ui_select={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null)
+ ]
+}
+ui_cancel={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777217,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null)
+ ]
+}
+ui_focus_next={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"unicode":0,"echo":false,"script":null)
+ ]
+}
+ui_focus_prev={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":true,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777218,"unicode":0,"echo":false,"script":null)
+ ]
+}
+ui_left={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null)
+ ]
+}
+ui_right={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null)
+ ]
+}
+ui_up={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null)
+ ]
+}
+ui_down={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null)
+, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null)
+ ]
+}
+ui_page_up={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777235,"unicode":0,"echo":false,"script":null)
+ ]
+}
+ui_page_down={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777236,"unicode":0,"echo":false,"script":null)
+ ]
+}
+ui_home={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777229,"unicode":0,"echo":false,"script":null)
+ ]
+}
+ui_end={
+"deadzone": 0.5,
+"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777230,"unicode":0,"echo":false,"script":null)
+ ]
+}

BIN
misc/background_load/sculpture_david.jpg


+ 29 - 0
misc/background_load/sculpture_david.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/sculpture_david.jpg-48aeb7cb164d32e6f17209e6764b659c.stex"
+
+[deps]
+
+source_file="res://sculpture_david.jpg"
+dest_files=[ "res://.import/sculpture_david.jpg-48aeb7cb164d32e6f17209e6764b659c.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/sculpture_fountain.jpg


+ 29 - 0
misc/background_load/sculpture_fountain.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/sculpture_fountain.jpg-dac3819d7eb39b78d36e9f6504d09bc6.stex"
+
+[deps]
+
+source_file="res://sculpture_fountain.jpg"
+dest_files=[ "res://.import/sculpture_fountain.jpg-dac3819d7eb39b78d36e9f6504d09bc6.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/sculpture_four_parts_of_earth.jpg


+ 29 - 0
misc/background_load/sculpture_four_parts_of_earth.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/sculpture_four_parts_of_earth.jpg-6d7b17284103f155af8220c6e7c0afb3.stex"
+
+[deps]
+
+source_file="res://sculpture_four_parts_of_earth.jpg"
+dest_files=[ "res://.import/sculpture_four_parts_of_earth.jpg-6d7b17284103f155af8220c6e7c0afb3.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/sculpture_lincoln.jpg


+ 29 - 0
misc/background_load/sculpture_lincoln.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/sculpture_lincoln.jpg-2309a3ef73573c72052204394b916eef.stex"
+
+[deps]
+
+source_file="res://sculpture_lincoln.jpg"
+dest_files=[ "res://.import/sculpture_lincoln.jpg-2309a3ef73573c72052204394b916eef.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/sculpture_thinker.jpg


+ 29 - 0
misc/background_load/sculpture_thinker.jpg.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/sculpture_thinker.jpg-d13623267c5f848cecaa2bb8bb609f24.stex"
+
+[deps]
+
+source_file="res://sculpture_thinker.jpg"
+dest_files=[ "res://.import/sculpture_thinker.jpg-d13623267c5f848cecaa2bb8bb609f24.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

BIN
misc/background_load/sculpture_venus.png


+ 29 - 0
misc/background_load/sculpture_venus.png.import

@@ -0,0 +1,29 @@
+[remap]
+
+importer="texture"
+type="StreamTexture"
+path="res://.import/sculpture_venus.png-ce0240c8ebb6a0aae05e92456d21d8f3.stex"
+
+[deps]
+
+source_file="res://sculpture_venus.png"
+dest_files=[ "res://.import/sculpture_venus.png-ce0240c8ebb6a0aae05e92456d21d8f3.stex" ]
+
+[params]
+
+compress/mode=0
+compress/lossy_quality=0.7
+compress/hdr_mode=0
+compress/normal_map=0
+flags/repeat=0
+flags/filter=true
+flags/mipmaps=false
+flags/anisotropic=false
+flags/srgb=2
+process/fix_alpha_border=true
+process/premult_alpha=false
+process/HDR_as_SRGB=false
+stream=false
+size_limit=0
+detect_3d=true
+svg/scale=1.0

+ 6 - 0
misc/background_load/sculptures.gd

@@ -0,0 +1,6 @@
+extends Node2D
+
+
+func _on_switch_pressed():
+	$switch.hide()
+	background_load.load_scene("res://paintings.tscn")

+ 162 - 0
misc/background_load/sculptures.tscn

@@ -0,0 +1,162 @@
+[gd_scene load_steps=9 format=2]
+
+[ext_resource path="res://sculptures.gd" type="Script" id=1]
+[ext_resource path="res://sculpture_fountain.jpg" type="Texture" id=2]
+[ext_resource path="res://sculpture_four_parts_of_earth.jpg" type="Texture" id=3]
+[ext_resource path="res://sculpture_david.jpg" type="Texture" id=4]
+[ext_resource path="res://sculpture_lincoln.jpg" type="Texture" id=5]
+[ext_resource path="res://sculpture_thinker.jpg" type="Texture" id=6]
+[ext_resource path="res://sculpture_venus.png" type="Texture" id=7]
+
+[sub_resource type="Animation" id=1]
+
+resource_name = "colorcycle"
+length = 8.0
+loop = true
+step = 0.1
+tracks/0/type = "value"
+tracks/0/path = NodePath("sculpture_four_parts_of_earth:modulate")
+tracks/0/interp = 1
+tracks/0/loop_wrap = true
+tracks/0/imported = false
+tracks/0/enabled = true
+tracks/0/keys = {
+"times": PoolRealArray( 0, 4 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Color( 1, 1, 1, 1 ), Color( 0.827451, 0.25098, 0.25098, 1 ) ]
+}
+tracks/1/type = "value"
+tracks/1/path = NodePath("sculpture_fountain:modulate")
+tracks/1/interp = 1
+tracks/1/loop_wrap = true
+tracks/1/imported = false
+tracks/1/enabled = true
+tracks/1/keys = {
+"times": PoolRealArray( 0, 4 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Color( 1, 1, 1, 1 ), Color( 1, 1, 1, 0 ) ]
+}
+tracks/2/type = "value"
+tracks/2/path = NodePath("sculpture_lincoln:modulate")
+tracks/2/interp = 1
+tracks/2/loop_wrap = true
+tracks/2/imported = false
+tracks/2/enabled = true
+tracks/2/keys = {
+"times": PoolRealArray( 0, 4.1 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Color( 1, 1, 1, 1 ), Color( 0.32549, 0.407843, 0.862745, 1 ) ]
+}
+tracks/3/type = "value"
+tracks/3/path = NodePath("sculpture_david:modulate")
+tracks/3/interp = 1
+tracks/3/loop_wrap = true
+tracks/3/imported = false
+tracks/3/enabled = true
+tracks/3/keys = {
+"times": PoolRealArray( 0, 4.1 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Color( 1, 1, 1, 1 ), Color( 0.180392, 0.866667, 0.137255, 1 ) ]
+}
+tracks/4/type = "value"
+tracks/4/path = NodePath("sculpture_thinker:modulate")
+tracks/4/interp = 1
+tracks/4/loop_wrap = true
+tracks/4/imported = false
+tracks/4/enabled = true
+tracks/4/keys = {
+"times": PoolRealArray( 0, 4.1 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Color( 1, 1, 1, 1 ), Color( 0.898039, 0, 1, 1 ) ]
+}
+tracks/5/type = "value"
+tracks/5/path = NodePath("sculpture_venus:modulate")
+tracks/5/interp = 1
+tracks/5/loop_wrap = true
+tracks/5/imported = false
+tracks/5/enabled = true
+tracks/5/keys = {
+"times": PoolRealArray( 0, 4.1 ),
+"transitions": PoolRealArray( 1, 1 ),
+"update": 0,
+"values": [ Color( 1, 1, 1, 1 ), Color( 0, 0, 0, 1 ) ]
+}
+
+[node name="Node2D" type="Node2D" index="0"]
+script = ExtResource( 1 )
+
+[node name="sculpture_fountain" type="Sprite" parent="." index="0"]
+position = Vector2( 152.971, 513.499 )
+scale = Vector2( 0.191615, 0.191615 )
+texture = ExtResource( 2 )
+_sections_unfolded = [ "Visibility" ]
+
+[node name="sculpture_four_parts_of_earth" type="Sprite" parent="." index="1"]
+position = Vector2( 480.743, 588.027 )
+scale = Vector2( 0.198693, 0.198693 )
+texture = ExtResource( 3 )
+_sections_unfolded = [ "Visibility" ]
+
+[node name="sculpture_david" type="Sprite" parent="." index="2"]
+position = Vector2( 567.784, 196.577 )
+scale = Vector2( 0.447348, 0.447348 )
+texture = ExtResource( 4 )
+_sections_unfolded = [ "Visibility" ]
+
+[node name="sculpture_lincoln" type="Sprite" parent="." index="3"]
+position = Vector2( 211.852, 203.688 )
+scale = Vector2( 0.386179, 0.378971 )
+texture = ExtResource( 5 )
+_sections_unfolded = [ "Visibility" ]
+
+[node name="sculpture_thinker" type="Sprite" parent="." index="4"]
+position = Vector2( 854.336, 202.363 )
+scale = Vector2( 0.182302, 0.182302 )
+texture = ExtResource( 6 )
+_sections_unfolded = [ "Visibility" ]
+
+[node name="sculpture_venus" type="Sprite" parent="." index="5"]
+position = Vector2( 848.731, 495.153 )
+scale = Vector2( 0.402249, 0.402249 )
+texture = ExtResource( 7 )
+_sections_unfolded = [ "Visibility" ]
+
+[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="6"]
+root_node = NodePath("..")
+autoplay = "colorcycle"
+playback_process_mode = 1
+playback_default_blend_time = 0.0
+playback_speed = 1.0
+anims/colorcycle = SubResource( 1 )
+blend_times = [  ]
+
+[node name="switch" type="Button" parent="." index="7"]
+anchor_left = 0.0
+anchor_top = 0.0
+anchor_right = 0.0
+anchor_bottom = 0.0
+margin_left = 5.0
+margin_top = 6.0
+margin_right = 137.0
+margin_bottom = 26.0
+rect_pivot_offset = Vector2( 0, 0 )
+rect_clip_content = false
+focus_mode = 2
+mouse_filter = 0
+mouse_default_cursor_shape = 0
+size_flags_horizontal = 1
+size_flags_vertical = 1
+toggle_mode = false
+enabled_focus_mode = 2
+shortcut = null
+group = null
+text = "Switch to Paintings"
+flat = false
+align = 1
+
+[connection signal="pressed" from="switch" to="." method="_on_switch_pressed"]