Browse Source

Misc fixes and tweaks to many demos

Aaron Franke 5 years ago
parent
commit
189d6ac9b4

+ 1 - 1
2d/hexagonal_map/troll.tscn

@@ -9,7 +9,7 @@ radius = 16.0
 [node name="Troll" type="KinematicBody2D"]
 script = ExtResource( 1 )
 
-[node name="Sprite" type="Sprite" parent="."]
+[node name="Sprite2D" type="Sprite" parent="."]
 texture = ExtResource( 2 )
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="."]

+ 23 - 0
2d/isometric/tileset.tres

@@ -20,6 +20,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
 0/tile_mode = 0
 0/occluder_offset = Vector2( 67.5, 52.5 )
 0/navigation_offset = Vector2( 67.5, 52.5 )
+0/shape_offset = Vector2( 0, 0 )
+0/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+0/shape_one_way = false
+0/shape_one_way_margin = 0.0
 0/shapes = [  ]
 0/z_index = 0
 1/name = "Base2"
@@ -30,6 +34,10 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
 1/tile_mode = 0
 1/occluder_offset = Vector2( 67.5, 52.5 )
 1/navigation_offset = Vector2( 67.5, 52.5 )
+1/shape_offset = Vector2( 0, 0 )
+1/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+1/shape_one_way = false
+1/shape_one_way_margin = 0.0
 1/shapes = [  ]
 1/z_index = 0
 2/name = "Wall"
@@ -40,6 +48,11 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
 2/tile_mode = 0
 2/occluder_offset = Vector2( 70, 70 )
 2/navigation_offset = Vector2( 70, 70 )
+2/shape_offset = Vector2( 70, 70 )
+2/shape_transform = Transform2D( 1, 0, 0, 1, 70, 70 )
+2/shape = SubResource( 1 )
+2/shape_one_way = false
+2/shape_one_way_margin = 1.0
 2/shapes = [ {
 "autotile_coord": Vector2( 0, 0 ),
 "one_way": false,
@@ -56,6 +69,11 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
 3/tile_mode = 0
 3/occluder_offset = Vector2( 27.5, 47.5 )
 3/navigation_offset = Vector2( 27.5, 47.5 )
+3/shape_offset = Vector2( 29.5, 47.5 )
+3/shape_transform = Transform2D( 1, 0, 0, 1, 29.5, 47.5 )
+3/shape = SubResource( 2 )
+3/shape_one_way = false
+3/shape_one_way_margin = 1.0
 3/shapes = [ {
 "autotile_coord": Vector2( 0, 0 ),
 "one_way": false,
@@ -72,6 +90,11 @@ points = PoolVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 )
 4/tile_mode = 0
 4/occluder_offset = Vector2( 42.5, 55 )
 4/navigation_offset = Vector2( 42.5, 55 )
+4/shape_offset = Vector2( 42.5, 55 )
+4/shape_transform = Transform2D( 1, 0, 0, 1, 42.5, 55 )
+4/shape = SubResource( 3 )
+4/shape_one_way = false
+4/shape_one_way_margin = 1.0
 4/shapes = [ {
 "autotile_coord": Vector2( 0, 0 ),
 "one_way": false,

+ 1 - 1
2d/navigation_astar/Game.tscn

@@ -17,7 +17,7 @@ script = ExtResource( 2 )
 position = Vector2( 32, 32 )
 script = ExtResource( 3 )
 
-[node name="Sprite" type="Sprite" parent="Character"]
+[node name="Sprite2D" type="Sprite" parent="Character"]
 position = Vector2( 7, 0 )
 texture = ExtResource( 4 )
 

+ 2 - 2
2d/particles/particles.tscn

@@ -236,7 +236,7 @@ visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 )
 process_material = SubResource( 26 )
 texture = ExtResource( 3 )
 
-[node name="Outline_Mask" type="Particles2D" parent="."]
+[node name="OutlineMask" type="Particles2D" parent="."]
 position = Vector2( 42, 52 )
 amount = 180
 lifetime = 0.2
@@ -244,7 +244,7 @@ visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 )
 process_material = SubResource( 27 )
 texture = ExtResource( 3 )
 
-[node name="Direction_Mask" type="Particles2D" parent="."]
+[node name="DirectionMask" type="Particles2D" parent="."]
 position = Vector2( 40, 180 )
 amount = 180
 lifetime = 0.2

+ 176 - 38
2d/physics_platformer/Tileset.tres

@@ -3,209 +3,347 @@
 [ext_resource path="res://tiles_demo.png" type="Texture" id=1]
 
 [sub_resource type="ConvexPolygonShape2D" id=1]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, -12, 16, -12, 16, 16, -16, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=2]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, 16, -16, -12, 12, -12, 12, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=3]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, -16, 16, -16, 16, 16, -16, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=4]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, -28, 16, 4, 16, 32, -16, 32 )
 
 [sub_resource type="ConvexPolygonShape2D" id=5]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, 16, -16, -16, 12, -16, 12, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=6]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, -12, 16, -12, 16, 12, -16, 12 )
 
 [sub_resource type="ConvexPolygonShape2D" id=7]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, -12, 12, -12, 12, 12, -16, 12 )
 
 [sub_resource type="ConvexPolygonShape2D" id=8]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, 16, -16, -16, 12, -16, 12, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=9]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -32, 16, -32, -16, -4, -16, -4, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=10]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, 16, -16, -16, 12, -16, 16, -12, 16, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=11]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, 16, -16, -12, 16, -12, 16, 16 )
 
 [sub_resource type="ConvexPolygonShape2D" id=12]
-
-custom_solver_bias = 0.0
 points = PoolVector2Array( -16, 16, -16, -12, 16, -12, 16, 16 )
 
 [resource]
