Browse Source

Update Viewport demos to Godot 4

Aaron Franke 3 years ago
parent
commit
3e3a9e7b6e
35 changed files with 833 additions and 833 deletions
  1. 1 5
      viewport/2d_in_3d/2D_in_3D.gd
  2. 95 78
      viewport/2d_in_3d/2D_in_3D.tscn
  3. 13 15
      viewport/2d_in_3d/ball.png.import
  4. 13 15
      viewport/2d_in_3d/icon.png.import
  5. 13 15
      viewport/2d_in_3d/left_pallete.png.import
  6. 2 1
      viewport/2d_in_3d/project.godot
  7. 13 15
      viewport/2d_in_3d/right_pallete.png.import
  8. 13 15
      viewport/2d_in_3d/separator.png.import
  9. 24 28
      viewport/3d_in_2d/3d_in_2d.tscn
  10. 13 15
      viewport/3d_in_2d/icon.png.import
  11. 2 2
      viewport/3d_in_2d/project.godot
  12. 6 9
      viewport/3d_in_2d/robot_3d.tscn
  13. 13 15
      viewport/3d_in_2d/robot_demo.png.import
  14. 4 6
      viewport/3d_scaling/cubes.tscn
  15. 8 5
      viewport/3d_scaling/hud.gd
  16. 19 39
      viewport/3d_scaling/hud.tscn
  17. 13 15
      viewport/3d_scaling/icon.png.import
  18. 33 0
      viewport/3d_scaling/noto_sans_ui_regular.ttf.import
  19. 2 2
      viewport/3d_scaling/project.godot
  20. 1 1
      viewport/dynamic_split_screen/camera_controller.gd
  21. 9 17
      viewport/dynamic_split_screen/default_env.tres
  22. 13 15
      viewport/dynamic_split_screen/icon.png.import
  23. 8 8
      viewport/dynamic_split_screen/player.gd
  24. 2 1
      viewport/dynamic_split_screen/project.godot
  25. 278 312
      viewport/dynamic_split_screen/split_screen.tscn
  26. 13 16
      viewport/gui_in_3d/gui_3d.gd
  27. 35 25
      viewport/gui_in_3d/gui_in_3d.tscn
  28. 108 66
      viewport/gui_in_3d/gui_panel_3d.tscn
  29. 13 15
      viewport/gui_in_3d/icon.png.import
  30. 2 1
      viewport/gui_in_3d/project.godot
  31. 13 15
      viewport/screen_capture/icon.png.import
  32. 13 15
      viewport/screen_capture/mountains.png.import
  33. 2 3
      viewport/screen_capture/project.godot
  34. 1 8
      viewport/screen_capture/screen_capture.gd
  35. 22 20
      viewport/screen_capture/screen_capture.tscn

+ 1 - 5
viewport/2d_in_3d/2D_in_3D.gd

@@ -3,11 +3,7 @@ extends Node3D
 func _ready():
 func _ready():
 	# Clear the viewport.
 	# Clear the viewport.
 	var viewport = $SubViewport
 	var viewport = $SubViewport
-	$SubViewport.set_clear_mode(SubViewport.CLEAR_MODE_ONLY_NEXT_FRAME)
-
-	# Let two frames pass to make sure the vieport is captured.
-	await get_tree().process_frame
-	await get_tree().process_frame
+	$SubViewport.set_clear_mode(SubViewport.CLEAR_MODE_ONCE)
 
 
 	# Retrieve the texture and set it to the viewport quad.
 	# Retrieve the texture and set it to the viewport quad.
 	$ViewportQuad.material_override.albedo_texture = viewport.get_texture()
 	$ViewportQuad.material_override.albedo_texture = viewport.get_texture()

+ 95 - 78
viewport/2d_in_3d/2D_in_3D.tscn

@@ -1,102 +1,61 @@
-[gd_scene load_steps=13 format=2]
+[gd_scene load_steps=16 format=3 uid="uid://c587vtbfwth3k"]
 
 
-[ext_resource path="res://2D_in_3D.gd" type="Script" id=1]
-[ext_resource path="res://pong.gd" type="Script" id=2]
-[ext_resource path="res://ball.png" type="Texture2D" id=3]
-[ext_resource path="res://left_pallete.png" type="Texture2D" id=4]
-[ext_resource path="res://right_pallete.png" type="Texture2D" id=5]
-[ext_resource path="res://separator.png" type="Texture2D" id=6]
+[ext_resource type="Script" path="res://2D_in_3D.gd" id="1"]
+[ext_resource type="Script" path="res://pong.gd" id="2"]
+[ext_resource type="Texture2D" uid="uid://dbuw5tlmsx6ss" path="res://ball.png" id="3"]
+[ext_resource type="Texture2D" uid="uid://gtbg1ogxcsl7" path="res://left_pallete.png" id="4"]
+[ext_resource type="Texture2D" uid="uid://bc2vi0nh1j1hs" path="res://right_pallete.png" id="5"]
+[ext_resource type="Texture2D" uid="uid://wiyhsl0rfkrs" path="res://separator.png" id="6"]
 
 
-[sub_resource type="PlaneMesh" id=1]
+[sub_resource type="StandardMaterial3D" id="6"]
 
 
-[sub_resource type="StandardMaterial3D" id=2]
+[sub_resource type="PlaneMesh" id="1"]
+
+[sub_resource type="StandardMaterial3D" id="2"]
 roughness = 0.7
 roughness = 0.7
 
 
-[sub_resource type="BoxMesh" id=3]
+[sub_resource type="BoxMesh" id="3"]
+size = Vector3(2, 2, 2)
 
 
-[sub_resource type="StandardMaterial3D" id=4]
+[sub_resource type="StandardMaterial3D" id="4"]
 albedo_color = Color(0.652344, 0.652344, 0.652344, 1)
 albedo_color = Color(0.652344, 0.652344, 0.652344, 1)
 roughness = 0.0
 roughness = 0.0
 
 
-[sub_resource type="BoxMesh" id=5]
+[sub_resource type="BoxMesh" id="5"]
 size = Vector3(1.1, 0.8, 0.1)
 size = Vector3(1.1, 0.8, 0.1)
 
 
-[sub_resource type="StandardMaterial3D" id=6]
+[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_cvh5i"]
+sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+
+[sub_resource type="Sky" id="Sky_7gemw"]
+sky_material = SubResource( "ProceduralSkyMaterial_cvh5i" )
+
+[sub_resource type="Environment" id="Environment_fvsgw"]
+background_mode = 2
+sky = SubResource( "Sky_7gemw" )
+tonemap_mode = 2
+glow_enabled = true
 
 
 [node name="2Din3D" type="Node3D"]
 [node name="2Din3D" type="Node3D"]
-script = ExtResource( 1 )
+script = ExtResource( "1" )
 
 
 [node name="Camera3D" type="Camera3D" parent="."]
 [node name="Camera3D" type="Camera3D" parent="."]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0)
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0)
 fov = 74.0
 fov = 74.0
 near = 0.1
 near = 0.1
 
 
