From 189d6ac9b49d1f28ffc23f2d3fa787d9713f8ede Mon Sep 17 00:00:00 2001 From: Aaron Franke Date: Fri, 26 Jun 2020 18:53:08 -0400 Subject: [PATCH] Misc fixes and tweaks to many demos --- 2d/hexagonal_map/troll.tscn | 2 +- 2d/isometric/tileset.tres | 23 ++ 2d/navigation_astar/Game.tscn | 2 +- 2d/particles/particles.tscn | 4 +- 2d/physics_platformer/Tileset.tres | 214 ++++++++++++++---- 2d/physics_platformer/background/Seesaw.tscn | 2 +- 3d/kinematic_character/default_env.tres | 23 ++ 3d/kinematic_character/level.tscn | 30 +-- 3d/kinematic_character/project.godot | 1 + .../{purplecube.tscn => purple_cube.tscn} | 2 +- 3d/navmesh/default_env.tres | 9 + 3d/navmesh/navmesh.tscn | 60 +---- 3d/navmesh/project.godot | 4 + 3d/voxel/project.godot | 2 +- gui/translation/text.en.translation | Bin 409 -> 0 bytes gui/translation/text.es.translation | Bin 428 -> 0 bytes gui/translation/text.ja.translation | Bin 432 -> 0 bytes loading/autoload/global.gd | 2 +- loading/autoload/scene_b.tscn | 3 + misc/android_iap/iap_demo.gd | 38 ++-- viewport/2d_in_3d/2D_in_3D.gd | 8 +- viewport/2d_in_3d/2D_in_3D.tscn | 32 +-- viewport/2d_in_3d/pong.gd | 25 +- .../3d_scaling/{spatial.tscn => cubes.tscn} | 6 +- viewport/3d_scaling/hud.tscn | 4 +- ...meraController.gd => camera_controller.gd} | 31 +-- .../{PlayerMovement.gd => player.gd} | 0 viewport/dynamic_split_screen/project.godot | 2 +- ...SplitScreen.shader => split_screen.shader} | 18 +- .../{SplitScreen.tscn => split_screen.tscn} | 19 +- .../{Walls.gd => wall_coloring.gd} | 3 +- 31 files changed, 363 insertions(+), 206 deletions(-) create mode 100644 3d/kinematic_character/default_env.tres rename 3d/kinematic_character/{purplecube.tscn => purple_cube.tscn} (99%) create mode 100644 3d/navmesh/default_env.tres delete mode 100644 gui/translation/text.en.translation delete mode 100644 gui/translation/text.es.translation delete mode 100644 gui/translation/text.ja.translation rename viewport/3d_scaling/{spatial.tscn => cubes.tscn} (80%) rename viewport/dynamic_split_screen/{CameraController.gd => camera_controller.gd} (78%) rename viewport/dynamic_split_screen/{PlayerMovement.gd => player.gd} (100%) rename viewport/dynamic_split_screen/{SplitScreen.shader => split_screen.shader} (96%) rename viewport/dynamic_split_screen/{SplitScreen.tscn => split_screen.tscn} (98%) rename viewport/dynamic_split_screen/{Walls.gd => wall_coloring.gd} (70%) diff --git a/2d/hexagonal_map/troll.tscn b/2d/hexagonal_map/troll.tscn index 8a2fcc55..32ef38d9 100644 --- a/2d/hexagonal_map/troll.tscn +++ b/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="."] diff --git a/2d/isometric/tileset.tres b/2d/isometric/tileset.tres index a94658f4..99d1279c 100644 --- a/2d/isometric/tileset.tres +++ b/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, diff --git a/2d/navigation_astar/Game.tscn b/2d/navigation_astar/Game.tscn index 2bd5269c..d84c2d3f 100644 --- a/2d/navigation_astar/Game.tscn +++ b/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 ) diff --git a/2d/particles/particles.tscn b/2d/particles/particles.tscn index 782bdbce..9070f6b9 100644 --- a/2d/particles/particles.tscn +++ b/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 diff --git a/2d/physics_platformer/Tileset.tres b/2d/physics_platformer/Tileset.tres index 12318712..d745c27d 100644 --- a/2d/physics_platformer/Tileset.tres +++ b/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 diff --git a/2d/physics_platformer/background/Seesaw.tscn b/2d/physics_platformer/background/Seesaw.tscn index 244f1845..5a529932 100644 --- a/2d/physics_platformer/background/Seesaw.tscn +++ b/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"] diff --git a/3d/kinematic_character/default_env.tres b/3d/kinematic_character/default_env.tres new file mode 100644 index 00000000..5050fc0c --- /dev/null +++ b/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 diff --git a/3d/kinematic_character/level.tscn b/3d/kinematic_character/level.tscn index b3affa98..20587985 100644 --- a/3d/kinematic_character/level.tscn +++ b/3d/kinematic_character/level.tscn @@ -1,29 +1,9 @@ -[gd_scene load_steps=17 format=2] +[gd_scene load_steps=16 format=2] [ext_resource path="res://cubelib.tres" type="MeshLibrary" id=1] [ext_resource path="res://cubio.tscn" type="PackedScene" id=2] [ext_resource path="res://purple_wood.png" type="Texture" id=3] - -[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_energy = 16.0 -texture_size = 0 - -[sub_resource type="Environment" id=2] -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 +[ext_resource path="res://default_env.tres" type="Environment" id=4] [sub_resource type="SpatialMaterial" id=3] albedo_color = Color( 0.7, 0.7, 0.7, 1 ) @@ -156,7 +136,7 @@ __meta__ = { mesh_library = ExtResource( 1 ) cell_octant_size = 4 data = { -"cells": PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, -536870912, 65533, 0, -536870912, 65534, 0, 0, 65535, 0, -536870912, 196603, 0, 0, 196604, 0, -536870912, 524292, 0, -536870912, 589820, 0, 0, 786432, 0, 0, 851967, 0, 0, 0, 1, -536870912, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 1, 0, 65530, 1, 0, 65531, 1, -536870912, 65532, 1, 0, 65533, 1, -536870912, 65534, 1, 0, 65535, 1, -536870912, 131075, 1, 0, 196603, 1, 0, 196604, 1, -536870912, 524292, 1, -536870912, 589820, 1, 0, 786432, 1, -536870912, 851967, 1, 0, 0, 2, 536870912, 1, 2, 0, 2, 2, 536870912, 3, 2, 0, 4, 2, -536870912, 65530, 2, -536870912, 65531, 2, 0, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 131075, 2, 0, 196603, 2, 0, 196604, 2, 536870912, 524292, 2, 0, 589820, 2, 0, 786432, 2, 0, 786433, 2, 0, 851966, 2, 0, 851967, 2, 0, 0, 3, 0, 1, 3, 0, 2, 3, 0, 3, 3, 0, 4, 3, 0, 65530, 3, 0, 65531, 3, 0, 65532, 3, 0, 65533, 3, 0, 65534, 3, 0, 65535, 3, 0, 196603, 3, 0, 524291, 3, 0, 524292, 3, 0, 589820, 3, 0, 786432, 3, 0, 786433, 3, 0, 851966, 3, 0, 851967, 3, 0, 0, 4, 0, 1, 4, 0, 2, 4, 0, 3, 4, 0, 4, 4, 0, 65530, 4, 0, 65531, 4, 0, 65532, 4, 0, 65533, 4, 0, 65534, 4, 0, 65535, 4, 0, 196603, 4, 0, 786432, 4, 0, 851967, 4, 0, 0, 5, 0, 1, 5, 0, 2, 5, 0, 3, 5, 0, 4, 5, 1073741824, 65530, 5, 0, 65531, 5, 0, 65532, 5, 0, 65533, 5, 0, 65534, 5, 0, 65535, 5, 536870912, 131075, 5, 0, 0, 6, 0, 1, 6, 0, 2, 6, 0, 3, 6, 0, 4, 6, 0, 65530, 6, 536870912, 65531, 6, 0, 65532, 6, 0, 65533, 6, 0, 65534, 6, 0, 65535, 6, 1073741824, 131075, 6, 0, 196603, 6, 0, 0, 7, 0, 1, 7, 0, 2, 7, 0, 3, 7, -536870912, 4, 7, 0, 65530, 7, 0, 65531, 7, 0, 65532, 7, 0, 65533, 7, -536870912, 65534, 7, 0, 65535, 7, 0, 131075, 7, 1610612736, 196603, 7, 0, 0, 8, -536870912, 1, 8, 0, 2, 8, 0, 3, 8, 0, 4, 8, 0, 65530, 8, 0, 65531, 8, 0, 65532, 8, 536870912, 65533, 8, 0, 65534, 8, 0, 65535, 8, 0, 131075, 8, 0, 196603, 8, 0, 196604, 8, 0, 0, 9, 0, 1, 9, 536870912, 2, 9, 0, 3, 9, 0, 4, 9, 0, 65530, 9, 0, 65531, 9, 0, 65532, 9, -536870912, 65533, 9, 536870912, 65534, 9, 0, 65535, 9, 0, 131073, 9, 0, 131074, 9, 0, 131075, 9, 0, 196603, 9, 0, 196604, 9, 0, 196605, 9, 0, 196608, 9, -536870912, 262142, 9, 0, 0, 10, -536870912, 1, 10, 0, 2, 10, 0, 3, 10, 0, 4, 10, 0, 65530, 10, 0, 65531, 10, 0, 65532, 10, 0, 65533, 10, 0, 65534, 10, -536870912, 65535, 10, 536870912, 0, 11, 0, 1, 11, 0, 2, 11, 0, 3, 11, 0, 4, 11, 0, 65530, 11, 0, 65531, 11, 0, 65532, 11, -536870912, 65533, 11, 0, 65534, 11, 1073741824, 65535, 11, 536870912, 0, 65532, 0, 1, 65532, 0, 2, 65532, 0, 3, 65532, 0, 4, 65532, 0, 65530, 65532, 0, 65531, 65532, 0, 65532, 65532, 0, 65533, 65532, 0, 65534, 65532, 0, 65535, 65532, 0, 0, 65533, 0, 1, 65533, 0, 2, 65533, 0, 3, 65533, 0, 4, 65533, 0, 65530, 65533, 0, 65531, 65533, 0, 65532, 65533, 0, 65533, 65533, 1073741824, 65534, 65533, 0, 65535, 65533, 0, 262145, 65533, 0, 262146, 65533, 0, 262147, 65533, 0, 589822, 65533, 0, 589823, 65533, 0, 655363, 65533, 536870912, 655364, 65533, 0, 720897, 65533, 0, 720898, 65533, 0, 786432, 65533, 0, 851967, 65533, 0, 0, 65534, 0, 1, 65534, 0, 2, 65534, 0, 3, 65534, 0, 4, 65534, 0, 65530, 65534, 0, 65531, 65534, -536870912, 65532, 65534, -536870912, 65533, 65534, 0, 65534, 65534, -536870912, 65535, 65534, -536870912, 65536, 65534, 0, 131071, 65534, 0, 196603, 65534, -536870912, 196604, 65534, 0, 196605, 65534, -536870912, 196606, 65534, -536870912, 196607, 65534, 0, 589822, 65534, -536870912, 589828, 65534, 0, 786432, 65534, 0, 851967, 65534, -536870912, 0, 65535, -536870912, 1, 65535, 0, 2, 65535, 0, 3, 65535, -536870912, 4, 65535, 0, 65530, 65535, -536870912, 65531, 65535, 0, 65532, 65535, 0, 65533, 65535, -536870912, 65534, 65535, -536870912, 65535, 65535, 0, 196603, 65535, -536870912, 196604, 65535, -536870912, 196611, 65535, 0, 589820, 65535, 0, 589821, 65535, -536870912, 589822, 65535, 0, 589828, 65535, -536870912, 786432, 65535, -536870912, 851967, 65535, 0 ) +"cells": PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, -536870912, 65533, 0, 0, 65534, 0, 0, 65535, 0, -536870912, 196603, 0, -536870912, 196604, 0, -536870912, 524292, 0, 0, 589820, 0, -536870912, 786432, 0, -536870912, 851967, 0, 0, 0, 1, 0, 1, 1, -536870912, 2, 1, 0, 3, 1, 0, 4, 1, -536870912, 65530, 1, 0, 65531, 1, 0, 65532, 1, -536870912, 65533, 1, -536870912, 65534, 1, 0, 65535, 1, -536870912, 131075, 1, 0, 196603, 1, 0, 196604, 1, 0, 524292, 1, -536870912, 589820, 1, -536870912, 786432, 1, 0, 851967, 1, 0, 0, 2, 0, 1, 2, 0, 2, 2, 0, 3, 2, -536870912, 4, 2, 0, 65530, 2, -536870912, 65531, 2, 0, 65532, 2, 0, 65533, 2, 0, 65534, 2, 536870912, 65535, 2, 0, 131075, 2, 0, 196603, 2, 0, 196604, 2, 0, 524292, 2, 0, 589820, 2, 0, 786432, 2, 0, 786433, 2, 1073741824, 851966, 2, 0, 851967, 2, 0, 0, 3, 0, 1, 3, 0, 2, 3, 0, 3, 3, 0, 4, 3, 0, 65530, 3, 0, 65531, 3, 0, 65532, 3, 0, 65533, 3, 0, 65534, 3, 0, 65535, 3, 0, 196603, 3, 0, 524291, 3, 0, 524292, 3, 0, 589820, 3, 0, 786432, 3, 0, 786433, 3, 0, 851966, 3, 0, 851967, 3, 0, 0, 4, 0, 1, 4, -536870912, 2, 4, 536870912, 3, 4, 0, 4, 4, 0, 65530, 4, 536870912, 65531, 4, 0, 65532, 4, 0, 65533, 4, -536870912, 65534, 4, 0, 65535, 4, 0, 196603, 4, 0, 786432, 4, 0, 851967, 4, 0, 0, 5, 0, 1, 5, 0, 2, 5, -536870912, 3, 5, 0, 4, 5, 0, 65530, 5, 0, 65531, 5, 0, 65532, 5, 536870912, 65533, 5, 0, 65534, 5, 536870912, 65535, 5, 0, 131075, 5, 0, 0, 6, 0, 1, 6, 0, 2, 6, 0, 3, 6, 0, 4, 6, 0, 65530, 6, 0, 65531, 6, 536870912, 65532, 6, 0, 65533, 6, 0, 65534, 6, 0, 65535, 6, 0, 131075, 6, 0, 196603, 6, 0, 0, 7, 0, 1, 7, 0, 2, 7, 0, 3, 7, 0, 4, 7, 0, 65530, 7, 0, 65531, 7, -536870912, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 131075, 7, 0, 196603, 7, -536870912, 0, 8, 1073741824, 1, 8, 0, 2, 8, 0, 3, 8, 0, 4, 8, 0, 65530, 8, 0, 65531, 8, 0, 65532, 8, 0, 65533, 8, 0, 65534, 8, 0, 65535, 8, 536870912, 131075, 8, 0, 196603, 8, 0, 196604, 8, 0, 0, 9, 0, 1, 9, 0, 2, 9, 0, 3, 9, 0, 4, 9, 536870912, 65530, 9, 1073741824, 65531, 9, 0, 65532, 9, 0, 65533, 9, 0, 65534, 9, 0, 65535, 9, 0, 131073, 9, 0, 131074, 9, 0, 131075, 9, 0, 196603, 9, 0, 196604, 9, 0, 196605, 9, 0, 196608, 9, 0, 262142, 9, 0, 0, 10, 0, 1, 10, 0, 2, 10, 0, 3, 10, 0, 4, 10, 0, 65530, 10, 0, 65531, 10, 0, 65532, 10, 0, 65533, 10, 0, 65534, 10, 0, 65535, 10, 0, 0, 11, 0, 1, 11, 0, 2, 11, 0, 3, 11, 0, 4, 11, 0, 65530, 11, -536870912, 65531, 11, 0, 65532, 11, 0, 65533, 11, 0, 65534, 11, 0, 65535, 11, 0, 0, 65532, 0, 1, 65532, 0, 2, 65532, 0, 3, 65532, 0, 4, 65532, 0, 65530, 65532, 0, 65531, 65532, 0, 65532, 65532, -536870912, 65533, 65532, 0, 65534, 65532, 0, 65535, 65532, 536870912, 0, 65533, 536870912, 1, 65533, -536870912, 2, 65533, 0, 3, 65533, 0, 4, 65533, -536870912, 65530, 65533, 0, 65531, 65533, -536870912, 65532, 65533, 0, 65533, 65533, -536870912, 65534, 65533, -536870912, 65535, 65533, 0, 262145, 65533, -536870912, 262146, 65533, 0, 262147, 65533, 0, 589822, 65533, 0, 589823, 65533, 0, 655363, 65533, 0, 655364, 65533, 0, 720897, 65533, -536870912, 720898, 65533, 0, 786432, 65533, -536870912, 851967, 65533, 0, 0, 65534, -536870912, 1, 65534, 0, 2, 65534, -536870912, 3, 65534, -536870912, 4, 65534, -536870912, 65530, 65534, 0, 65531, 65534, 0, 65532, 65534, -536870912, 65533, 65534, 0, 65534, 65534, -536870912, 65535, 65534, -536870912, 65536, 65534, 0, 131071, 65534, -536870912, 196603, 65534, -536870912, 196604, 65534, 0, 196605, 65534, -536870912, 196606, 65534, -536870912, 196607, 65534, 0, 589822, 65534, -536870912, 589828, 65534, -536870912, 786432, 65534, 0, 851967, 65534, -536870912, 0, 65535, -536870912, 1, 65535, 0, 2, 65535, -536870912, 3, 65535, -536870912, 4, 65535, 0, 65530, 65535, -536870912, 65531, 65535, -536870912, 65532, 65535, 0, 65533, 65535, 0, 65534, 65535, -536870912, 65535, 65535, 0, 196603, 65535, -536870912, 196604, 65535, -536870912, 196611, 65535, 0, 589820, 65535, -536870912, 589821, 65535, -536870912, 589822, 65535, 0, 589828, 65535, -536870912, 786432, 65535, -536870912, 851967, 65535, 0 ) } __meta__ = { "_editor_clip_": 0, @@ -164,14 +144,14 @@ __meta__ = { } [node name="DirectionalLight" type="DirectionalLight" parent="."] -transform = Transform( 0.835501, 0.057148, -0.54651, 0.54949, -0.0868937, 0.83097, 0, -0.994577, -0.104002, 0, 10.2259, 0 ) +transform = Transform( -0.173649, 0.806707, -0.564863, 0, 0.573576, 0.819152, 0.984808, 0.142244, -0.0996007, 0, 0, 0 ) light_energy = 1.3 shadow_enabled = true shadow_bias = 1.0 directional_shadow_normal_bias = 0.2 [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( 2 ) +environment = ExtResource( 4 ) [node name="Cubio" parent="." instance=ExtResource( 2 )] diff --git a/3d/kinematic_character/project.godot b/3d/kinematic_character/project.godot index a0f6452a..3c4d8bbf 100644 --- a/3d/kinematic_character/project.godot +++ b/3d/kinematic_character/project.godot @@ -85,3 +85,4 @@ shadow_filter=3 [rendering] quality/filters/msaa=2 +environment/default_environment="res://default_env.tres" diff --git a/3d/kinematic_character/purplecube.tscn b/3d/kinematic_character/purple_cube.tscn similarity index 99% rename from 3d/kinematic_character/purplecube.tscn rename to 3d/kinematic_character/purple_cube.tscn index ddd5b46a..7e45df81 100644 --- a/3d/kinematic_character/purplecube.tscn +++ b/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" diff --git a/3d/navmesh/default_env.tres b/3d/navmesh/default_env.tres new file mode 100644 index 00000000..8378cea4 --- /dev/null +++ b/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 diff --git a/3d/navmesh/navmesh.tscn b/3d/navmesh/navmesh.tscn index 281f17f7..6a4551ff 100644 --- a/3d/navmesh/navmesh.tscn +++ b/3d/navmesh/navmesh.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=15 format=2] +[gd_scene load_steps=10 format=2] [ext_resource path="res://navmesh.gd" type="Script" id=1] -[ext_resource path="res://particle.png" type="Texture" id=2] +[ext_resource path="res://default_env.tres" type="Environment" id=3] [sub_resource type="SpatialMaterial" id=1] albedo_color = Color( 0.258902, 0.392157, 1, 1 ) @@ -26,29 +26,15 @@ surfaces/0 = { vertices = PoolVector3Array( 0, 0, -1, -0.39384, 0.2, -2.03101, -1.23509, 0.2, -1.49037, -1, 0, -1, -0.39384, 0.2, -2.03101, -1.24385, 0.5, -2.65188, -1.65927, 0.5, -1.74225, -1.23509, 0.2, -1.49037, -1.24385, 0.5, -2.65188, -2.2439, 0.9, -2.70735, -2.10158, 0.9, -1.71753, -1.65927, 0.5, -1.74225, -2.2439, 0.9, -2.70735, -3.06858, 1.3, -2.23463, -2.41372, 1.3, -1.47888, -2.10158, 0.9, -1.71753, -3.06858, 1.3, -2.23463, -3.37908, 1.7, -1.43419, -2.41959, 1.7, -1.15246, -2.41372, 1.3, -1.47888, -3.37908, 1.7, -1.43419, -3.29166, 1.8, -0.590103, -2.33217, 1.8, -0.871835, -2.41959, 1.7, -1.15246, -3.29166, 1.8, -0.590103, -2.78394, 2, -0.00816378, -2.04637, 2, -0.483217, -2.33217, 1.8, -0.871835, -2.78394, 2, -0.00816378, -2.29613, 2.30275, 0.619816, -1.55305, 2.30275, -0.0340935, -2.04637, 2, -0.483217, 2, 0, 2.75, 2, 0, 4, 2.67914, 0.69546, 4, 2.67914, 0.69546, 2.75, 2.66646, 0.697839, -1, 2.66646, 0.697839, 0.25, 3.67502, 1.03457, 0.25, 3.67502, 1.03457, -1, 5.07502, 1.03457, -1, 5.07502, 1.03457, 0.25, 6.37502, 1.03457, 0.25, 6.37502, 1.03457, -1, 3.67502, 1.03457, -1, 3.67502, 1.03457, 0.25, -1, 0, -1, -0.383353, 0, 1.53551, 0.752355, 0, 0.0592138, 0, 0, -1, 5.07502, 1.03457, 1.5, 5.07502, 1.03457, 2.75, 6.37502, 1.03457, 2.75, 3.67502, 1.03457, 2.75, 3.67502, 1.03457, 4, 5.07502, 1.03457, 4, 6.37502, 1.03457, 4, 5.07502, 1.03457, 2.75, 5.07502, 1.03457, 1.5, 4.22547, 1.51352, 1.5, 4.22547, 1.51352, 2.75, 3.53746, 2.33457, 2.75, 3.53746, 2.33457, 1.5, 2.47502, 2.33457, 1.5, 2.47502, 2.33457, 2.75, 4.22547, 1.51352, 2.75, 4.22547, 1.51352, 1.5, 3.53746, 2.33457, 1.5, 3.53746, 2.33457, 2.75, 2, 0, -1, 2, 0, 0.25, 2.66646, 0.697839, 0.25, 2.66646, 0.697839, -1, 2.67914, 0.69546, 2.75, 2.67914, 0.69546, 4, 3.67502, 1.03457, 4, 3.67502, 1.03457, 2.75, 2, 0, 0.25, 2, 0, -1, 1.25737, 0, 0.475594, 2, 0, 2.75, 0.0351091, 0, 1.82824, 2, 0, 4, -1, 0, 4, 2.37344, 2.33421, 1.64881, 2.2283, 2.33421, 1.17032, 1.33102, 2.33421, 1.54199, 1.4209, 2.33421, 1.83828, -1.54525, 2.33421, 0.0256338, -1.93176, 2.33421, 0.342839, -1.24502, 2.33421, 1.02958, -1.00568, 2.33421, 0.833161, -1.10428, 2.33421, 4.5029, -0.625793, 2.11952, 4.64805, -0.436321, 2.11952, 3.6955, -0.732612, 2.33421, 3.60562, 2.37344, 2.33421, 2.64402, 2.42245, 2.33421, 2.14641, 1.45125, 2.33421, 2.14641, 1.4209, 2.33421, 2.45455, -0.625794, 2.11952, -0.355217, -1.10428, 2.33421, -0.210071, -0.732612, 2.33421, 0.687205, -0.436321, 2.11952, 0.597326, -1.93176, 2.33421, 3.94999, -1.54525, 2.33421, 4.2672, -1.00568, 2.33421, 3.45967, -1.24502, 2.33421, 3.26324, 1.99259, 2.33421, 3.56347, 2.2283, 2.33421, 3.1225, 1.33102, 2.33421, 2.75084, 1.18507, 2.33421, 3.0239, -2.48467, 2.33421, 3.1225, -2.24897, 2.33421, 3.56348, -1.44144, 2.33421, 3.0239, -1.5874, 2.33421, 2.75084, 0.847897, 2.33421, -0.210072, 0.369414, 2.11952, -0.355218, 0.179942, 2.11952, 0.597326, 0.476234, 2.33421, 0.687205, 1.28887, 2.33421, 4.2672, 1.67539, 2.33421, 3.94999, 0.988643, 2.33421, 3.26324, 0.749301, 2.33421, 3.45967, -2.67883, 2.33421, 2.14641, -2.62982, 2.33421, 2.64402, -1.67728, 2.33421, 2.45455, -1.70762, 2.33421, 2.14641, 1.67539, 2.33421, 0.342837, 1.28887, 2.33421, 0.0256318, 0.749298, 2.33421, 0.83316, 0.988641, 2.33421, 1.02958, 0.369419, 2.11952, 4.64805, 0.847901, 2.33421, 4.5029, 0.476237, 2.33421, 3.60562, 0.179945, 2.11952, 3.6955, -2.48467, 2.33421, 1.17033, -2.62982, 2.33421, 1.64881, -1.67728, 2.33421, 1.83828, -1.5874, 2.33421, 1.54199, 1.99259, 2.33421, 0.729351, 1.18506, 2.33421, 1.26892, -2.24897, 2.33421, 0.729354, -1.44144, 2.33421, 1.26893, -0.625793, 2.11952, 4.64805, -0.128187, 2.11952, 4.69706, -0.128188, 2.11952, 3.72585, -0.436321, 2.11952, 3.6955, -1.10428, 2.33421, -0.210071, -0.732612, 2.33421, 0.687205, -1.10428, 2.33421, 4.5029, -0.732612, 2.33421, 3.60562, -0.128188, 2.11952, -0.404227, -0.625794, 2.11952, -0.355217, -0.436321, 2.11952, 0.597326, -0.128188, 2.11952, 0.566978, 0.369414, 2.11952, -0.355218, 0.179942, 2.11952, 0.597326, 0.847897, 2.33421, -0.210072, 0.476234, 2.33421, 0.687205, 0.847901, 2.33421, 4.5029, 0.476237, 2.33421, 3.60562, 0.369419, 2.11952, 4.64805, 0.179945, 2.11952, 3.6955, 2.42245, 2.33421, 2.14641, 2.47502, 2.33457, 2.75, 2.47502, 2.33457, 1.5, 2.42245, 2.33421, 2.14641, 2.47502, 2.33457, 1.5, 2.37344, 2.33421, 1.64881, 2.37344, 2.33421, 2.64402, 2.47502, 2.33457, 2.75, -2.29613, 2.30275, 0.619816, -1.93176, 2.33421, 0.342839, -1.55305, 2.30275, -0.0340935, -1.93176, 2.33421, 0.342839, -2.29613, 2.30275, 0.619816, -2.24897, 2.33421, 0.729354, -1.54525, 2.33421, 0.0256338, -1.55305, 2.30275, -0.0340935, -1.93176, 2.33421, 0.342839, 0.752355, 0, 0.0592138, -1.94658, 4.01029, 3.02298, -1.44156, 4.01029, 3.43936, 1.25737, 0, 0.475594, -1.94658, 4.01029, 3.02298, -2.88634, 4.01029, 4.04929, -2.38132, 4.01029, 4.46567, -1.44156, 4.01029, 3.43936, -0.984051, 4.01029, 5.61564, -0.0442939, 4.01029, 4.58932, -0.426647, 4.01029, 5.6129, -0.00818396, 4.01029, 5.1559, -0.426647, 4.01029, 5.6129, 3.24657, 1.03679, 5.69412, 3.26271, 1.03679, 5.07468, -0.00818396, 4.01029, 5.1559, 3.24657, 1.03679, 5.69412, 5.48249, 1.03679, 5.69412, 5.49863, 1.03679, 5.07468, 3.26271, 1.03679, 5.07468, 5.96677, 1.03679, 5.69412, 5.98291, 1.03679, 5.07468, 6.37502, 1.03457, 4, 5.07502, 1.03457, 4, 5.49863, 1.03679, 5.07468, 5.98291, 1.03679, 5.07468 ) polygons = [ PoolIntArray( 0, 2, 1 ), PoolIntArray( 0, 3, 2 ), PoolIntArray( 4, 6, 5 ), PoolIntArray( 4, 7, 6 ), PoolIntArray( 8, 10, 9 ), PoolIntArray( 8, 11, 10 ), PoolIntArray( 12, 14, 13 ), PoolIntArray( 12, 15, 14 ), PoolIntArray( 16, 18, 17 ), PoolIntArray( 16, 19, 18 ), PoolIntArray( 20, 22, 21 ), PoolIntArray( 20, 23, 22 ), PoolIntArray( 24, 26, 25 ), PoolIntArray( 24, 27, 26 ), PoolIntArray( 28, 30, 29 ), PoolIntArray( 28, 31, 30 ), PoolIntArray( 32, 34, 33 ), PoolIntArray( 32, 35, 34 ), PoolIntArray( 36, 38, 37 ), PoolIntArray( 36, 39, 38 ), PoolIntArray( 40, 42, 41 ), PoolIntArray( 40, 43, 42 ), PoolIntArray( 44, 41, 45 ), PoolIntArray( 44, 40, 41 ), PoolIntArray( 46, 48, 47 ), PoolIntArray( 46, 49, 48 ), PoolIntArray( 42, 50, 41 ), PoolIntArray( 42, 51, 50 ), PoolIntArray( 42, 52, 51 ), PoolIntArray( 53, 55, 54 ), PoolIntArray( 53, 51, 55 ), PoolIntArray( 51, 56, 55 ), PoolIntArray( 51, 52, 56 ), PoolIntArray( 57, 59, 58 ), PoolIntArray( 57, 60, 59 ), PoolIntArray( 61, 63, 62 ), PoolIntArray( 61, 64, 63 ), PoolIntArray( 65, 67, 66 ), PoolIntArray( 65, 68, 67 ), PoolIntArray( 69, 71, 70 ), PoolIntArray( 69, 72, 71 ), PoolIntArray( 73, 75, 74 ), PoolIntArray( 73, 76, 75 ), PoolIntArray( 77, 49, 78 ), PoolIntArray( 77, 48, 49 ), PoolIntArray( 48, 77, 79 ), PoolIntArray( 77, 80, 79 ), PoolIntArray( 81, 80, 82 ), PoolIntArray( 81, 79, 80 ), PoolIntArray( 82, 83, 81 ), PoolIntArray( 81, 83, 47 ), PoolIntArray( 83, 46, 47 ), PoolIntArray( 84, 86, 85 ), PoolIntArray( 84, 87, 86 ), PoolIntArray( 88, 90, 89 ), PoolIntArray( 88, 91, 90 ), PoolIntArray( 92, 94, 93 ), PoolIntArray( 92, 95, 94 ), PoolIntArray( 96, 98, 97 ), PoolIntArray( 96, 99, 98 ), PoolIntArray( 100, 102, 101 ), PoolIntArray( 100, 103, 102 ), PoolIntArray( 104, 106, 105 ), PoolIntArray( 104, 107, 106 ), PoolIntArray( 108, 110, 109 ), PoolIntArray( 108, 111, 110 ), PoolIntArray( 112, 114, 113 ), PoolIntArray( 112, 115, 114 ), PoolIntArray( 116, 118, 117 ), PoolIntArray( 116, 119, 118 ), PoolIntArray( 120, 122, 121 ), PoolIntArray( 120, 123, 122 ), PoolIntArray( 124, 126, 125 ), PoolIntArray( 124, 127, 126 ), PoolIntArray( 128, 130, 129 ), PoolIntArray( 128, 131, 130 ), PoolIntArray( 132, 134, 133 ), PoolIntArray( 132, 135, 134 ), PoolIntArray( 136, 138, 137 ), PoolIntArray( 136, 139, 138 ), PoolIntArray( 85, 141, 140 ), PoolIntArray( 85, 86, 141 ), PoolIntArray( 89, 143, 142 ), PoolIntArray( 89, 90, 143 ), PoolIntArray( 144, 146, 145 ), PoolIntArray( 144, 147, 146 ), PoolIntArray( 97, 87, 84 ), PoolIntArray( 97, 98, 87 ), PoolIntArray( 148, 91, 88 ), PoolIntArray( 148, 149, 91 ), PoolIntArray( 105, 151, 150 ), PoolIntArray( 105, 106, 151 ), PoolIntArray( 109, 99, 96 ), PoolIntArray( 109, 110, 99 ), PoolIntArray( 152, 154, 153 ), PoolIntArray( 152, 155, 154 ), PoolIntArray( 113, 107, 104 ), PoolIntArray( 113, 114, 107 ), PoolIntArray( 156, 155, 152 ), PoolIntArray( 156, 157, 155 ), PoolIntArray( 121, 111, 108 ), PoolIntArray( 121, 122, 111 ), PoolIntArray( 125, 115, 112 ), PoolIntArray( 125, 126, 115 ), PoolIntArray( 129, 159, 158 ), PoolIntArray( 129, 130, 159 ), PoolIntArray( 160, 123, 120 ), PoolIntArray( 160, 161, 123 ), PoolIntArray( 137, 127, 124 ), PoolIntArray( 137, 138, 127 ), PoolIntArray( 140, 131, 128 ), PoolIntArray( 140, 141, 131 ), PoolIntArray( 145, 163, 162 ), PoolIntArray( 145, 146, 163 ), PoolIntArray( 142, 139, 136 ), PoolIntArray( 142, 143, 139 ), PoolIntArray( 164, 166, 165 ), PoolIntArray( 167, 169, 168 ), PoolIntArray( 167, 171, 170 ), PoolIntArray( 172, 174, 173 ), PoolIntArray( 175, 177, 176 ), PoolIntArray( 178, 180, 179 ), PoolIntArray( 181, 183, 182 ), PoolIntArray( 181, 184, 183 ), PoolIntArray( 185, 187, 186 ), PoolIntArray( 185, 188, 187 ), PoolIntArray( 187, 190, 189 ), PoolIntArray( 187, 188, 190 ), PoolIntArray( 189, 192, 191 ), PoolIntArray( 189, 190, 192 ), PoolIntArray( 193, 195, 194 ), PoolIntArray( 193, 196, 195 ), PoolIntArray( 197, 199, 198 ), PoolIntArray( 197, 200, 199 ), PoolIntArray( 198, 202, 201 ), PoolIntArray( 198, 199, 202 ), PoolIntArray( 203, 205, 204 ), PoolIntArray( 203, 206, 205 ) ] -[sub_resource type="ProceduralSky" id=4] -sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) -sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) -sky_curve = 0.25 -ground_bottom_color = Color( 0.101961, 0.188235, 0.123529, 1 ) -ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) -ground_curve = 0.01 -sun_energy = 16.0 - -[sub_resource type="Environment" id=5] -background_mode = 2 -background_sky = SubResource( 4 ) -ssao_blur = 1 - -[sub_resource type="SpatialMaterial" id=6] +[sub_resource type="SpatialMaterial" id=4] albedo_color = Color( 0.0789223, 0.189529, 0.428549, 1 ) roughness = 0.0 -[sub_resource type="SpatialMaterial" id=7] +[sub_resource type="SpatialMaterial" id=5] albedo_color = Color( 0.0789223, 0.0424706, 0.0941569, 1 ) roughness = 0.0 -[sub_resource type="SpatialMaterial" id=8] +[sub_resource type="SpatialMaterial" id=6] albedo_color = Color( 0, 0.424824, 0.733765, 1 ) roughness = 0.0 emission_enabled = true @@ -57,7 +43,7 @@ emission_energy = 1.0 emission_operator = 0 emission_on_uv2 = false -[sub_resource type="ArrayMesh" id=9] +[sub_resource type="ArrayMesh" id=7] surfaces/0 = { "aabb": AABB( -1, -0.249904, -0.820953, 2, 1.2816, 1.63222 ), "array_data": PoolByteArray( 173, 187, 96, 41, 0, 0, 0, 60, 153, 183, 0, 0, 231, 187, 64, 45, 0, 0, 0, 60, 138, 211, 2, 0, 192, 187, 64, 45, 16, 177, 0, 60, 143, 205, 231, 0, 135, 187, 96, 41, 235, 176, 0, 60, 156, 184, 232, 0, 255, 187, 247, 48, 57, 168, 0, 60, 130, 12, 1, 0, 216, 187, 4, 51, 99, 174, 0, 60, 133, 29, 252, 0, 178, 187, 4, 51, 127, 179, 0, 60, 137, 20, 220, 0, 216, 187, 247, 48, 249, 177, 0, 60, 133, 250, 227, 0, 100, 187, 118, 55, 241, 172, 0, 60, 135, 38, 0, 0, 166, 186, 142, 57, 212, 168, 0, 60, 148, 66, 0, 0, 134, 186, 142, 57, 218, 176, 0, 60, 155, 69, 228, 0, 63, 187, 118, 55, 134, 178, 0, 60, 141, 41, 224, 0, 139, 185, 203, 58, 156, 31, 0, 60, 172, 94, 0, 0, 113, 184, 135, 59, 156, 31, 0, 60, 202, 114, 0, 0, 91, 184, 135, 59, 101, 172, 0, 60, 203, 114, 241, 0, 111, 185, 203, 58, 154, 173, 0, 60, 177, 96, 235, 0, 202, 179, 169, 179, 0, 0, 0, 60, 245, 130, 0, 0, 164, 183, 171, 178, 0, 0, 0, 60, 233, 132, 0, 0, 126, 183, 171, 178, 229, 172, 0, 60, 234, 132, 251, 0, 164, 179, 169, 179, 254, 168, 0, 60, 245, 130, 254, 0, 31, 182, 237, 59, 156, 31, 0, 60, 228, 123, 0, 0, 62, 178, 21, 60, 156, 31, 0, 60, 242, 126, 0, 0, 31, 178, 21, 60, 241, 164, 0, 60, 243, 126, 252, 0, 1, 182, 237, 59, 195, 169, 0, 60, 229, 123, 248, 0, 140, 185, 15, 177, 0, 0, 0, 60, 215, 137, 0, 0, 157, 186, 62, 174, 0, 0, 0, 60, 188, 149, 0, 0, 124, 186, 62, 174, 61, 176, 0, 60, 190, 150, 240, 0, 112, 185, 15, 177, 28, 175, 0, 60, 216, 137, 247, 0, 67, 187, 214, 167, 0, 0, 0, 60, 163, 171, 0, 0, 31, 187, 214, 167, 167, 176, 0, 60, 165, 171, 235, 0, 31, 185, 203, 58, 185, 177, 0, 60, 185, 96, 215, 0, 37, 186, 142, 57, 46, 180, 0, 60, 166, 71, 204, 0, 168, 181, 237, 59, 28, 174, 0, 60, 231, 123, 241, 0, 27, 184, 135, 59, 138, 176, 0, 60, 207, 113, 227, 0, 32, 185, 15, 177, 249, 178, 0, 60, 218, 137, 237, 0, 15, 183, 171, 178, 205, 176, 0, 60, 235, 132, 246, 0, 182, 186, 214, 167, 144, 180, 0, 60, 172, 172, 214, 0, 28, 186, 62, 174, 40, 180, 0, 60, 194, 150, 225, 0, 77, 187, 64, 45, 247, 180, 0, 60, 153, 204, 205, 0, 24, 187, 96, 41, 211, 180, 0, 60, 163, 185, 209, 0, 63, 187, 4, 51, 209, 181, 0, 60, 149, 18, 192, 0, 100, 187, 247, 48, 90, 181, 0, 60, 145, 242, 198, 0, 212, 186, 118, 55, 53, 181, 0, 60, 153, 42, 196, 0, 50, 179, 169, 179, 229, 172, 0, 60, 246, 130, 251, 0, 196, 177, 21, 60, 195, 169, 0, 60, 244, 126, 249, 0, 155, 184, 203, 58, 53, 180, 0, 60, 195, 94, 199, 0, 135, 185, 142, 57, 203, 181, 0, 60, 180, 71, 185, 0, 23, 181, 237, 59, 138, 176, 0, 60, 233, 122, 234, 0, 100, 183, 135, 59, 179, 178, 0, 60, 213, 111, 215, 0, 156, 184, 15, 177, 15, 181, 0, 60, 222, 138, 229, 0, 90, 182, 171, 178, 249, 178, 0, 60, 237, 132, 241, 0, 10, 186, 214, 167, 160, 182, 0, 60, 182, 174, 196, 0, 127, 185, 62, 174, 9, 182, 0, 60, 201, 151, 212, 0, 146, 186, 64, 45, 54, 183, 0, 60, 166, 205, 184, 0, 98, 186, 96, 41, 1, 183, 0, 60, 174, 187, 190, 0, 134, 186, 4, 51, 185, 183, 0, 60, 165, 20, 171, 0, 166, 186, 247, 48, 136, 183, 0, 60, 160, 243, 175, 0, 37, 186, 118, 55, 1, 183, 0, 60, 170, 43, 174, 0, 122, 178, 169, 179, 28, 175, 0, 60, 247, 130, 249, 0, 48, 177, 21, 60, 101, 172, 0, 60, 245, 125, 245, 0, 214, 183, 203, 58, 99, 181, 0, 60, 206, 93, 186, 0, 180, 184, 142, 57, 54, 183, 0, 60, 196, 71, 171, 0, 84, 180, 237, 59, 216, 177, 0, 60, 237, 122, 228, 0, 73, 182, 135, 59, 76, 180, 0, 60, 220, 109, 205, 0, 216, 183, 15, 177, 113, 182, 0, 60, 228, 138, 221, 0, 103, 181, 171, 178, 112, 180, 0, 60, 240, 132, 237, 0, 34, 185, 214, 167, 55, 184, 0, 60, 195, 175, 181, 0, 173, 184, 62, 174, 174, 183, 0, 60, 210, 153, 200, 0, 150, 185, 64, 45, 150, 184, 0, 60, 182, 207, 166, 0, 109, 185, 96, 41, 117, 184, 0, 60, 188, 189, 174, 0, 140, 185, 4, 51, 178, 184, 0, 60, 184, 26, 156, 0, 168, 185, 247, 48, 184, 184, 0, 60, 178, 251, 157, 0, 57, 185, 118, 55, 74, 184, 0, 60, 188, 43, 159, 0, 130, 177, 169, 179, 134, 176, 0, 60, 249, 130, 247, 0, 106, 176, 21, 60, 186, 173, 0, 60, 247, 125, 242, 0, 40, 182, 203, 58, 91, 182, 0, 60, 219, 91, 177, 0, 100, 183, 142, 57, 48, 184, 0, 60, 212, 70, 161, 0, 205, 178, 237, 59, 234, 178, 0, 60, 241, 121, 224, 0, 240, 180, 135, 59, 18, 181, 0, 60, 229, 108, 197, 0, 41, 182, 15, 177, 147, 183, 0, 60, 234, 139, 215, 0, 62, 180, 171, 178, 55, 181, 0, 60, 244, 132, 233, 0, 9, 184, 214, 167, 245, 184, 0, 60, 209, 177, 170, 0, 89, 183, 62, 174, 132, 184, 0, 60, 221, 154, 191, 0, 100, 184, 64, 45, 101, 185, 0, 60, 200, 210, 153, 0, 68, 184, 96, 41, 62, 185, 0, 60, 204, 190, 162, 0, 91, 184, 4, 51, 97, 185, 0, 60, 203, 33, 146, 0, 113, 184, 247, 48, 129, 185, 0, 60, 198, 4, 144, 0, 27, 184, 118, 55, 239, 184, 0, 60, 206, 42, 148, 0, 84, 176, 169, 179, 81, 177, 0, 60, 250, 130, 245, 0, 239, 174, 21, 60, 209, 174, 0, 60, 249, 125, 240, 0, 62, 180, 203, 58, 19, 183, 0, 60, 231, 90, 171, 0, 23, 181, 142, 57, 158, 184, 0, 60, 227, 70, 155, 0, 175, 176, 237, 59, 182, 179, 0, 60, 246, 121, 220, 0, 205, 178, 135, 59, 166, 181, 0, 60, 238, 107, 191, 0, 62, 180, 15, 177, 53, 184, 0, 60, 241, 139, 211, 0, 217, 177, 171, 178, 204, 181, 0, 60, 248, 133, 231, 0, 143, 181, 214, 167, 130, 185, 0, 60, 224, 178, 162, 0, 16, 181, 62, 174, 4, 185, 0, 60, 232, 155, 185, 0, 12, 182, 64, 45, 254, 185, 0, 60, 218, 213, 143, 0, 224, 181, 96, 41, 211, 185, 0, 60, 221, 192, 153, 0, 1, 182, 4, 51, 228, 185, 0, 60, 222, 38, 141, 0, 31, 182, 247, 48, 22, 186, 0, 60, 218, 12, 136, 0, 168, 181, 118, 55, 106, 185, 0, 60, 223, 42, 142, 0, 246, 173, 169, 179, 233, 177, 0, 60, 252, 130, 244, 0, 199, 172, 21, 60, 161, 175, 0, 60, 251, 125, 238, 0, 83, 176, 203, 58, 133, 183, 0, 60, 244, 89, 167, 0, 48, 177, 142, 57, 226, 184, 0, 60, 242, 69, 152, 0, 199, 172, 237, 59, 25, 180, 0, 60, 251, 121, 218, 0, 239, 174, 135, 59, 1, 182, 0, 60, 247, 106, 188, 0, 84, 176, 15, 177, 119, 184, 0, 60, 249, 139, 208, 0, 246, 173, 171, 178, 39, 182, 0, 60, 252, 133, 229, 0, 171, 177, 214, 167, 217, 185, 0, 60, 240, 179, 157, 0, 41, 177, 62, 174, 83, 185, 0, 60, 244, 155, 181, 0, 42, 178, 64, 45, 93, 186, 0, 60, 237, 215, 138, 0, 253, 177, 96, 41, 47, 186, 0, 60, 239, 193, 148, 0, 31, 178, 4, 51, 52, 186, 0, 60, 239, 42, 138, 0, 62, 178, 247, 48, 114, 186, 0, 60, 237, 17, 132, 0, 196, 177, 118, 55, 182, 185, 0, 60, 240, 42, 138, 0, 20, 170, 169, 179, 70, 178, 0, 60, 254, 130, 243, 0, 223, 168, 21, 60, 16, 176, 0, 60, 254, 125, 237, 0, 0, 0, 203, 58, 171, 183, 0, 60, 0, 88, 166, 0, 0, 0, 142, 57, 249, 184, 0, 60, 0, 69, 150, 0, 0, 0, 237, 59, 46, 180, 0, 60, 0, 120, 218, 0, 0, 0, 135, 59, 32, 182, 0, 60, 0, 106, 187, 0, 0, 0, 15, 177, 142, 184, 0, 60, 0, 140, 207, 0, 0, 0, 171, 178, 70, 182, 0, 60, 0, 133, 229, 0, 0, 0, 214, 167, 247, 185, 0, 60, 0, 180, 156, 0, 0, 0, 62, 174, 110, 185, 0, 60, 0, 156, 179, 0, 0, 0, 64, 45, 125, 186, 0, 60, 0, 216, 136, 0, 0, 0, 96, 41, 78, 186, 0, 60, 0, 193, 147, 0, 0, 0, 4, 51, 79, 186, 0, 60, 0, 43, 137, 0, 0, 0, 247, 48, 145, 186, 0, 60, 0, 19, 131, 0, 0, 0, 118, 55, 207, 185, 0, 60, 0, 42, 137, 0, 0, 0, 169, 179, 102, 178, 0, 60, 0, 130, 243, 0, 0, 0, 21, 60, 38, 176, 0, 60, 0, 125, 237, 0, 83, 48, 203, 58, 133, 183, 0, 60, 12, 89, 167, 0, 48, 49, 142, 57, 226, 184, 0, 60, 14, 69, 152, 0, 199, 44, 237, 59, 25, 180, 0, 60, 5, 121, 218, 0, 239, 46, 135, 59, 1, 182, 0, 60, 9, 106, 188, 0, 84, 48, 15, 177, 119, 184, 0, 60, 7, 139, 208, 0, 246, 45, 171, 178, 39, 182, 0, 60, 4, 133, 229, 0, 171, 49, 214, 167, 217, 185, 0, 60, 16, 179, 157, 0, 41, 49, 62, 174, 83, 185, 0, 60, 12, 155, 181, 0, 42, 50, 64, 45, 93, 186, 0, 60, 19, 215, 138, 0, 253, 49, 96, 41, 47, 186, 0, 60, 17, 193, 148, 0, 31, 50, 4, 51, 52, 186, 0, 60, 17, 42, 138, 0, 62, 50, 247, 48, 114, 186, 0, 60, 19, 17, 132, 0, 196, 49, 118, 55, 182, 185, 0, 60, 16, 42, 138, 0, 20, 42, 169, 179, 70, 178, 0, 60, 2, 130, 243, 0, 223, 40, 21, 60, 16, 176, 0, 60, 2, 125, 237, 0, 62, 52, 203, 58, 19, 183, 0, 60, 25, 90, 171, 0, 23, 53, 142, 57, 158, 184, 0, 60, 29, 70, 155, 0, 175, 48, 237, 59, 182, 179, 0, 60, 10, 121, 220, 0, 205, 50, 135, 59, 166, 181, 0, 60, 18, 107, 191, 0, 62, 52, 15, 177, 53, 184, 0, 60, 15, 139, 211, 0, 217, 49, 171, 178, 204, 181, 0, 60, 8, 133, 231, 0, 143, 53, 214, 167, 130, 185, 0, 60, 32, 178, 162, 0, 16, 53, 62, 174, 4, 185, 0, 60, 24, 155, 185, 0, 12, 54, 64, 45, 254, 185, 0, 60, 38, 213, 143, 0, 224, 53, 96, 41, 211, 185, 0, 60, 35, 192, 153, 0, 1, 54, 4, 51, 228, 185, 0, 60, 35, 38, 141, 0, 31, 54, 247, 48, 22, 186, 0, 60, 38, 12, 136, 0, 168, 53, 118, 55, 106, 185, 0, 60, 33, 42, 142, 0, 246, 45, 169, 179, 233, 177, 0, 60, 4, 130, 244, 0, 199, 44, 21, 60, 161, 175, 0, 60, 5, 125, 238, 0, 40, 54, 203, 58, 91, 182, 0, 60, 37, 91, 177, 0, 100, 55, 142, 57, 48, 184, 0, 60, 45, 70, 161, 0, 205, 50, 237, 59, 234, 178, 0, 60, 15, 121, 224, 0, 240, 52, 135, 59, 18, 181, 0, 60, 27, 108, 197, 0, 41, 54, 15, 177, 147, 183, 0, 60, 22, 139, 215, 0, 62, 52, 171, 178, 55, 181, 0, 60, 12, 132, 233, 0, 9, 56, 214, 167, 245, 184, 0, 60, 47, 177, 170, 0, 89, 55, 62, 174, 132, 184, 0, 60, 35, 154, 191, 0, 100, 56, 64, 45, 101, 185, 0, 60, 56, 210, 153, 0, 68, 56, 96, 41, 62, 185, 0, 60, 52, 190, 162, 0, 91, 56, 4, 51, 97, 185, 0, 60, 53, 33, 146, 0, 113, 56, 247, 48, 129, 185, 0, 60, 58, 4, 144, 0, 27, 56, 118, 55, 239, 184, 0, 60, 51, 42, 148, 0, 84, 48, 169, 179, 81, 177, 0, 60, 6, 130, 245, 0, 239, 46, 21, 60, 209, 174, 0, 60, 7, 125, 240, 0, 214, 55, 203, 58, 99, 181, 0, 60, 50, 93, 186, 0, 180, 56, 142, 57, 54, 183, 0, 60, 60, 71, 171, 0, 84, 52, 237, 59, 216, 177, 0, 60, 19, 122, 228, 0, 73, 54, 135, 59, 76, 180, 0, 60, 36, 109, 205, 0, 216, 55, 15, 177, 113, 182, 0, 60, 28, 138, 221, 0, 103, 53, 171, 178, 112, 180, 0, 60, 16, 132, 237, 0, 34, 57, 214, 167, 55, 184, 0, 60, 62, 175, 181, 0, 173, 56, 62, 174, 174, 183, 0, 60, 46, 153, 200, 0, 150, 57, 64, 45, 150, 184, 0, 60, 74, 207, 166, 0, 109, 57, 96, 41, 117, 184, 0, 60, 68, 189, 174, 0, 140, 57, 4, 51, 178, 184, 0, 60, 72, 26, 156, 0, 168, 57, 247, 48, 184, 184, 0, 60, 78, 251, 157, 0, 57, 57, 118, 55, 74, 184, 0, 60, 68, 43, 159, 0, 130, 49, 169, 179, 134, 176, 0, 60, 8, 130, 247, 0, 106, 48, 21, 60, 186, 173, 0, 60, 9, 125, 242, 0, 155, 56, 203, 58, 53, 180, 0, 60, 61, 94, 199, 0, 135, 57, 142, 57, 203, 181, 0, 60, 76, 71, 185, 0, 23, 53, 237, 59, 138, 176, 0, 60, 23, 122, 234, 0, 100, 55, 135, 59, 179, 178, 0, 60, 43, 111, 215, 0, 156, 56, 15, 177, 15, 181, 0, 60, 34, 138, 229, 0, 90, 54, 171, 178, 249, 178, 0, 60, 19, 132, 241, 0, 10, 58, 214, 167, 160, 182, 0, 60, 74, 174, 196, 0, 127, 57, 62, 174, 9, 182, 0, 60, 55, 151, 212, 0, 146, 58, 64, 45, 54, 183, 0, 60, 90, 205, 184, 0, 98, 58, 96, 41, 1, 183, 0, 60, 82, 187, 190, 0, 134, 58, 4, 51, 185, 183, 0, 60, 91, 20, 171, 0, 166, 58, 247, 48, 136, 183, 0, 60, 96, 243, 175, 0, 37, 58, 118, 55, 1, 183, 0, 60, 86, 43, 174, 0, 122, 50, 169, 179, 28, 175, 0, 60, 9, 130, 249, 0, 48, 49, 21, 60, 101, 172, 0, 60, 11, 125, 245, 0, 31, 57, 203, 58, 185, 177, 0, 60, 72, 96, 215, 0, 37, 58, 142, 57, 46, 180, 0, 60, 90, 71, 204, 0, 168, 53, 237, 59, 28, 174, 0, 60, 26, 123, 241, 0, 27, 56, 135, 59, 138, 176, 0, 60, 49, 113, 227, 0, 32, 57, 15, 177, 249, 178, 0, 60, 38, 137, 237, 0, 15, 55, 171, 178, 205, 176, 0, 60, 21, 132, 246, 0, 182, 58, 214, 167, 144, 180, 0, 60, 84, 172, 214, 0, 28, 58, 62, 174, 40, 180, 0, 60, 62, 150, 225, 0, 77, 59, 64, 45, 247, 180, 0, 60, 103, 204, 205, 0, 24, 59, 96, 41, 211, 180, 0, 60, 93, 185, 209, 0, 63, 59, 4, 51, 209, 181, 0, 60, 108, 18, 192, 0, 100, 59, 247, 48, 90, 181, 0, 60, 112, 242, 198, 0, 212, 58, 118, 55, 53, 181, 0, 60, 103, 42, 196, 0, 50, 51, 169, 179, 229, 172, 0, 60, 10, 130, 251, 0, 196, 49, 21, 60, 195, 169, 0, 60, 12, 126, 249, 0, 111, 57, 203, 58, 154, 173, 0, 60, 79, 96, 235, 0, 134, 58, 142, 57, 218, 176, 0, 60, 102, 69, 228, 0, 1, 54, 237, 59, 195, 169, 0, 60, 27, 123, 248, 0, 91, 56, 135, 59, 101, 172, 0, 60, 53, 114, 241, 0, 112, 57, 15, 177, 28, 175, 0, 60, 40, 137, 247, 0, 126, 55, 171, 178, 229, 172, 0, 60, 22, 132, 251, 0, 31, 59, 214, 167, 167, 176, 0, 60, 91, 171, 235, 0, 124, 58, 62, 174, 61, 176, 0, 60, 66, 150, 240, 0, 192, 59, 64, 45, 16, 177, 0, 60, 113, 205, 231, 0, 135, 59, 96, 41, 235, 176, 0, 60, 101, 184, 232, 0, 178, 59, 4, 51, 127, 179, 0, 60, 119, 20, 220, 0, 216, 59, 247, 48, 249, 177, 0, 60, 123, 250, 227, 0, 63, 59, 118, 55, 134, 178, 0, 60, 115, 41, 224, 0, 164, 51, 169, 179, 254, 168, 0, 60, 11, 130, 254, 0, 31, 50, 21, 60, 241, 164, 0, 60, 13, 126, 252, 0, 139, 57, 203, 58, 156, 31, 0, 60, 84, 94, 0, 0, 166, 58, 142, 57, 212, 168, 0, 60, 108, 66, 0, 0, 31, 54, 237, 59, 156, 31, 0, 60, 28, 123, 0, 0, 113, 56, 135, 59, 156, 31, 0, 60, 54, 114, 0, 0, 140, 57, 15, 177, 0, 0, 0, 60, 41, 137, 0, 0, 164, 55, 171, 178, 0, 0, 0, 60, 23, 132, 0, 0, 67, 59, 214, 167, 0, 0, 0, 60, 93, 171, 0, 0, 157, 58, 62, 174, 0, 0, 0, 60, 68, 149, 0, 0, 231, 59, 64, 45, 0, 0, 0, 60, 118, 211, 2, 0, 173, 59, 96, 41, 0, 0, 0, 60, 103, 183, 0, 0, 216, 59, 4, 51, 99, 174, 0, 60, 123, 29, 252, 0, 0, 60, 247, 48, 57, 168, 0, 60, 126, 12, 1, 0, 100, 59, 118, 55, 241, 172, 0, 60, 121, 38, 0, 0, 202, 51, 169, 179, 0, 0, 0, 60, 11, 130, 0, 0, 62, 50, 21, 60, 156, 31, 0, 60, 14, 126, 0, 0, 111, 57, 203, 58, 141, 46, 0, 60, 83, 92, 24, 0, 134, 58, 142, 57, 225, 44, 0, 60, 107, 60, 29, 0, 1, 54, 237, 59, 170, 43, 0, 60, 27, 123, 7, 0, 91, 56, 135, 59, 89, 45, 0, 60, 53, 114, 15, 0, 112, 57, 15, 177, 28, 47, 0, 60, 40, 137, 9, 0, 126, 55, 171, 178, 229, 44, 0, 60, 22, 132, 5, 0, 31, 59, 214, 167, 167, 48, 0, 60, 91, 171, 21, 0, 124, 58, 62, 174, 61, 48, 0, 60, 66, 150, 16, 0, 192, 59, 64, 45, 16, 49, 0, 60, 117, 219, 30, 0, 135, 59, 96, 41, 235, 48, 0, 60, 101, 184, 24, 0, 178, 59, 4, 51, 109, 40, 0, 60, 116, 43, 26, 0, 216, 59, 247, 48, 186, 47, 0, 60, 117, 35, 30, 0, 63, 59, 118, 55, 81, 42, 0, 60, 117, 33, 32, 0, 164, 51, 169, 179, 254, 40, 0, 60, 11, 130, 2, 0, 31, 50, 21, 60, 95, 40, 0, 60, 13, 126, 3, 0, 31, 57, 203, 58, 51, 50, 0, 60, 78, 87, 47, 0, 37, 58, 142, 57, 242, 49, 0, 60, 99, 53, 57, 0, 168, 53, 237, 59, 15, 47, 0, 60, 26, 123, 15, 0, 27, 56, 135, 59, 4, 49, 0, 60, 49, 113, 29, 0, 32, 57, 15, 177, 249, 50, 0, 60, 38, 137, 19, 0, 15, 55, 171, 178, 205, 48, 0, 60, 21, 132, 10, 0, 182, 58, 214, 167, 144, 52, 0, 60, 84, 172, 42, 0, 28, 58, 62, 174, 40, 52, 0, 60, 62, 150, 31, 0, 77, 59, 64, 45, 247, 52, 0, 60, 109, 230, 58, 0, 24, 59, 96, 41, 211, 52, 0, 60, 93, 185, 46, 0, 63, 59, 4, 51, 62, 49, 0, 60, 100, 57, 52, 0, 100, 59, 247, 48, 75, 52, 0, 60, 100, 56, 52, 0, 212, 58, 118, 55, 122, 49, 0, 60, 107, 28, 61, 0, 50, 51, 169, 179, 229, 44, 0, 60, 10, 130, 5, 0, 196, 49, 21, 60, 170, 43, 0, 60, 12, 126, 7, 0, 155, 56, 203, 58, 114, 52, 0, 60, 67, 86, 63, 0, 135, 57, 142, 57, 150, 52, 0, 60, 91, 51, 71, 0, 23, 53, 237, 59, 4, 49, 0, 60, 23, 122, 22, 0, 100, 55, 135, 59, 45, 51, 0, 60, 43, 110, 44, 0, 156, 56, 15, 177, 15, 53, 0, 60, 34, 138, 27, 0, 90, 54, 171, 178, 249, 50, 0, 60, 19, 132, 15, 0, 10, 58, 214, 167, 160, 54, 0, 60, 74, 174, 60, 0, 127, 57, 62, 174, 9, 54, 0, 60, 55, 151, 44, 0, 146, 58, 64, 45, 54, 55, 0, 60, 96, 240, 81, 0, 98, 58, 96, 41, 1, 55, 0, 60, 82, 187, 66, 0, 134, 58, 4, 51, 135, 52, 0, 60, 83, 65, 69, 0, 166, 58, 247, 48, 121, 54, 0, 60, 79, 73, 66, 0, 37, 58, 118, 55, 136, 52, 0, 60, 97, 21, 78, 0, 122, 50, 169, 179, 28, 47, 0, 60, 9, 130, 7, 0, 48, 49, 21, 60, 89, 45, 0, 60, 11, 125, 11, 0, 49, 56, 77, 58, 52, 54, 0, 60, 59, 80, 78, 0, 21, 57, 42, 57, 127, 54, 0, 60, 83, 40, 86, 0, 84, 52, 237, 59, 82, 50, 0, 60, 19, 122, 27, 0, 73, 54, 135, 59, 137, 52, 0, 60, 36, 107, 56, 0, 216, 55, 15, 177, 113, 54, 0, 60, 28, 138, 35, 0, 103, 53, 171, 178, 112, 52, 0, 60, 16, 132, 19, 0, 34, 57, 214, 167, 55, 56, 0, 60, 62, 175, 75, 0, 173, 56, 62, 174, 174, 55, 0, 60, 46, 153, 56, 0, 150, 57, 64, 45, 150, 56, 0, 60, 79, 249, 98, 0, 109, 57, 96, 41, 117, 56, 0, 60, 68, 189, 82, 0, 140, 57, 4, 51, 50, 54, 0, 60, 65, 68, 84, 0, 168, 57, 247, 48, 49, 56, 0, 60, 59, 84, 73, 0, 60, 57, 89, 55, 169, 54, 0, 60, 74, 13, 101, 0, 130, 49, 169, 179, 134, 48, 0, 60, 8, 130, 9, 0, 106, 48, 21, 60, 173, 46, 0, 60, 9, 125, 13, 0, 60, 185, 89, 55, 169, 54, 0, 60, 182, 13, 101, 0, 31, 184, 75, 54, 150, 55, 0, 60, 222, 23, 119, 0, 218, 183, 239, 54, 87, 55, 0, 60, 241, 47, 116, 0, 201, 184, 171, 55, 19, 55, 0, 60, 214, 14, 118, 0, 205, 50, 237, 59, 100, 51, 0, 60, 15, 121, 32, 0, 240, 52, 135, 59, 79, 53, 0, 60, 28, 105, 64, 0, 41, 54, 15, 177, 147, 55, 0, 60, 22, 139, 41, 0, 62, 52, 171, 178, 55, 53, 0, 60, 12, 132, 23, 0, 9, 56, 214, 167, 245, 56, 0, 60, 47, 177, 86, 0, 89, 55, 62, 174, 132, 56, 0, 60, 35, 154, 65, 0, 100, 56, 64, 45, 101, 57, 0, 60, 60, 0, 111, 0, 68, 56, 96, 41, 62, 57, 0, 60, 52, 190, 94, 0, 91, 56, 4, 51, 145, 55, 0, 60, 41, 73, 95, 0, 113, 56, 247, 48, 250, 56, 0, 60, 41, 92, 76, 0, 48, 180, 181, 58, 30, 55, 0, 60, 237, 62, 108, 0, 61, 182, 144, 58, 201, 54, 0, 60, 223, 77, 94, 0, 203, 182, 56, 58, 23, 55, 0, 60, 222, 79, 92, 0, 158, 180, 99, 58, 71, 55, 0, 60, 238, 49, 115, 0, 61, 54, 144, 58, 201, 54, 0, 60, 33, 77, 94, 0, 84, 48, 169, 179, 81, 49, 0, 60, 6, 130, 11, 0, 239, 46, 21, 60, 197, 47, 0, 60, 7, 125, 16, 0, 31, 56, 75, 54, 150, 55, 0, 60, 34, 23, 119, 0, 62, 48, 197, 58, 78, 55, 0, 60, 9, 51, 115, 0, 0, 0, 200, 58, 93, 55, 0, 60, 0, 46, 117, 0, 0, 0, 123, 58, 114, 55, 0, 60, 0, 19, 125, 0, 175, 48, 119, 58, 103, 55, 0, 60, 7, 26, 123, 0, 175, 48, 237, 59, 23, 52, 0, 60, 10, 121, 35, 0, 205, 50, 135, 59, 227, 53, 0, 60, 18, 102, 72, 0, 62, 52, 15, 177, 53, 56, 0, 60, 15, 139, 45, 0, 217, 49, 171, 178, 204, 53, 0, 60, 8, 133, 25, 0, 143, 53, 214, 167, 130, 57, 0, 60, 32, 178, 94, 0, 16, 53, 62, 174, 4, 57, 0, 60, 24, 155, 71, 0, 12, 54, 64, 45, 254, 57, 0, 60, 40, 4, 120, 0, 224, 53, 96, 41, 211, 57, 0, 60, 35, 192, 103, 0, 1, 54, 4, 51, 75, 56, 0, 60, 23, 82, 93, 0, 31, 54, 247, 48, 143, 57, 0, 60, 25, 97, 77, 0, 168, 181, 232, 53, 12, 56, 0, 60, 241, 52, 114, 0, 108, 181, 129, 54, 150, 55, 0, 60, 253, 80, 98, 0, 48, 52, 181, 58, 30, 55, 0, 60, 19, 62, 108, 0, 246, 45, 169, 179, 233, 49, 0, 60, 4, 130, 12, 0, 199, 44, 21, 60, 74, 48, 0, 60, 5, 125, 18, 0, 168, 53, 232, 53, 12, 56, 0, 60, 16, 52, 114, 0, 0, 0, 184, 53, 62, 56, 0, 60, 0, 73, 103, 0, 194, 49, 196, 53, 50, 56, 0, 60, 7, 68, 106, 0, 134, 49, 86, 54, 191, 55, 0, 60, 1, 93, 85, 0, 0, 0, 71, 54, 204, 55, 0, 60, 0, 96, 81, 0, 199, 44, 237, 59, 86, 52, 0, 60, 5, 121, 38, 0, 239, 46, 135, 59, 62, 54, 0, 60, 9, 99, 78, 0, 84, 48, 15, 177, 119, 56, 0, 60, 7, 139, 48, 0, 246, 45, 171, 178, 39, 54, 0, 60, 4, 133, 27, 0, 171, 49, 214, 167, 217, 57, 0, 60, 16, 179, 99, 0, 41, 49, 62, 174, 83, 57, 0, 60, 12, 155, 75, 0, 42, 50, 64, 45, 93, 58, 0, 60, 20, 7, 125, 0, 253, 49, 96, 41, 47, 58, 0, 60, 17, 193, 108, 0, 31, 50, 4, 51, 155, 56, 0, 60, 10, 89, 89, 0, 62, 50, 247, 48, 235, 57, 0, 60, 12, 99, 77, 0, 62, 176, 197, 58, 78, 55, 0, 60, 247, 51, 115, 0, 175, 176, 119, 58, 103, 55, 0, 60, 249, 26, 123, 0, 20, 42, 169, 179, 70, 50, 0, 60, 2, 130, 13, 0, 223, 40, 21, 60, 138, 48, 0, 60, 2, 125, 19, 0, 158, 52, 99, 58, 71, 55, 0, 60, 18, 49, 115, 0, 0, 0, 237, 59, 107, 52, 0, 60, 0, 120, 38, 0, 0, 0, 135, 59, 93, 54, 0, 60, 0, 98, 80, 0, 0, 0, 15, 177, 142, 56, 0, 60, 0, 140, 48, 0, 0, 0, 171, 178, 70, 54, 0, 60, 0, 133, 27, 0, 0, 0, 214, 167, 247, 57, 0, 60, 0, 180, 100, 0, 0, 0, 62, 174, 110, 57, 0, 60, 0, 156, 76, 0, 0, 0, 64, 45, 125, 58, 0, 60, 0, 8, 126, 0, 0, 0, 96, 41, 78, 58, 0, 60, 0, 193, 109, 0, 0, 0, 4, 51, 182, 56, 0, 60, 0, 91, 88, 0, 0, 0, 247, 48, 10, 58, 0, 60, 0, 100, 77, 0, 63, 56, 2, 58, 228, 54, 0, 60, 62, 67, 86, 0, 174, 56, 5, 57, 252, 54, 0, 60, 68, 32, 101, 0, 0, 0, 169, 179, 102, 50, 0, 60, 0, 130, 13, 0, 0, 0, 21, 60, 159, 48, 0, 60, 0, 125, 19, 0, 194, 177, 196, 53, 50, 56, 0, 60, 250, 68, 106, 0, 134, 177, 86, 54, 191, 55, 0, 60, 255, 93, 85, 0, 199, 172, 237, 59, 86, 52, 0, 60, 251, 121, 38, 0, 239, 174, 135, 59, 62, 54, 0, 60, 247, 99, 78, 0, 84, 176, 15, 177, 119, 56, 0, 60, 249, 139, 48, 0, 246, 173, 171, 178, 39, 54, 0, 60, 252, 133, 27, 0, 171, 177, 214, 167, 217, 57, 0, 60, 240, 179, 99, 0, 41, 177, 62, 174, 83, 57, 0, 60, 244, 155, 75, 0, 42, 178, 64, 45, 93, 58, 0, 60, 237, 7, 125, 0, 253, 177, 96, 41, 47, 58, 0, 60, 239, 193, 108, 0, 31, 178, 4, 51, 155, 56, 0, 60, 246, 89, 89, 0, 62, 178, 247, 48, 235, 57, 0, 60, 244, 99, 77, 0, 108, 53, 129, 54, 150, 55, 0, 60, 3, 80, 98, 0, 20, 170, 169, 179, 70, 50, 0, 60, 254, 130, 13, 0, 223, 168, 21, 60, 138, 48, 0, 60, 254, 125, 19, 0, 49, 184, 77, 58, 52, 54, 0, 60, 198, 80, 78, 0, 21, 185, 42, 57, 127, 54, 0, 60, 173, 40, 86, 0, 174, 184, 5, 57, 252, 54, 0, 60, 188, 32, 101, 0, 63, 184, 2, 58, 228, 54, 0, 60, 194, 67, 86, 0, 175, 176, 237, 59, 23, 52, 0, 60, 246, 121, 35, 0, 205, 178, 135, 59, 227, 53, 0, 60, 238, 102, 72, 0, 62, 180, 15, 177, 53, 56, 0, 60, 241, 139, 45, 0, 217, 177, 171, 178, 204, 53, 0, 60, 248, 133, 25, 0, 143, 181, 214, 167, 130, 57, 0, 60, 224, 178, 94, 0, 16, 181, 62, 174, 4, 57, 0, 60, 232, 155, 71, 0, 12, 182, 64, 45, 254, 57, 0, 60, 216, 4, 120, 0, 224, 181, 96, 41, 211, 57, 0, 60, 221, 192, 103, 0, 1, 182, 4, 51, 75, 56, 0, 60, 233, 82, 93, 0, 31, 182, 247, 48, 143, 57, 0, 60, 231, 97, 77, 0, 203, 54, 56, 58, 23, 55, 0, 60, 34, 79, 92, 0, 246, 173, 169, 179, 233, 49, 0, 60, 252, 130, 12, 0, 199, 172, 21, 60, 74, 48, 0, 60, 251, 125, 18, 0, 218, 55, 239, 54, 87, 55, 0, 60, 16, 47, 116, 0, 205, 178, 237, 59, 100, 51, 0, 60, 241, 121, 32, 0, 240, 180, 135, 59, 79, 53, 0, 60, 228, 105, 64, 0, 41, 182, 15, 177, 147, 55, 0, 60, 234, 139, 41, 0, 62, 180, 171, 178, 55, 53, 0, 60, 244, 132, 23, 0, 9, 184, 214, 167, 245, 56, 0, 60, 209, 177, 86, 0, 89, 183, 62, 174, 132, 56, 0, 60, 221, 154, 65, 0, 100, 184, 64, 45, 101, 57, 0, 60, 197, 0, 111, 0, 68, 184, 96, 41, 62, 57, 0, 60, 204, 190, 94, 0, 91, 184, 4, 51, 145, 55, 0, 60, 215, 73, 95, 0, 113, 184, 247, 48, 250, 56, 0, 60, 215, 92, 76, 0, 84, 176, 169, 179, 81, 49, 0, 60, 250, 130, 11, 0, 239, 174, 21, 60, 197, 47, 0, 60, 249, 125, 16, 0, 201, 56, 171, 55, 19, 55, 0, 60, 43, 14, 118, 0, 84, 180, 237, 59, 82, 50, 0, 60, 237, 122, 27, 0, 73, 182, 135, 59, 137, 52, 0, 60, 220, 107, 56, 0, 216, 183, 15, 177, 113, 54, 0, 60, 228, 138, 35, 0, 103, 181, 171, 178, 112, 52, 0, 60, 240, 132, 19, 0, 34, 185, 214, 167, 55, 56, 0, 60, 195, 175, 75, 0, 173, 184, 62, 174, 174, 55, 0, 60, 210, 153, 56, 0, 150, 185, 64, 45, 150, 56, 0, 60, 178, 249, 98, 0, 109, 185, 96, 41, 117, 56, 0, 60, 188, 189, 82, 0, 140, 185, 4, 51, 50, 54, 0, 60, 191, 68, 84, 0, 168, 185, 247, 48, 49, 56, 0, 60, 197, 84, 73, 0, 130, 177, 169, 179, 134, 48, 0, 60, 249, 130, 9, 0, 106, 176, 21, 60, 173, 46, 0, 60, 247, 125, 13, 0, 155, 184, 203, 58, 114, 52, 0, 60, 189, 86, 63, 0, 135, 185, 142, 57, 150, 52, 0, 60, 165, 51, 71, 0, 23, 181, 237, 59, 4, 49, 0, 60, 233, 122, 22, 0, 100, 183, 135, 59, 45, 51, 0, 60, 213, 110, 44, 0, 156, 184, 15, 177, 15, 53, 0, 60, 222, 138, 27, 0, 90, 182, 171, 178, 249, 50, 0, 60, 237, 132, 15, 0, 10, 186, 214, 167, 160, 54, 0, 60, 182, 174, 60, 0, 127, 185, 62, 174, 9, 54, 0, 60, 201, 151, 44, 0, 146, 186, 64, 45, 54, 55, 0, 60, 160, 240, 81, 0, 98, 186, 96, 41, 1, 55, 0, 60, 174, 187, 66, 0, 134, 186, 4, 51, 135, 52, 0, 60, 173, 65, 69, 0, 166, 186, 247, 48, 121, 54, 0, 60, 177, 73, 66, 0, 37, 186, 118, 55, 136, 52, 0, 60, 159, 21, 78, 0, 122, 178, 169, 179, 28, 47, 0, 60, 247, 130, 7, 0, 48, 177, 21, 60, 89, 45, 0, 60, 245, 125, 11, 0, 31, 185, 203, 58, 51, 50, 0, 60, 178, 87, 47, 0, 37, 186, 142, 57, 242, 49, 0, 60, 157, 53, 57, 0, 168, 181, 237, 59, 15, 47, 0, 60, 231, 123, 15, 0, 27, 184, 135, 59, 4, 49, 0, 60, 207, 113, 29, 0, 32, 185, 15, 177, 249, 50, 0, 60, 218, 137, 19, 0, 15, 183, 171, 178, 205, 48, 0, 60, 235, 132, 10, 0, 182, 186, 214, 167, 144, 52, 0, 60, 172, 172, 42, 0, 28, 186, 62, 174, 40, 52, 0, 60, 194, 150, 31, 0, 77, 187, 64, 45, 247, 52, 0, 60, 147, 230, 58, 0, 24, 187, 96, 41, 211, 52, 0, 60, 163, 185, 46, 0, 63, 187, 4, 51, 62, 49, 0, 60, 157, 57, 52, 0, 100, 187, 247, 48, 75, 52, 0, 60, 156, 56, 52, 0, 212, 186, 118, 55, 122, 49, 0, 60, 150, 28, 61, 0, 50, 179, 169, 179, 229, 44, 0, 60, 246, 130, 5, 0, 196, 177, 21, 60, 170, 43, 0, 60, 244, 126, 7, 0, 111, 185, 203, 58, 141, 46, 0, 60, 173, 92, 24, 0, 134, 186, 142, 57, 225, 44, 0, 60, 149, 60, 29, 0, 1, 182, 237, 59, 170, 43, 0, 60, 229, 123, 7, 0, 91, 184, 135, 59, 89, 45, 0, 60, 203, 114, 15, 0, 112, 185, 15, 177, 28, 47, 0, 60, 216, 137, 9, 0, 126, 183, 171, 178, 229, 44, 0, 60, 234, 132, 5, 0, 31, 187, 214, 167, 167, 48, 0, 60, 165, 171, 21, 0, 124, 186, 62, 174, 61, 48, 0, 60, 190, 150, 16, 0, 192, 187, 64, 45, 16, 49, 0, 60, 139, 219, 30, 0, 135, 187, 96, 41, 235, 48, 0, 60, 156, 184, 24, 0, 178, 187, 4, 51, 109, 40, 0, 60, 141, 43, 26, 0, 216, 187, 247, 48, 186, 47, 0, 60, 139, 35, 30, 0, 63, 187, 118, 55, 81, 42, 0, 60, 139, 33, 32, 0, 164, 179, 169, 179, 254, 40, 0, 60, 245, 130, 2, 0, 31, 178, 21, 60, 95, 40, 0, 60, 243, 126, 3, 0, 0, 0, 255, 179, 0, 0, 0, 60, 0, 130, 0, 0, 0, 0, 32, 60, 156, 31, 0, 60, 0, 127, 0, 0 ), @@ -65,7 +51,7 @@ surfaces/0 = { "blend_shape_data": [ ], "format": 98051, "index_count": 2904, -"material": SubResource( 6 ), +"material": SubResource( 4 ), "name": "Material.001", "primitive": 4, "skeleton_aabb": [ ], @@ -78,7 +64,7 @@ surfaces/1 = { "blend_shape_data": [ ], "format": 98051, "index_count": 660, -"material": SubResource( 7 ), +"material": SubResource( 5 ), "name": "Material.002", "primitive": 4, "skeleton_aabb": [ ], @@ -91,31 +77,13 @@ surfaces/2 = { "blend_shape_data": [ ], "format": 98051, "index_count": 180, -"material": SubResource( 8 ), +"material": SubResource( 6 ), "name": "Material.003", "primitive": 4, "skeleton_aabb": [ ], "vertex_count": 64 } -[sub_resource type="ParticlesMaterial" id=10] -gravity = Vector3( 0, 0, 0.98 ) -initial_velocity = 1.0 -angular_velocity = 1.0 -scale = 0.1 - -[sub_resource type="SpatialMaterial" id=11] -flags_transparent = true -flags_unshaded = true -params_billboard_mode = 3 -particles_anim_h_frames = 1 -particles_anim_v_frames = 1 -particles_anim_loop = false -albedo_texture = ExtResource( 2 ) - -[sub_resource type="QuadMesh" id=12] -material = SubResource( 11 ) - [node name="Spatial" type="Navigation"] _import_path = NodePath(".") script = ExtResource( 1 ) @@ -143,7 +111,7 @@ directional_shadow_normal_bias = 0.1 directional_shadow_bias_split_scale = 0.1 [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( 5 ) +environment = ExtResource( 3 ) [node name="Draw" type="ImmediateGeometry" parent="."] @@ -163,13 +131,7 @@ far = 20.0 _import_path = NodePath("Sphere") transform = Transform( -0.22646, 0, -2.49146e-08, 0, 0.423557, 0, 1.97978e-08, 0, -0.284989, 0, 0.328851, 0 ) use_in_baked_light = true -mesh = SubResource( 9 ) +mesh = SubResource( 7 ) material/0 = null material/1 = null material/2 = null - -[node name="AntiGravity" type="Particles" parent="RobotBase/Robot"] -transform = Transform( 1, 3.75509e-06, -3.78323e-07, -1.06179e-07, -4.37106e-08, -0.672847, -1.60933e-06, 1.48622, -3.3204e-08, 0, -0.231445, 0 ) -amount = 16 -process_material = SubResource( 10 ) -draw_pass_1 = SubResource( 12 ) diff --git a/3d/navmesh/project.godot b/3d/navmesh/project.godot index 51b10e7b..b7cf11ef 100644 --- a/3d/navmesh/project.godot +++ b/3d/navmesh/project.godot @@ -26,3 +26,7 @@ config/icon="res://icon.png" [gdnative] singletons=[ ] + +[rendering] + +quality/driver/driver_name="GLES2" diff --git a/3d/voxel/project.godot b/3d/voxel/project.godot index 98881fc7..267b5771 100644 --- a/3d/voxel/project.godot +++ b/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 diff --git a/gui/translation/text.en.translation b/gui/translation/text.en.translation deleted file mode 100644 index 4155236b96bc27ea73accc14c250cf7d829ecfa2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 409 zcmbu6v2Fq}42DfhOMz0s)NUM4fLK|(uppr;Bho2E7Iz{fD9$|$V_&YXQGOo`2zBc( zeRA?gc48<0%0KC+JW-^efrU;O(@S`42ED;OPMWs NLJM{-Oen{voB=&dPLu!u diff --git a/gui/translation/text.es.translation b/gui/translation/text.es.translation deleted file mode 100644 index 8fd4a76897e5e91a32cb56c4b278982c4f5c8c3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 428 zcmbtRJ8nWT5L^NYza$bBbifG^EnSp`GI~%VJsE2SPZ%3{&0#20<{Y_8t^u=;S0I#* zl}583d)MQ2w#YuIiaPiSQ0@U=b0gbjG+vxZMevXwix$cUKx7HWXgPPm8keV#i)GLB ze!J(*o~aFG&mv~SLQO2n3Z^d7E!^eFtR2%Emg}S4ajFEpNm4BQ=2|8;7Ka3ps0MU^ zveRrbnbNCDh=1SQz=jUwxnlTGX;eudI^TsJ9RYfa&QseLt8O`GHLmD?pZ=6zZZJfy W9zG87_b1``W10tN#*iq(KV1M2{ZP>W diff --git a/gui/translation/text.ja.translation b/gui/translation/text.ja.translation deleted file mode 100644 index c865b896802fc844a62cde32cc46488626f94173..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432 zcmbu6Jx&8L5QT@|00BfQ=*SHsT3Q-Pv``|g9BY(pvhgC1a{yD)rb?Nbf(vjPOSuNT z*|}Su|9v9EW1LZh??gP~xczQH4e(}ahZ9>&JSi8ju(rVx&icZy3&agp8^DSoE7O7V-Rz+e3W!me2r diff --git a/loading/autoload/global.gd b/loading/autoload/global.gd index f5a1f2fb..09c768b1 100644 --- a/loading/autoload/global.gd +++ b/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() diff --git a/loading/autoload/scene_b.tscn b/loading/autoload/scene_b.tscn index 3180523d..9a211070 100644 --- a/loading/autoload/scene_b.tscn +++ b/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 diff --git a/misc/android_iap/iap_demo.gd b/misc/android_iap/iap_demo.gd index fea5d5b6..0993f0de 100644 --- a/misc/android_iap/iap_demo.gd +++ b/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(): diff --git a/viewport/2d_in_3d/2D_in_3D.gd b/viewport/2d_in_3d/2D_in_3D.gd index 75c9dcdb..6e1a5d89 100644 --- a/viewport/2d_in_3d/2D_in_3D.gd +++ b/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() diff --git a/viewport/2d_in_3d/2D_in_3D.tscn b/viewport/2d_in_3d/2D_in_3D.tscn index f702f798..7cdb2d54 100644 --- a/viewport/2d_in_3d/2D_in_3D.tscn +++ b/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 ) diff --git a/viewport/2d_in_3d/pong.gd b/viewport/2d_in_3d/pong.gd index 0f16b370..8e99946b 100644 --- a/viewport/2d_in_3d/pong.gd +++ b/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) diff --git a/viewport/3d_scaling/spatial.tscn b/viewport/3d_scaling/cubes.tscn similarity index 80% rename from viewport/3d_scaling/spatial.tscn rename to viewport/3d_scaling/cubes.tscn index fe1b8edf..cdd4e5fb 100644 --- a/viewport/3d_scaling/spatial.tscn +++ b/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 diff --git a/viewport/3d_scaling/hud.tscn b/viewport/3d_scaling/hud.tscn index ba60816b..aaf7268b 100644 --- a/viewport/3d_scaling/hud.tscn +++ b/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 diff --git a/viewport/dynamic_split_screen/CameraController.gd b/viewport/dynamic_split_screen/camera_controller.gd similarity index 78% rename from viewport/dynamic_split_screen/CameraController.gd rename to viewport/dynamic_split_screen/camera_controller.gd index ee53da0d..faf8b440 100644 --- a/viewport/dynamic_split_screen/CameraController.gd +++ b/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(): diff --git a/viewport/dynamic_split_screen/PlayerMovement.gd b/viewport/dynamic_split_screen/player.gd similarity index 100% rename from viewport/dynamic_split_screen/PlayerMovement.gd rename to viewport/dynamic_split_screen/player.gd diff --git a/viewport/dynamic_split_screen/project.godot b/viewport/dynamic_split_screen/project.godot index 6fdc7a19..60c6240e 100644 --- a/viewport/dynamic_split_screen/project.godot +++ b/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] diff --git a/viewport/dynamic_split_screen/SplitScreen.shader b/viewport/dynamic_split_screen/split_screen.shader similarity index 96% rename from viewport/dynamic_split_screen/SplitScreen.shader rename to viewport/dynamic_split_screen/split_screen.shader index d2c95462..c24672fb 100644 --- a/viewport/dynamic_split_screen/SplitScreen.shader +++ b/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); } } diff --git a/viewport/dynamic_split_screen/SplitScreen.tscn b/viewport/dynamic_split_screen/split_screen.tscn similarity index 98% rename from viewport/dynamic_split_screen/SplitScreen.tscn rename to viewport/dynamic_split_screen/split_screen.tscn index 4d77984b..02919ff7 100644 --- a/viewport/dynamic_split_screen/SplitScreen.tscn +++ b/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"] diff --git a/viewport/dynamic_split_screen/Walls.gd b/viewport/dynamic_split_screen/wall_coloring.gd similarity index 70% rename from viewport/dynamic_split_screen/Walls.gd rename to viewport/dynamic_split_screen/wall_coloring.gd index d806a5b9..b7f1165d 100644 --- a/viewport/dynamic_split_screen/Walls.gd +++ b/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()