-
 0/name = "floor"
 0/texture = ExtResource( 1 )
 0/tex_offset = Vector2( 0, 0 )
 0/modulate = Color( 1, 1, 1, 1 )
 0/region = Rect2( 0, 0, 32, 32 )
+0/tile_mode = 0
 0/occluder_offset = Vector2( 16, 16 )
 0/navigation_offset = Vector2( 16, 16 )
 0/shape_offset = Vector2( 16, 16 )
-0/shapes = [ SubResource( 1 ) ]
+0/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+0/shape = SubResource( 1 )
+0/shape_one_way = false
+0/shape_one_way_margin = 1.0
+0/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 1 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+0/z_index = 0
 1/name = "edge"
 1/texture = ExtResource( 1 )
 1/tex_offset = Vector2( 0, 0 )
 1/modulate = Color( 1, 1, 1, 1 )
 1/region = Rect2( 32, 0, 32, 32 )
+1/tile_mode = 0
 1/occluder_offset = Vector2( 16, 16 )
 1/navigation_offset = Vector2( 16, 16 )
 1/shape_offset = Vector2( 16, 16 )
-1/shapes = [ SubResource( 2 ) ]
+1/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+1/shape = SubResource( 2 )
+1/shape_one_way = false
+1/shape_one_way_margin = 1.0
+1/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 2 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+1/z_index = 0
 2/name = "wall"
 2/texture = ExtResource( 1 )
 2/tex_offset = Vector2( 0, 0 )
 2/modulate = Color( 1, 1, 1, 1 )
 2/region = Rect2( 32, 32, 32, 32 )
+2/tile_mode = 0
 2/occluder_offset = Vector2( 16, 16 )
 2/navigation_offset = Vector2( 16, 16 )
 2/shape_offset = Vector2( 16, 16 )
-2/shapes = [ SubResource( 8 ) ]
+2/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+2/shape = SubResource( 8 )
+2/shape_one_way = false
+2/shape_one_way_margin = 1.0
+2/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 8 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+2/z_index = 0
 3/name = "wall_deco"
 3/texture = ExtResource( 1 )
 3/tex_offset = Vector2( 0, 0 )
 3/modulate = Color( 1, 1, 1, 1 )
 3/region = Rect2( 160, 64, 64, 32 )
+3/tile_mode = 0
 3/occluder_offset = Vector2( 32, 16 )
 3/navigation_offset = Vector2( 32, 16 )
 3/shape_offset = Vector2( 32, 16 )
-3/shapes = [ SubResource( 9 ) ]
+3/shape_transform = Transform2D( 1, 0, 0, 1, 32, 16 )
+3/shape = SubResource( 9 )
+3/shape_one_way = false
+3/shape_one_way_margin = 1.0
+3/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 9 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 32, 16 )
+} ]
+3/z_index = 0
 4/name = "corner"
 4/texture = ExtResource( 1 )
 4/tex_offset = Vector2( 0, 0 )
 4/modulate = Color( 1, 1, 1, 1 )
 4/region = Rect2( 32, 64, 32, 32 )
+4/tile_mode = 0
 4/occluder_offset = Vector2( 16, 16 )
 4/navigation_offset = Vector2( 16, 16 )
 4/shape_offset = Vector2( 16, 16 )
-4/shapes = [ SubResource( 10 ) ]
+4/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+4/shape = SubResource( 10 )
+4/shape_one_way = false
+4/shape_one_way_margin = 1.0
+4/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 10 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+4/z_index = 0
 5/name = "flowers"
 5/texture = ExtResource( 1 )
 5/tex_offset = Vector2( 0, 0 )
 5/modulate = Color( 1, 1, 1, 1 )
 5/region = Rect2( 96, 96, 32, 32 )
+5/tile_mode = 0
 5/occluder_offset = Vector2( 16, 16 )
 5/navigation_offset = Vector2( 16, 16 )
 5/shape_offset = Vector2( 16, 16 )
-5/shapes = [ SubResource( 11 ) ]
+5/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+5/shape = SubResource( 11 )
+5/shape_one_way = false
+5/shape_one_way_margin = 1.0
+5/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 11 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+5/z_index = 0
 6/name = "tree_base"
 6/texture = ExtResource( 1 )
 6/tex_offset = Vector2( 0, 0 )
 6/modulate = Color( 1, 1, 1, 1 )
 6/region = Rect2( 128, 96, 32, 32 )
+6/tile_mode = 0
 6/occluder_offset = Vector2( 16, 16 )
 6/navigation_offset = Vector2( 16, 16 )
 6/shape_offset = Vector2( 16, 16 )
-6/shapes = [ SubResource( 12 ) ]
+6/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+6/shape = SubResource( 12 )
+6/shape_one_way = false
+6/shape_one_way_margin = 1.0
+6/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 12 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+6/z_index = 0
 7/name = "tree_mid"
 7/texture = ExtResource( 1 )
 7/tex_offset = Vector2( 0, 0 )
 7/modulate = Color( 1, 1, 1, 1 )
 7/region = Rect2( 128, 64, 32, 32 )
+7/tile_mode = 0
 7/occluder_offset = Vector2( 16, 16 )
 7/navigation_offset = Vector2( 16, 16 )
 7/shape_offset = Vector2( 0, 0 )
+7/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+7/shape_one_way = false
+7/shape_one_way_margin = 0.0
 7/shapes = [  ]
+7/z_index = 0
 8/name = "tree_mid 2"
 8/texture = ExtResource( 1 )
 8/tex_offset = Vector2( 0, 0 )
 8/modulate = Color( 1, 1, 1, 1 )
 8/region = Rect2( 128, 32, 32, 32 )