-[node name="Floor" type="MeshInstance3D" parent="."]
-transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, -1, -2)
-mesh = SubResource( 1 )
-surface_material_override/0 = SubResource( 2 )
-
-[node name="Pillar1" type="Node3D" parent="."]
-transform = Transform3D(0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, -3, -0.2, -4)
-
-[node name="PillarBottom" type="MeshInstance3D" parent="Pillar1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
-
-[node name="PillarTop" type="MeshInstance3D" parent="Pillar1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
-
-[node name="PillarMiddle" type="MeshInstance3D" parent="Pillar1"]
-transform = Transform3D(0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
-
-[node name="Pillar2" type="Node3D" parent="."]
-transform = Transform3D(0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, 3, -0.2, -4)
-
-[node name="PillarBottom" type="MeshInstance3D" parent="Pillar2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
-
-[node name="PillarTop" type="MeshInstance3D" parent="Pillar2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
-
-[node name="PillarMiddle" type="MeshInstance3D" parent="Pillar2"]
-transform = Transform3D(0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
-
-[node name="PillarBack" type="MeshInstance3D" parent="."]
-transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 1.2, -4.5)
-mesh = SubResource( 5 )
-surface_material_override/0 = SubResource( 4 )
-
-[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
-transform = Transform3D(0.623013, -0.733525, 0.271654, 0.321394, 0.55667, 0.766044, -0.713134, -0.389948, 0.582563, 0, 10, 0)
-shadow_enabled = true
-directional_shadow_blend_splits = true
-directional_shadow_normal_bias = 0.2
-
 [node name="ViewportQuad" type="MeshInstance3D" parent="."]
 [node name="ViewportQuad" type="MeshInstance3D" parent="."]
 transform = Transform3D(2, 0, 0, 0, 0, -1.333, 0, 1, 0, 0, 1.2, -4.25)
 transform = Transform3D(2, 0, 0, 0, 0, -1.333, 0, 1, 0, 0, 1.2, -4.25)
-material_override = SubResource( 6 )
-mesh = SubResource( 1 )
-surface_material_override/0 = null
+material_override = SubResource( "6" )
+mesh = SubResource( "1" )
 
 
 [node name="SubViewport" type="SubViewport" parent="."]
 [node name="SubViewport" type="SubViewport" parent="."]
-size = Vector2(600, 400)
-hdr = false
-usage = 0
-render_target_v_flip = true
+size = Vector2i(600, 400)
+render_target_update_mode = 4
 
 
 [node name="Pong" type="Node2D" parent="SubViewport"]
 [node name="Pong" type="Node2D" parent="SubViewport"]
-script = ExtResource( 2 )
+script = ExtResource( "2" )
 
 
 [node name="Background" type="Panel" parent="SubViewport/Pong"]
 [node name="Background" type="Panel" parent="SubViewport/Pong"]
 offset_right = 600.0
 offset_right = 600.0
@@ -104,16 +63,74 @@ offset_bottom = 400.0
 
 
 [node name="Ball" type="Sprite2D" parent="SubViewport/Pong"]
 [node name="Ball" type="Sprite2D" parent="SubViewport/Pong"]
 position = Vector2(300, 200)
 position = Vector2(300, 200)
-texture = ExtResource( 3 )
+texture = ExtResource( "3" )
 
 
 [node name="LeftPaddle" type="Sprite2D" parent="SubViewport/Pong"]
 [node name="LeftPaddle" type="Sprite2D" parent="SubViewport/Pong"]
 position = Vector2(20, 200)
 position = Vector2(20, 200)
-texture = ExtResource( 4 )
+texture = ExtResource( "4" )
 
 
 [node name="RightPaddle" type="Sprite2D" parent="SubViewport/Pong"]
 [node name="RightPaddle" type="Sprite2D" parent="SubViewport/Pong"]
 position = Vector2(580, 200)
 position = Vector2(580, 200)
-texture = ExtResource( 5 )
+texture = ExtResource( "5" )
 
 
 [node name="Separator" type="Sprite2D" parent="SubViewport/Pong"]
 [node name="Separator" type="Sprite2D" parent="SubViewport/Pong"]
 position = Vector2(298, 200)
 position = Vector2(298, 200)
-texture = ExtResource( 6 )
+texture = ExtResource( "6" )
+
+[node name="Environment" type="Node3D" parent="."]
+
+[node name="Floor" type="MeshInstance3D" parent="Environment"]
+transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, -1, -2)
+mesh = SubResource( "1" )
+skeleton = NodePath("../..")
+surface_material_override/0 = SubResource( "2" )
+
+[node name="Pillar1" type="Node3D" parent="Environment"]
+transform = Transform3D(0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, -3, -0.2, -4)
+
+[node name="PillarBottom" type="MeshInstance3D" parent="Environment/Pillar1"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )
+
+[node name="PillarTop" type="MeshInstance3D" parent="Environment/Pillar1"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0)
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )
+
+[node name="PillarMiddle" type="MeshInstance3D" parent="Environment/Pillar1"]
+transform = Transform3D(0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0)
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )
+
+[node name="Pillar2" type="Node3D" parent="Environment"]
+transform = Transform3D(0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, 3, -0.2, -4)
+
+[node name="PillarBottom" type="MeshInstance3D" parent="Environment/Pillar2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0)
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )
+
+[node name="PillarTop" type="MeshInstance3D" parent="Environment/Pillar2"]
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0)
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )
+
+[node name="PillarMiddle" type="MeshInstance3D" parent="Environment/Pillar2"]
+transform = Transform3D(0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0)
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )
+
+[node name="PillarBack" type="MeshInstance3D" parent="Environment"]
+transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 1.2, -4.5)
+mesh = SubResource( "5" )
+skeleton = NodePath("../..")
+surface_material_override/0 = SubResource( "4" )
+
+[node name="WorldEnvironment" type="WorldEnvironment" parent="Environment"]
+environment = SubResource( "Environment_fvsgw" )
+
+[node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"]
+transform = Transform3D(0.623013, -0.733525, 0.271653, 0.321394, 0.55667, 0.766045, -0.713134, -0.389948, 0.582563, 0, 10, 0)
+shadow_enabled = true
+directional_shadow_blend_splits = true

+ 13 - 15
viewport/2d_in_3d/ball.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/ball.png-9a4ca347acb7532f6ae347744a6b04f7.stex"
+type="CompressedTexture2D"
+uid="uid://dbuw5tlmsx6ss"
+path="res://.godot/imported/ball.png-9a4ca347acb7532f6ae347744a6b04f7.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://ball.png"
 source_file="res://ball.png"
-dest_files=["res://.godot/imported/ball.png-9a4ca347acb7532f6ae347744a6b04f7.stex"]
+dest_files=["res://.godot/imported/ball.png-9a4ca347acb7532f6ae347744a6b04f7.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=false
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 13 - 15
viewport/2d_in_3d/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://dkugtedjas1op"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://icon.png"
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 13 - 15
viewport/2d_in_3d/left_pallete.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/left_pallete.png-bc33611074a0f886142e37c77bd2545a.stex"
+type="CompressedTexture2D"
+uid="uid://gtbg1ogxcsl7"
+path="res://.godot/imported/left_pallete.png-bc33611074a0f886142e37c77bd2545a.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://left_pallete.png"
 source_file="res://left_pallete.png"
-dest_files=["res://.godot/imported/left_pallete.png-bc33611074a0f886142e37c77bd2545a.stex"]
+dest_files=["res://.godot/imported/left_pallete.png-bc33611074a0f886142e37c77bd2545a.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=false
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 2 - 1
viewport/2d_in_3d/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 ;   param=value ; assign values to parameters
 
 
-config_version=4
+config_version=5
 
 
 [application]
 [application]
 
 
@@ -14,6 +14,7 @@ config/name="2D in 3D"
 config/description="A demo showing how a 2D scene can be shown within a 3D one using viewports."
 config/description="A demo showing how a 2D scene can be shown within a 3D one using viewports."
 run/main_scene="res://2D_in_3D.tscn"
 run/main_scene="res://2D_in_3D.tscn"
 config/icon="res://icon.png"
 config/icon="res://icon.png"
+config/features=PackedStringArray("4.0")
 
 
 [gdnative]
 [gdnative]
 
 

+ 13 - 15
viewport/2d_in_3d/right_pallete.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/right_pallete.png-fc6e4a6a7c8197834656482b94708e47.stex"
+type="CompressedTexture2D"
+uid="uid://bc2vi0nh1j1hs"
+path="res://.godot/imported/right_pallete.png-fc6e4a6a7c8197834656482b94708e47.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://right_pallete.png"
 source_file="res://right_pallete.png"
-dest_files=["res://.godot/imported/right_pallete.png-fc6e4a6a7c8197834656482b94708e47.stex"]
+dest_files=["res://.godot/imported/right_pallete.png-fc6e4a6a7c8197834656482b94708e47.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=false
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 13 - 15
viewport/2d_in_3d/separator.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/separator.png-f981c8489b9148e2e1dc63398273da74.stex"
+type="CompressedTexture2D"
+uid="uid://wiyhsl0rfkrs"
+path="res://.godot/imported/separator.png-f981c8489b9148e2e1dc63398273da74.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://separator.png"
 source_file="res://separator.png"
-dest_files=["res://.godot/imported/separator.png-f981c8489b9148e2e1dc63398273da74.stex"]
+dest_files=["res://.godot/imported/separator.png-f981c8489b9148e2e1dc63398273da74.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=false
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 24 - 28
viewport/3d_in_2d/3d_in_2d.tscn

@@ -1,62 +1,58 @@
-[gd_scene load_steps=11 format=2]
+[gd_scene load_steps=11 format=3 uid="uid://xwkspajfdmd7"]
 
 
-[ext_resource path="res://3d_in_2d.gd" type="Script" id=1]
-[ext_resource path="res://robot_demo.png" type="Texture2D" id=2]
-[ext_resource path="res://robot_3d.tscn" type="PackedScene" id=3]
+[ext_resource type="Script" path="res://3d_in_2d.gd" id="1"]
+[ext_resource type="Texture2D" uid="uid://q5bonn8iowbc" path="res://robot_demo.png" id="2"]
+[ext_resource type="PackedScene" uid="uid://8nlipuu0ceal" path="res://robot_3d.tscn" id="3"]
 
 
-[sub_resource type="ViewportTexture" id=1]
+[sub_resource type="ViewportTexture" id="ViewportTexture_2squv"]
 viewport_path = NodePath("SubViewport")
 viewport_path = NodePath("SubViewport")
 
 
-[sub_resource type="AtlasTexture" id=2]
-atlas = ExtResource( 2 )
+[sub_resource type="AtlasTexture" id="2"]
+atlas = ExtResource( "2" )
 region = Rect2(0, 0, 64, 64)
 region = Rect2(0, 0, 64, 64)
 
 
-[sub_resource type="AtlasTexture" id=3]
-atlas = ExtResource( 2 )
+[sub_resource type="AtlasTexture" id="3"]
+atlas = ExtResource( "2" )
 region = Rect2(64, 0, 64, 64)
 region = Rect2(64, 0, 64, 64)
 
 
-[sub_resource type="AtlasTexture" id=4]
-atlas = ExtResource( 2 )
+[sub_resource type="AtlasTexture" id="4"]
+atlas = ExtResource( "2" )
 region = Rect2(128, 0, 64, 64)
 region = Rect2(128, 0, 64, 64)
 
 
-[sub_resource type="AtlasTexture" id=5]
-atlas = ExtResource( 2 )
+[sub_resource type="AtlasTexture" id="5"]
+atlas = ExtResource( "2" )
 region = Rect2(192, 0, 64, 64)
 region = Rect2(192, 0, 64, 64)
 
 
-[sub_resource type="AtlasTexture" id=6]
-atlas = ExtResource( 2 )
+[sub_resource type="AtlasTexture" id="6"]
+atlas = ExtResource( "2" )
 region = Rect2(256, 0, 64, 64)
 region = Rect2(256, 0, 64, 64)
 
 
-[sub_resource type="SpriteFrames" id=7]
+[sub_resource type="SpriteFrames" id="7"]
 animations = [{
 animations = [{
-"frames": [SubResource( 2 ), SubResource( 3 ), SubResource( 4 ), SubResource( 5 ), SubResource( 6 )],
+"frames": [SubResource( "2" ), SubResource( "3" ), SubResource( "4" ), SubResource( "5" ), SubResource( "6" )],
 "loop": true,
 "loop": true,
-"name": "default",
+"name": &"default",
 "speed": 5.0
 "speed": 5.0
 }]
 }]
 
 
 [node name="3Din2D" type="Node2D"]
 [node name="3Din2D" type="Node2D"]
-script = ExtResource( 1 )
+script = ExtResource( "1" )
 
 
 [node name="SubViewport" type="SubViewport" parent="."]
 [node name="SubViewport" type="SubViewport" parent="."]
-size = Vector2(300, 300)
-own_world = true
-transparent_bg = true
 msaa = 2
 msaa = 2
-hdr = false
-usage = 3
+size = Vector2i(300, 300)
+render_target_update_mode = 4
 
 
-[node name="Robot3D" parent="SubViewport" instance=ExtResource( 3 )]
+[node name="Robot3D" parent="SubViewport" instance=ExtResource( "3" )]
 
 
 [node name="ViewportSprite" type="Sprite2D" parent="."]
 [node name="ViewportSprite" type="Sprite2D" parent="."]
 position = Vector2(650, 300)
 position = Vector2(650, 300)
-scale = Vector2(1, -1)
-texture = SubResource( 1 )
+texture = SubResource( "ViewportTexture_2squv" )
 
 
 [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
 [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."]
 position = Vector2(350, 300)
 position = Vector2(350, 300)
 scale = Vector2(3, 3)
 scale = Vector2(3, 3)
-frames = SubResource( 7 )
+frames = SubResource( "7" )
 
 
 [node name="Camera2D" type="Camera2D" parent="."]
 [node name="Camera2D" type="Camera2D" parent="."]
 offset = Vector2(512, 300)
 offset = Vector2(512, 300)

+ 13 - 15
viewport/3d_in_2d/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://bjah7o5vmbfs1"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://icon.png"
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 2 - 2
viewport/3d_in_2d/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 ;   param=value ; assign values to parameters
 
 
-config_version=4
+config_version=5
 
 
 [application]
 [application]
 
 
@@ -14,10 +14,10 @@ config/name="3D in 2D"
 config/description="A demo showing how a 3D scene can be shown within a 2D one using viewports."
 config/description="A demo showing how a 3D scene can be shown within a 2D one using viewports."
 run/main_scene="res://3d_in_2d.tscn"
 run/main_scene="res://3d_in_2d.tscn"
 config/icon="res://icon.png"
 config/icon="res://icon.png"
+config/features=PackedStringArray("4.0")
 
 
 [display]
 [display]
 
 
-window/dpi/allow_hidpi=true
 window/stretch/mode="2d"
 window/stretch/mode="2d"
 window/stretch/aspect="expand"
 window/stretch/aspect="expand"
 
 

File diff suppressed because it is too large
+ 6 - 9
viewport/3d_in_2d/robot_3d.tscn


+ 13 - 15
viewport/3d_in_2d/robot_demo.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/robot_demo.png-8502817e0037b3f31eaca3dae49dcfc5.stex"
+type="CompressedTexture2D"
+uid="uid://q5bonn8iowbc"
+path="res://.godot/imported/robot_demo.png-8502817e0037b3f31eaca3dae49dcfc5.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://robot_demo.png"
 source_file="res://robot_demo.png"
-dest_files=["res://.godot/imported/robot_demo.png-8502817e0037b3f31eaca3dae49dcfc5.stex"]
+dest_files=["res://.godot/imported/robot_demo.png-8502817e0037b3f31eaca3dae49dcfc5.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=false
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 4 - 6
viewport/3d_scaling/cubes.tscn

@@ -1,17 +1,15 @@
-[gd_scene load_steps=2 format=2]
+[gd_scene load_steps=2 format=3 uid="uid://bbnebk7xoaoto"]
 
 
-[sub_resource type="BoxMesh" id=1]
+[sub_resource type="BoxMesh" id="1"]
 
 
 [node name="Cubes" type="Node3D"]
 [node name="Cubes" type="Node3D"]
 
 
 [node name="MeshInstance1" type="MeshInstance3D" parent="."]
 [node name="MeshInstance1" type="MeshInstance3D" parent="."]
-mesh = SubResource( 1 )
-surface_material_override/0 = null
+mesh = SubResource( "1" )
 
 
 [node name="MeshInstance2" type="MeshInstance3D" parent="."]
 [node name="MeshInstance2" type="MeshInstance3D" parent="."]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -1)
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -1)
-mesh = SubResource( 1 )
-surface_material_override/0 = null
+mesh = SubResource( "1" )
 
 
 [node name="Camera3D" type="Camera3D" parent="."]
 [node name="Camera3D" type="Camera3D" parent="."]
 transform = Transform3D(0.877582, 0.229849, -0.420736, 0, 0.877582, 0.479426, 0.479426, -0.420736, 0.770151, -1.68294, 2.25571, 3.0806)
 transform = Transform3D(0.877582, 0.229849, -0.420736, 0, 0.877582, 0.479426, 0.479426, -0.420736, 0.770151, -1.68294, 2.25571, 3.0806)

+ 8 - 5
viewport/3d_scaling/hud.gd

@@ -6,12 +6,13 @@ extends Control
 # (SSAA), but filtering must be enabled for supersampling to work.
 # (SSAA), but filtering must be enabled for supersampling to work.
 var scale_factor = 1.0
 var scale_factor = 1.0
 
 
+@onready var viewport_container = $SubViewportContainer
 @onready var viewport = $SubViewportContainer/SubViewport
 @onready var viewport = $SubViewportContainer/SubViewport
 @onready var scale_label = $VBoxContainer/Scale
 @onready var scale_label = $VBoxContainer/Scale
 @onready var filter_label = $VBoxContainer/Filter
 @onready var filter_label = $VBoxContainer/Filter
 
 
 func _ready():
 func _ready():
-	viewport.get_texture().flags = Texture2D.FLAG_FILTER
+	viewport_container.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR
 
 
 	# Required to change the 3D viewport's size when the window is resized.
 	# Required to change the 3D viewport's size when the window is resized.
 	# warning-ignore:return_value_discarded
 	# warning-ignore:return_value_discarded
@@ -26,10 +27,12 @@ func _unhandled_input(event):
 
 
 	if event.is_action_pressed("toggle_filtering"):
 	if event.is_action_pressed("toggle_filtering"):
 		# Toggle the Filter flag on the ViewportTexture.
 		# Toggle the Filter flag on the ViewportTexture.
-		viewport.get_texture().flags ^= Texture2D.FLAG_FILTER
-
-		var filter_enabled = viewport.get_texture().flags & Texture2D.FLAG_FILTER
-		filter_label.text = "Filter: %s" % ("Enabled" if filter_enabled else "Disabled")
+		if viewport_container.texture_filter == CanvasItem.TEXTURE_FILTER_LINEAR:
+			viewport_container.texture_filter = CanvasItem.TEXTURE_FILTER_NEAREST
+			filter_label.text = "Filter: Disabled"
+		else:
+			viewport_container.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR
+			filter_label.text = "Filter: Enabled"
 
 
 
 
 # Called when the root's viewport size changes (i.e. when the window is resized).
 # Called when the root's viewport size changes (i.e. when the window is resized).

+ 19 - 39
viewport/3d_scaling/hud.tscn

@@ -1,41 +1,34 @@
-[gd_scene load_steps=6 format=2]
+[gd_scene load_steps=6 format=3 uid="uid://c5uc5vwuqvck5"]
 
 
-[ext_resource path="res://noto_sans_ui_regular.ttf" type="FontData" id=1]
-[ext_resource path="res://cubes.tscn" type="PackedScene" id=2]
-[ext_resource path="res://hud.gd" type="Script" id=3]
+[ext_resource type="FontData" uid="uid://dj5xxi41l3y1r" path="res://noto_sans_ui_regular.ttf" id="1"]
+[ext_resource type="PackedScene" uid="uid://bbnebk7xoaoto" path="res://cubes.tscn" id="2"]
+[ext_resource type="Script" path="res://hud.gd" id="3"]
 
 
-[sub_resource type="Font" id=1]
-size = 20
-font_data = ExtResource( 1 )
+[sub_resource type="Font" id="1"]
+data/0 = ExtResource( "1" )
 
 
-[sub_resource type="Theme" id=2]
-default_font = SubResource( 1 )
+[sub_resource type="Theme" id="2"]
+default_font = SubResource( "1" )
 
 
 [node name="HUD" type="Control"]
 [node name="HUD" type="Control"]
 anchor_right = 1.0
 anchor_right = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-theme = SubResource( 2 )
-script = ExtResource( 3 )
-__meta__ = {
-"_edit_use_anchors_": false
-}
+theme = SubResource( "2" )
+script = ExtResource( "3" )
 
 
 [node name="SubViewportContainer" type="SubViewportContainer" parent="."]
 [node name="SubViewportContainer" type="SubViewportContainer" parent="."]
+texture_filter = 1
 anchor_right = 1.0
 anchor_right = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
 stretch = true
 stretch = true
-__meta__ = {
-"_edit_use_anchors_": false
-}
 
 
 [node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
 [node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
-size = Vector2(1024, 600)
 handle_input_locally = false
 handle_input_locally = false
-usage = 3
-render_target_update_mode = 3
 shadow_atlas_size = 4096
 shadow_atlas_size = 4096
+size = Vector2i(1024, 600)
+render_target_update_mode = 4
 
 
-[node name="Cubes" parent="SubViewportContainer/SubViewport" instance=ExtResource( 2 )]
+[node name="Cubes" parent="SubViewportContainer/SubViewport" instance=ExtResource( "2" )]
 
 
 [node name="Help" type="Label" parent="."]
 [node name="Help" type="Label" parent="."]
 anchor_top = 1.0
 anchor_top = 1.0
@@ -44,11 +37,6 @@ offset_left = 16.0
 offset_top = -106.0
 offset_top = -106.0
 offset_right = 554.0
 offset_right = 554.0
 offset_bottom = -16.0
 offset_bottom = -16.0
-custom_colors/font_color_shadow = Color(0, 0, 0, 0.752941)
-custom_constants/shadow_offset_x = 2
-custom_constants/shadow_offset_y = 2
-custom_constants/shadow_as_outline = 0
-custom_fonts/font = SubResource( 1 )
 text = "This text will always render at the native resolution.
 text = "This text will always render at the native resolution.
 Press Space to adjust the 3D viewport's resolution scaling.
 Press Space to adjust the 3D viewport's resolution scaling.
 Press Enter to toggle filtering."
 Press Enter to toggle filtering."
@@ -66,25 +54,17 @@ __meta__ = {
 }
 }
 
 
 [node name="Scale" type="Label" parent="VBoxContainer"]
 [node name="Scale" type="Label" parent="VBoxContainer"]
-offset_right = 130.0
-offset_bottom = 28.0
-custom_colors/font_color_shadow = Color(0, 0, 0, 0.752941)
-custom_constants/shadow_offset_x = 2
-custom_constants/shadow_offset_y = 2
-custom_constants/shadow_as_outline = 0
+offset_right = 108.0
+offset_bottom = 26.0
 text = "Scale: 100%"
 text = "Scale: 100%"
 __meta__ = {
 __meta__ = {
 "_edit_use_anchors_": false
 "_edit_use_anchors_": false
 }
 }
 
 
 [node name="Filter" type="Label" parent="VBoxContainer"]
 [node name="Filter" type="Label" parent="VBoxContainer"]
-offset_top = 32.0
-offset_right = 130.0
-offset_bottom = 60.0
-custom_colors/font_color_shadow = Color(0, 0, 0, 0.752941)
-custom_constants/shadow_offset_x = 2
-custom_constants/shadow_offset_y = 2
-custom_constants/shadow_as_outline = 0
+offset_top = 30.0
+offset_right = 108.0
+offset_bottom = 56.0
 text = "Filter: Enabled"
 text = "Filter: Enabled"
 __meta__ = {
 __meta__ = {
 "_edit_use_anchors_": false
 "_edit_use_anchors_": false

+ 13 - 15
viewport/3d_scaling/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://t7xypb53csjt"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://icon.png"
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 33 - 0
viewport/3d_scaling/noto_sans_ui_regular.ttf.import

@@ -0,0 +1,33 @@
+[remap]
+
+importer="font_data_dynamic"
+type="FontData"
+uid="uid://dj5xxi41l3y1r"
+path="res://.godot/imported/noto_sans_ui_regular.ttf-37da988dfa3a55ebf3ea2c9fc7b383a8.fontdata"
+
+[deps]
+
+source_file="res://noto_sans_ui_regular.ttf"
+dest_files=["res://.godot/imported/noto_sans_ui_regular.ttf-37da988dfa3a55ebf3ea2c9fc7b383a8.fontdata"]
+
+[params]
+
+antialiased=true
+multichannel_signed_distance_field=false
+msdf_pixel_range=8
+msdf_size=48
+force_autohinter=false
+hinting=1
+subpixel_positioning=1
+embolden=0.0
+transform=Transform2D(1, 0, 0, 1, 0, 0)
+oversampling=0.0
+compress=true
+opentype_feature_overrides={}
+preload/char_ranges=PackedStringArray()
+preload/glyph_ranges=PackedStringArray()
+preload/configurations=PackedStringArray()
+support_overrides/language_enabled=PackedStringArray()
+support_overrides/language_disabled=PackedStringArray()
+support_overrides/script_enabled=PackedStringArray()
+support_overrides/script_disabled=PackedStringArray()

+ 2 - 2
viewport/3d_scaling/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 ;   param=value ; assign values to parameters
 
 
-config_version=4
+config_version=5
 
 
 [application]
 [application]
 
 
@@ -18,10 +18,10 @@ be used to have a \"pixel art\" viewport for the main game area and a
 non-pixel-art viewport for HUD elements."
 non-pixel-art viewport for HUD elements."
 run/main_scene="res://hud.tscn"
 run/main_scene="res://hud.tscn"
 config/icon="res://icon.png"
 config/icon="res://icon.png"
+config/features=PackedStringArray("4.0")
 
 
 [display]
 [display]
 
 
-window/dpi/allow_hidpi=true
 window/stretch/mode="2d"
 window/stretch/mode="2d"
 window/stretch/aspect="expand"
 window/stretch/aspect="expand"
 
 

+ 1 - 1
viewport/dynamic_split_screen/camera_controller.gd

@@ -21,7 +21,7 @@ extends Node3D
 
 
 @export var max_separation: float = 20.0
 @export var max_separation: float = 20.0
 @export var split_line_thickness: float = 3.0
 @export var split_line_thickness: float = 3.0
-@export var split_line_color: Color, RGBA = Color.BLACK
+@export var split_line_color: Color = Color.BLACK
 @export var adaptive_split_line_thickness: bool = true
 @export var adaptive_split_line_thickness: bool = true
 
 
 @onready var player1 = $"../Player1"
 @onready var player1 = $"../Player1"

+ 9 - 17
viewport/dynamic_split_screen/default_env.tres

@@ -1,22 +1,14 @@
-[gd_resource type="Environment" load_steps=2 format=2]
+[gd_resource type="Environment" load_steps=3 format=3 uid="uid://cs2mpcwx6q2bp"]
 
 
-[sub_resource type="Sky" id=1]
-ground_bottom_color = Color( 0.839216, 0.917647, 0.980392, 1 )
-ground_horizon_color = Color( 0.839216, 0.917647, 0.980392, 1 )
+[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_16la2"]
+sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+
+[sub_resource type="Sky" id="Sky_i64ko"]
+sky_material = SubResource( "ProceduralSkyMaterial_16la2" )
 
 
 [resource]
 [resource]
 background_mode = 2
 background_mode = 2
-background_sky = SubResource( 1 )
-ambient_light_color = Color( 0.560784, 0.560784, 0.560784, 1 )
-ambient_light_sky_contribution = 0.3
-fog_color = Color( 1, 1, 1, 1 )
-fog_sun_color = Color( 1, 1, 1, 1 )
-fog_depth_enabled = false
-fog_depth_begin = 400.0
-fog_depth_end = 1000.0
-fog_depth_curve = 0.287175
-fog_height_min = 2.0
+sky = SubResource( "Sky_i64ko" )
 tonemap_mode = 2
 tonemap_mode = 2
-tonemap_white = 16.0
-dof_blur_far_distance = 416.97
-glow_intensity = 0.1
+glow_enabled = true

+ 13 - 15
viewport/dynamic_split_screen/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://dn1s0i63e08jh"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://icon.png"
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 8 - 8
viewport/dynamic_split_screen/player.gd

@@ -2,15 +2,15 @@ extends CharacterBody3D
 
 
 # Moves the player
 # Moves the player
 
 
-@export var player_id: int, 1, 2 = 1
+@export_range(1, 2) var player_id: int = 1
 @export var walk_speed: float = 20.0
 @export var walk_speed: float = 20.0
 
 
 
 
 func _physics_process(_delta):
 func _physics_process(_delta):
-	var velocity = Vector3.ZERO
-	velocity.z = -Input.get_action_strength("move_up_player" + str(player_id))
-	velocity.z += Input.get_action_strength("move_down_player" + str(player_id))
-	velocity.x = -Input.get_action_strength("move_left_player" + str(player_id))
-	velocity.x +=  Input.get_action_strength("move_right_player" + str(player_id))
-
-	move_and_slide(velocity.normalized() * walk_speed)
+	#var velocity = Vector3.ZERO
+	velocity.x = Input.get_action_strength("move_right_player" + str(player_id))
+	velocity.x -= Input.get_action_strength("move_left_player" + str(player_id))
+	velocity.z = Input.get_action_strength("move_down_player" + str(player_id))
+	velocity.z -= Input.get_action_strength("move_up_player" + str(player_id))
+	velocity = velocity.normalized() * walk_speed
+	move_and_slide()

+ 2 - 1
viewport/dynamic_split_screen/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 ;   param=value ; assign values to parameters
 
 
-config_version=4
+config_version=5
 
 
 [application]
 [application]
 
 
@@ -15,6 +15,7 @@ config/description="This sample project showcases an implementation of dynamic
 split screen, also called Voronoi split screen, using GDSL."
 split screen, also called Voronoi split screen, using GDSL."
 run/main_scene="res://split_screen.tscn"
 run/main_scene="res://split_screen.tscn"
 config/icon="res://icon.png"
 config/icon="res://icon.png"
+config/features=PackedStringArray("4.0")
 
 
 [debug]
 [debug]
 
 

+ 278 - 312
viewport/dynamic_split_screen/split_screen.tscn

@@ -1,13 +1,25 @@
-[gd_scene load_steps=58 format=2]
+[gd_scene load_steps=60 format=3 uid="uid://dksa68cph6y4b"]
 
 
-[ext_resource path="res://default_env.tres" type="Environment" id=1]
-[ext_resource path="res://camera_controller.gd" type="Script" id=2]
-[ext_resource path="res://split_screen.gdshader" type="Shader" id=3]
-[ext_resource path="res://icon.png" type="Texture2D" id=4]
-[ext_resource path="res://player.gd" type="Script" id=5]
+[ext_resource type="Script" path="res://camera_controller.gd" id="2"]
+[ext_resource type="Shader" path="res://split_screen.gdshader" id="3"]
+[ext_resource type="Texture2D" uid="uid://dn1s0i63e08jh" path="res://icon.png" id="4"]
+[ext_resource type="Script" path="res://player.gd" id="5"]
 
 
-[sub_resource type="ShaderMaterial" id=1]
-shader = ExtResource( 3 )
+[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_16la2"]
+sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+
+[sub_resource type="Sky" id="Sky_i64ko"]
+sky_material = SubResource( "ProceduralSkyMaterial_16la2" )
+
+[sub_resource type="Environment" id="Environment_vdrvu"]
+background_mode = 2
+sky = SubResource( "Sky_i64ko" )
+tonemap_mode = 2
+glow_enabled = true
+
+[sub_resource type="ShaderMaterial" id="1"]
+shader = ExtResource( "3" )
 shader_param/viewport_size = null
 shader_param/viewport_size = null
 shader_param/split_active = null
 shader_param/split_active = null
 shader_param/player1_position = null
 shader_param/player1_position = null
@@ -15,718 +27,672 @@ shader_param/player2_position = null
 shader_param/split_line_thickness = null
 shader_param/split_line_thickness = null
 shader_param/split_line_color = null
 shader_param/split_line_color = null
 
 
-[sub_resource type="CapsuleMesh" id=2]
+[sub_resource type="CapsuleMesh" id="2"]
+radius = 0.375
+height = 1.75
 
 
-[sub_resource type="StandardMaterial3D" id=3]
+[sub_resource type="StandardMaterial3D" id="3"]
 albedo_color = Color(0.933333, 0.0784314, 0.0784314, 1)
 albedo_color = Color(0.933333, 0.0784314, 0.0784314, 1)
 
 
-[sub_resource type="CapsuleShape3D" id=4]
-radius = 1.00505
+[sub_resource type="CapsuleShape3D" id="4"]
+radius = 0.375
+height = 1.75
 
 
-[sub_resource type="StandardMaterial3D" id=5]
+[sub_resource type="StandardMaterial3D" id="5"]
 albedo_color = Color(0.0784314, 0.411765, 0.933333, 1)
 albedo_color = Color(0.0784314, 0.411765, 0.933333, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=6]
+[sub_resource type="StandardMaterial3D" id="6"]
 
 
-[sub_resource type="PlaneMesh" id=7]
-material = SubResource( 6 )
+[sub_resource type="PlaneMesh" id="7"]
+material = SubResource( "6" )
 size = Vector2(200, 200)
 size = Vector2(200, 200)
 
 
-[sub_resource type="BoxShape3D" id=8]
+[sub_resource type="BoxShape3D" id="8"]
 
 
-[sub_resource type="BoxShape3D" id=9]
+[sub_resource type="BoxShape3D" id="9"]
 
 
-[sub_resource type="StandardMaterial3D" id=10]
+[sub_resource type="StandardMaterial3D" id="10"]
 albedo_color = Color(0.986259, 0.925681, 0.86168, 1)
 albedo_color = Color(0.986259, 0.925681, 0.86168, 1)
 
 
-[sub_resource type="BoxMesh" id=11]
+[sub_resource type="BoxMesh" id="11"]
 
 
-[sub_resource type="StandardMaterial3D" id=12]
+[sub_resource type="StandardMaterial3D" id="12"]
 albedo_color = Color(0.0157246, 0.614518, 0.655769, 1)
 albedo_color = Color(0.0157246, 0.614518, 0.655769, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=13]
+[sub_resource type="StandardMaterial3D" id="13"]
 albedo_color = Color(0.763619, 0.81656, 0.8189, 1)
 albedo_color = Color(0.763619, 0.81656, 0.8189, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=14]
+[sub_resource type="StandardMaterial3D" id="14"]
 albedo_color = Color(0.838479, 0.225506, 0.7848, 1)
 albedo_color = Color(0.838479, 0.225506, 0.7848, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=15]
+[sub_resource type="StandardMaterial3D" id="15"]
 albedo_color = Color(0.306646, 0.197984, 0.175443, 1)
 albedo_color = Color(0.306646, 0.197984, 0.175443, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=16]
+[sub_resource type="StandardMaterial3D" id="16"]
 albedo_color = Color(0.051961, 0.476168, 0.381371, 1)
 albedo_color = Color(0.051961, 0.476168, 0.381371, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=17]
+[sub_resource type="StandardMaterial3D" id="17"]
 albedo_color = Color(0.817832, 0.686439, 0.434, 1)
 albedo_color = Color(0.817832, 0.686439, 0.434, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=18]
+[sub_resource type="StandardMaterial3D" id="18"]
 albedo_color = Color(0.646348, 0.679158, 0.870667, 1)
 albedo_color = Color(0.646348, 0.679158, 0.870667, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=19]
+[sub_resource type="StandardMaterial3D" id="19"]
 albedo_color = Color(0.876495, 0.921738, 0.526445, 1)
 albedo_color = Color(0.876495, 0.921738, 0.526445, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=20]
+[sub_resource type="StandardMaterial3D" id="20"]
 albedo_color = Color(0.308703, 0.873857, 0.0555805, 1)
 albedo_color = Color(0.308703, 0.873857, 0.0555805, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=21]
+[sub_resource type="StandardMaterial3D" id="21"]
 albedo_color = Color(0.643844, 0.83117, 0.845126, 1)
 albedo_color = Color(0.643844, 0.83117, 0.845126, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=22]
+[sub_resource type="StandardMaterial3D" id="22"]
 albedo_color = Color(0.355191, 0.82697, 0.732479, 1)
 albedo_color = Color(0.355191, 0.82697, 0.732479, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=23]
+[sub_resource type="StandardMaterial3D" id="23"]
 albedo_color = Color(0.55911, 0.179656, 0.231, 1)
 albedo_color = Color(0.55911, 0.179656, 0.231, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=24]
+[sub_resource type="StandardMaterial3D" id="24"]
 albedo_color = Color(0.851414, 0.687831, 0.558395, 1)
 albedo_color = Color(0.851414, 0.687831, 0.558395, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=25]
+[sub_resource type="StandardMaterial3D" id="25"]
 albedo_color = Color(0.641439, 0.29455, 0.0790996, 1)
 albedo_color = Color(0.641439, 0.29455, 0.0790996, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=26]
+[sub_resource type="StandardMaterial3D" id="26"]
 albedo_color = Color(0.913605, 0.527365, 0.0273088, 1)
 albedo_color = Color(0.913605, 0.527365, 0.0273088, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=27]
+[sub_resource type="StandardMaterial3D" id="27"]
 albedo_color = Color(0.624077, 0.38607, 0.437502, 1)
 albedo_color = Color(0.624077, 0.38607, 0.437502, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=28]
+[sub_resource type="StandardMaterial3D" id="28"]
 albedo_color = Color(0.131713, 0.338535, 0.755734, 1)
 albedo_color = Color(0.131713, 0.338535, 0.755734, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=29]
+[sub_resource type="StandardMaterial3D" id="29"]
 albedo_color = Color(0.276686, 0.333996, 0.828323, 1)
 albedo_color = Color(0.276686, 0.333996, 0.828323, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=30]
+[sub_resource type="StandardMaterial3D" id="30"]
 albedo_color = Color(0.541099, 0.438874, 0.712908, 1)
 albedo_color = Color(0.541099, 0.438874, 0.712908, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=31]
+[sub_resource type="StandardMaterial3D" id="31"]
 albedo_color = Color(0.380535, 0.803732, 0.209771, 1)
 albedo_color = Color(0.380535, 0.803732, 0.209771, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=32]
+[sub_resource type="StandardMaterial3D" id="32"]
 albedo_color = Color(0.126314, 0.709734, 0.0164386, 1)
 albedo_color = Color(0.126314, 0.709734, 0.0164386, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=33]
+[sub_resource type="StandardMaterial3D" id="33"]
 albedo_color = Color(0.49361, 0.468504, 0.157615, 1)
 albedo_color = Color(0.49361, 0.468504, 0.157615, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=34]
+[sub_resource type="StandardMaterial3D" id="34"]
 albedo_color = Color(0.274165, 0.942253, 0.849562, 1)
 albedo_color = Color(0.274165, 0.942253, 0.849562, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=35]
+[sub_resource type="StandardMaterial3D" id="35"]
 albedo_color = Color(0.347486, 0.584437, 0.225516, 1)
 albedo_color = Color(0.347486, 0.584437, 0.225516, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=36]
+[sub_resource type="StandardMaterial3D" id="36"]
 albedo_color = Color(0.225798, 0.311725, 0.309325, 1)
 albedo_color = Color(0.225798, 0.311725, 0.309325, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=37]
+[sub_resource type="StandardMaterial3D" id="37"]
 albedo_color = Color(0.842594, 0.892209, 0.0356995, 1)
 albedo_color = Color(0.842594, 0.892209, 0.0356995, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=38]
+[sub_resource type="StandardMaterial3D" id="38"]
 albedo_color = Color(0.92367, 0.171486, 0.408749, 1)
 albedo_color = Color(0.92367, 0.171486, 0.408749, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=39]
+[sub_resource type="StandardMaterial3D" id="39"]
 albedo_color = Color(0.336233, 0.653918, 0.387106, 1)
 albedo_color = Color(0.336233, 0.653918, 0.387106, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=40]
+[sub_resource type="StandardMaterial3D" id="40"]
 albedo_color = Color(0.607486, 0.479636, 0.586784, 1)
 albedo_color = Color(0.607486, 0.479636, 0.586784, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=41]
+[sub_resource type="StandardMaterial3D" id="41"]
 albedo_color = Color(0.927793, 0.626894, 0.208025, 1)
 albedo_color = Color(0.927793, 0.626894, 0.208025, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=42]
+[sub_resource type="StandardMaterial3D" id="42"]
 albedo_color = Color(0.575574, 0.410205, 0.327027, 1)
 albedo_color = Color(0.575574, 0.410205, 0.327027, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=43]
+[sub_resource type="StandardMaterial3D" id="43"]
 albedo_color = Color(0.0871603, 0.700764, 0.28863, 1)
 albedo_color = Color(0.0871603, 0.700764, 0.28863, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=44]
+[sub_resource type="StandardMaterial3D" id="44"]
 albedo_color = Color(0.866886, 0.35821, 0.682459, 1)
 albedo_color = Color(0.866886, 0.35821, 0.682459, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=45]
+[sub_resource type="StandardMaterial3D" id="45"]
 albedo_color = Color(0.255698, 0.875034, 0.425944, 1)
 albedo_color = Color(0.255698, 0.875034, 0.425944, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=46]
+[sub_resource type="StandardMaterial3D" id="46"]
 albedo_color = Color(0.28945, 0.951987, 0.343104, 1)
 albedo_color = Color(0.28945, 0.951987, 0.343104, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=47]
+[sub_resource type="StandardMaterial3D" id="47"]
 albedo_color = Color(0.243248, 0.0532221, 0.411054, 1)
 albedo_color = Color(0.243248, 0.0532221, 0.411054, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=48]
+[sub_resource type="StandardMaterial3D" id="48"]
 albedo_color = Color(0.362858, 0.765753, 0.257076, 1)
 albedo_color = Color(0.362858, 0.765753, 0.257076, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=49]
+[sub_resource type="StandardMaterial3D" id="49"]
 albedo_color = Color(0.0804409, 0.255526, 0.951721, 1)
 albedo_color = Color(0.0804409, 0.255526, 0.951721, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=50]
+[sub_resource type="StandardMaterial3D" id="50"]
 albedo_color = Color(0.0437972, 0.745342, 0.18698, 1)
 albedo_color = Color(0.0437972, 0.745342, 0.18698, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=51]
+[sub_resource type="StandardMaterial3D" id="51"]
 albedo_color = Color(0.770645, 0.287346, 0.739309, 1)
 albedo_color = Color(0.770645, 0.287346, 0.739309, 1)
 
 
-[sub_resource type="StandardMaterial3D" id=52]
+[sub_resource type="StandardMaterial3D" id="52"]
 albedo_color = Color(0.791675, 0.946163, 0.317723, 1)
 albedo_color = Color(0.791675, 0.946163, 0.317723, 1)
 
 
 [node name="World3D" type="Node3D"]
 [node name="World3D" type="Node3D"]
 
 
-[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
-environment = ExtResource( 1 )
-
-[node name="DirectionalLight3D" type="DirectionalLight3D" parent="WorldEnvironment"]
-transform = Transform3D(1, 0, 0, 0, -0.818651, 0.574291, 0, -0.574291, -0.818651, 0, 70.567, -72.3668)
+[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
+transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0)
 shadow_enabled = true
 shadow_enabled = true
-shadow_color = Color(0.6, 0.6, 0.6, 1)
+directional_shadow_split_3 = 0.25
+directional_shadow_blend_splits = true
+directional_shadow_max_distance = 50.0
+
+[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
+environment = SubResource( "Environment_vdrvu" )
 
 
 [node name="Cameras" type="Node3D" parent="."]
 [node name="Cameras" type="Node3D" parent="."]
-script = ExtResource( 2 )
+script = ExtResource( "2" )
+max_separation = 10.0
 
 
 [node name="View" type="TextureRect" parent="Cameras"]
 [node name="View" type="TextureRect" parent="Cameras"]
-material = SubResource( 1 )
+material = SubResource( "1" )
 anchor_right = 1.0
 anchor_right = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-texture = ExtResource( 4 )
-expand = true
+texture = ExtResource( "4" )
 __meta__ = {
 __meta__ = {
 "_edit_use_anchors_": false
 "_edit_use_anchors_": false
 }
 }
 
 
 [node name="Viewport1" type="SubViewport" parent="Cameras"]
 [node name="Viewport1" type="SubViewport" parent="Cameras"]
-size = Vector2(100, 100)
 msaa = 2
 msaa = 2
-usage = 3
-render_target_v_flip = true
+size = Vector2i(100, 100)
 render_target_update_mode = 3
 render_target_update_mode = 3
 
 
 [node name="Camera1" type="Camera3D" parent="Cameras/Viewport1"]
 [node name="Camera1" type="Camera3D" parent="Cameras/Viewport1"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 20, 0)
+transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 10, 0)
 current = true
 current = true
 
 
 [node name="Viewport2" type="SubViewport" parent="Cameras"]
 [node name="Viewport2" type="SubViewport" parent="Cameras"]
-size = Vector2(100, 100)
 msaa = 2
 msaa = 2
-usage = 3
-render_target_v_flip = true
+size = Vector2i(100, 100)
 render_target_update_mode = 3
 render_target_update_mode = 3
 
 
 [node name="Camera2" type="Camera3D" parent="Cameras/Viewport2"]
 [node name="Camera2" type="Camera3D" parent="Cameras/Viewport2"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 20, 0)
+transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 10, 0)
 current = true
 current = true
 
 
 [node name="Player1" type="CharacterBody3D" parent="."]
 [node name="Player1" type="CharacterBody3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.25, 0)
-script = ExtResource( 5 )
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0)
+script = ExtResource( "5" )
 
 
 [node name="Mesh" type="MeshInstance3D" parent="Player1"]
 [node name="Mesh" type="MeshInstance3D" parent="Player1"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
-mesh = SubResource( 2 )
-surface_material_override/0 = SubResource( 3 )
+mesh = SubResource( "2" )
+surface_material_override/0 = SubResource( "3" )
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Player1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Player1"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
-shape = SubResource( 4 )
+shape = SubResource( "4" )
 
 
 [node name="Player2" type="CharacterBody3D" parent="."]
 [node name="Player2" type="CharacterBody3D" parent="."]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.18358, 1.25, 3.01882)
-script = ExtResource( 5 )
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.184, 0.875, 3.019)
+script = ExtResource( "5" )
 player_id = 2
 player_id = 2
 
 
 [node name="Mesh" type="MeshInstance3D" parent="Player2"]
 [node name="Mesh" type="MeshInstance3D" parent="Player2"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
-mesh = SubResource( 2 )
-surface_material_override/0 = SubResource( 5 )
+mesh = SubResource( "2" )
+surface_material_override/0 = SubResource( "5" )
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Player2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Player2"]
-transform = Transform3D(1, 0, 0, 0, -4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0)
-shape = SubResource( 4 )
+shape = SubResource( "4" )
 
 
 [node name="Ground" type="StaticBody3D" parent="."]
 [node name="Ground" type="StaticBody3D" parent="."]
 
 
 [node name="Mesh" type="MeshInstance3D" parent="Ground"]
 [node name="Mesh" type="MeshInstance3D" parent="Ground"]
 transform = Transform3D(20, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0)
 transform = Transform3D(20, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0)
-mesh = SubResource( 7 )
-surface_material_override/0 = null
+mesh = SubResource( "7" )
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Ground"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Ground"]
 transform = Transform3D(200, 0, 0, 0, 1, 0, 0, 0, 200, 0, -1, 0)
 transform = Transform3D(200, 0, 0, 0, 1, 0, 0, 0, 200, 0, -1, 0)
-shape = SubResource( 8 )
+shape = SubResource( "8" )
 
 
 [node name="Walls" type="Node3D" parent="."]
 [node name="Walls" type="Node3D" parent="."]
 
 
 [node name="Group1" type="Node3D" parent="Walls"]
 [node name="Group1" type="Node3D" parent="Walls"]
 
 
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group1"]
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.08384, 1, -5.90156)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.04192, 0.5, -2.95078)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall1"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall1" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall1" groups=["walls"]]
-material_override = SubResource( 10 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "10" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group1"]
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.3812, 1, -2.68735)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.1906, 0.5, -1.34368)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall2"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall2" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall2" groups=["walls"]]
-material_override = SubResource( 12 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "12" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group1"]
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99091, 1, -13.3028)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.49545, 0.5, -6.6514)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall3"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall3"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall3" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall3" groups=["walls"]]
-material_override = SubResource( 13 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "13" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group1"]
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.10164, 1, 4.39061)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.55082, 0.5, 2.19531)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall4"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall4"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall4" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall4" groups=["walls"]]
-material_override = SubResource( 14 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "14" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group1"]
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.12965, 1, -9.09735)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.06483, 0.5, -4.54868)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall5"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall5"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall5" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall5" groups=["walls"]]
-material_override = SubResource( 15 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "15" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group1"]
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group1"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.99301, 1, 1.77014)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.49651, 0.5, 0.88507)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall6"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall6"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall6" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall6" groups=["walls"]]
-material_override = SubResource( 16 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "16" )
+mesh = SubResource( "11" )
 
 
 [node name="Group2" type="Node3D" parent="Walls"]
 [node name="Group2" type="Node3D" parent="Walls"]
-transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -22.59, 0, -3.1796)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 0, -2)
 
 
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group2"]
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.08384, 1, -5.90156)
+transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -0.858015, 0.5, -2.8199)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall1"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall1" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall1" groups=["walls"]]
-material_override = SubResource( 17 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "17" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group2"]
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.3812, 1, -2.68735)
+transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, 7.02869, 0.5, 0.0361555)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall2"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall2" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall2" groups=["walls"]]
-material_override = SubResource( 18 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "18" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group2"]
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99091, 1, -13.3028)
+transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -2.71223, 0.5, -6.85429)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall3"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall3"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall3" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall3" groups=["walls"]]
-material_override = SubResource( 19 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "19" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group2"]
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.10164, 1, 4.39061)
+transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -0.177408, 0.5, 2.49446)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall4"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall4"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall4" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall4" groups=["walls"]]
-material_override = SubResource( 20 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "20" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group2"]
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.12965, 1, -9.09735)
+transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, 3.44585, 0.5, -3.76612)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall5"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall5"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall5" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall5" groups=["walls"]]
-material_override = SubResource( 21 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "21" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group2"]
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group2"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.99301, 1, 1.77014)
+transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -2.88611, 0.5, 0.746109)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall6"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall6"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall6" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall6" groups=["walls"]]
-material_override = SubResource( 22 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "22" )
+mesh = SubResource( "11" )
 
 
 [node name="Group3" type="Node3D" parent="Walls"]
 [node name="Group3" type="Node3D" parent="Walls"]
-transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -12.7693, 0, 17.7449)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 9)
 
 
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group3"]
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group3"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.08384, 1, -5.90156)
+transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -3.48748, 0.5, -1.93005)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall1"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall1" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall1" groups=["walls"]]
-material_override = SubResource( 23 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "23" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group3"]
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group3"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.3812, 1, -2.68735)
+transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, 4.6471, 0.5, -3.97599)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall2"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall2" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall2" groups=["walls"]]
-material_override = SubResource( 24 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "24" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group3"]
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group3"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99091, 1, -13.3028)
+transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -7.28169, 0.5, -4.23621)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall3"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall3"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall3" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall3" groups=["walls"]]
-material_override = SubResource( 25 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "25" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group3"]
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group3"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.10164, 1, 4.39061)
+transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, 0.0502639, 0.5, 2.09362)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall4"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall4"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall4" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall4" groups=["walls"]]
-material_override = SubResource( 26 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "26" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group3"]
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group3"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.12965, 1, -9.09735)
+transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -0.449914, 0.5, -5.12252)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall5"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall5"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall5" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall5" groups=["walls"]]
-material_override = SubResource( 27 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "27" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group3"]
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group3"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.99301, 1, 1.77014)
+transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -3.17299, 0.5, 2.16026)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall6"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall6"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall6" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall6" groups=["walls"]]
-material_override = SubResource( 28 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "28" )
+mesh = SubResource( "11" )
 
 
 [node name="Group4" type="Node3D" parent="Walls"]
 [node name="Group4" type="Node3D" parent="Walls"]
-transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 14.0374, 0, 12.1476)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 0, 6)
 
 
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group4"]
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group4"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.08384, 1, -5.90156)
+transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 2.61556, 0.5, -2.40266)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall1"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall1" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall1" groups=["walls"]]
-material_override = SubResource( 29 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "29" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group4"]
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group4"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.3812, 1, -2.68735)
+transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 2.30988, 0.5, 5.97969)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall2"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall2" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall2" groups=["walls"]]
-material_override = SubResource( 30 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "30" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group4"]
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group4"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99091, 1, -13.3028)
+transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 5.88903, 0.5, -5.40246)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall3"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall3"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall3" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall3" groups=["walls"]]
-material_override = SubResource( 31 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "31" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group4"]
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group4"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.10164, 1, 4.39061)
+transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, -2.23559, 0.5, -0.128489)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall4"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall4"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall4" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall4" groups=["walls"]]
-material_override = SubResource( 32 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "32" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group4"]
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group4"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.12965, 1, -9.09735)
+transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 4.8334, 0.5, 1.4052)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall5"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall5"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall5" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall5" groups=["walls"]]
-material_override = SubResource( 33 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "33" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group4"]
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group4"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.99301, 1, 1.77014)
+transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, -1.39999, 0.5, -3.24225)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall6"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall6"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall6" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall6" groups=["walls"]]
-material_override = SubResource( 34 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "34" )
+mesh = SubResource( "11" )
 
 
 [node name="Group5" type="Node3D" parent="Walls"]
 [node name="Group5" type="Node3D" parent="Walls"]
-transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, 0.500639, 0, 27.6888)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 14)
 
 
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group5"]
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group5"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.08384, 1, -5.90156)
+transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -1.87929, 0.5, -3.04373)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall1"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall1" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall1" groups=["walls"]]
-material_override = SubResource( 35 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "35" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group5"]
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group5"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.3812, 1, -2.68735)
+transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, 6.39778, 0.5, -1.68458)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall2"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall2" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall2" groups=["walls"]]
-material_override = SubResource( 36 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "36" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group5"]
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group5"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99091, 1, -13.3028)
+transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -4.44285, 0.5, -6.669)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall3"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall3"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall3" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall3" groups=["walls"]]
-material_override = SubResource( 37 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "37" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group5"]
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group5"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.10164, 1, 4.39061)
+transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -0.234326, 0.5, 2.05526)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall4"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall4"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall4" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall4" groups=["walls"]]
-material_override = SubResource( 38 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "38" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group5"]
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group5"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.12965, 1, -9.09735)
+transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, 2.17761, 0.5, -4.76423)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall5"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall5"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall5" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall5" groups=["walls"]]
-material_override = SubResource( 39 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "39" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group5"]
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group5"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.99301, 1, 1.77014)
+transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -3.21803, 0.5, 0.834073)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall6"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall6"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall6" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall6" groups=["walls"]]
-material_override = SubResource( 40 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "40" )
+mesh = SubResource( "11" )
 
 
 [node name="Group6" type="Node3D" parent="Walls"]
 [node name="Group6" type="Node3D" parent="Walls"]
-transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 21.2586, 0, -14.244)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -7)
 
 
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group6"]
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group6"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.08384, 1, -5.90156)
+transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 1.70841, 0.5, -3.54429)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall1"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall1" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall1" groups=["walls"]]
-material_override = SubResource( 41 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "41" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group6"]
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group6"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.3812, 1, -2.68735)
+transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 5.48642, 0.5, 3.94462)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall2"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall2" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall2" groups=["walls"]]
-material_override = SubResource( 42 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "42" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group6"]
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group6"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99091, 1, -13.3028)
+transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 3.1275, 0.5, -7.7515)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall3"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall3"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall3" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall3" groups=["walls"]]
-material_override = SubResource( 43 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "43" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group6"]
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group6"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.10164, 1, 4.39061)
+transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, -1.44268, 0.5, 0.788867)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall4"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall4"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall4" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall4" groups=["walls"]]
-material_override = SubResource( 44 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "44" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group6"]
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group6"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.12965, 1, -9.09735)
+transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 5.48868, 0.5, -1.27975)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall5"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall5"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall5" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall5" groups=["walls"]]
-material_override = SubResource( 45 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "45" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group6"]
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group6"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.99301, 1, 1.77014)
+transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, -2.2137, 0.5, -2.34152)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall6"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall6"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall6" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall6" groups=["walls"]]
-material_override = SubResource( 46 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "46" )
+mesh = SubResource( "11" )
 
 
 [node name="Group7" type="Node3D" parent="Walls"]
 [node name="Group7" type="Node3D" parent="Walls"]
-transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, -8.83615, 0, -32.7996)
+transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0, -16)
 
 
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group7"]
 [node name="Wall1" type="StaticBody3D" parent="Walls/Group7"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.08384, 1, -5.90156)
+transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 1.73055, 0.5, 2.47421)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall1"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall1"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall1" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall1" groups=["walls"]]
-material_override = SubResource( 47 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "47" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group7"]
 [node name="Wall2" type="StaticBody3D" parent="Walls/Group7"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12.3812, 1, -2.68735)
+transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, -6.55531, 0.5, 1.16971)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall2"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall2"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall2" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall2" groups=["walls"]]
-material_override = SubResource( 48 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "48" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group7"]
 [node name="Wall3" type="StaticBody3D" parent="Walls/Group7"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8.99091, 1, -13.3028)
+transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 4.31798, 0.5, 6.08249)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall3"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall3"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall3" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall3" groups=["walls"]]
-material_override = SubResource( 49 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "49" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group7"]
 [node name="Wall4" type="StaticBody3D" parent="Walls/Group7"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.10164, 1, 4.39061)
+transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 0.0519707, 0.5, -2.61381)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall4"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall4"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall4" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall4" groups=["walls"]]
-material_override = SubResource( 50 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "50" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group7"]
 [node name="Wall5" type="StaticBody3D" parent="Walls/Group7"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.12965, 1, -9.09735)
+transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, -2.31492, 0.5, 4.22145)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall5"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall5"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall5" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall5" groups=["walls"]]
-material_override = SubResource( 51 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "51" )
+mesh = SubResource( "11" )
 
 
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group7"]
 [node name="Wall6" type="StaticBody3D" parent="Walls/Group7"]
-transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6.99301, 1, 1.77014)
+transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 3.04367, 0.5, -1.41234)
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall6"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall6"]
-shape = SubResource( 9 )
+shape = SubResource( "9" )
 
 
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall6" groups=["walls"]]
 [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall6" groups=["walls"]]
-material_override = SubResource( 52 )
-mesh = SubResource( 11 )
-surface_material_override/0 = null
+material_override = SubResource( "52" )
+mesh = SubResource( "11" )

+ 13 - 16
viewport/gui_in_3d/gui_3d.gd

@@ -19,15 +19,9 @@ func _ready():
 	node_area.connect(&"mouse_entered", self._mouse_entered_area)
 	node_area.connect(&"mouse_entered", self._mouse_entered_area)
 
 
 	# If the material is NOT set to use billboard settings, then avoid running billboard specific code
 	# If the material is NOT set to use billboard settings, then avoid running billboard specific code
-	if node_quad.get_surface_material(0).params_billboard_mode == 0:
+	if node_quad.get_surface_override_material(0).billboard_mode == BaseMaterial3D.BillboardMode.BILLBOARD_DISABLED:
 		set_process(false)
 		set_process(false)
 
 
-	if OS.get_current_video_driver() == OS.VIDEO_DRIVER_GLES2:
-		# Required to prevent the texture from being too dark when using GLES2.
-		# This should be left to `true` in GLES3 to prevent the texture from looking
-		# washed out there.
-		node_quad.get_surface_material(0).flags_albedo_tex_force_srgb = false
-
 
 
 func _process(_delta):
 func _process(_delta):
 	# NOTE: Remove this function if you don't plan on using billboard settings.
 	# NOTE: Remove this function if you don't plan on using billboard settings.
@@ -52,7 +46,7 @@ func _unhandled_input(event):
 	if is_mouse_event and (is_mouse_inside or is_mouse_held):
 	if is_mouse_event and (is_mouse_inside or is_mouse_held):
 		handle_mouse(event)
 		handle_mouse(event)
 	elif not is_mouse_event:
 	elif not is_mouse_event:
-		node_viewport.input(event)
+		node_viewport.push_input(event)
 
 
 
 
 # Handle mouse events inside Area3D. (Area3D.input_event had many issues with dragging)
 # Handle mouse events inside Area3D. (Area3D.input_event had many issues with dragging)
@@ -115,20 +109,23 @@ func handle_mouse(event):
 	last_mouse_pos2D = mouse_pos2D
 	last_mouse_pos2D = mouse_pos2D
 
 
 	# Finally, send the processed input event to the viewport.
 	# Finally, send the processed input event to the viewport.
-	node_viewport.input(event)
+	node_viewport.push_input(event)
 
 
 
 
 func find_mouse(global_position):
 func find_mouse(global_position):
 	var camera = get_viewport().get_camera_3d()
 	var camera = get_viewport().get_camera_3d()
-
-	# From camera center to the mouse position in the Area3D
-	var from = camera.project_ray_origin(global_position)
 	var dist = find_further_distance_to(camera.transform.origin)
 	var dist = find_further_distance_to(camera.transform.origin)
-	var to = from + camera.project_ray_normal(global_position) * dist
 
 
+	# From camera center to the mouse position in the Area3D.
+	var parameters = PhysicsRayQueryParameters3D.new()
+	parameters.from = camera.project_ray_origin(global_position)
+	parameters.to = parameters.from + camera.project_ray_normal(global_position) * dist
 
 
-	# Manually raycasts the are to find the mouse position
-	var result = get_world_3d().direct_space_state.intersect_ray(from, to, [], node_area.collision_layer,false,true) #for 3.1 changes
+	# Manually raycasts the area to find the mouse position.
+	parameters.collision_mask = node_area.collision_layer
+	parameters.collide_with_bodies = false
+	parameters.collide_with_areas = true
+	var result = get_world_3d().direct_space_state.intersect_ray(parameters)
 
 
 	if result.size() > 0:
 	if result.size() > 0:
 		return result.position
 		return result.position
@@ -156,7 +153,7 @@ func find_further_distance_to(origin):
 
 
 
 
 func rotate_area_to_billboard():
 func rotate_area_to_billboard():
-	var billboard_mode = node_quad.get_surface_material(0).params_billboard_mode
+	var billboard_mode = node_quad.get_surface_override_material(0).params_billboard_mode
 
 
 	# Try to match the area with the material's billboard setting, if enabled
 	# Try to match the area with the material's billboard setting, if enabled
 	if billboard_mode > 0:
 	if billboard_mode > 0:

+ 35 - 25
viewport/gui_in_3d/gui_in_3d.tscn

@@ -1,16 +1,28 @@
-[gd_scene load_steps=6 format=2]
+[gd_scene load_steps=9 format=3 uid="uid://0iek6ri88gkb"]
 
 
-[ext_resource path="res://gui_panel_3d.tscn" type="PackedScene" id=1]
+[ext_resource type="PackedScene" uid="uid://dvl383ispakmn" path="res://gui_panel_3d.tscn" id="1"]
 
 
-[sub_resource type="Animation" id=1]
+[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_1lgdv"]
+sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1)
+
+[sub_resource type="Sky" id="Sky_pq42j"]
+sky_material = SubResource( "ProceduralSkyMaterial_1lgdv" )
+
+[sub_resource type="Environment" id="Environment_niyks"]
+background_mode = 2
+sky = SubResource( "Sky_pq42j" )
+tonemap_mode = 2
+glow_enabled = true
+
+[sub_resource type="Animation" id="1"]
 length = 6.0
 length = 6.0
-loop = true
 tracks/0/type = "value"
 tracks/0/type = "value"
+tracks/0/imported = false
+tracks/0/enabled = true
 tracks/0/path = NodePath("Camera3D:transform")
 tracks/0/path = NodePath("Camera3D:transform")
 tracks/0/interp = 1
 tracks/0/interp = 1
 tracks/0/loop_wrap = true
 tracks/0/loop_wrap = true
-tracks/0/imported = false
-tracks/0/enabled = true
 tracks/0/keys = {
 tracks/0/keys = {
 "times": PackedFloat32Array(0, 2, 4, 6),
 "times": PackedFloat32Array(0, 2, 4, 6),
 "transitions": PackedFloat32Array(1, 1, 1, 1),
 "transitions": PackedFloat32Array(1, 1, 1, 1),
@@ -18,17 +30,20 @@ tracks/0/keys = {
 "values": [Transform3D(0.994592, 0, 0.103856, 0, 1, 0, -0.103856, 0, 0.994592, 0.465682, 0, 1.78523), Transform3D(0.962984, 0, -0.269557, 0, 1, 0, 0.269557, 0, 0.962984, -0.462237, 0, 2.41934), Transform3D(0.806599, 0, -0.591098, 0, 1, 0, 0.591098, 0, 0.806599, -1.59502, 0, 2.05358), Transform3D(0.994592, 0, 0.103856, 0, 1, 0, -0.103856, 0, 0.994592, 0.465682, 0, 1.78523)]
 "values": [Transform3D(0.994592, 0, 0.103856, 0, 1, 0, -0.103856, 0, 0.994592, 0.465682, 0, 1.78523), Transform3D(0.962984, 0, -0.269557, 0, 1, 0, 0.269557, 0, 0.962984, -0.462237, 0, 2.41934), Transform3D(0.806599, 0, -0.591098, 0, 1, 0, 0.591098, 0, 0.806599, -1.59502, 0, 2.05358), Transform3D(0.994592, 0, 0.103856, 0, 1, 0, -0.103856, 0, 0.994592, 0.465682, 0, 1.78523)]
 }
 }
 
 
-[sub_resource type="PlaneMesh" id=2]
+[sub_resource type="PlaneMesh" id="2"]
 
 
-[sub_resource type="BoxMesh" id=3]
+[sub_resource type="BoxMesh" id="3"]
 
 
-[sub_resource type="StandardMaterial3D" id=4]
+[sub_resource type="StandardMaterial3D" id="4"]
 albedo_color = Color(0.722656, 0.791992, 1, 1)
 albedo_color = Color(0.722656, 0.791992, 1, 1)
 roughness = 0.0
 roughness = 0.0
 
 
 [node name="GUIin3D" type="Node3D"]
 [node name="GUIin3D" type="Node3D"]
 
 
-[node name="GUIPanel3D" parent="." instance=ExtResource( 1 )]
+[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
+environment = SubResource( "Environment_niyks" )
+
+[node name="GUIPanel3D" parent="." instance=ExtResource( "1" )]
 
 
 [node name="Camera3D" type="Camera3D" parent="."]
 [node name="Camera3D" type="Camera3D" parent="."]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0, 0, 3)
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0, 0, 3)
@@ -43,41 +58,36 @@ omni_range = 10.0
 [node name="Camera_Move" type="AnimationPlayer" parent="."]
 [node name="Camera_Move" type="AnimationPlayer" parent="."]
 autoplay = "Move_camera"
 autoplay = "Move_camera"
 playback_speed = 0.25
 playback_speed = 0.25
-anims/Move_camera = SubResource( 1 )
+anims/Move_camera = SubResource( "1" )
 
 
 [node name="Background" type="Node3D" parent="."]
 [node name="Background" type="Node3D" parent="."]
 
 
 [node name="Wall" type="MeshInstance3D" parent="Background"]
 [node name="Wall" type="MeshInstance3D" parent="Background"]
 transform = Transform3D(4, 0, 0, 0, -1.74846e-07, -4, 0, 4, -1.74846e-07, -2.60819, 0.589247, -2.08943)
 transform = Transform3D(4, 0, 0, 0, -1.74846e-07, -4, 0, 4, -1.74846e-07, -2.60819, 0.589247, -2.08943)
-mesh = SubResource( 2 )
-surface_material_override/0 = null
+mesh = SubResource( "2" )
 
 
 [node name="Wall2" type="MeshInstance3D" parent="Background"]
 [node name="Wall2" type="MeshInstance3D" parent="Background"]
 transform = Transform3D(4, 0, 0, 0, -1.74846e-07, -4, 0, 4, -1.74846e-07, 5.08055, 0.589247, -2.08943)
 transform = Transform3D(4, 0, 0, 0, -1.74846e-07, -4, 0, 4, -1.74846e-07, 5.08055, 0.589247, -2.08943)
-mesh = SubResource( 2 )
-surface_material_override/0 = null
+mesh = SubResource( "2" )
 
 
 [node name="Wall3" type="MeshInstance3D" parent="Background"]
 [node name="Wall3" type="MeshInstance3D" parent="Background"]
 transform = Transform3D(-1.74846e-07, -4, 0, -1.74846e-07, 7.64274e-15, -4, 4, -1.74846e-07, -1.74846e-07, 9.04446, 0.589247, 1.62058)
 transform = Transform3D(-1.74846e-07, -4, 0, -1.74846e-07, 7.64274e-15, -4, 4, -1.74846e-07, -1.74846e-07, 9.04446, 0.589247, 1.62058)
-mesh = SubResource( 2 )
-surface_material_override/0 = null
+mesh = SubResource( "2" )
 
 
 [node name="Floor" type="MeshInstance3D" parent="Background"]
 [node name="Floor" type="MeshInstance3D" parent="Background"]
 transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, -2.60819, -2.68765, 1.46502)
 transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, -2.60819, -2.68765, 1.46502)
-mesh = SubResource( 2 )
-surface_material_override/0 = null
+mesh = SubResource( "2" )
 
 
 [node name="Floor2" type="MeshInstance3D" parent="Background"]
 [node name="Floor2" type="MeshInstance3D" parent="Background"]
 transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 5.08055, -2.68765, 1.46502)
 transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 5.08055, -2.68765, 1.46502)
-mesh = SubResource( 2 )
-surface_material_override/0 = null
+mesh = SubResource( "2" )
 
 
 [node name="Cube" type="MeshInstance3D" parent="Background"]
 [node name="Cube" type="MeshInstance3D" parent="Background"]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.25901, -0.598608, 0.374871)
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.25901, -0.598608, 0.374871)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )
 
 
 [node name="Cube2" type="MeshInstance3D" parent="Background"]
 [node name="Cube2" type="MeshInstance3D" parent="Background"]
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.88761, 2.01326, 0.374871)
 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.88761, 2.01326, 0.374871)
-mesh = SubResource( 3 )
-surface_material_override/0 = SubResource( 4 )
+mesh = SubResource( "3" )
+surface_material_override/0 = SubResource( "4" )

+ 108 - 66
viewport/gui_in_3d/gui_panel_3d.tscn

@@ -1,33 +1,30 @@
-[gd_scene load_steps=7 format=2]
+[gd_scene load_steps=7 format=3 uid="uid://dvl383ispakmn"]
 
 
-[ext_resource path="res://gui_3d.gd" type="Script" id=1]
-[ext_resource path="res://icon.png" type="Texture2D" id=2]
+[ext_resource type="Script" path="res://gui_3d.gd" id="1"]
+[ext_resource type="Texture2D" uid="uid://dn04dlkwccjff" path="res://icon.png" id="2"]
 
 
-[sub_resource type="QuadMesh" id=1]
+[sub_resource type="QuadMesh" id="1"]
 size = Vector2(3, 2)
 size = Vector2(3, 2)
 
 
-[sub_resource type="ViewportTexture" id=2]
+[sub_resource type="ViewportTexture" id="2"]
 viewport_path = NodePath("SubViewport")
 viewport_path = NodePath("SubViewport")
 
 
-[sub_resource type="StandardMaterial3D" id=3]
+[sub_resource type="StandardMaterial3D" id="3"]
 resource_local_to_scene = true
 resource_local_to_scene = true
-flags_transparent = true
-flags_unshaded = true
-flags_albedo_tex_force_srgb = true
-albedo_texture = SubResource( 2 )
+transparency = 1
+shading_mode = 0
+albedo_texture = SubResource( "2" )
 
 
-[sub_resource type="BoxShape3D" id=4]
-extents = Vector3(1.5, 1, 0.05)
+[sub_resource type="BoxShape3D" id="4"]
+size = Vector3(3, 2, 0.1)
 
 
 [node name="GUIPanel3D" type="Node3D"]
 [node name="GUIPanel3D" type="Node3D"]
-script = ExtResource( 1 )
+script = ExtResource( "1" )
 
 
 [node name="SubViewport" type="SubViewport" parent="."]
 [node name="SubViewport" type="SubViewport" parent="."]
-size = Vector2(280, 180)
-hdr = false
-usage = 0
-render_target_v_flip = true
-render_target_update_mode = 3
+gui_embed_subwindows = true
+size = Vector2i(280, 180)
+render_target_update_mode = 4
 
 
 [node name="GUI" type="Control" parent="SubViewport"]
 [node name="GUI" type="Control" parent="SubViewport"]
 offset_right = 280.0
 offset_right = 280.0
@@ -38,74 +35,119 @@ mouse_filter = 1
 anchor_right = 1.0
 anchor_right = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
 
 
-[node name="Label" type="Label" parent="SubViewport/GUI/Panel"]
-offset_left = 44.0
-offset_top = 27.0
-offset_right = 121.0
-offset_bottom = 41.0
+[node name="VBoxContainer" type="VBoxContainer" parent="SubViewport/GUI/Panel"]
+anchor_bottom = 1.0
+offset_left = 10.0
+offset_top = 10.0
+offset_right = 150.0
+offset_bottom = -10.0
+grow_vertical = 2
+theme_override_constants/separation = 13
+__meta__ = {
+"_edit_layout_mode": 1,
+"_edit_use_custom_anchors": false
+}
+
+[node name="Label" type="Label" parent="SubViewport/GUI/Panel/VBoxContainer"]
+offset_right = 140.0
+offset_bottom = 26.0
 text = "Hello world!"
 text = "Hello world!"
-
-[node name="Button" type="Button" parent="SubViewport/GUI/Panel"]
-offset_left = 14.0
-offset_top = 46.0
-offset_right = 154.0
-offset_bottom = 74.0
+horizontal_alignment = 1
+__meta__ = {
+"_edit_layout_mode": 0,
+"_edit_use_custom_anchors": false
+}
+
+[node name="Button" type="Button" parent="SubViewport/GUI/Panel/VBoxContainer"]
+offset_top = 39.0
+offset_right = 140.0
+offset_bottom = 70.0
 text = "A button!"
 text = "A button!"
 
 
-[node name="TextEdit" type="LineEdit" parent="SubViewport/GUI/Panel"]
-offset_left = 14.0
-offset_top = 87.0
-offset_right = 154.0
-offset_bottom = 111.0
+[node name="TextEdit" type="LineEdit" parent="SubViewport/GUI/Panel/VBoxContainer"]
+offset_top = 83.0
+offset_right = 140.0
+offset_bottom = 114.0
 
 
-[node name="HSlider" type="HSlider" parent="SubViewport/GUI/Panel"]
-offset_left = 14.0
-offset_top = 118.0
-offset_right = 154.0
+[node name="HSlider" type="HSlider" parent="SubViewport/GUI/Panel/VBoxContainer"]
+offset_top = 127.0
+offset_right = 140.0
 offset_bottom = 143.0
 offset_bottom = 143.0
 ticks_on_borders = true
 ticks_on_borders = true
 
 
 [node name="ColorRect" type="ColorRect" parent="SubViewport/GUI/Panel"]
 [node name="ColorRect" type="ColorRect" parent="SubViewport/GUI/Panel"]