+8/tile_mode = 0
 8/occluder_offset = Vector2( 16, 16 )
 8/navigation_offset = Vector2( 16, 16 )
 8/shape_offset = Vector2( 0, 0 )
+8/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+8/shape_one_way = false
+8/shape_one_way_margin = 0.0
 8/shapes = [  ]
+8/z_index = 0
 9/name = "tree_top"
 9/texture = ExtResource( 1 )
 9/tex_offset = Vector2( 0, 0 )
 9/modulate = Color( 1, 1, 1, 1 )
 9/region = Rect2( 128, 0, 32, 32 )
+9/tile_mode = 0
 9/occluder_offset = Vector2( 16, 16 )
 9/navigation_offset = Vector2( 16, 16 )
 9/shape_offset = Vector2( 0, 0 )
+9/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+9/shape_one_way = false
+9/shape_one_way_margin = 0.0
 9/shapes = [  ]
+9/z_index = 0
 10/name = "solid"
 10/texture = ExtResource( 1 )
 10/tex_offset = Vector2( 0, 0 )
 10/modulate = Color( 1, 1, 1, 1 )
 10/region = Rect2( 0, 32, 32, 32 )
+10/tile_mode = 0
 10/occluder_offset = Vector2( 16, 16 )
 10/navigation_offset = Vector2( 16, 16 )
 10/shape_offset = Vector2( 0, 0 )
+10/shape_transform = Transform2D( 1, 0, 0, 1, 0, 0 )
+10/shape_one_way = false
+10/shape_one_way_margin = 0.0
 10/shapes = [  ]
+10/z_index = 0
 11/name = "ceiling"
 11/texture = ExtResource( 1 )
 11/tex_offset = Vector2( 0, 0 )
 11/modulate = Color( 1, 1, 1, 1 )
 11/region = Rect2( 192, 32, 32, 32 )
+11/tile_mode = 0
 11/occluder_offset = Vector2( 16, 16 )
 11/navigation_offset = Vector2( 16, 16 )
 11/shape_offset = Vector2( 16, 16 )
-11/shapes = [ SubResource( 3 ) ]
+11/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+11/shape = SubResource( 3 )
+11/shape_one_way = false
+11/shape_one_way_margin = 1.0
+11/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 3 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+11/z_index = 0
 12/name = "ramp"
 12/texture = ExtResource( 1 )
 12/tex_offset = Vector2( 0, 0 )
 12/modulate = Color( 1, 1, 1, 1 )
 12/region = Rect2( 64, 64, 32, 64 )
+12/tile_mode = 0
 12/occluder_offset = Vector2( 16, 32 )
 12/navigation_offset = Vector2( 16, 32 )
 12/shape_offset = Vector2( 16, 32 )
-12/shapes = [ SubResource( 4 ) ]
+12/shape_transform = Transform2D( 1, 0, 0, 1, 16, 32 )
+12/shape = SubResource( 4 )
+12/shape_one_way = false
+12/shape_one_way_margin = 1.0
+12/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 4 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 32 )
+} ]
+12/z_index = 0
 13/name = "ceiling2wall"
 13/texture = ExtResource( 1 )
 13/tex_offset = Vector2( 0, 0 )
 13/modulate = Color( 1, 1, 1, 1 )
 13/region = Rect2( 224, 32, 32, 32 )
+13/tile_mode = 0
 13/occluder_offset = Vector2( 16, 16 )
 13/navigation_offset = Vector2( 16, 16 )
 13/shape_offset = Vector2( 16, 16 )
-13/shapes = [ SubResource( 5 ) ]
+13/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+13/shape = SubResource( 5 )
+13/shape_one_way = false
+13/shape_one_way_margin = 1.0
+13/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 5 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+13/z_index = 0
 14/name = "platform_floor"
 14/texture = ExtResource( 1 )
 14/tex_offset = Vector2( 0, 0 )
 14/modulate = Color( 1, 1, 1, 1 )
 14/region = Rect2( 64, 0, 32, 32 )
+14/tile_mode = 0
 14/occluder_offset = Vector2( 16, 16 )
 14/navigation_offset = Vector2( 16, 16 )
 14/shape_offset = Vector2( 16, 16 )
-14/shapes = [ SubResource( 6 ) ]
+14/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+14/shape = SubResource( 6 )
+14/shape_one_way = false
+14/shape_one_way_margin = 1.0
+14/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 6 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+14/z_index = 0
 15/name = "platform_edge"
 15/texture = ExtResource( 1 )
 15/tex_offset = Vector2( 0, 0 )
 15/modulate = Color( 1, 1, 1, 1 )
 15/region = Rect2( 96, 0, 32, 32 )
+15/tile_mode = 0
 15/occluder_offset = Vector2( 16, 16 )
 15/navigation_offset = Vector2( 16, 16 )
 15/shape_offset = Vector2( 16, 16 )
-15/shapes = [ SubResource( 7 ) ]
-
+15/shape_transform = Transform2D( 1, 0, 0, 1, 16, 16 )
+15/shape = SubResource( 7 )
+15/shape_one_way = false
+15/shape_one_way_margin = 1.0
+15/shapes = [ {
+"autotile_coord": Vector2( 0, 0 ),
+"one_way": false,
+"one_way_margin": 1.0,
+"shape": SubResource( 7 ),
+"shape_transform": Transform2D( 1, 0, 0, 1, 16, 16 )
+} ]
+15/z_index = 0

+ 1 - 1
2d/physics_platformer/background/Seesaw.tscn

@@ -27,7 +27,7 @@ node_b = NodePath("../Pillar")
 [node name="Pillar" type="StaticBody2D" parent="."]
 
 [node name="Sprite" type="Sprite" parent="Pillar"]
-position = Vector2( -0.1454125, 10.12125 )
+position = Vector2( 0, 10 )
 texture = ExtResource( 2 )
 
 [node name="CollisionShape2D" type="CollisionShape2D" parent="Pillar"]

+ 23 - 0
3d/kinematic_character/default_env.tres

@@ -0,0 +1,23 @@
+[gd_resource type="Environment" load_steps=2 format=2]
+
+[sub_resource type="ProceduralSky" id=1]
+radiance_size = 1
+sky_top_color = Color( 0.219882, 0.193725, 0.366471, 1 )
+sky_horizon_color = Color( 0.342622, 0.0655002, 0.558935, 1 )
+sky_curve = 0.0490365
+ground_bottom_color = Color( 0.0342205, 0.0333383, 0.0322154, 1 )
+ground_horizon_color = Color( 0.148289, 0.138067, 0.125119, 1 )
+ground_curve = 0.25
+sun_latitude = 55.0
+sun_longitude = -80.0
+texture_size = 0
+
+[resource]
+background_mode = 2
+background_sky = SubResource( 1 )
+ssao_blur = 1
+glow_levels/7 = true
+glow_strength = 0.79
+glow_bloom = 1.0
+glow_blend_mode = 0
+glow_bicubic_upscale = true

File diff suppressed because it is too large
+ 2 - 22
3d/kinematic_character/level.tscn


+ 1 - 0
3d/kinematic_character/project.godot

@@ -85,3 +85,4 @@ shadow_filter=3
 [rendering]
 
 quality/filters/msaa=2
+environment/default_environment="res://default_env.tres"

+ 1 - 1
3d/kinematic_character/purplecube.tscn → 3d/kinematic_character/purple_cube.tscn