-offset_left = 180.0
-offset_top = 26.0
-offset_right = 244.0
-offset_bottom = 90.0
+anchor_left = 1.0
+anchor_right = 1.0
+offset_left = -110.0
+offset_top = 16.0
+offset_right = -46.0
+offset_bottom = 80.0
 color = Color(1, 0, 0, 1)
 color = Color(1, 0, 0, 1)
+__meta__ = {
+"_edit_layout_mode": 1,
+"_edit_use_custom_anchors": true
+}
 
 
 [node name="TextureRect" type="TextureRect" parent="SubViewport/GUI/Panel"]
 [node name="TextureRect" type="TextureRect" parent="SubViewport/GUI/Panel"]
-anchor_left = 0.5
-anchor_top = 0.5
-anchor_right = 0.5
-anchor_bottom = 0.5
-offset_left = 52.0
-offset_top = -52.0
-offset_right = 92.0
-offset_bottom = -12.0
-texture = ExtResource( 2 )
-expand = true
+anchor_left = 1.0
+anchor_right = 1.0
+offset_left = -88.0
+offset_top = 38.0
+offset_right = -48.0
+offset_bottom = 78.0
+grow_horizontal = 2
+grow_vertical = 2
+texture = ExtResource( "2" )
+__meta__ = {
+"_edit_layout_mode": 1,
+"_edit_use_custom_anchors": true
+}
 
 
 [node name="VSlider" type="VSlider" parent="SubViewport/GUI/Panel"]
 [node name="VSlider" type="VSlider" parent="SubViewport/GUI/Panel"]
-offset_left = 260.0
-offset_top = 26.0
-offset_right = 276.0
-offset_bottom = 166.0
+anchor_left = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = -25.0
+offset_top = 5.0
+offset_right = -5.0
+offset_bottom = -5.0
+grow_horizontal = 0
+grow_vertical = 2
+__meta__ = {
+"_edit_layout_mode": 1,
+"_edit_use_custom_anchors": false
+}
 
 
 [node name="OptionButton" type="OptionButton" parent="SubViewport/GUI/Panel"]
 [node name="OptionButton" type="OptionButton" parent="SubViewport/GUI/Panel"]
-offset_left = 170.0
-offset_top = 111.0
-offset_right = 252.0
-offset_bottom = 165.0
-text = "Item 0"
-items = ["Item 0", null, false, 0, null, "Item 1", null, false, 1, null, "Item 2", null, false, 2, null]
-selected = 0
+anchor_left = 1.0
+anchor_top = 1.0
+anchor_right = 1.0
+anchor_bottom = 1.0
+offset_left = -120.0
+offset_top = -80.0
+offset_right = -28.0
+offset_bottom = -26.0
+grow_horizontal = 0
+grow_vertical = 0
+item_count = 3
+popup/item_0/text = "Item 0"
+popup/item_0/id = 0
+popup/item_1/text = "Item 1"
+popup/item_1/id = 1
+popup/item_2/text = "Item 2"
+popup/item_2/id = 2
+__meta__ = {
+"_edit_layout_mode": 1,
+"_edit_use_custom_anchors": false
+}
 
 
 [node name="Quad" type="MeshInstance3D" parent="."]
 [node name="Quad" type="MeshInstance3D" parent="."]
-mesh = SubResource( 1 )
-surface_material_override/0 = SubResource( 3 )
+mesh = SubResource( "1" )
+surface_material_override/0 = SubResource( "3" )
 
 
 [node name="Area3D" type="Area3D" parent="Quad"]
 [node name="Area3D" type="Area3D" parent="Quad"]
 collision_layer = 2
 collision_layer = 2
 input_capture_on_drag = true
 input_capture_on_drag = true
 
 
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Quad/Area3D"]
 [node name="CollisionShape3D" type="CollisionShape3D" parent="Quad/Area3D"]
-shape = SubResource( 4 )
+shape = SubResource( "4" )

+ 13 - 15
viewport/gui_in_3d/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://dn04dlkwccjff"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://icon.png"
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 2 - 1
viewport/gui_in_3d/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 ;   param=value ; assign values to parameters
 
 
-config_version=4
+config_version=5
 
 
 [application]
 [application]
 
 
@@ -15,6 +15,7 @@ config/description="A demo showing a GUI instanced within a 3D scene using viewp
 as well as forwarding mouse and keyboard input to the GUI."
 as well as forwarding mouse and keyboard input to the GUI."
 run/main_scene="res://gui_in_3d.tscn"
 run/main_scene="res://gui_in_3d.tscn"
 config/icon="res://icon.png"
 config/icon="res://icon.png"
+config/features=PackedStringArray("4.0")
 
 
 [gdnative]
 [gdnative]
 
 

+ 13 - 15
viewport/screen_capture/icon.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"
+type="CompressedTexture2D"
+uid="uid://dmk74aqn56w88"
+path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://icon.png"
 source_file="res://icon.png"
-dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"]
+dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 13 - 15
viewport/screen_capture/mountains.png.import

@@ -1,8 +1,9 @@
 [remap]
 [remap]
 
 
 importer="texture"
 importer="texture"
-type="StreamTexture2D"
-path="res://.godot/imported/mountains.png-03f302fbd9195711fc86ea8f28ca435e.stex"
+type="CompressedTexture2D"
+uid="uid://tgwx64g0plcn"
+path="res://.godot/imported/mountains.png-03f302fbd9195711fc86ea8f28ca435e.ctex"
 metadata={
 metadata={
 "vram_texture": false
 "vram_texture": false
 }
 }
@@ -10,26 +11,23 @@ metadata={
 [deps]
 [deps]
 
 
 source_file="res://mountains.png"
 source_file="res://mountains.png"
-dest_files=["res://.godot/imported/mountains.png-03f302fbd9195711fc86ea8f28ca435e.stex"]
+dest_files=["res://.godot/imported/mountains.png-03f302fbd9195711fc86ea8f28ca435e.ctex"]
 
 
 [params]
 [params]
 
 
 compress/mode=0
 compress/mode=0
 compress/lossy_quality=0.7
 compress/lossy_quality=0.7
-compress/hdr_mode=0
+compress/hdr_compression=1
 compress/bptc_ldr=0
 compress/bptc_ldr=0
 compress/normal_map=0
 compress/normal_map=0
-flags/repeat=0
-flags/filter=true
-flags/mipmaps=false
-flags/anisotropic=false
-flags/srgb=2
+compress/channel_pack=0
+mipmaps/generate=false
+mipmaps/limit=-1
+roughness/mode=0
+roughness/src_normal=""
 process/fix_alpha_border=true
 process/fix_alpha_border=true
 process/premult_alpha=false
 process/premult_alpha=false
-process/HDR_as_SRGB=false
-process/invert_color=false
 process/normal_map_invert_y=false
 process/normal_map_invert_y=false
-stream=false
-size_limit=0
-detect_3d=true
-svg/scale=1.0
+process/hdr_as_srgb=false
+process/size_limit=0
+detect_3d/compress_to=1

+ 2 - 3
viewport/screen_capture/project.godot

@@ -6,7 +6,7 @@
 ;   [section] ; section goes between []
 ;   [section] ; section goes between []
 ;   param=value ; assign values to parameters
 ;   param=value ; assign values to parameters
 
 
-config_version=4
+config_version=5
 
 
 [application]
 [application]
 
 
@@ -14,6 +14,7 @@ config/name="Screen Capture"
 config/description="An example showing how to take screenshots of the screen."
 config/description="An example showing how to take screenshots of the screen."
 run/main_scene="res://screen_capture.tscn"
 run/main_scene="res://screen_capture.tscn"
 config/icon="res://icon.png"
 config/icon="res://icon.png"
+config/features=PackedStringArray("4.0")
 
 
 [debug]
 [debug]
 
 
@@ -21,9 +22,7 @@ gdscript/warnings/return_value_discarded=false
 
 
 [display]
 [display]
 
 
-window/dpi/allow_hidpi=true
 window/stretch/mode="2d"
 window/stretch/mode="2d"
-window/stretch/aspect="keep"
 
 
 [gdnative]
 [gdnative]
 
 

+ 1 - 8
viewport/screen_capture/screen_capture.gd

@@ -3,15 +3,8 @@ extends Node
 @onready var captured_image = $CapturedImage
 @onready var captured_image = $CapturedImage
 
 
 func _on_CaptureButton_pressed():
 func _on_CaptureButton_pressed():
-	get_viewport().set_clear_mode(SubViewport.CLEAR_MODE_ONLY_NEXT_FRAME)
-	# Wait until the frame has finished before getting the texture.
-	await RenderingServer.frame_post_draw
-
 	# Retrieve the captured image.
 	# Retrieve the captured image.
-	var img = get_viewport().get_texture().get_data()
-
-	# Flip it on the y-axis (because it's flipped).
-	img.flip_y()
+	var img = get_viewport().get_texture().get_image()
 
 
 	# Create a texture for it.
 	# Create a texture for it.
 	var tex = ImageTexture.new()
 	var tex = ImageTexture.new()

+ 22 - 20
viewport/screen_capture/screen_capture.tscn

@@ -1,39 +1,41 @@
-[gd_scene load_steps=3 format=2]
+[gd_scene load_steps=3 format=3 uid="uid://d10mveb7aokfl"]
 
 
-[ext_resource path="res://screen_capture.gd" type="Script" id=1]
-[ext_resource path="res://mountains.png" type="Texture2D" id=2]
+[ext_resource type="Script" path="res://screen_capture.gd" id="1"]
+[ext_resource type="Texture2D" uid="uid://tgwx64g0plcn" path="res://mountains.png" id="2"]
 
 
 [node name="ScreenCapture" type="Control"]
 [node name="ScreenCapture" type="Control"]
-offset_right = 40.0
-offset_bottom = 40.0
-script = ExtResource( 1 )
+anchor_right = 1.0
+anchor_bottom = 1.0
+script = ExtResource( "1" )
 
 
 [node name="Background" type="TextureRect" parent="."]
 [node name="Background" type="TextureRect" parent="."]
 anchor_right = 1.0
 anchor_right = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_right = 986.0
-offset_bottom = 560.0
 grow_horizontal = 0
 grow_horizontal = 0
 grow_vertical = 0
 grow_vertical = 0
-texture = ExtResource( 2 )
-expand = true
+texture = ExtResource( "2" )
 
 
 [node name="CapturedImage" type="TextureRect" parent="."]
 [node name="CapturedImage" type="TextureRect" parent="."]
 anchor_right = 1.0
 anchor_right = 1.0
 anchor_bottom = 1.0
 anchor_bottom = 1.0
-offset_right = 2013.0
-offset_bottom = 1162.0
-grow_horizontal = 0
-grow_vertical = 0
-rect_scale = Vector2(0.5, 0.5)
-expand = true
+offset_left = 128.0
+offset_top = 75.0
+offset_right = -128.0
+offset_bottom = -75.0
+grow_horizontal = 2
+grow_vertical = 2
+ignore_texture_size = true
 stretch_mode = 4
 stretch_mode = 4
+__meta__ = {
+"_edit_layout_mode": 1,
+"_edit_use_custom_anchors": false
+}
 
 
 [node name="CaptureButton" type="Button" parent="."]
 [node name="CaptureButton" type="Button" parent="."]
-offset_left = 48.0
-offset_top = 53.0
-offset_right = 188.0
-offset_bottom = 113.0
+offset_left = 50.0
+offset_top = 50.0
+offset_right = 190.0
+offset_bottom = 110.0
 text = "Capture screen"
 text = "Capture screen"
 
 
 [connection signal="pressed" from="CaptureButton" to="." method="_on_CaptureButton_pressed"]
 [connection signal="pressed" from="CaptureButton" to="." method="_on_CaptureButton_pressed"]

Some files were not shown because too many files changed in this diff