@@ -23,7 +23,7 @@ surfaces/0 = {
 [sub_resource type="ConvexPolygonShape" id=3]
 points = PoolVector3Array( 0.946777, 0.946777, -0.999512, 0.946777, -0.946777, -0.999512, -0.946777, -0.946777, -1, -0.946777, 0.946777, -1, 0.946777, -0.946777, 1, 0.946777, 0.946777, 1, -0.946777, 0.946777, 0.999512, -0.946777, -0.946777, 0.999512, -1, -0.946777, 0.946777, -1, 0.946777, 0.946777, -0.999512, 0.946777, -0.946777, -0.999512, -0.946777, -0.946777, 0.946777, 1, -0.946777, -0.946777, 1, -0.946777, -0.946777, 1, 0.946777, 0.946777, 1, 0.946777, 1, -0.946777, -0.946777, 1, 0.946777, -0.946777, 0.999512, 0.946777, 0.946777, 1, -0.946777, 0.946777, 0.946777, -0.946777, -0.999512, 1, -0.946777, -0.946777, 0.946777, -1, -0.946777, 0.946777, -1, 0.946777, 1, -0.946777, 0.946777, 0.946777, -0.946777, 1, -0.946777, -1, 0.946777, -0.946777, -0.946777, 0.999512, -1, -0.946777, 0.946777, -0.999512, -0.946777, -0.946777, -0.946777, -0.946777, -1, -0.946777, -1, -0.946777, 1, 0.946777, -0.946777, 0.946777, 0.946777, -0.999512, 0.946777, 1, -0.946777, 0.946777, 1, 0.946777, 0.946777, 0.946777, 1, 0.999512, 0.946777, 0.946777, -1, 0.946777, 0.946777, -0.946777, 0.946777, 0.999512, -0.946777, 0.946777, -1, -0.999512, 0.946777, -0.946777, -0.946777, 1, -0.946777, 1, -0.946777, -0.946777, 1, -0.946777, 0.946777, 0.946777, -1, 0.946777, 0.946777, -1, -0.946777, 0.946777, -0.946777, -0.999512, 0.946777, -1, -0.946777, 1, 0.946777, -0.946777, 1, -0.946777, -0.946777, 0.999512, 0.946777, 0.946777, 0.946777, 0.946777, 1, 0.946777, -0.946777, 1, -0.946777, -1, -0.946777, -0.946777, -1, 0.946777, -1, 0.946777, 0.946777, -1, -0.946777, 0.946777, -0.999512, -0.946777, -0.946777, -0.999512, 0.946777, -0.946777, 0.999512, 0.946777, 0.946777, 1, 0.946777, -0.946777, 0.946777, 0.946777, -0.999512, -0.946777, 0.946777, -1, 0.946777, 0.946777, 1 )
 
-[node name="Spatial" type="Spatial"]
+[node name="PurpleCube" type="Spatial"]
 _import_path = NodePath(".")
 __meta__ = {
 "__editor_plugin_screen__": "3D"

+ 9 - 0
3d/navmesh/default_env.tres

@@ -0,0 +1,9 @@
+[gd_resource type="Environment" load_steps=2 format=2]
+
+[sub_resource type="ProceduralSky" id=1]
+ground_horizon_color = Color( 0.156863, 0.184314, 0.211765, 1 )
+
+[resource]
+background_mode = 2
+background_sky = SubResource( 1 )
+ssao_blur = 1

File diff suppressed because it is too large
+ 2 - 2
3d/navmesh/navmesh.tscn


+ 4 - 0
3d/navmesh/project.godot

@@ -26,3 +26,7 @@ config/icon="res://icon.png"
 [gdnative]
 
 singletons=[  ]
+
+[rendering]
+
+quality/driver/driver_name="GLES2"

+ 1 - 1
3d/voxel/project.godot

@@ -157,5 +157,5 @@ common/physics_fps=120
 quality/driver/driver_name="GLES2"
 vram_compression/import_etc=true
 vram_compression/import_etc2=false
-gles2/debug/disable_half_float=true
 environment/default_environment="res://default_env.tres"
+gles2/debug/disable_half_float=true

BIN
gui/translation/text.en.translation


BIN
gui/translation/text.es.translation


BIN
gui/translation/text.ja.translation


+ 1 - 1
loading/autoload/global.gd

@@ -13,9 +13,9 @@ func goto_scene(path):
 
 	# The way around this is deferring the load to a later time, when
 	# it is ensured that no code from the current scene is running:
-
 	call_deferred("_deferred_goto_scene", path)
 
+
 func _deferred_goto_scene(path):
 	# Immediately free the current scene, there is no risk here.
 	get_tree().get_current_scene().free()

+ 3 - 0
loading/autoload/scene_b.tscn

@@ -8,6 +8,9 @@ anchor_bottom = 1.0
 size_flags_horizontal = 2
 size_flags_vertical = 2
 script = ExtResource( 1 )
+__meta__ = {
+"_edit_use_anchors_": false
+}
 
 [node name="Label" type="Label" parent="."]
 margin_left = 64.0

+ 24 - 14
misc/android_iap/iap_demo.gd

@@ -13,17 +13,28 @@ func _ready():
 		label.text += "\n\n\nTest item SKU: %s" % TEST_ITEM_SKU
 
 		payment = Engine.get_singleton("GodotGooglePlayBilling")
-		payment.connect("connected", self, "_on_connected") # No params
-		payment.connect("disconnected", self, "_on_disconnected") # No params
-		payment.connect("connect_error", self, "_on_connect_error") # Response ID (int), Debug message (string)
-		payment.connect("purchases_updated", self, "_on_purchases_updated") # Purchases (Dictionary[])
-		payment.connect("purchase_error", self, "_on_purchase_error") # Response ID (int), Debug message (string)
-		payment.connect("sku_details_query_completed", self, "_on_sku_details_query_completed") # SKUs (Dictionary[])
-		payment.connect("sku_details_query_error", self, "_on_sku_details_query_error") # Response ID (int), Debug message (string), Queried SKUs (string[])
-		payment.connect("purchase_acknowledged", self, "_on_purchase_acknowledged") # Purchase token (string)
-		payment.connect("purchase_acknowledgement_error", self, "_on_purchase_acknowledgement_error") # Response ID (int), Debug message (string), Purchase token (string)
-		payment.connect("purchase_consumed", self, "_on_purchase_consumed") # Purchase token (string)
-		payment.connect("purchase_consumption_error", self, "_on_purchase_consumption_error") # Response ID (int), Debug message (string), Purchase token (string)
+		# No params.
+		payment.connect("connected", self, "_on_connected")
+		# No params.
+		payment.connect("disconnected", self, "_on_disconnected")
+		# Response ID (int), Debug message (string).
+		payment.connect("connect_error", self, "_on_connect_error")
+		# Purchases (Dictionary[]).
+		payment.connect("purchases_updated", self, "_on_purchases_updated")
+		# Response ID (int), Debug message (string).
+		payment.connect("purchase_error", self, "_on_purchase_error")
+		# SKUs (Dictionary[]).
+		payment.connect("sku_details_query_completed", self, "_on_sku_details_query_completed")
+		# Response ID (int), Debug message (string), Queried SKUs (string[]).
+		payment.connect("sku_details_query_error", self, "_on_sku_details_query_error")
+		# Purchase token (string).
+		payment.connect("purchase_acknowledged", self, "_on_purchase_acknowledged")
+		# Response ID (int), Debug message (string), Purchase token (string).
+		payment.connect("purchase_acknowledgement_error", self, "_on_purchase_acknowledgement_error")
+		# Purchase token (string).
+		payment.connect("purchase_consumed", self, "_on_purchase_consumed")
+		# Response ID (int), Debug message (string), Purchase token (string).
+		payment.connect("purchase_consumption_error", self, "_on_purchase_consumption_error")
 		payment.startConnection()
 	else:
 		show_alert("Android IAP support is not enabled. Make sure you have enabled 'Custom Build' and installed and enabled the GodotGooglePlayBilling plugin in your Android export settings! This application will not work.")
@@ -39,8 +50,7 @@ func _on_connected():
 
 	# We must acknowledge all puchases.
 	# See https://developer.android.com/google/play/billing/integrate#process for more information
-	var query = payment.queryPurchases("inapp") # Use "subs" for subscriptions
-	var purchase_token = null
+	var query = payment.queryPurchases("inapp") # Use "subs" for subscriptions.
 	if query.status == OK:
 		for purchase in query.purchases:
 			if !purchase.is_acknowledged:
@@ -100,7 +110,7 @@ func _on_disconnected():
 
 # GUI
 func _on_QuerySkuDetailsButton_pressed():
-	payment.querySkuDetails([TEST_ITEM_SKU], "inapp") # Use "subs" for subscriptions
+	payment.querySkuDetails([TEST_ITEM_SKU], "inapp") # Use "subs" for subscriptions.
 
 
 func _on_PurchaseButton_pressed():

+ 4 - 4
viewport/2d_in_3d/2D_in_3D.gd

@@ -1,13 +1,13 @@
 extends Spatial
 
 func _ready():
-	# Get the viewport and clear it.
-	var viewport = get_node("Viewport")
-	viewport.set_clear_mode(Viewport.CLEAR_MODE_ONLY_NEXT_FRAME)
+	# Clear the viewport.
+	var viewport = $Viewport
+	$Viewport.set_clear_mode(Viewport.CLEAR_MODE_ONLY_NEXT_FRAME)
 
 	# Let two frames pass to make sure the vieport is captured.
 	yield(get_tree(), "idle_frame")
 	yield(get_tree(), "idle_frame")
 
 	# Retrieve the texture and set it to the viewport quad.
-	get_node("Viewport_quad").material_override.albedo_texture = viewport.get_texture()
+	$ViewportQuad.material_override.albedo_texture = viewport.get_texture()

+ 16 - 16
viewport/2d_in_3d/2D_in_3D.tscn

@@ -39,7 +39,7 @@ script = SubResource( 9 )
 
 [sub_resource type="SpatialMaterial" id=11]
 
-[node name="2D_in_3D" type="Spatial"]
+[node name="2Din3D" type="Spatial"]
 script = ExtResource( 1 )
 
 [node name="Camera" type="Camera" parent="."]
@@ -52,20 +52,20 @@ transform = Transform( 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, -1, -2 )
 mesh = SubResource( 1 )
 material/0 = SubResource( 3 )
 
-[node name="Pillar" type="Spatial" parent="."]
+[node name="Pillar1" type="Spatial" parent="."]
 transform = Transform( 0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, -3, -0.2, -4 )
 
-[node name="Pillar_bottom" type="MeshInstance" parent="Pillar"]
+[node name="PillarBottom" type="MeshInstance" parent="Pillar1"]
 transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0 )
 mesh = SubResource( 7 )
 material/0 = SubResource( 8 )
 
-[node name="Pillar_top" type="MeshInstance" parent="Pillar"]
+[node name="PillarTop" type="MeshInstance" parent="Pillar1"]
 transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0 )
 mesh = SubResource( 7 )
 material/0 = SubResource( 8 )
 
-[node name="Pillar_middle" type="MeshInstance" parent="Pillar"]
+[node name="PillarMiddle" type="MeshInstance" parent="Pillar1"]
 transform = Transform( 0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0 )
 mesh = SubResource( 7 )
 material/0 = SubResource( 8 )
@@ -73,22 +73,22 @@ material/0 = SubResource( 8 )
 [node name="Pillar2" type="Spatial" parent="."]
 transform = Transform( 0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, 3, -0.2, -4 )
 
-[node name="Pillar_bottom" type="MeshInstance" parent="Pillar2"]
+[node name="PillarBottom" type="MeshInstance" parent="Pillar2"]
 transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0 )
 mesh = SubResource( 7 )
 material/0 = SubResource( 8 )
 
-[node name="Pillar_top" type="MeshInstance" parent="Pillar2"]
+[node name="PillarTop" type="MeshInstance" parent="Pillar2"]
 transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0 )
 mesh = SubResource( 7 )
 material/0 = SubResource( 8 )
 
-[node name="Pillar_middle" type="MeshInstance" parent="Pillar2"]
+[node name="PillarMiddle" type="MeshInstance" parent="Pillar2"]
 transform = Transform( 0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0 )
 mesh = SubResource( 7 )
 material/0 = SubResource( 8 )
 
-[node name="Pillar_back" type="MeshInstance" parent="."]
+[node name="PillarBack" type="MeshInstance" parent="."]
 transform = Transform( 4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 1.2, -4.5 )
 mesh = SubResource( 10 )
 material/0 = SubResource( 8 )
@@ -99,7 +99,7 @@ shadow_enabled = true
 directional_shadow_blend_splits = true
 directional_shadow_normal_bias = 0.2
 
-[node name="Viewport_quad" type="MeshInstance" parent="."]
+[node name="ViewportQuad" type="MeshInstance" parent="."]
 transform = Transform( 2, 0, 0, 0, 0, -1.333, 0, 1, 0, 0, 1.2, -4.25 )
 material_override = SubResource( 11 )
 mesh = SubResource( 1 )
@@ -111,25 +111,25 @@ hdr = false
 usage = 0
 render_target_v_flip = true
 
-[node name="2D_World" type="Node2D" parent="Viewport"]
+[node name="Pong" type="Node2D" parent="Viewport"]
 script = ExtResource( 2 )
 
-[node name="BG" type="Panel" parent="Viewport/2D_World"]
+[node name="Background" type="Panel" parent="Viewport/Pong"]
 margin_right = 600.0
 margin_bottom = 400.0
 
-[node name="ball" type="Sprite" parent="Viewport/2D_World"]
+[node name="Ball" type="Sprite" parent="Viewport/Pong"]
 position = Vector2( 300, 200 )
 texture = ExtResource( 3 )
 
-[node name="left" type="Sprite" parent="Viewport/2D_World"]
+[node name="LeftPaddle" type="Sprite" parent="Viewport/Pong"]
 position = Vector2( 20, 200 )
 texture = ExtResource( 4 )
 
-[node name="right" type="Sprite" parent="Viewport/2D_World"]
+[node name="RightPaddle" type="Sprite" parent="Viewport/Pong"]
 position = Vector2( 580, 200 )
 texture = ExtResource( 5 )
 
-[node name="separator" type="Sprite" parent="Viewport/2D_World"]
+[node name="Separator" type="Sprite" parent="Viewport/Pong"]
 position = Vector2( 298, 200 )
 texture = ExtResource( 6 )

+ 15 - 10
viewport/2d_in_3d/pong.gd

@@ -5,20 +5,25 @@ const INITIAL_BALL_SPEED = 80
 
 var ball_speed = INITIAL_BALL_SPEED
 var screen_size = Vector2(640, 400)
+
 # Default ball direction.
-var direction = Vector2(-1, 0)
+var direction = Vector2.LEFT
 var pad_size = Vector2(8, 32)
 
+onready var ball = $Ball
+onready var left_paddle = $LeftPaddle
+onready var right_paddle = $RightPaddle
+
 func _ready():
 	screen_size = get_viewport_rect().size # Get actual size.
-	pad_size = get_node("left").get_texture().get_size()
+	pad_size = left_paddle.get_texture().get_size()
 
 
 func _process(delta):
 	# Get ball position and pad rectangles.
-	var ball_pos = get_node("ball").get_position()
-	var left_rect = Rect2(get_node("left").get_position() - pad_size * 0.5, pad_size)
-	var right_rect = Rect2(get_node("right").get_position() - pad_size * 0.5, pad_size)
+	var ball_pos = ball.get_position()
+	var left_rect = Rect2(left_paddle.get_position() - pad_size * 0.5, pad_size)
+	var right_rect = Rect2(right_paddle.get_position() - pad_size * 0.5, pad_size)
 	
 	# Integrate new ball postion.
 	ball_pos += direction * ball_speed * delta
@@ -40,23 +45,23 @@ func _process(delta):
 		ball_speed = INITIAL_BALL_SPEED
 		direction = Vector2(-1, 0)
 	
-	get_node("ball").set_position(ball_pos)
+	ball.set_position(ball_pos)
 	
 	# Move left pad.
-	var left_pos = get_node("left").get_position()
+	var left_pos = left_paddle.get_position()
 	
 	if left_pos.y > 0 and Input.is_action_pressed("left_move_up"):
 		left_pos.y += -PAD_SPEED * delta
 	if left_pos.y < screen_size.y and Input.is_action_pressed("left_move_down"):
 		left_pos.y += PAD_SPEED * delta
 	
-	get_node("left").set_position(left_pos)
+	left_paddle.set_position(left_pos)
 	
 	# Move right pad.
-	var right_pos = get_node("right").get_position()
+	var right_pos = right_paddle.get_position()
 	if right_pos.y > 0 and Input.is_action_pressed("right_move_up"):
 		right_pos.y += -PAD_SPEED * delta
 	if right_pos.y < screen_size.y and Input.is_action_pressed("right_move_down"):
 		right_pos.y += PAD_SPEED * delta
 	
-	get_node("right").set_position(right_pos)
+	right_paddle.set_position(right_pos)

+ 3 - 3
viewport/3d_scaling/spatial.tscn → viewport/3d_scaling/cubes.tscn

@@ -2,9 +2,9 @@
 
 [sub_resource type="CubeMesh" id=1]
 
-[node name="Spatial" type="Spatial"]
+[node name="Cubes" type="Spatial"]
 
-[node name="MeshInstance" type="MeshInstance" parent="."]
+[node name="MeshInstance1" type="MeshInstance" parent="."]
 mesh = SubResource( 1 )
 material/0 = null
 
@@ -13,7 +13,7 @@ transform = Transform( 1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -1 )
 mesh = SubResource( 1 )
 material/0 = null
 
-[node name="Camera" type="Camera" parent="."]
+[node name="Camera3D" type="Camera" parent="."]
 transform = Transform( 0.877582, 0.229849, -0.420736, 0, 0.877582, 0.479426, 0.479426, -0.420736, 0.770151, -1.68294, 2.25571, 3.0806 )
 fov = 74.0
 

+ 2 - 2
viewport/3d_scaling/hud.tscn

@@ -1,7 +1,7 @@
 [gd_scene load_steps=7 format=2]
 
 [ext_resource path="res://noto_sans_ui_regular.ttf" type="DynamicFontData" id=1]
-[ext_resource path="res://spatial.tscn" type="PackedScene" id=2]
+[ext_resource path="res://cubes.tscn" type="PackedScene" id=2]
 [ext_resource path="res://hud.gd" type="Script" id=3]
 
 [sub_resource type="DynamicFont" id=1]
@@ -30,7 +30,7 @@ usage = 3
 render_target_update_mode = 3
 shadow_atlas_size = 4096
 
-[node name="Spatial" parent="Viewport" instance=ExtResource( 2 )]
+[node name="Cubes" parent="Viewport" instance=ExtResource( 2 )]
 
 [node name="TextureRect" type="TextureRect" parent="."]
 anchor_right = 1.0

+ 16 - 15
viewport/dynamic_split_screen/CameraController.gd → viewport/dynamic_split_screen/camera_controller.gd

@@ -1,6 +1,6 @@
 extends Spatial
 
-# Handle the motion of both players' camera as well as communication with the
+# Handle the motion of both player cameras as well as communication with the
 # SplitScreen shader to achieve the dynamic split screen effet
 #
 # Cameras are place on the segment joining the two players, either in the middle
@@ -24,11 +24,13 @@ export(float) var split_line_thickness = 3.0
 export(Color, RGBA) var split_line_color = Color.black
 export(bool) var adaptive_split_line_thickness = true
 
-onready var player1 = $'../Player1'
-onready var player2 = $'../Player2'
-onready var camera1: Camera = $'Viewport1/Camera1'
-onready var camera2: Camera = $'Viewport2/Camera2'
-onready var view: TextureRect = $'View'
+onready var player1 = $"../Player1"
+onready var player2 = $"../Player2"
+onready var view = $View
+onready var viewport1 = $Viewport1
+onready var viewport2 = $Viewport2
+onready var camera1 = viewport1.get_node(@"Camera1")
+onready var camera2 = viewport2.get_node(@"Camera2")
 
 
 func _ready():
@@ -37,8 +39,8 @@ func _ready():
 	
 	get_viewport().connect("size_changed", self, "_on_size_changed")
 	
-	view.material.set_shader_param('viewport1', $Viewport1.get_texture())
-	view.material.set_shader_param('viewport2', $Viewport2.get_texture())
+	view.material.set_shader_param("viewport1", viewport1.get_texture())
+	view.material.set_shader_param("viewport2", viewport2.get_texture())
 
 
 func _process(_delta):
@@ -74,11 +76,11 @@ func _update_splitscreen():
 	else:
 		thickness = split_line_thickness
 	
-	view.material.set_shader_param('split_active', _get_split_state())
-	view.material.set_shader_param('player1_position', player1_position)
-	view.material.set_shader_param('player2_position', player2_position)
-	view.material.set_shader_param('split_line_thickness', thickness)
-	view.material.set_shader_param('split_line_color', split_line_color)
+	view.material.set_shader_param("split_active", _get_split_state())
+	view.material.set_shader_param("player1_position", player1_position)
+	view.material.set_shader_param("player2_position", player2_position)
+	view.material.set_shader_param("split_line_thickness", thickness)
+	view.material.set_shader_param("split_line_color", split_line_color)
 
 
 # Split screen is active if players are too far apart from each other.
@@ -94,9 +96,8 @@ func _on_size_changed():
 	
 	$Viewport1.size = screen_size
 	$Viewport2.size = screen_size
-	view.rect_size = screen_size
 	
-	view.material.set_shader_param('viewport_size', screen_size)
+	view.material.set_shader_param("viewport_size", screen_size)
 
 
 func _compute_position_difference_in_world():

+ 0 - 0
viewport/dynamic_split_screen/PlayerMovement.gd → viewport/dynamic_split_screen/player.gd


+ 1 - 1
viewport/dynamic_split_screen/project.godot

@@ -18,7 +18,7 @@ _global_script_class_icons={
 config/name="Dynamic Split Screen"
 config/description="This sample project showcases an implementation of dynamic
 split screen, also called Voronoi split screen, using GDSL."
-run/main_scene="res://SplitScreen.tscn"
+run/main_scene="res://split_screen.tscn"
 config/icon="res://icon.png"
 
 [debug]

+ 6 - 12
viewport/dynamic_split_screen/SplitScreen.shader → viewport/dynamic_split_screen/split_screen.shader

@@ -31,8 +31,7 @@ void fragment() {
 		
 		if (dx.y != 0.0) {
 			split_slope = dx.x / dx.y;
-		}
-		else {
+		} else {
 			split_slope = 100000.0; // High value (vertical split) if dx.y = 0
 		}
 		
@@ -44,8 +43,7 @@ void fragment() {
 		// Draw split border if close enough
 		if (distance_to_split_line < split_line_thickness) {
 			COLOR = split_line_color;
-		}
-		else {
+		} else {
 			float split_current_y = (split_origin.x - UV.x) * split_slope + split_origin.y;
 			float split_player1_position_y = (split_origin.x - player1_position.x) * split_slope + split_origin.y;
 
@@ -53,22 +51,18 @@ void fragment() {
 			if (UV.y > split_current_y) {
 				if (player1_position.y > split_player1_position_y) {
 					COLOR = vec4(view1, 1.0);
-				}
-				else {
+				} else {
 					COLOR = vec4(view2, 1.0);
 				}
-			}
-			else {
+			} else {
 				if (player1_position.y < split_player1_position_y) {
 					COLOR = vec4(view1, 1.0);
-				}
-				else {
+				} else {
 					COLOR = vec4(view2, 1.0);
 				}
 			}
 		}
-	}
-	else {
+	} else {
 		COLOR = vec4(view1, 1.0);
 	}
 }

+ 11 - 8
viewport/dynamic_split_screen/SplitScreen.tscn → viewport/dynamic_split_screen/split_screen.tscn

@@ -1,11 +1,10 @@
-[gd_scene load_steps=59 format=2]
+[gd_scene load_steps=58 format=2]
 
 [ext_resource path="res://default_env.tres" type="Environment" id=1]
-[ext_resource path="res://CameraController.gd" type="Script" id=2]
-[ext_resource path="res://SplitScreen.shader" type="Shader" id=3]
+[ext_resource path="res://camera_controller.gd" type="Script" id=2]
+[ext_resource path="res://split_screen.shader" type="Shader" id=3]
 [ext_resource path="res://icon.png" type="Texture" id=4]
-[ext_resource path="res://PlayerMovement.gd" type="Script" id=5]
-[ext_resource path="res://Walls.gd" type="Script" id=6]
+[ext_resource path="res://player.gd" type="Script" id=5]
 
 [sub_resource type="ShaderMaterial" id=1]
 shader = ExtResource( 3 )
@@ -180,12 +179,16 @@ script = ExtResource( 2 )
 
 [node name="View" type="TextureRect" parent="Cameras"]
 material = SubResource( 1 )
-margin_right = 40.0
-margin_bottom = 40.0
+anchor_right = 1.0
+anchor_bottom = 1.0
 texture = ExtResource( 4 )
 expand = true
+__meta__ = {
+"_edit_use_anchors_": false
+}
 
 [node name="Viewport1" type="Viewport" parent="Cameras"]
+size = Vector2( 100, 100 )
 render_target_v_flip = true
 render_target_update_mode = 3
 
@@ -194,6 +197,7 @@ transform = Transform( 1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 20,
 current = true
 
 [node name="Viewport2" type="Viewport" parent="Cameras"]
+size = Vector2( 100, 100 )
 render_target_v_flip = true
 render_target_update_mode = 3
 
@@ -240,7 +244,6 @@ transform = Transform( 200, 0, 0, 0, 1, 0, 0, 0, 200, 0, -1, 0 )
 shape = SubResource( 8 )
 
 [node name="Walls" type="Spatial" parent="."]
-script = ExtResource( 6 )
 
 [node name="Group1" type="Spatial" parent="Walls"]
 

+ 2 - 1
viewport/dynamic_split_screen/Walls.gd → viewport/dynamic_split_screen/wall_coloring.gd

@@ -1,7 +1,8 @@
 tool
 extends Spatial
 
-# Set a random color to all objects in the 'walls' group
+# Set a random color to all objects in the "walls" group.
+# To use, attach this script to the "Walls" node.
 
 func _ready():
 	randomize()

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