diff --git a/2d/bullet_shower/bullet.png.import b/2d/bullet_shower/bullet.png.import index 8687cc2e4ad..d5c2702c7a9 100644 --- a/2d/bullet_shower/bullet.png.import +++ b/2d/bullet_shower/bullet.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/bullet_shower/bullets.gd b/2d/bullet_shower/bullets.gd index 74b8e21be5d..b1838231cc6 100644 --- a/2d/bullet_shower/bullets.gd +++ b/2d/bullet_shower/bullets.gd @@ -56,7 +56,7 @@ func _ready(): func _process(_delta): # Order the CanvasItem to update every frame. - update() + queue_redraw() func _physics_process(delta): diff --git a/2d/bullet_shower/face_happy.png.import b/2d/bullet_shower/face_happy.png.import index b42c41ce513..029b4614ebb 100644 --- a/2d/bullet_shower/face_happy.png.import +++ b/2d/bullet_shower/face_happy.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/bullet_shower/face_sad.png.import b/2d/bullet_shower/face_sad.png.import index 45ae30a224d..840f6ee6298 100644 --- a/2d/bullet_shower/face_sad.png.import +++ b/2d/bullet_shower/face_sad.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/bullet_shower/icon.png.import b/2d/bullet_shower/icon.png.import index e6915379d86..280143a4aac 100644 --- a/2d/bullet_shower/icon.png.import +++ b/2d/bullet_shower/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/bullet_shower/project.godot b/2d/bullet_shower/project.godot index 448355a87a9..1249cf77662 100644 --- a/2d/bullet_shower/project.godot +++ b/2d/bullet_shower/project.godot @@ -16,8 +16,8 @@ _global_script_class_icons={} config/name="Bullet Shower" config/description="Demonstrates how to manage large amounts of objects efficiently using low-level Servers." run/main_scene="res://shower.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] diff --git a/2d/bullet_shower/shower.tscn b/2d/bullet_shower/shower.tscn index df11543b6c0..80231f0a904 100644 --- a/2d/bullet_shower/shower.tscn +++ b/2d/bullet_shower/shower.tscn @@ -7,7 +7,7 @@ [sub_resource type="SpriteFrames" id="1"] animations = [{ -"frames": [ExtResource( "3" ), ExtResource( "4" )], +"frames": [ExtResource("3"), ExtResource("4")], "loop": true, "name": &"default", "speed": 5.0 @@ -19,16 +19,16 @@ radius = 27.0 [node name="Shower" type="Node2D"] [node name="Bullets" type="Node2D" parent="."] -script = ExtResource( "2" ) +script = ExtResource("2") [node name="Player" type="Area2D" parent="."] -script = ExtResource( "5" ) +script = ExtResource("5") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="Player"] -frames = SubResource( "1" ) +frames = SubResource("1") [node name="CollisionShape2D" type="CollisionShape2D" parent="Player"] -shape = SubResource( "2" ) +shape = SubResource("2") [connection signal="body_shape_entered" from="Player" to="Player" method="_on_body_shape_entered"] [connection signal="body_shape_exited" from="Player" to="Player" method="_on_body_shape_exited"] diff --git a/2d/dodge_the_creeps/HUD.tscn b/2d/dodge_the_creeps/HUD.tscn index 6bc23bbd41e..ec57adf37d9 100644 --- a/2d/dodge_the_creeps/HUD.tscn +++ b/2d/dodge_the_creeps/HUD.tscn @@ -1,34 +1,41 @@ [gd_scene load_steps=4 format=3 uid="uid://ccqoreueuxdb7"] [ext_resource type="Script" path="res://HUD.gd" id="1"] -[ext_resource type="Font" uid="uid://dyjc58f6sdms0" path="res://fonts/Xolonium-Regular.tres" id="2_3dmm8"] + +[sub_resource type="InputEventAction" id="InputEventAction_fopy7"] +action = &"start_game" [sub_resource type="Shortcut" id="4"] +events = [SubResource("InputEventAction_fopy7")] [node name="HUD" type="CanvasLayer"] -script = ExtResource( "1" ) +script = ExtResource("1") [node name="ScoreLabel" type="Label" parent="."] +anchors_preset = 10 anchor_right = 1.0 offset_bottom = 78.0 -theme_override_fonts/font = ExtResource( "2_3dmm8" ) +grow_horizontal = 2 theme_override_font_sizes/font_size = 60 text = "0" horizontal_alignment = 1 [node name="MessageLabel" type="Label" parent="."] +anchors_preset = 14 anchor_top = 0.5 anchor_right = 1.0 anchor_bottom = 0.5 offset_top = -79.5 offset_bottom = 79.5 -theme_override_fonts/font = ExtResource( "2_3dmm8" ) +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Dodge the Creeps" horizontal_alignment = 1 [node name="StartButton" type="Button" parent="."] +anchors_preset = 7 anchor_left = 0.5 anchor_top = 1.0 anchor_right = 0.5 @@ -37,9 +44,10 @@ offset_left = -90.0 offset_top = -200.0 offset_right = 90.0 offset_bottom = -100.0 -theme_override_fonts/font = ExtResource( "2_3dmm8" ) +grow_horizontal = 2 +grow_vertical = 0 theme_override_font_sizes/font_size = 60 -shortcut = SubResource( "4" ) +shortcut = SubResource("4") text = "Start" [node name="MessageTimer" type="Timer" parent="."] diff --git a/2d/dodge_the_creeps/Main.gd b/2d/dodge_the_creeps/Main.gd index 902e737dadb..0e851a71e75 100644 --- a/2d/dodge_the_creeps/Main.gd +++ b/2d/dodge_the_creeps/Main.gd @@ -31,7 +31,7 @@ func _on_MobTimer_timeout(): # Choose a random location on Path2D. var mob_spawn_location = get_node(^"MobPath/MobSpawnLocation") - mob_spawn_location.offset = randi() + mob_spawn_location.progress = randi() # Set the mob's direction perpendicular to the path direction. var direction = mob_spawn_location.rotation + PI / 2 diff --git a/2d/dodge_the_creeps/Main.tscn b/2d/dodge_the_creeps/Main.tscn index 21768feddf4..0c808edbcbc 100644 --- a/2d/dodge_the_creeps/Main.tscn +++ b/2d/dodge_the_creeps/Main.tscn @@ -11,17 +11,21 @@ _data = { "points": PackedVector2Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 480, 0, 0, 0, 0, 0, 480, 720, 0, 0, 0, 0, 0, 720, 0, 0, 0, 0, 0, 0) } +point_count = 5 [node name="Main" type="Node"] -script = ExtResource( "1" ) -mob_scene = ExtResource( "2" ) +script = ExtResource("1") +mob_scene = ExtResource("2") [node name="ColorRect" type="ColorRect" parent="."] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 color = Color(0.219608, 0.372549, 0.380392, 1) -[node name="Player" parent="." instance=ExtResource( "3" )] +[node name="Player" parent="." instance=ExtResource("3")] [node name="MobTimer" type="Timer" parent="."] wait_time = 0.5 @@ -32,21 +36,21 @@ wait_time = 0.5 wait_time = 2.0 one_shot = true -[node name="StartPosition" type="Position2D" parent="."] +[node name="StartPosition" type="Marker2D" parent="."] position = Vector2(240, 450) [node name="MobPath" type="Path2D" parent="."] -curve = SubResource( "1" ) +curve = SubResource("1") [node name="MobSpawnLocation" type="PathFollow2D" parent="MobPath"] -[node name="HUD" parent="." instance=ExtResource( "4" )] +[node name="HUD" parent="." instance=ExtResource("4")] [node name="Music" type="AudioStreamPlayer" parent="."] -stream = ExtResource( "5" ) +stream = ExtResource("5") [node name="DeathSound" type="AudioStreamPlayer" parent="."] -stream = ExtResource( "6" ) +stream = ExtResource("6") [connection signal="hit" from="Player" to="." method="game_over"] [connection signal="timeout" from="MobTimer" to="." method="_on_MobTimer_timeout"] diff --git a/2d/dodge_the_creeps/Mob.gd b/2d/dodge_the_creeps/Mob.gd index 713906d3115..c62bf7c2410 100644 --- a/2d/dodge_the_creeps/Mob.gd +++ b/2d/dodge_the_creeps/Mob.gd @@ -1,4 +1,4 @@ -extends RigidDynamicBody2D +extends RigidBody2D func _ready(): $AnimatedSprite2D.playing = true diff --git a/2d/dodge_the_creeps/art/House In a Forest Loop.ogg.import b/2d/dodge_the_creeps/art/House In a Forest Loop.ogg.import index efc9acec32f..3fee5d1b00e 100644 --- a/2d/dodge_the_creeps/art/House In a Forest Loop.ogg.import +++ b/2d/dodge_the_creeps/art/House In a Forest Loop.ogg.import @@ -1,7 +1,7 @@ [remap] importer="oggvorbisstr" -type="AudioStreamOGGVorbis" +type="AudioStreamOggVorbis" uid="uid://q2pf4fr8d0ks" path="res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7039931227e8d50.oggvorbisstr" @@ -14,3 +14,6 @@ dest_files=["res://.godot/imported/House In a Forest Loop.ogg-1a6a72ae843ad792b7 loop=true loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/2d/dodge_the_creeps/art/gameover.wav.import b/2d/dodge_the_creeps/art/gameover.wav.import index 461e33205ee..8eaac9eb2fe 100644 --- a/2d/dodge_the_creeps/art/gameover.wav.import +++ b/2d/dodge_the_creeps/art/gameover.wav.import @@ -1,7 +1,7 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" uid="uid://dw26fpygeag8o" path="res://.godot/imported/gameover.wav-98c95c744b35280048c2bd093cf8a356.sample" diff --git a/2d/dodge_the_creeps/fonts/Xolonium-Regular.ttf.import b/2d/dodge_the_creeps/fonts/Xolonium-Regular.ttf.import index 3aede48b139..ab0e9b11cd5 100644 --- a/2d/dodge_the_creeps/fonts/Xolonium-Regular.ttf.import +++ b/2d/dodge_the_creeps/fonts/Xolonium-Regular.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://cit6gwe5px1q8" path="res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e2bb73fba.fontdata" @@ -12,7 +12,8 @@ dest_files=["res://.godot/imported/Xolonium-Regular.ttf-bc2981e3069cff4c34dd7c8e [params] -antialiased=true +Rendering=null +antialiasing=1 generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 @@ -20,15 +21,12 @@ msdf_size=48 force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/2d/dodge_the_creeps/project.godot b/2d/dodge_the_creeps/project.godot index 8f568a38368..5ef5cc0128b 100644 --- a/2d/dodge_the_creeps/project.godot +++ b/2d/dodge_the_creeps/project.godot @@ -18,8 +18,8 @@ This is a finished version of the game featured in the 'Your first 2D game' tutorial in the documentation. For more details, consider following the tutorial in the documentation." run/main_scene="res://Main.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [debug] @@ -37,39 +37,40 @@ window/stretch/mode="canvas_items" move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) ] } move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } start_game={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777221,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"unicode":0,"echo":false,"script":null) ] } diff --git a/2d/finite_state_machine/Demo.tscn b/2d/finite_state_machine/Demo.tscn index 0048948854d..edb0647e73c 100644 --- a/2d/finite_state_machine/Demo.tscn +++ b/2d/finite_state_machine/Demo.tscn @@ -1,38 +1,61 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=8 format=3 uid="uid://dmn8nkpogiwsf"] -[ext_resource path="res://player/Player.tscn" type="PackedScene" id=1] -[ext_resource path="res://fonts/source_code_pro_explanations.tres" type="Font" id=2] -[ext_resource path="res://debug/StatesStackDiplayer.tscn" type="PackedScene" id=3] -[ext_resource path="res://debug/ControlsPanel.tscn" type="PackedScene" id=4] -[ext_resource path="res://fonts/source_code_pro_explanations_bold.tres" type="Font" id=5] +[ext_resource type="PackedScene" uid="uid://bpdyvy2681m3i" path="res://player/Player.tscn" id="1"] +[ext_resource type="PackedScene" uid="uid://cvi13chv8g4hj" path="res://debug/StatesStackDiplayer.tscn" id="3"] +[ext_resource type="PackedScene" uid="uid://bq6rrfy53rfvo" path="res://debug/ControlsPanel.tscn" id="4"] + +[sub_resource type="Animation" id="1"] + +[sub_resource type="Animation" id="2"] +length = 0.6 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("BodyPivot/Body:modulate") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.4), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="3"] + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_qbwwp"] +_data = { +"idle": SubResource("1"), +"stagger": SubResource("2"), +"walk": SubResource("3") +} [node name="Demo" type="Node"] -[node name="Player" parent="." instance=ExtResource( 1 )] +[node name="Player" parent="." instance=ExtResource("1")] position = Vector2(640, 400) +[node name="StateMachine" parent="Player" index="0"] +start_state = NodePath("Idle") + +[node name="AnimationPlayer" parent="Player" index="1"] +libraries = { +"": SubResource("AnimationLibrary_qbwwp") +} + [node name="Explanations" type="RichTextLabel" parent="."] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -370.0 offset_right = -10.0 offset_bottom = -730.0 -rect_clip_content = false -mouse_filter = 2 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 4 -custom_fonts/bold_font = ExtResource( 5 ) -custom_fonts/normal_font = ExtResource( 2 ) +mouse_filter = 2 bbcode_enabled = true -bbcode_text = "This example shows how to apply the State programming pattern in GDScript, including Hierarchical States, and a pushdown automaton. - -States are common in games. You can use the pattern to: - -1. Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage -2. Respect the Single Responsibility Principle. Each State object represents [b]one[/b] action -3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do. - -You can read more about States in the excellent [url=http://gameprogrammingpatterns.com/state.html]Game Programming Patterns ebook[/url]." text = "This example shows how to apply the State programming pattern in GDScript, including Hierarchical States, and a pushdown automaton. States are common in games. You can use the pattern to: @@ -42,19 +65,20 @@ States are common in games. You can use the pattern to: 3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do. You can read more about States in the excellent Game Programming Patterns ebook." -__meta__ = { -"_edit_lock_": true -} [node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 +grow_vertical = 2 -[node name="StatesStackDiplayer" parent="Control" instance=ExtResource( 3 )] +[node name="StatesStackDiplayer" parent="Control" instance=ExtResource("3")] +layout_mode = 0 -[node name="ControlsPanel" parent="Control" instance=ExtResource( 4 )] +[node name="ControlsPanel" parent="Control" instance=ExtResource("4")] +layout_mode = 1 +grow_horizontal = 0 [editable path="Player"] diff --git a/2d/finite_state_machine/debug/ControlsPanel.tscn b/2d/finite_state_machine/debug/ControlsPanel.tscn index ddf55fa52f3..4c40b36a978 100644 --- a/2d/finite_state_machine/debug/ControlsPanel.tscn +++ b/2d/finite_state_machine/debug/ControlsPanel.tscn @@ -1,24 +1,20 @@ -[gd_scene load_steps=2 format=2] - -[ext_resource path="res://fonts/source_code_pro_explanations.tres" type="Font" id=1] +[gd_scene format=3 uid="uid://bq6rrfy53rfvo"] [node name="ControlsPanel" type="Panel"] +anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 offset_left = -220.0 offset_bottom = 170.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Keys" type="Label" parent="."] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = 10.0 offset_right = -10.0 offset_bottom = -10.0 -custom_fonts/font = ExtResource( 1 ) text = "Shoot: Attack: Stagger: @@ -26,16 +22,15 @@ Jump: Sprint:" [node name="Keys2" type="Label" parent="."] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = 10.0 offset_right = -10.0 offset_bottom = -10.0 -custom_fonts/font = ExtResource( 1 ) text = "R F X Space Shift" -align = 2 diff --git a/2d/finite_state_machine/debug/Explanations.tscn b/2d/finite_state_machine/debug/Explanations.tscn index 8c77c162730..a0d04d21f02 100644 --- a/2d/finite_state_machine/debug/Explanations.tscn +++ b/2d/finite_state_machine/debug/Explanations.tscn @@ -1,30 +1,16 @@ -[gd_scene load_steps=3 format=2] - -[ext_resource path="res://fonts/source_code_pro_explanations_bold.tres" type="Font" id=1] -[ext_resource path="res://fonts/source_code_pro_explanations.tres" type="Font" id=2] +[gd_scene format=3 uid="uid://bywptem1jb35a"] [node name="Explanations" type="RichTextLabel"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -370.0 offset_right = -10.0 offset_bottom = -730.0 -rect_clip_content = false -mouse_filter = 2 size_flags_vertical = 4 -custom_fonts/bold_font = ExtResource( 1 ) -custom_fonts/normal_font = ExtResource( 2 ) +mouse_filter = 2 bbcode_enabled = true -bbcode_text = "This example shows how to apply the State programming pattern in GDscript, including Hierarchical States, and a pushdown automaton. - -States are common in games. You can use the pattern to: - -1. Separate each behavior and transitions between behaviors, thus make scripts shorter and easier to manage -2. Respect the Single Responsibility Principle. Each State object represents [b]one[/b] action -3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do. - -You can read more about States in the excellent [url=http://gameprogrammingpatterns.com/state.html]Game Programming Patterns ebook[/url]." text = "This example shows how to apply the State programming pattern in GDscript, including Hierarchical States, and a pushdown automaton. States are common in games. You can use the pattern to: @@ -34,6 +20,3 @@ States are common in games. You can use the pattern to: 3. Improve your code's structure. Look at the scene tree and FileSystem tab: without looking at the code, you'll know what the Player can or cannot do. You can read more about States in the excellent Game Programming Patterns ebook." -__meta__ = { -"_edit_lock_": true -} diff --git a/2d/finite_state_machine/debug/StatesStackDiplayer.tscn b/2d/finite_state_machine/debug/StatesStackDiplayer.tscn index cc3cbbfad5f..b27b0f6ebc5 100644 --- a/2d/finite_state_machine/debug/StatesStackDiplayer.tscn +++ b/2d/finite_state_machine/debug/StatesStackDiplayer.tscn @@ -1,31 +1,20 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=2 format=3 uid="uid://cvi13chv8g4hj"] -[ext_resource path="res://debug/states_stack_displayer.gd" type="Script" id=1] -[ext_resource path="res://fonts/SourceCodePro-Bold.ttf" type="FontData" id=2] - -[sub_resource type="Font" id=1] -size = 20 -use_filter = true -font_data = ExtResource( 2 ) +[ext_resource type="Script" path="res://debug/states_stack_displayer.gd" id="1"] [node name="StatesStackDiplayer" type="Panel"] offset_right = 210.0 offset_bottom = 170.0 -script = ExtResource( 1 ) -__meta__ = { -"_edit_group_": true -} +script = ExtResource("1") [node name="Title" type="Label" parent="."] +anchors_preset = 5 anchor_left = 0.5 anchor_right = 0.5 offset_left = -105.0 offset_right = 105.0 offset_bottom = 40.0 -custom_fonts/font = SubResource( 1 ) text = "Pushown" -align = 1 -valign = 1 uppercase = true [node name="States" type="Label" parent="."] @@ -33,16 +22,13 @@ offset_left = 20.0 offset_top = 50.0 offset_right = 190.0 offset_bottom = 170.0 -custom_fonts/font = SubResource( 1 ) text = "Jump Test" -align = 1 [node name="Numbers" type="Label" parent="."] offset_left = 20.0 offset_top = 50.0 offset_right = 190.0 offset_bottom = 170.0 -custom_fonts/font = SubResource( 1 ) text = "1. 2." diff --git a/2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import b/2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import new file mode 100644 index 00000000000..c009bf30889 --- /dev/null +++ b/2d/finite_state_machine/fonts/SourceCodePro-Black.ttf.import @@ -0,0 +1,32 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://b7c5m4mw0jhww" +path="res://.godot/imported/SourceCodePro-Black.ttf-5ac54eeedbdedbc63d01069716d9852f.fontdata" + +[deps] + +source_file="res://fonts/SourceCodePro-Black.ttf" +dest_files=["res://.godot/imported/SourceCodePro-Black.ttf-5ac54eeedbdedbc63d01069716d9852f.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import b/2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import new file mode 100644 index 00000000000..f620924e8c7 --- /dev/null +++ b/2d/finite_state_machine/fonts/SourceCodePro-Bold.ttf.import @@ -0,0 +1,32 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://b5bspum6ffekd" +path="res://.godot/imported/SourceCodePro-Bold.ttf-bf03bd9c90603419d32725fc00754bf7.fontdata" + +[deps] + +source_file="res://fonts/SourceCodePro-Bold.ttf" +dest_files=["res://.godot/imported/SourceCodePro-Bold.ttf-bf03bd9c90603419d32725fc00754bf7.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/2d/finite_state_machine/icon.png.import b/2d/finite_state_machine/icon.png.import index 889af9df580..5bdc1ba911d 100644 --- a/2d/finite_state_machine/icon.png.import +++ b/2d/finite_state_machine/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://cmdjuhfejngkf" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/finite_state_machine/player/Player.tscn b/2d/finite_state_machine/player/Player.tscn index 49291c70afe..b5cf2e771d7 100644 --- a/2d/finite_state_machine/player/Player.tscn +++ b/2d/finite_state_machine/player/Player.tscn @@ -1,31 +1,30 @@ -[gd_scene load_steps=20 format=2] - -[ext_resource path="res://player/player_controller.gd" type="Script" id=1] -[ext_resource path="res://player/player_state_machine.gd" type="Script" id=2] -[ext_resource path="res://player/states/motion/on_ground/idle.gd" type="Script" id=3] -[ext_resource path="res://player/states/motion/on_ground/move.gd" type="Script" id=4] -[ext_resource path="res://player/states/motion/in_air/jump.gd" type="Script" id=5] -[ext_resource path="res://player/states/combat/stagger.gd" type="Script" id=6] -[ext_resource path="res://player/states/combat/attack.gd" type="Script" id=7] -[ext_resource path="res://player/states/die.gd" type="Script" id=8] -[ext_resource path="res://player/shadow.png" type="Texture2D" id=9] -[ext_resource path="res://player/body.png" type="Texture2D" id=10] -[ext_resource path="res://player/bullet/bullet_spawner.gd" type="Script" id=11] -[ext_resource path="res://player/weapon/weapon_pivot.gd" type="Script" id=12] -[ext_resource path="res://player/weapon/Sword.tscn" type="PackedScene" id=13] -[ext_resource path="res://fonts/SourceCodePro-Bold.ttf" type="FontData" id=14] -[ext_resource path="res://player/states/debug/state_name_displayer.gd" type="Script" id=15] - -[sub_resource type="Animation" id=1] - -[sub_resource type="Animation" id=2] +[gd_scene load_steps=19 format=3 uid="uid://bpdyvy2681m3i"] + +[ext_resource type="Script" path="res://player/player_controller.gd" id="1"] +[ext_resource type="Script" path="res://player/player_state_machine.gd" id="2"] +[ext_resource type="Script" path="res://player/states/motion/on_ground/idle.gd" id="3"] +[ext_resource type="Script" path="res://player/states/motion/on_ground/move.gd" id="4"] +[ext_resource type="Script" path="res://player/states/motion/in_air/jump.gd" id="5"] +[ext_resource type="Script" path="res://player/states/combat/stagger.gd" id="6"] +[ext_resource type="Script" path="res://player/states/combat/attack.gd" id="7"] +[ext_resource type="Script" path="res://player/states/die.gd" id="8"] +[ext_resource type="Texture2D" uid="uid://eds33w28pilu" path="res://player/shadow.png" id="9"] +[ext_resource type="Texture2D" uid="uid://ds53oxkqrcumd" path="res://player/body.png" id="10"] +[ext_resource type="Script" path="res://player/bullet/bullet_spawner.gd" id="11"] +[ext_resource type="Script" path="res://player/weapon/weapon_pivot.gd" id="12"] +[ext_resource type="PackedScene" uid="uid://cdacdp11r3jua" path="res://player/weapon/Sword.tscn" id="13"] +[ext_resource type="Script" path="res://player/states/debug/state_name_displayer.gd" id="15"] + +[sub_resource type="Animation" id="1"] + +[sub_resource type="Animation" id="2"] length = 0.6 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("BodyPivot/Body:modulate") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.05, 0.1, 0.15, 0.2, 0.25, 0.4), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), @@ -33,72 +32,71 @@ tracks/0/keys = { "values": [Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1), Color(1, 0, 0, 1), Color(1, 1, 1, 1)] } -[sub_resource type="Animation" id=3] +[sub_resource type="Animation" id="3"] -[sub_resource type="Font" id=4] -size = 20 -use_filter = true -font_data = ExtResource( 14 ) +[sub_resource type="AnimationLibrary" id="AnimationLibrary_vi1hn"] +_data = { +"idle": SubResource("1"), +"stagger": SubResource("2"), +"walk": SubResource("3") +} [node name="Player" type="CharacterBody2D"] -script = ExtResource( 1 ) -__meta__ = { -"_edit_horizontal_guides_": [] -} +script = ExtResource("1") [node name="StateMachine" type="Node" parent="."] -script = ExtResource( 2 ) +script = ExtResource("2") [node name="Idle" type="Node" parent="StateMachine"] -script = ExtResource( 3 ) +script = ExtResource("3") [node name="Move" type="Node" parent="StateMachine"] -script = ExtResource( 4 ) +script = ExtResource("4") [node name="Jump" type="Node" parent="StateMachine"] -script = ExtResource( 5 ) +script = ExtResource("5") [node name="Stagger" type="Node" parent="StateMachine"] -script = ExtResource( 6 ) +script = ExtResource("6") [node name="Attack" type="Node" parent="StateMachine"] -script = ExtResource( 7 ) +script = ExtResource("7") [node name="Die" type="Node" parent="StateMachine"] -script = ExtResource( 8 ) +script = ExtResource("8") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/idle = SubResource( 1 ) -anims/stagger = SubResource( 2 ) -anims/walk = SubResource( 3 ) +libraries = { +"": SubResource("AnimationLibrary_vi1hn") +} [node name="Shadow" type="Sprite2D" parent="."] self_modulate = Color(1, 1, 1, 0.361098) position = Vector2(0, -4) -texture = ExtResource( 9 ) +texture = ExtResource("9") -[node name="BodyPivot" type="Position2D" parent="."] +[node name="BodyPivot" type="Marker2D" parent="."] [node name="Body" type="Sprite2D" parent="BodyPivot"] position = Vector2(0, -58) -texture = ExtResource( 10 ) +texture = ExtResource("10") [node name="BulletSpawn" type="Node2D" parent="BodyPivot"] position = Vector2(0, -58) -script = ExtResource( 11 ) +script = ExtResource("11") [node name="CooldownTimer" type="Timer" parent="BodyPivot/BulletSpawn"] wait_time = 0.2 one_shot = true -[node name="WeaponPivot" type="Position2D" parent="BodyPivot"] +[node name="WeaponPivot" type="Marker2D" parent="BodyPivot"] position = Vector2(0, -58) -script = ExtResource( 12 ) +script = ExtResource("12") -[node name="Offset" type="Position2D" parent="BodyPivot/WeaponPivot"] +[node name="Offset" type="Marker2D" parent="BodyPivot/WeaponPivot"] position = Vector2(110, 0) -[node name="Sword" parent="BodyPivot/WeaponPivot/Offset" instance=ExtResource( 13 )] +[node name="Sword" parent="BodyPivot/WeaponPivot/Offset" instance=ExtResource("13")] [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] polygon = PackedVector2Array(-20, 0, -20, -20, 20, -20, 20, 0) @@ -108,15 +106,9 @@ offset_left = -109.0 offset_top = -172.0 offset_right = 110.0 offset_bottom = -138.0 -custom_fonts/font = SubResource( 4 ) text = "Idle" -align = 1 -valign = 1 uppercase = true -script = ExtResource( 15 ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("15") [connection signal="state_changed" from="StateMachine" to="BodyPivot/WeaponPivot/Offset/Sword" method="_on_StateMachine_state_changed"] [connection signal="state_changed" from="StateMachine" to="StateNameDisplayer" method="_on_StateMachine_state_changed"] diff --git a/2d/finite_state_machine/player/body.png.import b/2d/finite_state_machine/player/body.png.import index 6e35628bb7c..f406dfa1591 100644 --- a/2d/finite_state_machine/player/body.png.import +++ b/2d/finite_state_machine/player/body.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.stex" +type="CompressedTexture2D" +uid="uid://ds53oxkqrcumd" +path="res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/body.png" -dest_files=["res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.stex"] +dest_files=["res://.godot/imported/body.png-313f6363670a5852a7b7126ab476d8b1.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/finite_state_machine/player/bullet/Bullet.tscn b/2d/finite_state_machine/player/bullet/Bullet.tscn index 43ce4b6f1fc..64446018783 100644 --- a/2d/finite_state_machine/player/bullet/Bullet.tscn +++ b/2d/finite_state_machine/player/bullet/Bullet.tscn @@ -1,14 +1,14 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://b6uru8lfx45ma"] -[ext_resource path="res://player/bullet/bullet.gd" type="Script" id=1] +[ext_resource type="Script" path="res://player/bullet/bullet.gd" id="1"] -[sub_resource type="CircleShape2D" id=1] +[sub_resource type="CircleShape2D" id="1"] radius = 12.0 [node name="Bullet" type="CharacterBody2D"] collision_layer = 2 collision_mask = 2 -script = ExtResource( 1 ) +script = ExtResource("1") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource( 1 ) +shape = SubResource("1") diff --git a/2d/finite_state_machine/player/player_controller.gd b/2d/finite_state_machine/player/player_controller.gd index a275038a955..a302656b173 100644 --- a/2d/finite_state_machine/player/player_controller.gd +++ b/2d/finite_state_machine/player/player_controller.gd @@ -7,11 +7,11 @@ signal direction_changed(new_direction) var look_direction = Vector2.RIGHT: set(value): - # TODO: Manually copy the code from this method. + look_direction = value set_look_direction(value) func take_damage(attacker, amount, effect = null): - if is_a_parent_of(attacker): + if is_ancestor_of(attacker): return $States/Stagger.knockback_direction = (attacker.global_position - global_position).normalized() $Health.take_damage(amount, effect) @@ -24,5 +24,4 @@ func set_dead(value): func set_look_direction(value): - look_direction = value emit_signal("direction_changed", value) diff --git a/2d/finite_state_machine/player/shadow.png.import b/2d/finite_state_machine/player/shadow.png.import index ecf5ebb09c3..0af5051165d 100644 --- a/2d/finite_state_machine/player/shadow.png.import +++ b/2d/finite_state_machine/player/shadow.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.stex" +type="CompressedTexture2D" +uid="uid://eds33w28pilu" +path="res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/shadow.png" -dest_files=["res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.stex"] +dest_files=["res://.godot/imported/shadow.png-493c4635eca1ce8bdece629560617dc7.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/finite_state_machine/player/weapon/Sword.tscn b/2d/finite_state_machine/player/weapon/Sword.tscn index 4f2dfa7e62d..f4370bac28c 100644 --- a/2d/finite_state_machine/player/weapon/Sword.tscn +++ b/2d/finite_state_machine/player/weapon/Sword.tscn @@ -1,16 +1,16 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=9 format=3 uid="uid://cdacdp11r3jua"] -[ext_resource path="res://player/weapon/sword.gd" type="Script" id=1] -[ext_resource path="res://player/weapon/sword.png" type="Texture2D" id=2] +[ext_resource type="Script" path="res://player/weapon/sword.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://7cfjw83v5m75" path="res://player/weapon/sword.png" id="2"] -[sub_resource type="Animation" id=1] +[sub_resource type="Animation" id="1"] resource_name = "SETUP" tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:rotation_degrees") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -18,11 +18,11 @@ tracks/0/keys = { "values": [0.0] } tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true tracks/1/path = NodePath(".:scale") tracks/1/interp = 1 tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true tracks/1/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -30,11 +30,11 @@ tracks/1/keys = { "values": [Vector2(1, 1)] } tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true tracks/2/path = NodePath(".:visible") tracks/2/interp = 1 tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -42,11 +42,11 @@ tracks/2/keys = { "values": [true] } tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true tracks/3/path = NodePath(".:monitoring") tracks/3/interp = 1 tracks/3/loop_wrap = true -tracks/3/imported = false -tracks/3/enabled = true tracks/3/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -54,11 +54,11 @@ tracks/3/keys = { "values": [true] } tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true tracks/4/path = NodePath(".:monitorable") tracks/4/interp = 1 tracks/4/loop_wrap = true -tracks/4/imported = false -tracks/4/enabled = true tracks/4/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -66,16 +66,16 @@ tracks/4/keys = { "values": [false] } -[sub_resource type="Animation" id=2] +[sub_resource type="Animation" id="2"] resource_name = "attack_circular" length = 0.3 step = 0.05 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:rotation_degrees") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.15, 0.2), "transitions": PackedFloat32Array(0.439427, 1, 1), @@ -83,11 +83,11 @@ tracks/0/keys = { "values": [-100.0, 100.0, 90.0] } tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true tracks/1/path = NodePath(".:scale") tracks/1/interp = 1 tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.05, 0.15, 0.2), "transitions": PackedFloat32Array(1, 2.50795, 1, 1), @@ -95,11 +95,11 @@ tracks/1/keys = { "values": [Vector2(1, 1), Vector2(1, 1.3), Vector2(1, 1), Vector2(1, 1)] } tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true tracks/2/path = NodePath(".:visible") tracks/2/interp = 1 tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -107,15 +107,15 @@ tracks/2/keys = { "values": [true] } -[sub_resource type="Animation" id=3] +[sub_resource type="Animation" id="3"] length = 0.45 step = 0.05 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:rotation_degrees") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.15, 0.2), "transitions": PackedFloat32Array(0.439427, 1, 1), @@ -123,11 +123,11 @@ tracks/0/keys = { "values": [-80.0, 85.0, 75.0] } tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true tracks/1/path = NodePath(".:scale") tracks/1/interp = 1 tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.05, 0.15, 0.2), "transitions": PackedFloat32Array(1, 2.50795, 1, 1), @@ -135,11 +135,11 @@ tracks/1/keys = { "values": [Vector2(1, 1), Vector2(1, 1.3), Vector2(1, 1), Vector2(1, 1)] } tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true tracks/2/path = NodePath(".:visible") tracks/2/interp = 1 tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -147,33 +147,33 @@ tracks/2/keys = { "values": [true] } tracks/3/type = "method" +tracks/3/imported = false +tracks/3/enabled = true tracks/3/path = NodePath(".") tracks/3/interp = 1 tracks/3/loop_wrap = true -tracks/3/imported = false -tracks/3/enabled = true tracks/3/keys = { "times": PackedFloat32Array(0.1, 0.25), "transitions": PackedFloat32Array(1, 1), "values": [{ "args": [], -"method": "set_attack_input_listening" +"method": &"set_attack_input_listening" }, { "args": [], -"method": "set_ready_for_next_attack" +"method": &"set_ready_for_next_attack" }] } -[sub_resource type="Animation" id=4] +[sub_resource type="Animation" id="4"] resource_name = "attack_medium" length = 0.5 step = 0.05 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:rotation_degrees") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0.05, 0.25, 0.35), "transitions": PackedFloat32Array(0.439427, 1, 1), @@ -181,11 +181,11 @@ tracks/0/keys = { "values": [95.0, -95.0, -90.0] } tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true tracks/1/path = NodePath(".:scale") tracks/1/interp = 1 tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true tracks/1/keys = { "times": PackedFloat32Array(0, 0.1, 0.2, 0.25), "transitions": PackedFloat32Array(1, 2.50795, 1, 1), @@ -193,11 +193,11 @@ tracks/1/keys = { "values": [Vector2(1, 1), Vector2(1, 1.3), Vector2(1, 1), Vector2(1, 1)] } tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true tracks/2/path = NodePath(".:visible") tracks/2/interp = 1 tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -205,14 +205,14 @@ tracks/2/keys = { "values": [true] } -[sub_resource type="Animation" id=5] +[sub_resource type="Animation" id="5"] length = 0.01 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:visible") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -220,23 +220,30 @@ tracks/0/keys = { "values": [false] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_6cp3i"] +_data = { +"SETUP": SubResource("1"), +"attack_circular": SubResource("2"), +"attack_fast": SubResource("3"), +"attack_medium": SubResource("4"), +"idle": SubResource("5") +} + [node name="Sword" type="Area2D"] collision_layer = 16 collision_mask = 3 input_pickable = false monitorable = false -script = ExtResource( 1 ) +script = ExtResource("1") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/SETUP = SubResource( 1 ) -anims/attack_circular = SubResource( 2 ) -anims/attack_fast = SubResource( 3 ) -anims/attack_medium = SubResource( 4 ) -anims/idle = SubResource( 5 ) +libraries = { +"": SubResource("AnimationLibrary_6cp3i") +} [node name="Sword" type="Sprite2D" parent="."] position = Vector2(4, 0) -texture = ExtResource( 2 ) +texture = ExtResource("2") offset = Vector2(67, 0) [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] diff --git a/2d/finite_state_machine/player/weapon/sword.gd b/2d/finite_state_machine/player/weapon/sword.gd index 0769136c160..42db82830d6 100644 --- a/2d/finite_state_machine/player/weapon/sword.gd +++ b/2d/finite_state_machine/player/weapon/sword.gd @@ -31,10 +31,8 @@ var combo = [{ var hit_objects = [] func _ready(): - # warning-ignore:return_value_discarded - $AnimationPlayer.connect(&"animation_finished", self._on_animation_finished) - # warning-ignore:return_value_discarded - self.connect(&"body_entered", self._on_body_entered) + $AnimationPlayer.animation_finished.connect(self._on_animation_finished) + body_entered.connect(self._on_body_entered) _change_state(States.IDLE) diff --git a/2d/finite_state_machine/player/weapon/sword.png.import b/2d/finite_state_machine/player/weapon/sword.png.import index 0ad3efc458d..dfddbc545f9 100644 --- a/2d/finite_state_machine/player/weapon/sword.png.import +++ b/2d/finite_state_machine/player/weapon/sword.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.stex" +type="CompressedTexture2D" +uid="uid://7cfjw83v5m75" +path="res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/weapon/sword.png" -dest_files=["res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.stex"] +dest_files=["res://.godot/imported/sword.png-fc7f0084cdf333c826eda2b33f2ec3cc.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/finite_state_machine/player/weapon/weapon_pivot.gd b/2d/finite_state_machine/player/weapon/weapon_pivot.gd index 61912b02692..f29047b90bd 100644 --- a/2d/finite_state_machine/player/weapon/weapon_pivot.gd +++ b/2d/finite_state_machine/player/weapon/weapon_pivot.gd @@ -1,10 +1,9 @@ -extends Position2D +extends Marker2D var z_index_start = 0 func _ready(): - #warning-ignore:return_value_discarded - owner.connect(&"direction_changed", self._on_Parent_direction_changed) + owner.direction_changed.connect(self._on_Parent_direction_changed) z_index_start = z_index diff --git a/2d/finite_state_machine/project.godot b/2d/finite_state_machine/project.godot index 97872be7b84..09fd5a709ba 100644 --- a/2d/finite_state_machine/project.godot +++ b/2d/finite_state_machine/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -15,87 +15,77 @@ config/description="This example shows how to apply the State machine programmin pattern in GDscript, including Hierarchical States, and a pushdown automaton." run/main_scene="res://Demo.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/size/width=1280 -window/size/height=720 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - [input] move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } fire={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } run={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } simulate_damage={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } attack={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/2d/finite_state_machine/state_machine/state_machine.gd b/2d/finite_state_machine/state_machine/state_machine.gd index 48a583dbd22..dbc119672dd 100644 --- a/2d/finite_state_machine/state_machine/state_machine.gd +++ b/2d/finite_state_machine/state_machine/state_machine.gd @@ -17,14 +17,14 @@ var states_stack = [] var current_state = null var _active = false: set(value): - # TODO: Manually copy the code from this method. + _active = value set_active(value) func _ready(): - if not start_state: + if start_state.is_empty(): start_state = get_child(0).get_path() for child in get_children(): - var err = child.connect(&"finished", self._change_state) + var err = child.finished.connect(self._change_state) if err: printerr(err) initialize(start_state) @@ -38,7 +38,6 @@ func initialize(initial_state): func set_active(value): - _active = value set_physics_process(value) set_process_input(value) if not _active: diff --git a/2d/glow/README.md b/2d/glow/README.md new file mode 100644 index 00000000000..f0966c22783 --- /dev/null +++ b/2d/glow/README.md @@ -0,0 +1,17 @@ +# Glow for 2D + +This showcases how to use glow in a 2D game via the WorldEnvironment node. + +Slide the cave image left and right to observe the glow effect at work. + +Language: GDScript + +Renderer: Forward Plus + +Check out this demo on the asset library: https://godotengine.org/asset-library/asset/110 + +## Screenshots + +![Screenshot](screenshots/left.png) + +![Screenshot](screenshots/right.png) diff --git a/2d/glow/beach_cave.gd b/2d/glow/beach_cave.gd new file mode 100644 index 00000000000..f412f4b69c2 --- /dev/null +++ b/2d/glow/beach_cave.gd @@ -0,0 +1,21 @@ +extends Node2D + +const CAVE_LIMIT = 1000 + +var glow_map = preload("res://glow_map.webp") + +@onready var cave = $Cave + +func _unhandled_input(event): + if event is InputEventMouseMotion and event.button_mask > 0: + cave.position.x = clampf(cave.position.x + event.relative.x, -CAVE_LIMIT, 0) + + if event.is_action_pressed("toggle_glow_map"): + if $WorldEnvironment.environment.glow_map: + $WorldEnvironment.environment.glow_map = null + # Restore glow intensity to its default value + $WorldEnvironment.environment.glow_intensity = 0.8 + else: + $WorldEnvironment.environment.glow_map = glow_map + # Increase glow intensity to compensate for the glow map darkening parts of the glow. + $WorldEnvironment.environment.glow_intensity = 1.6 diff --git a/2d/glow/beach_cave.tscn b/2d/glow/beach_cave.tscn new file mode 100644 index 00000000000..fa0ef170263 --- /dev/null +++ b/2d/glow/beach_cave.tscn @@ -0,0 +1,51 @@ +[gd_scene load_steps=5 format=3 uid="uid://bhcia8aeoa4cm"] + +[ext_resource type="Script" path="res://beach_cave.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://drndflsw6mug" path="res://ocean_beach.png" id="2"] +[ext_resource type="Texture2D" uid="uid://dyslwppgvocgd" path="res://ocean_cave.png" id="3"] + +[sub_resource type="Environment" id="1"] +background_mode = 3 +ambient_light_sky_contribution = 0.0 +glow_enabled = true +glow_levels/3 = 0.0 +glow_levels/4 = 1.0 +glow_levels/7 = 1.0 +glow_strength = 0.88 +glow_bloom = 0.08 +glow_blend_mode = 0 + +[node name="BeachCave" type="Node2D"] +script = ExtResource("1") + +[node name="Beach" type="Sprite2D" parent="."] +modulate = Color(2, 2, 2, 1) +self_modulate = Color(2, 2, 2, 1) +texture = ExtResource("2") +centered = false +region_enabled = true +region_rect = Rect2(0, 0, 3840, 720) + +[node name="Cave" type="Sprite2D" parent="."] +self_modulate = Color(0.233166, 0.221219, 0.23582, 1) +scale = Vector2(1.2, 1) +texture = ExtResource("3") +centered = false + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("1") + +[node name="Camera2D" type="Camera2D" parent="."] +offset = Vector2(540, 360) +current = true + +[node name="Label" type="Label" parent="."] +visible = false +offset_left = 18.0 +offset_top = 18.0 +offset_right = 294.0 +offset_bottom = 70.0 +size_flags_horizontal = 2 +size_flags_vertical = 0 +text = "Drag left and right with the mouse +G: Toggle glow map (lens dirt effect)" diff --git a/2d/glow/glow_map.webp b/2d/glow/glow_map.webp new file mode 100644 index 00000000000..0906799af13 Binary files /dev/null and b/2d/glow/glow_map.webp differ diff --git a/2d/glow/glow_map.webp.import b/2d/glow/glow_map.webp.import new file mode 100644 index 00000000000..28f788aa59d --- /dev/null +++ b/2d/glow/glow_map.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bocux7q0xdifq" +path="res://.godot/imported/glow_map.webp-13400453956ba4dd65042386a2d4cf65.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://glow_map.webp" +dest_files=["res://.godot/imported/glow_map.webp-13400453956ba4dd65042386a2d4cf65.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/glow/icon.png b/2d/glow/icon.png new file mode 100644 index 00000000000..1b59418ae75 Binary files /dev/null and b/2d/glow/icon.png differ diff --git a/misc/opensimplexnoise/icon.png.import b/2d/glow/icon.png.import similarity index 56% rename from misc/opensimplexnoise/icon.png.import rename to 2d/glow/icon.png.import index 889af9df580..d17199e91a0 100644 --- a/misc/opensimplexnoise/icon.png.import +++ b/2d/glow/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://bsjtxyyenw6db" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hdr/ocean_beach.png b/2d/glow/ocean_beach.png similarity index 100% rename from 2d/hdr/ocean_beach.png rename to 2d/glow/ocean_beach.png diff --git a/2d/hdr/ocean_beach.png.import b/2d/glow/ocean_beach.png.import similarity index 55% rename from 2d/hdr/ocean_beach.png.import rename to 2d/glow/ocean_beach.png.import index cbc238c6e68..3363ba56fa8 100644 --- a/2d/hdr/ocean_beach.png.import +++ b/2d/glow/ocean_beach.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.stex" +type="CompressedTexture2D" +uid="uid://drndflsw6mug" +path="res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://ocean_beach.png" -dest_files=["res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.stex"] +dest_files=["res://.godot/imported/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=2 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hdr/ocean_cave.png b/2d/glow/ocean_cave.png similarity index 100% rename from 2d/hdr/ocean_cave.png rename to 2d/glow/ocean_cave.png diff --git a/2d/hdr/ocean_cave.png.import b/2d/glow/ocean_cave.png.import similarity index 55% rename from 2d/hdr/ocean_cave.png.import rename to 2d/glow/ocean_cave.png.import index 59a0f604e63..14896fca4d0 100644 --- a/2d/hdr/ocean_cave.png.import +++ b/2d/glow/ocean_cave.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.stex" +type="CompressedTexture2D" +uid="uid://dyslwppgvocgd" +path="res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://ocean_cave.png" -dest_files=["res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.stex"] +dest_files=["res://.godot/imported/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/glow/project.godot b/2d/glow/project.godot new file mode 100644 index 00000000000..b57848753a8 --- /dev/null +++ b/2d/glow/project.godot @@ -0,0 +1,39 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Glow for 2D" +config/description="This showcases how to use glow in a 2D game via the WorldEnvironment node. + +Slide the cave image left and right to observe the glow effect at work." +run/main_scene="res://beach_cave.tscn" +config/features=PackedStringArray("4.0") +config/icon="res://icon.png" +run/name="" + +[display] + +window/size/viewport_width=1080 +window/size/viewport_height=720 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + +[input] + +toggle_glow_map={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":71,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} + +[rendering] + +environment/defaults/default_clear_color=Color(0.0666667, 0.0588235, 0.0431373, 1) diff --git a/2d/hdr/screenshots/.gdignore b/2d/glow/screenshots/.gdignore similarity index 100% rename from 2d/hdr/screenshots/.gdignore rename to 2d/glow/screenshots/.gdignore diff --git a/2d/hdr/screenshots/left.png b/2d/glow/screenshots/left.png similarity index 100% rename from 2d/hdr/screenshots/left.png rename to 2d/glow/screenshots/left.png diff --git a/2d/hdr/screenshots/right.png b/2d/glow/screenshots/right.png similarity index 100% rename from 2d/hdr/screenshots/right.png rename to 2d/glow/screenshots/right.png diff --git a/2d/hdr/README.md b/2d/hdr/README.md deleted file mode 100644 index c64e1e83a18..00000000000 --- a/2d/hdr/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# HDR for 2D - -Simple demo how to use High Dynamic Range (HDR) in a 2D game, -via the WorldEnvironment node. - -Just slide the cave image left and right to observe the HDR effect at work. - -Language: GDScript - -Renderer: GLES 3 (HDR is not available in GLES 2) - -Check out this demo on the asset library: https://godotengine.org/asset-library/asset/110 - -## Screenshots - -![Screenshot](screenshots/left.png) - -![Screenshot](screenshots/right.png) diff --git a/2d/hdr/beach_cave.gd b/2d/hdr/beach_cave.gd deleted file mode 100644 index 62eb10a6899..00000000000 --- a/2d/hdr/beach_cave.gd +++ /dev/null @@ -1,16 +0,0 @@ -extends Node2D - -const CAVE_LIMIT = 1000 - -@onready var cave = $Cave - -func _unhandled_input(event): - if event is InputEventMouseMotion and event.button_mask > 0: - var rel_x = event.relative.x - var cavepos = cave.position - cavepos.x += rel_x - if cavepos.x < -CAVE_LIMIT: - cavepos.x = -CAVE_LIMIT - elif cavepos.x > 0: - cavepos.x = 0 - cave.position = cavepos diff --git a/2d/hdr/beach_cave.tscn b/2d/hdr/beach_cave.tscn deleted file mode 100644 index 932dbbc200f..00000000000 --- a/2d/hdr/beach_cave.tscn +++ /dev/null @@ -1,56 +0,0 @@ -[gd_scene load_steps=5 format=2] - -[ext_resource path="res://beach_cave.gd" type="Script" id=1] -[ext_resource path="res://ocean_beach.png" type="Texture2D" id=2] -[ext_resource path="res://ocean_cave.png" type="Texture2D" id=3] - -[sub_resource type="Environment" id=1] -background_mode = 4 -ambient_light_sky_contribution = 0.0 -auto_exposure_enabled = true -auto_exposure_scale = 0.51 -auto_exposure_speed = 4.0 -ssao_blur = 1 -glow_enabled = true -glow_levels/3 = false -glow_levels/4 = true -glow_levels/7 = true -glow_strength = 0.88 -glow_blend_mode = 0 -glow_bicubic_upscale = true - -[node name="BeachCave" type="Node2D"] -script = ExtResource( 1 ) - -[node name="Beach" type="Sprite2D" parent="."] -modulate = Color(2, 2, 2, 1) -self_modulate = Color(2, 2, 2, 1) -texture = ExtResource( 2 ) -centered = false -region_enabled = true -region_rect = Rect2(0, 0, 3840, 720) - -[node name="Cave" type="Sprite2D" parent="."] -self_modulate = Color(0.233166, 0.221219, 0.23582, 1) -scale = Vector2(1.2, 1) -texture = ExtResource( 3 ) -centered = false - -[node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( 1 ) - -[node name="Camera2D" type="Camera2D" parent="."] -offset = Vector2(540, 360) -current = true - -[node name="Label" type="Label" parent="."] -offset_left = 10.0 -offset_top = 10.0 -offset_right = 135.0 -offset_bottom = 24.0 -size_flags_horizontal = 2 -size_flags_vertical = 0 -text = "Drag Left and Right" -__meta__ = { -"_edit_use_anchors_": false -} diff --git a/2d/hdr/icon.png b/2d/hdr/icon.png deleted file mode 100644 index 3241f1b3b1b..00000000000 Binary files a/2d/hdr/icon.png and /dev/null differ diff --git a/2d/hdr/project.godot b/2d/hdr/project.godot deleted file mode 100644 index f08118917b1..00000000000 --- a/2d/hdr/project.godot +++ /dev/null @@ -1,40 +0,0 @@ -; Engine configuration file. -; It's best edited using the editor UI and not directly, -; since the parameters that go here are not all obvious. -; -; Format: -; [section] ; section goes between [] -; param=value ; assign values to parameters - -config_version=4 - -[application] - -config/name="HDR for 2D" -config/description="Simple demo how to use High Dynamic Range (HDR) in a 2D game, -via the WorldEnvironment node. - -Just slide the cave image left and right to observe the HDR effect at work." -run/main_scene="res://beach_cave.tscn" -config/icon="res://icon.png" -run/name="" - -[display] - -window/size/width=1080 -window/size/height=720 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" -window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rasterizer] - -blur_buffer_size=128 - -[rendering] - -environment/default_clear_color=Color(0.05, 0.0453, 0.0265, 1) diff --git a/2d/hexagonal_map/icon.png.import b/2d/hexagonal_map/icon.png.import index 889af9df580..ae055d1a8d0 100644 --- a/2d/hexagonal_map/icon.png.import +++ b/2d/hexagonal_map/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://ddqj5gbtw2cxw" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/map.tscn b/2d/hexagonal_map/map.tscn index 3d5f3d3dde5..4a1af56da13 100644 --- a/2d/hexagonal_map/map.tscn +++ b/2d/hexagonal_map/map.tscn @@ -1,17 +1,14 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://bdlxxdkhge6fx"] -[ext_resource path="res://tileset.tres" type="TileSet" id=1] -[ext_resource path="res://troll.tscn" type="PackedScene" id=2] +[ext_resource type="TileSet" uid="uid://cdqwqnhu3t3wq" path="res://tileset.tres" id="1"] +[ext_resource type="PackedScene" uid="uid://bryfdf2r0lvau" path="res://troll.tscn" id="2"] [node name="Map" type="Node2D"] [node name="TileMap" type="TileMap" parent="."] -tile_set = ExtResource( 1 ) -cell_size = Vector2(82, 94) -cell_half_offset = 1 -cell_tile_origin = 1 -format = 1 -tile_data = PackedInt32Array(-458747, 0, 0, -458746, 0, 0, -393212, 0, 0, -393211, 0, 0, -393210, 0, 0, -393209, 0, 0, -393208, 0, 0, -393207, 0, 0, -327678, 0, 0, -327677, 0, 0, -327676, 0, 0, -327675, 6, 0, -327674, 6, 0, -327673, 6, 0, -327672, 6, 0, -327671, 0, 0, -327670, 0, 0, -327669, 0, 0, -262142, 0, 0, -262141, 0, 0, -262140, 6, 0, -262139, 6, 0, -262138, 6, 0, -262137, 6, 0, -262136, 6, 0, -262135, 0, 0, -262134, 0, 0, -262133, 0, 0, -262132, 0, 0, -262131, 0, -1200553578, -196606, 0, 0, -196605, 0, 0, -196604, 6, 0, -196603, 6, 0, -196602, 6, 0, -196601, 6, 0, -196600, 1, 0, -196599, 0, 0, -196598, 1, 0, -196597, 1, 0, -196596, 0, 0, -196595, 0, -1200553578, -196594, 0, -1200553578, -131071, 9, 0, -131070, 0, 0, -131069, 0, 0, -131068, 2, 0, -131067, 2, 0, -131066, 0, 0, -131065, 21, 0, -131064, 19, 0, -131063, 0, 0, -131062, 0, 0, -131061, 16, -1200553578, -131060, 0, -1200553578, -131059, 0, 0, -131058, 0, 0, -131057, 0, 0, -131056, 0, -1200553578, -65534, 0, 0, -65533, 1, 0, -65532, 0, 0, -65531, 0, 0, -65530, 20, 0, -65529, 19, 0, -65528, 2, 0, -65527, 0, 0, -65526, 14, 0, -65525, 0, -1200553578, -65524, 0, 0, -65523, 0, 0, -65522, 23, 0, -65521, 0, 0, -65520, 0, -1200553578, -65519, 0, -1200553578, 3, 1, 0, 4, 2, 0, 5, 0, 0, 6, 1, 0, 7, 1, -1200553578, 8, 0, -1200553578, 9, 10, -1200553578, 10, 12, -1200553578, 11, 0, -1200553578, 12, 0, 0, 13, 8, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 65538, 0, -1200553578, 65539, 0, 0, 65540, 2, 0, 65541, 0, 0, 65542, 1, 0, 65543, 15, -1200553578, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 25, 0, 65550, 8, 0, 65551, 0, 0, 65552, 21, 0, 65553, 0, 0, 131074, 0, -1200553578, 131075, 1, 0, 131076, 0, 0, 131077, 1, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 5, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 196610, 0, -1200553578, 196611, 0, 0, 196612, 0, 0, 196613, 23, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 5, 0, 196618, 5, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 23, 0, 196624, 0, 0, 262148, 0, 0, 262149, 0, 0, 262150, 0, 0, 262151, 0, 0, 262152, 8, 0, 262153, 5, 0, 262154, 5, 0, 262155, 0, 0, 262156, 0, 0, 262157, 21, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 327686, 0, 0, 327687, 0, 0, 327688, 0, 0, 327689, 0, 0, 327690, 0, 0, 327691, 0, 0, 327692, 0, 0, 327693, 0, 0, 327694, 0, 0) +tile_set = ExtResource("1") +format = 2 +layer_0/tile_data = PackedInt32Array(-458747, 0, 0, -458746, 0, 0, -393212, 0, 0, -393211, 0, 0, -393210, 0, 0, -393209, 0, 0, -393208, 0, 0, -393207, 0, 0, -327678, 0, 0, -327677, 0, 0, -327676, 0, 0, -327675, 6, 0, -327674, 6, 0, -327673, 6, 0, -327672, 6, 0, -327671, 0, 0, -327670, 0, 0, -327669, 0, 0, -262142, 0, 0, -262141, 0, 0, -262140, 6, 0, -262139, 6, 0, -262138, 6, 0, -262137, 6, 0, -262136, 6, 0, -262135, 0, 0, -262134, 0, 0, -262133, 0, 0, -262132, 0, 0, -262131, 0, 0, -196606, 0, 0, -196605, 0, 0, -196604, 6, 0, -196603, 6, 0, -196602, 6, 0, -196601, 6, 0, -196600, 1, 0, -196599, 0, 0, -196598, 1, 0, -196597, 1, 0, -196596, 0, 0, -196595, 0, 0, -196594, 0, 0, -131071, 9, 0, -131070, 0, 0, -131069, 0, 0, -131068, 2, 0, -131067, 2, 0, -131066, 0, 0, -131065, 21, 0, -131064, 19, 0, -131063, 0, 0, -131062, 0, 0, -131061, 16, 0, -131060, 0, 0, -131059, 0, 0, -131058, 0, 0, -131057, 0, 0, -131056, 0, 0, -65534, 0, 0, -65533, 1, 0, -65532, 0, 0, -65531, 0, 0, -65530, 20, 0, -65529, 19, 0, -65528, 2, 0, -65527, 0, 0, -65526, 14, 0, -65525, 0, 0, -65524, 0, 0, -65523, 0, 0, -65522, 23, 0, -65521, 0, 0, -65520, 0, 0, -65519, 0, 0, 3, 1, 0, 4, 2, 0, 5, 0, 0, 6, 1, 0, 7, 1, 0, 8, 0, 0, 9, 10, 0, 10, 12, 0, 11, 0, 0, 12, 0, 0, 13, 8, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 2, 0, 65541, 0, 0, 65542, 1, 0, 65543, 15, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 25, 0, 65550, 8, 0, 65551, 0, 0, 65552, 21, 0, 65553, 0, 0, 131074, 0, 0, 131075, 1, 0, 131076, 0, 0, 131077, 1, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 5, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 131089, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 23, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 5, 0, 196618, 5, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 23, 0, 196624, 0, 0, 262148, 0, 0, 262149, 0, 0, 262150, 0, 0, 262151, 0, 0, 262152, 8, 0, 262153, 5, 0, 262154, 5, 0, 262155, 0, 0, 262156, 0, 0, 262157, 21, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 327686, 0, 0, 327687, 0, 0, 327688, 0, 0, 327689, 0, 0, 327690, 0, 0, 327691, 0, 0, 327692, 0, 0, 327693, 0, 0, 327694, 0, 0) -[node name="Troll" parent="." instance=ExtResource( 2 )] +[node name="Troll" parent="." instance=ExtResource("2")] position = Vector2(602.819, -39.2876) diff --git a/2d/hexagonal_map/project.godot b/2d/hexagonal_map/project.godot index ff040c6a087..b0da59c344f 100644 --- a/2d/hexagonal_map/project.godot +++ b/2d/hexagonal_map/project.godot @@ -6,63 +6,60 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] config/name="Hexagonal Game" config/description="Very simple demo showing a hexagonal TileMap and TileSet." run/main_scene="res://map.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - [input] move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } +[physics] + +common/physics_ticks_per_second=120 + [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.172549, 0.219608, 0.129412, 1) +environment/defaults/default_clear_color=Color(0.106667, 0.2, 0.1, 1) diff --git a/2d/hexagonal_map/tiles/WWT-01.png.import b/2d/hexagonal_map/tiles/WWT-01.png.import index 4d96037f9b1..560089eacb3 100644 --- a/2d/hexagonal_map/tiles/WWT-01.png.import +++ b/2d/hexagonal_map/tiles/WWT-01.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.stex" +type="CompressedTexture2D" +uid="uid://crqmfvmjk10qv" +path="res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-01.png" -dest_files=["res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.stex"] +dest_files=["res://.godot/imported/WWT-01.png-a74af26d994adfc547572b5b9c0c4034.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-02.png.import b/2d/hexagonal_map/tiles/WWT-02.png.import index 02d35e56df3..c8739045aa2 100644 --- a/2d/hexagonal_map/tiles/WWT-02.png.import +++ b/2d/hexagonal_map/tiles/WWT-02.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.stex" +type="CompressedTexture2D" +uid="uid://cedbg617ddc06" +path="res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-02.png" -dest_files=["res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.stex"] +dest_files=["res://.godot/imported/WWT-02.png-9a9ae8a623554db2531366e8a06b737a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-03.png.import b/2d/hexagonal_map/tiles/WWT-03.png.import index 5a8ceda7a18..deba50594cf 100644 --- a/2d/hexagonal_map/tiles/WWT-03.png.import +++ b/2d/hexagonal_map/tiles/WWT-03.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.stex" +type="CompressedTexture2D" +uid="uid://cmth7tlqu7i5b" +path="res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-03.png" -dest_files=["res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.stex"] +dest_files=["res://.godot/imported/WWT-03.png-111a68b27c5234ed5719f8591af32a0c.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-04.png.import b/2d/hexagonal_map/tiles/WWT-04.png.import index e61f30ce69a..02551e1db65 100644 --- a/2d/hexagonal_map/tiles/WWT-04.png.import +++ b/2d/hexagonal_map/tiles/WWT-04.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.stex" +type="CompressedTexture2D" +uid="uid://cnap3w3iv55k6" +path="res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-04.png" -dest_files=["res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.stex"] +dest_files=["res://.godot/imported/WWT-04.png-f26081179f39965c61294d932b10ab21.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-05.png.import b/2d/hexagonal_map/tiles/WWT-05.png.import index 0537c6ef1d0..8a402a94f43 100644 --- a/2d/hexagonal_map/tiles/WWT-05.png.import +++ b/2d/hexagonal_map/tiles/WWT-05.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.stex" +type="CompressedTexture2D" +uid="uid://b2l65q8a3gdh4" +path="res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-05.png" -dest_files=["res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.stex"] +dest_files=["res://.godot/imported/WWT-05.png-744e3aac04e57d14153c9ab15d0f478b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-06.png.import b/2d/hexagonal_map/tiles/WWT-06.png.import index 041bd8da0e4..a800a6011cf 100644 --- a/2d/hexagonal_map/tiles/WWT-06.png.import +++ b/2d/hexagonal_map/tiles/WWT-06.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.stex" +type="CompressedTexture2D" +uid="uid://dw1k6i44aj0x6" +path="res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-06.png" -dest_files=["res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.stex"] +dest_files=["res://.godot/imported/WWT-06.png-42fd05901daa928f55c39f581f1c698b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-07.png.import b/2d/hexagonal_map/tiles/WWT-07.png.import index a90526bcbd3..7ba29b9447d 100644 --- a/2d/hexagonal_map/tiles/WWT-07.png.import +++ b/2d/hexagonal_map/tiles/WWT-07.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.stex" +type="CompressedTexture2D" +uid="uid://c5fggtsfk75xa" +path="res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-07.png" -dest_files=["res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.stex"] +dest_files=["res://.godot/imported/WWT-07.png-8e87a5146f132f36aecf29c26d16ff69.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-08.png.import b/2d/hexagonal_map/tiles/WWT-08.png.import index 33d760c0414..c0695fff0a8 100644 --- a/2d/hexagonal_map/tiles/WWT-08.png.import +++ b/2d/hexagonal_map/tiles/WWT-08.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.stex" +type="CompressedTexture2D" +uid="uid://wqigqjsj3avp" +path="res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-08.png" -dest_files=["res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.stex"] +dest_files=["res://.godot/imported/WWT-08.png-9ab3b0ed6304c6b282e0c1c2866f4c65.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-09.png.import b/2d/hexagonal_map/tiles/WWT-09.png.import index ed18bd55f12..a7ce8d93716 100644 --- a/2d/hexagonal_map/tiles/WWT-09.png.import +++ b/2d/hexagonal_map/tiles/WWT-09.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.stex" +type="CompressedTexture2D" +uid="uid://c6hs85g3cl0sq" +path="res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-09.png" -dest_files=["res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.stex"] +dest_files=["res://.godot/imported/WWT-09.png-c899d1db7b10c4bc6e5c8ad44627c439.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-10.png.import b/2d/hexagonal_map/tiles/WWT-10.png.import index c113b62b7dd..cfbc5cace85 100644 --- a/2d/hexagonal_map/tiles/WWT-10.png.import +++ b/2d/hexagonal_map/tiles/WWT-10.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.stex" +type="CompressedTexture2D" +uid="uid://bpo0pq1q0f27b" +path="res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-10.png" -dest_files=["res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.stex"] +dest_files=["res://.godot/imported/WWT-10.png-c7e17e1ca741da0752bae015501fa73f.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-11.png.import b/2d/hexagonal_map/tiles/WWT-11.png.import index bd5c28bbe03..ba1db8c9f4e 100644 --- a/2d/hexagonal_map/tiles/WWT-11.png.import +++ b/2d/hexagonal_map/tiles/WWT-11.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.stex" +type="CompressedTexture2D" +uid="uid://cbuym3gkbc32a" +path="res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-11.png" -dest_files=["res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.stex"] +dest_files=["res://.godot/imported/WWT-11.png-109af6474e89a87a4598cb99f608a4f7.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-12.png.import b/2d/hexagonal_map/tiles/WWT-12.png.import index a74edf959c4..1ac5c8d832e 100644 --- a/2d/hexagonal_map/tiles/WWT-12.png.import +++ b/2d/hexagonal_map/tiles/WWT-12.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.stex" +type="CompressedTexture2D" +uid="uid://dyhvpxrxlip5v" +path="res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-12.png" -dest_files=["res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.stex"] +dest_files=["res://.godot/imported/WWT-12.png-dfbf3da77ce636a3e88f9e62405a950b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-13.png.import b/2d/hexagonal_map/tiles/WWT-13.png.import index ea49516edc7..6894c55d6d4 100644 --- a/2d/hexagonal_map/tiles/WWT-13.png.import +++ b/2d/hexagonal_map/tiles/WWT-13.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.stex" +type="CompressedTexture2D" +uid="uid://cf37ho773vwp2" +path="res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-13.png" -dest_files=["res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.stex"] +dest_files=["res://.godot/imported/WWT-13.png-cef8d6fe42386e917ad3aa9b9c54f031.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-14.png.import b/2d/hexagonal_map/tiles/WWT-14.png.import index 5eaac1b28c8..455763d2575 100644 --- a/2d/hexagonal_map/tiles/WWT-14.png.import +++ b/2d/hexagonal_map/tiles/WWT-14.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.stex" +type="CompressedTexture2D" +uid="uid://bxai3ekb6emcv" +path="res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-14.png" -dest_files=["res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.stex"] +dest_files=["res://.godot/imported/WWT-14.png-b9075987807eba6a461b896e310a1b8a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-15.png.import b/2d/hexagonal_map/tiles/WWT-15.png.import index 20b4e05df13..03b39d98215 100644 --- a/2d/hexagonal_map/tiles/WWT-15.png.import +++ b/2d/hexagonal_map/tiles/WWT-15.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.stex" +type="CompressedTexture2D" +uid="uid://cqd2c2wh20qie" +path="res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-15.png" -dest_files=["res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.stex"] +dest_files=["res://.godot/imported/WWT-15.png-00500699e949fc7109f5946f459a9877.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-16.png.import b/2d/hexagonal_map/tiles/WWT-16.png.import index cc9390fa92c..f880007bc77 100644 --- a/2d/hexagonal_map/tiles/WWT-16.png.import +++ b/2d/hexagonal_map/tiles/WWT-16.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.stex" +type="CompressedTexture2D" +uid="uid://1hkvgty64oul" +path="res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-16.png" -dest_files=["res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.stex"] +dest_files=["res://.godot/imported/WWT-16.png-fbcd640a627612e528382718aecef7c7.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-17.png.import b/2d/hexagonal_map/tiles/WWT-17.png.import index aec4e9d0fad..457dff0c355 100644 --- a/2d/hexagonal_map/tiles/WWT-17.png.import +++ b/2d/hexagonal_map/tiles/WWT-17.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.stex" +type="CompressedTexture2D" +uid="uid://1iq2swd8y0kw" +path="res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-17.png" -dest_files=["res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.stex"] +dest_files=["res://.godot/imported/WWT-17.png-eb18073021ced526bfb8971a84830c46.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-18.png.import b/2d/hexagonal_map/tiles/WWT-18.png.import index 6d83a15fdea..437d782d48f 100644 --- a/2d/hexagonal_map/tiles/WWT-18.png.import +++ b/2d/hexagonal_map/tiles/WWT-18.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.stex" +type="CompressedTexture2D" +uid="uid://cyoanntk2j1r5" +path="res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-18.png" -dest_files=["res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.stex"] +dest_files=["res://.godot/imported/WWT-18.png-82273bf41643f8f544a05cdc2226c3b8.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-19.png.import b/2d/hexagonal_map/tiles/WWT-19.png.import index b7706987715..f1c4bae0c67 100644 --- a/2d/hexagonal_map/tiles/WWT-19.png.import +++ b/2d/hexagonal_map/tiles/WWT-19.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.stex" +type="CompressedTexture2D" +uid="uid://ceg6p4pycxma4" +path="res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-19.png" -dest_files=["res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.stex"] +dest_files=["res://.godot/imported/WWT-19.png-5894de00e931e36aaec31583c3ddce5c.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-20.png.import b/2d/hexagonal_map/tiles/WWT-20.png.import index 69572f29bfc..9c266edf7be 100644 --- a/2d/hexagonal_map/tiles/WWT-20.png.import +++ b/2d/hexagonal_map/tiles/WWT-20.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.stex" +type="CompressedTexture2D" +uid="uid://chb3m0ywas0um" +path="res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-20.png" -dest_files=["res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.stex"] +dest_files=["res://.godot/imported/WWT-20.png-88080834968c597a14e2fa47d72452ca.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-21.png.import b/2d/hexagonal_map/tiles/WWT-21.png.import index 1f276059815..501fbe34cad 100644 --- a/2d/hexagonal_map/tiles/WWT-21.png.import +++ b/2d/hexagonal_map/tiles/WWT-21.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.stex" +type="CompressedTexture2D" +uid="uid://c5uttqfeps4db" +path="res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-21.png" -dest_files=["res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.stex"] +dest_files=["res://.godot/imported/WWT-21.png-390238468871139dc33ef039ad919c91.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-22.png.import b/2d/hexagonal_map/tiles/WWT-22.png.import index cba810584e8..1c6af283f87 100644 --- a/2d/hexagonal_map/tiles/WWT-22.png.import +++ b/2d/hexagonal_map/tiles/WWT-22.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.stex" +type="CompressedTexture2D" +uid="uid://desylm4omaicl" +path="res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-22.png" -dest_files=["res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.stex"] +dest_files=["res://.godot/imported/WWT-22.png-61b6f2ffc488560cd737af0df3a2aff4.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-23.png.import b/2d/hexagonal_map/tiles/WWT-23.png.import index 615951c8705..ef53a93fd1e 100644 --- a/2d/hexagonal_map/tiles/WWT-23.png.import +++ b/2d/hexagonal_map/tiles/WWT-23.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.stex" +type="CompressedTexture2D" +uid="uid://c1124u4mauyoa" +path="res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-23.png" -dest_files=["res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.stex"] +dest_files=["res://.godot/imported/WWT-23.png-67ddb05725964560ee768025fb1ace6c.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-24.png.import b/2d/hexagonal_map/tiles/WWT-24.png.import index 36d3bce312b..063af02cd56 100644 --- a/2d/hexagonal_map/tiles/WWT-24.png.import +++ b/2d/hexagonal_map/tiles/WWT-24.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.stex" +type="CompressedTexture2D" +uid="uid://bi8qsd7i1aahf" +path="res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-24.png" -dest_files=["res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.stex"] +dest_files=["res://.godot/imported/WWT-24.png-f708ede817cd745747bd03a5050d20d7.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-25.png.import b/2d/hexagonal_map/tiles/WWT-25.png.import index 03297fb29cf..2f5dc28ec0e 100644 --- a/2d/hexagonal_map/tiles/WWT-25.png.import +++ b/2d/hexagonal_map/tiles/WWT-25.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.stex" +type="CompressedTexture2D" +uid="uid://c0ujnkfiof2c7" +path="res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-25.png" -dest_files=["res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.stex"] +dest_files=["res://.godot/imported/WWT-25.png-8d42552ab8c27a7d4782e3da8de397f1.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tiles/WWT-26.png.import b/2d/hexagonal_map/tiles/WWT-26.png.import index a44e669d170..3598950005e 100644 --- a/2d/hexagonal_map/tiles/WWT-26.png.import +++ b/2d/hexagonal_map/tiles/WWT-26.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.stex" +type="CompressedTexture2D" +uid="uid://nqj5fdvt56ad" +path="res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles/WWT-26.png" -dest_files=["res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.stex"] +dest_files=["res://.godot/imported/WWT-26.png-317f2102fb6abd09801389544f53c0e1.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/tileset.tres b/2d/hexagonal_map/tileset.tres index d510338796a..2108fd39f90 100644 --- a/2d/hexagonal_map/tileset.tres +++ b/2d/hexagonal_map/tileset.tres @@ -1,290 +1,709 @@ -[gd_resource type="TileSet" load_steps=27 format=2] +[gd_resource type="TileSet" load_steps=53 format=3 uid="uid://cdqwqnhu3t3wq"] -[ext_resource path="res://tiles/WWT-01.png" type="Texture2D" id=1] -[ext_resource path="res://tiles/WWT-02.png" type="Texture2D" id=2] -[ext_resource path="res://tiles/WWT-11.png" type="Texture2D" id=3] -[ext_resource path="res://tiles/WWT-12.png" type="Texture2D" id=4] -[ext_resource path="res://tiles/WWT-13.png" type="Texture2D" id=5] -[ext_resource path="res://tiles/WWT-14.png" type="Texture2D" id=6] -[ext_resource path="res://tiles/WWT-15.png" type="Texture2D" id=7] -[ext_resource path="res://tiles/WWT-16.png" type="Texture2D" id=8] -[ext_resource path="res://tiles/WWT-17.png" type="Texture2D" id=9] -[ext_resource path="res://tiles/WWT-18.png" type="Texture2D" id=10] -[ext_resource path="res://tiles/WWT-19.png" type="Texture2D" id=11] -[ext_resource path="res://tiles/WWT-20.png" type="Texture2D" id=12] -[ext_resource path="res://tiles/WWT-03.png" type="Texture2D" id=13] -[ext_resource path="res://tiles/WWT-21.png" type="Texture2D" id=14] -[ext_resource path="res://tiles/WWT-22.png" type="Texture2D" id=15] -[ext_resource path="res://tiles/WWT-23.png" type="Texture2D" id=16] -[ext_resource path="res://tiles/WWT-24.png" type="Texture2D" id=17] -[ext_resource path="res://tiles/WWT-25.png" type="Texture2D" id=18] -[ext_resource path="res://tiles/WWT-26.png" type="Texture2D" id=19] -[ext_resource path="res://tiles/WWT-04.png" type="Texture2D" id=20] -[ext_resource path="res://tiles/WWT-05.png" type="Texture2D" id=21] -[ext_resource path="res://tiles/WWT-06.png" type="Texture2D" id=22] -[ext_resource path="res://tiles/WWT-07.png" type="Texture2D" id=23] -[ext_resource path="res://tiles/WWT-08.png" type="Texture2D" id=24] -[ext_resource path="res://tiles/WWT-09.png" type="Texture2D" id=25] -[ext_resource path="res://tiles/WWT-10.png" type="Texture2D" id=26] +[ext_resource type="Texture2D" uid="uid://crqmfvmjk10qv" path="res://tiles/WWT-01.png" id="1"] +[ext_resource type="Texture2D" uid="uid://cedbg617ddc06" path="res://tiles/WWT-02.png" id="2"] +[ext_resource type="Texture2D" uid="uid://cbuym3gkbc32a" path="res://tiles/WWT-11.png" id="3"] +[ext_resource type="Texture2D" uid="uid://dyhvpxrxlip5v" path="res://tiles/WWT-12.png" id="4"] +[ext_resource type="Texture2D" uid="uid://cf37ho773vwp2" path="res://tiles/WWT-13.png" id="5"] +[ext_resource type="Texture2D" uid="uid://bxai3ekb6emcv" path="res://tiles/WWT-14.png" id="6"] +[ext_resource type="Texture2D" uid="uid://cqd2c2wh20qie" path="res://tiles/WWT-15.png" id="7"] +[ext_resource type="Texture2D" uid="uid://1hkvgty64oul" path="res://tiles/WWT-16.png" id="8"] +[ext_resource type="Texture2D" uid="uid://1iq2swd8y0kw" path="res://tiles/WWT-17.png" id="9"] +[ext_resource type="Texture2D" uid="uid://cyoanntk2j1r5" path="res://tiles/WWT-18.png" id="10"] +[ext_resource type="Texture2D" uid="uid://ceg6p4pycxma4" path="res://tiles/WWT-19.png" id="11"] +[ext_resource type="Texture2D" uid="uid://chb3m0ywas0um" path="res://tiles/WWT-20.png" id="12"] +[ext_resource type="Texture2D" uid="uid://cmth7tlqu7i5b" path="res://tiles/WWT-03.png" id="13"] +[ext_resource type="Texture2D" uid="uid://c5uttqfeps4db" path="res://tiles/WWT-21.png" id="14"] +[ext_resource type="Texture2D" uid="uid://desylm4omaicl" path="res://tiles/WWT-22.png" id="15"] +[ext_resource type="Texture2D" uid="uid://c1124u4mauyoa" path="res://tiles/WWT-23.png" id="16"] +[ext_resource type="Texture2D" uid="uid://bi8qsd7i1aahf" path="res://tiles/WWT-24.png" id="17"] +[ext_resource type="Texture2D" uid="uid://c0ujnkfiof2c7" path="res://tiles/WWT-25.png" id="18"] +[ext_resource type="Texture2D" uid="uid://nqj5fdvt56ad" path="res://tiles/WWT-26.png" id="19"] +[ext_resource type="Texture2D" uid="uid://cnap3w3iv55k6" path="res://tiles/WWT-04.png" id="20"] +[ext_resource type="Texture2D" uid="uid://b2l65q8a3gdh4" path="res://tiles/WWT-05.png" id="21"] +[ext_resource type="Texture2D" uid="uid://dw1k6i44aj0x6" path="res://tiles/WWT-06.png" id="22"] +[ext_resource type="Texture2D" uid="uid://c5fggtsfk75xa" path="res://tiles/WWT-07.png" id="23"] +[ext_resource type="Texture2D" uid="uid://wqigqjsj3avp" path="res://tiles/WWT-08.png" id="24"] +[ext_resource type="Texture2D" uid="uid://c6hs85g3cl0sq" path="res://tiles/WWT-09.png" id="25"] +[ext_resource type="Texture2D" uid="uid://bpo0pq1q0f27b" path="res://tiles/WWT-10.png" id="26"] + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_oh287"] +texture = ExtResource("1") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_bmxdu"] +texture = ExtResource("2") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_u8sk8"] +texture = ExtResource("3") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_dtlkn"] +texture = ExtResource("4") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_k6l3k"] +texture = ExtResource("5") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_yird3"] +texture = ExtResource("6") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2rlgx"] +texture = ExtResource("7") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4vyst"] +texture = ExtResource("8") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_hte4l"] +texture = ExtResource("9") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_1o5vu"] +texture = ExtResource("10") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_qxvr3"] +texture = ExtResource("11") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_w48kd"] +texture = ExtResource("12") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_c2r56"] +texture = ExtResource("13") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ppq3m"] +texture = ExtResource("14") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2nvyk"] +texture = ExtResource("15") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rfmnc"] +texture = ExtResource("16") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_25mrk"] +texture = ExtResource("17") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3l4iw"] +texture = ExtResource("18") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_jm5h0"] +texture = ExtResource("19") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_88jh5"] +texture = ExtResource("20") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_hfv7b"] +texture = ExtResource("21") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xix30"] +texture = ExtResource("22") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_svdm5"] +texture = ExtResource("23") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_xg1yk"] +texture = ExtResource("24") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rjq70"] +texture = ExtResource("25") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_fpx8o"] +texture = ExtResource("26") +texture_region_size = Vector2i(128, 128) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true [resource] -0/name = "Tile1" -0/texture = ExtResource( 1 ) -0/tex_offset = Vector2( 0, 0 ) -0/modulate = Color( 1, 1, 1, 1 ) -0/region = Rect2( 0, 0, 128, 128 ) -0/tile_mode = 0 -0/occluder_offset = Vector2( 0, 0 ) -0/navigation_offset = Vector2( 0, 0 ) -0/shapes = [ ] -0/z_index = 0 -1/name = "Tile2" -1/texture = ExtResource( 2 ) -1/tex_offset = Vector2( 0, 0 ) -1/modulate = Color( 1, 1, 1, 1 ) -1/region = Rect2( 0, 0, 128, 128 ) -1/tile_mode = 0 -1/occluder_offset = Vector2( 0, 0 ) -1/navigation_offset = Vector2( 0, 0 ) -1/shapes = [ ] -1/z_index = 0 -2/name = "Tile3" -2/texture = ExtResource( 13 ) -2/tex_offset = Vector2( 0, 0 ) -2/modulate = Color( 1, 1, 1, 1 ) -2/region = Rect2( 0, 0, 128, 128 ) -2/tile_mode = 0 -2/occluder_offset = Vector2( 0, 0 ) -2/navigation_offset = Vector2( 0, 0 ) -2/shapes = [ ] -2/z_index = 0 -3/name = "Tile4" -3/texture = ExtResource( 20 ) -3/tex_offset = Vector2( 0, 0 ) -3/modulate = Color( 1, 1, 1, 1 ) -3/region = Rect2( 0, 0, 128, 128 ) -3/tile_mode = 0 -3/occluder_offset = Vector2( 0, 0 ) -3/navigation_offset = Vector2( 0, 0 ) -3/shapes = [ ] -3/z_index = 0 -4/name = "Tile5" -4/texture = ExtResource( 21 ) -4/tex_offset = Vector2( 0, 0 ) -4/modulate = Color( 1, 1, 1, 1 ) -4/region = Rect2( 0, 0, 128, 128 ) -4/tile_mode = 0 -4/occluder_offset = Vector2( 0, 0 ) -4/navigation_offset = Vector2( 0, 0 ) -4/shapes = [ ] -4/z_index = 0 -5/name = "Tile6" -5/texture = ExtResource( 22 ) -5/tex_offset = Vector2( 0, 0 ) -5/modulate = Color( 1, 1, 1, 1 ) -5/region = Rect2( 0, 0, 128, 128 ) -5/tile_mode = 0 -5/occluder_offset = Vector2( 0, 0 ) -5/navigation_offset = Vector2( 0, 0 ) -5/shapes = [ ] -5/z_index = 0 -6/name = "Tile7" -6/texture = ExtResource( 23 ) -6/tex_offset = Vector2( 0, 0 ) -6/modulate = Color( 1, 1, 1, 1 ) -6/region = Rect2( 0, 0, 128, 128 ) -6/tile_mode = 0 -6/occluder_offset = Vector2( 0, 0 ) -6/navigation_offset = Vector2( 0, 0 ) -6/shapes = [ ] -6/z_index = 0 -7/name = "Tile8" -7/texture = ExtResource( 24 ) -7/tex_offset = Vector2( 0, 0 ) -7/modulate = Color( 1, 1, 1, 1 ) -7/region = Rect2( 0, 0, 128, 128 ) -7/tile_mode = 0 -7/occluder_offset = Vector2( 0, 0 ) -7/navigation_offset = Vector2( 0, 0 ) -7/shapes = [ ] -7/z_index = 0 -8/name = "Tile9" -8/texture = ExtResource( 25 ) -8/tex_offset = Vector2( 0, 0 ) -8/modulate = Color( 1, 1, 1, 1 ) -8/region = Rect2( 0, 0, 128, 128 ) -8/tile_mode = 0 -8/occluder_offset = Vector2( 0, 0 ) -8/navigation_offset = Vector2( 0, 0 ) -8/shapes = [ ] -8/z_index = 0 -9/name = "Tile10" -9/texture = ExtResource( 26 ) -9/tex_offset = Vector2( 0, 0 ) -9/modulate = Color( 1, 1, 1, 1 ) -9/region = Rect2( 0, 0, 128, 128 ) -9/tile_mode = 0 -9/occluder_offset = Vector2( 0, 0 ) -9/navigation_offset = Vector2( 0, 0 ) -9/shapes = [ ] -9/z_index = 0 -10/name = "Tile11" -10/texture = ExtResource( 3 ) -10/tex_offset = Vector2( 0, 0 ) -10/modulate = Color( 1, 1, 1, 1 ) -10/region = Rect2( 0, 0, 128, 128 ) -10/tile_mode = 0 -10/occluder_offset = Vector2( 0, 0 ) -10/navigation_offset = Vector2( 0, 0 ) -10/shapes = [ ] -10/z_index = 0 -11/name = "Tile12" -11/texture = ExtResource( 4 ) -11/tex_offset = Vector2( 0, 0 ) -11/modulate = Color( 1, 1, 1, 1 ) -11/region = Rect2( 0, 0, 128, 128 ) -11/tile_mode = 0 -11/occluder_offset = Vector2( 0, 0 ) -11/navigation_offset = Vector2( 0, 0 ) -11/shapes = [ ] -11/z_index = 0 -12/name = "Tile13" -12/texture = ExtResource( 5 ) -12/tex_offset = Vector2( 0, 0 ) -12/modulate = Color( 1, 1, 1, 1 ) -12/region = Rect2( 0, 0, 128, 128 ) -12/tile_mode = 0 -12/occluder_offset = Vector2( 0, 0 ) -12/navigation_offset = Vector2( 0, 0 ) -12/shapes = [ ] -12/z_index = 0 -13/name = "Tile14" -13/texture = ExtResource( 6 ) -13/tex_offset = Vector2( 0, 0 ) -13/modulate = Color( 1, 1, 1, 1 ) -13/region = Rect2( 0, 0, 128, 128 ) -13/tile_mode = 0 -13/occluder_offset = Vector2( 0, 0 ) -13/navigation_offset = Vector2( 0, 0 ) -13/shapes = [ ] -13/z_index = 0 -14/name = "Tile15" -14/texture = ExtResource( 7 ) -14/tex_offset = Vector2( 0, 0 ) -14/modulate = Color( 1, 1, 1, 1 ) -14/region = Rect2( 0, 0, 128, 128 ) -14/tile_mode = 0 -14/occluder_offset = Vector2( 0, 0 ) -14/navigation_offset = Vector2( 0, 0 ) -14/shapes = [ ] -14/z_index = 0 -15/name = "Tile16" -15/texture = ExtResource( 8 ) -15/tex_offset = Vector2( 0, 0 ) -15/modulate = Color( 1, 1, 1, 1 ) -15/region = Rect2( 0, 0, 128, 128 ) -15/tile_mode = 0 -15/occluder_offset = Vector2( 0, 0 ) -15/navigation_offset = Vector2( 0, 0 ) -15/shapes = [ ] -15/z_index = 0 -16/name = "Tile17" -16/texture = ExtResource( 9 ) -16/tex_offset = Vector2( 0, 0 ) -16/modulate = Color( 1, 1, 1, 1 ) -16/region = Rect2( 0, 0, 128, 128 ) -16/tile_mode = 0 -16/occluder_offset = Vector2( 0, 0 ) -16/navigation_offset = Vector2( 0, 0 ) -16/shapes = [ ] -16/z_index = 0 -17/name = "Tile18" -17/texture = ExtResource( 10 ) -17/tex_offset = Vector2( 0, 0 ) -17/modulate = Color( 1, 1, 1, 1 ) -17/region = Rect2( 0, 0, 128, 128 ) -17/tile_mode = 0 -17/occluder_offset = Vector2( 0, 0 ) -17/navigation_offset = Vector2( 0, 0 ) -17/shapes = [ ] -17/z_index = 0 -18/name = "Tile19" -18/texture = ExtResource( 11 ) -18/tex_offset = Vector2( 0, 0 ) -18/modulate = Color( 1, 1, 1, 1 ) -18/region = Rect2( 0, 0, 128, 128 ) -18/tile_mode = 0 -18/occluder_offset = Vector2( 0, 0 ) -18/navigation_offset = Vector2( 0, 0 ) -18/shapes = [ ] -18/z_index = 0 -19/name = "Tile20" -19/texture = ExtResource( 12 ) -19/tex_offset = Vector2( 0, 0 ) -19/modulate = Color( 1, 1, 1, 1 ) -19/region = Rect2( 0, 0, 128, 128 ) -19/tile_mode = 0 -19/occluder_offset = Vector2( 0, 0 ) -19/navigation_offset = Vector2( 0, 0 ) -19/shapes = [ ] -19/z_index = 0 -20/name = "Tile21" -20/texture = ExtResource( 14 ) -20/tex_offset = Vector2( 0, 0 ) -20/modulate = Color( 1, 1, 1, 1 ) -20/region = Rect2( 0, 0, 128, 128 ) -20/tile_mode = 0 -20/occluder_offset = Vector2( 0, 0 ) -20/navigation_offset = Vector2( 0, 0 ) -20/shapes = [ ] -20/z_index = 0 -21/name = "Tile22" -21/texture = ExtResource( 15 ) -21/tex_offset = Vector2( 0, 0 ) -21/modulate = Color( 1, 1, 1, 1 ) -21/region = Rect2( 0, 0, 128, 128 ) -21/tile_mode = 0 -21/occluder_offset = Vector2( 0, 0 ) -21/navigation_offset = Vector2( 0, 0 ) -21/shapes = [ ] -21/z_index = 0 -22/name = "Tile23" -22/texture = ExtResource( 16 ) -22/tex_offset = Vector2( 0, 0 ) -22/modulate = Color( 1, 1, 1, 1 ) -22/region = Rect2( 0, 0, 128, 128 ) -22/tile_mode = 0 -22/occluder_offset = Vector2( 0, 0 ) -22/navigation_offset = Vector2( 0, 0 ) -22/shapes = [ ] -22/z_index = 0 -23/name = "Tile24" -23/texture = ExtResource( 17 ) -23/tex_offset = Vector2( 0, 0 ) -23/modulate = Color( 1, 1, 1, 1 ) -23/region = Rect2( 0, 0, 128, 128 ) -23/tile_mode = 0 -23/occluder_offset = Vector2( 0, 0 ) -23/navigation_offset = Vector2( 0, 0 ) -23/shapes = [ ] -23/z_index = 0 -24/name = "Tile25" -24/texture = ExtResource( 18 ) -24/tex_offset = Vector2( 0, 0 ) -24/modulate = Color( 1, 1, 1, 1 ) -24/region = Rect2( 0, 0, 128, 128 ) -24/tile_mode = 0 -24/occluder_offset = Vector2( 0, 0 ) -24/navigation_offset = Vector2( 0, 0 ) -24/shapes = [ ] -24/z_index = 0 -25/name = "Tile26" -25/texture = ExtResource( 19 ) -25/tex_offset = Vector2( 0, 0 ) -25/modulate = Color( 1, 1, 1, 1 ) -25/region = Rect2( 0, 0, 128, 128 ) -25/tile_mode = 0 -25/occluder_offset = Vector2( 0, 0 ) -25/navigation_offset = Vector2( 0, 0 ) -25/shapes = [ ] -25/z_index = 0 +tile_shape = 3 +tile_offset_axis = 1 +tile_size = Vector2i(110, 94) +sources/0 = SubResource("TileSetAtlasSource_oh287") +sources/1 = SubResource("TileSetAtlasSource_bmxdu") +sources/2 = SubResource("TileSetAtlasSource_c2r56") +sources/3 = SubResource("TileSetAtlasSource_88jh5") +sources/4 = SubResource("TileSetAtlasSource_hfv7b") +sources/5 = SubResource("TileSetAtlasSource_xix30") +sources/6 = SubResource("TileSetAtlasSource_svdm5") +sources/7 = SubResource("TileSetAtlasSource_xg1yk") +sources/8 = SubResource("TileSetAtlasSource_rjq70") +sources/9 = SubResource("TileSetAtlasSource_fpx8o") +sources/10 = SubResource("TileSetAtlasSource_u8sk8") +sources/11 = SubResource("TileSetAtlasSource_dtlkn") +sources/12 = SubResource("TileSetAtlasSource_k6l3k") +sources/13 = SubResource("TileSetAtlasSource_yird3") +sources/14 = SubResource("TileSetAtlasSource_2rlgx") +sources/15 = SubResource("TileSetAtlasSource_4vyst") +sources/16 = SubResource("TileSetAtlasSource_hte4l") +sources/17 = SubResource("TileSetAtlasSource_1o5vu") +sources/18 = SubResource("TileSetAtlasSource_qxvr3") +sources/19 = SubResource("TileSetAtlasSource_w48kd") +sources/20 = SubResource("TileSetAtlasSource_ppq3m") +sources/21 = SubResource("TileSetAtlasSource_2nvyk") +sources/22 = SubResource("TileSetAtlasSource_rfmnc") +sources/23 = SubResource("TileSetAtlasSource_25mrk") +sources/24 = SubResource("TileSetAtlasSource_3l4iw") +sources/25 = SubResource("TileSetAtlasSource_jm5h0") diff --git a/2d/hexagonal_map/troll.gd b/2d/hexagonal_map/troll.gd index a153657d608..4547c2650a9 100644 --- a/2d/hexagonal_map/troll.gd +++ b/2d/hexagonal_map/troll.gd @@ -1,13 +1,16 @@ extends CharacterBody2D -const MOTION_SPEED = 160 # Pixels/second. -const TAN30DEG = tan(deg2rad(30)) +const MOTION_SPEED = 30 +const FRICTION_FACTOR = 0.89 +const TAN30DEG = tan(deg_to_rad(30)) func _physics_process(_delta): var motion = Vector2() motion.x = Input.get_axis(&"move_left", &"move_right") motion.y = Input.get_axis(&"move_up", &"move_down") + # Make diagonal movement fit for hexagonal tiles. motion.y *= TAN30DEG - motion = motion.normalized() * MOTION_SPEED - #warning-ignore:return_value_discarded - move_and_slide(motion) + velocity += motion.normalized() * MOTION_SPEED + # Apply friction. + velocity *= FRICTION_FACTOR + move_and_slide() diff --git a/2d/hexagonal_map/troll.png.import b/2d/hexagonal_map/troll.png.import index b319f61ffa7..bf38b173896 100644 --- a/2d/hexagonal_map/troll.png.import +++ b/2d/hexagonal_map/troll.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex" +type="CompressedTexture2D" +uid="uid://c125b0x0g8lwk" +path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://troll.png" -dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex"] +dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/hexagonal_map/troll.tscn b/2d/hexagonal_map/troll.tscn index 3d2c23e3f67..92377559139 100644 --- a/2d/hexagonal_map/troll.tscn +++ b/2d/hexagonal_map/troll.tscn @@ -1,20 +1,26 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://bryfdf2r0lvau"] -[ext_resource path="res://troll.gd" type="Script" id=1] -[ext_resource path="res://troll.png" type="Texture2D" id=2] +[ext_resource type="Script" path="res://troll.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://c125b0x0g8lwk" path="res://troll.png" id="2"] -[sub_resource type="CircleShape2D" id=1] +[sub_resource type="CircleShape2D" id="1"] radius = 16.0 [node name="Troll" type="CharacterBody2D"] -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource( 2 ) +texture = ExtResource("2") + +[node name="Shadow" type="Sprite2D" parent="."] +modulate = Color(0, 0, 0, 0.501961) +show_behind_parent = true +position = Vector2(3, 3) +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(3.24216, 19.453) -shape = SubResource( 1 ) +shape = SubResource("1") [node name="Camera2D" type="Camera2D" parent="."] current = true diff --git a/2d/instancing/bowling_ball.png.import b/2d/instancing/bowling_ball.png.import index 5a153d3638e..c68509e895f 100644 --- a/2d/instancing/bowling_ball.png.import +++ b/2d/instancing/bowling_ball.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/instancing/icon.png.import b/2d/instancing/icon.png.import index 8d61077f48d..eaff2b832c1 100644 --- a/2d/instancing/icon.png.import +++ b/2d/instancing/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/instancing/project.godot b/2d/instancing/project.godot index f947e68d6a2..650e3d57565 100644 --- a/2d/instancing/project.godot +++ b/2d/instancing/project.godot @@ -14,12 +14,11 @@ config/name="Scene Instancing Demo" config/description="A demo showing how to use scene instancing to make many duplicates of the same object." run/main_scene="res://scene_instancing.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] -window/size/viewport_width=800 window/stretch/mode="canvas_items" window/stretch/aspect="expand" @@ -29,4 +28,6 @@ window/stretch/aspect="expand" [rendering] +environment/defaults/default_clear_color=Color(0.239216, 0.0823529, 0.156863, 1) +anti_aliasing/quality/msaa_2d=2 vulkan/rendering/back_end=1 diff --git a/2d/instancing/scene_instancing.tscn b/2d/instancing/scene_instancing.tscn index c62b7c97bac..4b82a2d4f19 100644 --- a/2d/instancing/scene_instancing.tscn +++ b/2d/instancing/scene_instancing.tscn @@ -36,15 +36,19 @@ bounce = 0.4 [node name="SceneInstancing" type="Node2D"] [node name="InfoLabel" type="Label" parent="."] -offset_right = 354.0 -offset_bottom = 26.0 +offset_left = 16.0 +offset_top = 16.0 +offset_right = 370.0 +offset_bottom = 42.0 text = "Click the mouse to spawn a new Ball instance." horizontal_alignment = 1 +metadata/_edit_use_anchors_ = true [node name="BallFactory" type="Node2D" parent="."] -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Static" type="StaticBody2D" parent="."] +position = Vector2(184, 32) [node name="Collision" type="CollisionPolygon2D" parent="Static"] polygon = PackedVector2Array(8.68994, 22.1976, 50.4445, 556.656, 292.621, 501.54, 335.36, 550.855, 510.039, 563.135, 542.137, 526.368, 567.463, 515.822, 612.463, 506.822, 667.291, 495.079, 747.553, 553.575, 793.806, 6.70509, 802.465, 601.097, 4.43558, 596.186) @@ -53,46 +57,46 @@ polygon = PackedVector2Array(8.68994, 22.1976, 50.4445, 556.656, 292.621, 501.54 color = Color(1, 0.266667, 0.419608, 1) polygon = PackedVector2Array(8.68994, 22.1976, 50.4445, 556.656, 292.621, 501.54, 335.36, 550.855, 510.039, 563.135, 542.137, 526.368, 567.463, 515.822, 612.463, 506.822, 667.291, 495.079, 747.553, 553.575, 793.806, 6.70509, 802.465, 601.097, 4.43558, 596.186) -[node name="Ball1" parent="." instance=ExtResource( "2" )] -position = Vector2(223.823, 161.773) -physics_material_override = SubResource( "1" ) +[node name="Ball1" parent="." instance=ExtResource("2")] +position = Vector2(407.823, 193.773) +physics_material_override = SubResource("1") -[node name="Ball2" parent="." instance=ExtResource( "2" )] -position = Vector2(388.078, 213.215) -physics_material_override = SubResource( "2" ) +[node name="Ball2" parent="." instance=ExtResource("2")] +position = Vector2(572.078, 245.215) +physics_material_override = SubResource("2") -[node name="Ball3" parent="." instance=ExtResource( "2" )] -position = Vector2(439.52, 104.013) -physics_material_override = SubResource( "3" ) +[node name="Ball3" parent="." instance=ExtResource("2")] +position = Vector2(623.52, 136.013) +physics_material_override = SubResource("3") -[node name="Ball4" parent="." instance=ExtResource( "2" )] -position = Vector2(235.555, 336.858) -physics_material_override = SubResource( "4" ) +[node name="Ball4" parent="." instance=ExtResource("2")] +position = Vector2(419.555, 368.858) +physics_material_override = SubResource("4") -[node name="Ball5" parent="." instance=ExtResource( "2" )] -position = Vector2(509.555, 362.858) -physics_material_override = SubResource( "5" ) +[node name="Ball5" parent="." instance=ExtResource("2")] +position = Vector2(693.555, 394.858) +physics_material_override = SubResource("5") -[node name="Ball6" parent="." instance=ExtResource( "2" )] -position = Vector2(635.555, 147.858) -physics_material_override = SubResource( "6" ) +[node name="Ball6" parent="." instance=ExtResource("2")] +position = Vector2(819.555, 179.858) +physics_material_override = SubResource("6") -[node name="Ball7" parent="." instance=ExtResource( "2" )] -position = Vector2(631.872, 325.88) -physics_material_override = SubResource( "7" ) +[node name="Ball7" parent="." instance=ExtResource("2")] +position = Vector2(815.872, 357.88) +physics_material_override = SubResource("7") -[node name="Ball8" parent="." instance=ExtResource( "2" )] -position = Vector2(529.97, 205.561) -physics_material_override = SubResource( "8" ) +[node name="Ball8" parent="." instance=ExtResource("2")] +position = Vector2(713.97, 237.561) +physics_material_override = SubResource("8") -[node name="Ball9" parent="." instance=ExtResource( "2" )] -position = Vector2(101.489, 167.502) -physics_material_override = SubResource( "9" ) +[node name="Ball9" parent="." instance=ExtResource("2")] +position = Vector2(285.489, 199.502) +physics_material_override = SubResource("9") -[node name="Ball10" parent="." instance=ExtResource( "2" )] -position = Vector2(143.756, 295.139) -physics_material_override = SubResource( "10" ) +[node name="Ball10" parent="." instance=ExtResource("2")] +position = Vector2(327.756, 327.139) +physics_material_override = SubResource("10") [node name="Camera2D" type="Camera2D" parent="."] -offset = Vector2(400, 300) +offset = Vector2(576, 324) current = true diff --git a/2d/isometric/dungeon.tscn b/2d/isometric/dungeon.tscn index cf3032f983e..00ada413a39 100644 --- a/2d/isometric/dungeon.tscn +++ b/2d/isometric/dungeon.tscn @@ -1,28 +1,19 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://d2n73c4vcs6yd"] -[ext_resource path="res://tileset.tres" type="TileSet" id=1] -[ext_resource path="res://troll.tscn" type="PackedScene" id=2] +[ext_resource type="TileSet" uid="uid://r7h8te85l3bx" path="res://tileset.tres" id="1"] +[ext_resource type="PackedScene" uid="uid://cvs6nhy4ydg0u" path="res://troll.tscn" id="2"] [node name="Dungeon" type="Node2D"] [node name="Floor" type="TileMap" parent="."] -mode = 1 -tile_set = ExtResource( 1 ) -cell_size = Vector2(128, 64) -cell_tile_origin = 1 -centered_textures = true -format = 1 -tile_data = PackedInt32Array(-917493, 0, 0, -917492, 0, 0, -917491, 0, 0, -917490, 0, 0, -851957, 0, 0, -851956, 0, 0, -851955, 0, 0, -851954, 0, 0, -786421, 0, 0, -786420, 1, 0, -786419, 0, -1200553578, -786418, 0, 0, -720885, 0, 0, -720884, 0, 0, -720883, 0, -1200553578, -720882, 0, 0, -655349, 0, 0, -655348, 1, 0, -655347, 0, -1200553578, -655346, 0, 0, -589813, 0, 0, -589812, 1, 0, -589811, 0, -1200553578, -589810, 0, 0, -524277, 0, 0, -524276, 0, 0, -524275, 1, -1200553578, -524274, 0, 0, -458747, 0, 0, -458746, 0, 0, -458745, 0, 0, -458744, 0, 0, -458743, 0, 0, -458742, 0, 0, -458741, 0, 0, -458740, 0, 0, -458739, 0, -1200553578, -458738, 0, 0, -393211, 0, 0, -393210, 0, 0, -393209, 0, 0, -393208, 0, 0, -393207, 0, 0, -393206, 0, 0, -393205, 0, 0, -393204, 0, 0, -393203, 0, -1200553578, -393202, 0, 0, -327675, 0, 0, -327674, 0, 0, -327673, 0, -1200553578, -327672, 1, -1200553578, -327671, 1, -1200553578, -327670, 1, 0, -327669, 1, 0, -327668, 1, 0, -327667, 0, -1200553578, -327666, 0, 0, -262139, 0, 0, -262138, 0, 0, -262137, 0, -1200553578, -262136, 0, -1200553578, -262135, 0, -1200553578, -262134, 0, -1200553578, -262133, 0, -1200553578, -262132, 0, -1200553578, -262131, 0, -1200553578, -262130, 0, 0, -196603, 0, 0, -196602, 0, 0, -196601, 0, -1200553578, -196600, 0, -1200553578, -196599, 0, 0, -196598, 0, 0, -196597, 0, 0, -196596, 0, 0, -196595, 0, 0, -196594, 0, 0, -131067, 0, 0, -131066, 0, 0, -131065, 0, -1200553578, -131064, 0, -1200553578, -131063, 0, 0, -65531, 0, 0, -65530, 0, 0, -65529, 0, -1200553578, -65528, 0, -1200553578, -65527, 0, 0, 5, 0, 0, 6, 0, 0, 7, 1, -1200553578, 8, 0, -1200553578, 9, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, -1200553578, 65544, 0, -1200553578, 65545, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, -1200553578, 131080, 0, -1200553578, 131081, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0) +tile_set = ExtResource("1") +format = 2 +layer_0/tile_data = PackedInt32Array(-917493, 0, 0, -917492, 0, 0, -917491, 0, 0, -917490, 0, 0, -851957, 0, 0, -851956, 0, 0, -851955, 0, 0, -851954, 0, 0, -786421, 0, 0, -786420, 1, 0, -786419, 0, 0, -786418, 0, 0, -720885, 0, 0, -720884, 0, 0, -720883, 0, 0, -720882, 0, 0, -655349, 0, 0, -655348, 1, 0, -655347, 0, 0, -655346, 0, 0, -589813, 0, 0, -589812, 1, 0, -589811, 0, 0, -589810, 0, 0, -524277, 0, 0, -524276, 0, 0, -524275, 1, 0, -524274, 0, 0, -458747, 0, 0, -458746, 0, 0, -458745, 0, 0, -458744, 0, 0, -458743, 0, 0, -458742, 0, 0, -458741, 0, 0, -458740, 0, 0, -458739, 0, 0, -458738, 0, 0, -393211, 0, 0, -393210, 0, 0, -393209, 0, 0, -393208, 0, 0, -393207, 0, 0, -393206, 0, 0, -393205, 0, 0, -393204, 0, 0, -393203, 0, 0, -393202, 0, 0, -327675, 0, 0, -327674, 0, 0, -327673, 0, 0, -327672, 1, 0, -327671, 1, 0, -327670, 1, 0, -327669, 1, 0, -327668, 1, 0, -327667, 0, 0, -327666, 0, 0, -262139, 0, 0, -262138, 0, 0, -262137, 0, 0, -262136, 0, 0, -262135, 0, 0, -262134, 0, 0, -262133, 0, 0, -262132, 0, 0, -262131, 0, 0, -262130, 0, 0, -196603, 0, 0, -196602, 0, 0, -196601, 0, 0, -196600, 0, 0, -196599, 0, 0, -196598, 0, 0, -196597, 0, 0, -196596, 0, 0, -196595, 0, 0, -196594, 0, 0, -131067, 0, 0, -131066, 0, 0, -131065, 0, 0, -131064, 0, 0, -131063, 0, 0, -65531, 0, 0, -65530, 0, 0, -65529, 0, 0, -65528, 0, 0, -65527, 0, 0, 5, 0, 0, 6, 0, 0, 7, 1, 0, 8, 0, 0, 9, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 1, 0) [node name="Walls" type="TileMap" parent="."] -mode = 1 -tile_set = ExtResource( 1 ) -cell_size = Vector2(128, 64) -cell_tile_origin = 1 -cell_y_sort = true -centered_textures = true -format = 1 -tile_data = PackedInt32Array(-917493, 2, -1200553578, -917492, 2, -1200553578, -917491, 2, -1200553578, -917490, 2, -1200553578, -917489, 2, -1200553578, -851957, 2, -1200553578, -851956, 3, -1200553578, -851954, 3, -1200553578, -851953, 2, -1200553578, -786421, 2, -1200553578, -786420, 3, -1200553578, -786418, 3, -1200553578, -786417, 2, -1200553578, -720885, 2, -1200553578, -720881, 2, -1200553578, -655349, 2, -1200553578, -655348, 2, -1200553578, -655346, 3, -1200553578, -655345, 2, -1200553578, -589813, 2, -1200553578, -589809, 2, -1200553578, -524277, 2, -1200553578, -524273, 2, -1200553578, -458747, 2, -1200553578, -458746, 2, -1200553578, -458745, 2, -1200553578, -458744, 536870916, -1200553578, -458743, 536870916, -1200553578, -458742, 2, 0, -458741, 2, 0, -458740, 2, 0, -458738, 2, 0, -458737, 2, -1200553578, -393211, 2, -1200553578, -393209, 3, -1200553578, -393201, 2, -1200553578, -327675, 4, -1200553578, -327665, 2, -1200553578, -262139, 4, -1200553578, -262129, 2, -1200553578, -196603, 2, 0, -196601, 3, 0, -196593, 2, -1200553578, -131067, 2, 0, -131062, 2, -1200553578, -131061, 2, -1200553578, -131060, 2, -1200553578, -131059, 2, -1200553578, -131058, 2, -1200553578, -131057, 2, -1200553578, -65531, 2, 0, -65530, 2, 0, -65527, 2, -1200553578, -65526, 2, -1200553578, 5, 2, -1200553578, 10, 2, 0, 65541, 2, -1200553578, 65546, 2, 0, 131077, 2, -1200553578, 131081, 3, 0, 131082, 2, 0, 196613, 2, -1200553578, 196618, 2, 0, 262149, 2, -1200553578, 262150, 2, -1200553578, 262151, 2, -1200553578, 262152, 2, 0, 262153, 2, 0, 262154, 2, 0) +tile_set = ExtResource("1") +format = 2 +layer_0/tile_data = PackedInt32Array(-917493, 2, 0, -917492, 2, 0, -917491, 2, 0, -917490, 2, 0, -917489, 2, 0, -851957, 2, 0, -851956, 3, 0, -851954, 3, 0, -851953, 2, 0, -786421, 2, 0, -786420, 3, 0, -786418, 3, 0, -786417, 2, 0, -720885, 2, 0, -720881, 2, 0, -655349, 2, 0, -655348, 2, 0, -655346, 3, 0, -655345, 2, 0, -589813, 2, 0, -589809, 2, 0, -524277, 2, 0, -524273, 2, 0, -458747, 2, 0, -458746, 2, 0, -458745, 2, 0, -458744, 4, 65536, -458743, 4, 65536, -458742, 2, 0, -458741, 2, 0, -458740, 2, 0, -458738, 2, 0, -458737, 2, 0, -393211, 2, 0, -393209, 3, 0, -393201, 2, 0, -327675, 4, 0, -327665, 2, 0, -262139, 4, 0, -262129, 2, 0, -196603, 2, 0, -196601, 3, 0, -196593, 2, 0, -131067, 2, 0, -131062, 2, 0, -131061, 2, 0, -131060, 2, 0, -131059, 2, 0, -131058, 2, 0, -131057, 2, 0, -65531, 2, 0, -65530, 2, 0, -65527, 2, 0, -65526, 2, 0, 5, 2, 0, 10, 2, 0, 65541, 2, 0, 65546, 2, 0, 131077, 2, 0, 131082, 2, 0, 196613, 2, 0, 196618, 2, 0, 262149, 2, 0, 262150, 2, 0, 262151, 2, 0, 262152, 2, 0, 262153, 2, 0, 262154, 2, 0, 131081, 3, 0) -[node name="Troll" parent="Walls" instance=ExtResource( 2 )] -position = Vector2(368.142, 347.007) +[node name="Troll" parent="Walls" instance=ExtResource("2")] +position = Vector2(448.142, 339.007) diff --git a/2d/isometric/icon.png.import b/2d/isometric/icon.png.import index 889af9df580..9bd673b2929 100644 --- a/2d/isometric/icon.png.import +++ b/2d/isometric/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://cyuecw0rd5i3y" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/isometric/isotiles.png.import b/2d/isometric/isotiles.png.import index 6ef964fb787..4a0fa05617f 100644 --- a/2d/isometric/isotiles.png.import +++ b/2d/isometric/isotiles.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex" +type="CompressedTexture2D" +uid="uid://kqinbs473dse" +path="res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://isotiles.png" -dest_files=["res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.stex"] +dest_files=["res://.godot/imported/isotiles.png-502434fe0d6c3fd8ce67cea5a960c208.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/isometric/project.godot b/2d/isometric/project.godot index d5164112d02..49ac55cc8dd 100644 --- a/2d/isometric/project.godot +++ b/2d/isometric/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -16,65 +16,53 @@ config/description="This demo shows a traditional isometric view with depth sort A character can move around the level and will also slide around objects, as well as be occluded when standing in front or behind them." run/main_scene="res://dungeon.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - -[image_loader] - -filter=false -gen_mipmaps=false - [input] move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } -[rasterizer] +[physics] -use_pixel_snap=true +common/physics_ticks_per_second=120 [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.0784314, 0.105882, 0.145098, 1) +environment/defaults/default_clear_color=Color(0.03, 0.082, 0.15, 1) diff --git a/2d/isometric/tileset.tres b/2d/isometric/tileset.tres index 6e1144eabef..d1413c467c0 100644 --- a/2d/isometric/tileset.tres +++ b/2d/isometric/tileset.tres @@ -1,105 +1,248 @@ -[gd_resource type="TileSet" load_steps=5 format=2] +[gd_resource type="TileSet" load_steps=7 format=3 uid="uid://r7h8te85l3bx"] -[ext_resource path="res://isotiles.png" type="Texture2D" id=1] +[ext_resource type="Texture2D" uid="uid://kqinbs473dse" path="res://isotiles.png" id="1"] -[sub_resource type="ConvexPolygonShape2D" id=1] -points = PackedVector2Array( 0, -32, 64, 0, 0, 32, -64, 0 ) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ha7ln"] +texture = ExtResource("1") +margins = Vector2i(28, 75) +texture_region_size = Vector2i(135, 105) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 -[sub_resource type="ConvexPolygonShape2D" id=2] -points = PackedVector2Array( -24, -12, -10, -22, 10, -22, 24, -12, 24, 2, 10, 12, -10, 12, -24, 2 ) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_asp48"] +texture = ExtResource("1") +margins = Vector2i(221, 75) +texture_region_size = Vector2i(135, 105) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 -[sub_resource type="ConvexPolygonShape2D" id=3] -points = PackedVector2Array( -40, 16, 24, -16, 40, -8, -24, 24 ) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_70d1t"] +texture = ExtResource("1") +margins = Vector2i(28, 220) +texture_region_size = Vector2i(140, 140) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-1.5, -2.5, -65, 32, -3, 64.5, 62, 31) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(70, 38, 134, 70, 70, 102, 6, 70) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4o6e1"] +texture = ExtResource("1") +margins = Vector2i(259, 241) +texture_region_size = Vector2i(55, 95) +0:0/next_alternative_id = 9 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(3, 8.5, -13, 12.5, -22, 25.5, -18, 38.5, 2.5, 44, 23, 40, 27, 26, 19, 13) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(5.5, 35.5, 19.5, 25.5, 39.5, 25.5, 53.5, 35.5, 53.5, 49.5, 39.5, 59.5, 19.5, 59.5, 5.5, 49.5) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_3pxuh"] +texture = ExtResource("1") +margins = Vector2i(54, 426) +texture_region_size = Vector2i(85, 110) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(24.8, -19.6, -39.5, 12, -21.5, 21, 43, -10.5) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(-21, -21.5, -42, -11, 25.5, 19.5, 39, 12.5) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(2.5, 71, 66.5, 39, 82.5, 47, 18.5, 79) [resource] -0/name = "Base" -0/texture = ExtResource( 1 ) -0/tex_offset = Vector2( 0, 0 ) -0/modulate = Color( 1, 1, 1, 1 ) -0/region = Rect2( 28, 75, 135, 105 ) -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" -1/texture = ExtResource( 1 ) -1/tex_offset = Vector2( 0, 0 ) -1/modulate = Color( 1, 1, 1, 1 ) -1/region = Rect2( 221, 75, 135, 105 ) -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" -2/texture = ExtResource( 1 ) -2/tex_offset = Vector2( 0, -32 ) -2/modulate = Color( 1, 1, 1, 1 ) -2/region = Rect2( 28, 220, 140, 140 ) -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, -"one_way_margin": 1.0, -"shape": SubResource( 1 ), -"shape_transform": Transform2D( 1, 0, 0, 1, 70, 70 ) -} ] -2/z_index = 0 -3/name = "Column" -3/texture = ExtResource( 1 ) -3/tex_offset = Vector2( 0, -32 ) -3/modulate = Color( 1, 1, 1, 1 ) -3/region = Rect2( 259, 241, 55, 95 ) -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, -"one_way_margin": 1.0, -"shape": SubResource( 2 ), -"shape_transform": Transform2D( 1, 0, 0, 1, 29.5, 47.5 ) -} ] -3/z_index = 0 -4/name = "Door1" -4/texture = ExtResource( 1 ) -4/tex_offset = Vector2( 0, -25 ) -4/modulate = Color( 1, 1, 1, 1 ) -4/region = Rect2( 54, 426, 85, 110 ) -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, -"one_way_margin": 1.0, -"shape": SubResource( 3 ), -"shape_transform": Transform2D( 1, 0, 0, 1, 42.5, 55 ) -} ] -4/z_index = 0 +tile_shape = 1 +tile_layout = 5 +tile_size = Vector2i(128, 64) +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_ha7ln") +sources/1 = SubResource("TileSetAtlasSource_asp48") +sources/2 = SubResource("TileSetAtlasSource_70d1t") +sources/3 = SubResource("TileSetAtlasSource_4o6e1") +sources/4 = SubResource("TileSetAtlasSource_3pxuh") diff --git a/2d/isometric/troll.gd b/2d/isometric/troll.gd index 5d235646fe0..9fb62d76321 100644 --- a/2d/isometric/troll.gd +++ b/2d/isometric/troll.gd @@ -1,12 +1,15 @@ extends CharacterBody2D -const MOTION_SPEED = 160 # Pixels/second. +const MOTION_SPEED = 30 # Pixels/second. +const FRICTION_FACTOR = 0.89 func _physics_process(_delta): var motion = Vector2() motion.x = Input.get_axis(&"move_left", &"move_right") motion.y = Input.get_axis(&"move_up", &"move_down") + # Make diagonal movement fit isometric tiles. motion.y /= 2 - motion = motion.normalized() * MOTION_SPEED - #warning-ignore:return_value_discarded - move_and_slide(motion) + velocity += motion.normalized() * MOTION_SPEED + # Apply friction. + velocity *= FRICTION_FACTOR + move_and_slide() diff --git a/2d/isometric/troll.png.import b/2d/isometric/troll.png.import index b319f61ffa7..8f5a042da75 100644 --- a/2d/isometric/troll.png.import +++ b/2d/isometric/troll.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex" +type="CompressedTexture2D" +uid="uid://b8fv8swublbqq" +path="res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://troll.png" -dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.stex"] +dest_files=["res://.godot/imported/troll.png-78efc50bfccaa17f54d40cfea3eef5f5.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/isometric/troll.tscn b/2d/isometric/troll.tscn index ffacd33d085..5e4f83c1611 100644 --- a/2d/isometric/troll.tscn +++ b/2d/isometric/troll.tscn @@ -1,20 +1,26 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://cvs6nhy4ydg0u"] -[ext_resource path="res://troll.gd" type="Script" id=1] -[ext_resource path="res://troll.png" type="Texture2D" id=2] +[ext_resource type="Script" path="res://troll.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://b8fv8swublbqq" path="res://troll.png" id="2"] -[sub_resource type="CircleShape2D" id=1] +[sub_resource type="CircleShape2D" id="1"] radius = 16.0 [node name="Troll" type="CharacterBody2D"] -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Sprite2D" type="Sprite2D" parent="."] position = Vector2(-4, -28) -texture = ExtResource( 2 ) +texture = ExtResource("2") + +[node name="Shadow" type="Sprite2D" parent="."] +modulate = Color(0, 0, 0, 0.501961) +show_behind_parent = true +position = Vector2(-1, -25) +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource( 1 ) +shape = SubResource("1") [node name="Camera2D" type="Camera2D" parent="."] current = true diff --git a/2d/kinematic_character/icon.png.import b/2d/kinematic_character/icon.png.import index 32f45a6270c..6d6a9c9cede 100644 --- a/2d/kinematic_character/icon.png.import +++ b/2d/kinematic_character/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/kinematic_character/level/circle.png.import b/2d/kinematic_character/level/circle.png.import index 3e622ea1024..80b86f6a1d1 100644 --- a/2d/kinematic_character/level/circle.png.import +++ b/2d/kinematic_character/level/circle.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/kinematic_character/level/long_obstacle.png.import b/2d/kinematic_character/level/long_obstacle.png.import index 3a13d2bc234..dda7c1c9a44 100644 --- a/2d/kinematic_character/level/long_obstacle.png.import +++ b/2d/kinematic_character/level/long_obstacle.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/kinematic_character/level/obstacle.png.import b/2d/kinematic_character/level/obstacle.png.import index f4148e85bef..f024d759a06 100644 --- a/2d/kinematic_character/level/obstacle.png.import +++ b/2d/kinematic_character/level/obstacle.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/kinematic_character/level/princess.png.import b/2d/kinematic_character/level/princess.png.import index 82baeebd4d9..c2afbb7b2eb 100644 --- a/2d/kinematic_character/level/princess.png.import +++ b/2d/kinematic_character/level/princess.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/kinematic_character/player/player.png.import b/2d/kinematic_character/player/player.png.import index 8ef967dc2f3..b77cda3b86c 100644 --- a/2d/kinematic_character/player/player.png.import +++ b/2d/kinematic_character/player/player.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/kinematic_character/project.godot b/2d/kinematic_character/project.godot index 602f7380520..30d050f2ed2 100644 --- a/2d/kinematic_character/project.godot +++ b/2d/kinematic_character/project.godot @@ -15,8 +15,8 @@ config/description="Example of how to make a kinematic character controller in 2 CharacterBody2D. The character moves around, is affected by moving platforms, can jump through one-way collision platforms, etc." run/main_scene="res://world.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] @@ -24,56 +24,42 @@ window/size/viewport_width=530 window/size/viewport_height=495 window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/size/width=530 -window/size/height=495 -stretch/aspect="keep" -stretch/mode="2d" - -[gdnative] - -singletons=[] [input] jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } -[memory] - -multithread/thread_rid_pool_prealloc=60 - [physics] +common/physics_ticks_per_second=120 2d/default_gravity=500 [rendering] environment/defaults/default_clear_color=Color(0.156863, 0.133333, 0.25098, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.156863, 0.133333, 0.25098, 1) +anti_aliasing/quality/msaa_2d=2 diff --git a/2d/kinematic_character/world.tscn b/2d/kinematic_character/world.tscn index 02adaafe8ec..989894a692f 100644 --- a/2d/kinematic_character/world.tscn +++ b/2d/kinematic_character/world.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=20 format=3 uid="uid://de7qapkqfycxl"] +[gd_scene load_steps=23 format=3 uid="uid://de7qapkqfycxl"] [ext_resource type="Texture2D" uid="uid://cs8h2qyuakmko" path="res://level/obstacle.png" id="2"] [ext_resource type="PackedScene" path="res://player/player.tscn" id="3"] @@ -10,7 +10,7 @@ [sub_resource type="PhysicsMaterial" id="PhysicsMaterial_on5ov"] [sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_vnjib"] -texture = ExtResource( "2" ) +texture = ExtResource("2") 0:0/0 = 0 0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) 0:0/0/physics_layer_0/angular_velocity = 0.0 @@ -18,8 +18,8 @@ texture = ExtResource( "2" ) [sub_resource type="TileSet" id="TileSet_xqlka"] physics_layer_0/collision_layer = 1 -physics_layer_0/physics_material = SubResource( "PhysicsMaterial_on5ov" ) -sources/0 = SubResource( "TileSetAtlasSource_vnjib" ) +physics_layer_0/physics_material = SubResource("PhysicsMaterial_on5ov") +sources/0 = SubResource("TileSetAtlasSource_vnjib") [sub_resource type="RectangleShape2D" id="3"] size = Vector2(16, 16) @@ -40,6 +40,11 @@ tracks/0/keys = { "values": [Vector2(184, 152), Vector2(184, 152), Vector2(328.086, 152), Vector2(328.086, 152)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_2v3oa"] +_data = { +"leftright": SubResource("4") +} + [sub_resource type="Animation" id="5"] resource_name = "leftright" length = 10.0 @@ -73,6 +78,12 @@ tracks/0/keys = { "values": [Vector2(88.3493, 296), Vector2(88.3493, 296), Vector2(88.3493, 152), Vector2(88.3493, 152)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_j555p"] +_data = { +"leftright": SubResource("5"), +"updown": SubResource("6") +} + [sub_resource type="RectangleShape2D" id="7"] size = Vector2(16, 16) @@ -98,6 +109,11 @@ tracks/0/keys = { "values": [0.0, 1.5708, 0.0, -1.5708] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_gijtf"] +_data = { +"turn": SubResource("10") +} + [sub_resource type="RectangleShape2D" id="11"] size = Vector2(16, 16) @@ -107,7 +123,7 @@ size = Vector2(64, 16) [node name="World" type="Node2D"] [node name="TileMap" type="TileMap" parent="."] -tile_set = SubResource( "TileSet_xqlka" ) +tile_set = SubResource("TileSet_xqlka") format = 2 layer_0/tile_data = PackedInt32Array(0, 0, 0, 65536, 0, 0, 131072, 0, 0, 196608, 0, 0, 262144, 0, 0, 327680, 0, 0, 393216, 0, 0, 458752, 0, 0, 524288, 0, 0, 589824, 0, 0, 655360, 0, 0, 720896, 0, 0, 786432, 0, 0, 851968, 0, 0, 917504, 0, 0, 983040, 0, 0, 1048576, 0, 0, 1114112, 0, 0, 1179648, 0, 0, 1245184, 0, 0, 1310720, 0, 0, 1376256, 0, 0, 1441792, 0, 0, 1507328, 0, 0, 1572864, 0, 0, 1638400, 0, 0, 1703936, 0, 0, 1769472, 0, 0, 1835008, 0, 0, 1900544, 0, 0, 1966080, 0, 0, 1, 0, 0, 65537, 0, 0, 131073, 0, 0, 196609, 0, 0, 262145, 0, 0, 327681, 0, 0, 393217, 0, 0, 458753, 0, 0, 524289, 0, 0, 589825, 0, 0, 655361, 0, 0, 720897, 0, 0, 786433, 0, 0, 851969, 0, 0, 917505, 0, 0, 983041, 0, 0, 1048577, 0, 0, 1114113, 0, 0, 1179649, 0, 0, 1245185, 0, 0, 1310721, 0, 0, 1376257, 0, 0, 1441793, 0, 0, 1507329, 0, 0, 1572865, 0, 0, 1638401, 0, 0, 1703937, 0, 0, 1769473, 0, 0, 1835009, 0, 0, 1900545, 0, 0, 1966081, 0, 0, 2, 0, 0, 65538, 0, 0, 1900546, 0, 0, 1966082, 0, 0, 3, 0, 0, 65539, 0, 0, 1900547, 0, 0, 1966083, 0, 0, 4, 0, 0, 65540, 0, 0, 1835012, 0, 0, 1900548, 0, 0, 1966084, 0, 0, 5, 0, 0, 65541, 0, 0, 327685, 0, 0, 1900549, 0, 0, 1966085, 0, 0, 6, 0, 0, 65542, 0, 0, 327686, 0, 0, 589830, 0, 0, 1179654, 0, 0, 1900550, 0, 0, 1966086, 0, 0, 7, 0, 0, 65543, 0, 0, 327687, 0, 0, 589831, 0, 0, 1179655, 0, 0, 1900551, 0, 0, 1966087, 0, 0, 8, 0, 0, 65544, 0, 0, 327688, 0, 0, 589832, 0, 0, 1179656, 0, 0, 1900552, 0, 0, 1966088, 0, 0, 9, 0, 0, 65545, 0, 0, 327689, 0, 0, 589833, 0, 0, 1900553, 0, 0, 1966089, 0, 0, 10, 0, 0, 65546, 0, 0, 327690, 0, 0, 589834, 0, 0, 1769482, 0, 0, 1835018, 0, 0, 1900554, 0, 0, 1966090, 0, 0, 11, 0, 0, 65547, 0, 0, 327691, 0, 0, 1769483, 0, 0, 1835019, 0, 0, 1900555, 0, 0, 1966091, 0, 0, 12, 0, 0, 65548, 0, 0, 327692, 0, 0, 1703948, 0, 0, 1900556, 0, 0, 1966092, 0, 0, 13, 0, 0, 65549, 0, 0, 327693, 0, 0, 1638413, 0, 0, 1900557, 0, 0, 1966093, 0, 0, 14, 0, 0, 65550, 0, 0, 1900558, 0, 0, 1966094, 0, 0, 15, 0, 0, 65551, 0, 0, 1900559, 0, 0, 1966095, 0, 0, 16, 0, 0, 65552, 0, 0, 1900560, 0, 0, 1966096, 0, 0, 17, 0, 0, 65553, 0, 0, 327697, 0, 0, 1900561, 0, 0, 1966097, 0, 0, 18, 0, 0, 65554, 0, 0, 1900562, 0, 0, 1966098, 0, 0, 19, 0, 0, 65555, 0, 0, 1900563, 0, 0, 1966099, 0, 0, 20, 0, 0, 65556, 0, 0, 1245204, 0, 0, 1900564, 0, 0, 1966100, 0, 0, 21, 0, 0, 65557, 0, 0, 393237, 0, 0, 589845, 0, 0, 1245205, 0, 0, 1900565, 0, 0, 1966101, 0, 0, 22, 0, 0, 65558, 0, 0, 393238, 0, 0, 589846, 0, 0, 1245206, 0, 0, 1900566, 0, 0, 1966102, 0, 0, 23, 0, 0, 65559, 0, 0, 589847, 0, 0, 1245207, 0, 0, 1900567, 0, 0, 1966103, 0, 0, 24, 0, 0, 65560, 0, 0, 1900568, 0, 0, 1966104, 0, 0, 25, 0, 0, 65561, 0, 0, 524313, 0, 0, 1638425, 0, 0, 1900569, 0, 0, 1966105, 0, 0, 26, 0, 0, 65562, 0, 0, 524314, 0, 0, 1638426, 0, 0, 1835034, 0, 0, 1900570, 0, 0, 1966106, 0, 0, 27, 0, 0, 65563, 0, 0, 1507355, 0, 0, 1835035, 0, 0, 1900571, 0, 0, 1966107, 0, 0, 28, 0, 0, 65564, 0, 0, 1507356, 0, 0, 1769500, 0, 0, 1900572, 0, 0, 1966108, 0, 0, 29, 0, 0, 65565, 0, 0, 1376285, 0, 0, 1703965, 0, 0, 1769501, 0, 0, 1900573, 0, 0, 1966109, 0, 0, 30, 0, 0, 65566, 0, 0, 1376286, 0, 0, 1703966, 0, 0, 1900574, 0, 0, 1966110, 0, 0, 31, 0, 0, 65567, 0, 0, 131103, 0, 0, 196639, 0, 0, 262175, 0, 0, 327711, 0, 0, 393247, 0, 0, 458783, 0, 0, 524319, 0, 0, 589855, 0, 0, 655391, 0, 0, 720927, 0, 0, 786463, 0, 0, 851999, 0, 0, 917535, 0, 0, 983071, 0, 0, 1048607, 0, 0, 1114143, 0, 0, 1179679, 0, 0, 1245215, 0, 0, 1310751, 0, 0, 1376287, 0, 0, 1441823, 0, 0, 1507359, 0, 0, 1572895, 0, 0, 1638431, 0, 0, 1703967, 0, 0, 1769503, 0, 0, 1835039, 0, 0, 1900575, 0, 0, 1966111, 0, 0, 32, 0, 0, 65568, 0, 0, 131104, 0, 0, 196640, 0, 0, 262176, 0, 0, 327712, 0, 0, 393248, 0, 0, 458784, 0, 0, 524320, 0, 0, 589856, 0, 0, 655392, 0, 0, 720928, 0, 0, 786464, 0, 0, 852000, 0, 0, 917536, 0, 0, 983072, 0, 0, 1048608, 0, 0, 1114144, 0, 0, 1179680, 0, 0, 1245216, 0, 0, 1310752, 0, 0, 1376288, 0, 0, 1441824, 0, 0, 1507360, 0, 0, 1572896, 0, 0, 1638432, 0, 0, 1703968, 0, 0, 1769504, 0, 0, 1835040, 0, 0, 1900576, 0, 0, 1966112, 0, 0) @@ -115,40 +131,43 @@ layer_0/tile_data = PackedInt32Array(0, 0, 0, 65536, 0, 0, 131072, 0, 0, 196608, position = Vector2(268.651, 152) [node name="Collision" type="CollisionShape2D" parent="MovingPlatform1"] -shape = SubResource( "3" ) +shape = SubResource("3") [node name="Sprite2D" type="Sprite2D" parent="MovingPlatform1"] -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="AnimationPlayer" type="AnimationPlayer" parent="MovingPlatform1"] autoplay = "leftright" playback_process_mode = 0 -anims/leftright = SubResource( "4" ) +libraries = { +"": SubResource("AnimationLibrary_2v3oa") +} [node name="MovingPlatform2" type="CharacterBody2D" parent="."] position = Vector2(88.3493, 152) [node name="Collision" type="CollisionShape2D" parent="MovingPlatform2"] -shape = SubResource( "3" ) +shape = SubResource("3") [node name="Sprite2D" type="Sprite2D" parent="MovingPlatform2"] -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="AnimationPlayer" type="AnimationPlayer" parent="MovingPlatform2"] autoplay = "updown" playback_process_mode = 0 -anims/leftright = SubResource( "5" ) -anims/updown = SubResource( "6" ) +libraries = { +"": SubResource("AnimationLibrary_j555p") +} [node name="Princess" type="Area2D" parent="."] position = Vector2(97, 72) -script = ExtResource( "7" ) +script = ExtResource("7") [node name="Collision" type="CollisionShape2D" parent="Princess"] -shape = SubResource( "7" ) +shape = SubResource("7") [node name="Sprite2D" type="Sprite2D" parent="Princess"] -texture = ExtResource( "4" ) +texture = ExtResource("4") [node name="WinText" type="Label" parent="."] visible = false @@ -166,10 +185,10 @@ position = Vector2(440, 308) [node name="Sprite2D" type="Sprite2D" parent="OneWay1"] scale = Vector2(1, 0.3) -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="OneWay1"] -shape = SubResource( "8" ) +shape = SubResource("8") one_way_collision = true [node name="OneWay2" type="CharacterBody2D" parent="."] @@ -177,10 +196,10 @@ position = Vector2(456, 308) [node name="Sprite2D" type="Sprite2D" parent="OneWay2"] scale = Vector2(1, 0.3) -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="OneWay2"] -shape = SubResource( "8" ) +shape = SubResource("8") one_way_collision = true [node name="OneWay3" type="CharacterBody2D" parent="."] @@ -188,10 +207,10 @@ position = Vector2(472, 308) [node name="Sprite2D" type="Sprite2D" parent="OneWay3"] scale = Vector2(1, 0.3) -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="OneWay3"] -shape = SubResource( "8" ) +shape = SubResource("8") one_way_collision = true [node name="OneWay4" type="CharacterBody2D" parent="."] @@ -199,10 +218,10 @@ position = Vector2(487, 308) [node name="Sprite2D" type="Sprite2D" parent="OneWay4"] scale = Vector2(1, 0.3) -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="OneWay4"] -shape = SubResource( "8" ) +shape = SubResource("8") one_way_collision = true [node name="Circle" type="CharacterBody2D" parent="."] @@ -210,22 +229,24 @@ position = Vector2(241.169, 304.126) rotation = -0.0790058 [node name="Sprite2D" type="Sprite2D" parent="Circle"] -texture = ExtResource( "5" ) +texture = ExtResource("5") [node name="CollisionShape2D" type="CollisionShape2D" parent="Circle"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="AnimationPlayer" type="AnimationPlayer" parent="Circle"] autoplay = "turn" -anims/turn = SubResource( "10" ) +libraries = { +"": SubResource("AnimationLibrary_gijtf") +} [node name="BoxSprite" type="Sprite2D" parent="Circle"] position = Vector2(-3.05176e-05, -37.4108) -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="Box" type="CollisionShape2D" parent="Circle"] position = Vector2(-0.440125, -37.0904) -shape = SubResource( "11" ) +shape = SubResource("11") [node name="Platform" type="StaticBody2D" parent="."] position = Vector2(257, 393) @@ -233,10 +254,10 @@ rotation = -0.428054 metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="Platform"] -texture = ExtResource( "6" ) +texture = ExtResource("6") [node name="CollisionShape2D" type="CollisionShape2D" parent="Platform"] -shape = SubResource( "12" ) +shape = SubResource("12") [node name="Platform1" type="StaticBody2D" parent="."] position = Vector2(369, 393) @@ -244,16 +265,16 @@ rotation = 0.471239 metadata/_edit_group_ = true [node name="Sprite2D" type="Sprite2D" parent="Platform1"] -texture = ExtResource( "6" ) +texture = ExtResource("6") [node name="CollisionShape2D" type="CollisionShape2D" parent="Platform1"] -shape = SubResource( "12" ) +shape = SubResource("12") [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(265, 247) current = true -[node name="Player" parent="." instance=ExtResource( "3" )] +[node name="Player" parent="." instance=ExtResource("3")] position = Vector2(233.06, 223.436) [connection signal="body_entered" from="Princess" to="Princess" method="_on_body_entered"] diff --git a/2d/light2d_as_mask/burano.png.import b/2d/light2d_as_mask/burano.png.import index 80c79955ddb..cecfbe28597 100644 --- a/2d/light2d_as_mask/burano.png.import +++ b/2d/light2d_as_mask/burano.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/burano.png-893cff79ccbe972d7b1ad3e1845f81bf.stex" +type="CompressedTexture2D" +uid="uid://cxid0eg3r5npy" +path="res://.godot/imported/burano.png-893cff79ccbe972d7b1ad3e1845f81bf.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://burano.png" -dest_files=["res://.godot/imported/burano.png-893cff79ccbe972d7b1ad3e1845f81bf.stex"] +dest_files=["res://.godot/imported/burano.png-893cff79ccbe972d7b1ad3e1845f81bf.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/light2d_as_mask/icon.png.import b/2d/light2d_as_mask/icon.png.import index 889af9df580..78d7e81bd53 100644 --- a/2d/light2d_as_mask/icon.png.import +++ b/2d/light2d_as_mask/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://1obhenjndqh" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/light2d_as_mask/lightmask.tscn b/2d/light2d_as_mask/lightmask.tscn index 0018dd32f3a..f2c5c7b7721 100644 --- a/2d/light2d_as_mask/lightmask.tscn +++ b/2d/light2d_as_mask/lightmask.tscn @@ -1,20 +1,19 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=6 format=3 uid="uid://bft5oglfrg7xi"] -[ext_resource path="res://burano.png" type="Texture2D" id=1] -[ext_resource path="res://splat.png" type="Texture2D" id=2] +[ext_resource type="Texture2D" uid="uid://cxid0eg3r5npy" path="res://burano.png" id="1"] +[ext_resource type="Texture2D" uid="uid://ynxew87k6xvm" path="res://splat.png" id="2"] -[sub_resource type="CanvasItemMaterial" id=1] +[sub_resource type="CanvasItemMaterial" id="1"] light_mode = 2 -[sub_resource type="Animation" id=2] +[sub_resource type="Animation" id="2"] length = 4.0 -loop = true tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Light1:position") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 1, 2, 3), "transitions": PackedFloat32Array(-2, -2, -2, -2), @@ -22,11 +21,11 @@ tracks/0/keys = { "values": [Vector2(601.028, 242.639), Vector2(318.649, 327.353), Vector2(381.263, 130.915), Vector2(462.294, 389.968)] } tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true tracks/1/path = NodePath("Light2:position") tracks/1/interp = 1 tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true tracks/1/keys = { "times": PackedFloat32Array(0, 1, 2, 3), "transitions": PackedFloat32Array(-2, -2, -2, -2), @@ -34,11 +33,11 @@ tracks/1/keys = { "values": [Vector2(196.528, 185.139), Vector2(135.142, 454.013), Vector2(638.105, 334.923), Vector2(331.375, 101.653)] } tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true tracks/2/path = NodePath("Light3:position") tracks/2/interp = 1 tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0, 1, 2, 3), "transitions": PackedFloat32Array(-2, -2, -2, -2), @@ -46,42 +45,46 @@ tracks/2/keys = { "values": [Vector2(442.528, 411.139), Vector2(635.283, 236.8), Vector2(216.215, 396.815), Vector2(682.96, 294.708)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_co4us"] +_data = { +"maskmotion": SubResource("2") +} + [node name="Lightmask" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 size_flags_horizontal = 2 size_flags_vertical = 2 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Burano" type="TextureRect" parent="."] -material = SubResource( 1 ) +material = SubResource("1") +layout_mode = 0 offset_right = 800.0 offset_bottom = 600.0 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( 1 ) +texture = ExtResource("1") [node name="Light1" type="PointLight2D" parent="."] position = Vector2(601.028, 242.639) -texture = ExtResource( 2 ) -mode = 2 +texture = ExtResource("2") [node name="Light2" type="PointLight2D" parent="."] position = Vector2(196.528, 185.139) -texture = ExtResource( 2 ) -mode = 2 +texture = ExtResource("2") [node name="Light3" type="PointLight2D" parent="."] position = Vector2(442.528, 411.139) -texture = ExtResource( 2 ) -mode = 2 +texture = ExtResource("2") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "maskmotion" -anims/maskmotion = SubResource( 2 ) +libraries = { +"": SubResource("AnimationLibrary_co4us") +} [node name="Camera2D" type="Camera2D" parent="."] -offset = Vector2(512, 300) +offset = Vector2(576, 324) current = true diff --git a/2d/light2d_as_mask/project.godot b/2d/light2d_as_mask/project.godot index b0455f889dd..3d6d3fb5618 100644 --- a/2d/light2d_as_mask/project.godot +++ b/2d/light2d_as_mask/project.godot @@ -6,31 +6,17 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] config/name="2D Lights as Mask" config/description="Example of how to use 2D lights to mask objects on screen." run/main_scene="res://lightmask.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rasterizer] - -shadow_filter=3 - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/2d/light2d_as_mask/splat.png.import b/2d/light2d_as_mask/splat.png.import index 7e2bea6ffa7..696aa37b05a 100644 --- a/2d/light2d_as_mask/splat.png.import +++ b/2d/light2d_as_mask/splat.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/splat.png-a41a35966004eec2e8a20d517d1ec4bb.stex" +type="CompressedTexture2D" +uid="uid://ynxew87k6xvm" +path="res://.godot/imported/splat.png-a41a35966004eec2e8a20d517d1ec4bb.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://splat.png" -dest_files=["res://.godot/imported/splat.png-a41a35966004eec2e8a20d517d1ec4bb.stex"] +dest_files=["res://.godot/imported/splat.png-a41a35966004eec2e8a20d517d1ec4bb.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/lights_and_shadows/background.png.import b/2d/lights_and_shadows/background.png.import index 365cffda50f..64eae3e524a 100644 --- a/2d/lights_and_shadows/background.png.import +++ b/2d/lights_and_shadows/background.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/background.png-98289422cd7d93003950872a7b97021f.stex" +type="CompressedTexture2D" +uid="uid://ulsh8ubvub37" +path="res://.godot/imported/background.png-98289422cd7d93003950872a7b97021f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background.png" -dest_files=["res://.godot/imported/background.png-98289422cd7d93003950872a7b97021f.stex"] +dest_files=["res://.godot/imported/background.png-98289422cd7d93003950872a7b97021f.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/lights_and_shadows/caster.png.import b/2d/lights_and_shadows/caster.png.import index e5cc6588a77..41c26eda9bd 100644 --- a/2d/lights_and_shadows/caster.png.import +++ b/2d/lights_and_shadows/caster.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/caster.png-67727cb056b9e0209664a84f1653a25a.stex" +type="CompressedTexture2D" +uid="uid://kkvm5nl3vgun" +path="res://.godot/imported/caster.png-67727cb056b9e0209664a84f1653a25a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://caster.png" -dest_files=["res://.godot/imported/caster.png-67727cb056b9e0209664a84f1653a25a.stex"] +dest_files=["res://.godot/imported/caster.png-67727cb056b9e0209664a84f1653a25a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/lights_and_shadows/godot.png.import b/2d/lights_and_shadows/godot.png.import index 391415e61ae..4082c93cf1a 100644 --- a/2d/lights_and_shadows/godot.png.import +++ b/2d/lights_and_shadows/godot.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/godot.png-5e0da45ed3d6786d5794553e04f58a8c.stex" +type="CompressedTexture2D" +uid="uid://bl3uv26bv8e38" +path="res://.godot/imported/godot.png-5e0da45ed3d6786d5794553e04f58a8c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://godot.png" -dest_files=["res://.godot/imported/godot.png-5e0da45ed3d6786d5794553e04f58a8c.stex"] +dest_files=["res://.godot/imported/godot.png-5e0da45ed3d6786d5794553e04f58a8c.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/lights_and_shadows/godot_normal.png.import b/2d/lights_and_shadows/godot_normal.png.import index bf63249e0dc..b10a8f7c367 100644 --- a/2d/lights_and_shadows/godot_normal.png.import +++ b/2d/lights_and_shadows/godot_normal.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/godot_normal.png-7f91d6bfda6a23aaa1320ed999c27a39.stex" +type="CompressedTexture2D" +uid="uid://qqnrpl3qn64k" +path="res://.godot/imported/godot_normal.png-7f91d6bfda6a23aaa1320ed999c27a39.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://godot_normal.png" -dest_files=["res://.godot/imported/godot_normal.png-7f91d6bfda6a23aaa1320ed999c27a39.stex"] +dest_files=["res://.godot/imported/godot_normal.png-7f91d6bfda6a23aaa1320ed999c27a39.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/lights_and_shadows/icon.png.import b/2d/lights_and_shadows/icon.png.import index 889af9df580..48fa6200f2c 100644 --- a/2d/lights_and_shadows/icon.png.import +++ b/2d/lights_and_shadows/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://byckt0v7uvncx" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/lights_and_shadows/light.png.import b/2d/lights_and_shadows/light.png.import index 7a4af3f32c0..d10308eac6d 100644 --- a/2d/lights_and_shadows/light.png.import +++ b/2d/lights_and_shadows/light.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/light.png-06e94102f0cce323cff7daad56cf3030.stex" +type="CompressedTexture2D" +uid="uid://dk6osr088g4l3" +path="res://.godot/imported/light.png-06e94102f0cce323cff7daad56cf3030.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://light.png" -dest_files=["res://.godot/imported/light.png-06e94102f0cce323cff7daad56cf3030.stex"] +dest_files=["res://.godot/imported/light.png-06e94102f0cce323cff7daad56cf3030.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/lights_and_shadows/light_shadows.gd b/2d/lights_and_shadows/light_shadows.gd new file mode 100644 index 00000000000..29621f3e976 --- /dev/null +++ b/2d/lights_and_shadows/light_shadows.gd @@ -0,0 +1,17 @@ +extends Node2D + + +func _input(event): + if event.is_action_pressed("toggle_directional_light"): + $DirectionalLight2D.visible = not $DirectionalLight2D.visible + + if event.is_action_pressed("toggle_point_lights"): + for point_light in get_tree().get_nodes_in_group("point_light"): + point_light.visible = not point_light.visible + + if event.is_action_pressed("cycle_directional_light_shadows_quality"): + $DirectionalLight2D.shadow_filter = wrapi($DirectionalLight2D.shadow_filter + 1, 0, 3) + + if event.is_action_pressed("cycle_point_light_shadows_quality"): + for point_light in get_tree().get_nodes_in_group("point_light"): + point_light.shadow_filter = wrapi(point_light.shadow_filter + 1, 0, 3) diff --git a/2d/lights_and_shadows/light_shadows.tscn b/2d/lights_and_shadows/light_shadows.tscn index 27d0445fa2a..1ace559e7c3 100644 --- a/2d/lights_and_shadows/light_shadows.tscn +++ b/2d/lights_and_shadows/light_shadows.tscn @@ -1,27 +1,48 @@ -[gd_scene load_steps=14 format=2] - -[ext_resource path="res://background.png" type="Texture2D" id=1] -[ext_resource path="res://caster.png" type="Texture2D" id=2] -[ext_resource path="res://light.png" type="Texture2D" id=3] -[ext_resource path="res://spot.png" type="Texture2D" id=4] -[ext_resource path="res://godot.png" type="Texture2D" id=5] -[ext_resource path="res://godot_normal.png" type="Texture2D" id=6] - -[sub_resource type="OccluderPolygon2D" id=1] +[gd_scene load_steps=25 format=3 uid="uid://xdjwv7eeck6l"] + +[ext_resource type="Texture2D" uid="uid://ulsh8ubvub37" path="res://background.png" id="1"] +[ext_resource type="Script" path="res://light_shadows.gd" id="1_7xjm7"] +[ext_resource type="Texture2D" uid="uid://kkvm5nl3vgun" path="res://caster.png" id="2"] +[ext_resource type="Texture2D" uid="uid://dk6osr088g4l3" path="res://light.png" id="3"] +[ext_resource type="Texture2D" uid="uid://cnyul1oe7d4b" path="res://spot.png" id="4"] +[ext_resource type="Texture2D" uid="uid://bl3uv26bv8e38" path="res://godot.png" id="5"] +[ext_resource type="Texture2D" uid="uid://qqnrpl3qn64k" path="res://godot_normal.png" id="6"] + +[sub_resource type="CanvasTexture" id="CanvasTexture_hlulo"] +diffuse_texture = ExtResource("5") +normal_texture = ExtResource("6") +specular_shininess = 0.5 + +[sub_resource type="CanvasTexture" id="CanvasTexture_hea5a"] +diffuse_texture = ExtResource("5") +normal_texture = ExtResource("6") +specular_shininess = 0.5 + +[sub_resource type="CanvasTexture" id="CanvasTexture_hc1ic"] +diffuse_texture = ExtResource("5") +normal_texture = ExtResource("6") +specular_shininess = 0.5 + +[sub_resource type="CanvasTexture" id="CanvasTexture_l1r6i"] +diffuse_texture = ExtResource("5") +normal_texture = ExtResource("6") +specular_shininess = 0.5 + +[sub_resource type="OccluderPolygon2D" id="1"] polygon = PackedVector2Array(-15.913, -15.9738, 15.9079, -16.0785, 15.6986, 15.847, -16.1223, 15.9517) -[sub_resource type="CanvasItemMaterial" id=2] +[sub_resource type="CanvasItemMaterial" id="2"] blend_mode = 1 -[sub_resource type="Animation" id=3] +[sub_resource type="Animation" id="3"] length = 16.0 -loop = true +loop_mode = 1 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:position") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 4, 8, 12), "transitions": PackedFloat32Array(-2, -2, -2, -2), @@ -29,15 +50,15 @@ tracks/0/keys = { "values": [Vector2(159.289, 452.441), Vector2(132.279, 80.4366), Vector2(700.722, 241.27), Vector2(429.392, 571.532)] } -[sub_resource type="Animation" id=4] +[sub_resource type="Animation" id="4"] length = 16.0 -loop = true +loop_mode = 1 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:position") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 4.1, 8.1, 11.8), "transitions": PackedFloat32Array(-2, -2, -2, -2), @@ -45,21 +66,33 @@ tracks/0/keys = { "values": [Vector2(753.756, 314.336), Vector2(69.7562, 234.336), Vector2(256.756, 575.336), Vector2(516.756, 530.336)] } -[sub_resource type="CanvasItemMaterial" id=5] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_wawvy"] +_data = { +"motion": SubResource("3"), +"motion2": SubResource("4") +} + +[sub_resource type="CanvasItemMaterial" id="5"] blend_mode = 1 -[sub_resource type="CanvasItemMaterial" id=6] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_fig6v"] +_data = { +"m2": SubResource("4"), +"motion": SubResource("3") +} + +[sub_resource type="CanvasItemMaterial" id="6"] blend_mode = 1 -[sub_resource type="Animation" id=7] +[sub_resource type="Animation" id="7"] length = 16.0 -loop = true +loop_mode = 1 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".:position") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 4.1, 7.9, 12.1), "transitions": PackedFloat32Array(-2, -2, -2, -2), @@ -67,7 +100,53 @@ tracks/0/keys = { "values": [Vector2(692.078, 29.8849), Vector2(309.606, 31.5551), Vector2(40.7064, 238.658), Vector2(685.397, 282.082)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_kfxj1"] +_data = { +"motion": SubResource("3"), +"motion2": SubResource("4"), +"motion3": SubResource("7") +} + +[sub_resource type="Animation" id="Animation_rgbru"] +resource_name = "rotate_directional_light" +length = 20.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DirectionalLight2D:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 20), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, 6.28319] +} + +[sub_resource type="Animation" id="Animation_emv7u"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("DirectionalLight2D:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [0.0] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_6bket"] +_data = { +"RESET": SubResource("Animation_emv7u"), +"rotate_directional_light": SubResource("Animation_rgbru") +} + [node name="LightShadows" type="Node2D"] +script = ExtResource("1_7xjm7") [node name="Ambient" type="CanvasModulate" parent="."] color = Color(0.27451, 0.27451, 0.27451, 1) @@ -75,12 +154,11 @@ color = Color(0.27451, 0.27451, 0.27451, 1) [node name="Background" type="Sprite2D" parent="."] position = Vector2(401.251, 302.906) scale = Vector2(128, 128) -texture = ExtResource( 1 ) +texture = ExtResource("1") [node name="Sprite2D" type="Sprite2D" parent="."] position = Vector2(295.886, 216.938) -texture = ExtResource( 5 ) -normal_map = ExtResource( 6 ) +texture = SubResource("CanvasTexture_hlulo") [node name="Label" type="Label" parent="Sprite2D"] offset_left = -22.5563 @@ -88,236 +166,237 @@ offset_top = 64.6982 offset_right = 24.4437 offset_bottom = 78.6982 text = "Normal" -align = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="SpriteFlipX" type="Sprite2D" parent="."] position = Vector2(543.341, 220.255) scale = Vector2(-1, 1) -texture = ExtResource( 5 ) -normal_map = ExtResource( 6 ) +texture = SubResource("CanvasTexture_hea5a") [node name="Label" type="Label" parent="SpriteFlipX"] offset_left = 22.5564 offset_top = 66.0347 offset_right = 69.5564 offset_bottom = 80.0347 -rect_scale = Vector2(-1, 1) +scale = Vector2(-1, 1) text = "Flip X" -align = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="SpriteFlipY" type="Sprite2D" parent="."] position = Vector2(291.308, 423.369) scale = Vector2(1, -1) -texture = ExtResource( 5 ) -normal_map = ExtResource( 6 ) +texture = SubResource("CanvasTexture_hc1ic") [node name="Label" type="Label" parent="SpriteFlipY"] offset_left = -23.3056 offset_top = -67.2446 offset_right = 23.6944 offset_bottom = -53.2446 -rect_scale = Vector2(1, -1) +scale = Vector2(1, -1) text = "Flip Y" -align = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="SpriteFlipXY" type="Sprite2D" parent="."] position = Vector2(542.081, 424.696) scale = Vector2(-1, -1) -texture = ExtResource( 5 ) -normal_map = ExtResource( 6 ) +texture = SubResource("CanvasTexture_l1r6i") [node name="Label" type="Label" parent="SpriteFlipXY"] offset_left = 23.9495 offset_top = -67.5714 offset_right = 81.9495 offset_bottom = -53.5714 -rect_scale = Vector2(-1, -1) +scale = Vector2(-1, -1) text = "Flip X + Y" -align = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Casters" type="Node2D" parent="."] [node name="ShadowCaster" type="Sprite2D" parent="Casters"] position = Vector2(95.2909, 85.3186) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster1" type="Sprite2D" parent="Casters"] position = Vector2(200.291, 313.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster1"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster2" type="Sprite2D" parent="Casters"] position = Vector2(76.2909, 405.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster2"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster3" type="Sprite2D" parent="Casters"] position = Vector2(408.291, 226.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster3"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster4" type="Sprite2D" parent="Casters"] position = Vector2(239.291, 48.3186) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster4"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster5" type="Sprite2D" parent="Casters"] position = Vector2(140.291, 561.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster5"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster6" type="Sprite2D" parent="Casters"] position = Vector2(392.291, 499.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster6"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster7" type="Sprite2D" parent="Casters"] position = Vector2(735.291, 552.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster7"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster8" type="Sprite2D" parent="Casters"] position = Vector2(661.291, 371.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster8"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster9" type="Sprite2D" parent="Casters"] position = Vector2(567.291, 574.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="occluder" type="LightOccluder2D" parent="Casters/ShadowCaster9"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster10" type="Sprite2D" parent="Casters"] position = Vector2(420.291, 350.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster10"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster11" type="Sprite2D" parent="Casters"] position = Vector2(463.291, 106.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster11"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster12" type="Sprite2D" parent="Casters"] position = Vector2(621.291, 78.3186) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster12"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster13" type="Sprite2D" parent="Casters"] position = Vector2(761.291, 240.319) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster13"] -occluder = SubResource( 1 ) +occluder = SubResource("1") [node name="ShadowCaster14" type="Sprite2D" parent="Casters"] position = Vector2(771.291, 29.3186) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Occluder" type="LightOccluder2D" parent="Casters/ShadowCaster14"] -occluder = SubResource( 1 ) +occluder = SubResource("1") -[node name="RedLight" type="PointLight2D" parent="."] +[node name="RedLight" type="PointLight2D" parent="." groups=["point_light"]] position = Vector2(159.289, 452.441) -texture = ExtResource( 3 ) color = Color(1, 0.446392, 0.0576646, 1) shadow_enabled = true -shadow_gradient_length = 1.3 -shadow_filter = 3 -shadow_filter_smooth = 11.1 -__meta__ = { -"_edit_lock_": true -} +shadow_filter = 1 +shadow_filter_smooth = 1.2 +texture = ExtResource("3") [node name="Blob" type="Sprite2D" parent="RedLight"] -material = SubResource( 2 ) -texture = ExtResource( 4 ) +material = SubResource("2") +texture = ExtResource("4") [node name="AnimationPlayer" type="AnimationPlayer" parent="RedLight"] autoplay = "motion" -anims/motion = SubResource( 3 ) -anims/motion2 = SubResource( 4 ) +libraries = { +"": SubResource("AnimationLibrary_wawvy") +} -[node name="GreenLight" type="PointLight2D" parent="."] +[node name="GreenLight" type="PointLight2D" parent="." groups=["point_light"]] position = Vector2(753.756, 314.336) -texture = ExtResource( 3 ) color = Color(0.49247, 0.878537, 0.409146, 1) shadow_enabled = true -shadow_gradient_length = 1.2 -shadow_filter = 3 -shadow_filter_smooth = 7.1 -__meta__ = { -"_edit_lock_": true -} +shadow_filter = 1 +shadow_filter_smooth = 1.2 +texture = ExtResource("3") [node name="blob" type="Sprite2D" parent="GreenLight"] -material = SubResource( 5 ) -texture = ExtResource( 4 ) +material = SubResource("5") +texture = ExtResource("4") [node name="AnimationPlayer" type="AnimationPlayer" parent="GreenLight"] autoplay = "m2" -anims/m2 = SubResource( 4 ) -anims/motion = SubResource( 3 ) +libraries = { +"": SubResource("AnimationLibrary_fig6v") +} -[node name="BlueLight" type="PointLight2D" parent="."] -position = Vector2(692.078, 31.1773) -texture = ExtResource( 3 ) +[node name="BlueLight" type="PointLight2D" parent="." groups=["point_light"]] +position = Vector2(692.078, 29.8849) color = Color(0.396752, 0.446392, 0.929792, 1) shadow_enabled = true -shadow_gradient_length = 1.4 -shadow_filter = 3 -shadow_filter_smooth = 5.3 -__meta__ = { -"_edit_lock_": true -} +shadow_filter = 1 +shadow_filter_smooth = 1.2 +texture = ExtResource("3") [node name="blob" type="Sprite2D" parent="BlueLight"] -material = SubResource( 6 ) -texture = ExtResource( 4 ) +material = SubResource("6") +texture = ExtResource("4") [node name="AnimationPlayer" type="AnimationPlayer" parent="BlueLight"] autoplay = "motion3" -anims/motion = SubResource( 3 ) -anims/motion2 = SubResource( 4 ) -anims/motion3 = SubResource( 7 ) +libraries = { +"": SubResource("AnimationLibrary_kfxj1") +} [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(400, 300) current = true + +[node name="CanvasLayer" type="CanvasLayer" parent="."] + +[node name="Label" type="Label" parent="CanvasLayer"] +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 16.0 +offset_top = -120.0 +offset_right = 321.0 +offset_bottom = -1.0 +grow_vertical = 0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 4 +text = "D: Toggle directional light +P: Toggle point lights +S: Cycle directional light shadow quality +H: Cycle point light shadow quality" + +[node name="DirectionalLight2D" type="DirectionalLight2D" parent="."] +visible = false +shadow_enabled = true +shadow_filter = 1 +shadow_filter_smooth = 1.2 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] +autoplay = "rotate_directional_light" +libraries = { +"": SubResource("AnimationLibrary_6bket") +} diff --git a/2d/lights_and_shadows/project.godot b/2d/lights_and_shadows/project.godot index af1e976be1c..6088ff82011 100644 --- a/2d/lights_and_shadows/project.godot +++ b/2d/lights_and_shadows/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -14,27 +14,34 @@ config/name="2D Lights and Shadows" config/description="Simple demo of 2D lights and shadows, using PointLight2D and LightOccluder2D." run/main_scene="res://light_shadows.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/size/width=800 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=800 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -stretch/aspect="keep" -stretch/mode="2d" -[gdnative] - -singletons=[] - -[rasterizer] - -shadow_filter=2 - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +[input] + +toggle_directional_light={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +toggle_point_lights={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +cycle_directional_light_shadows_quality={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +cycle_point_light_shadows_quality={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":72,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} diff --git a/2d/lights_and_shadows/spot.png.import b/2d/lights_and_shadows/spot.png.import index 1f31297befc..bcae2badc72 100644 --- a/2d/lights_and_shadows/spot.png.import +++ b/2d/lights_and_shadows/spot.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/spot.png-36b4dfbff4efeea17ec3137d266ffc4a.stex" +type="CompressedTexture2D" +uid="uid://cnyul1oe7d4b" +path="res://.godot/imported/spot.png-36b4dfbff4efeea17ec3137d266ffc4a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://spot.png" -dest_files=["res://.godot/imported/spot.png-36b4dfbff4efeea17ec3137d266ffc4a.stex"] +dest_files=["res://.godot/imported/spot.png-36b4dfbff4efeea17ec3137d266ffc4a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation/character.png.import b/2d/navigation/character.png.import index 9d938bfb437..73275cc31f6 100644 --- a/2d/navigation/character.png.import +++ b/2d/navigation/character.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/character.png-7a996d3b758d22c506b76a7c15391284.stex" +type="CompressedTexture2D" +uid="uid://b0wokaenwu7pj" +path="res://.godot/imported/character.png-7a996d3b758d22c506b76a7c15391284.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://character.png" -dest_files=["res://.godot/imported/character.png-7a996d3b758d22c506b76a7c15391284.stex"] +dest_files=["res://.godot/imported/character.png-7a996d3b758d22c506b76a7c15391284.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation/icon.png.import b/2d/navigation/icon.png.import index 889af9df580..5ca51d55fea 100644 --- a/2d/navigation/icon.png.import +++ b/2d/navigation/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://2ft5n3ts7upn" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation/level.tscn b/2d/navigation/level.tscn index 318ac12ba0f..71d98eaac33 100644 --- a/2d/navigation/level.tscn +++ b/2d/navigation/level.tscn @@ -1,30 +1,32 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://cur17tkfqetf0"] -[ext_resource path="res://navigation.gd" type="Script" id=1] -[ext_resource path="res://map.png" type="Texture2D" id=2] -[ext_resource path="res://character.png" type="Texture2D" id=3] +[ext_resource type="Script" path="res://navigation.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://bk26gi6qsuh18" path="res://map.png" id="2"] +[ext_resource type="Texture2D" uid="uid://b0wokaenwu7pj" path="res://character.png" id="3"] -[sub_resource type="Node3DPolygon" id=1] -vertices = PackedVector2Array(587.833, 271.924, 530.464, 284.878, 508.256, 281.177, 497.153, 255.269, 624.926, 359.595, 648.903, 394.065, 620.443, 383.995, 669.26, 297.833, 648.903, 321.891, 650.754, 251.567, 619.293, 510.654, 676.663, 493.998, 706.272, 501.401, 669.26, 529.16, 602.638, 523.608, 587.833, 179.393, 573.028, 140.53, 645.202, 159.036, 710.106, 179.216, 630.397, 212.704, 597.086, 192.348, 471.244, 251.567, 421.277, 270.074, 428.68, 246.015, 502.704, 97.9661, 517.509, 55.4019, 537.866, 99.8167, 536.016, 175.692, 495.302, 164.588, 487.899, 85.0117, 310.24, 75.7586, 308.39, 92.4142, 345.402, 210.854, 360.207, 223.808, 297.286, 258.97, 288.033, 231.211, 319.493, 190.497, 193.651, 423.675, 245.469, 477.343, 221.41, 488.446, 147.386, 408.87, 182.548, 382.961, 145.584, 224.311, 175.145, 332.995, 202.904, 99.8167, 310.24, 62.8043, 695.169, 303.385, 682.214, 284.878, 598.937, 492.148, 571.177, 501.401, 605.437, 456.366, 621.144, 486.596, 538.077, 499.891, 395.879, 501.87, 536.407, 524.944, 371.311, 518.056, 573.028, 94.2648, 582.281, 47.9994, 667.409, 75.7586, 350.954, 447.733, 363.908, 351.501, 384.265, 351.501, 376.862, 418.123, 373.441, 436.494, 424.978, 334.845, 421.277, 360.754, 352.804, 320.04, 321.344, 338.546, 299.136, 283.028, 241.767, 327.443, 234.365, 244.165, 325.228, 486.302, 300.441, 497.494, 317.643, 447.733, 332.441, 457.494, 524.608, 359.37, 526.762, 342.248, 366.441, 467.494, 480.497, 434.779, 496.638, 439.381, 476.441, 468.494, 265.825, 407.019, 184.398, 349.65, 310.24, 112.771, 267.676, 153.485, 221.41, 171.991, 700.721, 268.223, 397.219, 188.646, 415.725, 177.543, 465.692, 179.393, 476.796, 207.152, 443.485, 192.348, 437.933, 170.14, 452.738, 166.439, 460.14, 123.875, 476.796, 149.783, 189.95, 231.211) -polygons = [PackedInt32Array(0, 1, 2, 3), PackedInt32Array(4, 5, 6), PackedInt32Array(7, 8, 9), PackedInt32Array(10, 11, 12, 13, 14), PackedInt32Array(15, 16, 17, 18, 19, 20), PackedInt32Array(21, 3, 2, 22, 23), PackedInt32Array(24, 25, 26, 27, 28), PackedInt32Array(25, 24, 29), PackedInt32Array(30, 25, 29, 31), PackedInt32Array(32, 33, 34, 35, 36), PackedInt32Array(37, 38, 39, 40), PackedInt32Array(41, 37, 40), PackedInt32Array(41, 40, 42, 43), PackedInt32Array(44, 45, 30, 31), PackedInt32Array(46, 12, 11, 7, 47), PackedInt32Array(47, 7, 9), PackedInt32Array(48, 10, 14, 49), PackedInt32Array(50, 6, 5, 51, 48), PackedInt32Array(52, 50, 48, 49), PackedInt32Array(53, 52, 49, 54, 55), PackedInt32Array(17, 56, 57, 58, 18), PackedInt32Array(59, 60, 61, 62, 63), PackedInt32Array(64, 65, 61, 66), PackedInt32Array(66, 61, 60, 67, 68), PackedInt32Array(68, 67, 69, 70), PackedInt32Array(68, 70, 35, 34), PackedInt32Array(71, 53, 55, 72), PackedInt32Array(71, 72, 73, 74), PackedInt32Array(4, 6, 75, 76), PackedInt32Array(63, 77, 74, 59), PackedInt32Array(78, 2, 1, 76, 75, 79, 80), PackedInt32Array(78, 80, 63, 62), PackedInt32Array(81, 59, 74, 73), PackedInt32Array(81, 73, 41, 82), PackedInt32Array(44, 31, 83, 84, 85), PackedInt32Array(18, 86, 47, 9, 19), PackedInt32Array(15, 20, 3, 21), PackedInt32Array(23, 22, 87, 88), PackedInt32Array(89, 28, 27, 90, 91), PackedInt32Array(89, 91, 92, 93), PackedInt32Array(36, 94, 95, 93, 92), PackedInt32Array(36, 92, 88), PackedInt32Array(36, 88, 87, 32), PackedInt32Array(36, 35, 85, 84), PackedInt32Array(42, 44, 85, 96), PackedInt32Array(42, 96, 43), PackedInt32Array(41, 43, 82)] -outlines = [PackedVector2Array(221.41, 488.446, 147.386, 408.87, 145.584, 224.311, 202.904, 99.8167, 310.24, 62.8043, 310.24, 75.7586, 517.509, 55.4019, 537.866, 99.8167, 536.016, 175.692, 476.796, 207.152, 443.485, 192.348, 437.933, 170.14, 415.725, 177.543, 428.68, 246.015, 471.244, 251.567, 587.833, 179.393, 573.028, 140.53, 645.202, 159.036, 573.028, 94.2648, 582.281, 47.9994, 667.409, 75.7586, 710.106, 179.216, 700.721, 268.223, 682.214, 284.878, 695.169, 303.385, 706.272, 501.401, 669.26, 529.16, 602.638, 523.608, 571.177, 501.401, 536.407, 524.944, 371.311, 518.056, 300.441, 497.494, 317.643, 447.733, 182.548, 382.961, 193.651, 423.675, 245.469, 477.343), PackedVector2Array(350.954, 447.733, 363.908, 351.501, 321.344, 338.546, 241.767, 327.443, 234.365, 244.165, 288.033, 231.211, 221.41, 171.991, 189.95, 231.211, 175.145, 332.995, 184.398, 349.65, 265.825, 407.019), PackedVector2Array(267.676, 153.485, 310.24, 112.771, 308.39, 92.4142, 487.899, 85.0117, 502.704, 97.9661, 495.302, 164.588, 465.692, 179.393, 452.738, 166.439, 476.796, 149.783, 460.14, 123.875, 319.493, 190.497), PackedVector2Array(397.219, 188.646, 345.402, 210.854, 360.207, 223.808, 297.286, 258.97, 299.136, 283.028, 352.804, 320.04, 424.978, 334.845, 421.277, 360.754, 384.265, 351.501, 376.862, 418.123, 480.497, 434.779, 508.256, 281.177, 421.277, 270.074), PackedVector2Array(497.153, 255.269, 597.086, 192.348, 630.397, 212.704, 650.754, 251.567, 648.903, 321.891, 669.26, 297.833, 676.663, 493.998, 619.293, 510.654, 598.937, 492.148, 621.144, 486.596, 648.903, 394.065, 624.926, 359.595, 526.762, 342.248, 530.464, 284.878, 587.833, 271.924), PackedVector2Array(325.228, 486.302, 332.441, 457.494, 366.441, 467.494, 373.441, 436.494, 476.441, 468.494, 496.638, 439.381, 524.608, 359.37, 620.443, 383.995, 605.437, 456.366, 538.077, 499.891, 395.879, 501.87)] +[sub_resource type="NavigationPolygon" id="NavigationPolygon_5ynhe"] +vertices = PackedVector2Array(682, 496, 696, 300, 704, 507, 495, 256, 589, 270, 540, 284, 466, 177, 490, 169, 531, 178, 477, 205, 446, 196, 621, 510, 667, 525, 606, 519, 529, 290, 288, 228, 228, 180, 276, 160, 315, 190, 600, 497, 576, 503, 202, 99, 314, 65, 311, 83, 436, 170, 452, 163, 201, 440, 246, 478, 223, 490, 211, 485, 146, 400, 185, 381, 586, 178, 596, 188, 474, 252, 462, 127, 479, 150, 416, 180, 395, 516, 302, 499, 320, 450, 354, 445, 535, 516, 538, 106, 537, 173, 493, 166, 506, 97, 514, 51, 486, 83, 327, 77, 309, 96, 306, 113, 272, 153, 219, 172, 178, 152, 148, 224, 189, 231, 171, 328, 176, 347, 259, 404, 432, 249, 365, 346, 525, 342, 314, 340, 271, 336, 241, 321, 235, 284, 242, 247, 324, 336, 616, 360, 645, 381, 645, 404, 614, 492) +polygons = [PackedInt32Array(0, 1, 2), PackedInt32Array(3, 4, 5), PackedInt32Array(6, 7, 8, 9, 10), PackedInt32Array(11, 0, 2, 12, 13), PackedInt32Array(3, 5, 14), PackedInt32Array(15, 16, 17, 18), PackedInt32Array(19, 11, 13, 20), PackedInt32Array(21, 22, 23), PackedInt32Array(6, 10, 24, 25), PackedInt32Array(26, 27, 28, 29, 30), PackedInt32Array(31, 26, 30), PackedInt32Array(32, 33, 3, 34), PackedInt32Array(18, 35, 36, 25, 24), PackedInt32Array(18, 24, 37), PackedInt32Array(38, 39, 40, 41, 42), PackedInt32Array(43, 44, 45, 46), PackedInt32Array(47, 43, 46, 48), PackedInt32Array(49, 47, 48, 50, 23), PackedInt32Array(21, 23, 50, 51, 52, 53, 54), PackedInt32Array(55, 54, 53, 56), PackedInt32Array(30, 55, 56, 57), PackedInt32Array(30, 57, 58), PackedInt32Array(31, 30, 58), PackedInt32Array(31, 58, 59, 40), PackedInt32Array(40, 59, 41), PackedInt32Array(18, 37, 60, 15), PackedInt32Array(20, 42, 41, 61, 60, 34, 3, 62), PackedInt32Array(63, 64, 65, 66, 67, 15, 60, 68), PackedInt32Array(61, 68, 60), PackedInt32Array(62, 69, 70, 71, 72, 19, 20), PackedInt32Array(62, 3, 14)] +outlines = [PackedVector2Array(314, 65, 311, 83, 327, 77, 514, 51, 538, 106, 537, 173, 493, 166, 506, 97, 486, 83, 309, 96, 306, 113, 272, 153, 219, 172, 189, 231, 171, 328, 176, 347, 259, 404, 354, 445, 365, 346, 324, 336, 314, 340, 271, 336, 241, 321, 235, 284, 242, 247, 288, 228, 228, 180, 276, 160, 315, 190, 462, 127, 479, 150, 452, 163, 466, 177, 490, 169, 531, 178, 477, 205, 446, 196, 436, 170, 416, 180, 432, 249, 474, 252, 586, 178, 596, 188, 495, 256, 589, 270, 540, 284, 529, 290, 525, 342, 616, 360, 645, 381, 645, 404, 614, 492, 600, 497, 621, 510, 682, 496, 696, 300, 704, 507, 667, 525, 606, 519, 576, 503, 535, 516, 395, 516, 302, 499, 320, 450, 185, 381, 201, 440, 246, 478, 223, 490, 211, 485, 146, 400, 148, 224, 178, 152, 202, 99)] [node name="Node2D" type="Node2D"] -script = ExtResource( 1 ) - -[node name="Navmesh" type="Node3DPolygonInstance" parent="."] -navpoly = SubResource( 1 ) +script = ExtResource("1") [node name="Map" type="Sprite2D" parent="."] position = Vector2(429.585, 287.32) -texture = ExtResource( 2 ) +texture = ExtResource("2") + +[node name="Camera2D" type="Camera2D" parent="."] +offset = Vector2(420, 300) +current = true [node name="Character" type="Sprite2D" parent="."] position = Vector2(228.464, 132.594) scale = Vector2(0.5, 0.5) -texture = ExtResource( 3 ) +texture = ExtResource("3") offset = Vector2(0, -26) -[node name="Camera2D" type="Camera2D" parent="."] -offset = Vector2(420, 300) -current = true +[node name="NavigationRegion2d" type="NavigationRegion2D" parent="."] +navpoly = SubResource("NavigationPolygon_5ynhe") + +[node name="NavigationAgent2d" type="NavigationAgent2D" parent="."] diff --git a/2d/navigation/map.png.import b/2d/navigation/map.png.import index 6ba301180fe..b57f7a38ef2 100644 --- a/2d/navigation/map.png.import +++ b/2d/navigation/map.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/map.png-9eea34967fae34f4388f4a32a16da936.stex" +type="CompressedTexture2D" +uid="uid://bk26gi6qsuh18" +path="res://.godot/imported/map.png-9eea34967fae34f4388f4a32a16da936.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://map.png" -dest_files=["res://.godot/imported/map.png-9eea34967fae34f4388f4a32a16da936.stex"] +dest_files=["res://.godot/imported/map.png-9eea34967fae34f4388f4a32a16da936.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation/navigation.gd b/2d/navigation/navigation.gd index 9f7bba32fa4..bf00912f2b3 100644 --- a/2d/navigation/navigation.gd +++ b/2d/navigation/navigation.gd @@ -5,9 +5,18 @@ var path = [] @onready var character = $Character +#var navmap = NavigationServer2D.map_create() + + +func _ready(): + pass + #NavigationServer2D.region_set_map(navmap, $NavigationRegion2d.get_rid()) + + func _process(delta): + character.position = $NavigationAgent2d.get_next_location() var walk_distance = character_speed * delta - move_along_path(walk_distance) + #move_along_path(walk_distance) # The "click" event is a custom input action defined in @@ -15,32 +24,37 @@ func _process(delta): func _unhandled_input(event): if not event.is_action_pressed("click"): return - _update_navigation_path(character.position, get_local_mouse_position()) - - -func move_along_path(distance): - var last_point = character.position - while path.size(): - var distance_between_points = last_point.distance_to(path[0]) - # The position to move to falls between two points. - if distance <= distance_between_points: - character.position = last_point.lerp(path[0], distance / distance_between_points) - return - # The position is past the end of the segment. - distance -= distance_between_points - last_point = path[0] - path.remove(0) - # The character reached the end of the path. - character.position = last_point - set_process(false) - - + _update_navigation_path(Vector2(), get_local_mouse_position()) + +#func move_along_path(distance): +# return +# var last_point = character.position +# while path.size(): +# var distance_between_points = last_point.distance_to(path[0]) +# # The position to move to falls between two points. +# if distance <= distance_between_points: +# character.position = last_point.lerp(path[0], distance / distance_between_points) +# return +# # The position is past the end of the segment. +# distance -= distance_between_points +# last_point = path[0] +# path.remove(0) +# # The character reached the end of the path. +# character.position = last_point +# set_process(false) + +var drawpos = Vector2() func _update_navigation_path(start_position, end_position): # get_simple_path is part of the Node2D class. # It returns a PackedVector2Array of points that lead you # from the start_position to the end_position. - path = get_simple_path(start_position, end_position, true) + $NavigationAgent2d.set_target_location(end_position) + drawpos = end_position + queue_redraw() # The first point is always the start_position. # We don't need it in this example as it corresponds to the character's position. - path.remove(0) - set_process(true) + #path.remove(0) + #set_process(true) + +func _draw(): + draw_circle(drawpos, 10, Color.RED) diff --git a/2d/navigation/project.godot b/2d/navigation/project.godot index 565308be094..f22cb1c6da5 100644 --- a/2d/navigation/project.godot +++ b/2d/navigation/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -15,32 +15,23 @@ config/description="Example of using 2D navigation using a NavigationPolygon in NavigationPolygonInstance node. It uses the 2D navigation API to request a path between two points, and then traverses the resulting path." run/main_scene="res://level.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/size/width=800 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=800 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -stretch/aspect="keep" -stretch/mode="2d" - -[gdnative] - -singletons=[] [input] click={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) ] } [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.160784, 0.172549, 0.278431, 1) +environment/defaults/default_clear_color=Color(0.160784, 0.172549, 0.278431, 1) diff --git a/2d/navigation_astar/Game.tscn b/2d/navigation_astar/Game.tscn index f9f15520cd5..30c4a447a05 100644 --- a/2d/navigation_astar/Game.tscn +++ b/2d/navigation_astar/Game.tscn @@ -1,26 +1,26 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://byom4xiqb8ovo"] -[ext_resource path="res://tileset/tileset.tres" type="TileSet" id=1] -[ext_resource path="res://pathfind_astar.gd" type="Script" id=2] -[ext_resource path="res://character.gd" type="Script" id=3] -[ext_resource path="res://sprites/character.png" type="Texture2D" id=4] +[ext_resource type="TileSet" uid="uid://y111l4w24pml" path="res://tileset/tileset.tres" id="1"] +[ext_resource type="Script" path="res://pathfind_astar.gd" id="2"] +[ext_resource type="Script" path="res://character.gd" id="3"] +[ext_resource type="Texture2D" uid="uid://bfedhloqga3jl" path="res://sprites/character.png" id="4"] [node name="Game" type="Node2D"] [node name="TileMap" type="TileMap" parent="."] -tile_set = ExtResource( 1 ) -format = 1 -tile_data = PackedInt32Array(65537, 0, 0, 65541, 0, 0, 65545, 0, 0, 65550, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 262145, 0, 0, 262146, 0, 0, 262147, 0, 0, 327683, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393222, 0, 0, 393226, 0, 0, 393227, 0, 0, 393228, 0, 0, 458761, 0, 0, 524290, 0, 0, 524291, 0, 0, 524292, 0, 0, 524293, 0, 0, 524294, 0, 0, 524295, 0, 0, 524296, 0, 0, 524297, 0, 0) -script = ExtResource( 2 ) +tile_set = ExtResource("1") +format = 2 +layer_0/tile_data = PackedInt32Array(393217, 0, 0, 327681, 0, 0, 262145, 0, 0, 262146, 0, 0, 196611, 0, 0, 196612, 0, 0, 131076, 0, 0, 131077, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 393225, 0, 0, 393226, 0, 0, 327690, 0, 0, 327691, 0, 0, 262155, 0, 0, 262156, 0, 0, 65549, 0, 0, 65550, 0, 0, 131086, 0, 0, 131087, 0, 0, 196623, 0, 0, 262159, 0, 0, 262160, 0, 0, 327696, 0, 0, 393232, 0, 0, 458768, 0, 0, 458767, 0, 0, 524303, 0, 0, -1, 0, 0, 65535, 0, 0, 131071, 0, 0, 196607, 0, 0, 262143, 0, 0, 327679, 0, 0, 393215, 0, 0, 458751, 0, 0, 524287, 0, 0, 589823, 0, 0, 655359, 0, 0, 720895, 0, 0, 655360, 0, 0, 655361, 0, 0, 655362, 0, 0, 655363, 0, 0, 655364, 0, 0, 655365, 0, 0, 655366, 0, 0, 655367, 0, 0, 655368, 0, 0, 655369, 0, 0, 655370, 0, 0, 655371, 0, 0, 655372, 0, 0, 655373, 0, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0, 589842, 0, 0, 524306, 0, 0, 458770, 0, 0, 393234, 0, 0, 327698, 0, 0, 262162, 0, 0, 196626, 0, 0, 131090, 0, 0, 65554, 0, 0, 18, 0, 0, -65518, 0, 0, -65519, 0, 0, -65520, 0, 0, -65521, 0, 0, -65522, 0, 0, -65523, 0, 0, -65524, 0, 0, -65525, 0, 0, -65526, 0, 0, -65527, 0, 0, -65528, 0, 0, -65529, 0, 0, -65530, 0, 0, -65531, 0, 0, -65532, 0, 0, -65533, 0, 0, -65534, 0, 0, -65535, 0, 0, -65536, 0, 0, 131080, 0, 0, 65544, 0, 0, 8, 0, 0, 131081, 0, 0, 11, 0, 0, 10, 0, 0, 589834, 0, 0, 589833, 0, 0, 589832, 0, 0, 589826, 0, 0, 524290, 0, 0, 458755, 0, 0, 327685, 0, 0, 262150, 0, 0, 196615, 0, 0, 786430, 0, 0, 720894, 0, 0, 655358, 0, 0, 589822, 0, 0, 524286, 0, 0, 458750, 0, 0, 393214, 0, 0, 327678, 0, 0, 262142, 0, 0, 196606, 0, 0, 131070, 0, 0, 65534, 0, 0, -2, 0, 0, -65538, 0, 0, -65537, 0, 0, -131072, 0, 0, -131071, 0, 0, -131070, 0, 0, -131069, 0, 0, -131068, 0, 0, -131067, 0, 0, -131066, 0, 0, -131065, 0, 0, -131064, 0, 0, -131063, 0, 0, -131062, 0, 0, -131061, 0, 0, -131060, 0, 0, -131059, 0, 0, -131058, 0, 0, -131057, 0, 0, -131056, 0, 0, -131055, 0, 0, -131054, 0, 0, -131053, 0, 0, -65517, 0, 0, 19, 0, 0, 65555, 0, 0, 131091, 0, 0, 196627, 0, 0, 262163, 0, 0, 327699, 0, 0, 393235, 0, 0, 458771, 0, 0, 524307, 0, 0, 589843, 0, 0, 655379, 0, 0, 720915, 0, 0, 720914, 0, 0, 720913, 0, 0, 720912, 0, 0, 720911, 0, 0, 720910, 0, 0, 720909, 0, 0, 720908, 0, 0, 786444, 0, 0, 786443, 0, 0, 786442, 0, 0, 786441, 0, 0, 786440, 0, 0, 786439, 0, 0, 786438, 0, 0, 720902, 0, 0, 720901, 0, 0, 720900, 0, 0, 720899, 0, 0, 720898, 0, 0, 720897, 0, 0, 720896, 0, 0, 786431, 0, 0, 851967, 0, 0, 786432, 0, 0, 786433, 0, 0, 786434, 0, 0, 786435, 0, 0, 786436, 0, 0, 786437, 0, 0, 720904, 0, 0, 720905, 0, 0, 720906, 0, 0, 720907, 0, 0, 720903, 0, 0, 851966, 0, 0, 851965, 0, 0, 786445, 0, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 0, 0, 786450, 0, 0, 786451, 0, 0, -262124, 0, 0, -196588, 0, 0, -131052, 0, 0, -65516, 0, 0, 20, 0, 0, 65556, 0, 0, 131092, 0, 0, 196628, 0, 0, 262164, 0, 0, 327700, 0, 0, 393236, 0, 0, 458772, 0, 0, 524308, 0, 0, 589844, 0, 0, 655380, 0, 0, 720916, 0, 0, 786452, 0, 0, 851988, 0, 0, -196589, 0, 0, -196590, 0, 0, -196591, 0, 0, -196592, 0, 0, -196593, 0, 0, -196594, 0, 0, -196595, 0, 0, -196596, 0, 0, -196597, 0, 0, -196598, 0, 0, -196599, 0, 0, -196600, 0, 0, -196601, 0, 0, -196602, 0, 0, -196603, 0, 0, -196604, 0, 0, -196605, 0, 0, -196606, 0, 0, -196607, 0, 0, -196608, 0, 0, -131073, 0, 0, -131074, 0, 0, -131075, 0, 0, -196611, 0, 0, -196610, 0, 0, -196609, 0, 0, -262144, 0, 0, -262143, 0, 0, -262142, 0, 0, -262141, 0, 0, -262140, 0, 0, -262139, 0, 0, -262138, 0, 0, -262137, 0, 0, -262136, 0, 0, -262135, 0, 0, -262134, 0, 0, -262133, 0, 0, -262132, 0, 0, -262131, 0, 0, -262130, 0, 0, -262129, 0, 0, -262128, 0, 0, -262127, 0, 0, -262126, 0, 0, -262125, 0, 0, 851987, 0, 0, 851986, 0, 0, 851985, 0, 0, 851984, 0, 0, 851983, 0, 0, 851982, 0, 0, 851981, 0, 0, 851980, 0, 0, 851979, 0, 0, 851978, 0, 0, 851977, 0, 0, 851976, 0, 0, 851975, 0, 0, 851974, 0, 0, 851973, 0, 0, 851972, 0, 0, 851971, 0, 0, 851970, 0, 0, 851969, 0, 0, 851968, 0, 0, 917503, 0, 0, 917502, 0, 0, 917501, 0, 0, 786429, 0, 0, 720893, 0, 0, 655357, 0, 0, 589821, 0, 0, 524285, 0, 0, 458749, 0, 0, 393213, 0, 0, 327677, 0, 0, 262141, 0, 0, 196605, 0, 0, 131069, 0, 0, 65533, 0, 0, -3, 0, 0, -65539, 0, 0, -262123, 0, 0, -196587, 0, 0, -131051, 0, 0, -65515, 0, 0, 21, 0, 0, 65557, 0, 0, 131093, 0, 0, 196629, 0, 0, 262165, 0, 0, 327701, 0, 0, 393237, 0, 0, 458773, 0, 0, 524309, 0, 0, 589845, 0, 0, 655381, 0, 0, 720917, 0, 0, 786453, 0, 0, 851989, 0, 0, 917500, 0, 0, 851964, 0, 0, 786428, 0, 0, 720892, 0, 0, 655356, 0, 0, 589820, 0, 0, 524284, 0, 0, 458748, 0, 0, 393212, 0, 0, 327676, 0, 0, 262140, 0, 0, 196604, 0, 0, 131068, 0, 0, 65532, 0, 0, -4, 0, 0, -65540, 0, 0, -131076, 0, 0, -196612, 0, 0, -196615, 0, 0, -131079, 0, 0, -65543, 0, 0, -7, 0, 0, 65529, 0, 0, 131065, 0, 0, 196601, 0, 0, 262137, 0, 0, 327673, 0, 0, 393209, 0, 0, 458745, 0, 0, 524281, 0, 0, 589817, 0, 0, 655353, 0, 0, 720889, 0, 0, 786425, 0, 0, 851961, 0, 0, 917497, 0, 0, -196614, 0, 0, -131078, 0, 0, -65542, 0, 0, -6, 0, 0, 65530, 0, 0, 131066, 0, 0, 196602, 0, 0, 262138, 0, 0, 327674, 0, 0, 393210, 0, 0, 458746, 0, 0, 524282, 0, 0, 589818, 0, 0, 655354, 0, 0, 720890, 0, 0, 786426, 0, 0, 851962, 0, 0, 917498, 0, 0, -196613, 0, 0, -131077, 0, 0, -65541, 0, 0, -5, 0, 0, 65531, 0, 0, 131067, 0, 0, 196603, 0, 0, 262139, 0, 0, 327675, 0, 0, 393211, 0, 0, 458747, 0, 0, 524283, 0, 0, 589819, 0, 0, 655355, 0, 0, 720891, 0, 0, 786427, 0, 0, 851963, 0, 0, 917499, 0, 0, -262122, 0, 0, -196586, 0, 0, -131050, 0, 0, -65514, 0, 0, 22, 0, 0, 65558, 0, 0, 131094, 0, 0, 196630, 0, 0, 262166, 0, 0, 327702, 0, 0, 393238, 0, 0, 458774, 0, 0, 524310, 0, 0, 589846, 0, 0, 655382, 0, 0, 720918, 0, 0, 786454, 0, 0, 851990, 0, 0, -262121, 0, 0, -196585, 0, 0, -131049, 0, 0, -65513, 0, 0, 23, 0, 0, 65559, 0, 0, 131095, 0, 0, 196631, 0, 0, 262167, 0, 0, 327703, 0, 0, 393239, 0, 0, 458775, 0, 0, 524311, 0, 0, 589847, 0, 0, 655383, 0, 0, 720919, 0, 0, 786455, 0, 0, 851991, 0, 0, -262120, 0, 0, -196584, 0, 0, -131048, 0, 0, -65512, 0, 0, 24, 0, 0, 65560, 0, 0, 131096, 0, 0, 196632, 0, 0, 262168, 0, 0, 327704, 0, 0, 393240, 0, 0, 458776, 0, 0, 524312, 0, 0, 589848, 0, 0, 655384, 0, 0, 720920, 0, 0, 786456, 0, 0, 851992, 0, 0, -393223, 0, 0, -327687, 0, 0, -262151, 0, 0, -393222, 0, 0, -327686, 0, 0, -262150, 0, 0, -393221, 0, 0, -327685, 0, 0, -262149, 0, 0, -393220, 0, 0, -327684, 0, 0, -262148, 0, 0, -393219, 0, 0, -327683, 0, 0, -262147, 0, 0, -393218, 0, 0, -327682, 0, 0, -262146, 0, 0, -393217, 0, 0, -327681, 0, 0, -262145, 0, 0, -458752, 0, 0, -393216, 0, 0, -327680, 0, 0, -458751, 0, 0, -393215, 0, 0, -327679, 0, 0, -458750, 0, 0, -393214, 0, 0, -327678, 0, 0, -458749, 0, 0, -393213, 0, 0, -327677, 0, 0, -458748, 0, 0, -393212, 0, 0, -327676, 0, 0, -458747, 0, 0, -393211, 0, 0, -327675, 0, 0, -458746, 0, 0, -393210, 0, 0, -327674, 0, 0, -458745, 0, 0, -393209, 0, 0, -327673, 0, 0, -458744, 0, 0, -393208, 0, 0, -327672, 0, 0, -458743, 0, 0, -393207, 0, 0, -327671, 0, 0, -458742, 0, 0, -393206, 0, 0, -327670, 0, 0, -458741, 0, 0, -393205, 0, 0, -327669, 0, 0, -458740, 0, 0, -393204, 0, 0, -327668, 0, 0, -458739, 0, 0, -393203, 0, 0, -327667, 0, 0, -458738, 0, 0, -393202, 0, 0, -327666, 0, 0, -458737, 0, 0, -393201, 0, 0, -327665, 0, 0, -458736, 0, 0, -393200, 0, 0, -327664, 0, 0, -458735, 0, 0, -393199, 0, 0, -327663, 0, 0, -458734, 0, 0, -393198, 0, 0, -327662, 0, 0, -458733, 0, 0, -393197, 0, 0, -327661, 0, 0, -458732, 0, 0, -393196, 0, 0, -327660, 0, 0, -458731, 0, 0, -393195, 0, 0, -327659, 0, 0, -458730, 0, 0, -393194, 0, 0, -327658, 0, 0, -458729, 0, 0, -393193, 0, 0, -327657, 0, 0, -458728, 0, 0, -393192, 0, 0, -327656, 0, 0, 983033, 0, 0, 1048569, 0, 0, 1114105, 0, 0, 983034, 0, 0, 1048570, 0, 0, 1114106, 0, 0, 983035, 0, 0, 1048571, 0, 0, 1114107, 0, 0, 983036, 0, 0, 1048572, 0, 0, 1114108, 0, 0, 983037, 0, 0, 1048573, 0, 0, 1114109, 0, 0, 983038, 0, 0, 1048574, 0, 0, 1114110, 0, 0, 983039, 0, 0, 1048575, 0, 0, 1114111, 0, 0, 917504, 0, 0, 983040, 0, 0, 1048576, 0, 0, 917505, 0, 0, 983041, 0, 0, 1048577, 0, 0, 917506, 0, 0, 983042, 0, 0, 1048578, 0, 0, 917507, 0, 0, 983043, 0, 0, 1048579, 0, 0, 917508, 0, 0, 983044, 0, 0, 1048580, 0, 0, 917509, 0, 0, 983045, 0, 0, 1048581, 0, 0, 917510, 0, 0, 983046, 0, 0, 1048582, 0, 0, 917511, 0, 0, 983047, 0, 0, 1048583, 0, 0, 917512, 0, 0, 983048, 0, 0, 1048584, 0, 0, 917513, 0, 0, 983049, 0, 0, 1048585, 0, 0, 917514, 0, 0, 983050, 0, 0, 1048586, 0, 0, 917515, 0, 0, 983051, 0, 0, 1048587, 0, 0, 917516, 0, 0, 983052, 0, 0, 1048588, 0, 0, 917517, 0, 0, 983053, 0, 0, 1048589, 0, 0, 917518, 0, 0, 983054, 0, 0, 1048590, 0, 0, 917519, 0, 0, 983055, 0, 0, 1048591, 0, 0, 917520, 0, 0, 983056, 0, 0, 1048592, 0, 0, 917521, 0, 0, 983057, 0, 0, 1048593, 0, 0, 917522, 0, 0, 983058, 0, 0, 1048594, 0, 0, 917523, 0, 0, 983059, 0, 0, 1048595, 0, 0, 917524, 0, 0, 983060, 0, 0, 1048596, 0, 0, 917525, 0, 0, 983061, 0, 0, 1048597, 0, 0, 917526, 0, 0, 983062, 0, 0, 1048598, 0, 0, 917527, 0, 0, 983063, 0, 0, 1048599, 0, 0, 917528, 0, 0, 983064, 0, 0, 1048600, 0, 0, -589834, 0, 0, -524298, 0, 0, -458762, 0, 0, -393226, 0, 0, -327690, 0, 0, -262154, 0, 0, -196618, 0, 0, -131082, 0, 0, -65546, 0, 0, -10, 0, 0, 65526, 0, 0, 131062, 0, 0, 196598, 0, 0, 262134, 0, 0, 327670, 0, 0, 393206, 0, 0, 458742, 0, 0, 524278, 0, 0, 589814, 0, 0, 655350, 0, 0, 720886, 0, 0, 786422, 0, 0, 851958, 0, 0, 917494, 0, 0, 983030, 0, 0, 1048566, 0, 0, 1114102, 0, 0, 1179638, 0, 0, 1245174, 0, 0, 1310710, 0, 0, -589833, 0, 0, -524297, 0, 0, -458761, 0, 0, -393225, 0, 0, -327689, 0, 0, -262153, 0, 0, -196617, 0, 0, -131081, 0, 0, -65545, 0, 0, -9, 0, 0, 65527, 0, 0, 131063, 0, 0, 196599, 0, 0, 262135, 0, 0, 327671, 0, 0, 393207, 0, 0, 458743, 0, 0, 524279, 0, 0, 589815, 0, 0, 655351, 0, 0, 720887, 0, 0, 786423, 0, 0, 851959, 0, 0, 917495, 0, 0, 983031, 0, 0, 1048567, 0, 0, 1114103, 0, 0, 1179639, 0, 0, 1245175, 0, 0, 1310711, 0, 0, -589832, 0, 0, -524296, 0, 0, -458760, 0, 0, -393224, 0, 0, -327688, 0, 0, -262152, 0, 0, -196616, 0, 0, -131080, 0, 0, -65544, 0, 0, -8, 0, 0, 65528, 0, 0, 131064, 0, 0, 196600, 0, 0, 262136, 0, 0, 327672, 0, 0, 393208, 0, 0, 458744, 0, 0, 524280, 0, 0, 589816, 0, 0, 655352, 0, 0, 720888, 0, 0, 786424, 0, 0, 851960, 0, 0, 917496, 0, 0, 983032, 0, 0, 1048568, 0, 0, 1114104, 0, 0, 1179640, 0, 0, 1245176, 0, 0, 1310712, 0, 0, 1179641, 0, 0, 1245177, 0, 0, 1310713, 0, 0, 1179642, 0, 0, 1245178, 0, 0, 1310714, 0, 0, 1179643, 0, 0, 1245179, 0, 0, 1310715, 0, 0, 1179644, 0, 0, 1245180, 0, 0, 1310716, 0, 0, 1179645, 0, 0, 1245181, 0, 0, 1310717, 0, 0, 1179646, 0, 0, 1245182, 0, 0, 1310718, 0, 0, 1179647, 0, 0, 1245183, 0, 0, 1310719, 0, 0, 1114112, 0, 0, 1179648, 0, 0, 1245184, 0, 0, 1114113, 0, 0, 1179649, 0, 0, 1245185, 0, 0, 1114114, 0, 0, 1179650, 0, 0, 1245186, 0, 0, 1114115, 0, 0, 1179651, 0, 0, 1245187, 0, 0, 1114116, 0, 0, 1179652, 0, 0, 1245188, 0, 0, 1114117, 0, 0, 1179653, 0, 0, 1245189, 0, 0, 1114118, 0, 0, 1179654, 0, 0, 1245190, 0, 0, 1114119, 0, 0, 1179655, 0, 0, 1245191, 0, 0, 1114120, 0, 0, 1179656, 0, 0, 1245192, 0, 0, 1114121, 0, 0, 1179657, 0, 0, 1245193, 0, 0, 1114122, 0, 0, 1179658, 0, 0, 1245194, 0, 0, 1114123, 0, 0, 1179659, 0, 0, 1245195, 0, 0, 1114124, 0, 0, 1179660, 0, 0, 1245196, 0, 0, 1114125, 0, 0, 1179661, 0, 0, 1245197, 0, 0, 1114126, 0, 0, 1179662, 0, 0, 1245198, 0, 0, 1114127, 0, 0, 1179663, 0, 0, 1245199, 0, 0, 1114128, 0, 0, 1179664, 0, 0, 1245200, 0, 0, 1114129, 0, 0, 1179665, 0, 0, 1245201, 0, 0, 1114130, 0, 0, 1179666, 0, 0, 1245202, 0, 0, 1114131, 0, 0, 1179667, 0, 0, 1245203, 0, 0, 1114132, 0, 0, 1179668, 0, 0, 1245204, 0, 0, 1114133, 0, 0, 1179669, 0, 0, 1245205, 0, 0, 1114134, 0, 0, 1179670, 0, 0, 1245206, 0, 0, 1114135, 0, 0, 1179671, 0, 0, 1245207, 0, 0, 1114136, 0, 0, 1179672, 0, 0, 1245208, 0, 0, 1114137, 0, 0, 1179673, 0, 0, 1245209, 0, 0, 1114138, 0, 0, 1179674, 0, 0, 1245210, 0, 0, 1114139, 0, 0, 1179675, 0, 0, 1245211, 0, 0, -655335, 0, 0, -589799, 0, 0, -524263, 0, 0, -458727, 0, 0, -393191, 0, 0, -327655, 0, 0, -262119, 0, 0, -196583, 0, 0, -131047, 0, 0, -65511, 0, 0, 25, 0, 0, 65561, 0, 0, 131097, 0, 0, 196633, 0, 0, 262169, 0, 0, 327705, 0, 0, 393241, 0, 0, 458777, 0, 0, 524313, 0, 0, 589849, 0, 0, 655385, 0, 0, 720921, 0, 0, 786457, 0, 0, 851993, 0, 0, 917529, 0, 0, 983065, 0, 0, 1048601, 0, 0, -655334, 0, 0, -589798, 0, 0, -524262, 0, 0, -458726, 0, 0, -393190, 0, 0, -327654, 0, 0, -262118, 0, 0, -196582, 0, 0, -131046, 0, 0, -65510, 0, 0, 26, 0, 0, 65562, 0, 0, 131098, 0, 0, 196634, 0, 0, 262170, 0, 0, 327706, 0, 0, 393242, 0, 0, 458778, 0, 0, 524314, 0, 0, 589850, 0, 0, 655386, 0, 0, 720922, 0, 0, 786458, 0, 0, 851994, 0, 0, 917530, 0, 0, 983066, 0, 0, 1048602, 0, 0, -655333, 0, 0, -589797, 0, 0, -524261, 0, 0, -458725, 0, 0, -393189, 0, 0, -327653, 0, 0, -262117, 0, 0, -196581, 0, 0, -131045, 0, 0, -65509, 0, 0, 27, 0, 0, 65563, 0, 0, 131099, 0, 0, 196635, 0, 0, 262171, 0, 0, 327707, 0, 0, 393243, 0, 0, 458779, 0, 0, 524315, 0, 0, 589851, 0, 0, 655387, 0, 0, 720923, 0, 0, 786459, 0, 0, 851995, 0, 0, 917531, 0, 0, 983067, 0, 0, 1048603, 0, 0, -589831, 0, 0, -524295, 0, 0, -458759, 0, 0, -589830, 0, 0, -524294, 0, 0, -458758, 0, 0, -589829, 0, 0, -524293, 0, 0, -458757, 0, 0, -589828, 0, 0, -524292, 0, 0, -458756, 0, 0, -589827, 0, 0, -524291, 0, 0, -458755, 0, 0, -589826, 0, 0, -524290, 0, 0, -458754, 0, 0, -589825, 0, 0, -524289, 0, 0, -458753, 0, 0, -655360, 0, 0, -589824, 0, 0, -524288, 0, 0, -655359, 0, 0, -589823, 0, 0, -524287, 0, 0, -655358, 0, 0, -589822, 0, 0, -524286, 0, 0, -655357, 0, 0, -589821, 0, 0, -524285, 0, 0, -655356, 0, 0, -589820, 0, 0, -524284, 0, 0, -655355, 0, 0, -589819, 0, 0, -524283, 0, 0, -655354, 0, 0, -589818, 0, 0, -524282, 0, 0, -655353, 0, 0, -589817, 0, 0, -524281, 0, 0, -655352, 0, 0, -589816, 0, 0, -524280, 0, 0, -655351, 0, 0, -589815, 0, 0, -524279, 0, 0, -655350, 0, 0, -589814, 0, 0, -524278, 0, 0, -655349, 0, 0, -589813, 0, 0, -524277, 0, 0, -655348, 0, 0, -589812, 0, 0, -524276, 0, 0, -655347, 0, 0, -589811, 0, 0, -524275, 0, 0, -655346, 0, 0, -589810, 0, 0, -524274, 0, 0, -655345, 0, 0, -589809, 0, 0, -524273, 0, 0, -655344, 0, 0, -589808, 0, 0, -524272, 0, 0, -655343, 0, 0, -589807, 0, 0, -524271, 0, 0, -655342, 0, 0, -589806, 0, 0, -524270, 0, 0, -655341, 0, 0, -589805, 0, 0, -524269, 0, 0, -655340, 0, 0, -589804, 0, 0, -524268, 0, 0, -655339, 0, 0, -589803, 0, 0, -524267, 0, 0, -655338, 0, 0, -589802, 0, 0, -524266, 0, 0, -655337, 0, 0, -589801, 0, 0, -524265, 0, 0, -655336, 0, 0, -589800, 0, 0, -524264, 0, 0) +script = ExtResource("2") -[node name="Character" type="Position2D" parent="."] +[node name="Character" type="Marker2D" parent="."] position = Vector2(32, 32) -script = ExtResource( 3 ) +script = ExtResource("3") [node name="Sprite2D" type="Sprite2D" parent="Character"] position = Vector2(7, 0) -texture = ExtResource( 4 ) +texture = ExtResource("4") [node name="Camera2D" type="Camera2D" parent="."] -offset = Vector2(512, 300) +offset = Vector2(576, 324) current = true diff --git a/2d/navigation_astar/character.gd b/2d/navigation_astar/character.gd index 8ee2cc76452..24e46b3dafc 100644 --- a/2d/navigation_astar/character.gd +++ b/2d/navigation_astar/character.gd @@ -23,7 +23,7 @@ func _process(_delta): return var _arrived_to_next_point = _move_to(_target_point_world) if _arrived_to_next_point: - _path.remove(0) + _path.remove_at(0) if len(_path) == 0: _change_state(States.IDLE) return @@ -52,7 +52,7 @@ func _move_to(world_position): func _change_state(new_state): if new_state == States.FOLLOW: _path = get_parent().get_node(^"TileMap").get_astar_path(position, _target_position) - if not _path or len(_path) == 1: + if _path.is_empty() or len(_path) == 1: _change_state(States.IDLE) return # The index 0 is the starting cell. diff --git a/2d/navigation_astar/icon.png.import b/2d/navigation_astar/icon.png.import index 889af9df580..27f78244fab 100644 --- a/2d/navigation_astar/icon.png.import +++ b/2d/navigation_astar/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://mra54hir677u" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation_astar/pathfind_astar.gd b/2d/navigation_astar/pathfind_astar.gd index f70030ca6b9..2dc39ae7ce0 100644 --- a/2d/navigation_astar/pathfind_astar.gd +++ b/2d/navigation_astar/pathfind_astar.gd @@ -4,27 +4,42 @@ const BASE_LINE_WIDTH = 3.0 const DRAW_COLOR = Color.WHITE # The Tilemap node doesn't have clear bounds so we're defining the map's limits here. -@export var map_size: Vector2 = Vector2.ONE * 16 +@export var map_size: Vector2i = Vector2.ONE * 18 -# The path start and end variables use setter methods. -# You can find them at the bottom of the script. -var path_start_position = Vector2(): +# The path start and end variables use setter methods, defined below the initial values. +var path_start_position = Vector2i(): set(value): - # TODO: Manually copy the code from this method. - _set_path_start_position(value) -var path_end_position = Vector2(): + if value in obstacles: + return + if is_outside_map_bounds(value): + return + + set_cell(0, path_start_position, -1) + set_cell(0, value, 1, Vector2i()) + path_start_position = value + if path_end_position and path_end_position != path_start_position: + _recalculate_path() + +var path_end_position = Vector2i(): set(value): - # TODO: Manually copy the code from this method. - _set_path_end_position(value) + if value in obstacles: + return + if is_outside_map_bounds(value): + return + + set_cell(0, path_start_position, -1) + set_cell(0, value, 2, Vector2i()) + path_end_position = value + if path_start_position != value: + _recalculate_path() var _point_path = [] # You can only create an AStar node from code, not from the Scene tab. -@onready var astar_node = AStar.new() +@onready var astar_node = AStar3D.new() # get_used_cells_by_id is a method from the TileMap node. # Here the id 0 corresponds to the grey tile, the obstacles. -@onready var obstacles = get_used_cells_by_id(0) -@onready var _half_cell_size = cell_size / 2 +@onready var obstacles = get_used_cells(0) func _ready(): var walkable_cells_list = astar_add_walkable_cells(obstacles) @@ -32,17 +47,17 @@ func _ready(): func _draw(): - if not _point_path: + if _point_path.is_empty(): return var point_start = _point_path[0] var point_end = _point_path[len(_point_path) - 1] - set_cell(point_start.x, point_start.y, 1) - set_cell(point_end.x, point_end.y, 2) + set_cell(0, Vector2i(point_start.x, point_start.y), 1, Vector2i()) + set_cell(0, Vector2i(point_end.x, point_end.y), 2, Vector2i()) - var last_point = map_to_world(Vector2(point_start.x, point_start.y)) + _half_cell_size + var last_point = map_to_local(Vector2i(point_start.x, point_start.y)) for index in range(1, len(_point_path)): - var current_point = map_to_world(Vector2(_point_path[index].x, _point_path[index].y)) + _half_cell_size + var current_point = map_to_local(Vector2i(_point_path[index].x, _point_path[index].y)) draw_line(last_point, current_point, DRAW_COLOR, BASE_LINE_WIDTH, true) draw_circle(current_point, BASE_LINE_WIDTH * 2.0, DRAW_COLOR) last_point = current_point @@ -54,7 +69,7 @@ func astar_add_walkable_cells(obstacle_list = []): var points_array = [] for y in range(map_size.y): for x in range(map_size.x): - var point = Vector2(x, y) + var point = Vector2i(x, y) if point in obstacle_list: continue @@ -81,10 +96,10 @@ func astar_connect_walkable_cells(points_array): # left and bottom of it. If it's in the map and not an obstalce. # We connect the current point with it. var points_relative = PackedVector2Array([ - point + Vector2.RIGHT, - point + Vector2.LEFT, - point + Vector2.DOWN, - point + Vector2.UP, + point + Vector2i.RIGHT, + point + Vector2i.LEFT, + point + Vector2i.DOWN, + point + Vector2i.UP, ]) for point_relative in points_relative: var point_relative_index = calculate_point_index(point_relative) @@ -106,7 +121,7 @@ func astar_connect_walkable_cells_diagonal(points_array): var point_index = calculate_point_index(point) for local_y in range(3): for local_x in range(3): - var point_relative = Vector2(point.x + local_x - 1, point.y + local_y - 1) + var point_relative = Vector2i(point.x + local_x - 1, point.y + local_y - 1) var point_relative_index = calculate_point_index(point_relative) if point_relative == point or is_outside_map_bounds(point_relative): continue @@ -120,12 +135,12 @@ func calculate_point_index(point): func clear_previous_path_drawing(): - if not _point_path: + if _point_path.is_empty(): return var point_start = _point_path[0] var point_end = _point_path[len(_point_path) - 1] - set_cell(point_start.x, point_start.y, -1) - set_cell(point_end.x, point_end.y, -1) + set_cell(0, Vector2i(point_start.x, point_start.y), -1) + set_cell(0, Vector2i(point_end.x, point_end.y), -1) func is_outside_map_bounds(point): @@ -133,12 +148,12 @@ func is_outside_map_bounds(point): func get_astar_path(world_start, world_end): - self.path_start_position = world_to_map(world_start) - self.path_end_position = world_to_map(world_end) + self.path_start_position = local_to_map(world_start) + self.path_end_position = local_to_map(world_end) _recalculate_path() var path_world = [] for point in _point_path: - var point_world = map_to_world(Vector2(point.x, point.y)) + _half_cell_size + var point_world = map_to_local(Vector2i(point.x, point.y)) path_world.append(point_world) return path_world @@ -151,31 +166,4 @@ func _recalculate_path(): # end points' indices as input. _point_path = astar_node.get_point_path(start_point_index, end_point_index) # Redraw the lines and circles from the start to the end point. - update() - - -# Setters for the start and end path values. -func _set_path_start_position(value): - if value in obstacles: - return - if is_outside_map_bounds(value): - return - - set_cell(path_start_position.x, path_start_position.y, -1) - set_cell(value.x, value.y, 1) - path_start_position = value - if path_end_position and path_end_position != path_start_position: - _recalculate_path() - - -func _set_path_end_position(value): - if value in obstacles: - return - if is_outside_map_bounds(value): - return - - set_cell(path_start_position.x, path_start_position.y, -1) - set_cell(value.x, value.y, 2) - path_end_position = value - if path_start_position != value: - _recalculate_path() + queue_redraw() diff --git a/2d/navigation_astar/project.godot b/2d/navigation_astar/project.godot index d18165e91f3..bad974f3ed1 100644 --- a/2d/navigation_astar/project.godot +++ b/2d/navigation_astar/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -14,19 +14,19 @@ config/name="Grid-based Pathfinding with Astar" config/description="This is an example of using AStar for navigation in 2D, complete with Steering Behaviors in order to smooth the movement out." run/main_scene="res://Game.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [input] click={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) ] } diff --git a/2d/navigation_astar/sprites/character.png.import b/2d/navigation_astar/sprites/character.png.import index f55fdc79ba6..29c76e83616 100644 --- a/2d/navigation_astar/sprites/character.png.import +++ b/2d/navigation_astar/sprites/character.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/character.png-eb70ac48a5acf508c4b7740ea4ac4fae.stex" +type="CompressedTexture2D" +uid="uid://bfedhloqga3jl" +path="res://.godot/imported/character.png-eb70ac48a5acf508c4b7740ea4ac4fae.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://sprites/character.png" -dest_files=["res://.godot/imported/character.png-eb70ac48a5acf508c4b7740ea4ac4fae.stex"] +dest_files=["res://.godot/imported/character.png-eb70ac48a5acf508c4b7740ea4ac4fae.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation_astar/sprites/obstacle.png.import b/2d/navigation_astar/sprites/obstacle.png.import index 682af2232c5..10dfcc8630f 100644 --- a/2d/navigation_astar/sprites/obstacle.png.import +++ b/2d/navigation_astar/sprites/obstacle.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/obstacle.png-0258c5f5ce65bfa0dd8610adeb784f54.stex" +type="CompressedTexture2D" +uid="uid://bo5d4p1el52ir" +path="res://.godot/imported/obstacle.png-0258c5f5ce65bfa0dd8610adeb784f54.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://sprites/obstacle.png" -dest_files=["res://.godot/imported/obstacle.png-0258c5f5ce65bfa0dd8610adeb784f54.stex"] +dest_files=["res://.godot/imported/obstacle.png-0258c5f5ce65bfa0dd8610adeb784f54.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation_astar/sprites/path_end.png.import b/2d/navigation_astar/sprites/path_end.png.import index d428397897c..67877a55103 100644 --- a/2d/navigation_astar/sprites/path_end.png.import +++ b/2d/navigation_astar/sprites/path_end.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/path_end.png-02b79e25892cd8d863bd44c3c5a1720e.stex" +type="CompressedTexture2D" +uid="uid://cy1dwnkhyigme" +path="res://.godot/imported/path_end.png-02b79e25892cd8d863bd44c3c5a1720e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://sprites/path_end.png" -dest_files=["res://.godot/imported/path_end.png-02b79e25892cd8d863bd44c3c5a1720e.stex"] +dest_files=["res://.godot/imported/path_end.png-02b79e25892cd8d863bd44c3c5a1720e.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation_astar/sprites/path_start.png.import b/2d/navigation_astar/sprites/path_start.png.import index 20d111fe03d..d10361b1c60 100644 --- a/2d/navigation_astar/sprites/path_start.png.import +++ b/2d/navigation_astar/sprites/path_start.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/path_start.png-475bd0b469629aa8779d506c5134e5c2.stex" +type="CompressedTexture2D" +uid="uid://c57g2ow4p5dl3" +path="res://.godot/imported/path_start.png-475bd0b469629aa8779d506c5134e5c2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://sprites/path_start.png" -dest_files=["res://.godot/imported/path_start.png-475bd0b469629aa8779d506c5134e5c2.stex"] +dest_files=["res://.godot/imported/path_start.png-475bd0b469629aa8779d506c5134e5c2.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/navigation_astar/tileset/tileset.tres b/2d/navigation_astar/tileset/tileset.tres index efe24787170..ab842d73e99 100644 --- a/2d/navigation_astar/tileset/tileset.tres +++ b/2d/navigation_astar/tileset/tileset.tres @@ -1,37 +1,26 @@ -[gd_resource type="TileSet" load_steps=4 format=2] +[gd_resource type="TileSet" load_steps=7 format=3 uid="uid://y111l4w24pml"] -[ext_resource path="res://sprites/obstacle.png" type="Texture2D" id=1] -[ext_resource path="res://sprites/path_start.png" type="Texture2D" id=2] -[ext_resource path="res://sprites/path_end.png" type="Texture2D" id=3] +[ext_resource type="Texture2D" uid="uid://bo5d4p1el52ir" path="res://sprites/obstacle.png" id="1"] +[ext_resource type="Texture2D" uid="uid://c57g2ow4p5dl3" path="res://sprites/path_start.png" id="2"] +[ext_resource type="Texture2D" uid="uid://cy1dwnkhyigme" path="res://sprites/path_end.png" id="3"] -[resource] +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_tol7a"] +texture = ExtResource("1") +texture_region_size = Vector2i(64, 64) +0:0/0 = 0 + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_gx51g"] +texture = ExtResource("2") +texture_region_size = Vector2i(64, 64) +0:0/0 = 0 -0/name = "Obstacle" -0/texture = ExtResource( 1 ) -0/tex_offset = Vector2( 0, 0 ) -0/modulate = Color( 1, 1, 1, 1 ) -0/region = Rect2( 0, 0, 64, 64 ) -0/is_autotile = false -0/occluder_offset = Vector2( 32, 32 ) -0/navigation_offset = Vector2( 32, 32 ) -0/shapes = [ ] -1/name = "PathStart" -1/texture = ExtResource( 2 ) -1/tex_offset = Vector2( 0, 0 ) -1/modulate = Color( 1, 1, 1, 1 ) -1/region = Rect2( 0, 0, 64, 64 ) -1/is_autotile = false -1/occluder_offset = Vector2( 32, 32 ) -1/navigation_offset = Vector2( 32, 32 ) -1/shapes = [ ] -2/name = "PathEnd" -2/texture = ExtResource( 3 ) -2/tex_offset = Vector2( 0, 0 ) -2/modulate = Color( 1, 1, 1, 1 ) -2/region = Rect2( 0, 0, 64, 64 ) -2/is_autotile = false -2/occluder_offset = Vector2( 32, 32 ) -2/navigation_offset = Vector2( 32, 32 ) -2/shapes = [ ] -_sections_unfolded = [ "2" ] +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_2sont"] +texture = ExtResource("3") +texture_region_size = Vector2i(64, 64) +0:0/0 = 0 +[resource] +tile_size = Vector2i(64, 64) +sources/0 = SubResource("TileSetAtlasSource_tol7a") +sources/1 = SubResource("TileSetAtlasSource_gx51g") +sources/2 = SubResource("TileSetAtlasSource_2sont") diff --git a/2d/particles/fire_particle.png.import b/2d/particles/fire_particle.png.import index cb9864b7315..6c0348d2933 100644 --- a/2d/particles/fire_particle.png.import +++ b/2d/particles/fire_particle.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/fire_particle.png-282b12927cd5b1f6d9c0bfb485d448ae.stex" +type="CompressedTexture2D" +uid="uid://bap1cyd4dv37i" +path="res://.godot/imported/fire_particle.png-282b12927cd5b1f6d9c0bfb485d448ae.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://fire_particle.png" -dest_files=["res://.godot/imported/fire_particle.png-282b12927cd5b1f6d9c0bfb485d448ae.stex"] +dest_files=["res://.godot/imported/fire_particle.png-282b12927cd5b1f6d9c0bfb485d448ae.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/particles/flipbook.png.import b/2d/particles/flipbook.png.import index 26453fd6d09..c09a2a1dd13 100644 --- a/2d/particles/flipbook.png.import +++ b/2d/particles/flipbook.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/flipbook.png-2d23d0c8a5c0098f2c37b01babcd7e20.stex" +type="CompressedTexture2D" +uid="uid://734kppvbe7ba" +path="res://.godot/imported/flipbook.png-2d23d0c8a5c0098f2c37b01babcd7e20.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://flipbook.png" -dest_files=["res://.godot/imported/flipbook.png-2d23d0c8a5c0098f2c37b01babcd7e20.stex"] +dest_files=["res://.godot/imported/flipbook.png-2d23d0c8a5c0098f2c37b01babcd7e20.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/particles/icon.png.import b/2d/particles/icon.png.import index 889af9df580..07616b4d98a 100644 --- a/2d/particles/icon.png.import +++ b/2d/particles/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://c61wmjrccvfi4" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/particles/mask.png.import b/2d/particles/mask.png.import index c1b94ec74e1..1d0634fa797 100644 --- a/2d/particles/mask.png.import +++ b/2d/particles/mask.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/mask.png-b945516e6475612c1c4c3b4f8dd0bdc6.stex" +type="CompressedTexture2D" +uid="uid://0h71l5gox5nh" +path="res://.godot/imported/mask.png-b945516e6475612c1c4c3b4f8dd0bdc6.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://mask.png" -dest_files=["res://.godot/imported/mask.png-b945516e6475612c1c4c3b4f8dd0bdc6.stex"] +dest_files=["res://.godot/imported/mask.png-b945516e6475612c1c4c3b4f8dd0bdc6.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=true -flags/filter=true -flags/mipmaps=true -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/particles/particles.tscn b/2d/particles/particles.tscn index 5b14972bcbb..0f57288747d 100644 --- a/2d/particles/particles.tscn +++ b/2d/particles/particles.tscn @@ -1,296 +1,275 @@ -[gd_scene load_steps=38 format=2] +[gd_scene load_steps=44 format=3 uid="uid://dfb4jow1qnl4m"] -[ext_resource path="res://fire_particle.png" type="Texture2D" id=1] -[ext_resource path="res://smoke_particle.png" type="Texture2D" id=2] -[ext_resource path="res://spark_particle2.png" type="Texture2D" id=3] -[ext_resource path="res://point_texture_emit.tres" type="Texture2D" id=4] -[ext_resource path="res://point_texture_image_outline.tres" type="Texture2D" id=5] -[ext_resource path="res://point_normal_texture_image_outline.tres" type="Texture2D" id=6] -[ext_resource path="res://flipbook.png" type="Texture2D" id=7] +[ext_resource type="Texture2D" uid="uid://bap1cyd4dv37i" path="res://fire_particle.png" id="1"] +[ext_resource type="Texture2D" uid="uid://bii6kglnqm6r2" path="res://smoke_particle.png" id="2"] +[ext_resource type="Texture2D" uid="uid://b0nirvelkp3x2" path="res://spark_particle2.png" id="3"] +[ext_resource type="Texture2D" path="res://point_texture_image_outline.tres" id="5"] +[ext_resource type="Texture2D" uid="uid://734kppvbe7ba" path="res://flipbook.png" id="7"] -[sub_resource type="CanvasItemMaterial" id=1] +[sub_resource type="CanvasItemMaterial" id="1"] blend_mode = 1 -[sub_resource type="Curve" id=2] +[sub_resource type="Curve" id="2"] min_value = -360.0 max_value = 360.0 _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 85.0781), 0.0, 0.0, 0, 0] +point_count = 2 -[sub_resource type="CurveTexture" id=3] -curve = SubResource( 2 ) +[sub_resource type="CurveTexture" id="3"] +curve = SubResource("2") -[sub_resource type="Curve" id=4] -_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +[sub_resource type="Gradient" id="Gradient_wdtkk"] +offsets = PackedFloat32Array(0, 0.142857, 0.506494, 0.961039) +colors = PackedColorArray(0, 0, 0.803922, 1, 0.858824, 0.180392, 0.0470588, 1, 0.788235, 0.294118, 0, 1, 0, 0, 0, 0) -[sub_resource type="CurveTexture" id=5] -curve = SubResource( 4 ) +[sub_resource type="GradientTexture1D" id="GradientTexture1D_fv41j"] +gradient = SubResource("Gradient_wdtkk") -[sub_resource type="ParticlesMaterial" id=6] +[sub_resource type="Curve" id="4"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.11, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="5"] +curve = SubResource("4") + +[sub_resource type="ParticleProcessMaterial" id="6"] emission_shape = 1 emission_sphere_radius = 8.0 -flag_disable_z = true -gravity = Vector3(0, -26, 0) -angular_velocity = 1.0 -angular_velocity_curve = SubResource( 3 ) -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -linear_accel = 50.0 -linear_accel_random = 1.0 -damping = 2.0 -scale = 0.8 -scale_random = 0.3 -scale_curve = SubResource( 5 ) -color = Color(0.859375, 0.180278, 0.0469971, 1) - -[sub_resource type="CanvasItemMaterial" id=7] +gravity = Vector3(0, -250, 0) +angular_velocity_curve = SubResource("3") +scale_curve = SubResource("5") +color_ramp = SubResource("GradientTexture1D_fv41j") + +[sub_resource type="CanvasItemMaterial" id="7"] blend_mode = 1 particles_animation = true particles_anim_h_frames = 2 particles_anim_v_frames = 2 particles_anim_loop = false -[sub_resource type="ParticlesMaterial" id=8] +[sub_resource type="ParticleProcessMaterial" id="8"] emission_shape = 1 emission_sphere_radius = 75.0 -flag_disable_z = true gravity = Vector3(0, -26, 0) -angular_velocity = 1.0 -angular_velocity_curve = SubResource( 3 ) -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -linear_accel_random = 1.0 -damping = 2.0 -scale = 0.5 -scale_curve = SubResource( 5 ) +angular_velocity_curve = SubResource("3") +scale_curve = SubResource("5") color = Color(0, 0.67, 2, 1) -hue_variation = 0.05 -hue_variation_random = 1.0 -anim_offset = 1.0 -anim_offset_random = 1.0 +hue_variation_max = 0.02 +anim_offset_max = 1.0 -[sub_resource type="Gradient" id=9] +[sub_resource type="Gradient" id="9"] colors = PackedColorArray(1, 1, 1, 0.806627, 1, 1, 1, 0) -[sub_resource type="GradientTexture" id=10] -gradient = SubResource( 9 ) +[sub_resource type="GradientTexture1D" id="10"] +gradient = SubResource("9") + +[sub_resource type="Curve" id="Curve_vsw1v"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.5, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + +[sub_resource type="CurveTexture" id="CurveTexture_b7coa"] +curve = SubResource("Curve_vsw1v") -[sub_resource type="ParticlesMaterial" id=11] +[sub_resource type="ParticleProcessMaterial" id="11"] emission_shape = 1 emission_sphere_radius = 30.0 -flag_disable_z = true gravity = Vector3(0, 0, 0) -initial_velocity = 1.0 -angular_velocity = 20.0 -angular_velocity_random = 1.0 -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -radial_accel = 50.0 -damping = 20.0 -damping_random = 0.2 -angle = 360.0 -angle_random = 1.0 -color_ramp = SubResource( 10 ) - -[sub_resource type="CanvasItemMaterial" id=12] +scale_curve = SubResource("CurveTexture_b7coa") +color_ramp = SubResource("10") + +[sub_resource type="CanvasItemMaterial" id="12"] blend_mode = 1 -[sub_resource type="Gradient" id=13] +[sub_resource type="Gradient" id="13"] offsets = PackedFloat32Array(0, 0.0769231, 0.16568, 0.266272, 0.378698, 0.491124, 0.609467, 0.704142, 0.804734, 0.911243, 1) colors = PackedColorArray(1, 1, 1, 1, 1, 0.152961, 0, 1, 1, 0.726562, 0, 1, 0.78125, 1, 0, 1, 0.289062, 1, 0, 1, 0, 1, 0.472656, 1, 0, 1, 0.835938, 1, 0, 0.71875, 1, 1, 0.21875, 0, 1, 1, 1, 0, 0.773438, 1, 1, 1, 1, 1) -[sub_resource type="GradientTexture" id=14] -gradient = SubResource( 13 ) +[sub_resource type="GradientTexture1D" id="14"] +gradient = SubResource("13") -[sub_resource type="Curve" id=15] +[sub_resource type="Curve" id="15"] _data = [Vector2(0, 0.510742), 0.0, 0.0, 0, 0, Vector2(1, 1), 0.0, 0.0, 0, 0] +point_count = 2 -[sub_resource type="CurveTexture" id=16] -curve = SubResource( 15 ) - -[sub_resource type="Curve" id=17] -_data = [Vector2(0, 0.961914), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] - -[sub_resource type="CurveTexture" id=18] -curve = SubResource( 17 ) +[sub_resource type="CurveTexture" id="16"] +curve = SubResource("15") -[sub_resource type="ParticlesMaterial" id=19] -trail_divisor = 32 -trail_size_modifier = SubResource( 18 ) +[sub_resource type="ParticleProcessMaterial" id="19"] emission_shape = 1 emission_sphere_radius = 4.0 -flag_disable_z = true gravity = Vector3(0, 0, 0) -initial_velocity = 1.0 -angular_velocity = 100.0 -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -tangential_accel = 100.0 -angle = 360.0 -angle_random = 1.0 -scale = 3.0 -scale_curve = SubResource( 16 ) -color_ramp = SubResource( 14 ) -hue_variation = 1.0 -hue_variation_random = 1.0 - -[sub_resource type="CanvasItemMaterial" id=20] +scale_curve = SubResource("16") +color_ramp = SubResource("14") + +[sub_resource type="CanvasItemMaterial" id="20"] blend_mode = 1 -[sub_resource type="Gradient" id=21] +[sub_resource type="Gradient" id="21"] offsets = PackedFloat32Array(0, 0.171598, 0.301775, 0.390533, 1) colors = PackedColorArray(1, 0.63501, 0.28125, 1, 1, 0.398438, 0, 1, 0.679688, 0.277451, 0.169922, 0.232039, 0.515625, 0.362454, 0.199402, 0.0784314, 1, 1, 1, 0.0839033) -[sub_resource type="GradientTexture" id=22] -gradient = SubResource( 21 ) +[sub_resource type="GradientTexture1D" id="22"] +gradient = SubResource("21") -[sub_resource type="Curve" id=23] +[sub_resource type="Curve" id="23"] max_value = 50.0 _data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.0180711, 0), 74.6314, 74.6314, 0, 0, Vector2(0.0392147, 40.9884), 0.0, 0.0, 0, 0, Vector2(1, 50), 0.0, 0.0, 0, 0] +point_count = 4 -[sub_resource type="CurveTexture" id=24] -curve = SubResource( 23 ) +[sub_resource type="CurveTexture" id="24"] +curve = SubResource("23") -[sub_resource type="Curve" id=25] +[sub_resource type="Curve" id="25"] max_value = 2.0 _data = [Vector2(0, 0), 0.0, 1.78215, 0, 0, Vector2(0.282731, 1.17848), -1.56917, 21.2492, 0, 0, Vector2(0.311895, 2), 1.46231, 0.0, 0, 0, Vector2(1, 2), 0.0, 0.0, 0, 0] +point_count = 4 -[sub_resource type="CurveTexture" id=26] -curve = SubResource( 25 ) +[sub_resource type="CurveTexture" id="26"] +curve = SubResource("25") -[sub_resource type="ParticlesMaterial" id=27] +[sub_resource type="ParticleProcessMaterial" id="27"] emission_shape = 2 -emission_box_extents = Vector3(10, 10, 40) -flag_rotate_y = true -flag_disable_z = true +emission_sphere_radius = 60.0 gravity = Vector3(0, 0, 0) -initial_velocity = 1.0 -angular_velocity = 26.0 -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -radial_accel = 1.0 -radial_accel_random = 0.3 -radial_accel_curve = SubResource( 24 ) -damping = 10.0 -scale_curve = SubResource( 26 ) -color_ramp = SubResource( 22 ) - -[sub_resource type="ParticlesMaterial" id=28] -emission_shape = 3 -emission_point_texture = ExtResource( 4 ) +radial_accel_curve = SubResource("24") +scale_curve = SubResource("26") +color_ramp = SubResource("22") + +[sub_resource type="Image" id="Image_56cqp"] +data = { +"data": PackedByteArray(0, 0, 208, 65, 0, 0, 184, 66, 0, 0, 208, 65, 0, 0, 186, 66, 0, 0, 208, 65, 0, 0, 188, 66, 0, 0, 208, 65, 0, 0, 190, 66, 0, 0, 208, 65, 0, 0, 192, 66, 0, 0, 208, 65, 0, 0, 194, 66, 0, 0, 208, 65, 0, 0, 196, 66, 0, 0, 208, 65, 0, 0, 198, 66, 0, 0, 208, 65, 0, 0, 200, 66, 0, 0, 208, 65, 0, 0, 202, 66, 0, 0, 208, 65, 0, 0, 46, 67, 0, 0, 208, 65, 0, 0, 47, 67, 0, 0, 208, 65, 0, 0, 48, 67, 0, 0, 208, 65, 0, 0, 49, 67, 0, 0, 208, 65, 0, 0, 50, 67, 0, 0, 208, 65, 0, 0, 51, 67, 0, 0, 208, 65, 0, 0, 52, 67, 0, 0, 208, 65, 0, 0, 53, 67, 0, 0, 208, 65, 0, 0, 54, 67, 0, 0, 208, 65, 0, 0, 55, 67, 0, 0, 216, 65, 0, 0, 184, 66, 0, 0, 216, 65, 0, 0, 186, 66, 0, 0, 216, 65, 0, 0, 188, 66, 0, 0, 216, 65, 0, 0, 190, 66, 0, 0, 216, 65, 0, 0, 192, 66, 0, 0, 216, 65, 0, 0, 194, 66, 0, 0, 216, 65, 0, 0, 196, 66, 0, 0, 216, 65, 0, 0, 198, 66, 0, 0, 216, 65, 0, 0, 200, 66, 0, 0, 216, 65, 0, 0, 202, 66, 0, 0, 216, 65, 0, 0, 204, 66, 0, 0, 216, 65, 0, 0, 45, 67, 0, 0, 216, 65, 0, 0, 46, 67, 0, 0, 216, 65, 0, 0, 47, 67, 0, 0, 216, 65, 0, 0, 48, 67, 0, 0, 216, 65, 0, 0, 49, 67, 0, 0, 216, 65, 0, 0, 50, 67, 0, 0, 216, 65, 0, 0, 51, 67, 0, 0, 216, 65, 0, 0, 52, 67, 0, 0, 216, 65, 0, 0, 53, 67, 0, 0, 216, 65, 0, 0, 54, 67, 0, 0, 216, 65, 0, 0, 55, 67, 0, 0, 224, 65, 0, 0, 184, 66, 0, 0, 224, 65, 0, 0, 186, 66, 0, 0, 224, 65, 0, 0, 188, 66, 0, 0, 224, 65, 0, 0, 190, 66, 0, 0, 224, 65, 0, 0, 192, 66, 0, 0, 224, 65, 0, 0, 194, 66, 0, 0, 224, 65, 0, 0, 196, 66, 0, 0, 224, 65, 0, 0, 198, 66, 0, 0, 224, 65, 0, 0, 200, 66, 0, 0, 224, 65, 0, 0, 202, 66, 0, 0, 224, 65, 0, 0, 204, 66, 0, 0, 224, 65, 0, 0, 206, 66, 0, 0, 224, 65, 0, 0, 45, 67, 0, 0, 224, 65, 0, 0, 46, 67, 0, 0, 224, 65, 0, 0, 47, 67, 0, 0, 224, 65, 0, 0, 48, 67, 0, 0, 224, 65, 0, 0, 49, 67, 0, 0, 224, 65, 0, 0, 50, 67, 0, 0, 224, 65, 0, 0, 51, 67, 0, 0, 224, 65, 0, 0, 52, 67, 0, 0, 224, 65, 0, 0, 53, 67, 0, 0, 224, 65, 0, 0, 54, 67, 0, 0, 224, 65, 0, 0, 55, 67, 0, 0, 232, 65, 0, 0, 184, 66, 0, 0, 232, 65, 0, 0, 186, 66, 0, 0, 232, 65, 0, 0, 188, 66, 0, 0, 232, 65, 0, 0, 190, 66, 0, 0, 232, 65, 0, 0, 192, 66, 0, 0, 232, 65, 0, 0, 194, 66, 0, 0, 232, 65, 0, 0, 196, 66, 0, 0, 232, 65, 0, 0, 198, 66, 0, 0, 232, 65, 0, 0, 200, 66, 0, 0, 232, 65, 0, 0, 202, 66, 0, 0, 232, 65, 0, 0, 204, 66, 0, 0, 232, 65, 0, 0, 206, 66, 0, 0, 232, 65, 0, 0, 45, 67, 0, 0, 232, 65, 0, 0, 46, 67, 0, 0, 232, 65, 0, 0, 47, 67, 0, 0, 232, 65, 0, 0, 48, 67, 0, 0, 232, 65, 0, 0, 49, 67, 0, 0, 232, 65, 0, 0, 50, 67, 0, 0, 232, 65, 0, 0, 51, 67, 0, 0, 232, 65, 0, 0, 52, 67, 0, 0, 232, 65, 0, 0, 53, 67, 0, 0, 232, 65, 0, 0, 54, 67, 0, 0, 232, 65, 0, 0, 55, 67, 0, 0, 240, 65, 0, 0, 184, 66, 0, 0, 240, 65, 0, 0, 186, 66, 0, 0, 240, 65, 0, 0, 188, 66, 0, 0, 240, 65, 0, 0, 190, 66, 0, 0, 240, 65, 0, 0, 192, 66, 0, 0, 240, 65, 0, 0, 194, 66, 0, 0, 240, 65, 0, 0, 196, 66, 0, 0, 240, 65, 0, 0, 198, 66, 0, 0, 240, 65, 0, 0, 200, 66, 0, 0, 240, 65, 0, 0, 202, 66, 0, 0, 240, 65, 0, 0, 204, 66, 0, 0, 240, 65, 0, 0, 206, 66, 0, 0, 240, 65, 0, 0, 44, 67, 0, 0, 240, 65, 0, 0, 45, 67, 0, 0, 240, 65, 0, 0, 46, 67, 0, 0, 240, 65, 0, 0, 47, 67, 0, 0, 240, 65, 0, 0, 48, 67, 0, 0, 240, 65, 0, 0, 49, 67, 0, 0, 240, 65, 0, 0, 50, 67, 0, 0, 240, 65, 0, 0, 51, 67, 0, 0, 240, 65, 0, 0, 52, 67, 0, 0, 240, 65, 0, 0, 53, 67, 0, 0, 240, 65, 0, 0, 54, 67, 0, 0, 240, 65, 0, 0, 55, 67, 0, 0, 248, 65, 0, 0, 184, 66, 0, 0, 248, 65, 0, 0, 186, 66, 0, 0, 248, 65, 0, 0, 188, 66, 0, 0, 248, 65, 0, 0, 190, 66, 0, 0, 248, 65, 0, 0, 192, 66, 0, 0, 248, 65, 0, 0, 194, 66, 0, 0, 248, 65, 0, 0, 196, 66, 0, 0, 248, 65, 0, 0, 198, 66, 0, 0, 248, 65, 0, 0, 200, 66, 0, 0, 248, 65, 0, 0, 202, 66, 0, 0, 248, 65, 0, 0, 204, 66, 0, 0, 248, 65, 0, 0, 206, 66, 0, 0, 248, 65, 0, 0, 44, 67, 0, 0, 248, 65, 0, 0, 45, 67, 0, 0, 248, 65, 0, 0, 46, 67, 0, 0, 248, 65, 0, 0, 47, 67, 0, 0, 248, 65, 0, 0, 48, 67, 0, 0, 248, 65, 0, 0, 49, 67, 0, 0, 248, 65, 0, 0, 50, 67, 0, 0, 248, 65, 0, 0, 51, 67, 0, 0, 248, 65, 0, 0, 52, 67, 0, 0, 248, 65, 0, 0, 53, 67, 0, 0, 248, 65, 0, 0, 54, 67, 0, 0, 248, 65, 0, 0, 55, 67, 0, 0, 0, 66, 0, 0, 184, 66, 0, 0, 0, 66, 0, 0, 186, 66, 0, 0, 0, 66, 0, 0, 188, 66, 0, 0, 0, 66, 0, 0, 190, 66, 0, 0, 0, 66, 0, 0, 192, 66, 0, 0, 0, 66, 0, 0, 194, 66, 0, 0, 0, 66, 0, 0, 196, 66, 0, 0, 0, 66, 0, 0, 198, 66, 0, 0, 0, 66, 0, 0, 200, 66, 0, 0, 0, 66, 0, 0, 202, 66, 0, 0, 0, 66, 0, 0, 204, 66, 0, 0, 0, 66, 0, 0, 206, 66, 0, 0, 0, 66, 0, 0, 44, 67, 0, 0, 0, 66, 0, 0, 45, 67, 0, 0, 0, 66, 0, 0, 46, 67, 0, 0, 0, 66, 0, 0, 47, 67, 0, 0, 0, 66, 0, 0, 48, 67, 0, 0, 0, 66, 0, 0, 49, 67, 0, 0, 0, 66, 0, 0, 50, 67, 0, 0, 0, 66, 0, 0, 51, 67, 0, 0, 0, 66, 0, 0, 52, 67, 0, 0, 0, 66, 0, 0, 53, 67, 0, 0, 0, 66, 0, 0, 54, 67, 0, 0, 0, 66, 0, 0, 55, 67, 0, 0, 4, 66, 0, 0, 184, 66, 0, 0, 4, 66, 0, 0, 186, 66, 0, 0, 4, 66, 0, 0, 188, 66, 0, 0, 4, 66, 0, 0, 190, 66, 0, 0, 4, 66, 0, 0, 192, 66, 0, 0, 4, 66, 0, 0, 194, 66, 0, 0, 4, 66, 0, 0, 196, 66, 0, 0, 4, 66, 0, 0, 198, 66, 0, 0, 4, 66, 0, 0, 200, 66, 0, 0, 4, 66, 0, 0, 202, 66, 0, 0, 4, 66, 0, 0, 204, 66, 0, 0, 4, 66, 0, 0, 206, 66, 0, 0, 4, 66, 0, 0, 44, 67, 0, 0, 4, 66, 0, 0, 45, 67, 0, 0, 4, 66, 0, 0, 46, 67, 0, 0, 4, 66, 0, 0, 47, 67, 0, 0, 4, 66, 0, 0, 48, 67, 0, 0, 4, 66, 0, 0, 49, 67, 0, 0, 4, 66, 0, 0, 50, 67, 0, 0, 4, 66, 0, 0, 51, 67, 0, 0, 4, 66, 0, 0, 52, 67, 0, 0, 4, 66, 0, 0, 53, 67, 0, 0, 4, 66, 0, 0, 54, 67, 0, 0, 4, 66, 0, 0, 55, 67, 0, 0, 8, 66, 0, 0, 184, 66, 0, 0, 8, 66, 0, 0, 186, 66, 0, 0, 8, 66, 0, 0, 188, 66, 0, 0, 8, 66, 0, 0, 190, 66, 0, 0, 8, 66, 0, 0, 192, 66, 0, 0, 8, 66, 0, 0, 194, 66, 0, 0, 8, 66, 0, 0, 196, 66, 0, 0, 8, 66, 0, 0, 198, 66, 0, 0, 8, 66, 0, 0, 200, 66, 0, 0, 8, 66, 0, 0, 202, 66, 0, 0, 8, 66, 0, 0, 204, 66, 0, 0, 8, 66, 0, 0, 206, 66, 0, 0, 8, 66, 0, 0, 208, 66, 0, 0, 8, 66, 0, 0, 43, 67, 0, 0, 8, 66, 0, 0, 44, 67, 0, 0, 8, 66, 0, 0, 45, 67, 0, 0, 8, 66, 0, 0, 46, 67, 0, 0, 8, 66, 0, 0, 47, 67, 0, 0, 8, 66, 0, 0, 48, 67, 0, 0, 8, 66, 0, 0, 49, 67, 0, 0, 8, 66, 0, 0, 50, 67, 0, 0, 8, 66, 0, 0, 51, 67, 0, 0, 8, 66, 0, 0, 52, 67, 0, 0, 8, 66, 0, 0, 53, 67, 0, 0, 8, 66, 0, 0, 54, 67, 0, 0, 8, 66, 0, 0, 55, 67, 0, 0, 12, 66, 0, 0, 184, 66, 0, 0, 12, 66, 0, 0, 186, 66, 0, 0, 12, 66, 0, 0, 188, 66, 0, 0, 12, 66, 0, 0, 190, 66, 0, 0, 12, 66, 0, 0, 192, 66, 0, 0, 12, 66, 0, 0, 194, 66, 0, 0, 12, 66, 0, 0, 196, 66, 0, 0, 12, 66, 0, 0, 198, 66, 0, 0, 12, 66, 0, 0, 200, 66, 0, 0, 12, 66, 0, 0, 202, 66, 0, 0, 12, 66, 0, 0, 204, 66, 0, 0, 12, 66, 0, 0, 206, 66, 0, 0, 12, 66, 0, 0, 208, 66, 0, 0, 12, 66, 0, 0, 210, 66, 0, 0, 12, 66, 0, 0, 43, 67, 0, 0, 12, 66, 0, 0, 44, 67, 0, 0, 12, 66, 0, 0, 45, 67, 0, 0, 12, 66, 0, 0, 46, 67, 0, 0, 12, 66, 0, 0, 47, 67, 0, 0, 12, 66, 0, 0, 48, 67, 0, 0, 12, 66, 0, 0, 49, 67, 0, 0, 12, 66, 0, 0, 50, 67, 0, 0, 12, 66, 0, 0, 51, 67, 0, 0, 12, 66, 0, 0, 52, 67, 0, 0, 12, 66, 0, 0, 53, 67, 0, 0, 12, 66, 0, 0, 54, 67, 0, 0, 12, 66, 0, 0, 55, 67, 0, 0, 16, 66, 0, 0, 184, 66, 0, 0, 16, 66, 0, 0, 186, 66, 0, 0, 16, 66, 0, 0, 188, 66, 0, 0, 16, 66, 0, 0, 190, 66, 0, 0, 16, 66, 0, 0, 192, 66, 0, 0, 16, 66, 0, 0, 194, 66, 0, 0, 16, 66, 0, 0, 196, 66, 0, 0, 16, 66, 0, 0, 198, 66, 0, 0, 16, 66, 0, 0, 200, 66, 0, 0, 16, 66, 0, 0, 202, 66, 0, 0, 16, 66, 0, 0, 204, 66, 0, 0, 16, 66, 0, 0, 206, 66, 0, 0, 16, 66, 0, 0, 208, 66, 0, 0, 16, 66, 0, 0, 210, 66, 0, 0, 16, 66, 0, 0, 212, 66, 0, 0, 16, 66, 0, 0, 41, 67, 0, 0, 16, 66, 0, 0, 42, 67, 0, 0, 16, 66, 0, 0, 43, 67, 0, 0, 16, 66, 0, 0, 44, 67, 0, 0, 16, 66, 0, 0, 45, 67, 0, 0, 16, 66, 0, 0, 46, 67, 0, 0, 16, 66, 0, 0, 47, 67, 0, 0, 16, 66, 0, 0, 48, 67, 0, 0, 16, 66, 0, 0, 49, 67, 0, 0, 16, 66, 0, 0, 50, 67, 0, 0, 16, 66, 0, 0, 51, 67, 0, 0, 16, 66, 0, 0, 52, 67, 0, 0, 16, 66, 0, 0, 53, 67, 0, 0, 16, 66, 0, 0, 54, 67, 0, 0, 16, 66, 0, 0, 55, 67, 0, 0, 20, 66, 0, 0, 184, 66, 0, 0, 20, 66, 0, 0, 186, 66, 0, 0, 20, 66, 0, 0, 188, 66, 0, 0, 20, 66, 0, 0, 190, 66, 0, 0, 20, 66, 0, 0, 192, 66, 0, 0, 20, 66, 0, 0, 194, 66, 0, 0, 20, 66, 0, 0, 196, 66, 0, 0, 20, 66, 0, 0, 198, 66, 0, 0, 20, 66, 0, 0, 200, 66, 0, 0, 20, 66, 0, 0, 202, 66, 0, 0, 20, 66, 0, 0, 204, 66, 0, 0, 20, 66, 0, 0, 206, 66, 0, 0, 20, 66, 0, 0, 208, 66, 0, 0, 20, 66, 0, 0, 210, 66, 0, 0, 20, 66, 0, 0, 212, 66, 0, 0, 20, 66, 0, 0, 214, 66, 0, 0, 20, 66, 0, 0, 216, 66, 0, 0, 20, 66, 0, 0, 40, 67, 0, 0, 20, 66, 0, 0, 41, 67, 0, 0, 20, 66, 0, 0, 42, 67, 0, 0, 20, 66, 0, 0, 43, 67, 0, 0, 20, 66, 0, 0, 44, 67, 0, 0, 20, 66, 0, 0, 45, 67, 0, 0, 20, 66, 0, 0, 46, 67, 0, 0, 20, 66, 0, 0, 47, 67, 0, 0, 20, 66, 0, 0, 48, 67, 0, 0, 20, 66, 0, 0, 49, 67, 0, 0, 20, 66, 0, 0, 50, 67, 0, 0, 20, 66, 0, 0, 51, 67, 0, 0, 20, 66, 0, 0, 52, 67, 0, 0, 20, 66, 0, 0, 53, 67, 0, 0, 20, 66, 0, 0, 54, 67, 0, 0, 20, 66, 0, 0, 55, 67, 0, 0, 24, 66, 0, 0, 184, 66, 0, 0, 24, 66, 0, 0, 186, 66, 0, 0, 24, 66, 0, 0, 188, 66, 0, 0, 24, 66, 0, 0, 190, 66, 0, 0, 24, 66, 0, 0, 192, 66, 0, 0, 24, 66, 0, 0, 194, 66, 0, 0, 24, 66, 0, 0, 196, 66, 0, 0, 24, 66, 0, 0, 198, 66, 0, 0, 24, 66, 0, 0, 200, 66, 0, 0, 24, 66, 0, 0, 202, 66, 0, 0, 24, 66, 0, 0, 204, 66, 0, 0, 24, 66, 0, 0, 206, 66, 0, 0, 24, 66, 0, 0, 208, 66, 0, 0, 24, 66, 0, 0, 210, 66, 0, 0, 24, 66, 0, 0, 212, 66, 0, 0, 24, 66, 0, 0, 214, 66, 0, 0, 24, 66, 0, 0, 216, 66, 0, 0, 24, 66, 0, 0, 218, 66, 0, 0, 24, 66, 0, 0, 220, 66, 0, 0, 24, 66, 0, 0, 222, 66, 0, 0, 24, 66, 0, 0, 224, 66, 0, 0, 24, 66, 0, 0, 226, 66, 0, 0, 24, 66, 0, 0, 228, 66, 0, 0, 24, 66, 0, 0, 230, 66, 0, 0, 24, 66, 0, 0, 232, 66, 0, 0, 24, 66, 0, 0, 234, 66, 0, 0, 24, 66, 0, 0, 236, 66, 0, 0, 24, 66, 0, 0, 238, 66, 0, 0, 24, 66, 0, 0, 240, 66, 0, 0, 24, 66, 0, 0, 242, 66, 0, 0, 24, 66, 0, 0, 244, 66, 0, 0, 24, 66, 0, 0, 246, 66, 0, 0, 24, 66, 0, 0, 248, 66, 0, 0, 24, 66, 0, 0, 250, 66, 0, 0, 24, 66, 0, 0, 252, 66, 0, 0, 24, 66, 0, 0, 254, 66, 0, 0, 24, 66, 0, 0, 0, 67, 0, 0, 24, 66, 0, 0, 1, 67, 0, 0, 24, 66, 0, 0, 2, 67, 0, 0, 24, 66, 0, 0, 3, 67, 0, 0, 24, 66, 0, 0, 4, 67, 0, 0, 24, 66, 0, 0, 5, 67, 0, 0, 24, 66, 0, 0, 6, 67, 0, 0, 24, 66, 0, 0, 7, 67, 0, 0, 24, 66, 0, 0, 8, 67, 0, 0, 24, 66, 0, 0, 9, 67, 0, 0, 24, 66, 0, 0, 10, 67, 0, 0, 24, 66, 0, 0, 11, 67, 0, 0, 24, 66, 0, 0, 12, 67, 0, 0, 24, 66, 0, 0, 13, 67, 0, 0, 24, 66, 0, 0, 14, 67, 0, 0, 24, 66, 0, 0, 15, 67, 0, 0, 24, 66, 0, 0, 16, 67, 0, 0, 24, 66, 0, 0, 17, 67, 0, 0, 24, 66, 0, 0, 18, 67, 0, 0, 24, 66, 0, 0, 19, 67, 0, 0, 24, 66, 0, 0, 20, 67, 0, 0, 24, 66, 0, 0, 21, 67, 0, 0, 24, 66, 0, 0, 22, 67, 0, 0, 24, 66, 0, 0, 23, 67, 0, 0, 24, 66, 0, 0, 24, 67, 0, 0, 24, 66, 0, 0, 25, 67, 0, 0, 24, 66, 0, 0, 26, 67, 0, 0, 24, 66, 0, 0, 27, 67, 0, 0, 24, 66, 0, 0, 28, 67, 0, 0, 24, 66, 0, 0, 29, 67, 0, 0, 24, 66, 0, 0, 30, 67, 0, 0, 24, 66, 0, 0, 31, 67, 0, 0, 24, 66, 0, 0, 32, 67, 0, 0, 24, 66, 0, 0, 33, 67, 0, 0, 24, 66, 0, 0, 34, 67, 0, 0, 24, 66, 0, 0, 35, 67, 0, 0, 24, 66, 0, 0, 36, 67, 0, 0, 24, 66, 0, 0, 37, 67, 0, 0, 24, 66, 0, 0, 38, 67, 0, 0, 24, 66, 0, 0, 39, 67, 0, 0, 24, 66, 0, 0, 40, 67, 0, 0, 24, 66, 0, 0, 41, 67, 0, 0, 24, 66, 0, 0, 42, 67, 0, 0, 24, 66, 0, 0, 43, 67, 0, 0, 24, 66, 0, 0, 44, 67, 0, 0, 24, 66, 0, 0, 45, 67, 0, 0, 24, 66, 0, 0, 46, 67, 0, 0, 24, 66, 0, 0, 47, 67, 0, 0, 24, 66, 0, 0, 48, 67, 0, 0, 24, 66, 0, 0, 49, 67, 0, 0, 24, 66, 0, 0, 50, 67, 0, 0, 24, 66, 0, 0, 51, 67, 0, 0, 24, 66, 0, 0, 52, 67, 0, 0, 24, 66, 0, 0, 53, 67, 0, 0, 24, 66, 0, 0, 54, 67, 0, 0, 24, 66, 0, 0, 55, 67, 0, 0, 28, 66, 0, 0, 184, 66, 0, 0, 28, 66, 0, 0, 186, 66, 0, 0, 28, 66, 0, 0, 188, 66, 0, 0, 28, 66, 0, 0, 190, 66, 0, 0, 28, 66, 0, 0, 192, 66, 0, 0, 28, 66, 0, 0, 194, 66, 0, 0, 28, 66, 0, 0, 196, 66, 0, 0, 28, 66, 0, 0, 198, 66, 0, 0, 28, 66, 0, 0, 200, 66, 0, 0, 28, 66, 0, 0, 202, 66, 0, 0, 28, 66, 0, 0, 204, 66, 0, 0, 28, 66, 0, 0, 206, 66, 0, 0, 28, 66, 0, 0, 208, 66, 0, 0, 28, 66, 0, 0, 210, 66, 0, 0, 28, 66, 0, 0, 212, 66, 0, 0, 28, 66, 0, 0, 214, 66, 0, 0, 28, 66, 0, 0, 216, 66, 0, 0, 28, 66, 0, 0, 218, 66, 0, 0, 28, 66, 0, 0, 220, 66, 0, 0, 28, 66, 0, 0, 222, 66, 0, 0, 28, 66, 0, 0, 224, 66, 0, 0, 28, 66, 0, 0, 226, 66, 0, 0, 28, 66, 0, 0, 228, 66, 0, 0, 28, 66, 0, 0, 230, 66, 0, 0, 28, 66, 0, 0, 232, 66, 0, 0, 28, 66, 0, 0, 234, 66, 0, 0, 28, 66, 0, 0, 236, 66, 0, 0, 28, 66, 0, 0, 238, 66, 0, 0, 28, 66, 0, 0, 240, 66, 0, 0, 28, 66, 0, 0, 242, 66, 0, 0, 28, 66, 0, 0, 244, 66, 0, 0, 28, 66, 0, 0, 246, 66, 0, 0, 28, 66, 0, 0, 248, 66, 0, 0, 28, 66, 0, 0, 250, 66, 0, 0, 28, 66, 0, 0, 252, 66, 0, 0, 28, 66, 0, 0, 254, 66, 0, 0, 28, 66, 0, 0, 0, 67, 0, 0, 28, 66, 0, 0, 1, 67, 0, 0, 28, 66, 0, 0, 2, 67, 0, 0, 28, 66, 0, 0, 3, 67, 0, 0, 28, 66, 0, 0, 4, 67, 0, 0, 28, 66, 0, 0, 5, 67, 0, 0, 28, 66, 0, 0, 6, 67, 0, 0, 28, 66, 0, 0, 7, 67, 0, 0, 28, 66, 0, 0, 8, 67, 0, 0, 28, 66, 0, 0, 9, 67, 0, 0, 28, 66, 0, 0, 10, 67, 0, 0, 28, 66, 0, 0, 11, 67, 0, 0, 28, 66, 0, 0, 12, 67, 0, 0, 28, 66, 0, 0, 13, 67, 0, 0, 28, 66, 0, 0, 14, 67, 0, 0, 28, 66, 0, 0, 15, 67, 0, 0, 28, 66, 0, 0, 16, 67, 0, 0, 28, 66, 0, 0, 17, 67, 0, 0, 28, 66, 0, 0, 18, 67, 0, 0, 28, 66, 0, 0, 19, 67, 0, 0, 28, 66, 0, 0, 20, 67, 0, 0, 28, 66, 0, 0, 21, 67, 0, 0, 28, 66, 0, 0, 22, 67, 0, 0, 28, 66, 0, 0, 23, 67, 0, 0, 28, 66, 0, 0, 24, 67, 0, 0, 28, 66, 0, 0, 25, 67, 0, 0, 28, 66, 0, 0, 26, 67, 0, 0, 28, 66, 0, 0, 27, 67, 0, 0, 28, 66, 0, 0, 28, 67, 0, 0, 28, 66, 0, 0, 29, 67, 0, 0, 28, 66, 0, 0, 30, 67, 0, 0, 28, 66, 0, 0, 31, 67, 0, 0, 28, 66, 0, 0, 32, 67, 0, 0, 28, 66, 0, 0, 33, 67, 0, 0, 28, 66, 0, 0, 34, 67, 0, 0, 28, 66, 0, 0, 35, 67, 0, 0, 28, 66, 0, 0, 36, 67, 0, 0, 28, 66, 0, 0, 37, 67, 0, 0, 28, 66, 0, 0, 38, 67, 0, 0, 28, 66, 0, 0, 39, 67, 0, 0, 28, 66, 0, 0, 40, 67, 0, 0, 28, 66, 0, 0, 41, 67, 0, 0, 28, 66, 0, 0, 42, 67, 0, 0, 28, 66, 0, 0, 43, 67, 0, 0, 28, 66, 0, 0, 44, 67, 0, 0, 28, 66, 0, 0, 45, 67, 0, 0, 28, 66, 0, 0, 46, 67, 0, 0, 28, 66, 0, 0, 47, 67, 0, 0, 28, 66, 0, 0, 48, 67, 0, 0, 28, 66, 0, 0, 49, 67, 0, 0, 28, 66, 0, 0, 50, 67, 0, 0, 28, 66, 0, 0, 51, 67, 0, 0, 28, 66, 0, 0, 52, 67, 0, 0, 28, 66, 0, 0, 53, 67, 0, 0, 28, 66, 0, 0, 54, 67, 0, 0, 28, 66, 0, 0, 55, 67, 0, 0, 32, 66, 0, 0, 184, 66, 0, 0, 32, 66, 0, 0, 186, 66, 0, 0, 32, 66, 0, 0, 188, 66, 0, 0, 32, 66, 0, 0, 190, 66, 0, 0, 32, 66, 0, 0, 192, 66, 0, 0, 32, 66, 0, 0, 194, 66, 0, 0, 32, 66, 0, 0, 196, 66, 0, 0, 32, 66, 0, 0, 198, 66, 0, 0, 32, 66, 0, 0, 200, 66, 0, 0, 32, 66, 0, 0, 202, 66, 0, 0, 32, 66, 0, 0, 204, 66, 0, 0, 32, 66, 0, 0, 206, 66, 0, 0, 32, 66, 0, 0, 208, 66, 0, 0, 32, 66, 0, 0, 210, 66, 0, 0, 32, 66, 0, 0, 212, 66, 0, 0, 32, 66, 0, 0, 214, 66, 0, 0, 32, 66, 0, 0, 216, 66, 0, 0, 32, 66, 0, 0, 218, 66, 0, 0, 32, 66, 0, 0, 220, 66, 0, 0, 32, 66, 0, 0, 222, 66, 0, 0, 32, 66, 0, 0, 224, 66, 0, 0, 32, 66, 0, 0, 226, 66, 0, 0, 32, 66, 0, 0, 228, 66, 0, 0, 32, 66, 0, 0, 230, 66, 0, 0, 32, 66, 0, 0, 232, 66, 0, 0, 32, 66, 0, 0, 234, 66, 0, 0, 32, 66, 0, 0, 236, 66, 0, 0, 32, 66, 0, 0, 238, 66, 0, 0, 32, 66, 0, 0, 240, 66, 0, 0, 32, 66, 0, 0, 242, 66, 0, 0, 32, 66, 0, 0, 244, 66, 0, 0, 32, 66, 0, 0, 246, 66, 0, 0, 32, 66, 0, 0, 248, 66, 0, 0, 32, 66, 0, 0, 250, 66, 0, 0, 32, 66, 0, 0, 252, 66, 0, 0, 32, 66, 0, 0, 254, 66, 0, 0, 32, 66, 0, 0, 0, 67, 0, 0, 32, 66, 0, 0, 1, 67, 0, 0, 32, 66, 0, 0, 2, 67, 0, 0, 32, 66, 0, 0, 3, 67, 0, 0, 32, 66, 0, 0, 4, 67, 0, 0, 32, 66, 0, 0, 5, 67, 0, 0, 32, 66, 0, 0, 6, 67, 0, 0, 32, 66, 0, 0, 7, 67, 0, 0, 32, 66, 0, 0, 8, 67, 0, 0, 32, 66, 0, 0, 9, 67, 0, 0, 32, 66, 0, 0, 10, 67, 0, 0, 32, 66, 0, 0, 11, 67, 0, 0, 32, 66, 0, 0, 12, 67, 0, 0, 32, 66, 0, 0, 13, 67, 0, 0, 32, 66, 0, 0, 14, 67, 0, 0, 32, 66, 0, 0, 15, 67, 0, 0, 32, 66, 0, 0, 16, 67, 0, 0, 32, 66, 0, 0, 17, 67, 0, 0, 32, 66, 0, 0, 18, 67, 0, 0, 32, 66, 0, 0, 19, 67, 0, 0, 32, 66, 0, 0, 20, 67, 0, 0, 32, 66, 0, 0, 21, 67, 0, 0, 32, 66, 0, 0, 22, 67, 0, 0, 32, 66, 0, 0, 23, 67, 0, 0, 32, 66, 0, 0, 24, 67, 0, 0, 32, 66, 0, 0, 25, 67, 0, 0, 32, 66, 0, 0, 26, 67, 0, 0, 32, 66, 0, 0, 27, 67, 0, 0, 32, 66, 0, 0, 28, 67, 0, 0, 32, 66, 0, 0, 29, 67, 0, 0, 32, 66, 0, 0, 30, 67, 0, 0, 32, 66, 0, 0, 31, 67, 0, 0, 32, 66, 0, 0, 32, 67, 0, 0, 32, 66, 0, 0, 33, 67, 0, 0, 32, 66, 0, 0, 34, 67, 0, 0, 32, 66, 0, 0, 35, 67, 0, 0, 32, 66, 0, 0, 36, 67, 0, 0, 32, 66, 0, 0, 37, 67, 0, 0, 32, 66, 0, 0, 38, 67, 0, 0, 32, 66, 0, 0, 39, 67, 0, 0, 32, 66, 0, 0, 40, 67, 0, 0, 32, 66, 0, 0, 41, 67, 0, 0, 32, 66, 0, 0, 42, 67, 0, 0, 32, 66, 0, 0, 43, 67, 0, 0, 32, 66, 0, 0, 44, 67, 0, 0, 32, 66, 0, 0, 45, 67, 0, 0, 32, 66, 0, 0, 46, 67, 0, 0, 32, 66, 0, 0, 47, 67, 0, 0, 32, 66, 0, 0, 48, 67, 0, 0, 32, 66, 0, 0, 49, 67, 0, 0, 32, 66, 0, 0, 50, 67, 0, 0, 32, 66, 0, 0, 51, 67, 0, 0, 32, 66, 0, 0, 52, 67, 0, 0, 32, 66, 0, 0, 53, 67, 0, 0, 32, 66, 0, 0, 54, 67, 0, 0, 32, 66, 0, 0, 55, 67, 0, 0, 36, 66, 0, 0, 184, 66, 0, 0, 36, 66, 0, 0, 186, 66, 0, 0, 36, 66, 0, 0, 188, 66, 0, 0, 36, 66, 0, 0, 190, 66, 0, 0, 36, 66, 0, 0, 192, 66, 0, 0, 36, 66, 0, 0, 194, 66, 0, 0, 36, 66, 0, 0, 196, 66, 0, 0, 36, 66, 0, 0, 198, 66, 0, 0, 36, 66, 0, 0, 200, 66, 0, 0, 36, 66, 0, 0, 202, 66, 0, 0, 36, 66, 0, 0, 204, 66, 0, 0, 36, 66, 0, 0, 206, 66, 0, 0, 36, 66, 0, 0, 208, 66, 0, 0, 36, 66, 0, 0, 210, 66, 0, 0, 36, 66, 0, 0, 212, 66, 0, 0, 36, 66, 0, 0, 214, 66, 0, 0, 36, 66, 0, 0, 216, 66, 0, 0, 36, 66, 0, 0, 218, 66, 0, 0, 36, 66, 0, 0, 220, 66, 0, 0, 36, 66, 0, 0, 222, 66, 0, 0, 36, 66, 0, 0, 224, 66, 0, 0, 36, 66, 0, 0, 226, 66, 0, 0, 36, 66, 0, 0, 228, 66, 0, 0, 36, 66, 0, 0, 230, 66, 0, 0, 36, 66, 0, 0, 232, 66, 0, 0, 36, 66, 0, 0, 234, 66, 0, 0, 36, 66, 0, 0, 236, 66, 0, 0, 36, 66, 0, 0, 238, 66, 0, 0, 36, 66, 0, 0, 240, 66, 0, 0, 36, 66, 0, 0, 242, 66, 0, 0, 36, 66, 0, 0, 244, 66, 0, 0, 36, 66, 0, 0, 246, 66, 0, 0, 36, 66, 0, 0, 248, 66, 0, 0, 36, 66, 0, 0, 250, 66, 0, 0, 36, 66, 0, 0, 252, 66, 0, 0, 36, 66, 0, 0, 254, 66, 0, 0, 36, 66, 0, 0, 0, 67, 0, 0, 36, 66, 0, 0, 1, 67, 0, 0, 36, 66, 0, 0, 2, 67, 0, 0, 36, 66, 0, 0, 3, 67, 0, 0, 36, 66, 0, 0, 4, 67, 0, 0, 36, 66, 0, 0, 5, 67, 0, 0, 36, 66, 0, 0, 6, 67, 0, 0, 36, 66, 0, 0, 7, 67, 0, 0, 36, 66, 0, 0, 8, 67, 0, 0, 36, 66, 0, 0, 9, 67, 0, 0, 36, 66, 0, 0, 10, 67, 0, 0, 36, 66, 0, 0, 11, 67, 0, 0, 36, 66, 0, 0, 12, 67, 0, 0, 36, 66, 0, 0, 13, 67, 0, 0, 36, 66, 0, 0, 14, 67, 0, 0, 36, 66, 0, 0, 15, 67, 0, 0, 36, 66, 0, 0, 16, 67, 0, 0, 36, 66, 0, 0, 17, 67, 0, 0, 36, 66, 0, 0, 18, 67, 0, 0, 36, 66, 0, 0, 19, 67, 0, 0, 36, 66, 0, 0, 20, 67, 0, 0, 36, 66, 0, 0, 21, 67, 0, 0, 36, 66, 0, 0, 22, 67, 0, 0, 36, 66, 0, 0, 23, 67, 0, 0, 36, 66, 0, 0, 24, 67, 0, 0, 36, 66, 0, 0, 25, 67, 0, 0, 36, 66, 0, 0, 26, 67, 0, 0, 36, 66, 0, 0, 27, 67, 0, 0, 36, 66, 0, 0, 28, 67, 0, 0, 36, 66, 0, 0, 29, 67, 0, 0, 36, 66, 0, 0, 30, 67, 0, 0, 36, 66, 0, 0, 31, 67, 0, 0, 36, 66, 0, 0, 32, 67, 0, 0, 36, 66, 0, 0, 33, 67, 0, 0, 36, 66, 0, 0, 34, 67, 0, 0, 36, 66, 0, 0, 35, 67, 0, 0, 36, 66, 0, 0, 36, 67, 0, 0, 36, 66, 0, 0, 37, 67, 0, 0, 36, 66, 0, 0, 38, 67, 0, 0, 36, 66, 0, 0, 39, 67, 0, 0, 36, 66, 0, 0, 40, 67, 0, 0, 36, 66, 0, 0, 41, 67, 0, 0, 36, 66, 0, 0, 42, 67, 0, 0, 36, 66, 0, 0, 43, 67, 0, 0, 36, 66, 0, 0, 44, 67, 0, 0, 36, 66, 0, 0, 45, 67, 0, 0, 36, 66, 0, 0, 46, 67, 0, 0, 36, 66, 0, 0, 47, 67, 0, 0, 36, 66, 0, 0, 48, 67, 0, 0, 36, 66, 0, 0, 49, 67, 0, 0, 36, 66, 0, 0, 50, 67, 0, 0, 36, 66, 0, 0, 51, 67, 0, 0, 36, 66, 0, 0, 52, 67, 0, 0, 36, 66, 0, 0, 53, 67, 0, 0, 36, 66, 0, 0, 54, 67, 0, 0, 36, 66, 0, 0, 55, 67, 0, 0, 40, 66, 0, 0, 184, 66, 0, 0, 40, 66, 0, 0, 186, 66, 0, 0, 40, 66, 0, 0, 188, 66, 0, 0, 40, 66, 0, 0, 190, 66, 0, 0, 40, 66, 0, 0, 192, 66, 0, 0, 40, 66, 0, 0, 194, 66, 0, 0, 40, 66, 0, 0, 196, 66, 0, 0, 40, 66, 0, 0, 198, 66, 0, 0, 40, 66, 0, 0, 200, 66, 0, 0, 40, 66, 0, 0, 202, 66, 0, 0, 40, 66, 0, 0, 204, 66, 0, 0, 40, 66, 0, 0, 206, 66, 0, 0, 40, 66, 0, 0, 208, 66, 0, 0, 40, 66, 0, 0, 210, 66, 0, 0, 40, 66, 0, 0, 212, 66, 0, 0, 40, 66, 0, 0, 214, 66, 0, 0, 40, 66, 0, 0, 216, 66, 0, 0, 40, 66, 0, 0, 218, 66, 0, 0, 40, 66, 0, 0, 220, 66, 0, 0, 40, 66, 0, 0, 222, 66, 0, 0, 40, 66, 0, 0, 224, 66, 0, 0, 40, 66, 0, 0, 226, 66, 0, 0, 40, 66, 0, 0, 228, 66, 0, 0, 40, 66, 0, 0, 230, 66, 0, 0, 40, 66, 0, 0, 232, 66, 0, 0, 40, 66, 0, 0, 234, 66, 0, 0, 40, 66, 0, 0, 236, 66, 0, 0, 40, 66, 0, 0, 238, 66, 0, 0, 40, 66, 0, 0, 240, 66, 0, 0, 40, 66, 0, 0, 242, 66, 0, 0, 40, 66, 0, 0, 244, 66, 0, 0, 40, 66, 0, 0, 246, 66, 0, 0, 40, 66, 0, 0, 248, 66, 0, 0, 40, 66, 0, 0, 250, 66, 0, 0, 40, 66, 0, 0, 252, 66, 0, 0, 40, 66, 0, 0, 254, 66, 0, 0, 40, 66, 0, 0, 0, 67, 0, 0, 40, 66, 0, 0, 1, 67, 0, 0, 40, 66, 0, 0, 2, 67, 0, 0, 40, 66, 0, 0, 3, 67, 0, 0, 40, 66, 0, 0, 4, 67, 0, 0, 40, 66, 0, 0, 5, 67, 0, 0, 40, 66, 0, 0, 6, 67, 0, 0, 40, 66, 0, 0, 7, 67, 0, 0, 40, 66, 0, 0, 8, 67, 0, 0, 40, 66, 0, 0, 9, 67, 0, 0, 40, 66, 0, 0, 10, 67, 0, 0, 40, 66, 0, 0, 11, 67, 0, 0, 40, 66, 0, 0, 12, 67, 0, 0, 40, 66, 0, 0, 13, 67, 0, 0, 40, 66, 0, 0, 14, 67, 0, 0, 40, 66, 0, 0, 15, 67, 0, 0, 40, 66, 0, 0, 16, 67, 0, 0, 40, 66, 0, 0, 17, 67, 0, 0, 40, 66, 0, 0, 18, 67, 0, 0, 40, 66, 0, 0, 19, 67, 0, 0, 40, 66, 0, 0, 20, 67, 0, 0, 40, 66, 0, 0, 21, 67, 0, 0, 40, 66, 0, 0, 22, 67, 0, 0, 40, 66, 0, 0, 23, 67, 0, 0, 40, 66, 0, 0, 24, 67, 0, 0, 40, 66, 0, 0, 25, 67, 0, 0, 40, 66, 0, 0, 26, 67, 0, 0, 40, 66, 0, 0, 27, 67, 0, 0, 40, 66, 0, 0, 28, 67, 0, 0, 40, 66, 0, 0, 29, 67, 0, 0, 40, 66, 0, 0, 30, 67, 0, 0, 40, 66, 0, 0, 31, 67, 0, 0, 40, 66, 0, 0, 32, 67, 0, 0, 40, 66, 0, 0, 33, 67, 0, 0, 40, 66, 0, 0, 34, 67, 0, 0, 40, 66, 0, 0, 35, 67, 0, 0, 40, 66, 0, 0, 36, 67, 0, 0, 40, 66, 0, 0, 37, 67, 0, 0, 40, 66, 0, 0, 38, 67, 0, 0, 40, 66, 0, 0, 39, 67, 0, 0, 40, 66, 0, 0, 40, 67, 0, 0, 40, 66, 0, 0, 41, 67, 0, 0, 40, 66, 0, 0, 42, 67, 0, 0, 40, 66, 0, 0, 43, 67, 0, 0, 40, 66, 0, 0, 44, 67, 0, 0, 40, 66, 0, 0, 45, 67, 0, 0, 40, 66, 0, 0, 46, 67, 0, 0, 40, 66, 0, 0, 47, 67, 0, 0, 40, 66, 0, 0, 48, 67, 0, 0, 40, 66, 0, 0, 49, 67, 0, 0, 40, 66, 0, 0, 50, 67, 0, 0, 40, 66, 0, 0, 51, 67, 0, 0, 40, 66, 0, 0, 52, 67, 0, 0, 40, 66, 0, 0, 53, 67, 0, 0, 40, 66, 0, 0, 54, 67, 0, 0, 40, 66, 0, 0, 55, 67, 0, 0, 44, 66, 0, 0, 184, 66, 0, 0, 44, 66, 0, 0, 186, 66, 0, 0, 44, 66, 0, 0, 188, 66, 0, 0, 44, 66, 0, 0, 190, 66, 0, 0, 44, 66, 0, 0, 192, 66, 0, 0, 44, 66, 0, 0, 194, 66, 0, 0, 44, 66, 0, 0, 196, 66, 0, 0, 44, 66, 0, 0, 198, 66, 0, 0, 44, 66, 0, 0, 200, 66, 0, 0, 44, 66, 0, 0, 202, 66, 0, 0, 44, 66, 0, 0, 204, 66, 0, 0, 44, 66, 0, 0, 206, 66, 0, 0, 44, 66, 0, 0, 208, 66, 0, 0, 44, 66, 0, 0, 210, 66, 0, 0, 44, 66, 0, 0, 212, 66, 0, 0, 44, 66, 0, 0, 214, 66, 0, 0, 44, 66, 0, 0, 216, 66, 0, 0, 44, 66, 0, 0, 218, 66, 0, 0, 44, 66, 0, 0, 220, 66, 0, 0, 44, 66, 0, 0, 222, 66, 0, 0, 44, 66, 0, 0, 224, 66, 0, 0, 44, 66, 0, 0, 226, 66, 0, 0, 44, 66, 0, 0, 228, 66, 0, 0, 44, 66, 0, 0, 230, 66, 0, 0, 44, 66, 0, 0, 232, 66, 0, 0, 44, 66, 0, 0, 234, 66, 0, 0, 44, 66, 0, 0, 236, 66, 0, 0, 44, 66, 0, 0, 238, 66, 0, 0, 44, 66, 0, 0, 240, 66, 0, 0, 44, 66, 0, 0, 242, 66, 0, 0, 44, 66, 0, 0, 244, 66, 0, 0, 44, 66, 0, 0, 246, 66, 0, 0, 44, 66, 0, 0, 248, 66, 0, 0, 44, 66, 0, 0, 250, 66, 0, 0, 44, 66, 0, 0, 252, 66, 0, 0, 44, 66, 0, 0, 254, 66, 0, 0, 44, 66, 0, 0, 0, 67, 0, 0, 44, 66, 0, 0, 1, 67, 0, 0, 44, 66, 0, 0, 2, 67, 0, 0, 44, 66, 0, 0, 3, 67, 0, 0, 44, 66, 0, 0, 4, 67, 0, 0, 44, 66, 0, 0, 5, 67, 0, 0, 44, 66, 0, 0, 6, 67, 0, 0, 44, 66, 0, 0, 7, 67, 0, 0, 44, 66, 0, 0, 8, 67, 0, 0, 44, 66, 0, 0, 9, 67, 0, 0, 44, 66, 0, 0, 10, 67, 0, 0, 44, 66, 0, 0, 11, 67, 0, 0, 44, 66, 0, 0, 12, 67, 0, 0, 44, 66, 0, 0, 13, 67, 0, 0, 44, 66, 0, 0, 14, 67, 0, 0, 44, 66, 0, 0, 15, 67, 0, 0, 44, 66, 0, 0, 16, 67, 0, 0, 44, 66, 0, 0, 17, 67, 0, 0, 44, 66, 0, 0, 18, 67, 0, 0, 44, 66, 0, 0, 19, 67, 0, 0, 44, 66, 0, 0, 20, 67, 0, 0, 44, 66, 0, 0, 21, 67, 0, 0, 44, 66, 0, 0, 22, 67, 0, 0, 44, 66, 0, 0, 23, 67, 0, 0, 44, 66, 0, 0, 24, 67, 0, 0, 44, 66, 0, 0, 25, 67, 0, 0, 44, 66, 0, 0, 26, 67, 0, 0, 44, 66, 0, 0, 27, 67, 0, 0, 44, 66, 0, 0, 28, 67, 0, 0, 44, 66, 0, 0, 29, 67, 0, 0, 44, 66, 0, 0, 30, 67, 0, 0, 44, 66, 0, 0, 31, 67, 0, 0, 44, 66, 0, 0, 32, 67, 0, 0, 44, 66, 0, 0, 33, 67, 0, 0, 44, 66, 0, 0, 34, 67, 0, 0, 44, 66, 0, 0, 35, 67, 0, 0, 44, 66, 0, 0, 36, 67, 0, 0, 44, 66, 0, 0, 37, 67, 0, 0, 44, 66, 0, 0, 38, 67, 0, 0, 44, 66, 0, 0, 39, 67, 0, 0, 44, 66, 0, 0, 40, 67, 0, 0, 44, 66, 0, 0, 41, 67, 0, 0, 44, 66, 0, 0, 42, 67, 0, 0, 44, 66, 0, 0, 43, 67, 0, 0, 44, 66, 0, 0, 44, 67, 0, 0, 44, 66, 0, 0, 45, 67, 0, 0, 44, 66, 0, 0, 46, 67, 0, 0, 44, 66, 0, 0, 47, 67, 0, 0, 44, 66, 0, 0, 48, 67, 0, 0, 44, 66, 0, 0, 49, 67, 0, 0, 44, 66, 0, 0, 50, 67, 0, 0, 44, 66, 0, 0, 51, 67, 0, 0, 44, 66, 0, 0, 52, 67, 0, 0, 44, 66, 0, 0, 53, 67, 0, 0, 44, 66, 0, 0, 54, 67, 0, 0, 44, 66, 0, 0, 55, 67, 0, 0, 48, 66, 0, 0, 184, 66, 0, 0, 48, 66, 0, 0, 186, 66, 0, 0, 48, 66, 0, 0, 188, 66, 0, 0, 48, 66, 0, 0, 190, 66, 0, 0, 48, 66, 0, 0, 192, 66, 0, 0, 48, 66, 0, 0, 194, 66, 0, 0, 48, 66, 0, 0, 196, 66, 0, 0, 48, 66, 0, 0, 198, 66, 0, 0, 48, 66, 0, 0, 200, 66, 0, 0, 48, 66, 0, 0, 202, 66, 0, 0, 48, 66, 0, 0, 204, 66, 0, 0, 48, 66, 0, 0, 206, 66, 0, 0, 48, 66, 0, 0, 208, 66, 0, 0, 48, 66, 0, 0, 210, 66, 0, 0, 48, 66, 0, 0, 212, 66, 0, 0, 48, 66, 0, 0, 214, 66, 0, 0, 48, 66, 0, 0, 216, 66, 0, 0, 48, 66, 0, 0, 218, 66, 0, 0, 48, 66, 0, 0, 220, 66, 0, 0, 48, 66, 0, 0, 222, 66, 0, 0, 48, 66, 0, 0, 224, 66, 0, 0, 48, 66, 0, 0, 226, 66, 0, 0, 48, 66, 0, 0, 228, 66, 0, 0, 48, 66, 0, 0, 230, 66, 0, 0, 48, 66, 0, 0, 232, 66, 0, 0, 48, 66, 0, 0, 234, 66, 0, 0, 48, 66, 0, 0, 236, 66, 0, 0, 48, 66, 0, 0, 238, 66, 0, 0, 48, 66, 0, 0, 240, 66, 0, 0, 48, 66, 0, 0, 242, 66, 0, 0, 48, 66, 0, 0, 244, 66, 0, 0, 48, 66, 0, 0, 246, 66, 0, 0, 48, 66, 0, 0, 248, 66, 0, 0, 48, 66, 0, 0, 250, 66, 0, 0, 48, 66, 0, 0, 252, 66, 0, 0, 48, 66, 0, 0, 254, 66, 0, 0, 48, 66, 0, 0, 0, 67, 0, 0, 48, 66, 0, 0, 1, 67, 0, 0, 48, 66, 0, 0, 2, 67, 0, 0, 48, 66, 0, 0, 3, 67, 0, 0, 48, 66, 0, 0, 4, 67, 0, 0, 48, 66, 0, 0, 5, 67, 0, 0, 48, 66, 0, 0, 6, 67, 0, 0, 48, 66, 0, 0, 7, 67, 0, 0, 48, 66, 0, 0, 8, 67, 0, 0, 48, 66, 0, 0, 9, 67, 0, 0, 48, 66, 0, 0, 10, 67, 0, 0, 48, 66, 0, 0, 11, 67, 0, 0, 48, 66, 0, 0, 12, 67, 0, 0, 48, 66, 0, 0, 13, 67, 0, 0, 48, 66, 0, 0, 14, 67, 0, 0, 48, 66, 0, 0, 15, 67, 0, 0, 48, 66, 0, 0, 16, 67, 0, 0, 48, 66, 0, 0, 17, 67, 0, 0, 48, 66, 0, 0, 18, 67, 0, 0, 48, 66, 0, 0, 19, 67, 0, 0, 48, 66, 0, 0, 20, 67, 0, 0, 48, 66, 0, 0, 21, 67, 0, 0, 48, 66, 0, 0, 22, 67, 0, 0, 48, 66, 0, 0, 23, 67, 0, 0, 48, 66, 0, 0, 24, 67, 0, 0, 48, 66, 0, 0, 25, 67, 0, 0, 48, 66, 0, 0, 26, 67, 0, 0, 48, 66, 0, 0, 27, 67, 0, 0, 48, 66, 0, 0, 28, 67, 0, 0, 48, 66, 0, 0, 29, 67, 0, 0, 48, 66, 0, 0, 30, 67, 0, 0, 48, 66, 0, 0, 31, 67, 0, 0, 48, 66, 0, 0, 32, 67, 0, 0, 48, 66, 0, 0, 33, 67, 0, 0, 48, 66, 0, 0, 34, 67, 0, 0, 48, 66, 0, 0, 35, 67, 0, 0, 48, 66, 0, 0, 36, 67, 0, 0, 48, 66, 0, 0, 37, 67, 0, 0, 48, 66, 0, 0, 38, 67, 0, 0, 48, 66, 0, 0, 39, 67, 0, 0, 48, 66, 0, 0, 40, 67, 0, 0, 48, 66, 0, 0, 41, 67, 0, 0, 48, 66, 0, 0, 42, 67, 0, 0, 48, 66, 0, 0, 43, 67, 0, 0, 48, 66, 0, 0, 44, 67, 0, 0, 48, 66, 0, 0, 45, 67, 0, 0, 48, 66, 0, 0, 46, 67, 0, 0, 48, 66, 0, 0, 47, 67, 0, 0, 48, 66, 0, 0, 48, 67, 0, 0, 48, 66, 0, 0, 49, 67, 0, 0, 48, 66, 0, 0, 50, 67, 0, 0, 48, 66, 0, 0, 51, 67, 0, 0, 48, 66, 0, 0, 52, 67, 0, 0, 48, 66, 0, 0, 53, 67, 0, 0, 48, 66, 0, 0, 54, 67, 0, 0, 48, 66, 0, 0, 55, 67, 0, 0, 52, 66, 0, 0, 184, 66, 0, 0, 52, 66, 0, 0, 186, 66, 0, 0, 52, 66, 0, 0, 188, 66, 0, 0, 52, 66, 0, 0, 190, 66, 0, 0, 52, 66, 0, 0, 192, 66, 0, 0, 52, 66, 0, 0, 194, 66, 0, 0, 52, 66, 0, 0, 196, 66, 0, 0, 52, 66, 0, 0, 198, 66, 0, 0, 52, 66, 0, 0, 200, 66, 0, 0, 52, 66, 0, 0, 202, 66, 0, 0, 52, 66, 0, 0, 204, 66, 0, 0, 52, 66, 0, 0, 206, 66, 0, 0, 52, 66, 0, 0, 208, 66, 0, 0, 52, 66, 0, 0, 210, 66, 0, 0, 52, 66, 0, 0, 212, 66, 0, 0, 52, 66, 0, 0, 214, 66, 0, 0, 52, 66, 0, 0, 216, 66, 0, 0, 52, 66, 0, 0, 218, 66, 0, 0, 52, 66, 0, 0, 220, 66, 0, 0, 52, 66, 0, 0, 222, 66, 0, 0, 52, 66, 0, 0, 224, 66, 0, 0, 52, 66, 0, 0, 226, 66, 0, 0, 52, 66, 0, 0, 228, 66, 0, 0, 52, 66, 0, 0, 230, 66, 0, 0, 52, 66, 0, 0, 232, 66, 0, 0, 52, 66, 0, 0, 234, 66, 0, 0, 52, 66, 0, 0, 236, 66, 0, 0, 52, 66, 0, 0, 238, 66, 0, 0, 52, 66, 0, 0, 240, 66, 0, 0, 52, 66, 0, 0, 242, 66, 0, 0, 52, 66, 0, 0, 244, 66, 0, 0, 52, 66, 0, 0, 246, 66, 0, 0, 52, 66, 0, 0, 248, 66, 0, 0, 52, 66, 0, 0, 250, 66, 0, 0, 52, 66, 0, 0, 252, 66, 0, 0, 52, 66, 0, 0, 254, 66, 0, 0, 52, 66, 0, 0, 0, 67, 0, 0, 52, 66, 0, 0, 1, 67, 0, 0, 52, 66, 0, 0, 2, 67, 0, 0, 52, 66, 0, 0, 3, 67, 0, 0, 52, 66, 0, 0, 4, 67, 0, 0, 52, 66, 0, 0, 5, 67, 0, 0, 52, 66, 0, 0, 6, 67, 0, 0, 52, 66, 0, 0, 7, 67, 0, 0, 52, 66, 0, 0, 8, 67, 0, 0, 52, 66, 0, 0, 9, 67, 0, 0, 52, 66, 0, 0, 10, 67, 0, 0, 52, 66, 0, 0, 11, 67, 0, 0, 52, 66, 0, 0, 12, 67, 0, 0, 52, 66, 0, 0, 13, 67, 0, 0, 52, 66, 0, 0, 14, 67, 0, 0, 52, 66, 0, 0, 15, 67, 0, 0, 52, 66, 0, 0, 16, 67, 0, 0, 52, 66, 0, 0, 17, 67, 0, 0, 52, 66, 0, 0, 18, 67, 0, 0, 52, 66, 0, 0, 19, 67, 0, 0, 52, 66, 0, 0, 20, 67, 0, 0, 52, 66, 0, 0, 21, 67, 0, 0, 52, 66, 0, 0, 22, 67, 0, 0, 52, 66, 0, 0, 23, 67, 0, 0, 52, 66, 0, 0, 24, 67, 0, 0, 52, 66, 0, 0, 25, 67, 0, 0, 52, 66, 0, 0, 26, 67, 0, 0, 52, 66, 0, 0, 27, 67, 0, 0, 52, 66, 0, 0, 28, 67, 0, 0, 52, 66, 0, 0, 29, 67, 0, 0, 52, 66, 0, 0, 30, 67, 0, 0, 52, 66, 0, 0, 31, 67, 0, 0, 52, 66, 0, 0, 32, 67, 0, 0, 52, 66, 0, 0, 33, 67, 0, 0, 52, 66, 0, 0, 34, 67, 0, 0, 52, 66, 0, 0, 35, 67, 0, 0, 52, 66, 0, 0, 36, 67, 0, 0, 52, 66, 0, 0, 37, 67, 0, 0, 52, 66, 0, 0, 38, 67, 0, 0, 52, 66, 0, 0, 39, 67, 0, 0, 52, 66, 0, 0, 40, 67, 0, 0, 52, 66, 0, 0, 41, 67, 0, 0, 52, 66, 0, 0, 42, 67, 0, 0, 52, 66, 0, 0, 43, 67, 0, 0, 52, 66, 0, 0, 44, 67, 0, 0, 52, 66, 0, 0, 45, 67, 0, 0, 52, 66, 0, 0, 46, 67, 0, 0, 52, 66, 0, 0, 47, 67, 0, 0, 52, 66, 0, 0, 48, 67, 0, 0, 52, 66, 0, 0, 49, 67, 0, 0, 52, 66, 0, 0, 50, 67, 0, 0, 52, 66, 0, 0, 51, 67, 0, 0, 52, 66, 0, 0, 52, 67, 0, 0, 52, 66, 0, 0, 53, 67, 0, 0, 52, 66, 0, 0, 54, 67, 0, 0, 52, 66, 0, 0, 55, 67, 0, 0, 56, 66, 0, 0, 184, 66, 0, 0, 56, 66, 0, 0, 186, 66, 0, 0, 56, 66, 0, 0, 188, 66, 0, 0, 56, 66, 0, 0, 190, 66, 0, 0, 56, 66, 0, 0, 192, 66, 0, 0, 56, 66, 0, 0, 194, 66, 0, 0, 56, 66, 0, 0, 196, 66, 0, 0, 56, 66, 0, 0, 198, 66, 0, 0, 56, 66, 0, 0, 200, 66, 0, 0, 56, 66, 0, 0, 202, 66, 0, 0, 56, 66, 0, 0, 204, 66, 0, 0, 56, 66, 0, 0, 206, 66, 0, 0, 56, 66, 0, 0, 208, 66, 0, 0, 56, 66, 0, 0, 210, 66, 0, 0, 56, 66, 0, 0, 212, 66, 0, 0, 56, 66, 0, 0, 214, 66, 0, 0, 56, 66, 0, 0, 216, 66, 0, 0, 56, 66, 0, 0, 218, 66, 0, 0, 56, 66, 0, 0, 220, 66, 0, 0, 56, 66, 0, 0, 222, 66, 0, 0, 56, 66, 0, 0, 224, 66, 0, 0, 56, 66, 0, 0, 226, 66, 0, 0, 56, 66, 0, 0, 228, 66, 0, 0, 56, 66, 0, 0, 230, 66, 0, 0, 56, 66, 0, 0, 232, 66, 0, 0, 56, 66, 0, 0, 234, 66, 0, 0, 56, 66, 0, 0, 236, 66, 0, 0, 56, 66, 0, 0, 238, 66, 0, 0, 56, 66, 0, 0, 240, 66, 0, 0, 56, 66, 0, 0, 242, 66, 0, 0, 56, 66, 0, 0, 244, 66, 0, 0, 56, 66, 0, 0, 246, 66, 0, 0, 56, 66, 0, 0, 248, 66, 0, 0, 56, 66, 0, 0, 250, 66, 0, 0, 56, 66, 0, 0, 252, 66, 0, 0, 56, 66, 0, 0, 254, 66, 0, 0, 56, 66, 0, 0, 0, 67, 0, 0, 56, 66, 0, 0, 1, 67, 0, 0, 56, 66, 0, 0, 2, 67, 0, 0, 56, 66, 0, 0, 3, 67, 0, 0, 56, 66, 0, 0, 4, 67, 0, 0, 56, 66, 0, 0, 5, 67, 0, 0, 56, 66, 0, 0, 6, 67, 0, 0, 56, 66, 0, 0, 7, 67, 0, 0, 56, 66, 0, 0, 8, 67, 0, 0, 56, 66, 0, 0, 9, 67, 0, 0, 56, 66, 0, 0, 10, 67, 0, 0, 56, 66, 0, 0, 11, 67, 0, 0, 56, 66, 0, 0, 12, 67, 0, 0, 56, 66, 0, 0, 13, 67, 0, 0, 56, 66, 0, 0, 14, 67, 0, 0, 56, 66, 0, 0, 15, 67, 0, 0, 56, 66, 0, 0, 16, 67, 0, 0, 56, 66, 0, 0, 17, 67, 0, 0, 56, 66, 0, 0, 18, 67, 0, 0, 56, 66, 0, 0, 19, 67, 0, 0, 56, 66, 0, 0, 20, 67, 0, 0, 56, 66, 0, 0, 21, 67, 0, 0, 56, 66, 0, 0, 22, 67, 0, 0, 56, 66, 0, 0, 23, 67, 0, 0, 56, 66, 0, 0, 24, 67, 0, 0, 56, 66, 0, 0, 25, 67, 0, 0, 56, 66, 0, 0, 26, 67, 0, 0, 56, 66, 0, 0, 27, 67, 0, 0, 56, 66, 0, 0, 28, 67, 0, 0, 56, 66, 0, 0, 29, 67, 0, 0, 56, 66, 0, 0, 30, 67, 0, 0, 56, 66, 0, 0, 31, 67, 0, 0, 56, 66, 0, 0, 32, 67, 0, 0, 56, 66, 0, 0, 33, 67, 0, 0, 56, 66, 0, 0, 34, 67, 0, 0, 56, 66, 0, 0, 35, 67, 0, 0, 56, 66, 0, 0, 36, 67, 0, 0, 56, 66, 0, 0, 37, 67, 0, 0, 56, 66, 0, 0, 38, 67, 0, 0, 56, 66, 0, 0, 39, 67, 0, 0, 56, 66, 0, 0, 40, 67, 0, 0, 56, 66, 0, 0, 41, 67, 0, 0, 56, 66, 0, 0, 42, 67, 0, 0, 56, 66, 0, 0, 43, 67, 0, 0, 56, 66, 0, 0, 44, 67, 0, 0, 56, 66, 0, 0, 45, 67, 0, 0, 56, 66, 0, 0, 46, 67, 0, 0, 56, 66, 0, 0, 47, 67, 0, 0, 56, 66, 0, 0, 48, 67, 0, 0, 56, 66, 0, 0, 49, 67, 0, 0, 56, 66, 0, 0, 50, 67, 0, 0, 56, 66, 0, 0, 51, 67, 0, 0, 56, 66, 0, 0, 52, 67, 0, 0, 56, 66, 0, 0, 53, 67, 0, 0, 56, 66, 0, 0, 54, 67, 0, 0, 56, 66, 0, 0, 55, 67, 0, 0, 60, 66, 0, 0, 184, 66, 0, 0, 60, 66, 0, 0, 186, 66, 0, 0, 60, 66, 0, 0, 188, 66, 0, 0, 60, 66, 0, 0, 190, 66, 0, 0, 60, 66, 0, 0, 192, 66, 0, 0, 60, 66, 0, 0, 194, 66, 0, 0, 60, 66, 0, 0, 196, 66, 0, 0, 60, 66, 0, 0, 198, 66, 0, 0, 60, 66, 0, 0, 200, 66, 0, 0, 60, 66, 0, 0, 202, 66, 0, 0, 60, 66, 0, 0, 204, 66, 0, 0, 60, 66, 0, 0, 206, 66, 0, 0, 60, 66, 0, 0, 208, 66, 0, 0, 60, 66, 0, 0, 210, 66, 0, 0, 60, 66, 0, 0, 212, 66, 0, 0, 60, 66, 0, 0, 214, 66, 0, 0, 60, 66, 0, 0, 216, 66, 0, 0, 60, 66, 0, 0, 218, 66, 0, 0, 60, 66, 0, 0, 220, 66, 0, 0, 60, 66, 0, 0, 222, 66, 0, 0, 60, 66, 0, 0, 224, 66, 0, 0, 60, 66, 0, 0, 226, 66, 0, 0, 60, 66, 0, 0, 228, 66, 0, 0, 60, 66, 0, 0, 230, 66, 0, 0, 60, 66, 0, 0, 232, 66, 0, 0, 60, 66, 0, 0, 234, 66, 0, 0, 60, 66, 0, 0, 236, 66, 0, 0, 60, 66, 0, 0, 238, 66, 0, 0, 60, 66, 0, 0, 240, 66, 0, 0, 60, 66, 0, 0, 242, 66, 0, 0, 60, 66, 0, 0, 244, 66, 0, 0, 60, 66, 0, 0, 246, 66, 0, 0, 60, 66, 0, 0, 248, 66, 0, 0, 60, 66, 0, 0, 250, 66, 0, 0, 60, 66, 0, 0, 252, 66, 0, 0, 60, 66, 0, 0, 254, 66, 0, 0, 60, 66, 0, 0, 0, 67, 0, 0, 60, 66, 0, 0, 1, 67, 0, 0, 60, 66, 0, 0, 2, 67, 0, 0, 60, 66, 0, 0, 3, 67, 0, 0, 60, 66, 0, 0, 4, 67, 0, 0, 60, 66, 0, 0, 5, 67, 0, 0, 60, 66, 0, 0, 6, 67, 0, 0, 60, 66, 0, 0, 7, 67, 0, 0, 60, 66, 0, 0, 8, 67, 0, 0, 60, 66, 0, 0, 9, 67, 0, 0, 60, 66, 0, 0, 10, 67, 0, 0, 60, 66, 0, 0, 11, 67, 0, 0, 60, 66, 0, 0, 12, 67, 0, 0, 60, 66, 0, 0, 13, 67, 0, 0, 60, 66, 0, 0, 14, 67, 0, 0, 60, 66, 0, 0, 15, 67, 0, 0, 60, 66, 0, 0, 16, 67, 0, 0, 60, 66, 0, 0, 17, 67, 0, 0, 60, 66, 0, 0, 18, 67, 0, 0, 60, 66, 0, 0, 19, 67, 0, 0, 60, 66, 0, 0, 20, 67, 0, 0, 60, 66, 0, 0, 21, 67, 0, 0, 60, 66, 0, 0, 22, 67, 0, 0, 60, 66, 0, 0, 23, 67, 0, 0, 60, 66, 0, 0, 24, 67, 0, 0, 60, 66, 0, 0, 25, 67, 0, 0, 60, 66, 0, 0, 26, 67, 0, 0, 60, 66, 0, 0, 27, 67, 0, 0, 60, 66, 0, 0, 28, 67, 0, 0, 60, 66, 0, 0, 29, 67, 0, 0, 60, 66, 0, 0, 30, 67, 0, 0, 60, 66, 0, 0, 31, 67, 0, 0, 60, 66, 0, 0, 32, 67, 0, 0, 60, 66, 0, 0, 33, 67, 0, 0, 60, 66, 0, 0, 34, 67, 0, 0, 60, 66, 0, 0, 35, 67, 0, 0, 60, 66, 0, 0, 36, 67, 0, 0, 60, 66, 0, 0, 37, 67, 0, 0, 60, 66, 0, 0, 38, 67, 0, 0, 60, 66, 0, 0, 39, 67, 0, 0, 60, 66, 0, 0, 40, 67, 0, 0, 60, 66, 0, 0, 41, 67, 0, 0, 60, 66, 0, 0, 42, 67, 0, 0, 60, 66, 0, 0, 43, 67, 0, 0, 60, 66, 0, 0, 44, 67, 0, 0, 60, 66, 0, 0, 45, 67, 0, 0, 60, 66, 0, 0, 46, 67, 0, 0, 60, 66, 0, 0, 47, 67, 0, 0, 60, 66, 0, 0, 48, 67, 0, 0, 60, 66, 0, 0, 49, 67, 0, 0, 60, 66, 0, 0, 50, 67, 0, 0, 60, 66, 0, 0, 51, 67, 0, 0, 60, 66, 0, 0, 52, 67, 0, 0, 60, 66, 0, 0, 53, 67, 0, 0, 60, 66, 0, 0, 54, 67, 0, 0, 60, 66, 0, 0, 55, 67, 0, 0, 64, 66, 0, 0, 184, 66, 0, 0, 64, 66, 0, 0, 186, 66, 0, 0, 64, 66, 0, 0, 188, 66, 0, 0, 64, 66, 0, 0, 190, 66, 0, 0, 64, 66, 0, 0, 192, 66, 0, 0, 64, 66, 0, 0, 194, 66, 0, 0, 64, 66, 0, 0, 196, 66, 0, 0, 64, 66, 0, 0, 198, 66, 0, 0, 64, 66, 0, 0, 200, 66, 0, 0, 64, 66, 0, 0, 202, 66, 0, 0, 64, 66, 0, 0, 204, 66, 0, 0, 64, 66, 0, 0, 206, 66, 0, 0, 64, 66, 0, 0, 208, 66, 0, 0, 64, 66, 0, 0, 210, 66, 0, 0, 64, 66, 0, 0, 212, 66, 0, 0, 64, 66, 0, 0, 214, 66, 0, 0, 64, 66, 0, 0, 216, 66, 0, 0, 64, 66, 0, 0, 218, 66, 0, 0, 64, 66, 0, 0, 220, 66, 0, 0, 64, 66, 0, 0, 222, 66, 0, 0, 64, 66, 0, 0, 224, 66, 0, 0, 64, 66, 0, 0, 226, 66, 0, 0, 64, 66, 0, 0, 228, 66, 0, 0, 64, 66, 0, 0, 230, 66, 0, 0, 64, 66, 0, 0, 232, 66, 0, 0, 64, 66, 0, 0, 234, 66, 0, 0, 64, 66, 0, 0, 236, 66, 0, 0, 64, 66, 0, 0, 238, 66, 0, 0, 64, 66, 0, 0, 240, 66, 0, 0, 64, 66, 0, 0, 242, 66, 0, 0, 64, 66, 0, 0, 244, 66, 0, 0, 64, 66, 0, 0, 246, 66, 0, 0, 64, 66, 0, 0, 248, 66, 0, 0, 64, 66, 0, 0, 250, 66, 0, 0, 64, 66, 0, 0, 252, 66, 0, 0, 64, 66, 0, 0, 254, 66, 0, 0, 64, 66, 0, 0, 0, 67, 0, 0, 64, 66, 0, 0, 1, 67, 0, 0, 64, 66, 0, 0, 2, 67, 0, 0, 64, 66, 0, 0, 3, 67, 0, 0, 64, 66, 0, 0, 4, 67, 0, 0, 64, 66, 0, 0, 5, 67, 0, 0, 64, 66, 0, 0, 6, 67, 0, 0, 64, 66, 0, 0, 7, 67, 0, 0, 64, 66, 0, 0, 8, 67, 0, 0, 64, 66, 0, 0, 9, 67, 0, 0, 64, 66, 0, 0, 10, 67, 0, 0, 64, 66, 0, 0, 11, 67, 0, 0, 64, 66, 0, 0, 12, 67, 0, 0, 64, 66, 0, 0, 13, 67, 0, 0, 64, 66, 0, 0, 14, 67, 0, 0, 64, 66, 0, 0, 15, 67, 0, 0, 64, 66, 0, 0, 16, 67, 0, 0, 64, 66, 0, 0, 17, 67, 0, 0, 64, 66, 0, 0, 18, 67, 0, 0, 64, 66, 0, 0, 19, 67, 0, 0, 64, 66, 0, 0, 20, 67, 0, 0, 64, 66, 0, 0, 21, 67, 0, 0, 64, 66, 0, 0, 22, 67, 0, 0, 64, 66, 0, 0, 23, 67, 0, 0, 64, 66, 0, 0, 24, 67, 0, 0, 64, 66, 0, 0, 25, 67, 0, 0, 64, 66, 0, 0, 26, 67, 0, 0, 64, 66, 0, 0, 27, 67, 0, 0, 64, 66, 0, 0, 28, 67, 0, 0, 64, 66, 0, 0, 29, 67, 0, 0, 64, 66, 0, 0, 30, 67, 0, 0, 64, 66, 0, 0, 31, 67, 0, 0, 64, 66, 0, 0, 32, 67, 0, 0, 64, 66, 0, 0, 33, 67, 0, 0, 64, 66, 0, 0, 34, 67, 0, 0, 64, 66, 0, 0, 35, 67, 0, 0, 64, 66, 0, 0, 36, 67, 0, 0, 64, 66, 0, 0, 37, 67, 0, 0, 64, 66, 0, 0, 38, 67, 0, 0, 64, 66, 0, 0, 39, 67, 0, 0, 64, 66, 0, 0, 40, 67, 0, 0, 64, 66, 0, 0, 41, 67, 0, 0, 64, 66, 0, 0, 42, 67, 0, 0, 64, 66, 0, 0, 43, 67, 0, 0, 64, 66, 0, 0, 44, 67, 0, 0, 64, 66, 0, 0, 45, 67, 0, 0, 64, 66, 0, 0, 46, 67, 0, 0, 64, 66, 0, 0, 47, 67, 0, 0, 64, 66, 0, 0, 48, 67, 0, 0, 64, 66, 0, 0, 49, 67, 0, 0, 64, 66, 0, 0, 50, 67, 0, 0, 64, 66, 0, 0, 51, 67, 0, 0, 64, 66, 0, 0, 52, 67, 0, 0, 64, 66, 0, 0, 53, 67, 0, 0, 64, 66, 0, 0, 54, 67, 0, 0, 64, 66, 0, 0, 55, 67, 0, 0, 68, 66, 0, 0, 184, 66, 0, 0, 68, 66, 0, 0, 186, 66, 0, 0, 68, 66, 0, 0, 188, 66, 0, 0, 68, 66, 0, 0, 190, 66, 0, 0, 68, 66, 0, 0, 192, 66, 0, 0, 68, 66, 0, 0, 194, 66, 0, 0, 68, 66, 0, 0, 196, 66, 0, 0, 68, 66, 0, 0, 198, 66, 0, 0, 68, 66, 0, 0, 200, 66, 0, 0, 68, 66, 0, 0, 202, 66, 0, 0, 68, 66, 0, 0, 204, 66, 0, 0, 68, 66, 0, 0, 206, 66, 0, 0, 68, 66, 0, 0, 208, 66, 0, 0, 68, 66, 0, 0, 210, 66, 0, 0, 68, 66, 0, 0, 212, 66, 0, 0, 68, 66, 0, 0, 214, 66, 0, 0, 68, 66, 0, 0, 216, 66, 0, 0, 68, 66, 0, 0, 218, 66, 0, 0, 68, 66, 0, 0, 220, 66, 0, 0, 68, 66, 0, 0, 222, 66, 0, 0, 68, 66, 0, 0, 224, 66, 0, 0, 68, 66, 0, 0, 226, 66, 0, 0, 68, 66, 0, 0, 228, 66, 0, 0, 68, 66, 0, 0, 230, 66, 0, 0, 68, 66, 0, 0, 232, 66, 0, 0, 68, 66, 0, 0, 234, 66, 0, 0, 68, 66, 0, 0, 236, 66, 0, 0, 68, 66, 0, 0, 238, 66, 0, 0, 68, 66, 0, 0, 240, 66, 0, 0, 68, 66, 0, 0, 242, 66, 0, 0, 68, 66, 0, 0, 244, 66, 0, 0, 68, 66, 0, 0, 246, 66, 0, 0, 68, 66, 0, 0, 248, 66, 0, 0, 68, 66, 0, 0, 250, 66, 0, 0, 68, 66, 0, 0, 252, 66, 0, 0, 68, 66, 0, 0, 254, 66, 0, 0, 68, 66, 0, 0, 0, 67, 0, 0, 68, 66, 0, 0, 1, 67, 0, 0, 68, 66, 0, 0, 2, 67, 0, 0, 68, 66, 0, 0, 3, 67, 0, 0, 68, 66, 0, 0, 4, 67, 0, 0, 68, 66, 0, 0, 5, 67, 0, 0, 68, 66, 0, 0, 6, 67, 0, 0, 68, 66, 0, 0, 7, 67, 0, 0, 68, 66, 0, 0, 8, 67, 0, 0, 68, 66, 0, 0, 9, 67, 0, 0, 68, 66, 0, 0, 10, 67, 0, 0, 68, 66, 0, 0, 11, 67, 0, 0, 68, 66, 0, 0, 12, 67, 0, 0, 68, 66, 0, 0, 13, 67, 0, 0, 68, 66, 0, 0, 14, 67, 0, 0, 68, 66, 0, 0, 15, 67, 0, 0, 68, 66, 0, 0, 16, 67, 0, 0, 68, 66, 0, 0, 17, 67, 0, 0, 68, 66, 0, 0, 18, 67, 0, 0, 68, 66, 0, 0, 19, 67, 0, 0, 68, 66, 0, 0, 20, 67, 0, 0, 68, 66, 0, 0, 21, 67, 0, 0, 68, 66, 0, 0, 22, 67, 0, 0, 68, 66, 0, 0, 23, 67, 0, 0, 68, 66, 0, 0, 24, 67, 0, 0, 68, 66, 0, 0, 25, 67, 0, 0, 68, 66, 0, 0, 26, 67, 0, 0, 68, 66, 0, 0, 27, 67, 0, 0, 68, 66, 0, 0, 28, 67, 0, 0, 68, 66, 0, 0, 29, 67, 0, 0, 68, 66, 0, 0, 30, 67, 0, 0, 68, 66, 0, 0, 31, 67, 0, 0, 68, 66, 0, 0, 32, 67, 0, 0, 68, 66, 0, 0, 33, 67, 0, 0, 68, 66, 0, 0, 34, 67, 0, 0, 68, 66, 0, 0, 35, 67, 0, 0, 68, 66, 0, 0, 36, 67, 0, 0, 68, 66, 0, 0, 37, 67, 0, 0, 68, 66, 0, 0, 38, 67, 0, 0, 68, 66, 0, 0, 39, 67, 0, 0, 68, 66, 0, 0, 40, 67, 0, 0, 68, 66, 0, 0, 41, 67, 0, 0, 68, 66, 0, 0, 42, 67, 0, 0, 68, 66, 0, 0, 43, 67, 0, 0, 68, 66, 0, 0, 44, 67, 0, 0, 68, 66, 0, 0, 45, 67, 0, 0, 68, 66, 0, 0, 46, 67, 0, 0, 68, 66, 0, 0, 47, 67, 0, 0, 68, 66, 0, 0, 48, 67, 0, 0, 68, 66, 0, 0, 49, 67, 0, 0, 68, 66, 0, 0, 50, 67, 0, 0, 68, 66, 0, 0, 51, 67, 0, 0, 68, 66, 0, 0, 52, 67, 0, 0, 68, 66, 0, 0, 53, 67, 0, 0, 68, 66, 0, 0, 54, 67, 0, 0, 68, 66, 0, 0, 55, 67, 0, 0, 72, 66, 0, 0, 184, 66, 0, 0, 72, 66, 0, 0, 186, 66, 0, 0, 72, 66, 0, 0, 188, 66, 0, 0, 72, 66, 0, 0, 190, 66, 0, 0, 72, 66, 0, 0, 192, 66, 0, 0, 72, 66, 0, 0, 194, 66, 0, 0, 72, 66, 0, 0, 196, 66, 0, 0, 72, 66, 0, 0, 198, 66, 0, 0, 72, 66, 0, 0, 200, 66, 0, 0, 72, 66, 0, 0, 202, 66, 0, 0, 72, 66, 0, 0, 204, 66, 0, 0, 72, 66, 0, 0, 206, 66, 0, 0, 72, 66, 0, 0, 208, 66, 0, 0, 72, 66, 0, 0, 210, 66, 0, 0, 72, 66, 0, 0, 212, 66, 0, 0, 72, 66, 0, 0, 214, 66, 0, 0, 72, 66, 0, 0, 216, 66, 0, 0, 72, 66, 0, 0, 218, 66, 0, 0, 72, 66, 0, 0, 220, 66, 0, 0, 72, 66, 0, 0, 222, 66, 0, 0, 72, 66, 0, 0, 224, 66, 0, 0, 72, 66, 0, 0, 226, 66, 0, 0, 72, 66, 0, 0, 228, 66, 0, 0, 72, 66, 0, 0, 230, 66, 0, 0, 72, 66, 0, 0, 232, 66, 0, 0, 72, 66, 0, 0, 234, 66, 0, 0, 72, 66, 0, 0, 236, 66, 0, 0, 72, 66, 0, 0, 238, 66, 0, 0, 72, 66, 0, 0, 240, 66, 0, 0, 72, 66, 0, 0, 242, 66, 0, 0, 72, 66, 0, 0, 244, 66, 0, 0, 72, 66, 0, 0, 246, 66, 0, 0, 72, 66, 0, 0, 248, 66, 0, 0, 72, 66, 0, 0, 250, 66, 0, 0, 72, 66, 0, 0, 252, 66, 0, 0, 72, 66, 0, 0, 254, 66, 0, 0, 72, 66, 0, 0, 0, 67, 0, 0, 72, 66, 0, 0, 1, 67, 0, 0, 72, 66, 0, 0, 2, 67, 0, 0, 72, 66, 0, 0, 3, 67, 0, 0, 72, 66, 0, 0, 4, 67, 0, 0, 72, 66, 0, 0, 5, 67, 0, 0, 72, 66, 0, 0, 6, 67, 0, 0, 72, 66, 0, 0, 7, 67, 0, 0, 72, 66, 0, 0, 8, 67, 0, 0, 72, 66, 0, 0, 9, 67, 0, 0, 72, 66, 0, 0, 10, 67, 0, 0, 72, 66, 0, 0, 11, 67, 0, 0, 72, 66, 0, 0, 12, 67, 0, 0, 72, 66, 0, 0, 13, 67, 0, 0, 72, 66, 0, 0, 14, 67, 0, 0, 72, 66, 0, 0, 15, 67, 0, 0, 72, 66, 0, 0, 16, 67, 0, 0, 72, 66, 0, 0, 17, 67, 0, 0, 72, 66, 0, 0, 18, 67, 0, 0, 72, 66, 0, 0, 19, 67, 0, 0, 72, 66, 0, 0, 20, 67, 0, 0, 72, 66, 0, 0, 21, 67, 0, 0, 72, 66, 0, 0, 22, 67, 0, 0, 72, 66, 0, 0, 23, 67, 0, 0, 72, 66, 0, 0, 24, 67, 0, 0, 72, 66, 0, 0, 25, 67, 0, 0, 72, 66, 0, 0, 26, 67, 0, 0, 72, 66, 0, 0, 27, 67, 0, 0, 72, 66, 0, 0, 28, 67, 0, 0, 72, 66, 0, 0, 29, 67, 0, 0, 72, 66, 0, 0, 30, 67, 0, 0, 72, 66, 0, 0, 31, 67, 0, 0, 72, 66, 0, 0, 32, 67, 0, 0, 72, 66, 0, 0, 33, 67, 0, 0, 72, 66, 0, 0, 34, 67, 0, 0, 72, 66, 0, 0, 35, 67, 0, 0, 72, 66, 0, 0, 36, 67, 0, 0, 72, 66, 0, 0, 37, 67, 0, 0, 72, 66, 0, 0, 38, 67, 0, 0, 72, 66, 0, 0, 39, 67, 0, 0, 72, 66, 0, 0, 40, 67, 0, 0, 72, 66, 0, 0, 41, 67, 0, 0, 72, 66, 0, 0, 42, 67, 0, 0, 72, 66, 0, 0, 43, 67, 0, 0, 72, 66, 0, 0, 44, 67, 0, 0, 72, 66, 0, 0, 45, 67, 0, 0, 72, 66, 0, 0, 46, 67, 0, 0, 72, 66, 0, 0, 47, 67, 0, 0, 72, 66, 0, 0, 48, 67, 0, 0, 72, 66, 0, 0, 49, 67, 0, 0, 72, 66, 0, 0, 50, 67, 0, 0, 72, 66, 0, 0, 51, 67, 0, 0, 72, 66, 0, 0, 52, 67, 0, 0, 72, 66, 0, 0, 53, 67, 0, 0, 72, 66, 0, 0, 54, 67, 0, 0, 72, 66, 0, 0, 55, 67, 0, 0, 76, 66, 0, 0, 184, 66, 0, 0, 76, 66, 0, 0, 186, 66, 0, 0, 76, 66, 0, 0, 188, 66, 0, 0, 76, 66, 0, 0, 190, 66, 0, 0, 76, 66, 0, 0, 192, 66, 0, 0, 76, 66, 0, 0, 194, 66, 0, 0, 76, 66, 0, 0, 196, 66, 0, 0, 76, 66, 0, 0, 198, 66, 0, 0, 76, 66, 0, 0, 200, 66, 0, 0, 76, 66, 0, 0, 202, 66, 0, 0, 76, 66, 0, 0, 204, 66, 0, 0, 76, 66, 0, 0, 206, 66, 0, 0, 76, 66, 0, 0, 208, 66, 0, 0, 76, 66, 0, 0, 210, 66, 0, 0, 76, 66, 0, 0, 212, 66, 0, 0, 76, 66, 0, 0, 214, 66, 0, 0, 76, 66, 0, 0, 216, 66, 0, 0, 76, 66, 0, 0, 218, 66, 0, 0, 76, 66, 0, 0, 220, 66, 0, 0, 76, 66, 0, 0, 222, 66, 0, 0, 76, 66, 0, 0, 224, 66, 0, 0, 76, 66, 0, 0, 226, 66, 0, 0, 76, 66, 0, 0, 228, 66, 0, 0, 76, 66, 0, 0, 230, 66, 0, 0, 76, 66, 0, 0, 232, 66, 0, 0, 76, 66, 0, 0, 234, 66, 0, 0, 76, 66, 0, 0, 236, 66, 0, 0, 76, 66, 0, 0, 238, 66, 0, 0, 76, 66, 0, 0, 240, 66, 0, 0, 76, 66, 0, 0, 242, 66, 0, 0, 76, 66, 0, 0, 244, 66, 0, 0, 76, 66, 0, 0, 246, 66, 0, 0, 76, 66, 0, 0, 248, 66, 0, 0, 76, 66, 0, 0, 250, 66, 0, 0, 76, 66, 0, 0, 252, 66, 0, 0, 76, 66, 0, 0, 254, 66, 0, 0, 76, 66, 0, 0, 0, 67, 0, 0, 76, 66, 0, 0, 1, 67, 0, 0, 76, 66, 0, 0, 2, 67, 0, 0, 76, 66, 0, 0, 3, 67, 0, 0, 76, 66, 0, 0, 4, 67, 0, 0, 76, 66, 0, 0, 5, 67, 0, 0, 76, 66, 0, 0, 6, 67, 0, 0, 76, 66, 0, 0, 7, 67, 0, 0, 76, 66, 0, 0, 8, 67, 0, 0, 76, 66, 0, 0, 9, 67, 0, 0, 76, 66, 0, 0, 10, 67, 0, 0, 76, 66, 0, 0, 11, 67, 0, 0, 76, 66, 0, 0, 12, 67, 0, 0, 76, 66, 0, 0, 13, 67, 0, 0, 76, 66, 0, 0, 14, 67, 0, 0, 76, 66, 0, 0, 15, 67, 0, 0, 76, 66, 0, 0, 16, 67, 0, 0, 76, 66, 0, 0, 17, 67, 0, 0, 76, 66, 0, 0, 18, 67, 0, 0, 76, 66, 0, 0, 19, 67, 0, 0, 76, 66, 0, 0, 20, 67, 0, 0, 76, 66, 0, 0, 21, 67, 0, 0, 76, 66, 0, 0, 22, 67, 0, 0, 76, 66, 0, 0, 23, 67, 0, 0, 76, 66, 0, 0, 24, 67, 0, 0, 76, 66, 0, 0, 25, 67, 0, 0, 76, 66, 0, 0, 26, 67, 0, 0, 76, 66, 0, 0, 27, 67, 0, 0, 76, 66, 0, 0, 28, 67, 0, 0, 76, 66, 0, 0, 29, 67, 0, 0, 76, 66, 0, 0, 30, 67, 0, 0, 76, 66, 0, 0, 31, 67, 0, 0, 76, 66, 0, 0, 32, 67, 0, 0, 76, 66, 0, 0, 33, 67, 0, 0, 76, 66, 0, 0, 34, 67, 0, 0, 76, 66, 0, 0, 35, 67, 0, 0, 76, 66, 0, 0, 36, 67, 0, 0, 76, 66, 0, 0, 37, 67, 0, 0, 76, 66, 0, 0, 38, 67, 0, 0, 76, 66, 0, 0, 39, 67, 0, 0, 76, 66, 0, 0, 40, 67, 0, 0, 76, 66, 0, 0, 41, 67, 0, 0, 76, 66, 0, 0, 42, 67, 0, 0, 76, 66, 0, 0, 43, 67, 0, 0, 76, 66, 0, 0, 44, 67, 0, 0, 76, 66, 0, 0, 45, 67, 0, 0, 76, 66, 0, 0, 46, 67, 0, 0, 76, 66, 0, 0, 47, 67, 0, 0, 76, 66, 0, 0, 48, 67, 0, 0, 76, 66, 0, 0, 49, 67, 0, 0, 76, 66, 0, 0, 50, 67, 0, 0, 76, 66, 0, 0, 51, 67, 0, 0, 76, 66, 0, 0, 52, 67, 0, 0, 76, 66, 0, 0, 53, 67, 0, 0, 76, 66, 0, 0, 54, 67, 0, 0, 76, 66, 0, 0, 55, 67, 0, 0, 80, 66, 0, 0, 184, 66, 0, 0, 80, 66, 0, 0, 186, 66, 0, 0, 80, 66, 0, 0, 188, 66, 0, 0, 80, 66, 0, 0, 190, 66, 0, 0, 80, 66, 0, 0, 192, 66, 0, 0, 80, 66, 0, 0, 194, 66, 0, 0, 80, 66, 0, 0, 196, 66, 0, 0, 80, 66, 0, 0, 198, 66, 0, 0, 80, 66, 0, 0, 200, 66, 0, 0, 80, 66, 0, 0, 202, 66, 0, 0, 80, 66, 0, 0, 204, 66, 0, 0, 80, 66, 0, 0, 206, 66, 0, 0, 80, 66, 0, 0, 208, 66, 0, 0, 80, 66, 0, 0, 210, 66, 0, 0, 80, 66, 0, 0, 212, 66, 0, 0, 80, 66, 0, 0, 214, 66, 0, 0, 80, 66, 0, 0, 216, 66, 0, 0, 80, 66, 0, 0, 218, 66, 0, 0, 80, 66, 0, 0, 220, 66, 0, 0, 80, 66, 0, 0, 222, 66, 0, 0, 80, 66, 0, 0, 224, 66, 0, 0, 80, 66, 0, 0, 226, 66, 0, 0, 80, 66, 0, 0, 228, 66, 0, 0, 80, 66, 0, 0, 230, 66, 0, 0, 80, 66, 0, 0, 232, 66, 0, 0, 80, 66, 0, 0, 234, 66, 0, 0, 80, 66, 0, 0, 236, 66, 0, 0, 80, 66, 0, 0, 238, 66, 0, 0, 80, 66, 0, 0, 240, 66, 0, 0, 80, 66, 0, 0, 242, 66, 0, 0, 80, 66, 0, 0, 244, 66, 0, 0, 80, 66, 0, 0, 246, 66, 0, 0, 80, 66, 0, 0, 248, 66, 0, 0, 80, 66, 0, 0, 250, 66, 0, 0, 80, 66, 0, 0, 252, 66, 0, 0, 80, 66, 0, 0, 254, 66, 0, 0, 80, 66, 0, 0, 0, 67, 0, 0, 80, 66, 0, 0, 1, 67, 0, 0, 80, 66, 0, 0, 2, 67, 0, 0, 80, 66, 0, 0, 3, 67, 0, 0, 80, 66, 0, 0, 4, 67, 0, 0, 80, 66, 0, 0, 5, 67, 0, 0, 80, 66, 0, 0, 6, 67, 0, 0, 80, 66, 0, 0, 7, 67, 0, 0, 80, 66, 0, 0, 8, 67, 0, 0, 80, 66, 0, 0, 9, 67, 0, 0, 80, 66, 0, 0, 10, 67, 0, 0, 80, 66, 0, 0, 11, 67, 0, 0, 80, 66, 0, 0, 12, 67, 0, 0, 80, 66, 0, 0, 13, 67, 0, 0, 80, 66, 0, 0, 14, 67, 0, 0, 80, 66, 0, 0, 15, 67, 0, 0, 80, 66, 0, 0, 16, 67, 0, 0, 80, 66, 0, 0, 17, 67, 0, 0, 80, 66, 0, 0, 18, 67, 0, 0, 80, 66, 0, 0, 19, 67, 0, 0, 80, 66, 0, 0, 20, 67, 0, 0, 80, 66, 0, 0, 21, 67, 0, 0, 80, 66, 0, 0, 22, 67, 0, 0, 80, 66, 0, 0, 23, 67, 0, 0, 80, 66, 0, 0, 24, 67, 0, 0, 80, 66, 0, 0, 25, 67, 0, 0, 80, 66, 0, 0, 26, 67, 0, 0, 80, 66, 0, 0, 27, 67, 0, 0, 80, 66, 0, 0, 28, 67, 0, 0, 80, 66, 0, 0, 29, 67, 0, 0, 80, 66, 0, 0, 30, 67, 0, 0, 80, 66, 0, 0, 31, 67, 0, 0, 80, 66, 0, 0, 32, 67, 0, 0, 80, 66, 0, 0, 33, 67, 0, 0, 80, 66, 0, 0, 34, 67, 0, 0, 80, 66, 0, 0, 35, 67, 0, 0, 80, 66, 0, 0, 36, 67, 0, 0, 80, 66, 0, 0, 37, 67, 0, 0, 80, 66, 0, 0, 38, 67, 0, 0, 80, 66, 0, 0, 39, 67, 0, 0, 80, 66, 0, 0, 40, 67, 0, 0, 80, 66, 0, 0, 41, 67, 0, 0, 80, 66, 0, 0, 42, 67, 0, 0, 80, 66, 0, 0, 43, 67, 0, 0, 80, 66, 0, 0, 44, 67, 0, 0, 80, 66, 0, 0, 45, 67, 0, 0, 80, 66, 0, 0, 46, 67, 0, 0, 80, 66, 0, 0, 47, 67, 0, 0, 80, 66, 0, 0, 48, 67, 0, 0, 80, 66, 0, 0, 49, 67, 0, 0, 80, 66, 0, 0, 50, 67, 0, 0, 80, 66, 0, 0, 51, 67, 0, 0, 80, 66, 0, 0, 52, 67, 0, 0, 80, 66, 0, 0, 53, 67, 0, 0, 80, 66, 0, 0, 54, 67, 0, 0, 80, 66, 0, 0, 55, 67, 0, 0, 84, 66, 0, 0, 184, 66, 0, 0, 84, 66, 0, 0, 186, 66, 0, 0, 84, 66, 0, 0, 188, 66, 0, 0, 84, 66, 0, 0, 190, 66, 0, 0, 84, 66, 0, 0, 192, 66, 0, 0, 84, 66, 0, 0, 194, 66, 0, 0, 84, 66, 0, 0, 196, 66, 0, 0, 84, 66, 0, 0, 198, 66, 0, 0, 84, 66, 0, 0, 200, 66, 0, 0, 84, 66, 0, 0, 202, 66, 0, 0, 84, 66, 0, 0, 204, 66, 0, 0, 84, 66, 0, 0, 206, 66, 0, 0, 84, 66, 0, 0, 208, 66, 0, 0, 84, 66, 0, 0, 210, 66, 0, 0, 84, 66, 0, 0, 212, 66, 0, 0, 84, 66, 0, 0, 214, 66, 0, 0, 84, 66, 0, 0, 216, 66, 0, 0, 84, 66, 0, 0, 218, 66, 0, 0, 84, 66, 0, 0, 220, 66, 0, 0, 84, 66, 0, 0, 222, 66, 0, 0, 84, 66, 0, 0, 224, 66, 0, 0, 84, 66, 0, 0, 226, 66, 0, 0, 84, 66, 0, 0, 228, 66, 0, 0, 84, 66, 0, 0, 230, 66, 0, 0, 84, 66, 0, 0, 232, 66, 0, 0, 84, 66, 0, 0, 234, 66, 0, 0, 84, 66, 0, 0, 236, 66, 0, 0, 84, 66, 0, 0, 238, 66, 0, 0, 84, 66, 0, 0, 240, 66, 0, 0, 84, 66, 0, 0, 242, 66, 0, 0, 84, 66, 0, 0, 244, 66, 0, 0, 84, 66, 0, 0, 246, 66, 0, 0, 84, 66, 0, 0, 248, 66, 0, 0, 84, 66, 0, 0, 250, 66, 0, 0, 84, 66, 0, 0, 252, 66, 0, 0, 84, 66, 0, 0, 254, 66, 0, 0, 84, 66, 0, 0, 0, 67, 0, 0, 84, 66, 0, 0, 1, 67, 0, 0, 84, 66, 0, 0, 2, 67, 0, 0, 84, 66, 0, 0, 3, 67, 0, 0, 84, 66, 0, 0, 4, 67, 0, 0, 84, 66, 0, 0, 5, 67, 0, 0, 84, 66, 0, 0, 6, 67, 0, 0, 84, 66, 0, 0, 7, 67, 0, 0, 84, 66, 0, 0, 8, 67, 0, 0, 84, 66, 0, 0, 9, 67, 0, 0, 84, 66, 0, 0, 10, 67, 0, 0, 84, 66, 0, 0, 11, 67, 0, 0, 84, 66, 0, 0, 12, 67, 0, 0, 84, 66, 0, 0, 13, 67, 0, 0, 84, 66, 0, 0, 14, 67, 0, 0, 84, 66, 0, 0, 15, 67, 0, 0, 84, 66, 0, 0, 16, 67, 0, 0, 84, 66, 0, 0, 17, 67, 0, 0, 84, 66, 0, 0, 18, 67, 0, 0, 84, 66, 0, 0, 19, 67, 0, 0, 84, 66, 0, 0, 20, 67, 0, 0, 84, 66, 0, 0, 21, 67, 0, 0, 84, 66, 0, 0, 22, 67, 0, 0, 84, 66, 0, 0, 23, 67, 0, 0, 84, 66, 0, 0, 24, 67, 0, 0, 84, 66, 0, 0, 25, 67, 0, 0, 84, 66, 0, 0, 26, 67, 0, 0, 84, 66, 0, 0, 27, 67, 0, 0, 84, 66, 0, 0, 28, 67, 0, 0, 84, 66, 0, 0, 29, 67, 0, 0, 84, 66, 0, 0, 30, 67, 0, 0, 84, 66, 0, 0, 31, 67, 0, 0, 84, 66, 0, 0, 32, 67, 0, 0, 84, 66, 0, 0, 33, 67, 0, 0, 84, 66, 0, 0, 34, 67, 0, 0, 84, 66, 0, 0, 35, 67, 0, 0, 84, 66, 0, 0, 36, 67, 0, 0, 84, 66, 0, 0, 37, 67, 0, 0, 84, 66, 0, 0, 38, 67, 0, 0, 84, 66, 0, 0, 39, 67, 0, 0, 84, 66, 0, 0, 40, 67, 0, 0, 84, 66, 0, 0, 41, 67, 0, 0, 84, 66, 0, 0, 42, 67, 0, 0, 84, 66, 0, 0, 43, 67, 0, 0, 84, 66, 0, 0, 44, 67, 0, 0, 84, 66, 0, 0, 45, 67, 0, 0, 84, 66, 0, 0, 46, 67, 0, 0, 84, 66, 0, 0, 47, 67, 0, 0, 84, 66, 0, 0, 48, 67, 0, 0, 84, 66, 0, 0, 49, 67, 0, 0, 84, 66, 0, 0, 50, 67, 0, 0, 84, 66, 0, 0, 51, 67, 0, 0, 84, 66, 0, 0, 52, 67, 0, 0, 84, 66, 0, 0, 53, 67, 0, 0, 84, 66, 0, 0, 54, 67, 0, 0, 84, 66, 0, 0, 55, 67, 0, 0, 88, 66, 0, 0, 184, 66, 0, 0, 88, 66, 0, 0, 186, 66, 0, 0, 88, 66, 0, 0, 188, 66, 0, 0, 88, 66, 0, 0, 190, 66, 0, 0, 88, 66, 0, 0, 192, 66, 0, 0, 88, 66, 0, 0, 194, 66, 0, 0, 88, 66, 0, 0, 196, 66, 0, 0, 88, 66, 0, 0, 198, 66, 0, 0, 88, 66, 0, 0, 200, 66, 0, 0, 88, 66, 0, 0, 202, 66, 0, 0, 88, 66, 0, 0, 204, 66, 0, 0, 88, 66, 0, 0, 206, 66, 0, 0, 88, 66, 0, 0, 208, 66, 0, 0, 88, 66, 0, 0, 210, 66, 0, 0, 88, 66, 0, 0, 212, 66, 0, 0, 88, 66, 0, 0, 214, 66, 0, 0, 88, 66, 0, 0, 216, 66, 0, 0, 88, 66, 0, 0, 218, 66, 0, 0, 88, 66, 0, 0, 220, 66, 0, 0, 88, 66, 0, 0, 222, 66, 0, 0, 88, 66, 0, 0, 224, 66, 0, 0, 88, 66, 0, 0, 226, 66, 0, 0, 88, 66, 0, 0, 228, 66, 0, 0, 88, 66, 0, 0, 230, 66, 0, 0, 88, 66, 0, 0, 232, 66, 0, 0, 88, 66, 0, 0, 234, 66, 0, 0, 88, 66, 0, 0, 236, 66, 0, 0, 88, 66, 0, 0, 238, 66, 0, 0, 88, 66, 0, 0, 240, 66, 0, 0, 88, 66, 0, 0, 242, 66, 0, 0, 88, 66, 0, 0, 244, 66, 0, 0, 88, 66, 0, 0, 246, 66, 0, 0, 88, 66, 0, 0, 248, 66, 0, 0, 88, 66, 0, 0, 250, 66, 0, 0, 88, 66, 0, 0, 252, 66, 0, 0, 88, 66, 0, 0, 254, 66, 0, 0, 88, 66, 0, 0, 0, 67, 0, 0, 88, 66, 0, 0, 1, 67, 0, 0, 88, 66, 0, 0, 2, 67, 0, 0, 88, 66, 0, 0, 3, 67, 0, 0, 88, 66, 0, 0, 4, 67, 0, 0, 88, 66, 0, 0, 5, 67, 0, 0, 88, 66, 0, 0, 6, 67, 0, 0, 88, 66, 0, 0, 7, 67, 0, 0, 88, 66, 0, 0, 8, 67, 0, 0, 88, 66, 0, 0, 9, 67, 0, 0, 88, 66, 0, 0, 10, 67, 0, 0, 88, 66, 0, 0, 11, 67, 0, 0, 88, 66, 0, 0, 12, 67, 0, 0, 88, 66, 0, 0, 13, 67, 0, 0, 88, 66, 0, 0, 14, 67, 0, 0, 88, 66, 0, 0, 15, 67, 0, 0, 88, 66, 0, 0, 16, 67, 0, 0, 88, 66, 0, 0, 17, 67, 0, 0, 88, 66, 0, 0, 18, 67, 0, 0, 88, 66, 0, 0, 19, 67, 0, 0, 88, 66, 0, 0, 20, 67, 0, 0, 88, 66, 0, 0, 21, 67, 0, 0, 88, 66, 0, 0, 22, 67, 0, 0, 88, 66, 0, 0, 23, 67, 0, 0, 88, 66, 0, 0, 24, 67, 0, 0, 88, 66, 0, 0, 25, 67, 0, 0, 88, 66, 0, 0, 26, 67, 0, 0, 88, 66, 0, 0, 27, 67, 0, 0, 88, 66, 0, 0, 28, 67, 0, 0, 88, 66, 0, 0, 29, 67, 0, 0, 88, 66, 0, 0, 30, 67, 0, 0, 88, 66, 0, 0, 31, 67, 0, 0, 88, 66, 0, 0, 32, 67, 0, 0, 88, 66, 0, 0, 33, 67, 0, 0, 88, 66, 0, 0, 34, 67, 0, 0, 88, 66, 0, 0, 35, 67, 0, 0, 88, 66, 0, 0, 36, 67, 0, 0, 88, 66, 0, 0, 37, 67, 0, 0, 88, 66, 0, 0, 38, 67, 0, 0, 88, 66, 0, 0, 39, 67, 0, 0, 88, 66, 0, 0, 40, 67, 0, 0, 88, 66, 0, 0, 41, 67, 0, 0, 88, 66, 0, 0, 42, 67, 0, 0, 88, 66, 0, 0, 43, 67, 0, 0, 88, 66, 0, 0, 44, 67, 0, 0, 88, 66, 0, 0, 45, 67, 0, 0, 88, 66, 0, 0, 46, 67, 0, 0, 88, 66, 0, 0, 47, 67, 0, 0, 88, 66, 0, 0, 48, 67, 0, 0, 88, 66, 0, 0, 49, 67, 0, 0, 88, 66, 0, 0, 50, 67, 0, 0, 88, 66, 0, 0, 51, 67, 0, 0, 88, 66, 0, 0, 52, 67, 0, 0, 88, 66, 0, 0, 53, 67, 0, 0, 88, 66, 0, 0, 54, 67, 0, 0, 88, 66, 0, 0, 55, 67, 0, 0, 92, 66, 0, 0, 184, 66, 0, 0, 92, 66, 0, 0, 186, 66, 0, 0, 92, 66, 0, 0, 188, 66, 0, 0, 92, 66, 0, 0, 190, 66, 0, 0, 92, 66, 0, 0, 192, 66, 0, 0, 92, 66, 0, 0, 194, 66, 0, 0, 92, 66, 0, 0, 196, 66, 0, 0, 92, 66, 0, 0, 198, 66, 0, 0, 92, 66, 0, 0, 200, 66, 0, 0, 92, 66, 0, 0, 202, 66, 0, 0, 92, 66, 0, 0, 204, 66, 0, 0, 92, 66, 0, 0, 206, 66, 0, 0, 92, 66, 0, 0, 208, 66, 0, 0, 92, 66, 0, 0, 210, 66, 0, 0, 92, 66, 0, 0, 212, 66, 0, 0, 92, 66, 0, 0, 214, 66, 0, 0, 92, 66, 0, 0, 216, 66, 0, 0, 92, 66, 0, 0, 218, 66, 0, 0, 92, 66, 0, 0, 220, 66, 0, 0, 92, 66, 0, 0, 222, 66, 0, 0, 92, 66, 0, 0, 224, 66, 0, 0, 92, 66, 0, 0, 226, 66, 0, 0, 92, 66, 0, 0, 228, 66, 0, 0, 92, 66, 0, 0, 230, 66, 0, 0, 92, 66, 0, 0, 232, 66, 0, 0, 92, 66, 0, 0, 234, 66, 0, 0, 92, 66, 0, 0, 236, 66, 0, 0, 92, 66, 0, 0, 238, 66, 0, 0, 92, 66, 0, 0, 240, 66, 0, 0, 92, 66, 0, 0, 242, 66, 0, 0, 92, 66, 0, 0, 244, 66, 0, 0, 92, 66, 0, 0, 246, 66, 0, 0, 92, 66, 0, 0, 248, 66, 0, 0, 92, 66, 0, 0, 250, 66, 0, 0, 92, 66, 0, 0, 252, 66, 0, 0, 92, 66, 0, 0, 254, 66, 0, 0, 92, 66, 0, 0, 0, 67, 0, 0, 92, 66, 0, 0, 1, 67, 0, 0, 92, 66, 0, 0, 2, 67, 0, 0, 92, 66, 0, 0, 3, 67, 0, 0, 92, 66, 0, 0, 4, 67, 0, 0, 92, 66, 0, 0, 5, 67, 0, 0, 92, 66, 0, 0, 6, 67, 0, 0, 92, 66, 0, 0, 7, 67, 0, 0, 92, 66, 0, 0, 8, 67, 0, 0, 92, 66, 0, 0, 9, 67, 0, 0, 92, 66, 0, 0, 10, 67, 0, 0, 92, 66, 0, 0, 11, 67, 0, 0, 92, 66, 0, 0, 12, 67, 0, 0, 92, 66, 0, 0, 13, 67, 0, 0, 92, 66, 0, 0, 14, 67, 0, 0, 92, 66, 0, 0, 15, 67, 0, 0, 92, 66, 0, 0, 16, 67, 0, 0, 92, 66, 0, 0, 17, 67, 0, 0, 92, 66, 0, 0, 18, 67, 0, 0, 92, 66, 0, 0, 19, 67, 0, 0, 92, 66, 0, 0, 20, 67, 0, 0, 92, 66, 0, 0, 21, 67, 0, 0, 92, 66, 0, 0, 22, 67, 0, 0, 92, 66, 0, 0, 23, 67, 0, 0, 92, 66, 0, 0, 24, 67, 0, 0, 92, 66, 0, 0, 25, 67, 0, 0, 92, 66, 0, 0, 26, 67, 0, 0, 92, 66, 0, 0, 27, 67, 0, 0, 92, 66, 0, 0, 28, 67, 0, 0, 92, 66, 0, 0, 29, 67, 0, 0, 92, 66, 0, 0, 30, 67, 0, 0, 92, 66, 0, 0, 31, 67, 0, 0, 92, 66, 0, 0, 32, 67, 0, 0, 92, 66, 0, 0, 33, 67, 0, 0, 92, 66, 0, 0, 34, 67, 0, 0, 92, 66, 0, 0, 35, 67, 0, 0, 92, 66, 0, 0, 36, 67, 0, 0, 92, 66, 0, 0, 37, 67, 0, 0, 92, 66, 0, 0, 38, 67, 0, 0, 92, 66, 0, 0, 39, 67, 0, 0, 92, 66, 0, 0, 40, 67, 0, 0, 92, 66, 0, 0, 41, 67, 0, 0, 92, 66, 0, 0, 42, 67, 0, 0, 92, 66, 0, 0, 43, 67, 0, 0, 92, 66, 0, 0, 44, 67, 0, 0, 92, 66, 0, 0, 45, 67, 0, 0, 92, 66, 0, 0, 46, 67, 0, 0, 92, 66, 0, 0, 47, 67, 0, 0, 92, 66, 0, 0, 48, 67, 0, 0, 92, 66, 0, 0, 49, 67, 0, 0, 92, 66, 0, 0, 50, 67, 0, 0, 92, 66, 0, 0, 51, 67, 0, 0, 92, 66, 0, 0, 52, 67, 0, 0, 92, 66, 0, 0, 53, 67, 0, 0, 92, 66, 0, 0, 54, 67, 0, 0, 92, 66, 0, 0, 55, 67, 0, 0, 96, 66, 0, 0, 184, 66, 0, 0, 96, 66, 0, 0, 186, 66, 0, 0, 96, 66, 0, 0, 188, 66, 0, 0, 96, 66, 0, 0, 190, 66, 0, 0, 96, 66, 0, 0, 192, 66, 0, 0, 96, 66, 0, 0, 194, 66, 0, 0, 96, 66, 0, 0, 196, 66, 0, 0, 96, 66, 0, 0, 198, 66, 0, 0, 96, 66, 0, 0, 200, 66, 0, 0, 96, 66, 0, 0, 202, 66, 0, 0, 96, 66, 0, 0, 204, 66, 0, 0, 96, 66, 0, 0, 206, 66, 0, 0, 96, 66, 0, 0, 208, 66, 0, 0, 96, 66, 0, 0, 210, 66, 0, 0, 96, 66, 0, 0, 212, 66, 0, 0, 96, 66, 0, 0, 214, 66, 0, 0, 96, 66, 0, 0, 216, 66, 0, 0, 96, 66, 0, 0, 218, 66, 0, 0, 96, 66, 0, 0, 220, 66, 0, 0, 96, 66, 0, 0, 222, 66, 0, 0, 96, 66, 0, 0, 224, 66, 0, 0, 96, 66, 0, 0, 226, 66, 0, 0, 96, 66, 0, 0, 228, 66, 0, 0, 96, 66, 0, 0, 230, 66, 0, 0, 96, 66, 0, 0, 232, 66, 0, 0, 96, 66, 0, 0, 234, 66, 0, 0, 96, 66, 0, 0, 236, 66, 0, 0, 96, 66, 0, 0, 238, 66, 0, 0, 96, 66, 0, 0, 240, 66, 0, 0, 96, 66, 0, 0, 242, 66, 0, 0, 96, 66, 0, 0, 244, 66, 0, 0, 96, 66, 0, 0, 246, 66, 0, 0, 96, 66, 0, 0, 248, 66, 0, 0, 96, 66, 0, 0, 250, 66, 0, 0, 96, 66, 0, 0, 252, 66, 0, 0, 96, 66, 0, 0, 254, 66, 0, 0, 96, 66, 0, 0, 0, 67, 0, 0, 96, 66, 0, 0, 1, 67, 0, 0, 96, 66, 0, 0, 2, 67, 0, 0, 96, 66, 0, 0, 3, 67, 0, 0, 96, 66, 0, 0, 4, 67, 0, 0, 96, 66, 0, 0, 5, 67, 0, 0, 96, 66, 0, 0, 6, 67, 0, 0, 96, 66, 0, 0, 7, 67, 0, 0, 96, 66, 0, 0, 8, 67, 0, 0, 96, 66, 0, 0, 9, 67, 0, 0, 96, 66, 0, 0, 10, 67, 0, 0, 96, 66, 0, 0, 11, 67, 0, 0, 96, 66, 0, 0, 12, 67, 0, 0, 96, 66, 0, 0, 13, 67, 0, 0, 96, 66, 0, 0, 14, 67, 0, 0, 96, 66, 0, 0, 15, 67, 0, 0, 96, 66, 0, 0, 16, 67, 0, 0, 96, 66, 0, 0, 17, 67, 0, 0, 96, 66, 0, 0, 18, 67, 0, 0, 96, 66, 0, 0, 19, 67, 0, 0, 96, 66, 0, 0, 20, 67, 0, 0, 96, 66, 0, 0, 21, 67, 0, 0, 96, 66, 0, 0, 22, 67, 0, 0, 96, 66, 0, 0, 23, 67, 0, 0, 96, 66, 0, 0, 24, 67, 0, 0, 96, 66, 0, 0, 25, 67, 0, 0, 96, 66, 0, 0, 26, 67, 0, 0, 96, 66, 0, 0, 27, 67, 0, 0, 96, 66, 0, 0, 28, 67, 0, 0, 96, 66, 0, 0, 29, 67, 0, 0, 96, 66, 0, 0, 30, 67, 0, 0, 96, 66, 0, 0, 31, 67, 0, 0, 96, 66, 0, 0, 32, 67, 0, 0, 96, 66, 0, 0, 33, 67, 0, 0, 96, 66, 0, 0, 34, 67, 0, 0, 96, 66, 0, 0, 35, 67, 0, 0, 96, 66, 0, 0, 36, 67, 0, 0, 96, 66, 0, 0, 37, 67, 0, 0, 96, 66, 0, 0, 38, 67, 0, 0, 96, 66, 0, 0, 39, 67, 0, 0, 96, 66, 0, 0, 40, 67, 0, 0, 96, 66, 0, 0, 41, 67, 0, 0, 96, 66, 0, 0, 42, 67, 0, 0, 96, 66, 0, 0, 43, 67, 0, 0, 96, 66, 0, 0, 44, 67, 0, 0, 96, 66, 0, 0, 45, 67, 0, 0, 96, 66, 0, 0, 46, 67, 0, 0, 96, 66, 0, 0, 47, 67, 0, 0, 96, 66, 0, 0, 48, 67, 0, 0, 96, 66, 0, 0, 49, 67, 0, 0, 96, 66, 0, 0, 50, 67, 0, 0, 96, 66, 0, 0, 51, 67, 0, 0, 96, 66, 0, 0, 52, 67, 0, 0, 96, 66, 0, 0, 53, 67, 0, 0, 96, 66, 0, 0, 54, 67, 0, 0, 96, 66, 0, 0, 55, 67, 0, 0, 100, 66, 0, 0, 184, 66, 0, 0, 100, 66, 0, 0, 186, 66, 0, 0, 100, 66, 0, 0, 188, 66, 0, 0, 100, 66, 0, 0, 190, 66, 0, 0, 100, 66, 0, 0, 192, 66, 0, 0, 100, 66, 0, 0, 194, 66, 0, 0, 100, 66, 0, 0, 196, 66, 0, 0, 100, 66, 0, 0, 198, 66, 0, 0, 100, 66, 0, 0, 200, 66, 0, 0, 100, 66, 0, 0, 202, 66, 0, 0, 100, 66, 0, 0, 204, 66, 0, 0, 100, 66, 0, 0, 206, 66, 0, 0, 100, 66, 0, 0, 208, 66, 0, 0, 100, 66, 0, 0, 210, 66, 0, 0, 100, 66, 0, 0, 212, 66, 0, 0, 100, 66, 0, 0, 214, 66, 0, 0, 100, 66, 0, 0, 216, 66, 0, 0, 100, 66, 0, 0, 218, 66, 0, 0, 100, 66, 0, 0, 220, 66, 0, 0, 100, 66, 0, 0, 222, 66, 0, 0, 100, 66, 0, 0, 224, 66, 0, 0, 100, 66, 0, 0, 226, 66, 0, 0, 100, 66, 0, 0, 228, 66, 0, 0, 100, 66, 0, 0, 230, 66, 0, 0, 100, 66, 0, 0, 232, 66, 0, 0, 100, 66, 0, 0, 234, 66, 0, 0, 100, 66, 0, 0, 236, 66, 0, 0, 100, 66, 0, 0, 238, 66, 0, 0, 100, 66, 0, 0, 240, 66, 0, 0, 100, 66, 0, 0, 242, 66, 0, 0, 100, 66, 0, 0, 244, 66, 0, 0, 100, 66, 0, 0, 246, 66, 0, 0, 100, 66, 0, 0, 248, 66, 0, 0, 100, 66, 0, 0, 250, 66, 0, 0, 100, 66, 0, 0, 252, 66, 0, 0, 100, 66, 0, 0, 254, 66, 0, 0, 100, 66, 0, 0, 0, 67, 0, 0, 100, 66, 0, 0, 1, 67, 0, 0, 100, 66, 0, 0, 2, 67, 0, 0, 100, 66, 0, 0, 3, 67, 0, 0, 100, 66, 0, 0, 4, 67, 0, 0, 100, 66, 0, 0, 5, 67, 0, 0, 100, 66, 0, 0, 6, 67, 0, 0, 100, 66, 0, 0, 7, 67, 0, 0, 100, 66, 0, 0, 8, 67, 0, 0, 100, 66, 0, 0, 9, 67, 0, 0, 100, 66, 0, 0, 10, 67, 0, 0, 100, 66, 0, 0, 11, 67, 0, 0, 100, 66, 0, 0, 12, 67, 0, 0, 100, 66, 0, 0, 13, 67, 0, 0, 100, 66, 0, 0, 14, 67, 0, 0, 100, 66, 0, 0, 15, 67, 0, 0, 100, 66, 0, 0, 16, 67, 0, 0, 100, 66, 0, 0, 17, 67, 0, 0, 100, 66, 0, 0, 18, 67, 0, 0, 100, 66, 0, 0, 19, 67, 0, 0, 100, 66, 0, 0, 20, 67, 0, 0, 100, 66, 0, 0, 21, 67, 0, 0, 100, 66, 0, 0, 22, 67, 0, 0, 100, 66, 0, 0, 23, 67, 0, 0, 100, 66, 0, 0, 24, 67, 0, 0, 100, 66, 0, 0, 25, 67, 0, 0, 100, 66, 0, 0, 26, 67, 0, 0, 100, 66, 0, 0, 27, 67, 0, 0, 100, 66, 0, 0, 28, 67, 0, 0, 100, 66, 0, 0, 29, 67, 0, 0, 100, 66, 0, 0, 30, 67, 0, 0, 100, 66, 0, 0, 31, 67, 0, 0, 100, 66, 0, 0, 32, 67, 0, 0, 100, 66, 0, 0, 33, 67, 0, 0, 100, 66, 0, 0, 34, 67, 0, 0, 100, 66, 0, 0, 35, 67, 0, 0, 100, 66, 0, 0, 36, 67, 0, 0, 100, 66, 0, 0, 37, 67, 0, 0, 100, 66, 0, 0, 38, 67, 0, 0, 100, 66, 0, 0, 39, 67, 0, 0, 100, 66, 0, 0, 40, 67, 0, 0, 100, 66, 0, 0, 41, 67, 0, 0, 100, 66, 0, 0, 42, 67, 0, 0, 100, 66, 0, 0, 43, 67, 0, 0, 100, 66, 0, 0, 44, 67, 0, 0, 100, 66, 0, 0, 45, 67, 0, 0, 100, 66, 0, 0, 46, 67, 0, 0, 100, 66, 0, 0, 47, 67, 0, 0, 100, 66, 0, 0, 48, 67, 0, 0, 100, 66, 0, 0, 49, 67, 0, 0, 100, 66, 0, 0, 50, 67, 0, 0, 100, 66, 0, 0, 51, 67, 0, 0, 100, 66, 0, 0, 52, 67, 0, 0, 100, 66, 0, 0, 53, 67, 0, 0, 100, 66, 0, 0, 54, 67, 0, 0, 100, 66, 0, 0, 55, 67, 0, 0, 104, 66, 0, 0, 184, 66, 0, 0, 104, 66, 0, 0, 186, 66, 0, 0, 104, 66, 0, 0, 188, 66, 0, 0, 104, 66, 0, 0, 190, 66, 0, 0, 104, 66, 0, 0, 192, 66, 0, 0, 104, 66, 0, 0, 194, 66, 0, 0, 104, 66, 0, 0, 196, 66, 0, 0, 104, 66, 0, 0, 198, 66, 0, 0, 104, 66, 0, 0, 200, 66, 0, 0, 104, 66, 0, 0, 202, 66, 0, 0, 104, 66, 0, 0, 204, 66, 0, 0, 104, 66, 0, 0, 206, 66, 0, 0, 104, 66, 0, 0, 208, 66, 0, 0, 104, 66, 0, 0, 210, 66, 0, 0, 104, 66, 0, 0, 212, 66, 0, 0, 104, 66, 0, 0, 214, 66, 0, 0, 104, 66, 0, 0, 216, 66, 0, 0, 104, 66, 0, 0, 218, 66, 0, 0, 104, 66, 0, 0, 220, 66, 0, 0, 104, 66, 0, 0, 222, 66, 0, 0, 104, 66, 0, 0, 224, 66, 0, 0, 104, 66, 0, 0, 226, 66, 0, 0, 104, 66, 0, 0, 228, 66, 0, 0, 104, 66, 0, 0, 230, 66, 0, 0, 104, 66, 0, 0, 232, 66, 0, 0, 104, 66, 0, 0, 234, 66, 0, 0, 104, 66, 0, 0, 236, 66, 0, 0, 104, 66, 0, 0, 238, 66, 0, 0, 104, 66, 0, 0, 240, 66, 0, 0, 104, 66, 0, 0, 242, 66, 0, 0, 104, 66, 0, 0, 244, 66, 0, 0, 104, 66, 0, 0, 246, 66, 0, 0, 104, 66, 0, 0, 248, 66, 0, 0, 104, 66, 0, 0, 250, 66, 0, 0, 104, 66, 0, 0, 252, 66, 0, 0, 104, 66, 0, 0, 254, 66, 0, 0, 104, 66, 0, 0, 0, 67, 0, 0, 104, 66, 0, 0, 1, 67, 0, 0, 104, 66, 0, 0, 2, 67, 0, 0, 104, 66, 0, 0, 3, 67, 0, 0, 104, 66, 0, 0, 4, 67, 0, 0, 104, 66, 0, 0, 5, 67, 0, 0, 104, 66, 0, 0, 6, 67, 0, 0, 104, 66, 0, 0, 7, 67, 0, 0, 104, 66, 0, 0, 8, 67, 0, 0, 104, 66, 0, 0, 9, 67, 0, 0, 104, 66, 0, 0, 10, 67, 0, 0, 104, 66, 0, 0, 11, 67, 0, 0, 104, 66, 0, 0, 12, 67, 0, 0, 104, 66, 0, 0, 13, 67, 0, 0, 104, 66, 0, 0, 14, 67, 0, 0, 104, 66, 0, 0, 15, 67, 0, 0, 104, 66, 0, 0, 16, 67, 0, 0, 104, 66, 0, 0, 17, 67, 0, 0, 104, 66, 0, 0, 18, 67, 0, 0, 104, 66, 0, 0, 19, 67, 0, 0, 104, 66, 0, 0, 20, 67, 0, 0, 104, 66, 0, 0, 21, 67, 0, 0, 104, 66, 0, 0, 22, 67, 0, 0, 104, 66, 0, 0, 23, 67, 0, 0, 104, 66, 0, 0, 24, 67, 0, 0, 104, 66, 0, 0, 25, 67, 0, 0, 104, 66, 0, 0, 26, 67, 0, 0, 104, 66, 0, 0, 27, 67, 0, 0, 104, 66, 0, 0, 28, 67, 0, 0, 104, 66, 0, 0, 29, 67, 0, 0, 104, 66, 0, 0, 30, 67, 0, 0, 104, 66, 0, 0, 31, 67, 0, 0, 104, 66, 0, 0, 32, 67, 0, 0, 104, 66, 0, 0, 33, 67, 0, 0, 104, 66, 0, 0, 34, 67, 0, 0, 104, 66, 0, 0, 35, 67, 0, 0, 104, 66, 0, 0, 36, 67, 0, 0, 104, 66, 0, 0, 37, 67, 0, 0, 104, 66, 0, 0, 38, 67, 0, 0, 104, 66, 0, 0, 39, 67, 0, 0, 104, 66, 0, 0, 40, 67, 0, 0, 104, 66, 0, 0, 41, 67, 0, 0, 104, 66, 0, 0, 42, 67, 0, 0, 104, 66, 0, 0, 43, 67, 0, 0, 104, 66, 0, 0, 44, 67, 0, 0, 104, 66, 0, 0, 45, 67, 0, 0, 104, 66, 0, 0, 46, 67, 0, 0, 104, 66, 0, 0, 47, 67, 0, 0, 104, 66, 0, 0, 48, 67, 0, 0, 104, 66, 0, 0, 49, 67, 0, 0, 104, 66, 0, 0, 50, 67, 0, 0, 104, 66, 0, 0, 51, 67, 0, 0, 104, 66, 0, 0, 52, 67, 0, 0, 104, 66, 0, 0, 53, 67, 0, 0, 104, 66, 0, 0, 54, 67, 0, 0, 104, 66, 0, 0, 55, 67, 0, 0, 108, 66, 0, 0, 184, 66, 0, 0, 108, 66, 0, 0, 186, 66, 0, 0, 108, 66, 0, 0, 188, 66, 0, 0, 108, 66, 0, 0, 190, 66, 0, 0, 108, 66, 0, 0, 192, 66, 0, 0, 108, 66, 0, 0, 194, 66, 0, 0, 108, 66, 0, 0, 196, 66, 0, 0, 108, 66, 0, 0, 198, 66, 0, 0, 108, 66, 0, 0, 200, 66, 0, 0, 108, 66, 0, 0, 202, 66, 0, 0, 108, 66, 0, 0, 204, 66, 0, 0, 108, 66, 0, 0, 206, 66, 0, 0, 108, 66, 0, 0, 208, 66, 0, 0, 108, 66, 0, 0, 210, 66, 0, 0, 108, 66, 0, 0, 212, 66, 0, 0, 108, 66, 0, 0, 214, 66, 0, 0, 108, 66, 0, 0, 216, 66, 0, 0, 108, 66, 0, 0, 218, 66, 0, 0, 108, 66, 0, 0, 220, 66, 0, 0, 108, 66, 0, 0, 222, 66, 0, 0, 108, 66, 0, 0, 224, 66, 0, 0, 108, 66, 0, 0, 226, 66, 0, 0, 108, 66, 0, 0, 228, 66, 0, 0, 108, 66, 0, 0, 230, 66, 0, 0, 108, 66, 0, 0, 232, 66, 0, 0, 108, 66, 0, 0, 234, 66, 0, 0, 108, 66, 0, 0, 236, 66, 0, 0, 108, 66, 0, 0, 238, 66, 0, 0, 108, 66, 0, 0, 240, 66, 0, 0, 108, 66, 0, 0, 242, 66, 0, 0, 108, 66, 0, 0, 244, 66, 0, 0, 108, 66, 0, 0, 246, 66, 0, 0, 108, 66, 0, 0, 248, 66, 0, 0, 108, 66, 0, 0, 250, 66, 0, 0, 108, 66, 0, 0, 252, 66, 0, 0, 108, 66, 0, 0, 254, 66, 0, 0, 108, 66, 0, 0, 0, 67, 0, 0, 108, 66, 0, 0, 1, 67, 0, 0, 108, 66, 0, 0, 2, 67, 0, 0, 108, 66, 0, 0, 3, 67, 0, 0, 108, 66, 0, 0, 4, 67, 0, 0, 108, 66, 0, 0, 5, 67, 0, 0, 108, 66, 0, 0, 6, 67, 0, 0, 108, 66, 0, 0, 7, 67, 0, 0, 108, 66, 0, 0, 8, 67, 0, 0, 108, 66, 0, 0, 9, 67, 0, 0, 108, 66, 0, 0, 10, 67, 0, 0, 108, 66, 0, 0, 11, 67, 0, 0, 108, 66, 0, 0, 12, 67, 0, 0, 108, 66, 0, 0, 13, 67, 0, 0, 108, 66, 0, 0, 14, 67, 0, 0, 108, 66, 0, 0, 15, 67, 0, 0, 108, 66, 0, 0, 16, 67, 0, 0, 108, 66, 0, 0, 17, 67, 0, 0, 108, 66, 0, 0, 18, 67, 0, 0, 108, 66, 0, 0, 19, 67, 0, 0, 108, 66, 0, 0, 20, 67, 0, 0, 108, 66, 0, 0, 21, 67, 0, 0, 108, 66, 0, 0, 22, 67, 0, 0, 108, 66, 0, 0, 23, 67, 0, 0, 108, 66, 0, 0, 24, 67, 0, 0, 108, 66, 0, 0, 25, 67, 0, 0, 108, 66, 0, 0, 26, 67, 0, 0, 108, 66, 0, 0, 27, 67, 0, 0, 108, 66, 0, 0, 28, 67, 0, 0, 108, 66, 0, 0, 29, 67, 0, 0, 108, 66, 0, 0, 30, 67, 0, 0, 108, 66, 0, 0, 31, 67, 0, 0, 108, 66, 0, 0, 32, 67, 0, 0, 108, 66, 0, 0, 33, 67, 0, 0, 108, 66, 0, 0, 34, 67, 0, 0, 108, 66, 0, 0, 35, 67, 0, 0, 108, 66, 0, 0, 36, 67, 0, 0, 108, 66, 0, 0, 37, 67, 0, 0, 108, 66, 0, 0, 38, 67, 0, 0, 108, 66, 0, 0, 39, 67, 0, 0, 108, 66, 0, 0, 40, 67, 0, 0, 108, 66, 0, 0, 41, 67, 0, 0, 108, 66, 0, 0, 42, 67, 0, 0, 108, 66, 0, 0, 43, 67, 0, 0, 108, 66, 0, 0, 44, 67, 0, 0, 108, 66, 0, 0, 45, 67, 0, 0, 108, 66, 0, 0, 46, 67, 0, 0, 108, 66, 0, 0, 47, 67, 0, 0, 108, 66, 0, 0, 48, 67, 0, 0, 108, 66, 0, 0, 49, 67, 0, 0, 108, 66, 0, 0, 50, 67, 0, 0, 108, 66, 0, 0, 51, 67, 0, 0, 108, 66, 0, 0, 52, 67, 0, 0, 108, 66, 0, 0, 53, 67, 0, 0, 108, 66, 0, 0, 54, 67, 0, 0, 108, 66, 0, 0, 55, 67, 0, 0, 112, 66, 0, 0, 184, 66, 0, 0, 112, 66, 0, 0, 186, 66, 0, 0, 112, 66, 0, 0, 188, 66, 0, 0, 112, 66, 0, 0, 190, 66, 0, 0, 112, 66, 0, 0, 192, 66, 0, 0, 112, 66, 0, 0, 194, 66, 0, 0, 112, 66, 0, 0, 196, 66, 0, 0, 112, 66, 0, 0, 198, 66, 0, 0, 112, 66, 0, 0, 200, 66, 0, 0, 112, 66, 0, 0, 202, 66, 0, 0, 112, 66, 0, 0, 204, 66, 0, 0, 112, 66, 0, 0, 206, 66, 0, 0, 112, 66, 0, 0, 208, 66, 0, 0, 112, 66, 0, 0, 210, 66, 0, 0, 112, 66, 0, 0, 212, 66, 0, 0, 112, 66, 0, 0, 214, 66, 0, 0, 112, 66, 0, 0, 216, 66, 0, 0, 112, 66, 0, 0, 218, 66, 0, 0, 112, 66, 0, 0, 220, 66, 0, 0, 112, 66, 0, 0, 222, 66, 0, 0, 112, 66, 0, 0, 224, 66, 0, 0, 112, 66, 0, 0, 226, 66, 0, 0, 112, 66, 0, 0, 228, 66, 0, 0, 112, 66, 0, 0, 230, 66, 0, 0, 112, 66, 0, 0, 232, 66, 0, 0, 112, 66, 0, 0, 234, 66, 0, 0, 112, 66, 0, 0, 236, 66, 0, 0, 112, 66, 0, 0, 238, 66, 0, 0, 112, 66, 0, 0, 240, 66, 0, 0, 112, 66, 0, 0, 242, 66, 0, 0, 112, 66, 0, 0, 244, 66, 0, 0, 112, 66, 0, 0, 246, 66, 0, 0, 112, 66, 0, 0, 248, 66, 0, 0, 112, 66, 0, 0, 250, 66, 0, 0, 112, 66, 0, 0, 252, 66, 0, 0, 112, 66, 0, 0, 254, 66, 0, 0, 112, 66, 0, 0, 0, 67, 0, 0, 112, 66, 0, 0, 1, 67, 0, 0, 112, 66, 0, 0, 2, 67, 0, 0, 112, 66, 0, 0, 3, 67, 0, 0, 112, 66, 0, 0, 4, 67, 0, 0, 112, 66, 0, 0, 5, 67, 0, 0, 112, 66, 0, 0, 6, 67, 0, 0, 112, 66, 0, 0, 7, 67, 0, 0, 112, 66, 0, 0, 8, 67, 0, 0, 112, 66, 0, 0, 9, 67, 0, 0, 112, 66, 0, 0, 10, 67, 0, 0, 112, 66, 0, 0, 11, 67, 0, 0, 112, 66, 0, 0, 12, 67, 0, 0, 112, 66, 0, 0, 13, 67, 0, 0, 112, 66, 0, 0, 14, 67, 0, 0, 112, 66, 0, 0, 15, 67, 0, 0, 112, 66, 0, 0, 16, 67, 0, 0, 112, 66, 0, 0, 17, 67, 0, 0, 112, 66, 0, 0, 18, 67, 0, 0, 112, 66, 0, 0, 19, 67, 0, 0, 112, 66, 0, 0, 20, 67, 0, 0, 112, 66, 0, 0, 21, 67, 0, 0, 112, 66, 0, 0, 22, 67, 0, 0, 112, 66, 0, 0, 23, 67, 0, 0, 112, 66, 0, 0, 24, 67, 0, 0, 112, 66, 0, 0, 25, 67, 0, 0, 112, 66, 0, 0, 26, 67, 0, 0, 112, 66, 0, 0, 27, 67, 0, 0, 112, 66, 0, 0, 28, 67, 0, 0, 112, 66, 0, 0, 29, 67, 0, 0, 112, 66, 0, 0, 30, 67, 0, 0, 112, 66, 0, 0, 31, 67, 0, 0, 112, 66, 0, 0, 32, 67, 0, 0, 112, 66, 0, 0, 33, 67, 0, 0, 112, 66, 0, 0, 34, 67, 0, 0, 112, 66, 0, 0, 35, 67, 0, 0, 112, 66, 0, 0, 36, 67, 0, 0, 112, 66, 0, 0, 37, 67, 0, 0, 112, 66, 0, 0, 38, 67, 0, 0, 112, 66, 0, 0, 39, 67, 0, 0, 112, 66, 0, 0, 40, 67, 0, 0, 112, 66, 0, 0, 41, 67, 0, 0, 112, 66, 0, 0, 42, 67, 0, 0, 112, 66, 0, 0, 43, 67, 0, 0, 112, 66, 0, 0, 44, 67, 0, 0, 112, 66, 0, 0, 45, 67, 0, 0, 112, 66, 0, 0, 46, 67, 0, 0, 112, 66, 0, 0, 47, 67, 0, 0, 112, 66, 0, 0, 48, 67, 0, 0, 112, 66, 0, 0, 49, 67, 0, 0, 112, 66, 0, 0, 50, 67, 0, 0, 112, 66, 0, 0, 51, 67, 0, 0, 112, 66, 0, 0, 52, 67, 0, 0, 112, 66, 0, 0, 53, 67, 0, 0, 112, 66, 0, 0, 54, 67, 0, 0, 112, 66, 0, 0, 55, 67, 0, 0, 116, 66, 0, 0, 184, 66, 0, 0, 116, 66, 0, 0, 186, 66, 0, 0, 116, 66, 0, 0, 188, 66, 0, 0, 116, 66, 0, 0, 190, 66, 0, 0, 116, 66, 0, 0, 192, 66, 0, 0, 116, 66, 0, 0, 194, 66, 0, 0, 116, 66, 0, 0, 196, 66, 0, 0, 116, 66, 0, 0, 198, 66, 0, 0, 116, 66, 0, 0, 200, 66, 0, 0, 116, 66, 0, 0, 202, 66, 0, 0, 116, 66, 0, 0, 204, 66, 0, 0, 116, 66, 0, 0, 206, 66, 0, 0, 116, 66, 0, 0, 208, 66, 0, 0, 116, 66, 0, 0, 210, 66, 0, 0, 116, 66, 0, 0, 212, 66, 0, 0, 116, 66, 0, 0, 214, 66, 0, 0, 116, 66, 0, 0, 216, 66, 0, 0, 116, 66, 0, 0, 218, 66, 0, 0, 116, 66, 0, 0, 220, 66, 0, 0, 116, 66, 0, 0, 222, 66, 0, 0, 116, 66, 0, 0, 224, 66, 0, 0, 116, 66, 0, 0, 226, 66, 0, 0, 116, 66, 0, 0, 228, 66, 0, 0, 116, 66, 0, 0, 230, 66, 0, 0, 116, 66, 0, 0, 232, 66, 0, 0, 116, 66, 0, 0, 234, 66, 0, 0, 116, 66, 0, 0, 236, 66, 0, 0, 116, 66, 0, 0, 238, 66, 0, 0, 116, 66, 0, 0, 240, 66, 0, 0, 116, 66, 0, 0, 242, 66, 0, 0, 116, 66, 0, 0, 244, 66, 0, 0, 116, 66, 0, 0, 246, 66, 0, 0, 116, 66, 0, 0, 248, 66, 0, 0, 116, 66, 0, 0, 250, 66, 0, 0, 116, 66, 0, 0, 252, 66, 0, 0, 116, 66, 0, 0, 254, 66, 0, 0, 116, 66, 0, 0, 0, 67, 0, 0, 116, 66, 0, 0, 1, 67, 0, 0, 116, 66, 0, 0, 2, 67, 0, 0, 116, 66, 0, 0, 3, 67, 0, 0, 116, 66, 0, 0, 4, 67, 0, 0, 116, 66, 0, 0, 5, 67, 0, 0, 116, 66, 0, 0, 6, 67, 0, 0, 116, 66, 0, 0, 7, 67, 0, 0, 116, 66, 0, 0, 8, 67, 0, 0, 116, 66, 0, 0, 9, 67, 0, 0, 116, 66, 0, 0, 10, 67, 0, 0, 116, 66, 0, 0, 11, 67, 0, 0, 116, 66, 0, 0, 12, 67, 0, 0, 116, 66, 0, 0, 13, 67, 0, 0, 116, 66, 0, 0, 14, 67, 0, 0, 116, 66, 0, 0, 15, 67, 0, 0, 116, 66, 0, 0, 16, 67, 0, 0, 116, 66, 0, 0, 17, 67, 0, 0, 116, 66, 0, 0, 18, 67, 0, 0, 116, 66, 0, 0, 19, 67, 0, 0, 116, 66, 0, 0, 20, 67, 0, 0, 116, 66, 0, 0, 21, 67, 0, 0, 116, 66, 0, 0, 22, 67, 0, 0, 116, 66, 0, 0, 23, 67, 0, 0, 116, 66, 0, 0, 24, 67, 0, 0, 116, 66, 0, 0, 25, 67, 0, 0, 116, 66, 0, 0, 26, 67, 0, 0, 116, 66, 0, 0, 27, 67, 0, 0, 116, 66, 0, 0, 28, 67, 0, 0, 116, 66, 0, 0, 29, 67, 0, 0, 116, 66, 0, 0, 30, 67, 0, 0, 116, 66, 0, 0, 31, 67, 0, 0, 116, 66, 0, 0, 32, 67, 0, 0, 116, 66, 0, 0, 33, 67, 0, 0, 116, 66, 0, 0, 34, 67, 0, 0, 116, 66, 0, 0, 35, 67, 0, 0, 116, 66, 0, 0, 36, 67, 0, 0, 116, 66, 0, 0, 37, 67, 0, 0, 116, 66, 0, 0, 38, 67, 0, 0, 116, 66, 0, 0, 39, 67, 0, 0, 116, 66, 0, 0, 40, 67, 0, 0, 116, 66, 0, 0, 41, 67, 0, 0, 116, 66, 0, 0, 42, 67, 0, 0, 116, 66, 0, 0, 43, 67, 0, 0, 116, 66, 0, 0, 44, 67, 0, 0, 116, 66, 0, 0, 45, 67, 0, 0, 116, 66, 0, 0, 46, 67, 0, 0, 116, 66, 0, 0, 47, 67, 0, 0, 116, 66, 0, 0, 48, 67, 0, 0, 116, 66, 0, 0, 49, 67, 0, 0, 116, 66, 0, 0, 50, 67, 0, 0, 116, 66, 0, 0, 51, 67, 0, 0, 116, 66, 0, 0, 52, 67, 0, 0, 116, 66, 0, 0, 53, 67, 0, 0, 116, 66, 0, 0, 54, 67, 0, 0, 116, 66, 0, 0, 55, 67, 0, 0, 120, 66, 0, 0, 184, 66, 0, 0, 120, 66, 0, 0, 186, 66, 0, 0, 120, 66, 0, 0, 188, 66, 0, 0, 120, 66, 0, 0, 190, 66, 0, 0, 120, 66, 0, 0, 192, 66, 0, 0, 120, 66, 0, 0, 194, 66, 0, 0, 120, 66, 0, 0, 196, 66, 0, 0, 120, 66, 0, 0, 198, 66, 0, 0, 120, 66, 0, 0, 200, 66, 0, 0, 120, 66, 0, 0, 202, 66, 0, 0, 120, 66, 0, 0, 204, 66, 0, 0, 120, 66, 0, 0, 206, 66, 0, 0, 120, 66, 0, 0, 208, 66, 0, 0, 120, 66, 0, 0, 210, 66, 0, 0, 120, 66, 0, 0, 212, 66, 0, 0, 120, 66, 0, 0, 214, 66, 0, 0, 120, 66, 0, 0, 216, 66, 0, 0, 120, 66, 0, 0, 0, 67, 0, 0, 120, 66, 0, 0, 1, 67, 0, 0, 120, 66, 0, 0, 2, 67, 0, 0, 120, 66, 0, 0, 3, 67, 0, 0, 120, 66, 0, 0, 4, 67, 0, 0, 120, 66, 0, 0, 5, 67, 0, 0, 120, 66, 0, 0, 6, 67, 0, 0, 120, 66, 0, 0, 7, 67, 0, 0, 120, 66, 0, 0, 8, 67, 0, 0, 120, 66, 0, 0, 9, 67, 0, 0, 120, 66, 0, 0, 10, 67, 0, 0, 120, 66, 0, 0, 11, 67, 0, 0, 120, 66, 0, 0, 12, 67, 0, 0, 120, 66, 0, 0, 13, 67, 0, 0, 120, 66, 0, 0, 40, 67, 0, 0, 120, 66, 0, 0, 41, 67, 0, 0, 120, 66, 0, 0, 42, 67, 0, 0, 120, 66, 0, 0, 43, 67, 0, 0, 120, 66, 0, 0, 44, 67, 0, 0, 120, 66, 0, 0, 45, 67, 0, 0, 120, 66, 0, 0, 46, 67, 0, 0, 120, 66, 0, 0, 47, 67, 0, 0, 120, 66, 0, 0, 48, 67, 0, 0, 120, 66, 0, 0, 49, 67, 0, 0, 120, 66, 0, 0, 50, 67, 0, 0, 120, 66, 0, 0, 51, 67, 0, 0, 120, 66, 0, 0, 52, 67, 0, 0, 120, 66, 0, 0, 53, 67, 0, 0, 120, 66, 0, 0, 54, 67, 0, 0, 120, 66, 0, 0, 55, 67, 0, 0, 124, 66, 0, 0, 184, 66, 0, 0, 124, 66, 0, 0, 186, 66, 0, 0, 124, 66, 0, 0, 188, 66, 0, 0, 124, 66, 0, 0, 190, 66, 0, 0, 124, 66, 0, 0, 192, 66, 0, 0, 124, 66, 0, 0, 194, 66, 0, 0, 124, 66, 0, 0, 196, 66, 0, 0, 124, 66, 0, 0, 198, 66, 0, 0, 124, 66, 0, 0, 200, 66, 0, 0, 124, 66, 0, 0, 202, 66, 0, 0, 124, 66, 0, 0, 204, 66, 0, 0, 124, 66, 0, 0, 206, 66, 0, 0, 124, 66, 0, 0, 208, 66, 0, 0, 124, 66, 0, 0, 210, 66, 0, 0, 124, 66, 0, 0, 212, 66, 0, 0, 124, 66, 0, 0, 0, 67, 0, 0, 124, 66, 0, 0, 1, 67, 0, 0, 124, 66, 0, 0, 2, 67, 0, 0, 124, 66, 0, 0, 3, 67, 0, 0, 124, 66, 0, 0, 4, 67, 0, 0, 124, 66, 0, 0, 5, 67, 0, 0, 124, 66, 0, 0, 6, 67, 0, 0, 124, 66, 0, 0, 7, 67, 0, 0, 124, 66, 0, 0, 8, 67, 0, 0, 124, 66, 0, 0, 9, 67, 0, 0, 124, 66, 0, 0, 10, 67, 0, 0, 124, 66, 0, 0, 11, 67, 0, 0, 124, 66, 0, 0, 12, 67, 0, 0, 124, 66, 0, 0, 13, 67, 0, 0, 124, 66, 0, 0, 41, 67, 0, 0, 124, 66, 0, 0, 42, 67, 0, 0, 124, 66, 0, 0, 43, 67, 0, 0, 124, 66, 0, 0, 44, 67, 0, 0, 124, 66, 0, 0, 45, 67, 0, 0, 124, 66, 0, 0, 46, 67, 0, 0, 124, 66, 0, 0, 47, 67, 0, 0, 124, 66, 0, 0, 48, 67, 0, 0, 124, 66, 0, 0, 49, 67, 0, 0, 124, 66, 0, 0, 50, 67, 0, 0, 124, 66, 0, 0, 51, 67, 0, 0, 124, 66, 0, 0, 52, 67, 0, 0, 124, 66, 0, 0, 53, 67, 0, 0, 124, 66, 0, 0, 54, 67, 0, 0, 124, 66, 0, 0, 55, 67, 0, 0, 128, 66, 0, 0, 184, 66, 0, 0, 128, 66, 0, 0, 186, 66, 0, 0, 128, 66, 0, 0, 188, 66, 0, 0, 128, 66, 0, 0, 190, 66, 0, 0, 128, 66, 0, 0, 192, 66, 0, 0, 128, 66, 0, 0, 194, 66, 0, 0, 128, 66, 0, 0, 196, 66, 0, 0, 128, 66, 0, 0, 198, 66, 0, 0, 128, 66, 0, 0, 200, 66, 0, 0, 128, 66, 0, 0, 202, 66, 0, 0, 128, 66, 0, 0, 204, 66, 0, 0, 128, 66, 0, 0, 206, 66, 0, 0, 128, 66, 0, 0, 208, 66, 0, 0, 128, 66, 0, 0, 210, 66, 0, 0, 128, 66, 0, 0, 0, 67, 0, 0, 128, 66, 0, 0, 1, 67, 0, 0, 128, 66, 0, 0, 2, 67, 0, 0, 128, 66, 0, 0, 3, 67, 0, 0, 128, 66, 0, 0, 4, 67, 0, 0, 128, 66, 0, 0, 5, 67, 0, 0, 128, 66, 0, 0, 6, 67, 0, 0, 128, 66, 0, 0, 7, 67, 0, 0, 128, 66, 0, 0, 8, 67, 0, 0, 128, 66, 0, 0, 9, 67, 0, 0, 128, 66, 0, 0, 10, 67, 0, 0, 128, 66, 0, 0, 11, 67, 0, 0, 128, 66, 0, 0, 12, 67, 0, 0, 128, 66, 0, 0, 13, 67, 0, 0, 128, 66, 0, 0, 43, 67, 0, 0, 128, 66, 0, 0, 44, 67, 0, 0, 128, 66, 0, 0, 45, 67, 0, 0, 128, 66, 0, 0, 46, 67, 0, 0, 128, 66, 0, 0, 47, 67, 0, 0, 128, 66, 0, 0, 48, 67, 0, 0, 128, 66, 0, 0, 49, 67, 0, 0, 128, 66, 0, 0, 50, 67, 0, 0, 128, 66, 0, 0, 51, 67, 0, 0, 128, 66, 0, 0, 52, 67, 0, 0, 128, 66, 0, 0, 53, 67, 0, 0, 128, 66, 0, 0, 54, 67, 0, 0, 128, 66, 0, 0, 55, 67, 0, 0, 130, 66, 0, 0, 184, 66, 0, 0, 130, 66, 0, 0, 186, 66, 0, 0, 130, 66, 0, 0, 188, 66, 0, 0, 130, 66, 0, 0, 190, 66, 0, 0, 130, 66, 0, 0, 192, 66, 0, 0, 130, 66, 0, 0, 194, 66, 0, 0, 130, 66, 0, 0, 196, 66, 0, 0, 130, 66, 0, 0, 198, 66, 0, 0, 130, 66, 0, 0, 200, 66, 0, 0, 130, 66, 0, 0, 202, 66, 0, 0, 130, 66, 0, 0, 204, 66, 0, 0, 130, 66, 0, 0, 206, 66, 0, 0, 130, 66, 0, 0, 208, 66, 0, 0, 130, 66, 0, 0, 0, 67, 0, 0, 130, 66, 0, 0, 1, 67, 0, 0, 130, 66, 0, 0, 2, 67, 0, 0, 130, 66, 0, 0, 3, 67, 0, 0, 130, 66, 0, 0, 4, 67, 0, 0, 130, 66, 0, 0, 5, 67, 0, 0, 130, 66, 0, 0, 6, 67, 0, 0, 130, 66, 0, 0, 7, 67, 0, 0, 130, 66, 0, 0, 8, 67, 0, 0, 130, 66, 0, 0, 9, 67, 0, 0, 130, 66, 0, 0, 10, 67, 0, 0, 130, 66, 0, 0, 11, 67, 0, 0, 130, 66, 0, 0, 12, 67, 0, 0, 130, 66, 0, 0, 13, 67, 0, 0, 130, 66, 0, 0, 43, 67, 0, 0, 130, 66, 0, 0, 44, 67, 0, 0, 130, 66, 0, 0, 45, 67, 0, 0, 130, 66, 0, 0, 46, 67, 0, 0, 130, 66, 0, 0, 47, 67, 0, 0, 130, 66, 0, 0, 48, 67, 0, 0, 130, 66, 0, 0, 49, 67, 0, 0, 130, 66, 0, 0, 50, 67, 0, 0, 130, 66, 0, 0, 51, 67, 0, 0, 130, 66, 0, 0, 52, 67, 0, 0, 130, 66, 0, 0, 53, 67, 0, 0, 130, 66, 0, 0, 54, 67, 0, 0, 130, 66, 0, 0, 55, 67, 0, 0, 132, 66, 0, 0, 184, 66, 0, 0, 132, 66, 0, 0, 186, 66, 0, 0, 132, 66, 0, 0, 188, 66, 0, 0, 132, 66, 0, 0, 190, 66, 0, 0, 132, 66, 0, 0, 192, 66, 0, 0, 132, 66, 0, 0, 194, 66, 0, 0, 132, 66, 0, 0, 196, 66, 0, 0, 132, 66, 0, 0, 198, 66, 0, 0, 132, 66, 0, 0, 200, 66, 0, 0, 132, 66, 0, 0, 202, 66, 0, 0, 132, 66, 0, 0, 204, 66, 0, 0, 132, 66, 0, 0, 206, 66, 0, 0, 132, 66, 0, 0, 0, 67, 0, 0, 132, 66, 0, 0, 1, 67, 0, 0, 132, 66, 0, 0, 2, 67, 0, 0, 132, 66, 0, 0, 3, 67, 0, 0, 132, 66, 0, 0, 4, 67, 0, 0, 132, 66, 0, 0, 5, 67, 0, 0, 132, 66, 0, 0, 6, 67, 0, 0, 132, 66, 0, 0, 7, 67, 0, 0, 132, 66, 0, 0, 8, 67, 0, 0, 132, 66, 0, 0, 9, 67, 0, 0, 132, 66, 0, 0, 10, 67, 0, 0, 132, 66, 0, 0, 11, 67, 0, 0, 132, 66, 0, 0, 12, 67, 0, 0, 132, 66, 0, 0, 13, 67, 0, 0, 132, 66, 0, 0, 44, 67, 0, 0, 132, 66, 0, 0, 45, 67, 0, 0, 132, 66, 0, 0, 46, 67, 0, 0, 132, 66, 0, 0, 47, 67, 0, 0, 132, 66, 0, 0, 48, 67, 0, 0, 132, 66, 0, 0, 49, 67, 0, 0, 132, 66, 0, 0, 50, 67, 0, 0, 132, 66, 0, 0, 51, 67, 0, 0, 132, 66, 0, 0, 52, 67, 0, 0, 132, 66, 0, 0, 53, 67, 0, 0, 132, 66, 0, 0, 54, 67, 0, 0, 132, 66, 0, 0, 55, 67, 0, 0, 134, 66, 0, 0, 184, 66, 0, 0, 134, 66, 0, 0, 186, 66, 0, 0, 134, 66, 0, 0, 188, 66, 0, 0, 134, 66, 0, 0, 190, 66, 0, 0, 134, 66, 0, 0, 192, 66, 0, 0, 134, 66, 0, 0, 194, 66, 0, 0, 134, 66, 0, 0, 196, 66, 0, 0, 134, 66, 0, 0, 198, 66, 0, 0, 134, 66, 0, 0, 200, 66, 0, 0, 134, 66, 0, 0, 202, 66, 0, 0, 134, 66, 0, 0, 204, 66, 0, 0, 134, 66, 0, 0, 206, 66, 0, 0, 134, 66, 0, 0, 0, 67, 0, 0, 134, 66, 0, 0, 1, 67, 0, 0, 134, 66, 0, 0, 2, 67, 0, 0, 134, 66, 0, 0, 3, 67, 0, 0, 134, 66, 0, 0, 4, 67, 0, 0, 134, 66, 0, 0, 5, 67, 0, 0, 134, 66, 0, 0, 6, 67, 0, 0, 134, 66, 0, 0, 7, 67, 0, 0, 134, 66, 0, 0, 8, 67, 0, 0, 134, 66, 0, 0, 9, 67, 0, 0, 134, 66, 0, 0, 10, 67, 0, 0, 134, 66, 0, 0, 11, 67, 0, 0, 134, 66, 0, 0, 12, 67, 0, 0, 134, 66, 0, 0, 13, 67, 0, 0, 134, 66, 0, 0, 44, 67, 0, 0, 134, 66, 0, 0, 45, 67, 0, 0, 134, 66, 0, 0, 46, 67, 0, 0, 134, 66, 0, 0, 47, 67, 0, 0, 134, 66, 0, 0, 48, 67, 0, 0, 134, 66, 0, 0, 49, 67, 0, 0, 134, 66, 0, 0, 50, 67, 0, 0, 134, 66, 0, 0, 51, 67, 0, 0, 134, 66, 0, 0, 52, 67, 0, 0, 134, 66, 0, 0, 53, 67, 0, 0, 134, 66, 0, 0, 54, 67, 0, 0, 134, 66, 0, 0, 55, 67, 0, 0, 136, 66, 0, 0, 184, 66, 0, 0, 136, 66, 0, 0, 186, 66, 0, 0, 136, 66, 0, 0, 188, 66, 0, 0, 136, 66, 0, 0, 190, 66, 0, 0, 136, 66, 0, 0, 192, 66, 0, 0, 136, 66, 0, 0, 194, 66, 0, 0, 136, 66, 0, 0, 196, 66, 0, 0, 136, 66, 0, 0, 198, 66, 0, 0, 136, 66, 0, 0, 200, 66, 0, 0, 136, 66, 0, 0, 202, 66, 0, 0, 136, 66, 0, 0, 204, 66, 0, 0, 136, 66, 0, 0, 206, 66, 0, 0, 136, 66, 0, 0, 0, 67, 0, 0, 136, 66, 0, 0, 1, 67, 0, 0, 136, 66, 0, 0, 2, 67, 0, 0, 136, 66, 0, 0, 3, 67, 0, 0, 136, 66, 0, 0, 4, 67, 0, 0, 136, 66, 0, 0, 5, 67, 0, 0, 136, 66, 0, 0, 6, 67, 0, 0, 136, 66, 0, 0, 7, 67, 0, 0, 136, 66, 0, 0, 8, 67, 0, 0, 136, 66, 0, 0, 9, 67, 0, 0, 136, 66, 0, 0, 10, 67, 0, 0, 136, 66, 0, 0, 11, 67, 0, 0, 136, 66, 0, 0, 12, 67, 0, 0, 136, 66, 0, 0, 13, 67, 0, 0, 136, 66, 0, 0, 44, 67, 0, 0, 136, 66, 0, 0, 45, 67, 0, 0, 136, 66, 0, 0, 46, 67, 0, 0, 136, 66, 0, 0, 47, 67, 0, 0, 136, 66, 0, 0, 48, 67, 0, 0, 136, 66, 0, 0, 49, 67, 0, 0, 136, 66, 0, 0, 50, 67, 0, 0, 136, 66, 0, 0, 51, 67, 0, 0, 136, 66, 0, 0, 52, 67, 0, 0, 136, 66, 0, 0, 53, 67, 0, 0, 136, 66, 0, 0, 54, 67, 0, 0, 136, 66, 0, 0, 55, 67, 0, 0, 138, 66, 0, 0, 184, 66, 0, 0, 138, 66, 0, 0, 186, 66, 0, 0, 138, 66, 0, 0, 188, 66, 0, 0, 138, 66, 0, 0, 190, 66, 0, 0, 138, 66, 0, 0, 192, 66, 0, 0, 138, 66, 0, 0, 194, 66, 0, 0, 138, 66, 0, 0, 196, 66, 0, 0, 138, 66, 0, 0, 198, 66, 0, 0, 138, 66, 0, 0, 200, 66, 0, 0, 138, 66, 0, 0, 202, 66, 0, 0, 138, 66, 0, 0, 204, 66, 0, 0, 138, 66, 0, 0, 206, 66, 0, 0, 138, 66, 0, 0, 0, 67, 0, 0, 138, 66, 0, 0, 1, 67, 0, 0, 138, 66, 0, 0, 2, 67, 0, 0, 138, 66, 0, 0, 3, 67, 0, 0, 138, 66, 0, 0, 4, 67, 0, 0, 138, 66, 0, 0, 5, 67, 0, 0, 138, 66, 0, 0, 6, 67, 0, 0, 138, 66, 0, 0, 7, 67, 0, 0, 138, 66, 0, 0, 8, 67, 0, 0, 138, 66, 0, 0, 9, 67, 0, 0, 138, 66, 0, 0, 10, 67, 0, 0, 138, 66, 0, 0, 11, 67, 0, 0, 138, 66, 0, 0, 12, 67, 0, 0, 138, 66, 0, 0, 13, 67, 0, 0, 138, 66, 0, 0, 44, 67, 0, 0, 138, 66, 0, 0, 45, 67, 0, 0, 138, 66, 0, 0, 46, 67, 0, 0, 138, 66, 0, 0, 47, 67, 0, 0, 138, 66, 0, 0, 48, 67, 0, 0, 138, 66, 0, 0, 49, 67, 0, 0, 138, 66, 0, 0, 50, 67, 0, 0, 138, 66, 0, 0, 51, 67, 0, 0, 138, 66, 0, 0, 52, 67, 0, 0, 138, 66, 0, 0, 53, 67, 0, 0, 138, 66, 0, 0, 54, 67, 0, 0, 138, 66, 0, 0, 55, 67, 0, 0, 140, 66, 0, 0, 184, 66, 0, 0, 140, 66, 0, 0, 186, 66, 0, 0, 140, 66, 0, 0, 188, 66, 0, 0, 140, 66, 0, 0, 190, 66, 0, 0, 140, 66, 0, 0, 192, 66, 0, 0, 140, 66, 0, 0, 194, 66, 0, 0, 140, 66, 0, 0, 196, 66, 0, 0, 140, 66, 0, 0, 198, 66, 0, 0, 140, 66, 0, 0, 200, 66, 0, 0, 140, 66, 0, 0, 202, 66, 0, 0, 140, 66, 0, 0, 204, 66, 0, 0, 140, 66, 0, 0, 206, 66, 0, 0, 140, 66, 0, 0, 0, 67, 0, 0, 140, 66, 0, 0, 1, 67, 0, 0, 140, 66, 0, 0, 2, 67, 0, 0, 140, 66, 0, 0, 3, 67, 0, 0, 140, 66, 0, 0, 4, 67, 0, 0, 140, 66, 0, 0, 5, 67, 0, 0, 140, 66, 0, 0, 6, 67, 0, 0, 140, 66, 0, 0, 7, 67, 0, 0, 140, 66, 0, 0, 8, 67, 0, 0, 140, 66, 0, 0, 9, 67, 0, 0, 140, 66, 0, 0, 10, 67, 0, 0, 140, 66, 0, 0, 11, 67, 0, 0, 140, 66, 0, 0, 12, 67, 0, 0, 140, 66, 0, 0, 13, 67, 0, 0, 140, 66, 0, 0, 45, 67, 0, 0, 140, 66, 0, 0, 46, 67, 0, 0, 140, 66, 0, 0, 47, 67, 0, 0, 140, 66, 0, 0, 48, 67, 0, 0, 140, 66, 0, 0, 49, 67, 0, 0, 140, 66, 0, 0, 50, 67, 0, 0, 140, 66, 0, 0, 51, 67, 0, 0, 140, 66, 0, 0, 52, 67, 0, 0, 140, 66, 0, 0, 53, 67, 0, 0, 140, 66, 0, 0, 54, 67, 0, 0, 140, 66, 0, 0, 55, 67, 0, 0, 142, 66, 0, 0, 184, 66, 0, 0, 142, 66, 0, 0, 186, 66, 0, 0, 142, 66, 0, 0, 188, 66, 0, 0, 142, 66, 0, 0, 190, 66, 0, 0, 142, 66, 0, 0, 192, 66, 0, 0, 142, 66, 0, 0, 194, 66, 0, 0, 142, 66, 0, 0, 196, 66, 0, 0, 142, 66, 0, 0, 198, 66, 0, 0, 142, 66, 0, 0, 200, 66, 0, 0, 142, 66, 0, 0, 202, 66, 0, 0, 142, 66, 0, 0, 204, 66, 0, 0, 142, 66, 0, 0, 206, 66, 0, 0, 142, 66, 0, 0, 0, 67, 0, 0, 142, 66, 0, 0, 1, 67, 0, 0, 142, 66, 0, 0, 2, 67, 0, 0, 142, 66, 0, 0, 3, 67, 0, 0, 142, 66, 0, 0, 4, 67, 0, 0, 142, 66, 0, 0, 5, 67, 0, 0, 142, 66, 0, 0, 6, 67, 0, 0, 142, 66, 0, 0, 7, 67, 0, 0, 142, 66, 0, 0, 8, 67, 0, 0, 142, 66, 0, 0, 9, 67, 0, 0, 142, 66, 0, 0, 10, 67, 0, 0, 142, 66, 0, 0, 11, 67, 0, 0, 142, 66, 0, 0, 12, 67, 0, 0, 142, 66, 0, 0, 13, 67, 0, 0, 142, 66, 0, 0, 45, 67, 0, 0, 142, 66, 0, 0, 46, 67, 0, 0, 142, 66, 0, 0, 47, 67, 0, 0, 142, 66, 0, 0, 48, 67, 0, 0, 142, 66, 0, 0, 49, 67, 0, 0, 142, 66, 0, 0, 50, 67, 0, 0, 142, 66, 0, 0, 51, 67, 0, 0, 142, 66, 0, 0, 52, 67, 0, 0, 142, 66, 0, 0, 53, 67, 0, 0, 142, 66, 0, 0, 54, 67, 0, 0, 142, 66, 0, 0, 55, 67, 0, 0, 144, 66, 0, 0, 184, 66, 0, 0, 144, 66, 0, 0, 186, 66, 0, 0, 144, 66, 0, 0, 188, 66, 0, 0, 144, 66, 0, 0, 190, 66, 0, 0, 144, 66, 0, 0, 192, 66, 0, 0, 144, 66, 0, 0, 194, 66, 0, 0, 144, 66, 0, 0, 196, 66, 0, 0, 144, 66, 0, 0, 198, 66, 0, 0, 144, 66, 0, 0, 200, 66, 0, 0, 144, 66, 0, 0, 202, 66, 0, 0, 144, 66, 0, 0, 204, 66, 0, 0, 144, 66, 0, 0, 0, 67, 0, 0, 144, 66, 0, 0, 1, 67, 0, 0, 144, 66, 0, 0, 2, 67, 0, 0, 144, 66, 0, 0, 3, 67, 0, 0, 144, 66, 0, 0, 4, 67, 0, 0, 144, 66, 0, 0, 5, 67, 0, 0, 144, 66, 0, 0, 6, 67, 0, 0, 144, 66, 0, 0, 7, 67, 0, 0, 144, 66, 0, 0, 8, 67, 0, 0, 144, 66, 0, 0, 9, 67, 0, 0, 144, 66, 0, 0, 10, 67, 0, 0, 144, 66, 0, 0, 11, 67, 0, 0, 144, 66, 0, 0, 12, 67, 0, 0, 144, 66, 0, 0, 13, 67, 0, 0, 144, 66, 0, 0, 45, 67, 0, 0, 144, 66, 0, 0, 46, 67, 0, 0, 144, 66, 0, 0, 47, 67, 0, 0, 144, 66, 0, 0, 48, 67, 0, 0, 144, 66, 0, 0, 49, 67, 0, 0, 144, 66, 0, 0, 50, 67, 0, 0, 144, 66, 0, 0, 51, 67, 0, 0, 144, 66, 0, 0, 52, 67, 0, 0, 144, 66, 0, 0, 53, 67, 0, 0, 144, 66, 0, 0, 54, 67, 0, 0, 144, 66, 0, 0, 55, 67, 0, 0, 146, 66, 0, 0, 184, 66, 0, 0, 146, 66, 0, 0, 186, 66, 0, 0, 146, 66, 0, 0, 188, 66, 0, 0, 146, 66, 0, 0, 190, 66, 0, 0, 146, 66, 0, 0, 192, 66, 0, 0, 146, 66, 0, 0, 194, 66, 0, 0, 146, 66, 0, 0, 196, 66, 0, 0, 146, 66, 0, 0, 198, 66, 0, 0, 146, 66, 0, 0, 200, 66, 0, 0, 146, 66, 0, 0, 202, 66, 0, 0, 146, 66, 0, 0, 0, 67, 0, 0, 146, 66, 0, 0, 1, 67, 0, 0, 146, 66, 0, 0, 2, 67, 0, 0, 146, 66, 0, 0, 3, 67, 0, 0, 146, 66, 0, 0, 4, 67, 0, 0, 146, 66, 0, 0, 5, 67, 0, 0, 146, 66, 0, 0, 6, 67, 0, 0, 146, 66, 0, 0, 7, 67, 0, 0, 146, 66, 0, 0, 8, 67, 0, 0, 146, 66, 0, 0, 9, 67, 0, 0, 146, 66, 0, 0, 10, 67, 0, 0, 146, 66, 0, 0, 11, 67, 0, 0, 146, 66, 0, 0, 12, 67, 0, 0, 146, 66, 0, 0, 13, 67, 0, 0, 146, 66, 0, 0, 46, 67, 0, 0, 146, 66, 0, 0, 47, 67, 0, 0, 146, 66, 0, 0, 48, 67, 0, 0, 146, 66, 0, 0, 49, 67, 0, 0, 146, 66, 0, 0, 50, 67, 0, 0, 146, 66, 0, 0, 51, 67, 0, 0, 146, 66, 0, 0, 52, 67, 0, 0, 146, 66, 0, 0, 53, 67, 0, 0, 146, 66, 0, 0, 54, 67, 0, 0, 146, 66, 0, 0, 55, 67, 0, 0, 148, 66, 0, 0, 0, 67, 0, 0, 148, 66, 0, 0, 1, 67, 0, 0, 148, 66, 0, 0, 2, 67, 0, 0, 148, 66, 0, 0, 3, 67, 0, 0, 148, 66, 0, 0, 4, 67, 0, 0, 148, 66, 0, 0, 5, 67, 0, 0, 148, 66, 0, 0, 6, 67, 0, 0, 148, 66, 0, 0, 7, 67, 0, 0, 148, 66, 0, 0, 8, 67, 0, 0, 148, 66, 0, 0, 9, 67, 0, 0, 148, 66, 0, 0, 10, 67, 0, 0, 148, 66, 0, 0, 11, 67, 0, 0, 148, 66, 0, 0, 12, 67, 0, 0, 148, 66, 0, 0, 13, 67, 0, 0, 150, 66, 0, 0, 0, 67, 0, 0, 150, 66, 0, 0, 1, 67, 0, 0, 150, 66, 0, 0, 2, 67, 0, 0, 150, 66, 0, 0, 3, 67, 0, 0, 150, 66, 0, 0, 4, 67, 0, 0, 150, 66, 0, 0, 5, 67, 0, 0, 150, 66, 0, 0, 6, 67, 0, 0, 150, 66, 0, 0, 7, 67, 0, 0, 150, 66, 0, 0, 8, 67, 0, 0, 150, 66, 0, 0, 9, 67, 0, 0, 150, 66, 0, 0, 10, 67, 0, 0, 150, 66, 0, 0, 11, 67, 0, 0, 150, 66, 0, 0, 12, 67, 0, 0, 150, 66, 0, 0, 13, 67, 0, 0, 152, 66, 0, 0, 0, 67, 0, 0, 152, 66, 0, 0, 1, 67, 0, 0, 152, 66, 0, 0, 2, 67, 0, 0, 152, 66, 0, 0, 3, 67, 0, 0, 152, 66, 0, 0, 4, 67, 0, 0, 152, 66, 0, 0, 5, 67, 0, 0, 152, 66, 0, 0, 6, 67, 0, 0, 152, 66, 0, 0, 7, 67, 0, 0, 152, 66, 0, 0, 8, 67, 0, 0, 152, 66, 0, 0, 9, 67, 0, 0, 152, 66, 0, 0, 10, 67, 0, 0, 152, 66, 0, 0, 11, 67, 0, 0, 152, 66, 0, 0, 12, 67, 0, 0, 152, 66, 0, 0, 13, 67, 0, 0, 154, 66, 0, 0, 0, 67, 0, 0, 154, 66, 0, 0, 1, 67, 0, 0, 154, 66, 0, 0, 2, 67, 0, 0, 154, 66, 0, 0, 3, 67, 0, 0, 154, 66, 0, 0, 4, 67, 0, 0, 154, 66, 0, 0, 5, 67, 0, 0, 154, 66, 0, 0, 6, 67, 0, 0, 154, 66, 0, 0, 7, 67, 0, 0, 154, 66, 0, 0, 8, 67, 0, 0, 154, 66, 0, 0, 9, 67, 0, 0, 154, 66, 0, 0, 10, 67, 0, 0, 154, 66, 0, 0, 11, 67, 0, 0, 154, 66, 0, 0, 12, 67, 0, 0, 154, 66, 0, 0, 13, 67, 0, 0, 156, 66, 0, 0, 0, 67, 0, 0, 156, 66, 0, 0, 1, 67, 0, 0, 156, 66, 0, 0, 2, 67, 0, 0, 156, 66, 0, 0, 3, 67, 0, 0, 156, 66, 0, 0, 4, 67, 0, 0, 156, 66, 0, 0, 5, 67, 0, 0, 156, 66, 0, 0, 6, 67, 0, 0, 156, 66, 0, 0, 7, 67, 0, 0, 156, 66, 0, 0, 8, 67, 0, 0, 156, 66, 0, 0, 9, 67, 0, 0, 156, 66, 0, 0, 10, 67, 0, 0, 156, 66, 0, 0, 11, 67, 0, 0, 156, 66, 0, 0, 12, 67, 0, 0, 156, 66, 0, 0, 13, 67, 0, 0, 158, 66, 0, 0, 0, 67, 0, 0, 158, 66, 0, 0, 1, 67, 0, 0, 158, 66, 0, 0, 2, 67, 0, 0, 158, 66, 0, 0, 3, 67, 0, 0, 158, 66, 0, 0, 4, 67, 0, 0, 158, 66, 0, 0, 5, 67, 0, 0, 158, 66, 0, 0, 6, 67, 0, 0, 158, 66, 0, 0, 7, 67, 0, 0, 158, 66, 0, 0, 8, 67, 0, 0, 158, 66, 0, 0, 9, 67, 0, 0, 158, 66, 0, 0, 10, 67, 0, 0, 158, 66, 0, 0, 11, 67, 0, 0, 158, 66, 0, 0, 12, 67, 0, 0, 158, 66, 0, 0, 13, 67, 0, 0, 160, 66, 0, 0, 0, 67, 0, 0, 160, 66, 0, 0, 1, 67, 0, 0, 160, 66, 0, 0, 2, 67, 0, 0, 160, 66, 0, 0, 3, 67, 0, 0, 160, 66, 0, 0, 4, 67, 0, 0, 160, 66, 0, 0, 5, 67, 0, 0, 160, 66, 0, 0, 6, 67, 0, 0, 160, 66, 0, 0, 7, 67, 0, 0, 160, 66, 0, 0, 8, 67, 0, 0, 160, 66, 0, 0, 9, 67, 0, 0, 160, 66, 0, 0, 10, 67, 0, 0, 160, 66, 0, 0, 11, 67, 0, 0, 160, 66, 0, 0, 12, 67, 0, 0, 160, 66, 0, 0, 13, 67, 0, 0, 162, 66, 0, 0, 0, 67, 0, 0, 162, 66, 0, 0, 1, 67, 0, 0, 162, 66, 0, 0, 2, 67, 0, 0, 162, 66, 0, 0, 3, 67, 0, 0, 162, 66, 0, 0, 4, 67, 0, 0, 162, 66, 0, 0, 5, 67, 0, 0, 162, 66, 0, 0, 6, 67, 0, 0, 162, 66, 0, 0, 7, 67, 0, 0, 162, 66, 0, 0, 8, 67, 0, 0, 162, 66, 0, 0, 9, 67, 0, 0, 162, 66, 0, 0, 10, 67, 0, 0, 162, 66, 0, 0, 11, 67, 0, 0, 162, 66, 0, 0, 12, 67, 0, 0, 162, 66, 0, 0, 13, 67, 0, 0, 164, 66, 0, 0, 0, 67, 0, 0, 164, 66, 0, 0, 1, 67, 0, 0, 164, 66, 0, 0, 2, 67, 0, 0, 164, 66, 0, 0, 3, 67, 0, 0, 164, 66, 0, 0, 4, 67, 0, 0, 164, 66, 0, 0, 5, 67, 0, 0, 164, 66, 0, 0, 6, 67, 0, 0, 164, 66, 0, 0, 7, 67, 0, 0, 164, 66, 0, 0, 8, 67, 0, 0, 164, 66, 0, 0, 9, 67, 0, 0, 164, 66, 0, 0, 10, 67, 0, 0, 164, 66, 0, 0, 11, 67, 0, 0, 164, 66, 0, 0, 12, 67, 0, 0, 164, 66, 0, 0, 13, 67, 0, 0, 166, 66, 0, 0, 0, 67, 0, 0, 166, 66, 0, 0, 1, 67, 0, 0, 166, 66, 0, 0, 2, 67, 0, 0, 166, 66, 0, 0, 3, 67, 0, 0, 166, 66, 0, 0, 4, 67, 0, 0, 166, 66, 0, 0, 5, 67, 0, 0, 166, 66, 0, 0, 6, 67, 0, 0, 166, 66, 0, 0, 7, 67, 0, 0, 166, 66, 0, 0, 8, 67, 0, 0, 166, 66, 0, 0, 9, 67, 0, 0, 166, 66, 0, 0, 10, 67, 0, 0, 166, 66, 0, 0, 11, 67, 0, 0, 166, 66, 0, 0, 12, 67, 0, 0, 166, 66, 0, 0, 13, 67, 0, 0, 168, 66, 0, 0, 184, 66, 0, 0, 168, 66, 0, 0, 186, 66, 0, 0, 168, 66, 0, 0, 188, 66, 0, 0, 168, 66, 0, 0, 190, 66, 0, 0, 168, 66, 0, 0, 192, 66, 0, 0, 168, 66, 0, 0, 194, 66, 0, 0, 168, 66, 0, 0, 196, 66, 0, 0, 168, 66, 0, 0, 198, 66, 0, 0, 168, 66, 0, 0, 200, 66, 0, 0, 168, 66, 0, 0, 202, 66, 0, 0, 168, 66, 0, 0, 0, 67, 0, 0, 168, 66, 0, 0, 1, 67, 0, 0, 168, 66, 0, 0, 2, 67, 0, 0, 168, 66, 0, 0, 3, 67, 0, 0, 168, 66, 0, 0, 4, 67, 0, 0, 168, 66, 0, 0, 5, 67, 0, 0, 168, 66, 0, 0, 6, 67, 0, 0, 168, 66, 0, 0, 7, 67, 0, 0, 168, 66, 0, 0, 8, 67, 0, 0, 168, 66, 0, 0, 9, 67, 0, 0, 168, 66, 0, 0, 10, 67, 0, 0, 168, 66, 0, 0, 11, 67, 0, 0, 168, 66, 0, 0, 12, 67, 0, 0, 168, 66, 0, 0, 13, 67, 0, 0, 168, 66, 0, 0, 46, 67, 0, 0, 168, 66, 0, 0, 47, 67, 0, 0, 168, 66, 0, 0, 48, 67, 0, 0, 168, 66, 0, 0, 49, 67, 0, 0, 168, 66, 0, 0, 50, 67, 0, 0, 168, 66, 0, 0, 51, 67, 0, 0, 168, 66, 0, 0, 52, 67, 0, 0, 168, 66, 0, 0, 53, 67, 0, 0, 168, 66, 0, 0, 54, 67, 0, 0, 168, 66, 0, 0, 55, 67, 0, 0, 170, 66, 0, 0, 184, 66, 0, 0, 170, 66, 0, 0, 186, 66, 0, 0, 170, 66, 0, 0, 188, 66, 0, 0, 170, 66, 0, 0, 190, 66, 0, 0, 170, 66, 0, 0, 192, 66, 0, 0, 170, 66, 0, 0, 194, 66, 0, 0, 170, 66, 0, 0, 196, 66, 0, 0, 170, 66, 0, 0, 198, 66, 0, 0, 170, 66, 0, 0, 200, 66, 0, 0, 170, 66, 0, 0, 202, 66, 0, 0, 170, 66, 0, 0, 204, 66, 0, 0, 170, 66, 0, 0, 0, 67, 0, 0, 170, 66, 0, 0, 1, 67, 0, 0, 170, 66, 0, 0, 2, 67, 0, 0, 170, 66, 0, 0, 3, 67, 0, 0, 170, 66, 0, 0, 4, 67, 0, 0, 170, 66, 0, 0, 5, 67, 0, 0, 170, 66, 0, 0, 6, 67, 0, 0, 170, 66, 0, 0, 7, 67, 0, 0, 170, 66, 0, 0, 8, 67, 0, 0, 170, 66, 0, 0, 9, 67, 0, 0, 170, 66, 0, 0, 10, 67, 0, 0, 170, 66, 0, 0, 11, 67, 0, 0, 170, 66, 0, 0, 12, 67, 0, 0, 170, 66, 0, 0, 13, 67, 0, 0, 170, 66, 0, 0, 45, 67, 0, 0, 170, 66, 0, 0, 46, 67, 0, 0, 170, 66, 0, 0, 47, 67, 0, 0, 170, 66, 0, 0, 48, 67, 0, 0, 170, 66, 0, 0, 49, 67, 0, 0, 170, 66, 0, 0, 50, 67, 0, 0, 170, 66, 0, 0, 51, 67, 0, 0, 170, 66, 0, 0, 52, 67, 0, 0, 170, 66, 0, 0, 53, 67, 0, 0, 170, 66, 0, 0, 54, 67, 0, 0, 170, 66, 0, 0, 55, 67, 0, 0, 172, 66, 0, 0, 184, 66, 0, 0, 172, 66, 0, 0, 186, 66, 0, 0, 172, 66, 0, 0, 188, 66, 0, 0, 172, 66, 0, 0, 190, 66, 0, 0, 172, 66, 0, 0, 192, 66, 0, 0, 172, 66, 0, 0, 194, 66, 0, 0, 172, 66, 0, 0, 196, 66, 0, 0, 172, 66, 0, 0, 198, 66, 0, 0, 172, 66, 0, 0, 200, 66, 0, 0, 172, 66, 0, 0, 202, 66, 0, 0, 172, 66, 0, 0, 204, 66, 0, 0, 172, 66, 0, 0, 206, 66, 0, 0, 172, 66, 0, 0, 0, 67, 0, 0, 172, 66, 0, 0, 1, 67, 0, 0, 172, 66, 0, 0, 2, 67, 0, 0, 172, 66, 0, 0, 3, 67, 0, 0, 172, 66, 0, 0, 4, 67, 0, 0, 172, 66, 0, 0, 5, 67, 0, 0, 172, 66, 0, 0, 6, 67, 0, 0, 172, 66, 0, 0, 7, 67, 0, 0, 172, 66, 0, 0, 8, 67, 0, 0, 172, 66, 0, 0, 9, 67, 0, 0, 172, 66, 0, 0, 10, 67, 0, 0, 172, 66, 0, 0, 11, 67, 0, 0, 172, 66, 0, 0, 12, 67, 0, 0, 172, 66, 0, 0, 13, 67, 0, 0, 172, 66, 0, 0, 45, 67, 0, 0, 172, 66, 0, 0, 46, 67, 0, 0, 172, 66, 0, 0, 47, 67, 0, 0, 172, 66, 0, 0, 48, 67, 0, 0, 172, 66, 0, 0, 49, 67, 0, 0, 172, 66, 0, 0, 50, 67, 0, 0, 172, 66, 0, 0, 51, 67, 0, 0, 172, 66, 0, 0, 52, 67, 0, 0, 172, 66, 0, 0, 53, 67, 0, 0, 172, 66, 0, 0, 54, 67, 0, 0, 172, 66, 0, 0, 55, 67, 0, 0, 174, 66, 0, 0, 184, 66, 0, 0, 174, 66, 0, 0, 186, 66, 0, 0, 174, 66, 0, 0, 188, 66, 0, 0, 174, 66, 0, 0, 190, 66, 0, 0, 174, 66, 0, 0, 192, 66, 0, 0, 174, 66, 0, 0, 194, 66, 0, 0, 174, 66, 0, 0, 196, 66, 0, 0, 174, 66, 0, 0, 198, 66, 0, 0, 174, 66, 0, 0, 200, 66, 0, 0, 174, 66, 0, 0, 202, 66, 0, 0, 174, 66, 0, 0, 204, 66, 0, 0, 174, 66, 0, 0, 206, 66, 0, 0, 174, 66, 0, 0, 0, 67, 0, 0, 174, 66, 0, 0, 1, 67, 0, 0, 174, 66, 0, 0, 2, 67, 0, 0, 174, 66, 0, 0, 3, 67, 0, 0, 174, 66, 0, 0, 4, 67, 0, 0, 174, 66, 0, 0, 5, 67, 0, 0, 174, 66, 0, 0, 6, 67, 0, 0, 174, 66, 0, 0, 7, 67, 0, 0, 174, 66, 0, 0, 8, 67, 0, 0, 174, 66, 0, 0, 9, 67, 0, 0, 174, 66, 0, 0, 10, 67, 0, 0, 174, 66, 0, 0, 11, 67, 0, 0, 174, 66, 0, 0, 12, 67, 0, 0, 174, 66, 0, 0, 13, 67, 0, 0, 174, 66, 0, 0, 45, 67, 0, 0, 174, 66, 0, 0, 46, 67, 0, 0, 174, 66, 0, 0, 47, 67, 0, 0, 174, 66, 0, 0, 48, 67, 0, 0, 174, 66, 0, 0, 49, 67, 0, 0, 174, 66, 0, 0, 50, 67, 0, 0, 174, 66, 0, 0, 51, 67, 0, 0, 174, 66, 0, 0, 52, 67, 0, 0, 174, 66, 0, 0, 53, 67, 0, 0, 174, 66, 0, 0, 54, 67, 0, 0, 174, 66, 0, 0, 55, 67, 0, 0, 176, 66, 0, 0, 184, 66, 0, 0, 176, 66, 0, 0, 186, 66, 0, 0, 176, 66, 0, 0, 188, 66, 0, 0, 176, 66, 0, 0, 190, 66, 0, 0, 176, 66, 0, 0, 192, 66, 0, 0, 176, 66, 0, 0, 194, 66, 0, 0, 176, 66, 0, 0, 196, 66, 0, 0, 176, 66, 0, 0, 198, 66, 0, 0, 176, 66, 0, 0, 200, 66, 0, 0, 176, 66, 0, 0, 202, 66, 0, 0, 176, 66, 0, 0, 204, 66, 0, 0, 176, 66, 0, 0, 206, 66, 0, 0, 176, 66, 0, 0, 0, 67, 0, 0, 176, 66, 0, 0, 1, 67, 0, 0, 176, 66, 0, 0, 2, 67, 0, 0, 176, 66, 0, 0, 3, 67, 0, 0, 176, 66, 0, 0, 4, 67, 0, 0, 176, 66, 0, 0, 5, 67, 0, 0, 176, 66, 0, 0, 6, 67, 0, 0, 176, 66, 0, 0, 7, 67, 0, 0, 176, 66, 0, 0, 8, 67, 0, 0, 176, 66, 0, 0, 9, 67, 0, 0, 176, 66, 0, 0, 10, 67, 0, 0, 176, 66, 0, 0, 11, 67, 0, 0, 176, 66, 0, 0, 12, 67, 0, 0, 176, 66, 0, 0, 13, 67, 0, 0, 176, 66, 0, 0, 44, 67, 0, 0, 176, 66, 0, 0, 45, 67, 0, 0, 176, 66, 0, 0, 46, 67, 0, 0, 176, 66, 0, 0, 47, 67, 0, 0, 176, 66, 0, 0, 48, 67, 0, 0, 176, 66, 0, 0, 49, 67, 0, 0, 176, 66, 0, 0, 50, 67, 0, 0, 176, 66, 0, 0, 51, 67, 0, 0, 176, 66, 0, 0, 52, 67, 0, 0, 176, 66, 0, 0, 53, 67, 0, 0, 176, 66, 0, 0, 54, 67, 0, 0, 176, 66, 0, 0, 55, 67, 0, 0, 178, 66, 0, 0, 184, 66, 0, 0, 178, 66, 0, 0, 186, 66, 0, 0, 178, 66, 0, 0, 188, 66, 0, 0, 178, 66, 0, 0, 190, 66, 0, 0, 178, 66, 0, 0, 192, 66, 0, 0, 178, 66, 0, 0, 194, 66, 0, 0, 178, 66, 0, 0, 196, 66, 0, 0, 178, 66, 0, 0, 198, 66, 0, 0, 178, 66, 0, 0, 200, 66, 0, 0, 178, 66, 0, 0, 202, 66, 0, 0, 178, 66, 0, 0, 204, 66, 0, 0, 178, 66, 0, 0, 206, 66, 0, 0, 178, 66, 0, 0, 0, 67, 0, 0, 178, 66, 0, 0, 1, 67, 0, 0, 178, 66, 0, 0, 2, 67, 0, 0, 178, 66, 0, 0, 3, 67, 0, 0, 178, 66, 0, 0, 4, 67, 0, 0, 178, 66, 0, 0, 5, 67, 0, 0, 178, 66, 0, 0, 6, 67, 0, 0, 178, 66, 0, 0, 7, 67, 0, 0, 178, 66, 0, 0, 8, 67, 0, 0, 178, 66, 0, 0, 9, 67, 0, 0, 178, 66, 0, 0, 10, 67, 0, 0, 178, 66, 0, 0, 11, 67, 0, 0, 178, 66, 0, 0, 12, 67, 0, 0, 178, 66, 0, 0, 13, 67, 0, 0, 178, 66, 0, 0, 44, 67, 0, 0, 178, 66, 0, 0, 45, 67, 0, 0, 178, 66, 0, 0, 46, 67, 0, 0, 178, 66, 0, 0, 47, 67, 0, 0, 178, 66, 0, 0, 48, 67, 0, 0, 178, 66, 0, 0, 49, 67, 0, 0, 178, 66, 0, 0, 50, 67, 0, 0, 178, 66, 0, 0, 51, 67, 0, 0, 178, 66, 0, 0, 52, 67, 0, 0, 178, 66, 0, 0, 53, 67, 0, 0, 178, 66, 0, 0, 54, 67, 0, 0, 178, 66, 0, 0, 55, 67, 0, 0, 180, 66, 0, 0, 184, 66, 0, 0, 180, 66, 0, 0, 186, 66, 0, 0, 180, 66, 0, 0, 188, 66, 0, 0, 180, 66, 0, 0, 190, 66, 0, 0, 180, 66, 0, 0, 192, 66, 0, 0, 180, 66, 0, 0, 194, 66, 0, 0, 180, 66, 0, 0, 196, 66, 0, 0, 180, 66, 0, 0, 198, 66, 0, 0, 180, 66, 0, 0, 200, 66, 0, 0, 180, 66, 0, 0, 202, 66, 0, 0, 180, 66, 0, 0, 204, 66, 0, 0, 180, 66, 0, 0, 206, 66, 0, 0, 180, 66, 0, 0, 0, 67, 0, 0, 180, 66, 0, 0, 1, 67, 0, 0, 180, 66, 0, 0, 2, 67, 0, 0, 180, 66, 0, 0, 3, 67, 0, 0, 180, 66, 0, 0, 4, 67, 0, 0, 180, 66, 0, 0, 5, 67, 0, 0, 180, 66, 0, 0, 6, 67, 0, 0, 180, 66, 0, 0, 7, 67, 0, 0, 180, 66, 0, 0, 8, 67, 0, 0, 180, 66, 0, 0, 9, 67, 0, 0, 180, 66, 0, 0, 10, 67, 0, 0, 180, 66, 0, 0, 11, 67, 0, 0, 180, 66, 0, 0, 12, 67, 0, 0, 180, 66, 0, 0, 13, 67, 0, 0, 180, 66, 0, 0, 44, 67, 0, 0, 180, 66, 0, 0, 45, 67, 0, 0, 180, 66, 0, 0, 46, 67, 0, 0, 180, 66, 0, 0, 47, 67, 0, 0, 180, 66, 0, 0, 48, 67, 0, 0, 180, 66, 0, 0, 49, 67, 0, 0, 180, 66, 0, 0, 50, 67, 0, 0, 180, 66, 0, 0, 51, 67, 0, 0, 180, 66, 0, 0, 52, 67, 0, 0, 180, 66, 0, 0, 53, 67, 0, 0, 180, 66, 0, 0, 54, 67, 0, 0, 180, 66, 0, 0, 55, 67, 0, 0, 182, 66, 0, 0, 184, 66, 0, 0, 182, 66, 0, 0, 186, 66, 0, 0, 182, 66, 0, 0, 188, 66, 0, 0, 182, 66, 0, 0, 190, 66, 0, 0, 182, 66, 0, 0, 192, 66, 0, 0, 182, 66, 0, 0, 194, 66, 0, 0, 182, 66, 0, 0, 196, 66, 0, 0, 182, 66, 0, 0, 198, 66, 0, 0, 182, 66, 0, 0, 200, 66, 0, 0, 182, 66, 0, 0, 202, 66, 0, 0, 182, 66, 0, 0, 204, 66, 0, 0, 182, 66, 0, 0, 206, 66, 0, 0, 182, 66, 0, 0, 0, 67, 0, 0, 182, 66, 0, 0, 1, 67, 0, 0, 182, 66, 0, 0, 2, 67, 0, 0, 182, 66, 0, 0, 3, 67, 0, 0, 182, 66, 0, 0, 4, 67, 0, 0, 182, 66, 0, 0, 5, 67, 0, 0, 182, 66, 0, 0, 6, 67, 0, 0, 182, 66, 0, 0, 7, 67, 0, 0, 182, 66, 0, 0, 8, 67, 0, 0, 182, 66, 0, 0, 9, 67, 0, 0, 182, 66, 0, 0, 10, 67, 0, 0, 182, 66, 0, 0, 11, 67, 0, 0, 182, 66, 0, 0, 12, 67, 0, 0, 182, 66, 0, 0, 13, 67, 0, 0, 182, 66, 0, 0, 44, 67, 0, 0, 182, 66, 0, 0, 45, 67, 0, 0, 182, 66, 0, 0, 46, 67, 0, 0, 182, 66, 0, 0, 47, 67, 0, 0, 182, 66, 0, 0, 48, 67, 0, 0, 182, 66, 0, 0, 49, 67, 0, 0, 182, 66, 0, 0, 50, 67, 0, 0, 182, 66, 0, 0, 51, 67, 0, 0, 182, 66, 0, 0, 52, 67, 0, 0, 182, 66, 0, 0, 53, 67, 0, 0, 182, 66, 0, 0, 54, 67, 0, 0, 182, 66, 0, 0, 55, 67, 0, 0, 184, 66, 0, 0, 184, 66, 0, 0, 184, 66, 0, 0, 186, 66, 0, 0, 184, 66, 0, 0, 188, 66, 0, 0, 184, 66, 0, 0, 190, 66, 0, 0, 184, 66, 0, 0, 192, 66, 0, 0, 184, 66, 0, 0, 194, 66, 0, 0, 184, 66, 0, 0, 196, 66, 0, 0, 184, 66, 0, 0, 198, 66, 0, 0, 184, 66, 0, 0, 200, 66, 0, 0, 184, 66, 0, 0, 202, 66, 0, 0, 184, 66, 0, 0, 204, 66, 0, 0, 184, 66, 0, 0, 206, 66, 0, 0, 184, 66, 0, 0, 208, 66, 0, 0, 184, 66, 0, 0, 0, 67, 0, 0, 184, 66, 0, 0, 1, 67, 0, 0, 184, 66, 0, 0, 2, 67, 0, 0, 184, 66, 0, 0, 3, 67, 0, 0, 184, 66, 0, 0, 4, 67, 0, 0, 184, 66, 0, 0, 5, 67, 0, 0, 184, 66, 0, 0, 6, 67, 0, 0, 184, 66, 0, 0, 7, 67, 0, 0, 184, 66, 0, 0, 8, 67, 0, 0, 184, 66, 0, 0, 9, 67, 0, 0, 184, 66, 0, 0, 10, 67, 0, 0, 184, 66, 0, 0, 11, 67, 0, 0, 184, 66, 0, 0, 12, 67, 0, 0, 184, 66, 0, 0, 13, 67, 0, 0, 184, 66, 0, 0, 43, 67, 0, 0, 184, 66, 0, 0, 44, 67, 0, 0, 184, 66, 0, 0, 45, 67, 0, 0, 184, 66, 0, 0, 46, 67, 0, 0, 184, 66, 0, 0, 47, 67, 0, 0, 184, 66, 0, 0, 48, 67, 0, 0, 184, 66, 0, 0, 49, 67, 0, 0, 184, 66, 0, 0, 50, 67, 0, 0, 184, 66, 0, 0, 51, 67, 0, 0, 184, 66, 0, 0, 52, 67, 0, 0, 184, 66, 0, 0, 53, 67, 0, 0, 184, 66, 0, 0, 54, 67, 0, 0, 184, 66, 0, 0, 55, 67, 0, 0, 186, 66, 0, 0, 184, 66, 0, 0, 186, 66, 0, 0, 186, 66, 0, 0, 186, 66, 0, 0, 188, 66, 0, 0, 186, 66, 0, 0, 190, 66, 0, 0, 186, 66, 0, 0, 192, 66, 0, 0, 186, 66, 0, 0, 194, 66, 0, 0, 186, 66, 0, 0, 196, 66, 0, 0, 186, 66, 0, 0, 198, 66, 0, 0, 186, 66, 0, 0, 200, 66, 0, 0, 186, 66, 0, 0, 202, 66, 0, 0, 186, 66, 0, 0, 204, 66, 0, 0, 186, 66, 0, 0, 206, 66, 0, 0, 186, 66, 0, 0, 208, 66, 0, 0, 186, 66, 0, 0, 210, 66, 0, 0, 186, 66, 0, 0, 0, 67, 0, 0, 186, 66, 0, 0, 1, 67, 0, 0, 186, 66, 0, 0, 2, 67, 0, 0, 186, 66, 0, 0, 3, 67, 0, 0, 186, 66, 0, 0, 4, 67, 0, 0, 186, 66, 0, 0, 5, 67, 0, 0, 186, 66, 0, 0, 6, 67, 0, 0, 186, 66, 0, 0, 7, 67, 0, 0, 186, 66, 0, 0, 8, 67, 0, 0, 186, 66, 0, 0, 9, 67, 0, 0, 186, 66, 0, 0, 10, 67, 0, 0, 186, 66, 0, 0, 11, 67, 0, 0, 186, 66, 0, 0, 12, 67, 0, 0, 186, 66, 0, 0, 13, 67, 0, 0, 186, 66, 0, 0, 43, 67, 0, 0, 186, 66, 0, 0, 44, 67, 0, 0, 186, 66, 0, 0, 45, 67, 0, 0, 186, 66, 0, 0, 46, 67, 0, 0, 186, 66, 0, 0, 47, 67, 0, 0, 186, 66, 0, 0, 48, 67, 0, 0, 186, 66, 0, 0, 49, 67, 0, 0, 186, 66, 0, 0, 50, 67, 0, 0, 186, 66, 0, 0, 51, 67, 0, 0, 186, 66, 0, 0, 52, 67, 0, 0, 186, 66, 0, 0, 53, 67, 0, 0, 186, 66, 0, 0, 54, 67, 0, 0, 186, 66, 0, 0, 55, 67, 0, 0, 188, 66, 0, 0, 184, 66, 0, 0, 188, 66, 0, 0, 186, 66, 0, 0, 188, 66, 0, 0, 188, 66, 0, 0, 188, 66, 0, 0, 190, 66, 0, 0, 188, 66, 0, 0, 192, 66, 0, 0, 188, 66, 0, 0, 194, 66, 0, 0, 188, 66, 0, 0, 196, 66, 0, 0, 188, 66, 0, 0, 198, 66, 0, 0, 188, 66, 0, 0, 200, 66, 0, 0, 188, 66, 0, 0, 202, 66, 0, 0, 188, 66, 0, 0, 204, 66, 0, 0, 188, 66, 0, 0, 206, 66, 0, 0, 188, 66, 0, 0, 208, 66, 0, 0, 188, 66, 0, 0, 210, 66, 0, 0, 188, 66, 0, 0, 212, 66, 0, 0, 188, 66, 0, 0, 0, 67, 0, 0, 188, 66, 0, 0, 1, 67, 0, 0, 188, 66, 0, 0, 2, 67, 0, 0, 188, 66, 0, 0, 3, 67, 0, 0, 188, 66, 0, 0, 4, 67, 0, 0, 188, 66, 0, 0, 5, 67, 0, 0, 188, 66, 0, 0, 6, 67, 0, 0, 188, 66, 0, 0, 7, 67, 0, 0, 188, 66, 0, 0, 8, 67, 0, 0, 188, 66, 0, 0, 9, 67, 0, 0, 188, 66, 0, 0, 10, 67, 0, 0, 188, 66, 0, 0, 11, 67, 0, 0, 188, 66, 0, 0, 12, 67, 0, 0, 188, 66, 0, 0, 13, 67, 0, 0, 188, 66, 0, 0, 41, 67, 0, 0, 188, 66, 0, 0, 42, 67, 0, 0, 188, 66, 0, 0, 43, 67, 0, 0, 188, 66, 0, 0, 44, 67, 0, 0, 188, 66, 0, 0, 45, 67, 0, 0, 188, 66, 0, 0, 46, 67, 0, 0, 188, 66, 0, 0, 47, 67, 0, 0, 188, 66, 0, 0, 48, 67, 0, 0, 188, 66, 0, 0, 49, 67, 0, 0, 188, 66, 0, 0, 50, 67, 0, 0, 188, 66, 0, 0, 51, 67, 0, 0, 188, 66, 0, 0, 52, 67, 0, 0, 188, 66, 0, 0, 53, 67, 0, 0, 188, 66, 0, 0, 54, 67, 0, 0, 188, 66, 0, 0, 55, 67, 0, 0, 190, 66, 0, 0, 184, 66, 0, 0, 190, 66, 0, 0, 186, 66, 0, 0, 190, 66, 0, 0, 188, 66, 0, 0, 190, 66, 0, 0, 190, 66, 0, 0, 190, 66, 0, 0, 192, 66, 0, 0, 190, 66, 0, 0, 194, 66, 0, 0, 190, 66, 0, 0, 196, 66, 0, 0, 190, 66, 0, 0, 198, 66, 0, 0, 190, 66, 0, 0, 200, 66, 0, 0, 190, 66, 0, 0, 202, 66, 0, 0, 190, 66, 0, 0, 204, 66, 0, 0, 190, 66, 0, 0, 206, 66, 0, 0, 190, 66, 0, 0, 208, 66, 0, 0, 190, 66, 0, 0, 210, 66, 0, 0, 190, 66, 0, 0, 212, 66, 0, 0, 190, 66, 0, 0, 214, 66, 0, 0, 190, 66, 0, 0, 216, 66, 0, 0, 190, 66, 0, 0, 0, 67, 0, 0, 190, 66, 0, 0, 1, 67, 0, 0, 190, 66, 0, 0, 2, 67, 0, 0, 190, 66, 0, 0, 3, 67, 0, 0, 190, 66, 0, 0, 4, 67, 0, 0, 190, 66, 0, 0, 5, 67, 0, 0, 190, 66, 0, 0, 6, 67, 0, 0, 190, 66, 0, 0, 7, 67, 0, 0, 190, 66, 0, 0, 8, 67, 0, 0, 190, 66, 0, 0, 9, 67, 0, 0, 190, 66, 0, 0, 10, 67, 0, 0, 190, 66, 0, 0, 11, 67, 0, 0, 190, 66, 0, 0, 12, 67, 0, 0, 190, 66, 0, 0, 13, 67, 0, 0, 190, 66, 0, 0, 40, 67, 0, 0, 190, 66, 0, 0, 41, 67, 0, 0, 190, 66, 0, 0, 42, 67, 0, 0, 190, 66, 0, 0, 43, 67, 0, 0, 190, 66, 0, 0, 44, 67, 0, 0, 190, 66, 0, 0, 45, 67, 0, 0, 190, 66, 0, 0, 46, 67, 0, 0, 190, 66, 0, 0, 47, 67, 0, 0, 190, 66, 0, 0, 48, 67, 0, 0, 190, 66, 0, 0, 49, 67, 0, 0, 190, 66, 0, 0, 50, 67, 0, 0, 190, 66, 0, 0, 51, 67, 0, 0, 190, 66, 0, 0, 52, 67, 0, 0, 190, 66, 0, 0, 53, 67, 0, 0, 190, 66, 0, 0, 54, 67, 0, 0, 190, 66, 0, 0, 55, 67, 0, 0, 192, 66, 0, 0, 184, 66, 0, 0, 192, 66, 0, 0, 186, 66, 0, 0, 192, 66, 0, 0, 188, 66, 0, 0, 192, 66, 0, 0, 190, 66, 0, 0, 192, 66, 0, 0, 192, 66, 0, 0, 192, 66, 0, 0, 194, 66, 0, 0, 192, 66, 0, 0, 196, 66, 0, 0, 192, 66, 0, 0, 198, 66, 0, 0, 192, 66, 0, 0, 200, 66, 0, 0, 192, 66, 0, 0, 202, 66, 0, 0, 192, 66, 0, 0, 204, 66, 0, 0, 192, 66, 0, 0, 206, 66, 0, 0, 192, 66, 0, 0, 208, 66, 0, 0, 192, 66, 0, 0, 210, 66, 0, 0, 192, 66, 0, 0, 212, 66, 0, 0, 192, 66, 0, 0, 214, 66, 0, 0, 192, 66, 0, 0, 216, 66, 0, 0, 192, 66, 0, 0, 218, 66, 0, 0, 192, 66, 0, 0, 220, 66, 0, 0, 192, 66, 0, 0, 222, 66, 0, 0, 192, 66, 0, 0, 224, 66, 0, 0, 192, 66, 0, 0, 226, 66, 0, 0, 192, 66, 0, 0, 228, 66, 0, 0, 192, 66, 0, 0, 230, 66, 0, 0, 192, 66, 0, 0, 232, 66, 0, 0, 192, 66, 0, 0, 234, 66, 0, 0, 192, 66, 0, 0, 236, 66, 0, 0, 192, 66, 0, 0, 238, 66, 0, 0, 192, 66, 0, 0, 240, 66, 0, 0, 192, 66, 0, 0, 242, 66, 0, 0, 192, 66, 0, 0, 244, 66, 0, 0, 192, 66, 0, 0, 246, 66, 0, 0, 192, 66, 0, 0, 248, 66, 0, 0, 192, 66, 0, 0, 250, 66, 0, 0, 192, 66, 0, 0, 252, 66, 0, 0, 192, 66, 0, 0, 254, 66, 0, 0, 192, 66, 0, 0, 0, 67, 0, 0, 192, 66, 0, 0, 1, 67, 0, 0, 192, 66, 0, 0, 2, 67, 0, 0, 192, 66, 0, 0, 3, 67, 0, 0, 192, 66, 0, 0, 4, 67, 0, 0, 192, 66, 0, 0, 5, 67, 0, 0, 192, 66, 0, 0, 6, 67, 0, 0, 192, 66, 0, 0, 7, 67, 0, 0, 192, 66, 0, 0, 8, 67, 0, 0, 192, 66, 0, 0, 9, 67, 0, 0, 192, 66, 0, 0, 10, 67, 0, 0, 192, 66, 0, 0, 11, 67, 0, 0, 192, 66, 0, 0, 12, 67, 0, 0, 192, 66, 0, 0, 13, 67, 0, 0, 192, 66, 0, 0, 14, 67, 0, 0, 192, 66, 0, 0, 15, 67, 0, 0, 192, 66, 0, 0, 16, 67, 0, 0, 192, 66, 0, 0, 17, 67, 0, 0, 192, 66, 0, 0, 18, 67, 0, 0, 192, 66, 0, 0, 19, 67, 0, 0, 192, 66, 0, 0, 20, 67, 0, 0, 192, 66, 0, 0, 21, 67, 0, 0, 192, 66, 0, 0, 22, 67, 0, 0, 192, 66, 0, 0, 23, 67, 0, 0, 192, 66, 0, 0, 24, 67, 0, 0, 192, 66, 0, 0, 25, 67, 0, 0, 192, 66, 0, 0, 26, 67, 0, 0, 192, 66, 0, 0, 27, 67, 0, 0, 192, 66, 0, 0, 28, 67, 0, 0, 192, 66, 0, 0, 29, 67, 0, 0, 192, 66, 0, 0, 30, 67, 0, 0, 192, 66, 0, 0, 31, 67, 0, 0, 192, 66, 0, 0, 32, 67, 0, 0, 192, 66, 0, 0, 33, 67, 0, 0, 192, 66, 0, 0, 34, 67, 0, 0, 192, 66, 0, 0, 35, 67, 0, 0, 192, 66, 0, 0, 36, 67, 0, 0, 192, 66, 0, 0, 37, 67, 0, 0, 192, 66, 0, 0, 38, 67, 0, 0, 192, 66, 0, 0, 39, 67, 0, 0, 192, 66, 0, 0, 40, 67, 0, 0, 192, 66, 0, 0, 41, 67, 0, 0, 192, 66, 0, 0, 42, 67, 0, 0, 192, 66, 0, 0, 43, 67, 0, 0, 192, 66, 0, 0, 44, 67, 0, 0, 192, 66, 0, 0, 45, 67, 0, 0, 192, 66, 0, 0, 46, 67, 0, 0, 192, 66, 0, 0, 47, 67, 0, 0, 192, 66, 0, 0, 48, 67, 0, 0, 192, 66, 0, 0, 49, 67, 0, 0, 192, 66, 0, 0, 50, 67, 0, 0, 192, 66, 0, 0, 51, 67, 0, 0, 192, 66, 0, 0, 52, 67, 0, 0, 192, 66, 0, 0, 53, 67, 0, 0, 192, 66, 0, 0, 54, 67, 0, 0, 192, 66, 0, 0, 55, 67, 0, 0, 194, 66, 0, 0, 184, 66, 0, 0, 194, 66, 0, 0, 186, 66, 0, 0, 194, 66, 0, 0, 188, 66, 0, 0, 194, 66, 0, 0, 190, 66, 0, 0, 194, 66, 0, 0, 192, 66, 0, 0, 194, 66, 0, 0, 194, 66, 0, 0, 194, 66, 0, 0, 196, 66, 0, 0, 194, 66, 0, 0, 198, 66, 0, 0, 194, 66, 0, 0, 200, 66, 0, 0, 194, 66, 0, 0, 202, 66, 0, 0, 194, 66, 0, 0, 204, 66, 0, 0, 194, 66, 0, 0, 206, 66, 0, 0, 194, 66, 0, 0, 208, 66, 0, 0, 194, 66, 0, 0, 210, 66, 0, 0, 194, 66, 0, 0, 212, 66, 0, 0, 194, 66, 0, 0, 214, 66, 0, 0, 194, 66, 0, 0, 216, 66, 0, 0, 194, 66, 0, 0, 218, 66, 0, 0, 194, 66, 0, 0, 220, 66, 0, 0, 194, 66, 0, 0, 222, 66, 0, 0, 194, 66, 0, 0, 224, 66, 0, 0, 194, 66, 0, 0, 226, 66, 0, 0, 194, 66, 0, 0, 228, 66, 0, 0, 194, 66, 0, 0, 230, 66, 0, 0, 194, 66, 0, 0, 232, 66, 0, 0, 194, 66, 0, 0, 234, 66, 0, 0, 194, 66, 0, 0, 236, 66, 0, 0, 194, 66, 0, 0, 238, 66, 0, 0, 194, 66, 0, 0, 240, 66, 0, 0, 194, 66, 0, 0, 242, 66, 0, 0, 194, 66, 0, 0, 244, 66, 0, 0, 194, 66, 0, 0, 246, 66, 0, 0, 194, 66, 0, 0, 248, 66, 0, 0, 194, 66, 0, 0, 250, 66, 0, 0, 194, 66, 0, 0, 252, 66, 0, 0, 194, 66, 0, 0, 254, 66, 0, 0, 194, 66, 0, 0, 0, 67, 0, 0, 194, 66, 0, 0, 1, 67, 0, 0, 194, 66, 0, 0, 2, 67, 0, 0, 194, 66, 0, 0, 3, 67, 0, 0, 194, 66, 0, 0, 4, 67, 0, 0, 194, 66, 0, 0, 5, 67, 0, 0, 194, 66, 0, 0, 6, 67, 0, 0, 194, 66, 0, 0, 7, 67, 0, 0, 194, 66, 0, 0, 8, 67, 0, 0, 194, 66, 0, 0, 9, 67, 0, 0, 194, 66, 0, 0, 10, 67, 0, 0, 194, 66, 0, 0, 11, 67, 0, 0, 194, 66, 0, 0, 12, 67, 0, 0, 194, 66, 0, 0, 13, 67, 0, 0, 194, 66, 0, 0, 14, 67, 0, 0, 194, 66, 0, 0, 15, 67, 0, 0, 194, 66, 0, 0, 16, 67, 0, 0, 194, 66, 0, 0, 17, 67, 0, 0, 194, 66, 0, 0, 18, 67, 0, 0, 194, 66, 0, 0, 19, 67, 0, 0, 194, 66, 0, 0, 20, 67, 0, 0, 194, 66, 0, 0, 21, 67, 0, 0, 194, 66, 0, 0, 22, 67, 0, 0, 194, 66, 0, 0, 23, 67, 0, 0, 194, 66, 0, 0, 24, 67, 0, 0, 194, 66, 0, 0, 25, 67, 0, 0, 194, 66, 0, 0, 26, 67, 0, 0, 194, 66, 0, 0, 27, 67, 0, 0, 194, 66, 0, 0, 28, 67, 0, 0, 194, 66, 0, 0, 29, 67, 0, 0, 194, 66, 0, 0, 30, 67, 0, 0, 194, 66, 0, 0, 31, 67, 0, 0, 194, 66, 0, 0, 32, 67, 0, 0, 194, 66, 0, 0, 33, 67, 0, 0, 194, 66, 0, 0, 34, 67, 0, 0, 194, 66, 0, 0, 35, 67, 0, 0, 194, 66, 0, 0, 36, 67, 0, 0, 194, 66, 0, 0, 37, 67, 0, 0, 194, 66, 0, 0, 38, 67, 0, 0, 194, 66, 0, 0, 39, 67, 0, 0, 194, 66, 0, 0, 40, 67, 0, 0, 194, 66, 0, 0, 41, 67, 0, 0, 194, 66, 0, 0, 42, 67, 0, 0, 194, 66, 0, 0, 43, 67, 0, 0, 194, 66, 0, 0, 44, 67, 0, 0, 194, 66, 0, 0, 45, 67, 0, 0, 194, 66, 0, 0, 46, 67, 0, 0, 194, 66, 0, 0, 47, 67, 0, 0, 194, 66, 0, 0, 48, 67, 0, 0, 194, 66, 0, 0, 49, 67, 0, 0, 194, 66, 0, 0, 50, 67, 0, 0, 194, 66, 0, 0, 51, 67, 0, 0, 194, 66, 0, 0, 52, 67, 0, 0, 194, 66, 0, 0, 53, 67, 0, 0, 194, 66, 0, 0, 54, 67, 0, 0, 194, 66, 0, 0, 55, 67, 0, 0, 196, 66, 0, 0, 184, 66, 0, 0, 196, 66, 0, 0, 186, 66, 0, 0, 196, 66, 0, 0, 188, 66, 0, 0, 196, 66, 0, 0, 190, 66, 0, 0, 196, 66, 0, 0, 192, 66, 0, 0, 196, 66, 0, 0, 194, 66, 0, 0, 196, 66, 0, 0, 196, 66, 0, 0, 196, 66, 0, 0, 198, 66, 0, 0, 196, 66, 0, 0, 200, 66, 0, 0, 196, 66, 0, 0, 202, 66, 0, 0, 196, 66, 0, 0, 204, 66, 0, 0, 196, 66, 0, 0, 206, 66, 0, 0, 196, 66, 0, 0, 208, 66, 0, 0, 196, 66, 0, 0, 210, 66, 0, 0, 196, 66, 0, 0, 212, 66, 0, 0, 196, 66, 0, 0, 214, 66, 0, 0, 196, 66, 0, 0, 216, 66, 0, 0, 196, 66, 0, 0, 218, 66, 0, 0, 196, 66, 0, 0, 220, 66, 0, 0, 196, 66, 0, 0, 222, 66, 0, 0, 196, 66, 0, 0, 224, 66, 0, 0, 196, 66, 0, 0, 226, 66, 0, 0, 196, 66, 0, 0, 228, 66, 0, 0, 196, 66, 0, 0, 230, 66, 0, 0, 196, 66, 0, 0, 232, 66, 0, 0, 196, 66, 0, 0, 234, 66, 0, 0, 196, 66, 0, 0, 236, 66, 0, 0, 196, 66, 0, 0, 238, 66, 0, 0, 196, 66, 0, 0, 240, 66, 0, 0, 196, 66, 0, 0, 242, 66, 0, 0, 196, 66, 0, 0, 244, 66, 0, 0, 196, 66, 0, 0, 246, 66, 0, 0, 196, 66, 0, 0, 248, 66, 0, 0, 196, 66, 0, 0, 250, 66, 0, 0, 196, 66, 0, 0, 252, 66, 0, 0, 196, 66, 0, 0, 254, 66, 0, 0, 196, 66, 0, 0, 0, 67, 0, 0, 196, 66, 0, 0, 1, 67, 0, 0, 196, 66, 0, 0, 2, 67, 0, 0, 196, 66, 0, 0, 3, 67, 0, 0, 196, 66, 0, 0, 4, 67, 0, 0, 196, 66, 0, 0, 5, 67, 0, 0, 196, 66, 0, 0, 6, 67, 0, 0, 196, 66, 0, 0, 7, 67, 0, 0, 196, 66, 0, 0, 8, 67, 0, 0, 196, 66, 0, 0, 9, 67, 0, 0, 196, 66, 0, 0, 10, 67, 0, 0, 196, 66, 0, 0, 11, 67, 0, 0, 196, 66, 0, 0, 12, 67, 0, 0, 196, 66, 0, 0, 13, 67, 0, 0, 196, 66, 0, 0, 14, 67, 0, 0, 196, 66, 0, 0, 15, 67, 0, 0, 196, 66, 0, 0, 16, 67, 0, 0, 196, 66, 0, 0, 17, 67, 0, 0, 196, 66, 0, 0, 18, 67, 0, 0, 196, 66, 0, 0, 19, 67, 0, 0, 196, 66, 0, 0, 20, 67, 0, 0, 196, 66, 0, 0, 21, 67, 0, 0, 196, 66, 0, 0, 22, 67, 0, 0, 196, 66, 0, 0, 23, 67, 0, 0, 196, 66, 0, 0, 24, 67, 0, 0, 196, 66, 0, 0, 25, 67, 0, 0, 196, 66, 0, 0, 26, 67, 0, 0, 196, 66, 0, 0, 27, 67, 0, 0, 196, 66, 0, 0, 28, 67, 0, 0, 196, 66, 0, 0, 29, 67, 0, 0, 196, 66, 0, 0, 30, 67, 0, 0, 196, 66, 0, 0, 31, 67, 0, 0, 196, 66, 0, 0, 32, 67, 0, 0, 196, 66, 0, 0, 33, 67, 0, 0, 196, 66, 0, 0, 34, 67, 0, 0, 196, 66, 0, 0, 35, 67, 0, 0, 196, 66, 0, 0, 36, 67, 0, 0, 196, 66, 0, 0, 37, 67, 0, 0, 196, 66, 0, 0, 38, 67, 0, 0, 196, 66, 0, 0, 39, 67, 0, 0, 196, 66, 0, 0, 40, 67, 0, 0, 196, 66, 0, 0, 41, 67, 0, 0, 196, 66, 0, 0, 42, 67, 0, 0, 196, 66, 0, 0, 43, 67, 0, 0, 196, 66, 0, 0, 44, 67, 0, 0, 196, 66, 0, 0, 45, 67, 0, 0, 196, 66, 0, 0, 46, 67, 0, 0, 196, 66, 0, 0, 47, 67, 0, 0, 196, 66, 0, 0, 48, 67, 0, 0, 196, 66, 0, 0, 49, 67, 0, 0, 196, 66, 0, 0, 50, 67, 0, 0, 196, 66, 0, 0, 51, 67, 0, 0, 196, 66, 0, 0, 52, 67, 0, 0, 196, 66, 0, 0, 53, 67, 0, 0, 196, 66, 0, 0, 54, 67, 0, 0, 196, 66, 0, 0, 55, 67, 0, 0, 198, 66, 0, 0, 184, 66, 0, 0, 198, 66, 0, 0, 186, 66, 0, 0, 198, 66, 0, 0, 188, 66, 0, 0, 198, 66, 0, 0, 190, 66, 0, 0, 198, 66, 0, 0, 192, 66, 0, 0, 198, 66, 0, 0, 194, 66, 0, 0, 198, 66, 0, 0, 196, 66, 0, 0, 198, 66, 0, 0, 198, 66, 0, 0, 198, 66, 0, 0, 200, 66, 0, 0, 198, 66, 0, 0, 202, 66, 0, 0, 198, 66, 0, 0, 204, 66, 0, 0, 198, 66, 0, 0, 206, 66, 0, 0, 198, 66, 0, 0, 208, 66, 0, 0, 198, 66, 0, 0, 210, 66, 0, 0, 198, 66, 0, 0, 212, 66, 0, 0, 198, 66, 0, 0, 214, 66, 0, 0, 198, 66, 0, 0, 216, 66, 0, 0, 198, 66, 0, 0, 218, 66, 0, 0, 198, 66, 0, 0, 220, 66, 0, 0, 198, 66, 0, 0, 222, 66, 0, 0, 198, 66, 0, 0, 224, 66, 0, 0, 198, 66, 0, 0, 226, 66, 0, 0, 198, 66, 0, 0, 228, 66, 0, 0, 198, 66, 0, 0, 230, 66, 0, 0, 198, 66, 0, 0, 232, 66, 0, 0, 198, 66, 0, 0, 234, 66, 0, 0, 198, 66, 0, 0, 236, 66, 0, 0, 198, 66, 0, 0, 238, 66, 0, 0, 198, 66, 0, 0, 240, 66, 0, 0, 198, 66, 0, 0, 242, 66, 0, 0, 198, 66, 0, 0, 244, 66, 0, 0, 198, 66, 0, 0, 246, 66, 0, 0, 198, 66, 0, 0, 248, 66, 0, 0, 198, 66, 0, 0, 250, 66, 0, 0, 198, 66, 0, 0, 252, 66, 0, 0, 198, 66, 0, 0, 254, 66, 0, 0, 198, 66, 0, 0, 0, 67, 0, 0, 198, 66, 0, 0, 1, 67, 0, 0, 198, 66, 0, 0, 2, 67, 0, 0, 198, 66, 0, 0, 3, 67, 0, 0, 198, 66, 0, 0, 4, 67, 0, 0, 198, 66, 0, 0, 5, 67, 0, 0, 198, 66, 0, 0, 6, 67, 0, 0, 198, 66, 0, 0, 7, 67, 0, 0, 198, 66, 0, 0, 8, 67, 0, 0, 198, 66, 0, 0, 9, 67, 0, 0, 198, 66, 0, 0, 10, 67, 0, 0, 198, 66, 0, 0, 11, 67, 0, 0, 198, 66, 0, 0, 12, 67, 0, 0, 198, 66, 0, 0, 13, 67, 0, 0, 198, 66, 0, 0, 14, 67, 0, 0, 198, 66, 0, 0, 15, 67, 0, 0, 198, 66, 0, 0, 16, 67, 0, 0, 198, 66, 0, 0, 17, 67, 0, 0, 198, 66, 0, 0, 18, 67, 0, 0, 198, 66, 0, 0, 19, 67, 0, 0, 198, 66, 0, 0, 20, 67, 0, 0, 198, 66, 0, 0, 21, 67, 0, 0, 198, 66, 0, 0, 22, 67, 0, 0, 198, 66, 0, 0, 23, 67, 0, 0, 198, 66, 0, 0, 24, 67, 0, 0, 198, 66, 0, 0, 25, 67, 0, 0, 198, 66, 0, 0, 26, 67, 0, 0, 198, 66, 0, 0, 27, 67, 0, 0, 198, 66, 0, 0, 28, 67, 0, 0, 198, 66, 0, 0, 29, 67, 0, 0, 198, 66, 0, 0, 30, 67, 0, 0, 198, 66, 0, 0, 31, 67, 0, 0, 198, 66, 0, 0, 32, 67, 0, 0, 198, 66, 0, 0, 33, 67, 0, 0, 198, 66, 0, 0, 34, 67, 0, 0, 198, 66, 0, 0, 35, 67, 0, 0, 198, 66, 0, 0, 36, 67, 0, 0, 198, 66, 0, 0, 37, 67, 0, 0, 198, 66, 0, 0, 38, 67, 0, 0, 198, 66, 0, 0, 39, 67, 0, 0, 198, 66, 0, 0, 40, 67, 0, 0, 198, 66, 0, 0, 41, 67, 0, 0, 198, 66, 0, 0, 42, 67, 0, 0, 198, 66, 0, 0, 43, 67, 0, 0, 198, 66, 0, 0, 44, 67, 0, 0, 198, 66, 0, 0, 45, 67, 0, 0, 198, 66, 0, 0, 46, 67, 0, 0, 198, 66, 0, 0, 47, 67, 0, 0, 198, 66, 0, 0, 48, 67, 0, 0, 198, 66, 0, 0, 49, 67, 0, 0, 198, 66, 0, 0, 50, 67, 0, 0, 198, 66, 0, 0, 51, 67, 0, 0, 198, 66, 0, 0, 52, 67, 0, 0, 198, 66, 0, 0, 53, 67, 0, 0, 198, 66, 0, 0, 54, 67, 0, 0, 198, 66, 0, 0, 55, 67, 0, 0, 200, 66, 0, 0, 184, 66, 0, 0, 200, 66, 0, 0, 186, 66, 0, 0, 200, 66, 0, 0, 188, 66, 0, 0, 200, 66, 0, 0, 190, 66, 0, 0, 200, 66, 0, 0, 192, 66, 0, 0, 200, 66, 0, 0, 194, 66, 0, 0, 200, 66, 0, 0, 196, 66, 0, 0, 200, 66, 0, 0, 198, 66, 0, 0, 200, 66, 0, 0, 200, 66, 0, 0, 200, 66, 0, 0, 202, 66, 0, 0, 200, 66, 0, 0, 204, 66, 0, 0, 200, 66, 0, 0, 206, 66, 0, 0, 200, 66, 0, 0, 208, 66, 0, 0, 200, 66, 0, 0, 210, 66, 0, 0, 200, 66, 0, 0, 212, 66, 0, 0, 200, 66, 0, 0, 214, 66, 0, 0, 200, 66, 0, 0, 216, 66, 0, 0, 200, 66, 0, 0, 218, 66, 0, 0, 200, 66, 0, 0, 220, 66, 0, 0, 200, 66, 0, 0, 222, 66, 0, 0, 200, 66, 0, 0, 224, 66, 0, 0, 200, 66, 0, 0, 226, 66, 0, 0, 200, 66, 0, 0, 228, 66, 0, 0, 200, 66, 0, 0, 230, 66, 0, 0, 200, 66, 0, 0, 232, 66, 0, 0, 200, 66, 0, 0, 234, 66, 0, 0, 200, 66, 0, 0, 236, 66, 0, 0, 200, 66, 0, 0, 238, 66, 0, 0, 200, 66, 0, 0, 240, 66, 0, 0, 200, 66, 0, 0, 242, 66, 0, 0, 200, 66, 0, 0, 244, 66, 0, 0, 200, 66, 0, 0, 246, 66, 0, 0, 200, 66, 0, 0, 248, 66, 0, 0, 200, 66, 0, 0, 250, 66, 0, 0, 200, 66, 0, 0, 252, 66, 0, 0, 200, 66, 0, 0, 254, 66, 0, 0, 200, 66, 0, 0, 0, 67, 0, 0, 200, 66, 0, 0, 1, 67, 0, 0, 200, 66, 0, 0, 2, 67, 0, 0, 200, 66, 0, 0, 3, 67, 0, 0, 200, 66, 0, 0, 4, 67, 0, 0, 200, 66, 0, 0, 5, 67, 0, 0, 200, 66, 0, 0, 6, 67, 0, 0, 200, 66, 0, 0, 7, 67, 0, 0, 200, 66, 0, 0, 8, 67, 0, 0, 200, 66, 0, 0, 9, 67, 0, 0, 200, 66, 0, 0, 10, 67, 0, 0, 200, 66, 0, 0, 11, 67, 0, 0, 200, 66, 0, 0, 12, 67, 0, 0, 200, 66, 0, 0, 13, 67, 0, 0, 200, 66, 0, 0, 14, 67, 0, 0, 200, 66, 0, 0, 15, 67, 0, 0, 200, 66, 0, 0, 16, 67, 0, 0, 200, 66, 0, 0, 17, 67, 0, 0, 200, 66, 0, 0, 18, 67, 0, 0, 200, 66, 0, 0, 19, 67, 0, 0, 200, 66, 0, 0, 20, 67, 0, 0, 200, 66, 0, 0, 21, 67, 0, 0, 200, 66, 0, 0, 22, 67, 0, 0, 200, 66, 0, 0, 23, 67, 0, 0, 200, 66, 0, 0, 24, 67, 0, 0, 200, 66, 0, 0, 25, 67, 0, 0, 200, 66, 0, 0, 26, 67, 0, 0, 200, 66, 0, 0, 27, 67, 0, 0, 200, 66, 0, 0, 28, 67, 0, 0, 200, 66, 0, 0, 29, 67, 0, 0, 200, 66, 0, 0, 30, 67, 0, 0, 200, 66, 0, 0, 31, 67, 0, 0, 200, 66, 0, 0, 32, 67, 0, 0, 200, 66, 0, 0, 33, 67, 0, 0, 200, 66, 0, 0, 34, 67, 0, 0, 200, 66, 0, 0, 35, 67, 0, 0, 200, 66, 0, 0, 36, 67, 0, 0, 200, 66, 0, 0, 37, 67, 0, 0, 200, 66, 0, 0, 38, 67, 0, 0, 200, 66, 0, 0, 39, 67, 0, 0, 200, 66, 0, 0, 40, 67, 0, 0, 200, 66, 0, 0, 41, 67, 0, 0, 200, 66, 0, 0, 42, 67, 0, 0, 200, 66, 0, 0, 43, 67, 0, 0, 200, 66, 0, 0, 44, 67, 0, 0, 200, 66, 0, 0, 45, 67, 0, 0, 200, 66, 0, 0, 46, 67, 0, 0, 200, 66, 0, 0, 47, 67, 0, 0, 200, 66, 0, 0, 48, 67, 0, 0, 200, 66, 0, 0, 49, 67, 0, 0, 200, 66, 0, 0, 50, 67, 0, 0, 200, 66, 0, 0, 51, 67, 0, 0, 200, 66, 0, 0, 52, 67, 0, 0, 200, 66, 0, 0, 53, 67, 0, 0, 200, 66, 0, 0, 54, 67, 0, 0, 200, 66, 0, 0, 55, 67, 0, 0, 202, 66, 0, 0, 184, 66, 0, 0, 202, 66, 0, 0, 186, 66, 0, 0, 202, 66, 0, 0, 188, 66, 0, 0, 202, 66, 0, 0, 190, 66, 0, 0, 202, 66, 0, 0, 192, 66, 0, 0, 202, 66, 0, 0, 194, 66, 0, 0, 202, 66, 0, 0, 196, 66, 0, 0, 202, 66, 0, 0, 198, 66, 0, 0, 202, 66, 0, 0, 200, 66, 0, 0, 202, 66, 0, 0, 202, 66, 0, 0, 202, 66, 0, 0, 204, 66, 0, 0, 202, 66, 0, 0, 206, 66, 0, 0, 202, 66, 0, 0, 208, 66, 0, 0, 202, 66, 0, 0, 210, 66, 0, 0, 202, 66, 0, 0, 212, 66, 0, 0, 202, 66, 0, 0, 214, 66, 0, 0, 202, 66, 0, 0, 216, 66, 0, 0, 202, 66, 0, 0, 218, 66, 0, 0, 202, 66, 0, 0, 220, 66, 0, 0, 202, 66, 0, 0, 222, 66, 0, 0, 202, 66, 0, 0, 224, 66, 0, 0, 202, 66, 0, 0, 226, 66, 0, 0, 202, 66, 0, 0, 228, 66, 0, 0, 202, 66, 0, 0, 230, 66, 0, 0, 202, 66, 0, 0, 232, 66, 0, 0, 202, 66, 0, 0, 234, 66, 0, 0, 202, 66, 0, 0, 236, 66, 0, 0, 202, 66, 0, 0, 238, 66, 0, 0, 202, 66, 0, 0, 240, 66, 0, 0, 202, 66, 0, 0, 242, 66, 0, 0, 202, 66, 0, 0, 244, 66, 0, 0, 202, 66, 0, 0, 246, 66, 0, 0, 202, 66, 0, 0, 248, 66, 0, 0, 202, 66, 0, 0, 250, 66, 0, 0, 202, 66, 0, 0, 252, 66, 0, 0, 202, 66, 0, 0, 254, 66, 0, 0, 202, 66, 0, 0, 0, 67, 0, 0, 202, 66, 0, 0, 1, 67, 0, 0, 202, 66, 0, 0, 2, 67, 0, 0, 202, 66, 0, 0, 3, 67, 0, 0, 202, 66, 0, 0, 4, 67, 0, 0, 202, 66, 0, 0, 5, 67, 0, 0, 202, 66, 0, 0, 6, 67, 0, 0, 202, 66, 0, 0, 7, 67, 0, 0, 202, 66, 0, 0, 8, 67, 0, 0, 202, 66, 0, 0, 9, 67, 0, 0, 202, 66, 0, 0, 10, 67, 0, 0, 202, 66, 0, 0, 11, 67, 0, 0, 202, 66, 0, 0, 12, 67, 0, 0, 202, 66, 0, 0, 13, 67, 0, 0, 202, 66, 0, 0, 14, 67, 0, 0, 202, 66, 0, 0, 15, 67, 0, 0, 202, 66, 0, 0, 16, 67, 0, 0, 202, 66, 0, 0, 17, 67, 0, 0, 202, 66, 0, 0, 18, 67, 0, 0, 202, 66, 0, 0, 19, 67, 0, 0, 202, 66, 0, 0, 20, 67, 0, 0, 202, 66, 0, 0, 21, 67, 0, 0, 202, 66, 0, 0, 22, 67, 0, 0, 202, 66, 0, 0, 23, 67, 0, 0, 202, 66, 0, 0, 24, 67, 0, 0, 202, 66, 0, 0, 25, 67, 0, 0, 202, 66, 0, 0, 26, 67, 0, 0, 202, 66, 0, 0, 27, 67, 0, 0, 202, 66, 0, 0, 28, 67, 0, 0, 202, 66, 0, 0, 29, 67, 0, 0, 202, 66, 0, 0, 30, 67, 0, 0, 202, 66, 0, 0, 31, 67, 0, 0, 202, 66, 0, 0, 32, 67, 0, 0, 202, 66, 0, 0, 33, 67, 0, 0, 202, 66, 0, 0, 34, 67, 0, 0, 202, 66, 0, 0, 35, 67, 0, 0, 202, 66, 0, 0, 36, 67, 0, 0, 202, 66, 0, 0, 37, 67, 0, 0, 202, 66, 0, 0, 38, 67, 0, 0, 202, 66, 0, 0, 39, 67, 0, 0, 202, 66, 0, 0, 40, 67, 0, 0, 202, 66, 0, 0, 41, 67, 0, 0, 202, 66, 0, 0, 42, 67, 0, 0, 202, 66, 0, 0, 43, 67, 0, 0, 202, 66, 0, 0, 44, 67, 0, 0, 202, 66, 0, 0, 45, 67, 0, 0, 202, 66, 0, 0, 46, 67, 0, 0, 202, 66, 0, 0, 47, 67, 0, 0, 202, 66, 0, 0, 48, 67, 0, 0, 202, 66, 0, 0, 49, 67, 0, 0, 202, 66, 0, 0, 50, 67, 0, 0, 202, 66, 0, 0, 51, 67, 0, 0, 202, 66, 0, 0, 52, 67, 0, 0, 202, 66, 0, 0, 53, 67, 0, 0, 202, 66, 0, 0, 54, 67, 0, 0, 202, 66, 0, 0, 55, 67, 0, 0, 204, 66, 0, 0, 184, 66, 0, 0, 204, 66, 0, 0, 186, 66, 0, 0, 204, 66, 0, 0, 188, 66, 0, 0, 204, 66, 0, 0, 190, 66, 0, 0, 204, 66, 0, 0, 192, 66, 0, 0, 204, 66, 0, 0, 194, 66, 0, 0, 204, 66, 0, 0, 196, 66, 0, 0, 204, 66, 0, 0, 198, 66, 0, 0, 204, 66, 0, 0, 200, 66, 0, 0, 204, 66, 0, 0, 202, 66, 0, 0, 204, 66, 0, 0, 204, 66, 0, 0, 204, 66, 0, 0, 206, 66, 0, 0, 204, 66, 0, 0, 208, 66, 0, 0, 204, 66, 0, 0, 210, 66, 0, 0, 204, 66, 0, 0, 212, 66, 0, 0, 204, 66, 0, 0, 214, 66, 0, 0, 204, 66, 0, 0, 216, 66, 0, 0, 204, 66, 0, 0, 218, 66, 0, 0, 204, 66, 0, 0, 220, 66, 0, 0, 204, 66, 0, 0, 222, 66, 0, 0, 204, 66, 0, 0, 224, 66, 0, 0, 204, 66, 0, 0, 226, 66, 0, 0, 204, 66, 0, 0, 228, 66, 0, 0, 204, 66, 0, 0, 230, 66, 0, 0, 204, 66, 0, 0, 232, 66, 0, 0, 204, 66, 0, 0, 234, 66, 0, 0, 204, 66, 0, 0, 236, 66, 0, 0, 204, 66, 0, 0, 238, 66, 0, 0, 204, 66, 0, 0, 240, 66, 0, 0, 204, 66, 0, 0, 242, 66, 0, 0, 204, 66, 0, 0, 244, 66, 0, 0, 204, 66, 0, 0, 246, 66, 0, 0, 204, 66, 0, 0, 248, 66, 0, 0, 204, 66, 0, 0, 250, 66, 0, 0, 204, 66, 0, 0, 252, 66, 0, 0, 204, 66, 0, 0, 254, 66, 0, 0, 204, 66, 0, 0, 0, 67, 0, 0, 204, 66, 0, 0, 1, 67, 0, 0, 204, 66, 0, 0, 2, 67, 0, 0, 204, 66, 0, 0, 3, 67, 0, 0, 204, 66, 0, 0, 4, 67, 0, 0, 204, 66, 0, 0, 5, 67, 0, 0, 204, 66, 0, 0, 6, 67, 0, 0, 204, 66, 0, 0, 7, 67, 0, 0, 204, 66, 0, 0, 8, 67, 0, 0, 204, 66, 0, 0, 9, 67, 0, 0, 204, 66, 0, 0, 10, 67, 0, 0, 204, 66, 0, 0, 11, 67, 0, 0, 204, 66, 0, 0, 12, 67, 0, 0, 204, 66, 0, 0, 13, 67, 0, 0, 204, 66, 0, 0, 14, 67, 0, 0, 204, 66, 0, 0, 15, 67, 0, 0, 204, 66, 0, 0, 16, 67, 0, 0, 204, 66, 0, 0, 17, 67, 0, 0, 204, 66, 0, 0, 18, 67, 0, 0, 204, 66, 0, 0, 19, 67, 0, 0, 204, 66, 0, 0, 20, 67, 0, 0, 204, 66, 0, 0, 21, 67, 0, 0, 204, 66, 0, 0, 22, 67, 0, 0, 204, 66, 0, 0, 23, 67, 0, 0, 204, 66, 0, 0, 24, 67, 0, 0, 204, 66, 0, 0, 25, 67, 0, 0, 204, 66, 0, 0, 26, 67, 0, 0, 204, 66, 0, 0, 27, 67, 0, 0, 204, 66, 0, 0, 28, 67, 0, 0, 204, 66, 0, 0, 29, 67, 0, 0, 204, 66, 0, 0, 30, 67, 0, 0, 204, 66, 0, 0, 31, 67, 0, 0, 204, 66, 0, 0, 32, 67, 0, 0, 204, 66, 0, 0, 33, 67, 0, 0, 204, 66, 0, 0, 34, 67, 0, 0, 204, 66, 0, 0, 35, 67, 0, 0, 204, 66, 0, 0, 36, 67, 0, 0, 204, 66, 0, 0, 37, 67, 0, 0, 204, 66, 0, 0, 38, 67, 0, 0, 204, 66, 0, 0, 39, 67, 0, 0, 204, 66, 0, 0, 40, 67, 0, 0, 204, 66, 0, 0, 41, 67, 0, 0, 204, 66, 0, 0, 42, 67, 0, 0, 204, 66, 0, 0, 43, 67, 0, 0, 204, 66, 0, 0, 44, 67, 0, 0, 204, 66, 0, 0, 45, 67, 0, 0, 204, 66, 0, 0, 46, 67, 0, 0, 204, 66, 0, 0, 47, 67, 0, 0, 204, 66, 0, 0, 48, 67, 0, 0, 204, 66, 0, 0, 49, 67, 0, 0, 204, 66, 0, 0, 50, 67, 0, 0, 204, 66, 0, 0, 51, 67, 0, 0, 204, 66, 0, 0, 52, 67, 0, 0, 204, 66, 0, 0, 53, 67, 0, 0, 204, 66, 0, 0, 54, 67, 0, 0, 204, 66, 0, 0, 55, 67, 0, 0, 206, 66, 0, 0, 184, 66, 0, 0, 206, 66, 0, 0, 186, 66, 0, 0, 206, 66, 0, 0, 188, 66, 0, 0, 206, 66, 0, 0, 190, 66, 0, 0, 206, 66, 0, 0, 192, 66, 0, 0, 206, 66, 0, 0, 194, 66, 0, 0, 206, 66, 0, 0, 196, 66, 0, 0, 206, 66, 0, 0, 198, 66, 0, 0, 206, 66, 0, 0, 200, 66, 0, 0, 206, 66, 0, 0, 202, 66, 0, 0, 206, 66, 0, 0, 204, 66, 0, 0, 206, 66, 0, 0, 206, 66, 0, 0, 206, 66, 0, 0, 208, 66, 0, 0, 206, 66, 0, 0, 210, 66, 0, 0, 206, 66, 0, 0, 212, 66, 0, 0, 206, 66, 0, 0, 214, 66, 0, 0, 206, 66, 0, 0, 216, 66, 0, 0, 206, 66, 0, 0, 218, 66, 0, 0, 206, 66, 0, 0, 220, 66, 0, 0, 206, 66, 0, 0, 222, 66, 0, 0, 206, 66, 0, 0, 224, 66, 0, 0, 206, 66, 0, 0, 226, 66, 0, 0, 206, 66, 0, 0, 228, 66, 0, 0, 206, 66, 0, 0, 230, 66, 0, 0, 206, 66, 0, 0, 232, 66, 0, 0, 206, 66, 0, 0, 234, 66, 0, 0, 206, 66, 0, 0, 236, 66, 0, 0, 206, 66, 0, 0, 238, 66, 0, 0, 206, 66, 0, 0, 240, 66, 0, 0, 206, 66, 0, 0, 242, 66, 0, 0, 206, 66, 0, 0, 244, 66, 0, 0, 206, 66, 0, 0, 246, 66, 0, 0, 206, 66, 0, 0, 248, 66, 0, 0, 206, 66, 0, 0, 250, 66, 0, 0, 206, 66, 0, 0, 252, 66, 0, 0, 206, 66, 0, 0, 254, 66, 0, 0, 206, 66, 0, 0, 0, 67, 0, 0, 206, 66, 0, 0, 1, 67, 0, 0, 206, 66, 0, 0, 2, 67, 0, 0, 206, 66, 0, 0, 3, 67, 0, 0, 206, 66, 0, 0, 4, 67, 0, 0, 206, 66, 0, 0, 5, 67, 0, 0, 206, 66, 0, 0, 6, 67, 0, 0, 206, 66, 0, 0, 7, 67, 0, 0, 206, 66, 0, 0, 8, 67, 0, 0, 206, 66, 0, 0, 9, 67, 0, 0, 206, 66, 0, 0, 10, 67, 0, 0, 206, 66, 0, 0, 11, 67, 0, 0, 206, 66, 0, 0, 12, 67, 0, 0, 206, 66, 0, 0, 13, 67, 0, 0, 206, 66, 0, 0, 14, 67, 0, 0, 206, 66, 0, 0, 15, 67, 0, 0, 206, 66, 0, 0, 16, 67, 0, 0, 206, 66, 0, 0, 17, 67, 0, 0, 206, 66, 0, 0, 18, 67, 0, 0, 206, 66, 0, 0, 19, 67, 0, 0, 206, 66, 0, 0, 20, 67, 0, 0, 206, 66, 0, 0, 21, 67, 0, 0, 206, 66, 0, 0, 22, 67, 0, 0, 206, 66, 0, 0, 23, 67, 0, 0, 206, 66, 0, 0, 24, 67, 0, 0, 206, 66, 0, 0, 25, 67, 0, 0, 206, 66, 0, 0, 26, 67, 0, 0, 206, 66, 0, 0, 27, 67, 0, 0, 206, 66, 0, 0, 28, 67, 0, 0, 206, 66, 0, 0, 29, 67, 0, 0, 206, 66, 0, 0, 30, 67, 0, 0, 206, 66, 0, 0, 31, 67, 0, 0, 206, 66, 0, 0, 32, 67, 0, 0, 206, 66, 0, 0, 33, 67, 0, 0, 206, 66, 0, 0, 34, 67, 0, 0, 206, 66, 0, 0, 35, 67, 0, 0, 206, 66, 0, 0, 36, 67, 0, 0, 206, 66, 0, 0, 37, 67, 0, 0, 206, 66, 0, 0, 38, 67, 0, 0, 206, 66, 0, 0, 39, 67, 0, 0, 206, 66, 0, 0, 40, 67, 0, 0, 206, 66, 0, 0, 41, 67, 0, 0, 206, 66, 0, 0, 42, 67, 0, 0, 206, 66, 0, 0, 43, 67, 0, 0, 206, 66, 0, 0, 44, 67, 0, 0, 206, 66, 0, 0, 45, 67, 0, 0, 206, 66, 0, 0, 46, 67, 0, 0, 206, 66, 0, 0, 47, 67, 0, 0, 206, 66, 0, 0, 48, 67, 0, 0, 206, 66, 0, 0, 49, 67, 0, 0, 206, 66, 0, 0, 50, 67, 0, 0, 206, 66, 0, 0, 51, 67, 0, 0, 206, 66, 0, 0, 52, 67, 0, 0, 206, 66, 0, 0, 53, 67, 0, 0, 206, 66, 0, 0, 54, 67, 0, 0, 206, 66, 0, 0, 55, 67, 0, 0, 208, 66, 0, 0, 184, 66, 0, 0, 208, 66, 0, 0, 186, 66, 0, 0, 208, 66, 0, 0, 188, 66, 0, 0, 208, 66, 0, 0, 190, 66, 0, 0, 208, 66, 0, 0, 192, 66, 0, 0, 208, 66, 0, 0, 194, 66, 0, 0, 208, 66, 0, 0, 196, 66, 0, 0, 208, 66, 0, 0, 198, 66, 0, 0, 208, 66, 0, 0, 200, 66, 0, 0, 208, 66, 0, 0, 202, 66, 0, 0, 208, 66, 0, 0, 204, 66, 0, 0, 208, 66, 0, 0, 206, 66, 0, 0, 208, 66, 0, 0, 208, 66, 0, 0, 208, 66, 0, 0, 210, 66, 0, 0, 208, 66, 0, 0, 212, 66, 0, 0, 208, 66, 0, 0, 214, 66, 0, 0, 208, 66, 0, 0, 216, 66, 0, 0, 208, 66, 0, 0, 218, 66, 0, 0, 208, 66, 0, 0, 220, 66, 0, 0, 208, 66, 0, 0, 222, 66, 0, 0, 208, 66, 0, 0, 224, 66, 0, 0, 208, 66, 0, 0, 226, 66, 0, 0, 208, 66, 0, 0, 228, 66, 0, 0, 208, 66, 0, 0, 230, 66, 0, 0, 208, 66, 0, 0, 232, 66, 0, 0, 208, 66, 0, 0, 234, 66, 0, 0, 208, 66, 0, 0, 236, 66, 0, 0, 208, 66, 0, 0, 238, 66, 0, 0, 208, 66, 0, 0, 240, 66, 0, 0, 208, 66, 0, 0, 242, 66, 0, 0, 208, 66, 0, 0, 244, 66, 0, 0, 208, 66, 0, 0, 246, 66, 0, 0, 208, 66, 0, 0, 248, 66, 0, 0, 208, 66, 0, 0, 250, 66, 0, 0, 208, 66, 0, 0, 252, 66, 0, 0, 208, 66, 0, 0, 254, 66, 0, 0, 208, 66, 0, 0, 0, 67, 0, 0, 208, 66, 0, 0, 1, 67, 0, 0, 208, 66, 0, 0, 2, 67, 0, 0, 208, 66, 0, 0, 3, 67, 0, 0, 208, 66, 0, 0, 4, 67, 0, 0, 208, 66, 0, 0, 5, 67, 0, 0, 208, 66, 0, 0, 6, 67, 0, 0, 208, 66, 0, 0, 7, 67, 0, 0, 208, 66, 0, 0, 8, 67, 0, 0, 208, 66, 0, 0, 9, 67, 0, 0, 208, 66, 0, 0, 10, 67, 0, 0, 208, 66, 0, 0, 11, 67, 0, 0, 208, 66, 0, 0, 12, 67, 0, 0, 208, 66, 0, 0, 13, 67, 0, 0, 208, 66, 0, 0, 14, 67, 0, 0, 208, 66, 0, 0, 15, 67, 0, 0, 208, 66, 0, 0, 16, 67, 0, 0, 208, 66, 0, 0, 17, 67, 0, 0, 208, 66, 0, 0, 18, 67, 0, 0, 208, 66, 0, 0, 19, 67, 0, 0, 208, 66, 0, 0, 20, 67, 0, 0, 208, 66, 0, 0, 21, 67, 0, 0, 208, 66, 0, 0, 22, 67, 0, 0, 208, 66, 0, 0, 23, 67, 0, 0, 208, 66, 0, 0, 24, 67, 0, 0, 208, 66, 0, 0, 25, 67, 0, 0, 208, 66, 0, 0, 26, 67, 0, 0, 208, 66, 0, 0, 27, 67, 0, 0, 208, 66, 0, 0, 28, 67, 0, 0, 208, 66, 0, 0, 29, 67, 0, 0, 208, 66, 0, 0, 30, 67, 0, 0, 208, 66, 0, 0, 31, 67, 0, 0, 208, 66, 0, 0, 32, 67, 0, 0, 208, 66, 0, 0, 33, 67, 0, 0, 208, 66, 0, 0, 34, 67, 0, 0, 208, 66, 0, 0, 35, 67, 0, 0, 208, 66, 0, 0, 36, 67, 0, 0, 208, 66, 0, 0, 37, 67, 0, 0, 208, 66, 0, 0, 38, 67, 0, 0, 208, 66, 0, 0, 39, 67, 0, 0, 208, 66, 0, 0, 40, 67, 0, 0, 208, 66, 0, 0, 41, 67, 0, 0, 208, 66, 0, 0, 42, 67, 0, 0, 208, 66, 0, 0, 43, 67, 0, 0, 208, 66, 0, 0, 44, 67, 0, 0, 208, 66, 0, 0, 45, 67, 0, 0, 208, 66, 0, 0, 46, 67, 0, 0, 208, 66, 0, 0, 47, 67, 0, 0, 208, 66, 0, 0, 48, 67, 0, 0, 208, 66, 0, 0, 49, 67, 0, 0, 208, 66, 0, 0, 50, 67, 0, 0, 208, 66, 0, 0, 51, 67, 0, 0, 208, 66, 0, 0, 52, 67, 0, 0, 208, 66, 0, 0, 53, 67, 0, 0, 208, 66, 0, 0, 54, 67, 0, 0, 208, 66, 0, 0, 55, 67, 0, 0, 210, 66, 0, 0, 184, 66, 0, 0, 210, 66, 0, 0, 186, 66, 0, 0, 210, 66, 0, 0, 188, 66, 0, 0, 210, 66, 0, 0, 190, 66, 0, 0, 210, 66, 0, 0, 192, 66, 0, 0, 210, 66, 0, 0, 194, 66, 0, 0, 210, 66, 0, 0, 196, 66, 0, 0, 210, 66, 0, 0, 198, 66, 0, 0, 210, 66, 0, 0, 200, 66, 0, 0, 210, 66, 0, 0, 202, 66, 0, 0, 210, 66, 0, 0, 204, 66, 0, 0, 210, 66, 0, 0, 206, 66, 0, 0, 210, 66, 0, 0, 208, 66, 0, 0, 210, 66, 0, 0, 210, 66, 0, 0, 210, 66, 0, 0, 212, 66, 0, 0, 210, 66, 0, 0, 214, 66, 0, 0, 210, 66, 0, 0, 216, 66, 0, 0, 210, 66, 0, 0, 218, 66, 0, 0, 210, 66, 0, 0, 220, 66, 0, 0, 210, 66, 0, 0, 222, 66, 0, 0, 210, 66, 0, 0, 224, 66, 0, 0, 210, 66, 0, 0, 226, 66, 0, 0, 210, 66, 0, 0, 228, 66, 0, 0, 210, 66, 0, 0, 230, 66, 0, 0, 210, 66, 0, 0, 232, 66, 0, 0, 210, 66, 0, 0, 234, 66, 0, 0, 210, 66, 0, 0, 236, 66, 0, 0, 210, 66, 0, 0, 238, 66, 0, 0, 210, 66, 0, 0, 240, 66, 0, 0, 210, 66, 0, 0, 242, 66, 0, 0, 210, 66, 0, 0, 244, 66, 0, 0, 210, 66, 0, 0, 246, 66, 0, 0, 210, 66, 0, 0, 248, 66, 0, 0, 210, 66, 0, 0, 250, 66, 0, 0, 210, 66, 0, 0, 252, 66, 0, 0, 210, 66, 0, 0, 254, 66, 0, 0, 210, 66, 0, 0, 0, 67, 0, 0, 210, 66, 0, 0, 1, 67, 0, 0, 210, 66, 0, 0, 2, 67, 0, 0, 210, 66, 0, 0, 3, 67, 0, 0, 210, 66, 0, 0, 4, 67, 0, 0, 210, 66, 0, 0, 5, 67, 0, 0, 210, 66, 0, 0, 6, 67, 0, 0, 210, 66, 0, 0, 7, 67, 0, 0, 210, 66, 0, 0, 8, 67, 0, 0, 210, 66, 0, 0, 9, 67, 0, 0, 210, 66, 0, 0, 10, 67, 0, 0, 210, 66, 0, 0, 11, 67, 0, 0, 210, 66, 0, 0, 12, 67, 0, 0, 210, 66, 0, 0, 13, 67, 0, 0, 210, 66, 0, 0, 14, 67, 0, 0, 210, 66, 0, 0, 15, 67, 0, 0, 210, 66, 0, 0, 16, 67, 0, 0, 210, 66, 0, 0, 17, 67, 0, 0, 210, 66, 0, 0, 18, 67, 0, 0, 210, 66, 0, 0, 19, 67, 0, 0, 210, 66, 0, 0, 20, 67, 0, 0, 210, 66, 0, 0, 21, 67, 0, 0, 210, 66, 0, 0, 22, 67, 0, 0, 210, 66, 0, 0, 23, 67, 0, 0, 210, 66, 0, 0, 24, 67, 0, 0, 210, 66, 0, 0, 25, 67, 0, 0, 210, 66, 0, 0, 26, 67, 0, 0, 210, 66, 0, 0, 27, 67, 0, 0, 210, 66, 0, 0, 28, 67, 0, 0, 210, 66, 0, 0, 29, 67, 0, 0, 210, 66, 0, 0, 30, 67, 0, 0, 210, 66, 0, 0, 31, 67, 0, 0, 210, 66, 0, 0, 32, 67, 0, 0, 210, 66, 0, 0, 33, 67, 0, 0, 210, 66, 0, 0, 34, 67, 0, 0, 210, 66, 0, 0, 35, 67, 0, 0, 210, 66, 0, 0, 36, 67, 0, 0, 210, 66, 0, 0, 37, 67, 0, 0, 210, 66, 0, 0, 38, 67, 0, 0, 210, 66, 0, 0, 39, 67, 0, 0, 210, 66, 0, 0, 40, 67, 0, 0, 210, 66, 0, 0, 41, 67, 0, 0, 210, 66, 0, 0, 42, 67, 0, 0, 210, 66, 0, 0, 43, 67, 0, 0, 210, 66, 0, 0, 44, 67, 0, 0, 210, 66, 0, 0, 45, 67, 0, 0, 210, 66, 0, 0, 46, 67, 0, 0, 210, 66, 0, 0, 47, 67, 0, 0, 210, 66, 0, 0, 48, 67, 0, 0, 210, 66, 0, 0, 49, 67, 0, 0, 210, 66, 0, 0, 50, 67, 0, 0, 210, 66, 0, 0, 51, 67, 0, 0, 210, 66, 0, 0, 52, 67, 0, 0, 210, 66, 0, 0, 53, 67, 0, 0, 210, 66, 0, 0, 54, 67, 0, 0, 210, 66, 0, 0, 55, 67, 0, 0, 212, 66, 0, 0, 184, 66, 0, 0, 212, 66, 0, 0, 186, 66, 0, 0, 212, 66, 0, 0, 188, 66, 0, 0, 212, 66, 0, 0, 190, 66, 0, 0, 212, 66, 0, 0, 192, 66, 0, 0, 212, 66, 0, 0, 194, 66, 0, 0, 212, 66, 0, 0, 196, 66, 0, 0, 212, 66, 0, 0, 198, 66, 0, 0, 212, 66, 0, 0, 200, 66, 0, 0, 212, 66, 0, 0, 202, 66, 0, 0, 212, 66, 0, 0, 204, 66, 0, 0, 212, 66, 0, 0, 206, 66, 0, 0, 212, 66, 0, 0, 208, 66, 0, 0, 212, 66, 0, 0, 210, 66, 0, 0, 212, 66, 0, 0, 212, 66, 0, 0, 212, 66, 0, 0, 214, 66, 0, 0, 212, 66, 0, 0, 216, 66, 0, 0, 212, 66, 0, 0, 218, 66, 0, 0, 212, 66, 0, 0, 220, 66, 0, 0, 212, 66, 0, 0, 222, 66, 0, 0, 212, 66, 0, 0, 224, 66, 0, 0, 212, 66, 0, 0, 226, 66, 0, 0, 212, 66, 0, 0, 228, 66, 0, 0, 212, 66, 0, 0, 230, 66, 0, 0, 212, 66, 0, 0, 232, 66, 0, 0, 212, 66, 0, 0, 234, 66, 0, 0, 212, 66, 0, 0, 236, 66, 0, 0, 212, 66, 0, 0, 238, 66, 0, 0, 212, 66, 0, 0, 240, 66, 0, 0, 212, 66, 0, 0, 242, 66, 0, 0, 212, 66, 0, 0, 244, 66, 0, 0, 212, 66, 0, 0, 246, 66, 0, 0, 212, 66, 0, 0, 248, 66, 0, 0, 212, 66, 0, 0, 250, 66, 0, 0, 212, 66, 0, 0, 252, 66, 0, 0, 212, 66, 0, 0, 254, 66, 0, 0, 212, 66, 0, 0, 0, 67, 0, 0, 212, 66, 0, 0, 1, 67, 0, 0, 212, 66, 0, 0, 2, 67, 0, 0, 212, 66, 0, 0, 3, 67, 0, 0, 212, 66, 0, 0, 4, 67, 0, 0, 212, 66, 0, 0, 5, 67, 0, 0, 212, 66, 0, 0, 6, 67, 0, 0, 212, 66, 0, 0, 7, 67, 0, 0, 212, 66, 0, 0, 8, 67, 0, 0, 212, 66, 0, 0, 9, 67, 0, 0, 212, 66, 0, 0, 10, 67, 0, 0, 212, 66, 0, 0, 11, 67, 0, 0, 212, 66, 0, 0, 12, 67, 0, 0, 212, 66, 0, 0, 13, 67, 0, 0, 212, 66, 0, 0, 14, 67, 0, 0, 212, 66, 0, 0, 15, 67, 0, 0, 212, 66, 0, 0, 16, 67, 0, 0, 212, 66, 0, 0, 17, 67, 0, 0, 212, 66, 0, 0, 18, 67, 0, 0, 212, 66, 0, 0, 19, 67, 0, 0, 212, 66, 0, 0, 20, 67, 0, 0, 212, 66, 0, 0, 21, 67, 0, 0, 212, 66, 0, 0, 22, 67, 0, 0, 212, 66, 0, 0, 23, 67, 0, 0, 212, 66, 0, 0, 24, 67, 0, 0, 212, 66, 0, 0, 25, 67, 0, 0, 212, 66, 0, 0, 26, 67, 0, 0, 212, 66, 0, 0, 27, 67, 0, 0, 212, 66, 0, 0, 28, 67, 0, 0, 212, 66, 0, 0, 29, 67, 0, 0, 212, 66, 0, 0, 30, 67, 0, 0, 212, 66, 0, 0, 31, 67, 0, 0, 212, 66, 0, 0, 32, 67, 0, 0, 212, 66, 0, 0, 33, 67, 0, 0, 212, 66, 0, 0, 34, 67, 0, 0, 212, 66, 0, 0, 35, 67, 0, 0, 212, 66, 0, 0, 36, 67, 0, 0, 212, 66, 0, 0, 37, 67, 0, 0, 212, 66, 0, 0, 38, 67, 0, 0, 212, 66, 0, 0, 39, 67, 0, 0, 212, 66, 0, 0, 40, 67, 0, 0, 212, 66, 0, 0, 41, 67, 0, 0, 212, 66, 0, 0, 42, 67, 0, 0, 212, 66, 0, 0, 43, 67, 0, 0, 212, 66, 0, 0, 44, 67, 0, 0, 212, 66, 0, 0, 45, 67, 0, 0, 212, 66, 0, 0, 46, 67, 0, 0, 212, 66, 0, 0, 47, 67, 0, 0, 212, 66, 0, 0, 48, 67, 0, 0, 212, 66, 0, 0, 49, 67, 0, 0, 212, 66, 0, 0, 50, 67, 0, 0, 212, 66, 0, 0, 51, 67, 0, 0, 212, 66, 0, 0, 52, 67, 0, 0, 212, 66, 0, 0, 53, 67, 0, 0, 212, 66, 0, 0, 54, 67, 0, 0, 212, 66, 0, 0, 55, 67, 0, 0, 214, 66, 0, 0, 184, 66, 0, 0, 214, 66, 0, 0, 186, 66, 0, 0, 214, 66, 0, 0, 188, 66, 0, 0, 214, 66, 0, 0, 190, 66, 0, 0, 214, 66, 0, 0, 192, 66, 0, 0, 214, 66, 0, 0, 194, 66, 0, 0, 214, 66, 0, 0, 196, 66, 0, 0, 214, 66, 0, 0, 198, 66, 0, 0, 214, 66, 0, 0, 200, 66, 0, 0, 214, 66, 0, 0, 202, 66, 0, 0, 214, 66, 0, 0, 204, 66, 0, 0, 214, 66, 0, 0, 206, 66, 0, 0, 214, 66, 0, 0, 208, 66, 0, 0, 214, 66, 0, 0, 210, 66, 0, 0, 214, 66, 0, 0, 212, 66, 0, 0, 214, 66, 0, 0, 214, 66, 0, 0, 214, 66, 0, 0, 216, 66, 0, 0, 214, 66, 0, 0, 218, 66, 0, 0, 214, 66, 0, 0, 220, 66, 0, 0, 214, 66, 0, 0, 222, 66, 0, 0, 214, 66, 0, 0, 224, 66, 0, 0, 214, 66, 0, 0, 226, 66, 0, 0, 214, 66, 0, 0, 228, 66, 0, 0, 214, 66, 0, 0, 230, 66, 0, 0, 214, 66, 0, 0, 232, 66, 0, 0, 214, 66, 0, 0, 234, 66, 0, 0, 214, 66, 0, 0, 236, 66, 0, 0, 214, 66, 0, 0, 238, 66, 0, 0, 214, 66, 0, 0, 240, 66, 0, 0, 214, 66, 0, 0, 242, 66, 0, 0, 214, 66, 0, 0, 244, 66, 0, 0, 214, 66, 0, 0, 246, 66, 0, 0, 214, 66, 0, 0, 248, 66, 0, 0, 214, 66, 0, 0, 250, 66, 0, 0, 214, 66, 0, 0, 252, 66, 0, 0, 214, 66, 0, 0, 254, 66, 0, 0, 214, 66, 0, 0, 0, 67, 0, 0, 214, 66, 0, 0, 1, 67, 0, 0, 214, 66, 0, 0, 2, 67, 0, 0, 214, 66, 0, 0, 3, 67, 0, 0, 214, 66, 0, 0, 4, 67, 0, 0, 214, 66, 0, 0, 5, 67, 0, 0, 214, 66, 0, 0, 6, 67, 0, 0, 214, 66, 0, 0, 7, 67, 0, 0, 214, 66, 0, 0, 8, 67, 0, 0, 214, 66, 0, 0, 9, 67, 0, 0, 214, 66, 0, 0, 10, 67, 0, 0, 214, 66, 0, 0, 11, 67, 0, 0, 214, 66, 0, 0, 12, 67, 0, 0, 214, 66, 0, 0, 13, 67, 0, 0, 214, 66, 0, 0, 14, 67, 0, 0, 214, 66, 0, 0, 15, 67, 0, 0, 214, 66, 0, 0, 16, 67, 0, 0, 214, 66, 0, 0, 17, 67, 0, 0, 214, 66, 0, 0, 18, 67, 0, 0, 214, 66, 0, 0, 19, 67, 0, 0, 214, 66, 0, 0, 20, 67, 0, 0, 214, 66, 0, 0, 21, 67, 0, 0, 214, 66, 0, 0, 22, 67, 0, 0, 214, 66, 0, 0, 23, 67, 0, 0, 214, 66, 0, 0, 24, 67, 0, 0, 214, 66, 0, 0, 25, 67, 0, 0, 214, 66, 0, 0, 26, 67, 0, 0, 214, 66, 0, 0, 27, 67, 0, 0, 214, 66, 0, 0, 28, 67, 0, 0, 214, 66, 0, 0, 29, 67, 0, 0, 214, 66, 0, 0, 30, 67, 0, 0, 214, 66, 0, 0, 31, 67, 0, 0, 214, 66, 0, 0, 32, 67, 0, 0, 214, 66, 0, 0, 33, 67, 0, 0, 214, 66, 0, 0, 34, 67, 0, 0, 214, 66, 0, 0, 35, 67, 0, 0, 214, 66, 0, 0, 36, 67, 0, 0, 214, 66, 0, 0, 37, 67, 0, 0, 214, 66, 0, 0, 38, 67, 0, 0, 214, 66, 0, 0, 39, 67, 0, 0, 214, 66, 0, 0, 40, 67, 0, 0, 214, 66, 0, 0, 41, 67, 0, 0, 214, 66, 0, 0, 42, 67, 0, 0, 214, 66, 0, 0, 43, 67, 0, 0, 214, 66, 0, 0, 44, 67, 0, 0, 214, 66, 0, 0, 45, 67, 0, 0, 214, 66, 0, 0, 46, 67, 0, 0, 214, 66, 0, 0, 47, 67, 0, 0, 214, 66, 0, 0, 48, 67, 0, 0, 214, 66, 0, 0, 49, 67, 0, 0, 214, 66, 0, 0, 50, 67, 0, 0, 214, 66, 0, 0, 51, 67, 0, 0, 214, 66, 0, 0, 52, 67, 0, 0, 214, 66, 0, 0, 53, 67, 0, 0, 214, 66, 0, 0, 54, 67, 0, 0, 214, 66, 0, 0, 55, 67, 0, 0, 216, 66, 0, 0, 184, 66, 0, 0, 216, 66, 0, 0, 186, 66, 0, 0, 216, 66, 0, 0, 188, 66, 0, 0, 216, 66, 0, 0, 190, 66, 0, 0, 216, 66, 0, 0, 192, 66, 0, 0, 216, 66, 0, 0, 194, 66, 0, 0, 216, 66, 0, 0, 196, 66, 0, 0, 216, 66, 0, 0, 198, 66, 0, 0, 216, 66, 0, 0, 200, 66, 0, 0, 216, 66, 0, 0, 202, 66, 0, 0, 216, 66, 0, 0, 204, 66, 0, 0, 216, 66, 0, 0, 206, 66, 0, 0, 216, 66, 0, 0, 208, 66, 0, 0, 216, 66, 0, 0, 210, 66, 0, 0, 216, 66, 0, 0, 212, 66, 0, 0, 216, 66, 0, 0, 214, 66, 0, 0, 216, 66, 0, 0, 216, 66, 0, 0, 216, 66, 0, 0, 218, 66, 0, 0, 216, 66, 0, 0, 220, 66, 0, 0, 216, 66, 0, 0, 222, 66, 0, 0, 216, 66, 0, 0, 224, 66, 0, 0, 216, 66, 0, 0, 226, 66, 0, 0, 216, 66, 0, 0, 228, 66, 0, 0, 216, 66, 0, 0, 230, 66, 0, 0, 216, 66, 0, 0, 232, 66, 0, 0, 216, 66, 0, 0, 234, 66, 0, 0, 216, 66, 0, 0, 236, 66, 0, 0, 216, 66, 0, 0, 238, 66, 0, 0, 216, 66, 0, 0, 240, 66, 0, 0, 216, 66, 0, 0, 242, 66, 0, 0, 216, 66, 0, 0, 244, 66, 0, 0, 216, 66, 0, 0, 246, 66, 0, 0, 216, 66, 0, 0, 248, 66, 0, 0, 216, 66, 0, 0, 250, 66, 0, 0, 216, 66, 0, 0, 252, 66, 0, 0, 216, 66, 0, 0, 254, 66, 0, 0, 216, 66, 0, 0, 0, 67, 0, 0, 216, 66, 0, 0, 1, 67, 0, 0, 216, 66, 0, 0, 2, 67, 0, 0, 216, 66, 0, 0, 3, 67, 0, 0, 216, 66, 0, 0, 4, 67, 0, 0, 216, 66, 0, 0, 5, 67, 0, 0, 216, 66, 0, 0, 6, 67, 0, 0, 216, 66, 0, 0, 7, 67, 0, 0, 216, 66, 0, 0, 8, 67, 0, 0, 216, 66, 0, 0, 9, 67, 0, 0, 216, 66, 0, 0, 10, 67, 0, 0, 216, 66, 0, 0, 11, 67, 0, 0, 216, 66, 0, 0, 12, 67, 0, 0, 216, 66, 0, 0, 13, 67, 0, 0, 216, 66, 0, 0, 14, 67, 0, 0, 216, 66, 0, 0, 15, 67, 0, 0, 216, 66, 0, 0, 16, 67, 0, 0, 216, 66, 0, 0, 17, 67, 0, 0, 216, 66, 0, 0, 18, 67, 0, 0, 216, 66, 0, 0, 19, 67, 0, 0, 216, 66, 0, 0, 20, 67, 0, 0, 216, 66, 0, 0, 21, 67, 0, 0, 216, 66, 0, 0, 22, 67, 0, 0, 216, 66, 0, 0, 23, 67, 0, 0, 216, 66, 0, 0, 24, 67, 0, 0, 216, 66, 0, 0, 25, 67, 0, 0, 216, 66, 0, 0, 26, 67, 0, 0, 216, 66, 0, 0, 27, 67, 0, 0, 216, 66, 0, 0, 28, 67, 0, 0, 216, 66, 0, 0, 29, 67, 0, 0, 216, 66, 0, 0, 30, 67, 0, 0, 216, 66, 0, 0, 31, 67, 0, 0, 216, 66, 0, 0, 32, 67, 0, 0, 216, 66, 0, 0, 33, 67, 0, 0, 216, 66, 0, 0, 34, 67, 0, 0, 216, 66, 0, 0, 35, 67, 0, 0, 216, 66, 0, 0, 36, 67, 0, 0, 216, 66, 0, 0, 37, 67, 0, 0, 216, 66, 0, 0, 38, 67, 0, 0, 216, 66, 0, 0, 39, 67, 0, 0, 216, 66, 0, 0, 40, 67, 0, 0, 216, 66, 0, 0, 41, 67, 0, 0, 216, 66, 0, 0, 42, 67, 0, 0, 216, 66, 0, 0, 43, 67, 0, 0, 216, 66, 0, 0, 44, 67, 0, 0, 216, 66, 0, 0, 45, 67, 0, 0, 216, 66, 0, 0, 46, 67, 0, 0, 216, 66, 0, 0, 47, 67, 0, 0, 216, 66, 0, 0, 48, 67, 0, 0, 216, 66, 0, 0, 49, 67, 0, 0, 216, 66, 0, 0, 50, 67, 0, 0, 216, 66, 0, 0, 51, 67, 0, 0, 216, 66, 0, 0, 52, 67, 0, 0, 216, 66, 0, 0, 53, 67, 0, 0, 216, 66, 0, 0, 54, 67, 0, 0, 216, 66, 0, 0, 55, 67, 0, 0, 218, 66, 0, 0, 184, 66, 0, 0, 218, 66, 0, 0, 186, 66, 0, 0, 218, 66, 0, 0, 188, 66, 0, 0, 218, 66, 0, 0, 190, 66, 0, 0, 218, 66, 0, 0, 192, 66, 0, 0, 218, 66, 0, 0, 194, 66, 0, 0, 218, 66, 0, 0, 196, 66, 0, 0, 218, 66, 0, 0, 198, 66, 0, 0, 218, 66, 0, 0, 200, 66, 0, 0, 218, 66, 0, 0, 202, 66, 0, 0, 218, 66, 0, 0, 204, 66, 0, 0, 218, 66, 0, 0, 206, 66, 0, 0, 218, 66, 0, 0, 208, 66, 0, 0, 218, 66, 0, 0, 210, 66, 0, 0, 218, 66, 0, 0, 212, 66, 0, 0, 218, 66, 0, 0, 214, 66, 0, 0, 218, 66, 0, 0, 216, 66, 0, 0, 218, 66, 0, 0, 218, 66, 0, 0, 218, 66, 0, 0, 220, 66, 0, 0, 218, 66, 0, 0, 222, 66, 0, 0, 218, 66, 0, 0, 224, 66, 0, 0, 218, 66, 0, 0, 226, 66, 0, 0, 218, 66, 0, 0, 228, 66, 0, 0, 218, 66, 0, 0, 230, 66, 0, 0, 218, 66, 0, 0, 232, 66, 0, 0, 218, 66, 0, 0, 234, 66, 0, 0, 218, 66, 0, 0, 236, 66, 0, 0, 218, 66, 0, 0, 238, 66, 0, 0, 218, 66, 0, 0, 240, 66, 0, 0, 218, 66, 0, 0, 242, 66, 0, 0, 218, 66, 0, 0, 244, 66, 0, 0, 218, 66, 0, 0, 246, 66, 0, 0, 218, 66, 0, 0, 248, 66, 0, 0, 218, 66, 0, 0, 250, 66, 0, 0, 218, 66, 0, 0, 252, 66, 0, 0, 218, 66, 0, 0, 254, 66, 0, 0, 218, 66, 0, 0, 0, 67, 0, 0, 218, 66, 0, 0, 1, 67, 0, 0, 218, 66, 0, 0, 2, 67, 0, 0, 218, 66, 0, 0, 3, 67, 0, 0, 218, 66, 0, 0, 4, 67, 0, 0, 218, 66, 0, 0, 5, 67, 0, 0, 218, 66, 0, 0, 6, 67, 0, 0, 218, 66, 0, 0, 7, 67, 0, 0, 218, 66, 0, 0, 8, 67, 0, 0, 218, 66, 0, 0, 9, 67, 0, 0, 218, 66, 0, 0, 10, 67, 0, 0, 218, 66, 0, 0, 11, 67, 0, 0, 218, 66, 0, 0, 12, 67, 0, 0, 218, 66, 0, 0, 13, 67, 0, 0, 218, 66, 0, 0, 14, 67, 0, 0, 218, 66, 0, 0, 15, 67, 0, 0, 218, 66, 0, 0, 16, 67, 0, 0, 218, 66, 0, 0, 17, 67, 0, 0, 218, 66, 0, 0, 18, 67, 0, 0, 218, 66, 0, 0, 19, 67, 0, 0, 218, 66, 0, 0, 20, 67, 0, 0, 218, 66, 0, 0, 21, 67, 0, 0, 218, 66, 0, 0, 22, 67, 0, 0, 218, 66, 0, 0, 23, 67, 0, 0, 218, 66, 0, 0, 24, 67, 0, 0, 218, 66, 0, 0, 25, 67, 0, 0, 218, 66, 0, 0, 26, 67, 0, 0, 218, 66, 0, 0, 27, 67, 0, 0, 218, 66, 0, 0, 28, 67, 0, 0, 218, 66, 0, 0, 29, 67, 0, 0, 218, 66, 0, 0, 30, 67, 0, 0, 218, 66, 0, 0, 31, 67, 0, 0, 218, 66, 0, 0, 32, 67, 0, 0, 218, 66, 0, 0, 33, 67, 0, 0, 218, 66, 0, 0, 34, 67, 0, 0, 218, 66, 0, 0, 35, 67, 0, 0, 218, 66, 0, 0, 36, 67, 0, 0, 218, 66, 0, 0, 37, 67, 0, 0, 218, 66, 0, 0, 38, 67, 0, 0, 218, 66, 0, 0, 39, 67, 0, 0, 218, 66, 0, 0, 40, 67, 0, 0, 218, 66, 0, 0, 41, 67, 0, 0, 218, 66, 0, 0, 42, 67, 0, 0, 218, 66, 0, 0, 43, 67, 0, 0, 218, 66, 0, 0, 44, 67, 0, 0, 218, 66, 0, 0, 45, 67, 0, 0, 218, 66, 0, 0, 46, 67, 0, 0, 218, 66, 0, 0, 47, 67, 0, 0, 218, 66, 0, 0, 48, 67, 0, 0, 218, 66, 0, 0, 49, 67, 0, 0, 218, 66, 0, 0, 50, 67, 0, 0, 218, 66, 0, 0, 51, 67, 0, 0, 218, 66, 0, 0, 52, 67, 0, 0, 218, 66, 0, 0, 53, 67, 0, 0, 218, 66, 0, 0, 54, 67, 0, 0, 218, 66, 0, 0, 55, 67, 0, 0, 220, 66, 0, 0, 184, 66, 0, 0, 220, 66, 0, 0, 186, 66, 0, 0, 220, 66, 0, 0, 188, 66, 0, 0, 220, 66, 0, 0, 190, 66, 0, 0, 220, 66, 0, 0, 192, 66, 0, 0, 220, 66, 0, 0, 194, 66, 0, 0, 220, 66, 0, 0, 196, 66, 0, 0, 220, 66, 0, 0, 198, 66, 0, 0, 220, 66, 0, 0, 200, 66, 0, 0, 220, 66, 0, 0, 202, 66, 0, 0, 220, 66, 0, 0, 204, 66, 0, 0, 220, 66, 0, 0, 206, 66, 0, 0, 220, 66, 0, 0, 208, 66, 0, 0, 220, 66, 0, 0, 210, 66, 0, 0, 220, 66, 0, 0, 212, 66, 0, 0, 220, 66, 0, 0, 214, 66, 0, 0, 220, 66, 0, 0, 216, 66, 0, 0, 220, 66, 0, 0, 218, 66, 0, 0, 220, 66, 0, 0, 220, 66, 0, 0, 220, 66, 0, 0, 222, 66, 0, 0, 220, 66, 0, 0, 224, 66, 0, 0, 220, 66, 0, 0, 226, 66, 0, 0, 220, 66, 0, 0, 228, 66, 0, 0, 220, 66, 0, 0, 230, 66, 0, 0, 220, 66, 0, 0, 232, 66, 0, 0, 220, 66, 0, 0, 234, 66, 0, 0, 220, 66, 0, 0, 236, 66, 0, 0, 220, 66, 0, 0, 238, 66, 0, 0, 220, 66, 0, 0, 240, 66, 0, 0, 220, 66, 0, 0, 242, 66, 0, 0, 220, 66, 0, 0, 244, 66, 0, 0, 220, 66, 0, 0, 246, 66, 0, 0, 220, 66, 0, 0, 248, 66, 0, 0, 220, 66, 0, 0, 250, 66, 0, 0, 220, 66, 0, 0, 252, 66, 0, 0, 220, 66, 0, 0, 254, 66, 0, 0, 220, 66, 0, 0, 0, 67, 0, 0, 220, 66, 0, 0, 1, 67, 0, 0, 220, 66, 0, 0, 2, 67, 0, 0, 220, 66, 0, 0, 3, 67, 0, 0, 220, 66, 0, 0, 4, 67, 0, 0, 220, 66, 0, 0, 5, 67, 0, 0, 220, 66, 0, 0, 6, 67, 0, 0, 220, 66, 0, 0, 7, 67, 0, 0, 220, 66, 0, 0, 8, 67, 0, 0, 220, 66, 0, 0, 9, 67, 0, 0, 220, 66, 0, 0, 10, 67, 0, 0, 220, 66, 0, 0, 11, 67, 0, 0, 220, 66, 0, 0, 12, 67, 0, 0, 220, 66, 0, 0, 13, 67, 0, 0, 220, 66, 0, 0, 14, 67, 0, 0, 220, 66, 0, 0, 15, 67, 0, 0, 220, 66, 0, 0, 16, 67, 0, 0, 220, 66, 0, 0, 17, 67, 0, 0, 220, 66, 0, 0, 18, 67, 0, 0, 220, 66, 0, 0, 19, 67, 0, 0, 220, 66, 0, 0, 20, 67, 0, 0, 220, 66, 0, 0, 21, 67, 0, 0, 220, 66, 0, 0, 22, 67, 0, 0, 220, 66, 0, 0, 23, 67, 0, 0, 220, 66, 0, 0, 24, 67, 0, 0, 220, 66, 0, 0, 25, 67, 0, 0, 220, 66, 0, 0, 26, 67, 0, 0, 220, 66, 0, 0, 27, 67, 0, 0, 220, 66, 0, 0, 28, 67, 0, 0, 220, 66, 0, 0, 29, 67, 0, 0, 220, 66, 0, 0, 30, 67, 0, 0, 220, 66, 0, 0, 31, 67, 0, 0, 220, 66, 0, 0, 32, 67, 0, 0, 220, 66, 0, 0, 33, 67, 0, 0, 220, 66, 0, 0, 34, 67, 0, 0, 220, 66, 0, 0, 35, 67, 0, 0, 220, 66, 0, 0, 36, 67, 0, 0, 220, 66, 0, 0, 37, 67, 0, 0, 220, 66, 0, 0, 38, 67, 0, 0, 220, 66, 0, 0, 39, 67, 0, 0, 220, 66, 0, 0, 40, 67, 0, 0, 220, 66, 0, 0, 41, 67, 0, 0, 220, 66, 0, 0, 42, 67, 0, 0, 220, 66, 0, 0, 43, 67, 0, 0, 220, 66, 0, 0, 44, 67, 0, 0, 220, 66, 0, 0, 45, 67, 0, 0, 220, 66, 0, 0, 46, 67, 0, 0, 220, 66, 0, 0, 47, 67, 0, 0, 220, 66, 0, 0, 48, 67, 0, 0, 220, 66, 0, 0, 49, 67, 0, 0, 220, 66, 0, 0, 50, 67, 0, 0, 220, 66, 0, 0, 51, 67, 0, 0, 220, 66, 0, 0, 52, 67, 0, 0, 220, 66, 0, 0, 53, 67, 0, 0, 220, 66, 0, 0, 54, 67, 0, 0, 220, 66, 0, 0, 55, 67, 0, 0, 222, 66, 0, 0, 184, 66, 0, 0, 222, 66, 0, 0, 186, 66, 0, 0, 222, 66, 0, 0, 188, 66, 0, 0, 222, 66, 0, 0, 190, 66, 0, 0, 222, 66, 0, 0, 192, 66, 0, 0, 222, 66, 0, 0, 194, 66, 0, 0, 222, 66, 0, 0, 196, 66, 0, 0, 222, 66, 0, 0, 198, 66, 0, 0, 222, 66, 0, 0, 200, 66, 0, 0, 222, 66, 0, 0, 202, 66, 0, 0, 222, 66, 0, 0, 204, 66, 0, 0, 222, 66, 0, 0, 206, 66, 0, 0, 222, 66, 0, 0, 208, 66, 0, 0, 222, 66, 0, 0, 210, 66, 0, 0, 222, 66, 0, 0, 212, 66, 0, 0, 222, 66, 0, 0, 214, 66, 0, 0, 222, 66, 0, 0, 216, 66, 0, 0, 222, 66, 0, 0, 218, 66, 0, 0, 222, 66, 0, 0, 220, 66, 0, 0, 222, 66, 0, 0, 222, 66, 0, 0, 222, 66, 0, 0, 224, 66, 0, 0, 222, 66, 0, 0, 226, 66, 0, 0, 222, 66, 0, 0, 228, 66, 0, 0, 222, 66, 0, 0, 230, 66, 0, 0, 222, 66, 0, 0, 232, 66, 0, 0, 222, 66, 0, 0, 234, 66, 0, 0, 222, 66, 0, 0, 236, 66, 0, 0, 222, 66, 0, 0, 238, 66, 0, 0, 222, 66, 0, 0, 240, 66, 0, 0, 222, 66, 0, 0, 242, 66, 0, 0, 222, 66, 0, 0, 244, 66, 0, 0, 222, 66, 0, 0, 246, 66, 0, 0, 222, 66, 0, 0, 248, 66, 0, 0, 222, 66, 0, 0, 250, 66, 0, 0, 222, 66, 0, 0, 252, 66, 0, 0, 222, 66, 0, 0, 254, 66, 0, 0, 222, 66, 0, 0, 0, 67, 0, 0, 222, 66, 0, 0, 1, 67, 0, 0, 222, 66, 0, 0, 2, 67, 0, 0, 222, 66, 0, 0, 3, 67, 0, 0, 222, 66, 0, 0, 4, 67, 0, 0, 222, 66, 0, 0, 5, 67, 0, 0, 222, 66, 0, 0, 6, 67, 0, 0, 222, 66, 0, 0, 7, 67, 0, 0, 222, 66, 0, 0, 8, 67, 0, 0, 222, 66, 0, 0, 9, 67, 0, 0, 222, 66, 0, 0, 10, 67, 0, 0, 222, 66, 0, 0, 11, 67, 0, 0, 222, 66, 0, 0, 12, 67, 0, 0, 222, 66, 0, 0, 13, 67, 0, 0, 222, 66, 0, 0, 14, 67, 0, 0, 222, 66, 0, 0, 15, 67, 0, 0, 222, 66, 0, 0, 16, 67, 0, 0, 222, 66, 0, 0, 17, 67, 0, 0, 222, 66, 0, 0, 18, 67, 0, 0, 222, 66, 0, 0, 19, 67, 0, 0, 222, 66, 0, 0, 20, 67, 0, 0, 222, 66, 0, 0, 21, 67, 0, 0, 222, 66, 0, 0, 22, 67, 0, 0, 222, 66, 0, 0, 23, 67, 0, 0, 222, 66, 0, 0, 24, 67, 0, 0, 222, 66, 0, 0, 25, 67, 0, 0, 222, 66, 0, 0, 26, 67, 0, 0, 222, 66, 0, 0, 27, 67, 0, 0, 222, 66, 0, 0, 28, 67, 0, 0, 222, 66, 0, 0, 29, 67, 0, 0, 222, 66, 0, 0, 30, 67, 0, 0, 222, 66, 0, 0, 31, 67, 0, 0, 222, 66, 0, 0, 32, 67, 0, 0, 222, 66, 0, 0, 33, 67, 0, 0, 222, 66, 0, 0, 34, 67, 0, 0, 222, 66, 0, 0, 35, 67, 0, 0, 222, 66, 0, 0, 36, 67, 0, 0, 222, 66, 0, 0, 37, 67, 0, 0, 222, 66, 0, 0, 38, 67, 0, 0, 222, 66, 0, 0, 39, 67, 0, 0, 222, 66, 0, 0, 40, 67, 0, 0, 222, 66, 0, 0, 41, 67, 0, 0, 222, 66, 0, 0, 42, 67, 0, 0, 222, 66, 0, 0, 43, 67, 0, 0, 222, 66, 0, 0, 44, 67, 0, 0, 222, 66, 0, 0, 45, 67, 0, 0, 222, 66, 0, 0, 46, 67, 0, 0, 222, 66, 0, 0, 47, 67, 0, 0, 222, 66, 0, 0, 48, 67, 0, 0, 222, 66, 0, 0, 49, 67, 0, 0, 222, 66, 0, 0, 50, 67, 0, 0, 222, 66, 0, 0, 51, 67, 0, 0, 222, 66, 0, 0, 52, 67, 0, 0, 222, 66, 0, 0, 53, 67, 0, 0, 222, 66, 0, 0, 54, 67, 0, 0, 222, 66, 0, 0, 55, 67, 0, 0, 224, 66, 0, 0, 184, 66, 0, 0, 224, 66, 0, 0, 186, 66, 0, 0, 224, 66, 0, 0, 188, 66, 0, 0, 224, 66, 0, 0, 190, 66, 0, 0, 224, 66, 0, 0, 192, 66, 0, 0, 224, 66, 0, 0, 194, 66, 0, 0, 224, 66, 0, 0, 196, 66, 0, 0, 224, 66, 0, 0, 198, 66, 0, 0, 224, 66, 0, 0, 200, 66, 0, 0, 224, 66, 0, 0, 202, 66, 0, 0, 224, 66, 0, 0, 204, 66, 0, 0, 224, 66, 0, 0, 206, 66, 0, 0, 224, 66, 0, 0, 208, 66, 0, 0, 224, 66, 0, 0, 210, 66, 0, 0, 224, 66, 0, 0, 212, 66, 0, 0, 224, 66, 0, 0, 214, 66, 0, 0, 224, 66, 0, 0, 216, 66, 0, 0, 224, 66, 0, 0, 218, 66, 0, 0, 224, 66, 0, 0, 220, 66, 0, 0, 224, 66, 0, 0, 222, 66, 0, 0, 224, 66, 0, 0, 224, 66, 0, 0, 224, 66, 0, 0, 226, 66, 0, 0, 224, 66, 0, 0, 228, 66, 0, 0, 224, 66, 0, 0, 230, 66, 0, 0, 224, 66, 0, 0, 232, 66, 0, 0, 224, 66, 0, 0, 234, 66, 0, 0, 224, 66, 0, 0, 236, 66, 0, 0, 224, 66, 0, 0, 238, 66, 0, 0, 224, 66, 0, 0, 240, 66, 0, 0, 224, 66, 0, 0, 242, 66, 0, 0, 224, 66, 0, 0, 244, 66, 0, 0, 224, 66, 0, 0, 246, 66, 0, 0, 224, 66, 0, 0, 248, 66, 0, 0, 224, 66, 0, 0, 250, 66, 0, 0, 224, 66, 0, 0, 252, 66, 0, 0, 224, 66, 0, 0, 254, 66, 0, 0, 224, 66, 0, 0, 0, 67, 0, 0, 224, 66, 0, 0, 1, 67, 0, 0, 224, 66, 0, 0, 2, 67, 0, 0, 224, 66, 0, 0, 3, 67, 0, 0, 224, 66, 0, 0, 4, 67, 0, 0, 224, 66, 0, 0, 5, 67, 0, 0, 224, 66, 0, 0, 6, 67, 0, 0, 224, 66, 0, 0, 7, 67, 0, 0, 224, 66, 0, 0, 8, 67, 0, 0, 224, 66, 0, 0, 9, 67, 0, 0, 224, 66, 0, 0, 10, 67, 0, 0, 224, 66, 0, 0, 11, 67, 0, 0, 224, 66, 0, 0, 12, 67, 0, 0, 224, 66, 0, 0, 13, 67, 0, 0, 224, 66, 0, 0, 14, 67, 0, 0, 224, 66, 0, 0, 15, 67, 0, 0, 224, 66, 0, 0, 16, 67, 0, 0, 224, 66, 0, 0, 17, 67, 0, 0, 224, 66, 0, 0, 18, 67, 0, 0, 224, 66, 0, 0, 19, 67, 0, 0, 224, 66, 0, 0, 20, 67, 0, 0, 224, 66, 0, 0, 21, 67, 0, 0, 224, 66, 0, 0, 22, 67, 0, 0, 224, 66, 0, 0, 23, 67, 0, 0, 224, 66, 0, 0, 24, 67, 0, 0, 224, 66, 0, 0, 25, 67, 0, 0, 224, 66, 0, 0, 26, 67, 0, 0, 224, 66, 0, 0, 27, 67, 0, 0, 224, 66, 0, 0, 28, 67, 0, 0, 224, 66, 0, 0, 29, 67, 0, 0, 224, 66, 0, 0, 30, 67, 0, 0, 224, 66, 0, 0, 31, 67, 0, 0, 224, 66, 0, 0, 32, 67, 0, 0, 224, 66, 0, 0, 33, 67, 0, 0, 224, 66, 0, 0, 34, 67, 0, 0, 224, 66, 0, 0, 35, 67, 0, 0, 224, 66, 0, 0, 36, 67, 0, 0, 224, 66, 0, 0, 37, 67, 0, 0, 224, 66, 0, 0, 38, 67, 0, 0, 224, 66, 0, 0, 39, 67, 0, 0, 224, 66, 0, 0, 40, 67, 0, 0, 224, 66, 0, 0, 41, 67, 0, 0, 224, 66, 0, 0, 42, 67, 0, 0, 224, 66, 0, 0, 43, 67, 0, 0, 224, 66, 0, 0, 44, 67, 0, 0, 224, 66, 0, 0, 45, 67, 0, 0, 224, 66, 0, 0, 46, 67, 0, 0, 224, 66, 0, 0, 47, 67, 0, 0, 224, 66, 0, 0, 48, 67, 0, 0, 224, 66, 0, 0, 49, 67, 0, 0, 224, 66, 0, 0, 50, 67, 0, 0, 224, 66, 0, 0, 51, 67, 0, 0, 224, 66, 0, 0, 52, 67, 0, 0, 224, 66, 0, 0, 53, 67, 0, 0, 224, 66, 0, 0, 54, 67, 0, 0, 224, 66, 0, 0, 55, 67, 0, 0, 226, 66, 0, 0, 184, 66, 0, 0, 226, 66, 0, 0, 186, 66, 0, 0, 226, 66, 0, 0, 188, 66, 0, 0, 226, 66, 0, 0, 190, 66, 0, 0, 226, 66, 0, 0, 192, 66, 0, 0, 226, 66, 0, 0, 194, 66, 0, 0, 226, 66, 0, 0, 196, 66, 0, 0, 226, 66, 0, 0, 198, 66, 0, 0, 226, 66, 0, 0, 200, 66, 0, 0, 226, 66, 0, 0, 202, 66, 0, 0, 226, 66, 0, 0, 204, 66, 0, 0, 226, 66, 0, 0, 206, 66, 0, 0, 226, 66, 0, 0, 208, 66, 0, 0, 226, 66, 0, 0, 210, 66, 0, 0, 226, 66, 0, 0, 212, 66, 0, 0, 226, 66, 0, 0, 214, 66, 0, 0, 226, 66, 0, 0, 216, 66, 0, 0, 226, 66, 0, 0, 218, 66, 0, 0, 226, 66, 0, 0, 220, 66, 0, 0, 226, 66, 0, 0, 222, 66, 0, 0, 226, 66, 0, 0, 224, 66, 0, 0, 226, 66, 0, 0, 226, 66, 0, 0, 226, 66, 0, 0, 228, 66, 0, 0, 226, 66, 0, 0, 230, 66, 0, 0, 226, 66, 0, 0, 232, 66, 0, 0, 226, 66, 0, 0, 234, 66, 0, 0, 226, 66, 0, 0, 236, 66, 0, 0, 226, 66, 0, 0, 238, 66, 0, 0, 226, 66, 0, 0, 240, 66, 0, 0, 226, 66, 0, 0, 242, 66, 0, 0, 226, 66, 0, 0, 244, 66, 0, 0, 226, 66, 0, 0, 246, 66, 0, 0, 226, 66, 0, 0, 248, 66, 0, 0, 226, 66, 0, 0, 250, 66, 0, 0, 226, 66, 0, 0, 252, 66, 0, 0, 226, 66, 0, 0, 254, 66, 0, 0, 226, 66, 0, 0, 0, 67, 0, 0, 226, 66, 0, 0, 1, 67, 0, 0, 226, 66, 0, 0, 2, 67, 0, 0, 226, 66, 0, 0, 3, 67, 0, 0, 226, 66, 0, 0, 4, 67, 0, 0, 226, 66, 0, 0, 5, 67, 0, 0, 226, 66, 0, 0, 6, 67, 0, 0, 226, 66, 0, 0, 7, 67, 0, 0, 226, 66, 0, 0, 8, 67, 0, 0, 226, 66, 0, 0, 9, 67, 0, 0, 226, 66, 0, 0, 10, 67, 0, 0, 226, 66, 0, 0, 11, 67, 0, 0, 226, 66, 0, 0, 12, 67, 0, 0, 226, 66, 0, 0, 13, 67, 0, 0, 226, 66, 0, 0, 14, 67, 0, 0, 226, 66, 0, 0, 15, 67, 0, 0, 226, 66, 0, 0, 16, 67, 0, 0, 226, 66, 0, 0, 17, 67, 0, 0, 226, 66, 0, 0, 18, 67, 0, 0, 226, 66, 0, 0, 19, 67, 0, 0, 226, 66, 0, 0, 20, 67, 0, 0, 226, 66, 0, 0, 21, 67, 0, 0, 226, 66, 0, 0, 22, 67, 0, 0, 226, 66, 0, 0, 23, 67, 0, 0, 226, 66, 0, 0, 24, 67, 0, 0, 226, 66, 0, 0, 25, 67, 0, 0, 226, 66, 0, 0, 26, 67, 0, 0, 226, 66, 0, 0, 27, 67, 0, 0, 226, 66, 0, 0, 28, 67, 0, 0, 226, 66, 0, 0, 29, 67, 0, 0, 226, 66, 0, 0, 30, 67, 0, 0, 226, 66, 0, 0, 31, 67, 0, 0, 226, 66, 0, 0, 32, 67, 0, 0, 226, 66, 0, 0, 33, 67, 0, 0, 226, 66, 0, 0, 34, 67, 0, 0, 226, 66, 0, 0, 35, 67, 0, 0, 226, 66, 0, 0, 36, 67, 0, 0, 226, 66, 0, 0, 37, 67, 0, 0, 226, 66, 0, 0, 38, 67, 0, 0, 226, 66, 0, 0, 39, 67, 0, 0, 226, 66, 0, 0, 40, 67, 0, 0, 226, 66, 0, 0, 41, 67, 0, 0, 226, 66, 0, 0, 42, 67, 0, 0, 226, 66, 0, 0, 43, 67, 0, 0, 226, 66, 0, 0, 44, 67, 0, 0, 226, 66, 0, 0, 45, 67, 0, 0, 226, 66, 0, 0, 46, 67, 0, 0, 226, 66, 0, 0, 47, 67, 0, 0, 226, 66, 0, 0, 48, 67, 0, 0, 226, 66, 0, 0, 49, 67, 0, 0, 226, 66, 0, 0, 50, 67, 0, 0, 226, 66, 0, 0, 51, 67, 0, 0, 226, 66, 0, 0, 52, 67, 0, 0, 226, 66, 0, 0, 53, 67, 0, 0, 226, 66, 0, 0, 54, 67, 0, 0, 226, 66, 0, 0, 55, 67, 0, 0, 228, 66, 0, 0, 184, 66, 0, 0, 228, 66, 0, 0, 186, 66, 0, 0, 228, 66, 0, 0, 188, 66, 0, 0, 228, 66, 0, 0, 190, 66, 0, 0, 228, 66, 0, 0, 192, 66, 0, 0, 228, 66, 0, 0, 194, 66, 0, 0, 228, 66, 0, 0, 196, 66, 0, 0, 228, 66, 0, 0, 198, 66, 0, 0, 228, 66, 0, 0, 200, 66, 0, 0, 228, 66, 0, 0, 202, 66, 0, 0, 228, 66, 0, 0, 204, 66, 0, 0, 228, 66, 0, 0, 206, 66, 0, 0, 228, 66, 0, 0, 208, 66, 0, 0, 228, 66, 0, 0, 210, 66, 0, 0, 228, 66, 0, 0, 212, 66, 0, 0, 228, 66, 0, 0, 214, 66, 0, 0, 228, 66, 0, 0, 216, 66, 0, 0, 228, 66, 0, 0, 218, 66, 0, 0, 228, 66, 0, 0, 220, 66, 0, 0, 228, 66, 0, 0, 222, 66, 0, 0, 228, 66, 0, 0, 224, 66, 0, 0, 228, 66, 0, 0, 226, 66, 0, 0, 228, 66, 0, 0, 228, 66, 0, 0, 228, 66, 0, 0, 230, 66, 0, 0, 228, 66, 0, 0, 232, 66, 0, 0, 228, 66, 0, 0, 234, 66, 0, 0, 228, 66, 0, 0, 236, 66, 0, 0, 228, 66, 0, 0, 238, 66, 0, 0, 228, 66, 0, 0, 240, 66, 0, 0, 228, 66, 0, 0, 242, 66, 0, 0, 228, 66, 0, 0, 244, 66, 0, 0, 228, 66, 0, 0, 246, 66, 0, 0, 228, 66, 0, 0, 248, 66, 0, 0, 228, 66, 0, 0, 250, 66, 0, 0, 228, 66, 0, 0, 252, 66, 0, 0, 228, 66, 0, 0, 254, 66, 0, 0, 228, 66, 0, 0, 0, 67, 0, 0, 228, 66, 0, 0, 1, 67, 0, 0, 228, 66, 0, 0, 2, 67, 0, 0, 228, 66, 0, 0, 3, 67, 0, 0, 228, 66, 0, 0, 4, 67, 0, 0, 228, 66, 0, 0, 5, 67, 0, 0, 228, 66, 0, 0, 6, 67, 0, 0, 228, 66, 0, 0, 7, 67, 0, 0, 228, 66, 0, 0, 8, 67, 0, 0, 228, 66, 0, 0, 9, 67, 0, 0, 228, 66, 0, 0, 10, 67, 0, 0, 228, 66, 0, 0, 11, 67, 0, 0, 228, 66, 0, 0, 12, 67, 0, 0, 228, 66, 0, 0, 13, 67, 0, 0, 228, 66, 0, 0, 14, 67, 0, 0, 228, 66, 0, 0, 15, 67, 0, 0, 228, 66, 0, 0, 16, 67, 0, 0, 228, 66, 0, 0, 17, 67, 0, 0, 228, 66, 0, 0, 18, 67, 0, 0, 228, 66, 0, 0, 19, 67, 0, 0, 228, 66, 0, 0, 20, 67, 0, 0, 228, 66, 0, 0, 21, 67, 0, 0, 228, 66, 0, 0, 22, 67, 0, 0, 228, 66, 0, 0, 23, 67, 0, 0, 228, 66, 0, 0, 24, 67, 0, 0, 228, 66, 0, 0, 25, 67, 0, 0, 228, 66, 0, 0, 26, 67, 0, 0, 228, 66, 0, 0, 27, 67, 0, 0, 228, 66, 0, 0, 28, 67, 0, 0, 228, 66, 0, 0, 29, 67, 0, 0, 228, 66, 0, 0, 30, 67, 0, 0, 228, 66, 0, 0, 31, 67, 0, 0, 228, 66, 0, 0, 32, 67, 0, 0, 228, 66, 0, 0, 33, 67, 0, 0, 228, 66, 0, 0, 34, 67, 0, 0, 228, 66, 0, 0, 35, 67, 0, 0, 228, 66, 0, 0, 36, 67, 0, 0, 228, 66, 0, 0, 37, 67, 0, 0, 228, 66, 0, 0, 38, 67, 0, 0, 228, 66, 0, 0, 39, 67, 0, 0, 228, 66, 0, 0, 40, 67, 0, 0, 228, 66, 0, 0, 41, 67, 0, 0, 228, 66, 0, 0, 42, 67, 0, 0, 228, 66, 0, 0, 43, 67, 0, 0, 228, 66, 0, 0, 44, 67, 0, 0, 228, 66, 0, 0, 45, 67, 0, 0, 228, 66, 0, 0, 46, 67, 0, 0, 228, 66, 0, 0, 47, 67, 0, 0, 228, 66, 0, 0, 48, 67, 0, 0, 228, 66, 0, 0, 49, 67, 0, 0, 228, 66, 0, 0, 50, 67, 0, 0, 228, 66, 0, 0, 51, 67, 0, 0, 228, 66, 0, 0, 52, 67, 0, 0, 228, 66, 0, 0, 53, 67, 0, 0, 228, 66, 0, 0, 54, 67, 0, 0, 228, 66, 0, 0, 55, 67, 0, 0, 230, 66, 0, 0, 184, 66, 0, 0, 230, 66, 0, 0, 186, 66, 0, 0, 230, 66, 0, 0, 188, 66, 0, 0, 230, 66, 0, 0, 190, 66, 0, 0, 230, 66, 0, 0, 192, 66, 0, 0, 230, 66, 0, 0, 194, 66, 0, 0, 230, 66, 0, 0, 196, 66, 0, 0, 230, 66, 0, 0, 198, 66, 0, 0, 230, 66, 0, 0, 200, 66, 0, 0, 230, 66, 0, 0, 202, 66, 0, 0, 230, 66, 0, 0, 204, 66, 0, 0, 230, 66, 0, 0, 206, 66, 0, 0, 230, 66, 0, 0, 208, 66, 0, 0, 230, 66, 0, 0, 210, 66, 0, 0, 230, 66, 0, 0, 212, 66, 0, 0, 230, 66, 0, 0, 214, 66, 0, 0, 230, 66, 0, 0, 216, 66, 0, 0, 230, 66, 0, 0, 218, 66, 0, 0, 230, 66, 0, 0, 220, 66, 0, 0, 230, 66, 0, 0, 222, 66, 0, 0, 230, 66, 0, 0, 224, 66, 0, 0, 230, 66, 0, 0, 226, 66, 0, 0, 230, 66, 0, 0, 228, 66, 0, 0, 230, 66, 0, 0, 230, 66, 0, 0, 230, 66, 0, 0, 232, 66, 0, 0, 230, 66, 0, 0, 234, 66, 0, 0, 230, 66, 0, 0, 236, 66, 0, 0, 230, 66, 0, 0, 238, 66, 0, 0, 230, 66, 0, 0, 240, 66, 0, 0, 230, 66, 0, 0, 242, 66, 0, 0, 230, 66, 0, 0, 244, 66, 0, 0, 230, 66, 0, 0, 246, 66, 0, 0, 230, 66, 0, 0, 248, 66, 0, 0, 230, 66, 0, 0, 250, 66, 0, 0, 230, 66, 0, 0, 252, 66, 0, 0, 230, 66, 0, 0, 254, 66, 0, 0, 230, 66, 0, 0, 0, 67, 0, 0, 230, 66, 0, 0, 1, 67, 0, 0, 230, 66, 0, 0, 2, 67, 0, 0, 230, 66, 0, 0, 3, 67, 0, 0, 230, 66, 0, 0, 4, 67, 0, 0, 230, 66, 0, 0, 5, 67, 0, 0, 230, 66, 0, 0, 6, 67, 0, 0, 230, 66, 0, 0, 7, 67, 0, 0, 230, 66, 0, 0, 8, 67, 0, 0, 230, 66, 0, 0, 9, 67, 0, 0, 230, 66, 0, 0, 10, 67, 0, 0, 230, 66, 0, 0, 11, 67, 0, 0, 230, 66, 0, 0, 12, 67, 0, 0, 230, 66, 0, 0, 13, 67, 0, 0, 230, 66, 0, 0, 14, 67, 0, 0, 230, 66, 0, 0, 15, 67, 0, 0, 230, 66, 0, 0, 16, 67, 0, 0, 230, 66, 0, 0, 17, 67, 0, 0, 230, 66, 0, 0, 18, 67, 0, 0, 230, 66, 0, 0, 19, 67, 0, 0, 230, 66, 0, 0, 20, 67, 0, 0, 230, 66, 0, 0, 21, 67, 0, 0, 230, 66, 0, 0, 22, 67, 0, 0, 230, 66, 0, 0, 23, 67, 0, 0, 230, 66, 0, 0, 24, 67, 0, 0, 230, 66, 0, 0, 25, 67, 0, 0, 230, 66, 0, 0, 26, 67, 0, 0, 230, 66, 0, 0, 27, 67, 0, 0, 230, 66, 0, 0, 28, 67, 0, 0, 230, 66, 0, 0, 29, 67, 0, 0, 230, 66, 0, 0, 30, 67, 0, 0, 230, 66, 0, 0, 31, 67, 0, 0, 230, 66, 0, 0, 32, 67, 0, 0, 230, 66, 0, 0, 33, 67, 0, 0, 230, 66, 0, 0, 34, 67, 0, 0, 230, 66, 0, 0, 35, 67, 0, 0, 230, 66, 0, 0, 36, 67, 0, 0, 230, 66, 0, 0, 37, 67, 0, 0, 230, 66, 0, 0, 38, 67, 0, 0, 230, 66, 0, 0, 39, 67, 0, 0, 230, 66, 0, 0, 40, 67, 0, 0, 230, 66, 0, 0, 41, 67, 0, 0, 230, 66, 0, 0, 42, 67, 0, 0, 230, 66, 0, 0, 43, 67, 0, 0, 230, 66, 0, 0, 44, 67, 0, 0, 230, 66, 0, 0, 45, 67, 0, 0, 230, 66, 0, 0, 46, 67, 0, 0, 230, 66, 0, 0, 47, 67, 0, 0, 230, 66, 0, 0, 48, 67, 0, 0, 230, 66, 0, 0, 49, 67, 0, 0, 230, 66, 0, 0, 50, 67, 0, 0, 230, 66, 0, 0, 51, 67, 0, 0, 230, 66, 0, 0, 52, 67, 0, 0, 230, 66, 0, 0, 53, 67, 0, 0, 230, 66, 0, 0, 54, 67, 0, 0, 230, 66, 0, 0, 55, 67, 0, 0, 232, 66, 0, 0, 184, 66, 0, 0, 232, 66, 0, 0, 186, 66, 0, 0, 232, 66, 0, 0, 188, 66, 0, 0, 232, 66, 0, 0, 190, 66, 0, 0, 232, 66, 0, 0, 192, 66, 0, 0, 232, 66, 0, 0, 194, 66, 0, 0, 232, 66, 0, 0, 196, 66, 0, 0, 232, 66, 0, 0, 198, 66, 0, 0, 232, 66, 0, 0, 200, 66, 0, 0, 232, 66, 0, 0, 202, 66, 0, 0, 232, 66, 0, 0, 204, 66, 0, 0, 232, 66, 0, 0, 206, 66, 0, 0, 232, 66, 0, 0, 208, 66, 0, 0, 232, 66, 0, 0, 210, 66, 0, 0, 232, 66, 0, 0, 212, 66, 0, 0, 232, 66, 0, 0, 214, 66, 0, 0, 232, 66, 0, 0, 216, 66, 0, 0, 232, 66, 0, 0, 218, 66, 0, 0, 232, 66, 0, 0, 220, 66, 0, 0, 232, 66, 0, 0, 222, 66, 0, 0, 232, 66, 0, 0, 224, 66, 0, 0, 232, 66, 0, 0, 226, 66, 0, 0, 232, 66, 0, 0, 228, 66, 0, 0, 232, 66, 0, 0, 230, 66, 0, 0, 232, 66, 0, 0, 232, 66, 0, 0, 232, 66, 0, 0, 234, 66, 0, 0, 232, 66, 0, 0, 236, 66, 0, 0, 232, 66, 0, 0, 238, 66, 0, 0, 232, 66, 0, 0, 240, 66, 0, 0, 232, 66, 0, 0, 242, 66, 0, 0, 232, 66, 0, 0, 244, 66, 0, 0, 232, 66, 0, 0, 246, 66, 0, 0, 232, 66, 0, 0, 248, 66, 0, 0, 232, 66, 0, 0, 250, 66, 0, 0, 232, 66, 0, 0, 252, 66, 0, 0, 232, 66, 0, 0, 254, 66, 0, 0, 232, 66, 0, 0, 0, 67, 0, 0, 232, 66, 0, 0, 1, 67, 0, 0, 232, 66, 0, 0, 2, 67, 0, 0, 232, 66, 0, 0, 3, 67, 0, 0, 232, 66, 0, 0, 4, 67, 0, 0, 232, 66, 0, 0, 5, 67, 0, 0, 232, 66, 0, 0, 6, 67, 0, 0, 232, 66, 0, 0, 7, 67, 0, 0, 232, 66, 0, 0, 8, 67, 0, 0, 232, 66, 0, 0, 9, 67, 0, 0, 232, 66, 0, 0, 10, 67, 0, 0, 232, 66, 0, 0, 11, 67, 0, 0, 232, 66, 0, 0, 12, 67, 0, 0, 232, 66, 0, 0, 13, 67, 0, 0, 232, 66, 0, 0, 14, 67, 0, 0, 232, 66, 0, 0, 15, 67, 0, 0, 232, 66, 0, 0, 16, 67, 0, 0, 232, 66, 0, 0, 17, 67, 0, 0, 232, 66, 0, 0, 18, 67, 0, 0, 232, 66, 0, 0, 19, 67, 0, 0, 232, 66, 0, 0, 20, 67, 0, 0, 232, 66, 0, 0, 21, 67, 0, 0, 232, 66, 0, 0, 22, 67, 0, 0, 232, 66, 0, 0, 23, 67, 0, 0, 232, 66, 0, 0, 24, 67, 0, 0, 232, 66, 0, 0, 25, 67, 0, 0, 232, 66, 0, 0, 26, 67, 0, 0, 232, 66, 0, 0, 27, 67, 0, 0, 232, 66, 0, 0, 28, 67, 0, 0, 232, 66, 0, 0, 29, 67, 0, 0, 232, 66, 0, 0, 30, 67, 0, 0, 232, 66, 0, 0, 31, 67, 0, 0, 232, 66, 0, 0, 32, 67, 0, 0, 232, 66, 0, 0, 33, 67, 0, 0, 232, 66, 0, 0, 34, 67, 0, 0, 232, 66, 0, 0, 35, 67, 0, 0, 232, 66, 0, 0, 36, 67, 0, 0, 232, 66, 0, 0, 37, 67, 0, 0, 232, 66, 0, 0, 38, 67, 0, 0, 232, 66, 0, 0, 39, 67, 0, 0, 232, 66, 0, 0, 40, 67, 0, 0, 232, 66, 0, 0, 41, 67, 0, 0, 232, 66, 0, 0, 42, 67, 0, 0, 232, 66, 0, 0, 43, 67, 0, 0, 232, 66, 0, 0, 44, 67, 0, 0, 232, 66, 0, 0, 45, 67, 0, 0, 232, 66, 0, 0, 46, 67, 0, 0, 232, 66, 0, 0, 47, 67, 0, 0, 232, 66, 0, 0, 48, 67, 0, 0, 232, 66, 0, 0, 49, 67, 0, 0, 232, 66, 0, 0, 50, 67, 0, 0, 232, 66, 0, 0, 51, 67, 0, 0, 232, 66, 0, 0, 52, 67, 0, 0, 232, 66, 0, 0, 53, 67, 0, 0, 232, 66, 0, 0, 54, 67, 0, 0, 232, 66, 0, 0, 55, 67, 0, 0, 234, 66, 0, 0, 184, 66, 0, 0, 234, 66, 0, 0, 186, 66, 0, 0, 234, 66, 0, 0, 188, 66, 0, 0, 234, 66, 0, 0, 190, 66, 0, 0, 234, 66, 0, 0, 192, 66, 0, 0, 234, 66, 0, 0, 194, 66, 0, 0, 234, 66, 0, 0, 196, 66, 0, 0, 234, 66, 0, 0, 198, 66, 0, 0, 234, 66, 0, 0, 200, 66, 0, 0, 234, 66, 0, 0, 202, 66, 0, 0, 234, 66, 0, 0, 204, 66, 0, 0, 234, 66, 0, 0, 206, 66, 0, 0, 234, 66, 0, 0, 208, 66, 0, 0, 234, 66, 0, 0, 210, 66, 0, 0, 234, 66, 0, 0, 212, 66, 0, 0, 234, 66, 0, 0, 214, 66, 0, 0, 234, 66, 0, 0, 216, 66, 0, 0, 234, 66, 0, 0, 218, 66, 0, 0, 234, 66, 0, 0, 220, 66, 0, 0, 234, 66, 0, 0, 222, 66, 0, 0, 234, 66, 0, 0, 224, 66, 0, 0, 234, 66, 0, 0, 226, 66, 0, 0, 234, 66, 0, 0, 228, 66, 0, 0, 234, 66, 0, 0, 230, 66, 0, 0, 234, 66, 0, 0, 232, 66, 0, 0, 234, 66, 0, 0, 234, 66, 0, 0, 234, 66, 0, 0, 236, 66, 0, 0, 234, 66, 0, 0, 238, 66, 0, 0, 234, 66, 0, 0, 240, 66, 0, 0, 234, 66, 0, 0, 242, 66, 0, 0, 234, 66, 0, 0, 244, 66, 0, 0, 234, 66, 0, 0, 246, 66, 0, 0, 234, 66, 0, 0, 248, 66, 0, 0, 234, 66, 0, 0, 250, 66, 0, 0, 234, 66, 0, 0, 252, 66, 0, 0, 234, 66, 0, 0, 254, 66, 0, 0, 234, 66, 0, 0, 0, 67, 0, 0, 234, 66, 0, 0, 1, 67, 0, 0, 234, 66, 0, 0, 2, 67, 0, 0, 234, 66, 0, 0, 3, 67, 0, 0, 234, 66, 0, 0, 4, 67, 0, 0, 234, 66, 0, 0, 5, 67, 0, 0, 234, 66, 0, 0, 6, 67, 0, 0, 234, 66, 0, 0, 7, 67, 0, 0, 234, 66, 0, 0, 8, 67, 0, 0, 234, 66, 0, 0, 9, 67, 0, 0, 234, 66, 0, 0, 10, 67, 0, 0, 234, 66, 0, 0, 11, 67, 0, 0, 234, 66, 0, 0, 12, 67, 0, 0, 234, 66, 0, 0, 13, 67, 0, 0, 234, 66, 0, 0, 14, 67, 0, 0, 234, 66, 0, 0, 15, 67, 0, 0, 234, 66, 0, 0, 16, 67, 0, 0, 234, 66, 0, 0, 17, 67, 0, 0, 234, 66, 0, 0, 18, 67, 0, 0, 234, 66, 0, 0, 19, 67, 0, 0, 234, 66, 0, 0, 20, 67, 0, 0, 234, 66, 0, 0, 21, 67, 0, 0, 234, 66, 0, 0, 22, 67, 0, 0, 234, 66, 0, 0, 23, 67, 0, 0, 234, 66, 0, 0, 24, 67, 0, 0, 234, 66, 0, 0, 25, 67, 0, 0, 234, 66, 0, 0, 26, 67, 0, 0, 234, 66, 0, 0, 27, 67, 0, 0, 234, 66, 0, 0, 28, 67, 0, 0, 234, 66, 0, 0, 29, 67, 0, 0, 234, 66, 0, 0, 30, 67, 0, 0, 234, 66, 0, 0, 31, 67, 0, 0, 234, 66, 0, 0, 32, 67, 0, 0, 234, 66, 0, 0, 33, 67, 0, 0, 234, 66, 0, 0, 34, 67, 0, 0, 234, 66, 0, 0, 35, 67, 0, 0, 234, 66, 0, 0, 36, 67, 0, 0, 234, 66, 0, 0, 37, 67, 0, 0, 234, 66, 0, 0, 38, 67, 0, 0, 234, 66, 0, 0, 39, 67, 0, 0, 234, 66, 0, 0, 40, 67, 0, 0, 234, 66, 0, 0, 41, 67, 0, 0, 234, 66, 0, 0, 42, 67, 0, 0, 234, 66, 0, 0, 43, 67, 0, 0, 234, 66, 0, 0, 44, 67, 0, 0, 234, 66, 0, 0, 45, 67, 0, 0, 234, 66, 0, 0, 46, 67, 0, 0, 234, 66, 0, 0, 47, 67, 0, 0, 234, 66, 0, 0, 48, 67, 0, 0, 234, 66, 0, 0, 49, 67, 0, 0, 234, 66, 0, 0, 50, 67, 0, 0, 234, 66, 0, 0, 51, 67, 0, 0, 234, 66, 0, 0, 52, 67, 0, 0, 234, 66, 0, 0, 53, 67, 0, 0, 234, 66, 0, 0, 54, 67, 0, 0, 234, 66, 0, 0, 55, 67, 0, 0, 236, 66, 0, 0, 184, 66, 0, 0, 236, 66, 0, 0, 186, 66, 0, 0, 236, 66, 0, 0, 188, 66, 0, 0, 236, 66, 0, 0, 190, 66, 0, 0, 236, 66, 0, 0, 192, 66, 0, 0, 236, 66, 0, 0, 194, 66, 0, 0, 236, 66, 0, 0, 196, 66, 0, 0, 236, 66, 0, 0, 198, 66, 0, 0, 236, 66, 0, 0, 200, 66, 0, 0, 236, 66, 0, 0, 202, 66, 0, 0, 236, 66, 0, 0, 204, 66, 0, 0, 236, 66, 0, 0, 206, 66, 0, 0, 236, 66, 0, 0, 208, 66, 0, 0, 236, 66, 0, 0, 210, 66, 0, 0, 236, 66, 0, 0, 212, 66, 0, 0, 236, 66, 0, 0, 214, 66, 0, 0, 236, 66, 0, 0, 216, 66, 0, 0, 236, 66, 0, 0, 218, 66, 0, 0, 236, 66, 0, 0, 220, 66, 0, 0, 236, 66, 0, 0, 222, 66, 0, 0, 236, 66, 0, 0, 224, 66, 0, 0, 236, 66, 0, 0, 226, 66, 0, 0, 236, 66, 0, 0, 228, 66, 0, 0, 236, 66, 0, 0, 230, 66, 0, 0, 236, 66, 0, 0, 232, 66, 0, 0, 236, 66, 0, 0, 234, 66, 0, 0, 236, 66, 0, 0, 236, 66, 0, 0, 236, 66, 0, 0, 238, 66, 0, 0, 236, 66, 0, 0, 240, 66, 0, 0, 236, 66, 0, 0, 242, 66, 0, 0, 236, 66, 0, 0, 244, 66, 0, 0, 236, 66, 0, 0, 246, 66, 0, 0, 236, 66, 0, 0, 248, 66, 0, 0, 236, 66, 0, 0, 250, 66, 0, 0, 236, 66, 0, 0, 252, 66, 0, 0, 236, 66, 0, 0, 254, 66, 0, 0, 236, 66, 0, 0, 0, 67, 0, 0, 236, 66, 0, 0, 1, 67, 0, 0, 236, 66, 0, 0, 2, 67, 0, 0, 236, 66, 0, 0, 3, 67, 0, 0, 236, 66, 0, 0, 4, 67, 0, 0, 236, 66, 0, 0, 5, 67, 0, 0, 236, 66, 0, 0, 6, 67, 0, 0, 236, 66, 0, 0, 7, 67, 0, 0, 236, 66, 0, 0, 8, 67, 0, 0, 236, 66, 0, 0, 9, 67, 0, 0, 236, 66, 0, 0, 10, 67, 0, 0, 236, 66, 0, 0, 11, 67, 0, 0, 236, 66, 0, 0, 12, 67, 0, 0, 236, 66, 0, 0, 13, 67, 0, 0, 236, 66, 0, 0, 14, 67, 0, 0, 236, 66, 0, 0, 15, 67, 0, 0, 236, 66, 0, 0, 16, 67, 0, 0, 236, 66, 0, 0, 17, 67, 0, 0, 236, 66, 0, 0, 18, 67, 0, 0, 236, 66, 0, 0, 19, 67, 0, 0, 236, 66, 0, 0, 20, 67, 0, 0, 236, 66, 0, 0, 21, 67, 0, 0, 236, 66, 0, 0, 22, 67, 0, 0, 236, 66, 0, 0, 23, 67, 0, 0, 236, 66, 0, 0, 24, 67, 0, 0, 236, 66, 0, 0, 25, 67, 0, 0, 236, 66, 0, 0, 26, 67, 0, 0, 236, 66, 0, 0, 27, 67, 0, 0, 236, 66, 0, 0, 28, 67, 0, 0, 236, 66, 0, 0, 29, 67, 0, 0, 236, 66, 0, 0, 30, 67, 0, 0, 236, 66, 0, 0, 31, 67, 0, 0, 236, 66, 0, 0, 32, 67, 0, 0, 236, 66, 0, 0, 33, 67, 0, 0, 236, 66, 0, 0, 34, 67, 0, 0, 236, 66, 0, 0, 35, 67, 0, 0, 236, 66, 0, 0, 36, 67, 0, 0, 236, 66, 0, 0, 37, 67, 0, 0, 236, 66, 0, 0, 38, 67, 0, 0, 236, 66, 0, 0, 39, 67, 0, 0, 236, 66, 0, 0, 40, 67, 0, 0, 236, 66, 0, 0, 41, 67, 0, 0, 236, 66, 0, 0, 42, 67, 0, 0, 236, 66, 0, 0, 43, 67, 0, 0, 236, 66, 0, 0, 44, 67, 0, 0, 236, 66, 0, 0, 45, 67, 0, 0, 236, 66, 0, 0, 46, 67, 0, 0, 236, 66, 0, 0, 47, 67, 0, 0, 236, 66, 0, 0, 48, 67, 0, 0, 236, 66, 0, 0, 49, 67, 0, 0, 236, 66, 0, 0, 50, 67, 0, 0, 236, 66, 0, 0, 51, 67, 0, 0, 236, 66, 0, 0, 52, 67, 0, 0, 236, 66, 0, 0, 53, 67, 0, 0, 236, 66, 0, 0, 54, 67, 0, 0, 236, 66, 0, 0, 55, 67, 0, 0, 238, 66, 0, 0, 184, 66, 0, 0, 238, 66, 0, 0, 186, 66, 0, 0, 238, 66, 0, 0, 188, 66, 0, 0, 238, 66, 0, 0, 190, 66, 0, 0, 238, 66, 0, 0, 192, 66, 0, 0, 238, 66, 0, 0, 194, 66, 0, 0, 238, 66, 0, 0, 196, 66, 0, 0, 238, 66, 0, 0, 198, 66, 0, 0, 238, 66, 0, 0, 200, 66, 0, 0, 238, 66, 0, 0, 202, 66, 0, 0, 238, 66, 0, 0, 204, 66, 0, 0, 238, 66, 0, 0, 206, 66, 0, 0, 238, 66, 0, 0, 208, 66, 0, 0, 238, 66, 0, 0, 210, 66, 0, 0, 238, 66, 0, 0, 212, 66, 0, 0, 238, 66, 0, 0, 214, 66, 0, 0, 238, 66, 0, 0, 216, 66, 0, 0, 238, 66, 0, 0, 218, 66, 0, 0, 238, 66, 0, 0, 220, 66, 0, 0, 238, 66, 0, 0, 222, 66, 0, 0, 238, 66, 0, 0, 224, 66, 0, 0, 238, 66, 0, 0, 226, 66, 0, 0, 238, 66, 0, 0, 228, 66, 0, 0, 238, 66, 0, 0, 230, 66, 0, 0, 238, 66, 0, 0, 232, 66, 0, 0, 238, 66, 0, 0, 234, 66, 0, 0, 238, 66, 0, 0, 236, 66, 0, 0, 238, 66, 0, 0, 238, 66, 0, 0, 238, 66, 0, 0, 240, 66, 0, 0, 238, 66, 0, 0, 242, 66, 0, 0, 238, 66, 0, 0, 244, 66, 0, 0, 238, 66, 0, 0, 246, 66, 0, 0, 238, 66, 0, 0, 248, 66, 0, 0, 238, 66, 0, 0, 250, 66, 0, 0, 238, 66, 0, 0, 252, 66, 0, 0, 238, 66, 0, 0, 254, 66, 0, 0, 238, 66, 0, 0, 0, 67, 0, 0, 238, 66, 0, 0, 1, 67, 0, 0, 238, 66, 0, 0, 2, 67, 0, 0, 238, 66, 0, 0, 3, 67, 0, 0, 238, 66, 0, 0, 4, 67, 0, 0, 238, 66, 0, 0, 5, 67, 0, 0, 238, 66, 0, 0, 6, 67, 0, 0, 238, 66, 0, 0, 7, 67, 0, 0, 238, 66, 0, 0, 8, 67, 0, 0, 238, 66, 0, 0, 9, 67, 0, 0, 238, 66, 0, 0, 10, 67, 0, 0, 238, 66, 0, 0, 11, 67, 0, 0, 238, 66, 0, 0, 12, 67, 0, 0, 238, 66, 0, 0, 13, 67, 0, 0, 238, 66, 0, 0, 14, 67, 0, 0, 238, 66, 0, 0, 15, 67, 0, 0, 238, 66, 0, 0, 16, 67, 0, 0, 238, 66, 0, 0, 17, 67, 0, 0, 238, 66, 0, 0, 18, 67, 0, 0, 238, 66, 0, 0, 19, 67, 0, 0, 238, 66, 0, 0, 20, 67, 0, 0, 238, 66, 0, 0, 21, 67, 0, 0, 238, 66, 0, 0, 22, 67, 0, 0, 238, 66, 0, 0, 23, 67, 0, 0, 238, 66, 0, 0, 24, 67, 0, 0, 238, 66, 0, 0, 25, 67, 0, 0, 238, 66, 0, 0, 26, 67, 0, 0, 238, 66, 0, 0, 27, 67, 0, 0, 238, 66, 0, 0, 28, 67, 0, 0, 238, 66, 0, 0, 29, 67, 0, 0, 238, 66, 0, 0, 30, 67, 0, 0, 238, 66, 0, 0, 31, 67, 0, 0, 238, 66, 0, 0, 32, 67, 0, 0, 238, 66, 0, 0, 33, 67, 0, 0, 238, 66, 0, 0, 34, 67, 0, 0, 238, 66, 0, 0, 35, 67, 0, 0, 238, 66, 0, 0, 36, 67, 0, 0, 238, 66, 0, 0, 37, 67, 0, 0, 238, 66, 0, 0, 38, 67, 0, 0, 238, 66, 0, 0, 39, 67, 0, 0, 238, 66, 0, 0, 40, 67, 0, 0, 238, 66, 0, 0, 41, 67, 0, 0, 238, 66, 0, 0, 42, 67, 0, 0, 238, 66, 0, 0, 43, 67, 0, 0, 238, 66, 0, 0, 44, 67, 0, 0, 238, 66, 0, 0, 45, 67, 0, 0, 238, 66, 0, 0, 46, 67, 0, 0, 238, 66, 0, 0, 47, 67, 0, 0, 238, 66, 0, 0, 48, 67, 0, 0, 238, 66, 0, 0, 49, 67, 0, 0, 238, 66, 0, 0, 50, 67, 0, 0, 238, 66, 0, 0, 51, 67, 0, 0, 238, 66, 0, 0, 52, 67, 0, 0, 238, 66, 0, 0, 53, 67, 0, 0, 238, 66, 0, 0, 54, 67, 0, 0, 238, 66, 0, 0, 55, 67, 0, 0, 240, 66, 0, 0, 184, 66, 0, 0, 240, 66, 0, 0, 186, 66, 0, 0, 240, 66, 0, 0, 188, 66, 0, 0, 240, 66, 0, 0, 190, 66, 0, 0, 240, 66, 0, 0, 192, 66, 0, 0, 240, 66, 0, 0, 194, 66, 0, 0, 240, 66, 0, 0, 196, 66, 0, 0, 240, 66, 0, 0, 198, 66, 0, 0, 240, 66, 0, 0, 200, 66, 0, 0, 240, 66, 0, 0, 202, 66, 0, 0, 240, 66, 0, 0, 204, 66, 0, 0, 240, 66, 0, 0, 206, 66, 0, 0, 240, 66, 0, 0, 208, 66, 0, 0, 240, 66, 0, 0, 210, 66, 0, 0, 240, 66, 0, 0, 212, 66, 0, 0, 240, 66, 0, 0, 214, 66, 0, 0, 240, 66, 0, 0, 216, 66, 0, 0, 240, 66, 0, 0, 40, 67, 0, 0, 240, 66, 0, 0, 41, 67, 0, 0, 240, 66, 0, 0, 42, 67, 0, 0, 240, 66, 0, 0, 43, 67, 0, 0, 240, 66, 0, 0, 44, 67, 0, 0, 240, 66, 0, 0, 45, 67, 0, 0, 240, 66, 0, 0, 46, 67, 0, 0, 240, 66, 0, 0, 47, 67, 0, 0, 240, 66, 0, 0, 48, 67, 0, 0, 240, 66, 0, 0, 49, 67, 0, 0, 240, 66, 0, 0, 50, 67, 0, 0, 240, 66, 0, 0, 51, 67, 0, 0, 240, 66, 0, 0, 52, 67, 0, 0, 240, 66, 0, 0, 53, 67, 0, 0, 240, 66, 0, 0, 54, 67, 0, 0, 240, 66, 0, 0, 55, 67, 0, 0, 242, 66, 0, 0, 184, 66, 0, 0, 242, 66, 0, 0, 186, 66, 0, 0, 242, 66, 0, 0, 188, 66, 0, 0, 242, 66, 0, 0, 190, 66, 0, 0, 242, 66, 0, 0, 192, 66, 0, 0, 242, 66, 0, 0, 194, 66, 0, 0, 242, 66, 0, 0, 196, 66, 0, 0, 242, 66, 0, 0, 198, 66, 0, 0, 242, 66, 0, 0, 200, 66, 0, 0, 242, 66, 0, 0, 202, 66, 0, 0, 242, 66, 0, 0, 204, 66, 0, 0, 242, 66, 0, 0, 206, 66, 0, 0, 242, 66, 0, 0, 208, 66, 0, 0, 242, 66, 0, 0, 210, 66, 0, 0, 242, 66, 0, 0, 212, 66, 0, 0, 242, 66, 0, 0, 41, 67, 0, 0, 242, 66, 0, 0, 42, 67, 0, 0, 242, 66, 0, 0, 43, 67, 0, 0, 242, 66, 0, 0, 44, 67, 0, 0, 242, 66, 0, 0, 45, 67, 0, 0, 242, 66, 0, 0, 46, 67, 0, 0, 242, 66, 0, 0, 47, 67, 0, 0, 242, 66, 0, 0, 48, 67, 0, 0, 242, 66, 0, 0, 49, 67, 0, 0, 242, 66, 0, 0, 50, 67, 0, 0, 242, 66, 0, 0, 51, 67, 0, 0, 242, 66, 0, 0, 52, 67, 0, 0, 242, 66, 0, 0, 53, 67, 0, 0, 242, 66, 0, 0, 54, 67, 0, 0, 242, 66, 0, 0, 55, 67, 0, 0, 244, 66, 0, 0, 184, 66, 0, 0, 244, 66, 0, 0, 186, 66, 0, 0, 244, 66, 0, 0, 188, 66, 0, 0, 244, 66, 0, 0, 190, 66, 0, 0, 244, 66, 0, 0, 192, 66, 0, 0, 244, 66, 0, 0, 194, 66, 0, 0, 244, 66, 0, 0, 196, 66, 0, 0, 244, 66, 0, 0, 198, 66, 0, 0, 244, 66, 0, 0, 200, 66, 0, 0, 244, 66, 0, 0, 202, 66, 0, 0, 244, 66, 0, 0, 204, 66, 0, 0, 244, 66, 0, 0, 206, 66, 0, 0, 244, 66, 0, 0, 208, 66, 0, 0, 244, 66, 0, 0, 210, 66, 0, 0, 244, 66, 0, 0, 43, 67, 0, 0, 244, 66, 0, 0, 44, 67, 0, 0, 244, 66, 0, 0, 45, 67, 0, 0, 244, 66, 0, 0, 46, 67, 0, 0, 244, 66, 0, 0, 47, 67, 0, 0, 244, 66, 0, 0, 48, 67, 0, 0, 244, 66, 0, 0, 49, 67, 0, 0, 244, 66, 0, 0, 50, 67, 0, 0, 244, 66, 0, 0, 51, 67, 0, 0, 244, 66, 0, 0, 52, 67, 0, 0, 244, 66, 0, 0, 53, 67, 0, 0, 244, 66, 0, 0, 54, 67, 0, 0, 244, 66, 0, 0, 55, 67, 0, 0, 246, 66, 0, 0, 184, 66, 0, 0, 246, 66, 0, 0, 186, 66, 0, 0, 246, 66, 0, 0, 188, 66, 0, 0, 246, 66, 0, 0, 190, 66, 0, 0, 246, 66, 0, 0, 192, 66, 0, 0, 246, 66, 0, 0, 194, 66, 0, 0, 246, 66, 0, 0, 196, 66, 0, 0, 246, 66, 0, 0, 198, 66, 0, 0, 246, 66, 0, 0, 200, 66, 0, 0, 246, 66, 0, 0, 202, 66, 0, 0, 246, 66, 0, 0, 204, 66, 0, 0, 246, 66, 0, 0, 206, 66, 0, 0, 246, 66, 0, 0, 208, 66, 0, 0, 246, 66, 0, 0, 43, 67, 0, 0, 246, 66, 0, 0, 44, 67, 0, 0, 246, 66, 0, 0, 45, 67, 0, 0, 246, 66, 0, 0, 46, 67, 0, 0, 246, 66, 0, 0, 47, 67, 0, 0, 246, 66, 0, 0, 48, 67, 0, 0, 246, 66, 0, 0, 49, 67, 0, 0, 246, 66, 0, 0, 50, 67, 0, 0, 246, 66, 0, 0, 51, 67, 0, 0, 246, 66, 0, 0, 52, 67, 0, 0, 246, 66, 0, 0, 53, 67, 0, 0, 246, 66, 0, 0, 54, 67, 0, 0, 246, 66, 0, 0, 55, 67, 0, 0, 248, 66, 0, 0, 184, 66, 0, 0, 248, 66, 0, 0, 186, 66, 0, 0, 248, 66, 0, 0, 188, 66, 0, 0, 248, 66, 0, 0, 190, 66, 0, 0, 248, 66, 0, 0, 192, 66, 0, 0, 248, 66, 0, 0, 194, 66, 0, 0, 248, 66, 0, 0, 196, 66, 0, 0, 248, 66, 0, 0, 198, 66, 0, 0, 248, 66, 0, 0, 200, 66, 0, 0, 248, 66, 0, 0, 202, 66, 0, 0, 248, 66, 0, 0, 204, 66, 0, 0, 248, 66, 0, 0, 206, 66, 0, 0, 248, 66, 0, 0, 44, 67, 0, 0, 248, 66, 0, 0, 45, 67, 0, 0, 248, 66, 0, 0, 46, 67, 0, 0, 248, 66, 0, 0, 47, 67, 0, 0, 248, 66, 0, 0, 48, 67, 0, 0, 248, 66, 0, 0, 49, 67, 0, 0, 248, 66, 0, 0, 50, 67, 0, 0, 248, 66, 0, 0, 51, 67, 0, 0, 248, 66, 0, 0, 52, 67, 0, 0, 248, 66, 0, 0, 53, 67, 0, 0, 248, 66, 0, 0, 54, 67, 0, 0, 248, 66, 0, 0, 55, 67, 0, 0, 250, 66, 0, 0, 184, 66, 0, 0, 250, 66, 0, 0, 186, 66, 0, 0, 250, 66, 0, 0, 188, 66, 0, 0, 250, 66, 0, 0, 190, 66, 0, 0, 250, 66, 0, 0, 192, 66, 0, 0, 250, 66, 0, 0, 194, 66, 0, 0, 250, 66, 0, 0, 196, 66, 0, 0, 250, 66, 0, 0, 198, 66, 0, 0, 250, 66, 0, 0, 200, 66, 0, 0, 250, 66, 0, 0, 202, 66, 0, 0, 250, 66, 0, 0, 204, 66, 0, 0, 250, 66, 0, 0, 206, 66, 0, 0, 250, 66, 0, 0, 44, 67, 0, 0, 250, 66, 0, 0, 45, 67, 0, 0, 250, 66, 0, 0, 46, 67, 0, 0, 250, 66, 0, 0, 47, 67, 0, 0, 250, 66, 0, 0, 48, 67, 0, 0, 250, 66, 0, 0, 49, 67, 0, 0, 250, 66, 0, 0, 50, 67, 0, 0, 250, 66, 0, 0, 51, 67, 0, 0, 250, 66, 0, 0, 52, 67, 0, 0, 250, 66, 0, 0, 53, 67, 0, 0, 250, 66, 0, 0, 54, 67, 0, 0, 250, 66, 0, 0, 55, 67, 0, 0, 252, 66, 0, 0, 184, 66, 0, 0, 252, 66, 0, 0, 186, 66, 0, 0, 252, 66, 0, 0, 188, 66, 0, 0, 252, 66, 0, 0, 190, 66, 0, 0, 252, 66, 0, 0, 192, 66, 0, 0, 252, 66, 0, 0, 194, 66, 0, 0, 252, 66, 0, 0, 196, 66, 0, 0, 252, 66, 0, 0, 198, 66, 0, 0, 252, 66, 0, 0, 200, 66, 0, 0, 252, 66, 0, 0, 202, 66, 0, 0, 252, 66, 0, 0, 204, 66, 0, 0, 252, 66, 0, 0, 206, 66, 0, 0, 252, 66, 0, 0, 44, 67, 0, 0, 252, 66, 0, 0, 45, 67, 0, 0, 252, 66, 0, 0, 46, 67, 0, 0, 252, 66, 0, 0, 47, 67, 0, 0, 252, 66, 0, 0, 48, 67, 0, 0, 252, 66, 0, 0, 49, 67, 0, 0, 252, 66, 0, 0, 50, 67, 0, 0, 252, 66, 0, 0, 51, 67, 0, 0, 252, 66, 0, 0, 52, 67, 0, 0, 252, 66, 0, 0, 53, 67, 0, 0, 252, 66, 0, 0, 54, 67, 0, 0, 252, 66, 0, 0, 55, 67, 0, 0, 254, 66, 0, 0, 184, 66, 0, 0, 254, 66, 0, 0, 186, 66, 0, 0, 254, 66, 0, 0, 188, 66, 0, 0, 254, 66, 0, 0, 190, 66, 0, 0, 254, 66, 0, 0, 192, 66, 0, 0, 254, 66, 0, 0, 194, 66, 0, 0, 254, 66, 0, 0, 196, 66, 0, 0, 254, 66, 0, 0, 198, 66, 0, 0, 254, 66, 0, 0, 200, 66, 0, 0, 254, 66, 0, 0, 202, 66, 0, 0, 254, 66, 0, 0, 204, 66, 0, 0, 254, 66, 0, 0, 206, 66, 0, 0, 254, 66, 0, 0, 44, 67, 0, 0, 254, 66, 0, 0, 45, 67, 0, 0, 254, 66, 0, 0, 46, 67, 0, 0, 254, 66, 0, 0, 47, 67, 0, 0, 254, 66, 0, 0, 48, 67, 0, 0, 254, 66, 0, 0, 49, 67, 0, 0, 254, 66, 0, 0, 50, 67, 0, 0, 254, 66, 0, 0, 51, 67, 0, 0, 254, 66, 0, 0, 52, 67, 0, 0, 254, 66, 0, 0, 53, 67, 0, 0, 254, 66, 0, 0, 54, 67, 0, 0, 254, 66, 0, 0, 55, 67, 0, 0, 0, 67, 0, 0, 184, 66, 0, 0, 0, 67, 0, 0, 186, 66, 0, 0, 0, 67, 0, 0, 188, 66, 0, 0, 0, 67, 0, 0, 190, 66, 0, 0, 0, 67, 0, 0, 192, 66, 0, 0, 0, 67, 0, 0, 194, 66, 0, 0, 0, 67, 0, 0, 196, 66, 0, 0, 0, 67, 0, 0, 198, 66, 0, 0, 0, 67, 0, 0, 200, 66, 0, 0, 0, 67, 0, 0, 202, 66, 0, 0, 0, 67, 0, 0, 204, 66, 0, 0, 0, 67, 0, 0, 206, 66, 0, 0, 0, 67, 0, 0, 45, 67, 0, 0, 0, 67, 0, 0, 46, 67, 0, 0, 0, 67, 0, 0, 47, 67, 0, 0, 0, 67, 0, 0, 48, 67, 0, 0, 0, 67, 0, 0, 49, 67, 0, 0, 0, 67, 0, 0, 50, 67, 0, 0, 0, 67, 0, 0, 51, 67, 0, 0, 0, 67, 0, 0, 52, 67, 0, 0, 0, 67, 0, 0, 53, 67, 0, 0, 0, 67, 0, 0, 54, 67, 0, 0, 0, 67, 0, 0, 55, 67, 0, 0, 1, 67, 0, 0, 184, 66, 0, 0, 1, 67, 0, 0, 186, 66, 0, 0, 1, 67, 0, 0, 188, 66, 0, 0, 1, 67, 0, 0, 190, 66, 0, 0, 1, 67, 0, 0, 192, 66, 0, 0, 1, 67, 0, 0, 194, 66, 0, 0, 1, 67, 0, 0, 196, 66, 0, 0, 1, 67, 0, 0, 198, 66, 0, 0, 1, 67, 0, 0, 200, 66, 0, 0, 1, 67, 0, 0, 202, 66, 0, 0, 1, 67, 0, 0, 204, 66, 0, 0, 1, 67, 0, 0, 206, 66, 0, 0, 1, 67, 0, 0, 45, 67, 0, 0, 1, 67, 0, 0, 46, 67, 0, 0, 1, 67, 0, 0, 47, 67, 0, 0, 1, 67, 0, 0, 48, 67, 0, 0, 1, 67, 0, 0, 49, 67, 0, 0, 1, 67, 0, 0, 50, 67, 0, 0, 1, 67, 0, 0, 51, 67, 0, 0, 1, 67, 0, 0, 52, 67, 0, 0, 1, 67, 0, 0, 53, 67, 0, 0, 1, 67, 0, 0, 54, 67, 0, 0, 1, 67, 0, 0, 55, 67, 0, 0, 2, 67, 0, 0, 184, 66, 0, 0, 2, 67, 0, 0, 186, 66, 0, 0, 2, 67, 0, 0, 188, 66, 0, 0, 2, 67, 0, 0, 190, 66, 0, 0, 2, 67, 0, 0, 192, 66, 0, 0, 2, 67, 0, 0, 194, 66, 0, 0, 2, 67, 0, 0, 196, 66, 0, 0, 2, 67, 0, 0, 198, 66, 0, 0, 2, 67, 0, 0, 200, 66, 0, 0, 2, 67, 0, 0, 202, 66, 0, 0, 2, 67, 0, 0, 204, 66, 0, 0, 2, 67, 0, 0, 45, 67, 0, 0, 2, 67, 0, 0, 46, 67, 0, 0, 2, 67, 0, 0, 47, 67, 0, 0, 2, 67, 0, 0, 48, 67, 0, 0, 2, 67, 0, 0, 49, 67, 0, 0, 2, 67, 0, 0, 50, 67, 0, 0, 2, 67, 0, 0, 51, 67, 0, 0, 2, 67, 0, 0, 52, 67, 0, 0, 2, 67, 0, 0, 53, 67, 0, 0, 2, 67, 0, 0, 54, 67, 0, 0, 2, 67, 0, 0, 55, 67, 0, 0, 3, 67, 0, 0, 184, 66, 0, 0, 3, 67, 0, 0, 186, 66, 0, 0, 3, 67, 0, 0, 188, 66, 0, 0, 3, 67, 0, 0, 190, 66, 0, 0, 3, 67, 0, 0, 192, 66, 0, 0, 3, 67, 0, 0, 194, 66, 0, 0, 3, 67, 0, 0, 196, 66, 0, 0, 3, 67, 0, 0, 198, 66, 0, 0, 3, 67, 0, 0, 200, 66, 0, 0, 3, 67, 0, 0, 202, 66, 0, 0, 3, 67, 0, 0, 46, 67, 0, 0, 3, 67, 0, 0, 47, 67, 0, 0, 3, 67, 0, 0, 48, 67, 0, 0, 3, 67, 0, 0, 49, 67, 0, 0, 3, 67, 0, 0, 50, 67, 0, 0, 3, 67, 0, 0, 51, 67, 0, 0, 3, 67, 0, 0, 52, 67, 0, 0, 3, 67, 0, 0, 53, 67, 0, 0, 3, 67, 0, 0, 54, 67, 0, 0, 3, 67, 0, 0, 55, 67, 0, 0, 10, 67, 0, 0, 184, 66, 0, 0, 10, 67, 0, 0, 186, 66, 0, 0, 10, 67, 0, 0, 188, 66, 0, 0, 10, 67, 0, 0, 190, 66, 0, 0, 10, 67, 0, 0, 192, 66, 0, 0, 10, 67, 0, 0, 194, 66, 0, 0, 10, 67, 0, 0, 196, 66, 0, 0, 10, 67, 0, 0, 198, 66, 0, 0, 10, 67, 0, 0, 200, 66, 0, 0, 10, 67, 0, 0, 202, 66, 0, 0, 10, 67, 0, 0, 46, 67, 0, 0, 10, 67, 0, 0, 47, 67, 0, 0, 10, 67, 0, 0, 48, 67, 0, 0, 10, 67, 0, 0, 49, 67, 0, 0, 10, 67, 0, 0, 50, 67, 0, 0, 10, 67, 0, 0, 51, 67, 0, 0, 10, 67, 0, 0, 52, 67, 0, 0, 10, 67, 0, 0, 53, 67, 0, 0, 10, 67, 0, 0, 54, 67, 0, 0, 10, 67, 0, 0, 55, 67, 0, 0, 11, 67, 0, 0, 184, 66, 0, 0, 11, 67, 0, 0, 186, 66, 0, 0, 11, 67, 0, 0, 188, 66, 0, 0, 11, 67, 0, 0, 190, 66, 0, 0, 11, 67, 0, 0, 192, 66, 0, 0, 11, 67, 0, 0, 194, 66, 0, 0, 11, 67, 0, 0, 196, 66, 0, 0, 11, 67, 0, 0, 198, 66, 0, 0, 11, 67, 0, 0, 200, 66, 0, 0, 11, 67, 0, 0, 202, 66, 0, 0, 11, 67, 0, 0, 204, 66, 0, 0, 11, 67, 0, 0, 45, 67, 0, 0, 11, 67, 0, 0, 46, 67, 0, 0, 11, 67, 0, 0, 47, 67, 0, 0, 11, 67, 0, 0, 48, 67, 0, 0, 11, 67, 0, 0, 49, 67, 0, 0, 11, 67, 0, 0, 50, 67, 0, 0, 11, 67, 0, 0, 51, 67, 0, 0, 11, 67, 0, 0, 52, 67, 0, 0, 11, 67, 0, 0, 53, 67, 0, 0, 11, 67, 0, 0, 54, 67, 0, 0, 11, 67, 0, 0, 55, 67, 0, 0, 12, 67, 0, 0, 184, 66, 0, 0, 12, 67, 0, 0, 186, 66, 0, 0, 12, 67, 0, 0, 188, 66, 0, 0, 12, 67, 0, 0, 190, 66, 0, 0, 12, 67, 0, 0, 192, 66, 0, 0, 12, 67, 0, 0, 194, 66, 0, 0, 12, 67, 0, 0, 196, 66, 0, 0, 12, 67, 0, 0, 198, 66, 0, 0, 12, 67, 0, 0, 200, 66, 0, 0, 12, 67, 0, 0, 202, 66, 0, 0, 12, 67, 0, 0, 204, 66, 0, 0, 12, 67, 0, 0, 45, 67, 0, 0, 12, 67, 0, 0, 46, 67, 0, 0, 12, 67, 0, 0, 47, 67, 0, 0, 12, 67, 0, 0, 48, 67, 0, 0, 12, 67, 0, 0, 49, 67, 0, 0, 12, 67, 0, 0, 50, 67, 0, 0, 12, 67, 0, 0, 51, 67, 0, 0, 12, 67, 0, 0, 52, 67, 0, 0, 12, 67, 0, 0, 53, 67, 0, 0, 12, 67, 0, 0, 54, 67, 0, 0, 12, 67, 0, 0, 55, 67, 0, 0, 13, 67, 0, 0, 184, 66, 0, 0, 13, 67, 0, 0, 186, 66, 0, 0, 13, 67, 0, 0, 188, 66, 0, 0, 13, 67, 0, 0, 190, 66, 0, 0, 13, 67, 0, 0, 192, 66, 0, 0, 13, 67, 0, 0, 194, 66, 0, 0, 13, 67, 0, 0, 196, 66, 0, 0, 13, 67, 0, 0, 198, 66, 0, 0, 13, 67, 0, 0, 200, 66, 0, 0, 13, 67, 0, 0, 202, 66, 0, 0, 13, 67, 0, 0, 204, 66, 0, 0, 13, 67, 0, 0, 45, 67, 0, 0, 13, 67, 0, 0, 46, 67, 0, 0, 13, 67, 0, 0, 47, 67, 0, 0, 13, 67, 0, 0, 48, 67, 0, 0, 13, 67, 0, 0, 49, 67, 0, 0, 13, 67, 0, 0, 50, 67, 0, 0, 13, 67, 0, 0, 51, 67, 0, 0, 13, 67, 0, 0, 52, 67, 0, 0, 13, 67, 0, 0, 53, 67, 0, 0, 13, 67, 0, 0, 54, 67, 0, 0, 13, 67, 0, 0, 55, 67, 0, 0, 14, 67, 0, 0, 184, 66, 0, 0, 14, 67, 0, 0, 186, 66, 0, 0, 14, 67, 0, 0, 188, 66, 0, 0, 14, 67, 0, 0, 190, 66, 0, 0, 14, 67, 0, 0, 192, 66, 0, 0, 14, 67, 0, 0, 194, 66, 0, 0, 14, 67, 0, 0, 196, 66, 0, 0, 14, 67, 0, 0, 198, 66, 0, 0, 14, 67, 0, 0, 200, 66, 0, 0, 14, 67, 0, 0, 202, 66, 0, 0, 14, 67, 0, 0, 204, 66, 0, 0, 14, 67, 0, 0, 44, 67, 0, 0, 14, 67, 0, 0, 45, 67, 0, 0, 14, 67, 0, 0, 46, 67, 0, 0, 14, 67, 0, 0, 47, 67, 0, 0, 14, 67, 0, 0, 48, 67, 0, 0, 14, 67, 0, 0, 49, 67, 0, 0, 14, 67, 0, 0, 50, 67, 0, 0, 14, 67, 0, 0, 51, 67, 0, 0, 14, 67, 0, 0, 52, 67, 0, 0, 14, 67, 0, 0, 53, 67, 0, 0, 14, 67, 0, 0, 54, 67, 0, 0, 14, 67, 0, 0, 55, 67, 0, 0, 15, 67, 0, 0, 184, 66, 0, 0, 15, 67, 0, 0, 186, 66, 0, 0, 15, 67, 0, 0, 188, 66, 0, 0, 15, 67, 0, 0, 190, 66, 0, 0, 15, 67, 0, 0, 192, 66, 0, 0, 15, 67, 0, 0, 194, 66, 0, 0, 15, 67, 0, 0, 196, 66, 0, 0, 15, 67, 0, 0, 198, 66, 0, 0, 15, 67, 0, 0, 200, 66, 0, 0, 15, 67, 0, 0, 202, 66, 0, 0, 15, 67, 0, 0, 204, 66, 0, 0, 15, 67, 0, 0, 206, 66, 0, 0, 15, 67, 0, 0, 44, 67, 0, 0, 15, 67, 0, 0, 45, 67, 0, 0, 15, 67, 0, 0, 46, 67, 0, 0, 15, 67, 0, 0, 47, 67, 0, 0, 15, 67, 0, 0, 48, 67, 0, 0, 15, 67, 0, 0, 49, 67, 0, 0, 15, 67, 0, 0, 50, 67, 0, 0, 15, 67, 0, 0, 51, 67, 0, 0, 15, 67, 0, 0, 52, 67, 0, 0, 15, 67, 0, 0, 53, 67, 0, 0, 15, 67, 0, 0, 54, 67, 0, 0, 15, 67, 0, 0, 55, 67, 0, 0, 16, 67, 0, 0, 184, 66, 0, 0, 16, 67, 0, 0, 186, 66, 0, 0, 16, 67, 0, 0, 188, 66, 0, 0, 16, 67, 0, 0, 190, 66, 0, 0, 16, 67, 0, 0, 192, 66, 0, 0, 16, 67, 0, 0, 194, 66, 0, 0, 16, 67, 0, 0, 196, 66, 0, 0, 16, 67, 0, 0, 198, 66, 0, 0, 16, 67, 0, 0, 200, 66, 0, 0, 16, 67, 0, 0, 202, 66, 0, 0, 16, 67, 0, 0, 204, 66, 0, 0, 16, 67, 0, 0, 206, 66, 0, 0, 16, 67, 0, 0, 44, 67, 0, 0, 16, 67, 0, 0, 45, 67, 0, 0, 16, 67, 0, 0, 46, 67, 0, 0, 16, 67, 0, 0, 47, 67, 0, 0, 16, 67, 0, 0, 48, 67, 0, 0, 16, 67, 0, 0, 49, 67, 0, 0, 16, 67, 0, 0, 50, 67, 0, 0, 16, 67, 0, 0, 51, 67, 0, 0, 16, 67, 0, 0, 52, 67, 0, 0, 16, 67, 0, 0, 53, 67, 0, 0, 16, 67, 0, 0, 54, 67, 0, 0, 16, 67, 0, 0, 55, 67, 0, 0, 17, 67, 0, 0, 184, 66, 0, 0, 17, 67, 0, 0, 186, 66, 0, 0, 17, 67, 0, 0, 188, 66, 0, 0, 17, 67, 0, 0, 190, 66, 0, 0, 17, 67, 0, 0, 192, 66, 0, 0, 17, 67, 0, 0, 194, 66, 0, 0, 17, 67, 0, 0, 196, 66, 0, 0, 17, 67, 0, 0, 198, 66, 0, 0, 17, 67, 0, 0, 200, 66, 0, 0, 17, 67, 0, 0, 202, 66, 0, 0, 17, 67, 0, 0, 204, 66, 0, 0, 17, 67, 0, 0, 206, 66, 0, 0, 17, 67, 0, 0, 44, 67, 0, 0, 17, 67, 0, 0, 45, 67, 0, 0, 17, 67, 0, 0, 46, 67, 0, 0, 17, 67, 0, 0, 47, 67, 0, 0, 17, 67, 0, 0, 48, 67, 0, 0, 17, 67, 0, 0, 49, 67, 0, 0, 17, 67, 0, 0, 50, 67, 0, 0, 17, 67, 0, 0, 51, 67, 0, 0, 17, 67, 0, 0, 52, 67, 0, 0, 17, 67, 0, 0, 53, 67, 0, 0, 17, 67, 0, 0, 54, 67, 0, 0, 17, 67, 0, 0, 55, 67, 0, 0, 18, 67, 0, 0, 184, 66, 0, 0, 18, 67, 0, 0, 186, 66, 0, 0, 18, 67, 0, 0, 188, 66, 0, 0, 18, 67, 0, 0, 190, 66, 0, 0, 18, 67, 0, 0, 192, 66, 0, 0, 18, 67, 0, 0, 194, 66, 0, 0, 18, 67, 0, 0, 196, 66, 0, 0, 18, 67, 0, 0, 198, 66, 0, 0, 18, 67, 0, 0, 200, 66, 0, 0, 18, 67, 0, 0, 202, 66, 0, 0, 18, 67, 0, 0, 204, 66, 0, 0, 18, 67, 0, 0, 206, 66, 0, 0, 18, 67, 0, 0, 44, 67, 0, 0, 18, 67, 0, 0, 45, 67, 0, 0, 18, 67, 0, 0, 46, 67, 0, 0, 18, 67, 0, 0, 47, 67, 0, 0, 18, 67, 0, 0, 48, 67, 0, 0, 18, 67, 0, 0, 49, 67, 0, 0, 18, 67, 0, 0, 50, 67, 0, 0, 18, 67, 0, 0, 51, 67, 0, 0, 18, 67, 0, 0, 52, 67, 0, 0, 18, 67, 0, 0, 53, 67, 0, 0, 18, 67, 0, 0, 54, 67, 0, 0, 18, 67, 0, 0, 55, 67, 0, 0, 19, 67, 0, 0, 184, 66, 0, 0, 19, 67, 0, 0, 186, 66, 0, 0, 19, 67, 0, 0, 188, 66, 0, 0, 19, 67, 0, 0, 190, 66, 0, 0, 19, 67, 0, 0, 192, 66, 0, 0, 19, 67, 0, 0, 194, 66, 0, 0, 19, 67, 0, 0, 196, 66, 0, 0, 19, 67, 0, 0, 198, 66, 0, 0, 19, 67, 0, 0, 200, 66, 0, 0, 19, 67, 0, 0, 202, 66, 0, 0, 19, 67, 0, 0, 204, 66, 0, 0, 19, 67, 0, 0, 206, 66, 0, 0, 19, 67, 0, 0, 208, 66, 0, 0, 19, 67, 0, 0, 43, 67, 0, 0, 19, 67, 0, 0, 44, 67, 0, 0, 19, 67, 0, 0, 45, 67, 0, 0, 19, 67, 0, 0, 46, 67, 0, 0, 19, 67, 0, 0, 47, 67, 0, 0, 19, 67, 0, 0, 48, 67, 0, 0, 19, 67, 0, 0, 49, 67, 0, 0, 19, 67, 0, 0, 50, 67, 0, 0, 19, 67, 0, 0, 51, 67, 0, 0, 19, 67, 0, 0, 52, 67, 0, 0, 19, 67, 0, 0, 53, 67, 0, 0, 19, 67, 0, 0, 54, 67, 0, 0, 19, 67, 0, 0, 55, 67, 0, 0, 20, 67, 0, 0, 184, 66, 0, 0, 20, 67, 0, 0, 186, 66, 0, 0, 20, 67, 0, 0, 188, 66, 0, 0, 20, 67, 0, 0, 190, 66, 0, 0, 20, 67, 0, 0, 192, 66, 0, 0, 20, 67, 0, 0, 194, 66, 0, 0, 20, 67, 0, 0, 196, 66, 0, 0, 20, 67, 0, 0, 198, 66, 0, 0, 20, 67, 0, 0, 200, 66, 0, 0, 20, 67, 0, 0, 202, 66, 0, 0, 20, 67, 0, 0, 204, 66, 0, 0, 20, 67, 0, 0, 206, 66, 0, 0, 20, 67, 0, 0, 208, 66, 0, 0, 20, 67, 0, 0, 210, 66, 0, 0, 20, 67, 0, 0, 42, 67, 0, 0, 20, 67, 0, 0, 43, 67, 0, 0, 20, 67, 0, 0, 44, 67, 0, 0, 20, 67, 0, 0, 45, 67, 0, 0, 20, 67, 0, 0, 46, 67, 0, 0, 20, 67, 0, 0, 47, 67, 0, 0, 20, 67, 0, 0, 48, 67, 0, 0, 20, 67, 0, 0, 49, 67, 0, 0, 20, 67, 0, 0, 50, 67, 0, 0, 20, 67, 0, 0, 51, 67, 0, 0, 20, 67, 0, 0, 52, 67, 0, 0, 20, 67, 0, 0, 53, 67, 0, 0, 20, 67, 0, 0, 54, 67, 0, 0, 20, 67, 0, 0, 55, 67, 0, 0, 21, 67, 0, 0, 184, 66, 0, 0, 21, 67, 0, 0, 186, 66, 0, 0, 21, 67, 0, 0, 188, 66, 0, 0, 21, 67, 0, 0, 190, 66, 0, 0, 21, 67, 0, 0, 192, 66, 0, 0, 21, 67, 0, 0, 194, 66, 0, 0, 21, 67, 0, 0, 196, 66, 0, 0, 21, 67, 0, 0, 198, 66, 0, 0, 21, 67, 0, 0, 200, 66, 0, 0, 21, 67, 0, 0, 202, 66, 0, 0, 21, 67, 0, 0, 204, 66, 0, 0, 21, 67, 0, 0, 206, 66, 0, 0, 21, 67, 0, 0, 208, 66, 0, 0, 21, 67, 0, 0, 210, 66, 0, 0, 21, 67, 0, 0, 212, 66, 0, 0, 21, 67, 0, 0, 214, 66, 0, 0, 21, 67, 0, 0, 40, 67, 0, 0, 21, 67, 0, 0, 41, 67, 0, 0, 21, 67, 0, 0, 42, 67, 0, 0, 21, 67, 0, 0, 43, 67, 0, 0, 21, 67, 0, 0, 44, 67, 0, 0, 21, 67, 0, 0, 45, 67, 0, 0, 21, 67, 0, 0, 46, 67, 0, 0, 21, 67, 0, 0, 47, 67, 0, 0, 21, 67, 0, 0, 48, 67, 0, 0, 21, 67, 0, 0, 49, 67, 0, 0, 21, 67, 0, 0, 50, 67, 0, 0, 21, 67, 0, 0, 51, 67, 0, 0, 21, 67, 0, 0, 52, 67, 0, 0, 21, 67, 0, 0, 53, 67, 0, 0, 21, 67, 0, 0, 54, 67, 0, 0, 21, 67, 0, 0, 55, 67, 0, 0, 22, 67, 0, 0, 184, 66, 0, 0, 22, 67, 0, 0, 186, 66, 0, 0, 22, 67, 0, 0, 188, 66, 0, 0, 22, 67, 0, 0, 190, 66, 0, 0, 22, 67, 0, 0, 192, 66, 0, 0, 22, 67, 0, 0, 194, 66, 0, 0, 22, 67, 0, 0, 196, 66, 0, 0, 22, 67, 0, 0, 198, 66, 0, 0, 22, 67, 0, 0, 200, 66, 0, 0, 22, 67, 0, 0, 202, 66, 0, 0, 22, 67, 0, 0, 204, 66, 0, 0, 22, 67, 0, 0, 206, 66, 0, 0, 22, 67, 0, 0, 208, 66, 0, 0, 22, 67, 0, 0, 210, 66, 0, 0, 22, 67, 0, 0, 212, 66, 0, 0, 22, 67, 0, 0, 214, 66, 0, 0, 22, 67, 0, 0, 216, 66, 0, 0, 22, 67, 0, 0, 218, 66, 0, 0, 22, 67, 0, 0, 220, 66, 0, 0, 22, 67, 0, 0, 222, 66, 0, 0, 22, 67, 0, 0, 224, 66, 0, 0, 22, 67, 0, 0, 226, 66, 0, 0, 22, 67, 0, 0, 228, 66, 0, 0, 22, 67, 0, 0, 230, 66, 0, 0, 22, 67, 0, 0, 232, 66, 0, 0, 22, 67, 0, 0, 234, 66, 0, 0, 22, 67, 0, 0, 236, 66, 0, 0, 22, 67, 0, 0, 238, 66, 0, 0, 22, 67, 0, 0, 240, 66, 0, 0, 22, 67, 0, 0, 242, 66, 0, 0, 22, 67, 0, 0, 244, 66, 0, 0, 22, 67, 0, 0, 246, 66, 0, 0, 22, 67, 0, 0, 248, 66, 0, 0, 22, 67, 0, 0, 250, 66, 0, 0, 22, 67, 0, 0, 252, 66, 0, 0, 22, 67, 0, 0, 254, 66, 0, 0, 22, 67, 0, 0, 0, 67, 0, 0, 22, 67, 0, 0, 1, 67, 0, 0, 22, 67, 0, 0, 2, 67, 0, 0, 22, 67, 0, 0, 3, 67, 0, 0, 22, 67, 0, 0, 4, 67, 0, 0, 22, 67, 0, 0, 5, 67, 0, 0, 22, 67, 0, 0, 6, 67, 0, 0, 22, 67, 0, 0, 7, 67, 0, 0, 22, 67, 0, 0, 8, 67, 0, 0, 22, 67, 0, 0, 9, 67, 0, 0, 22, 67, 0, 0, 10, 67, 0, 0, 22, 67, 0, 0, 11, 67, 0, 0, 22, 67, 0, 0, 12, 67, 0, 0, 22, 67, 0, 0, 13, 67, 0, 0, 22, 67, 0, 0, 14, 67, 0, 0, 22, 67, 0, 0, 15, 67, 0, 0, 22, 67, 0, 0, 16, 67, 0, 0, 22, 67, 0, 0, 17, 67, 0, 0, 22, 67, 0, 0, 18, 67, 0, 0, 22, 67, 0, 0, 19, 67, 0, 0, 22, 67, 0, 0, 20, 67, 0, 0, 22, 67, 0, 0, 21, 67, 0, 0, 22, 67, 0, 0, 22, 67, 0, 0, 22, 67, 0, 0, 23, 67, 0, 0, 22, 67, 0, 0, 24, 67, 0, 0, 22, 67, 0, 0, 25, 67, 0, 0, 22, 67, 0, 0, 26, 67, 0, 0, 22, 67, 0, 0, 27, 67, 0, 0, 22, 67, 0, 0, 28, 67, 0, 0, 22, 67, 0, 0, 29, 67, 0, 0, 22, 67, 0, 0, 30, 67, 0, 0, 22, 67, 0, 0, 31, 67, 0, 0, 22, 67, 0, 0, 32, 67, 0, 0, 22, 67, 0, 0, 33, 67, 0, 0, 22, 67, 0, 0, 34, 67, 0, 0, 22, 67, 0, 0, 35, 67, 0, 0, 22, 67, 0, 0, 36, 67, 0, 0, 22, 67, 0, 0, 37, 67, 0, 0, 22, 67, 0, 0, 38, 67, 0, 0, 22, 67, 0, 0, 39, 67, 0, 0, 22, 67, 0, 0, 40, 67, 0, 0, 22, 67, 0, 0, 41, 67, 0, 0, 22, 67, 0, 0, 42, 67, 0, 0, 22, 67, 0, 0, 43, 67, 0, 0, 22, 67, 0, 0, 44, 67, 0, 0, 22, 67, 0, 0, 45, 67, 0, 0, 22, 67, 0, 0, 46, 67, 0, 0, 22, 67, 0, 0, 47, 67, 0, 0, 22, 67, 0, 0, 48, 67, 0, 0, 22, 67, 0, 0, 49, 67, 0, 0, 22, 67, 0, 0, 50, 67, 0, 0, 22, 67, 0, 0, 51, 67, 0, 0, 22, 67, 0, 0, 52, 67, 0, 0, 22, 67, 0, 0, 53, 67, 0, 0, 22, 67, 0, 0, 54, 67, 0, 0, 22, 67, 0, 0, 55, 67, 0, 0, 23, 67, 0, 0, 184, 66, 0, 0, 23, 67, 0, 0, 186, 66, 0, 0, 23, 67, 0, 0, 188, 66, 0, 0, 23, 67, 0, 0, 190, 66, 0, 0, 23, 67, 0, 0, 192, 66, 0, 0, 23, 67, 0, 0, 194, 66, 0, 0, 23, 67, 0, 0, 196, 66, 0, 0, 23, 67, 0, 0, 198, 66, 0, 0, 23, 67, 0, 0, 200, 66, 0, 0, 23, 67, 0, 0, 202, 66, 0, 0, 23, 67, 0, 0, 204, 66, 0, 0, 23, 67, 0, 0, 206, 66, 0, 0, 23, 67, 0, 0, 208, 66, 0, 0, 23, 67, 0, 0, 210, 66, 0, 0, 23, 67, 0, 0, 212, 66, 0, 0, 23, 67, 0, 0, 214, 66, 0, 0, 23, 67, 0, 0, 216, 66, 0, 0, 23, 67, 0, 0, 218, 66, 0, 0, 23, 67, 0, 0, 220, 66, 0, 0, 23, 67, 0, 0, 222, 66, 0, 0, 23, 67, 0, 0, 224, 66, 0, 0, 23, 67, 0, 0, 226, 66, 0, 0, 23, 67, 0, 0, 228, 66, 0, 0, 23, 67, 0, 0, 230, 66, 0, 0, 23, 67, 0, 0, 232, 66, 0, 0, 23, 67, 0, 0, 234, 66, 0, 0, 23, 67, 0, 0, 236, 66, 0, 0, 23, 67, 0, 0, 238, 66, 0, 0, 23, 67, 0, 0, 240, 66, 0, 0, 23, 67, 0, 0, 242, 66, 0, 0, 23, 67, 0, 0, 244, 66, 0, 0, 23, 67, 0, 0, 246, 66, 0, 0, 23, 67, 0, 0, 248, 66, 0, 0, 23, 67, 0, 0, 250, 66, 0, 0, 23, 67, 0, 0, 252, 66, 0, 0, 23, 67, 0, 0, 254, 66, 0, 0, 23, 67, 0, 0, 0, 67, 0, 0, 23, 67, 0, 0, 1, 67, 0, 0, 23, 67, 0, 0, 2, 67, 0, 0, 23, 67, 0, 0, 3, 67, 0, 0, 23, 67, 0, 0, 4, 67, 0, 0, 23, 67, 0, 0, 5, 67, 0, 0, 23, 67, 0, 0, 6, 67, 0, 0, 23, 67, 0, 0, 7, 67, 0, 0, 23, 67, 0, 0, 8, 67, 0, 0, 23, 67, 0, 0, 9, 67, 0, 0, 23, 67, 0, 0, 10, 67, 0, 0, 23, 67, 0, 0, 11, 67, 0, 0, 23, 67, 0, 0, 12, 67, 0, 0, 23, 67, 0, 0, 13, 67, 0, 0, 23, 67, 0, 0, 14, 67, 0, 0, 23, 67, 0, 0, 15, 67, 0, 0, 23, 67, 0, 0, 16, 67, 0, 0, 23, 67, 0, 0, 17, 67, 0, 0, 23, 67, 0, 0, 18, 67, 0, 0, 23, 67, 0, 0, 19, 67, 0, 0, 23, 67, 0, 0, 20, 67, 0, 0, 23, 67, 0, 0, 21, 67, 0, 0, 23, 67, 0, 0, 22, 67, 0, 0, 23, 67, 0, 0, 23, 67, 0, 0, 23, 67, 0, 0, 24, 67, 0, 0, 23, 67, 0, 0, 25, 67, 0, 0, 23, 67, 0, 0, 26, 67, 0, 0, 23, 67, 0, 0, 27, 67, 0, 0, 23, 67, 0, 0, 28, 67, 0, 0, 23, 67, 0, 0, 29, 67, 0, 0, 23, 67, 0, 0, 30, 67, 0, 0, 23, 67, 0, 0, 31, 67, 0, 0, 23, 67, 0, 0, 32, 67, 0, 0, 23, 67, 0, 0, 33, 67, 0, 0, 23, 67, 0, 0, 34, 67, 0, 0, 23, 67, 0, 0, 35, 67, 0, 0, 23, 67, 0, 0, 36, 67, 0, 0, 23, 67, 0, 0, 37, 67, 0, 0, 23, 67, 0, 0, 38, 67, 0, 0, 23, 67, 0, 0, 39, 67, 0, 0, 23, 67, 0, 0, 40, 67, 0, 0, 23, 67, 0, 0, 41, 67, 0, 0, 23, 67, 0, 0, 42, 67, 0, 0, 23, 67, 0, 0, 43, 67, 0, 0, 23, 67, 0, 0, 44, 67, 0, 0, 23, 67, 0, 0, 45, 67, 0, 0, 23, 67, 0, 0, 46, 67, 0, 0, 23, 67, 0, 0, 47, 67, 0, 0, 23, 67, 0, 0, 48, 67, 0, 0, 23, 67, 0, 0, 49, 67, 0, 0, 23, 67, 0, 0, 50, 67, 0, 0, 23, 67, 0, 0, 51, 67, 0, 0, 23, 67, 0, 0, 52, 67, 0, 0, 23, 67, 0, 0, 53, 67, 0, 0, 23, 67, 0, 0, 54, 67, 0, 0, 23, 67, 0, 0, 55, 67, 0, 0, 24, 67, 0, 0, 184, 66, 0, 0, 24, 67, 0, 0, 186, 66, 0, 0, 24, 67, 0, 0, 188, 66, 0, 0, 24, 67, 0, 0, 190, 66, 0, 0, 24, 67, 0, 0, 192, 66, 0, 0, 24, 67, 0, 0, 194, 66, 0, 0, 24, 67, 0, 0, 196, 66, 0, 0, 24, 67, 0, 0, 198, 66, 0, 0, 24, 67, 0, 0, 200, 66, 0, 0, 24, 67, 0, 0, 202, 66, 0, 0, 24, 67, 0, 0, 204, 66, 0, 0, 24, 67, 0, 0, 206, 66, 0, 0, 24, 67, 0, 0, 208, 66, 0, 0, 24, 67, 0, 0, 210, 66, 0, 0, 24, 67, 0, 0, 212, 66, 0, 0, 24, 67, 0, 0, 214, 66, 0, 0, 24, 67, 0, 0, 216, 66, 0, 0, 24, 67, 0, 0, 218, 66, 0, 0, 24, 67, 0, 0, 220, 66, 0, 0, 24, 67, 0, 0, 222, 66, 0, 0, 24, 67, 0, 0, 224, 66, 0, 0, 24, 67, 0, 0, 226, 66, 0, 0, 24, 67, 0, 0, 228, 66, 0, 0, 24, 67, 0, 0, 230, 66, 0, 0, 24, 67, 0, 0, 232, 66, 0, 0, 24, 67, 0, 0, 234, 66, 0, 0, 24, 67, 0, 0, 236, 66, 0, 0, 24, 67, 0, 0, 238, 66, 0, 0, 24, 67, 0, 0, 240, 66, 0, 0, 24, 67, 0, 0, 242, 66, 0, 0, 24, 67, 0, 0, 244, 66, 0, 0, 24, 67, 0, 0, 246, 66, 0, 0, 24, 67, 0, 0, 248, 66, 0, 0, 24, 67, 0, 0, 250, 66, 0, 0, 24, 67, 0, 0, 252, 66, 0, 0, 24, 67, 0, 0, 254, 66, 0, 0, 24, 67, 0, 0, 0, 67, 0, 0, 24, 67, 0, 0, 1, 67, 0, 0, 24, 67, 0, 0, 2, 67, 0, 0, 24, 67, 0, 0, 3, 67, 0, 0, 24, 67, 0, 0, 4, 67, 0, 0, 24, 67, 0, 0, 5, 67, 0, 0, 24, 67, 0, 0, 6, 67, 0, 0, 24, 67, 0, 0, 7, 67, 0, 0, 24, 67, 0, 0, 8, 67, 0, 0, 24, 67, 0, 0, 9, 67, 0, 0, 24, 67, 0, 0, 10, 67, 0, 0, 24, 67, 0, 0, 11, 67, 0, 0, 24, 67, 0, 0, 12, 67, 0, 0, 24, 67, 0, 0, 13, 67, 0, 0, 24, 67, 0, 0, 14, 67, 0, 0, 24, 67, 0, 0, 15, 67, 0, 0, 24, 67, 0, 0, 16, 67, 0, 0, 24, 67, 0, 0, 17, 67, 0, 0, 24, 67, 0, 0, 18, 67, 0, 0, 24, 67, 0, 0, 19, 67, 0, 0, 24, 67, 0, 0, 20, 67, 0, 0, 24, 67, 0, 0, 21, 67, 0, 0, 24, 67, 0, 0, 22, 67, 0, 0, 24, 67, 0, 0, 23, 67, 0, 0, 24, 67, 0, 0, 24, 67, 0, 0, 24, 67, 0, 0, 25, 67, 0, 0, 24, 67, 0, 0, 26, 67, 0, 0, 24, 67, 0, 0, 27, 67, 0, 0, 24, 67, 0, 0, 28, 67, 0, 0, 24, 67, 0, 0, 29, 67, 0, 0, 24, 67, 0, 0, 30, 67, 0, 0, 24, 67, 0, 0, 31, 67, 0, 0, 24, 67, 0, 0, 32, 67, 0, 0, 24, 67, 0, 0, 33, 67, 0, 0, 24, 67, 0, 0, 34, 67, 0, 0, 24, 67, 0, 0, 35, 67, 0, 0, 24, 67, 0, 0, 36, 67, 0, 0, 24, 67, 0, 0, 37, 67, 0, 0, 24, 67, 0, 0, 38, 67, 0, 0, 24, 67, 0, 0, 39, 67, 0, 0, 24, 67, 0, 0, 40, 67, 0, 0, 24, 67, 0, 0, 41, 67, 0, 0, 24, 67, 0, 0, 42, 67, 0, 0, 24, 67, 0, 0, 43, 67, 0, 0, 24, 67, 0, 0, 44, 67, 0, 0, 24, 67, 0, 0, 45, 67, 0, 0, 24, 67, 0, 0, 46, 67, 0, 0, 24, 67, 0, 0, 47, 67, 0, 0, 24, 67, 0, 0, 48, 67, 0, 0, 24, 67, 0, 0, 49, 67, 0, 0, 24, 67, 0, 0, 50, 67, 0, 0, 24, 67, 0, 0, 51, 67, 0, 0, 24, 67, 0, 0, 52, 67, 0, 0, 24, 67, 0, 0, 53, 67, 0, 0, 24, 67, 0, 0, 54, 67, 0, 0, 24, 67, 0, 0, 55, 67, 0, 0, 25, 67, 0, 0, 184, 66, 0, 0, 25, 67, 0, 0, 186, 66, 0, 0, 25, 67, 0, 0, 188, 66, 0, 0, 25, 67, 0, 0, 190, 66, 0, 0, 25, 67, 0, 0, 192, 66, 0, 0, 25, 67, 0, 0, 194, 66, 0, 0, 25, 67, 0, 0, 196, 66, 0, 0, 25, 67, 0, 0, 198, 66, 0, 0, 25, 67, 0, 0, 200, 66, 0, 0, 25, 67, 0, 0, 202, 66, 0, 0, 25, 67, 0, 0, 204, 66, 0, 0, 25, 67, 0, 0, 206, 66, 0, 0, 25, 67, 0, 0, 208, 66, 0, 0, 25, 67, 0, 0, 210, 66, 0, 0, 25, 67, 0, 0, 212, 66, 0, 0, 25, 67, 0, 0, 214, 66, 0, 0, 25, 67, 0, 0, 216, 66, 0, 0, 25, 67, 0, 0, 218, 66, 0, 0, 25, 67, 0, 0, 220, 66, 0, 0, 25, 67, 0, 0, 222, 66, 0, 0, 25, 67, 0, 0, 224, 66, 0, 0, 25, 67, 0, 0, 226, 66, 0, 0, 25, 67, 0, 0, 228, 66, 0, 0, 25, 67, 0, 0, 230, 66, 0, 0, 25, 67, 0, 0, 232, 66, 0, 0, 25, 67, 0, 0, 234, 66, 0, 0, 25, 67, 0, 0, 236, 66, 0, 0, 25, 67, 0, 0, 238, 66, 0, 0, 25, 67, 0, 0, 240, 66, 0, 0, 25, 67, 0, 0, 242, 66, 0, 0, 25, 67, 0, 0, 244, 66, 0, 0, 25, 67, 0, 0, 246, 66, 0, 0, 25, 67, 0, 0, 248, 66, 0, 0, 25, 67, 0, 0, 250, 66, 0, 0, 25, 67, 0, 0, 252, 66, 0, 0, 25, 67, 0, 0, 254, 66, 0, 0, 25, 67, 0, 0, 0, 67, 0, 0, 25, 67, 0, 0, 1, 67, 0, 0, 25, 67, 0, 0, 2, 67, 0, 0, 25, 67, 0, 0, 3, 67, 0, 0, 25, 67, 0, 0, 4, 67, 0, 0, 25, 67, 0, 0, 5, 67, 0, 0, 25, 67, 0, 0, 6, 67, 0, 0, 25, 67, 0, 0, 7, 67, 0, 0, 25, 67, 0, 0, 8, 67, 0, 0, 25, 67, 0, 0, 9, 67, 0, 0, 25, 67, 0, 0, 10, 67, 0, 0, 25, 67, 0, 0, 11, 67, 0, 0, 25, 67, 0, 0, 12, 67, 0, 0, 25, 67, 0, 0, 13, 67, 0, 0, 25, 67, 0, 0, 14, 67, 0, 0, 25, 67, 0, 0, 15, 67, 0, 0, 25, 67, 0, 0, 16, 67, 0, 0, 25, 67, 0, 0, 17, 67, 0, 0, 25, 67, 0, 0, 18, 67, 0, 0, 25, 67, 0, 0, 19, 67, 0, 0, 25, 67, 0, 0, 20, 67, 0, 0, 25, 67, 0, 0, 21, 67, 0, 0, 25, 67, 0, 0, 22, 67, 0, 0, 25, 67, 0, 0, 23, 67, 0, 0, 25, 67, 0, 0, 24, 67, 0, 0, 25, 67, 0, 0, 25, 67, 0, 0, 25, 67, 0, 0, 26, 67, 0, 0, 25, 67, 0, 0, 27, 67, 0, 0, 25, 67, 0, 0, 28, 67, 0, 0, 25, 67, 0, 0, 29, 67, 0, 0, 25, 67, 0, 0, 30, 67, 0, 0, 25, 67, 0, 0, 31, 67, 0, 0, 25, 67, 0, 0, 32, 67, 0, 0, 25, 67, 0, 0, 33, 67, 0, 0, 25, 67, 0, 0, 34, 67, 0, 0, 25, 67, 0, 0, 35, 67, 0, 0, 25, 67, 0, 0, 36, 67, 0, 0, 25, 67, 0, 0, 37, 67, 0, 0, 25, 67, 0, 0, 38, 67, 0, 0, 25, 67, 0, 0, 39, 67, 0, 0, 25, 67, 0, 0, 40, 67, 0, 0, 25, 67, 0, 0, 41, 67, 0, 0, 25, 67, 0, 0, 42, 67, 0, 0, 25, 67, 0, 0, 43, 67, 0, 0, 25, 67, 0, 0, 44, 67, 0, 0, 25, 67, 0, 0, 45, 67, 0, 0, 25, 67, 0, 0, 46, 67, 0, 0, 25, 67, 0, 0, 47, 67, 0, 0, 25, 67, 0, 0, 48, 67, 0, 0, 25, 67, 0, 0, 49, 67, 0, 0, 25, 67, 0, 0, 50, 67, 0, 0, 25, 67, 0, 0, 51, 67, 0, 0, 25, 67, 0, 0, 52, 67, 0, 0, 25, 67, 0, 0, 53, 67, 0, 0, 25, 67, 0, 0, 54, 67, 0, 0, 25, 67, 0, 0, 55, 67, 0, 0, 26, 67, 0, 0, 184, 66, 0, 0, 26, 67, 0, 0, 186, 66, 0, 0, 26, 67, 0, 0, 188, 66, 0, 0, 26, 67, 0, 0, 190, 66, 0, 0, 26, 67, 0, 0, 192, 66, 0, 0, 26, 67, 0, 0, 194, 66, 0, 0, 26, 67, 0, 0, 196, 66, 0, 0, 26, 67, 0, 0, 198, 66, 0, 0, 26, 67, 0, 0, 200, 66, 0, 0, 26, 67, 0, 0, 202, 66, 0, 0, 26, 67, 0, 0, 204, 66, 0, 0, 26, 67, 0, 0, 206, 66, 0, 0, 26, 67, 0, 0, 208, 66, 0, 0, 26, 67, 0, 0, 210, 66, 0, 0, 26, 67, 0, 0, 212, 66, 0, 0, 26, 67, 0, 0, 214, 66, 0, 0, 26, 67, 0, 0, 216, 66, 0, 0, 26, 67, 0, 0, 218, 66, 0, 0, 26, 67, 0, 0, 220, 66, 0, 0, 26, 67, 0, 0, 222, 66, 0, 0, 26, 67, 0, 0, 224, 66, 0, 0, 26, 67, 0, 0, 226, 66, 0, 0, 26, 67, 0, 0, 228, 66, 0, 0, 26, 67, 0, 0, 230, 66, 0, 0, 26, 67, 0, 0, 232, 66, 0, 0, 26, 67, 0, 0, 234, 66, 0, 0, 26, 67, 0, 0, 236, 66, 0, 0, 26, 67, 0, 0, 238, 66, 0, 0, 26, 67, 0, 0, 240, 66, 0, 0, 26, 67, 0, 0, 242, 66, 0, 0, 26, 67, 0, 0, 244, 66, 0, 0, 26, 67, 0, 0, 246, 66, 0, 0, 26, 67, 0, 0, 248, 66, 0, 0, 26, 67, 0, 0, 250, 66, 0, 0, 26, 67, 0, 0, 252, 66, 0, 0, 26, 67, 0, 0, 254, 66, 0, 0, 26, 67, 0, 0, 0, 67, 0, 0, 26, 67, 0, 0, 1, 67, 0, 0, 26, 67, 0, 0, 2, 67, 0, 0, 26, 67, 0, 0, 3, 67, 0, 0, 26, 67, 0, 0, 4, 67, 0, 0, 26, 67, 0, 0, 5, 67, 0, 0, 26, 67, 0, 0, 6, 67, 0, 0, 26, 67, 0, 0, 7, 67, 0, 0, 26, 67, 0, 0, 8, 67, 0, 0, 26, 67, 0, 0, 9, 67, 0, 0, 26, 67, 0, 0, 10, 67, 0, 0, 26, 67, 0, 0, 11, 67, 0, 0, 26, 67, 0, 0, 12, 67, 0, 0, 26, 67, 0, 0, 13, 67, 0, 0, 26, 67, 0, 0, 14, 67, 0, 0, 26, 67, 0, 0, 15, 67, 0, 0, 26, 67, 0, 0, 16, 67, 0, 0, 26, 67, 0, 0, 17, 67, 0, 0, 26, 67, 0, 0, 18, 67, 0, 0, 26, 67, 0, 0, 19, 67, 0, 0, 26, 67, 0, 0, 20, 67, 0, 0, 26, 67, 0, 0, 21, 67, 0, 0, 26, 67, 0, 0, 22, 67, 0, 0, 26, 67, 0, 0, 23, 67, 0, 0, 26, 67, 0, 0, 24, 67, 0, 0, 26, 67, 0, 0, 25, 67, 0, 0, 26, 67, 0, 0, 26, 67, 0, 0, 26, 67, 0, 0, 27, 67, 0, 0, 26, 67, 0, 0, 28, 67, 0, 0, 26, 67, 0, 0, 29, 67, 0, 0, 26, 67, 0, 0, 30, 67, 0, 0, 26, 67, 0, 0, 31, 67, 0, 0, 26, 67, 0, 0, 32, 67, 0, 0, 26, 67, 0, 0, 33, 67, 0, 0, 26, 67, 0, 0, 34, 67, 0, 0, 26, 67, 0, 0, 35, 67, 0, 0, 26, 67, 0, 0, 36, 67, 0, 0, 26, 67, 0, 0, 37, 67, 0, 0, 26, 67, 0, 0, 38, 67, 0, 0, 26, 67, 0, 0, 39, 67, 0, 0, 26, 67, 0, 0, 40, 67, 0, 0, 26, 67, 0, 0, 41, 67, 0, 0, 26, 67, 0, 0, 42, 67, 0, 0, 26, 67, 0, 0, 43, 67, 0, 0, 26, 67, 0, 0, 44, 67, 0, 0, 26, 67, 0, 0, 45, 67, 0, 0, 26, 67, 0, 0, 46, 67, 0, 0, 26, 67, 0, 0, 47, 67, 0, 0, 26, 67, 0, 0, 48, 67, 0, 0, 26, 67, 0, 0, 49, 67, 0, 0, 26, 67, 0, 0, 50, 67, 0, 0, 26, 67, 0, 0, 51, 67, 0, 0, 26, 67, 0, 0, 52, 67, 0, 0, 26, 67, 0, 0, 53, 67, 0, 0, 26, 67, 0, 0, 54, 67, 0, 0, 26, 67, 0, 0, 55, 67, 0, 0, 27, 67, 0, 0, 184, 66, 0, 0, 27, 67, 0, 0, 186, 66, 0, 0, 27, 67, 0, 0, 188, 66, 0, 0, 27, 67, 0, 0, 190, 66, 0, 0, 27, 67, 0, 0, 192, 66, 0, 0, 27, 67, 0, 0, 194, 66, 0, 0, 27, 67, 0, 0, 196, 66, 0, 0, 27, 67, 0, 0, 198, 66, 0, 0, 27, 67, 0, 0, 200, 66, 0, 0, 27, 67, 0, 0, 202, 66, 0, 0, 27, 67, 0, 0, 204, 66, 0, 0, 27, 67, 0, 0, 206, 66, 0, 0, 27, 67, 0, 0, 208, 66, 0, 0, 27, 67, 0, 0, 210, 66, 0, 0, 27, 67, 0, 0, 212, 66, 0, 0, 27, 67, 0, 0, 214, 66, 0, 0, 27, 67, 0, 0, 216, 66, 0, 0, 27, 67, 0, 0, 218, 66, 0, 0, 27, 67, 0, 0, 220, 66, 0, 0, 27, 67, 0, 0, 222, 66, 0, 0, 27, 67, 0, 0, 224, 66, 0, 0, 27, 67, 0, 0, 226, 66, 0, 0, 27, 67, 0, 0, 228, 66, 0, 0, 27, 67, 0, 0, 230, 66, 0, 0, 27, 67, 0, 0, 232, 66, 0, 0, 27, 67, 0, 0, 234, 66, 0, 0, 27, 67, 0, 0, 236, 66, 0, 0, 27, 67, 0, 0, 238, 66, 0, 0, 27, 67, 0, 0, 240, 66, 0, 0, 27, 67, 0, 0, 242, 66, 0, 0, 27, 67, 0, 0, 244, 66, 0, 0, 27, 67, 0, 0, 246, 66, 0, 0, 27, 67, 0, 0, 248, 66, 0, 0, 27, 67, 0, 0, 250, 66, 0, 0, 27, 67, 0, 0, 252, 66, 0, 0, 27, 67, 0, 0, 254, 66, 0, 0, 27, 67, 0, 0, 0, 67, 0, 0, 27, 67, 0, 0, 1, 67, 0, 0, 27, 67, 0, 0, 2, 67, 0, 0, 27, 67, 0, 0, 3, 67, 0, 0, 27, 67, 0, 0, 4, 67, 0, 0, 27, 67, 0, 0, 5, 67, 0, 0, 27, 67, 0, 0, 6, 67, 0, 0, 27, 67, 0, 0, 7, 67, 0, 0, 27, 67, 0, 0, 8, 67, 0, 0, 27, 67, 0, 0, 9, 67, 0, 0, 27, 67, 0, 0, 10, 67, 0, 0, 27, 67, 0, 0, 11, 67, 0, 0, 27, 67, 0, 0, 12, 67, 0, 0, 27, 67, 0, 0, 13, 67, 0, 0, 27, 67, 0, 0, 14, 67, 0, 0, 27, 67, 0, 0, 15, 67, 0, 0, 27, 67, 0, 0, 16, 67, 0, 0, 27, 67, 0, 0, 17, 67, 0, 0, 27, 67, 0, 0, 18, 67, 0, 0, 27, 67, 0, 0, 19, 67, 0, 0, 27, 67, 0, 0, 20, 67, 0, 0, 27, 67, 0, 0, 21, 67, 0, 0, 27, 67, 0, 0, 22, 67, 0, 0, 27, 67, 0, 0, 23, 67, 0, 0, 27, 67, 0, 0, 24, 67, 0, 0, 27, 67, 0, 0, 25, 67, 0, 0, 27, 67, 0, 0, 26, 67, 0, 0, 27, 67, 0, 0, 27, 67, 0, 0, 27, 67, 0, 0, 28, 67, 0, 0, 27, 67, 0, 0, 29, 67, 0, 0, 27, 67, 0, 0, 30, 67, 0, 0, 27, 67, 0, 0, 31, 67, 0, 0, 27, 67, 0, 0, 32, 67, 0, 0, 27, 67, 0, 0, 33, 67, 0, 0, 27, 67, 0, 0, 34, 67, 0, 0, 27, 67, 0, 0, 35, 67, 0, 0, 27, 67, 0, 0, 36, 67, 0, 0, 27, 67, 0, 0, 37, 67, 0, 0, 27, 67, 0, 0, 38, 67, 0, 0, 27, 67, 0, 0, 39, 67, 0, 0, 27, 67, 0, 0, 40, 67, 0, 0, 27, 67, 0, 0, 41, 67, 0, 0, 27, 67, 0, 0, 42, 67, 0, 0, 27, 67, 0, 0, 43, 67, 0, 0, 27, 67, 0, 0, 44, 67, 0, 0, 27, 67, 0, 0, 45, 67, 0, 0, 27, 67, 0, 0, 46, 67, 0, 0, 27, 67, 0, 0, 47, 67, 0, 0, 27, 67, 0, 0, 48, 67, 0, 0, 27, 67, 0, 0, 49, 67, 0, 0, 27, 67, 0, 0, 50, 67, 0, 0, 27, 67, 0, 0, 51, 67, 0, 0, 27, 67, 0, 0, 52, 67, 0, 0, 27, 67, 0, 0, 53, 67, 0, 0, 27, 67, 0, 0, 54, 67, 0, 0, 27, 67, 0, 0, 55, 67, 0, 0, 28, 67, 0, 0, 184, 66, 0, 0, 28, 67, 0, 0, 186, 66, 0, 0, 28, 67, 0, 0, 188, 66, 0, 0, 28, 67, 0, 0, 190, 66, 0, 0, 28, 67, 0, 0, 192, 66, 0, 0, 28, 67, 0, 0, 194, 66, 0, 0, 28, 67, 0, 0, 196, 66, 0, 0, 28, 67, 0, 0, 198, 66, 0, 0, 28, 67, 0, 0, 200, 66, 0, 0, 28, 67, 0, 0, 202, 66, 0, 0, 28, 67, 0, 0, 204, 66, 0, 0, 28, 67, 0, 0, 206, 66, 0, 0, 28, 67, 0, 0, 208, 66, 0, 0, 28, 67, 0, 0, 210, 66, 0, 0, 28, 67, 0, 0, 212, 66, 0, 0, 28, 67, 0, 0, 214, 66, 0, 0, 28, 67, 0, 0, 216, 66, 0, 0, 28, 67, 0, 0, 218, 66, 0, 0, 28, 67, 0, 0, 220, 66, 0, 0, 28, 67, 0, 0, 222, 66, 0, 0, 28, 67, 0, 0, 224, 66, 0, 0, 28, 67, 0, 0, 226, 66, 0, 0, 28, 67, 0, 0, 228, 66, 0, 0, 28, 67, 0, 0, 230, 66, 0, 0, 28, 67, 0, 0, 232, 66, 0, 0, 28, 67, 0, 0, 234, 66, 0, 0, 28, 67, 0, 0, 236, 66, 0, 0, 28, 67, 0, 0, 238, 66, 0, 0, 28, 67, 0, 0, 240, 66, 0, 0, 28, 67, 0, 0, 242, 66, 0, 0, 28, 67, 0, 0, 244, 66, 0, 0, 28, 67, 0, 0, 246, 66, 0, 0, 28, 67, 0, 0, 248, 66, 0, 0, 28, 67, 0, 0, 250, 66, 0, 0, 28, 67, 0, 0, 252, 66, 0, 0, 28, 67, 0, 0, 254, 66, 0, 0, 28, 67, 0, 0, 0, 67, 0, 0, 28, 67, 0, 0, 1, 67, 0, 0, 28, 67, 0, 0, 2, 67, 0, 0, 28, 67, 0, 0, 3, 67, 0, 0, 28, 67, 0, 0, 4, 67, 0, 0, 28, 67, 0, 0, 5, 67, 0, 0, 28, 67, 0, 0, 6, 67, 0, 0, 28, 67, 0, 0, 7, 67, 0, 0, 28, 67, 0, 0, 8, 67, 0, 0, 28, 67, 0, 0, 9, 67, 0, 0, 28, 67, 0, 0, 10, 67, 0, 0, 28, 67, 0, 0, 11, 67, 0, 0, 28, 67, 0, 0, 12, 67, 0, 0, 28, 67, 0, 0, 13, 67, 0, 0, 28, 67, 0, 0, 14, 67, 0, 0, 28, 67, 0, 0, 15, 67, 0, 0, 28, 67, 0, 0, 16, 67, 0, 0, 28, 67, 0, 0, 17, 67, 0, 0, 28, 67, 0, 0, 18, 67, 0, 0, 28, 67, 0, 0, 19, 67, 0, 0, 28, 67, 0, 0, 20, 67, 0, 0, 28, 67, 0, 0, 21, 67, 0, 0, 28, 67, 0, 0, 22, 67, 0, 0, 28, 67, 0, 0, 23, 67, 0, 0, 28, 67, 0, 0, 24, 67, 0, 0, 28, 67, 0, 0, 25, 67, 0, 0, 28, 67, 0, 0, 26, 67, 0, 0, 28, 67, 0, 0, 27, 67, 0, 0, 28, 67, 0, 0, 28, 67, 0, 0, 28, 67, 0, 0, 29, 67, 0, 0, 28, 67, 0, 0, 30, 67, 0, 0, 28, 67, 0, 0, 31, 67, 0, 0, 28, 67, 0, 0, 32, 67, 0, 0, 28, 67, 0, 0, 33, 67, 0, 0, 28, 67, 0, 0, 34, 67, 0, 0, 28, 67, 0, 0, 35, 67, 0, 0, 28, 67, 0, 0, 36, 67, 0, 0, 28, 67, 0, 0, 37, 67, 0, 0, 28, 67, 0, 0, 38, 67, 0, 0, 28, 67, 0, 0, 39, 67, 0, 0, 28, 67, 0, 0, 40, 67, 0, 0, 28, 67, 0, 0, 41, 67, 0, 0, 28, 67, 0, 0, 42, 67, 0, 0, 28, 67, 0, 0, 43, 67, 0, 0, 28, 67, 0, 0, 44, 67, 0, 0, 28, 67, 0, 0, 45, 67, 0, 0, 28, 67, 0, 0, 46, 67, 0, 0, 28, 67, 0, 0, 47, 67, 0, 0, 28, 67, 0, 0, 48, 67, 0, 0, 28, 67, 0, 0, 49, 67, 0, 0, 28, 67, 0, 0, 50, 67, 0, 0, 28, 67, 0, 0, 51, 67, 0, 0, 28, 67, 0, 0, 52, 67, 0, 0, 28, 67, 0, 0, 53, 67, 0, 0, 28, 67, 0, 0, 54, 67, 0, 0, 28, 67, 0, 0, 55, 67, 0, 0, 29, 67, 0, 0, 184, 66, 0, 0, 29, 67, 0, 0, 186, 66, 0, 0, 29, 67, 0, 0, 188, 66, 0, 0, 29, 67, 0, 0, 190, 66, 0, 0, 29, 67, 0, 0, 192, 66, 0, 0, 29, 67, 0, 0, 194, 66, 0, 0, 29, 67, 0, 0, 196, 66, 0, 0, 29, 67, 0, 0, 198, 66, 0, 0, 29, 67, 0, 0, 200, 66, 0, 0, 29, 67, 0, 0, 202, 66, 0, 0, 29, 67, 0, 0, 204, 66, 0, 0, 29, 67, 0, 0, 206, 66, 0, 0, 29, 67, 0, 0, 208, 66, 0, 0, 29, 67, 0, 0, 210, 66, 0, 0, 29, 67, 0, 0, 212, 66, 0, 0, 29, 67, 0, 0, 214, 66, 0, 0, 29, 67, 0, 0, 216, 66, 0, 0, 29, 67, 0, 0, 218, 66, 0, 0, 29, 67, 0, 0, 220, 66, 0, 0, 29, 67, 0, 0, 222, 66, 0, 0, 29, 67, 0, 0, 224, 66, 0, 0, 29, 67, 0, 0, 226, 66, 0, 0, 29, 67, 0, 0, 228, 66, 0, 0, 29, 67, 0, 0, 230, 66, 0, 0, 29, 67, 0, 0, 232, 66, 0, 0, 29, 67, 0, 0, 234, 66, 0, 0, 29, 67, 0, 0, 236, 66, 0, 0, 29, 67, 0, 0, 238, 66, 0, 0, 29, 67, 0, 0, 240, 66, 0, 0, 29, 67, 0, 0, 242, 66, 0, 0, 29, 67, 0, 0, 244, 66, 0, 0, 29, 67, 0, 0, 246, 66, 0, 0, 29, 67, 0, 0, 248, 66, 0, 0, 29, 67, 0, 0, 250, 66, 0, 0, 29, 67, 0, 0, 252, 66, 0, 0, 29, 67, 0, 0, 254, 66, 0, 0, 29, 67, 0, 0, 0, 67, 0, 0, 29, 67, 0, 0, 1, 67, 0, 0, 29, 67, 0, 0, 2, 67, 0, 0, 29, 67, 0, 0, 3, 67, 0, 0, 29, 67, 0, 0, 4, 67, 0, 0, 29, 67, 0, 0, 5, 67, 0, 0, 29, 67, 0, 0, 6, 67, 0, 0, 29, 67, 0, 0, 7, 67, 0, 0, 29, 67, 0, 0, 8, 67, 0, 0, 29, 67, 0, 0, 9, 67, 0, 0, 29, 67, 0, 0, 10, 67, 0, 0, 29, 67, 0, 0, 11, 67, 0, 0, 29, 67, 0, 0, 12, 67, 0, 0, 29, 67, 0, 0, 13, 67, 0, 0, 29, 67, 0, 0, 14, 67, 0, 0, 29, 67, 0, 0, 15, 67, 0, 0, 29, 67, 0, 0, 16, 67, 0, 0, 29, 67, 0, 0, 17, 67, 0, 0, 29, 67, 0, 0, 18, 67, 0, 0, 29, 67, 0, 0, 19, 67, 0, 0, 29, 67, 0, 0, 20, 67, 0, 0, 29, 67, 0, 0, 21, 67, 0, 0, 29, 67, 0, 0, 22, 67, 0, 0, 29, 67, 0, 0, 23, 67, 0, 0, 29, 67, 0, 0, 24, 67, 0, 0, 29, 67, 0, 0, 25, 67, 0, 0, 29, 67, 0, 0, 26, 67, 0, 0, 29, 67, 0, 0, 27, 67, 0, 0, 29, 67, 0, 0, 28, 67, 0, 0, 29, 67, 0, 0, 29, 67, 0, 0, 29, 67, 0, 0, 30, 67, 0, 0, 29, 67, 0, 0, 31, 67, 0, 0, 29, 67, 0, 0, 32, 67, 0, 0, 29, 67, 0, 0, 33, 67, 0, 0, 29, 67, 0, 0, 34, 67, 0, 0, 29, 67, 0, 0, 35, 67, 0, 0, 29, 67, 0, 0, 36, 67, 0, 0, 29, 67, 0, 0, 37, 67, 0, 0, 29, 67, 0, 0, 38, 67, 0, 0, 29, 67, 0, 0, 39, 67, 0, 0, 29, 67, 0, 0, 40, 67, 0, 0, 29, 67, 0, 0, 41, 67, 0, 0, 29, 67, 0, 0, 42, 67, 0, 0, 29, 67, 0, 0, 43, 67, 0, 0, 29, 67, 0, 0, 44, 67, 0, 0, 29, 67, 0, 0, 45, 67, 0, 0, 29, 67, 0, 0, 46, 67, 0, 0, 29, 67, 0, 0, 47, 67, 0, 0, 29, 67, 0, 0, 48, 67, 0, 0, 29, 67, 0, 0, 49, 67, 0, 0, 29, 67, 0, 0, 50, 67, 0, 0, 29, 67, 0, 0, 51, 67, 0, 0, 29, 67, 0, 0, 52, 67, 0, 0, 29, 67, 0, 0, 53, 67, 0, 0, 29, 67, 0, 0, 54, 67, 0, 0, 29, 67, 0, 0, 55, 67, 0, 0, 30, 67, 0, 0, 184, 66, 0, 0, 30, 67, 0, 0, 186, 66, 0, 0, 30, 67, 0, 0, 188, 66, 0, 0, 30, 67, 0, 0, 190, 66, 0, 0, 30, 67, 0, 0, 192, 66, 0, 0, 30, 67, 0, 0, 194, 66, 0, 0, 30, 67, 0, 0, 196, 66, 0, 0, 30, 67, 0, 0, 198, 66, 0, 0, 30, 67, 0, 0, 200, 66, 0, 0, 30, 67, 0, 0, 202, 66, 0, 0, 30, 67, 0, 0, 204, 66, 0, 0, 30, 67, 0, 0, 206, 66, 0, 0, 30, 67, 0, 0, 208, 66, 0, 0, 30, 67, 0, 0, 210, 66, 0, 0, 30, 67, 0, 0, 212, 66, 0, 0, 30, 67, 0, 0, 214, 66, 0, 0, 30, 67, 0, 0, 216, 66, 0, 0, 30, 67, 0, 0, 218, 66, 0, 0, 30, 67, 0, 0, 220, 66, 0, 0, 30, 67, 0, 0, 222, 66, 0, 0, 30, 67, 0, 0, 224, 66, 0, 0, 30, 67, 0, 0, 226, 66, 0, 0, 30, 67, 0, 0, 228, 66, 0, 0, 30, 67, 0, 0, 230, 66, 0, 0, 30, 67, 0, 0, 232, 66, 0, 0, 30, 67, 0, 0, 234, 66, 0, 0, 30, 67, 0, 0, 236, 66, 0, 0, 30, 67, 0, 0, 238, 66, 0, 0, 30, 67, 0, 0, 240, 66, 0, 0, 30, 67, 0, 0, 242, 66, 0, 0, 30, 67, 0, 0, 244, 66, 0, 0, 30, 67, 0, 0, 246, 66, 0, 0, 30, 67, 0, 0, 248, 66, 0, 0, 30, 67, 0, 0, 250, 66, 0, 0, 30, 67, 0, 0, 252, 66, 0, 0, 30, 67, 0, 0, 254, 66, 0, 0, 30, 67, 0, 0, 0, 67, 0, 0, 30, 67, 0, 0, 1, 67, 0, 0, 30, 67, 0, 0, 2, 67, 0, 0, 30, 67, 0, 0, 3, 67, 0, 0, 30, 67, 0, 0, 4, 67, 0, 0, 30, 67, 0, 0, 5, 67, 0, 0, 30, 67, 0, 0, 6, 67, 0, 0, 30, 67, 0, 0, 7, 67, 0, 0, 30, 67, 0, 0, 8, 67, 0, 0, 30, 67, 0, 0, 9, 67, 0, 0, 30, 67, 0, 0, 10, 67, 0, 0, 30, 67, 0, 0, 11, 67, 0, 0, 30, 67, 0, 0, 12, 67, 0, 0, 30, 67, 0, 0, 13, 67, 0, 0, 30, 67, 0, 0, 14, 67, 0, 0, 30, 67, 0, 0, 15, 67, 0, 0, 30, 67, 0, 0, 16, 67, 0, 0, 30, 67, 0, 0, 17, 67, 0, 0, 30, 67, 0, 0, 18, 67, 0, 0, 30, 67, 0, 0, 19, 67, 0, 0, 30, 67, 0, 0, 20, 67, 0, 0, 30, 67, 0, 0, 21, 67, 0, 0, 30, 67, 0, 0, 22, 67, 0, 0, 30, 67, 0, 0, 23, 67, 0, 0, 30, 67, 0, 0, 24, 67, 0, 0, 30, 67, 0, 0, 25, 67, 0, 0, 30, 67, 0, 0, 26, 67, 0, 0, 30, 67, 0, 0, 27, 67, 0, 0, 30, 67, 0, 0, 28, 67, 0, 0, 30, 67, 0, 0, 29, 67, 0, 0, 30, 67, 0, 0, 30, 67, 0, 0, 30, 67, 0, 0, 31, 67, 0, 0, 30, 67, 0, 0, 32, 67, 0, 0, 30, 67, 0, 0, 33, 67, 0, 0, 30, 67, 0, 0, 34, 67, 0, 0, 30, 67, 0, 0, 35, 67, 0, 0, 30, 67, 0, 0, 36, 67, 0, 0, 30, 67, 0, 0, 37, 67, 0, 0, 30, 67, 0, 0, 38, 67, 0, 0, 30, 67, 0, 0, 39, 67, 0, 0, 30, 67, 0, 0, 40, 67, 0, 0, 30, 67, 0, 0, 41, 67, 0, 0, 30, 67, 0, 0, 42, 67, 0, 0, 30, 67, 0, 0, 43, 67, 0, 0, 30, 67, 0, 0, 44, 67, 0, 0, 30, 67, 0, 0, 45, 67, 0, 0, 30, 67, 0, 0, 46, 67, 0, 0, 30, 67, 0, 0, 47, 67, 0, 0, 30, 67, 0, 0, 48, 67, 0, 0, 30, 67, 0, 0, 49, 67, 0, 0, 30, 67, 0, 0, 50, 67, 0, 0, 30, 67, 0, 0, 51, 67, 0, 0, 30, 67, 0, 0, 52, 67, 0, 0, 30, 67, 0, 0, 53, 67, 0, 0, 30, 67, 0, 0, 54, 67, 0, 0, 30, 67, 0, 0, 55, 67, 0, 0, 31, 67, 0, 0, 184, 66, 0, 0, 31, 67, 0, 0, 186, 66, 0, 0, 31, 67, 0, 0, 188, 66, 0, 0, 31, 67, 0, 0, 190, 66, 0, 0, 31, 67, 0, 0, 192, 66, 0, 0, 31, 67, 0, 0, 194, 66, 0, 0, 31, 67, 0, 0, 196, 66, 0, 0, 31, 67, 0, 0, 198, 66, 0, 0, 31, 67, 0, 0, 200, 66, 0, 0, 31, 67, 0, 0, 202, 66, 0, 0, 31, 67, 0, 0, 204, 66, 0, 0, 31, 67, 0, 0, 206, 66, 0, 0, 31, 67, 0, 0, 208, 66, 0, 0, 31, 67, 0, 0, 210, 66, 0, 0, 31, 67, 0, 0, 212, 66, 0, 0, 31, 67, 0, 0, 214, 66, 0, 0, 31, 67, 0, 0, 216, 66, 0, 0, 31, 67, 0, 0, 218, 66, 0, 0, 31, 67, 0, 0, 220, 66, 0, 0, 31, 67, 0, 0, 222, 66, 0, 0, 31, 67, 0, 0, 224, 66, 0, 0, 31, 67, 0, 0, 226, 66, 0, 0, 31, 67, 0, 0, 228, 66, 0, 0, 31, 67, 0, 0, 230, 66, 0, 0, 31, 67, 0, 0, 232, 66, 0, 0, 31, 67, 0, 0, 234, 66, 0, 0, 31, 67, 0, 0, 236, 66, 0, 0, 31, 67, 0, 0, 238, 66, 0, 0, 31, 67, 0, 0, 240, 66, 0, 0, 31, 67, 0, 0, 242, 66, 0, 0, 31, 67, 0, 0, 244, 66, 0, 0, 31, 67, 0, 0, 246, 66, 0, 0, 31, 67, 0, 0, 248, 66, 0, 0, 31, 67, 0, 0, 250, 66, 0, 0, 31, 67, 0, 0, 252, 66, 0, 0, 31, 67, 0, 0, 254, 66, 0, 0, 31, 67, 0, 0, 0, 67, 0, 0, 31, 67, 0, 0, 1, 67, 0, 0, 31, 67, 0, 0, 2, 67, 0, 0, 31, 67, 0, 0, 3, 67, 0, 0, 31, 67, 0, 0, 4, 67, 0, 0, 31, 67, 0, 0, 5, 67, 0, 0, 31, 67, 0, 0, 6, 67, 0, 0, 31, 67, 0, 0, 7, 67, 0, 0, 31, 67, 0, 0, 8, 67, 0, 0, 31, 67, 0, 0, 9, 67, 0, 0, 31, 67, 0, 0, 10, 67, 0, 0, 31, 67, 0, 0, 11, 67, 0, 0, 31, 67, 0, 0, 12, 67, 0, 0, 31, 67, 0, 0, 13, 67, 0, 0, 31, 67, 0, 0, 14, 67, 0, 0, 31, 67, 0, 0, 15, 67, 0, 0, 31, 67, 0, 0, 16, 67, 0, 0, 31, 67, 0, 0, 17, 67, 0, 0, 31, 67, 0, 0, 18, 67, 0, 0, 31, 67, 0, 0, 19, 67, 0, 0, 31, 67, 0, 0, 20, 67, 0, 0, 31, 67, 0, 0, 21, 67, 0, 0, 31, 67, 0, 0, 22, 67, 0, 0, 31, 67, 0, 0, 23, 67, 0, 0, 31, 67, 0, 0, 24, 67, 0, 0, 31, 67, 0, 0, 25, 67, 0, 0, 31, 67, 0, 0, 26, 67, 0, 0, 31, 67, 0, 0, 27, 67, 0, 0, 31, 67, 0, 0, 28, 67, 0, 0, 31, 67, 0, 0, 29, 67, 0, 0, 31, 67, 0, 0, 30, 67, 0, 0, 31, 67, 0, 0, 31, 67, 0, 0, 31, 67, 0, 0, 32, 67, 0, 0, 31, 67, 0, 0, 33, 67, 0, 0, 31, 67, 0, 0, 34, 67, 0, 0, 31, 67, 0, 0, 35, 67, 0, 0, 31, 67, 0, 0, 36, 67, 0, 0, 31, 67, 0, 0, 37, 67, 0, 0, 31, 67, 0, 0, 38, 67, 0, 0, 31, 67, 0, 0, 39, 67, 0, 0, 31, 67, 0, 0, 40, 67, 0, 0, 31, 67, 0, 0, 41, 67, 0, 0, 31, 67, 0, 0, 42, 67, 0, 0, 31, 67, 0, 0, 43, 67, 0, 0, 31, 67, 0, 0, 44, 67, 0, 0, 31, 67, 0, 0, 45, 67, 0, 0, 31, 67, 0, 0, 46, 67, 0, 0, 31, 67, 0, 0, 47, 67, 0, 0, 31, 67, 0, 0, 48, 67, 0, 0, 31, 67, 0, 0, 49, 67, 0, 0, 31, 67, 0, 0, 50, 67, 0, 0, 31, 67, 0, 0, 51, 67, 0, 0, 31, 67, 0, 0, 52, 67, 0, 0, 31, 67, 0, 0, 53, 67, 0, 0, 31, 67, 0, 0, 54, 67, 0, 0, 31, 67, 0, 0, 55, 67, 0, 0, 32, 67, 0, 0, 184, 66, 0, 0, 32, 67, 0, 0, 186, 66, 0, 0, 32, 67, 0, 0, 188, 66, 0, 0, 32, 67, 0, 0, 190, 66, 0, 0, 32, 67, 0, 0, 192, 66, 0, 0, 32, 67, 0, 0, 194, 66, 0, 0, 32, 67, 0, 0, 196, 66, 0, 0, 32, 67, 0, 0, 198, 66, 0, 0, 32, 67, 0, 0, 200, 66, 0, 0, 32, 67, 0, 0, 202, 66, 0, 0, 32, 67, 0, 0, 204, 66, 0, 0, 32, 67, 0, 0, 206, 66, 0, 0, 32, 67, 0, 0, 208, 66, 0, 0, 32, 67, 0, 0, 210, 66, 0, 0, 32, 67, 0, 0, 212, 66, 0, 0, 32, 67, 0, 0, 214, 66, 0, 0, 32, 67, 0, 0, 216, 66, 0, 0, 32, 67, 0, 0, 218, 66, 0, 0, 32, 67, 0, 0, 220, 66, 0, 0, 32, 67, 0, 0, 222, 66, 0, 0, 32, 67, 0, 0, 224, 66, 0, 0, 32, 67, 0, 0, 226, 66, 0, 0, 32, 67, 0, 0, 228, 66, 0, 0, 32, 67, 0, 0, 230, 66, 0, 0, 32, 67, 0, 0, 232, 66, 0, 0, 32, 67, 0, 0, 234, 66, 0, 0, 32, 67, 0, 0, 236, 66, 0, 0, 32, 67, 0, 0, 238, 66, 0, 0, 32, 67, 0, 0, 240, 66, 0, 0, 32, 67, 0, 0, 242, 66, 0, 0, 32, 67, 0, 0, 244, 66, 0, 0, 32, 67, 0, 0, 246, 66, 0, 0, 32, 67, 0, 0, 248, 66, 0, 0, 32, 67, 0, 0, 250, 66, 0, 0, 32, 67, 0, 0, 252, 66, 0, 0, 32, 67, 0, 0, 254, 66, 0, 0, 32, 67, 0, 0, 0, 67, 0, 0, 32, 67, 0, 0, 1, 67, 0, 0, 32, 67, 0, 0, 2, 67, 0, 0, 32, 67, 0, 0, 3, 67, 0, 0, 32, 67, 0, 0, 4, 67, 0, 0, 32, 67, 0, 0, 5, 67, 0, 0, 32, 67, 0, 0, 6, 67, 0, 0, 32, 67, 0, 0, 7, 67, 0, 0, 32, 67, 0, 0, 8, 67, 0, 0, 32, 67, 0, 0, 9, 67, 0, 0, 32, 67, 0, 0, 10, 67, 0, 0, 32, 67, 0, 0, 11, 67, 0, 0, 32, 67, 0, 0, 12, 67, 0, 0, 32, 67, 0, 0, 13, 67, 0, 0, 32, 67, 0, 0, 14, 67, 0, 0, 32, 67, 0, 0, 15, 67, 0, 0, 32, 67, 0, 0, 16, 67, 0, 0, 32, 67, 0, 0, 17, 67, 0, 0, 32, 67, 0, 0, 18, 67, 0, 0, 32, 67, 0, 0, 19, 67, 0, 0, 32, 67, 0, 0, 20, 67, 0, 0, 32, 67, 0, 0, 21, 67, 0, 0, 32, 67, 0, 0, 22, 67, 0, 0, 32, 67, 0, 0, 23, 67, 0, 0, 32, 67, 0, 0, 24, 67, 0, 0, 32, 67, 0, 0, 25, 67, 0, 0, 32, 67, 0, 0, 26, 67, 0, 0, 32, 67, 0, 0, 27, 67, 0, 0, 32, 67, 0, 0, 28, 67, 0, 0, 32, 67, 0, 0, 29, 67, 0, 0, 32, 67, 0, 0, 30, 67, 0, 0, 32, 67, 0, 0, 31, 67, 0, 0, 32, 67, 0, 0, 32, 67, 0, 0, 32, 67, 0, 0, 33, 67, 0, 0, 32, 67, 0, 0, 34, 67, 0, 0, 32, 67, 0, 0, 35, 67, 0, 0, 32, 67, 0, 0, 36, 67, 0, 0, 32, 67, 0, 0, 37, 67, 0, 0, 32, 67, 0, 0, 38, 67, 0, 0, 32, 67, 0, 0, 39, 67, 0, 0, 32, 67, 0, 0, 40, 67, 0, 0, 32, 67, 0, 0, 41, 67, 0, 0, 32, 67, 0, 0, 42, 67, 0, 0, 32, 67, 0, 0, 43, 67, 0, 0, 32, 67, 0, 0, 44, 67, 0, 0, 32, 67, 0, 0, 45, 67, 0, 0, 32, 67, 0, 0, 46, 67, 0, 0, 32, 67, 0, 0, 47, 67, 0, 0, 32, 67, 0, 0, 48, 67, 0, 0, 32, 67, 0, 0, 49, 67, 0, 0, 32, 67, 0, 0, 50, 67, 0, 0, 32, 67, 0, 0, 51, 67, 0, 0, 32, 67, 0, 0, 52, 67, 0, 0, 32, 67, 0, 0, 53, 67, 0, 0, 32, 67, 0, 0, 54, 67, 0, 0, 32, 67, 0, 0, 55, 67, 0, 0, 33, 67, 0, 0, 184, 66, 0, 0, 33, 67, 0, 0, 186, 66, 0, 0, 33, 67, 0, 0, 188, 66, 0, 0, 33, 67, 0, 0, 190, 66, 0, 0, 33, 67, 0, 0, 192, 66, 0, 0, 33, 67, 0, 0, 194, 66, 0, 0, 33, 67, 0, 0, 196, 66, 0, 0, 33, 67, 0, 0, 198, 66, 0, 0, 33, 67, 0, 0, 200, 66, 0, 0, 33, 67, 0, 0, 202, 66, 0, 0, 33, 67, 0, 0, 204, 66, 0, 0, 33, 67, 0, 0, 206, 66, 0, 0, 33, 67, 0, 0, 208, 66, 0, 0, 33, 67, 0, 0, 210, 66, 0, 0, 33, 67, 0, 0, 212, 66, 0, 0, 33, 67, 0, 0, 214, 66, 0, 0, 33, 67, 0, 0, 216, 66, 0, 0, 33, 67, 0, 0, 218, 66, 0, 0, 33, 67, 0, 0, 220, 66, 0, 0, 33, 67, 0, 0, 222, 66, 0, 0, 33, 67, 0, 0, 224, 66, 0, 0, 33, 67, 0, 0, 226, 66, 0, 0, 33, 67, 0, 0, 228, 66, 0, 0, 33, 67, 0, 0, 230, 66, 0, 0, 33, 67, 0, 0, 232, 66, 0, 0, 33, 67, 0, 0, 234, 66, 0, 0, 33, 67, 0, 0, 236, 66, 0, 0, 33, 67, 0, 0, 238, 66, 0, 0, 33, 67, 0, 0, 240, 66, 0, 0, 33, 67, 0, 0, 242, 66, 0, 0, 33, 67, 0, 0, 244, 66, 0, 0, 33, 67, 0, 0, 246, 66, 0, 0, 33, 67, 0, 0, 248, 66, 0, 0, 33, 67, 0, 0, 250, 66, 0, 0, 33, 67, 0, 0, 252, 66, 0, 0, 33, 67, 0, 0, 254, 66, 0, 0, 33, 67, 0, 0, 0, 67, 0, 0, 33, 67, 0, 0, 1, 67, 0, 0, 33, 67, 0, 0, 2, 67, 0, 0, 33, 67, 0, 0, 3, 67, 0, 0, 33, 67, 0, 0, 4, 67, 0, 0, 33, 67, 0, 0, 5, 67, 0, 0, 33, 67, 0, 0, 6, 67, 0, 0, 33, 67, 0, 0, 7, 67, 0, 0, 33, 67, 0, 0, 8, 67, 0, 0, 33, 67, 0, 0, 9, 67, 0, 0, 33, 67, 0, 0, 10, 67, 0, 0, 33, 67, 0, 0, 11, 67, 0, 0, 33, 67, 0, 0, 12, 67, 0, 0, 33, 67, 0, 0, 13, 67, 0, 0, 33, 67, 0, 0, 14, 67, 0, 0, 33, 67, 0, 0, 15, 67, 0, 0, 33, 67, 0, 0, 16, 67, 0, 0, 33, 67, 0, 0, 17, 67, 0, 0, 33, 67, 0, 0, 18, 67, 0, 0, 33, 67, 0, 0, 19, 67, 0, 0, 33, 67, 0, 0, 20, 67, 0, 0, 33, 67, 0, 0, 21, 67, 0, 0, 33, 67, 0, 0, 22, 67, 0, 0, 33, 67, 0, 0, 23, 67, 0, 0, 33, 67, 0, 0, 24, 67, 0, 0, 33, 67, 0, 0, 25, 67, 0, 0, 33, 67, 0, 0, 26, 67, 0, 0, 33, 67, 0, 0, 27, 67, 0, 0, 33, 67, 0, 0, 28, 67, 0, 0, 33, 67, 0, 0, 29, 67, 0, 0, 33, 67, 0, 0, 30, 67, 0, 0, 33, 67, 0, 0, 31, 67, 0, 0, 33, 67, 0, 0, 32, 67, 0, 0, 33, 67, 0, 0, 33, 67, 0, 0, 33, 67, 0, 0, 34, 67, 0, 0, 33, 67, 0, 0, 35, 67, 0, 0, 33, 67, 0, 0, 36, 67, 0, 0, 33, 67, 0, 0, 37, 67, 0, 0, 33, 67, 0, 0, 38, 67, 0, 0, 33, 67, 0, 0, 39, 67, 0, 0, 33, 67, 0, 0, 40, 67, 0, 0, 33, 67, 0, 0, 41, 67, 0, 0, 33, 67, 0, 0, 42, 67, 0, 0, 33, 67, 0, 0, 43, 67, 0, 0, 33, 67, 0, 0, 44, 67, 0, 0, 33, 67, 0, 0, 45, 67, 0, 0, 33, 67, 0, 0, 46, 67, 0, 0, 33, 67, 0, 0, 47, 67, 0, 0, 33, 67, 0, 0, 48, 67, 0, 0, 33, 67, 0, 0, 49, 67, 0, 0, 33, 67, 0, 0, 50, 67, 0, 0, 33, 67, 0, 0, 51, 67, 0, 0, 33, 67, 0, 0, 52, 67, 0, 0, 33, 67, 0, 0, 53, 67, 0, 0, 33, 67, 0, 0, 54, 67, 0, 0, 33, 67, 0, 0, 55, 67, 0, 0, 34, 67, 0, 0, 184, 66, 0, 0, 34, 67, 0, 0, 186, 66, 0, 0, 34, 67, 0, 0, 188, 66, 0, 0, 34, 67, 0, 0, 190, 66, 0, 0, 34, 67, 0, 0, 192, 66, 0, 0, 34, 67, 0, 0, 194, 66, 0, 0, 34, 67, 0, 0, 196, 66, 0, 0, 34, 67, 0, 0, 198, 66, 0, 0, 34, 67, 0, 0, 200, 66, 0, 0, 34, 67, 0, 0, 202, 66, 0, 0, 34, 67, 0, 0, 204, 66, 0, 0, 34, 67, 0, 0, 206, 66, 0, 0, 34, 67, 0, 0, 208, 66, 0, 0, 34, 67, 0, 0, 210, 66, 0, 0, 34, 67, 0, 0, 212, 66, 0, 0, 34, 67, 0, 0, 214, 66, 0, 0, 34, 67, 0, 0, 216, 66, 0, 0, 34, 67, 0, 0, 218, 66, 0, 0, 34, 67, 0, 0, 220, 66, 0, 0, 34, 67, 0, 0, 222, 66, 0, 0, 34, 67, 0, 0, 224, 66, 0, 0, 34, 67, 0, 0, 226, 66, 0, 0, 34, 67, 0, 0, 228, 66, 0, 0, 34, 67, 0, 0, 230, 66, 0, 0, 34, 67, 0, 0, 232, 66, 0, 0, 34, 67, 0, 0, 234, 66, 0, 0, 34, 67, 0, 0, 236, 66, 0, 0, 34, 67, 0, 0, 238, 66, 0, 0, 34, 67, 0, 0, 240, 66, 0, 0, 34, 67, 0, 0, 242, 66, 0, 0, 34, 67, 0, 0, 244, 66, 0, 0, 34, 67, 0, 0, 246, 66, 0, 0, 34, 67, 0, 0, 248, 66, 0, 0, 34, 67, 0, 0, 250, 66, 0, 0, 34, 67, 0, 0, 252, 66, 0, 0, 34, 67, 0, 0, 254, 66, 0, 0, 34, 67, 0, 0, 0, 67, 0, 0, 34, 67, 0, 0, 1, 67, 0, 0, 34, 67, 0, 0, 2, 67, 0, 0, 34, 67, 0, 0, 3, 67, 0, 0, 34, 67, 0, 0, 4, 67, 0, 0, 34, 67, 0, 0, 5, 67, 0, 0, 34, 67, 0, 0, 6, 67, 0, 0, 34, 67, 0, 0, 7, 67, 0, 0, 34, 67, 0, 0, 8, 67, 0, 0, 34, 67, 0, 0, 9, 67, 0, 0, 34, 67, 0, 0, 10, 67, 0, 0, 34, 67, 0, 0, 11, 67, 0, 0, 34, 67, 0, 0, 12, 67, 0, 0, 34, 67, 0, 0, 13, 67, 0, 0, 34, 67, 0, 0, 14, 67, 0, 0, 34, 67, 0, 0, 15, 67, 0, 0, 34, 67, 0, 0, 16, 67, 0, 0, 34, 67, 0, 0, 17, 67, 0, 0, 34, 67, 0, 0, 18, 67, 0, 0, 34, 67, 0, 0, 19, 67, 0, 0, 34, 67, 0, 0, 20, 67, 0, 0, 34, 67, 0, 0, 21, 67, 0, 0, 34, 67, 0, 0, 22, 67, 0, 0, 34, 67, 0, 0, 23, 67, 0, 0, 34, 67, 0, 0, 24, 67, 0, 0, 34, 67, 0, 0, 25, 67, 0, 0, 34, 67, 0, 0, 26, 67, 0, 0, 34, 67, 0, 0, 27, 67, 0, 0, 34, 67, 0, 0, 28, 67, 0, 0, 34, 67, 0, 0, 29, 67, 0, 0, 34, 67, 0, 0, 30, 67, 0, 0, 34, 67, 0, 0, 31, 67, 0, 0, 34, 67, 0, 0, 32, 67, 0, 0, 34, 67, 0, 0, 33, 67, 0, 0, 34, 67, 0, 0, 34, 67, 0, 0, 34, 67, 0, 0, 35, 67, 0, 0, 34, 67, 0, 0, 36, 67, 0, 0, 34, 67, 0, 0, 37, 67, 0, 0, 34, 67, 0, 0, 38, 67, 0, 0, 34, 67, 0, 0, 39, 67, 0, 0, 34, 67, 0, 0, 40, 67, 0, 0, 34, 67, 0, 0, 41, 67, 0, 0, 34, 67, 0, 0, 42, 67, 0, 0, 34, 67, 0, 0, 43, 67, 0, 0, 34, 67, 0, 0, 44, 67, 0, 0, 34, 67, 0, 0, 45, 67, 0, 0, 34, 67, 0, 0, 46, 67, 0, 0, 34, 67, 0, 0, 47, 67, 0, 0, 34, 67, 0, 0, 48, 67, 0, 0, 34, 67, 0, 0, 49, 67, 0, 0, 34, 67, 0, 0, 50, 67, 0, 0, 34, 67, 0, 0, 51, 67, 0, 0, 34, 67, 0, 0, 52, 67, 0, 0, 34, 67, 0, 0, 53, 67, 0, 0, 34, 67, 0, 0, 54, 67, 0, 0, 34, 67, 0, 0, 55, 67, 0, 0, 35, 67, 0, 0, 184, 66, 0, 0, 35, 67, 0, 0, 186, 66, 0, 0, 35, 67, 0, 0, 188, 66, 0, 0, 35, 67, 0, 0, 190, 66, 0, 0, 35, 67, 0, 0, 192, 66, 0, 0, 35, 67, 0, 0, 194, 66, 0, 0, 35, 67, 0, 0, 196, 66, 0, 0, 35, 67, 0, 0, 198, 66, 0, 0, 35, 67, 0, 0, 200, 66, 0, 0, 35, 67, 0, 0, 202, 66, 0, 0, 35, 67, 0, 0, 204, 66, 0, 0, 35, 67, 0, 0, 206, 66, 0, 0, 35, 67, 0, 0, 208, 66, 0, 0, 35, 67, 0, 0, 210, 66, 0, 0, 35, 67, 0, 0, 212, 66, 0, 0, 35, 67, 0, 0, 214, 66, 0, 0, 35, 67, 0, 0, 216, 66, 0, 0, 35, 67, 0, 0, 218, 66, 0, 0, 35, 67, 0, 0, 220, 66, 0, 0, 35, 67, 0, 0, 222, 66, 0, 0, 35, 67, 0, 0, 224, 66, 0, 0, 35, 67, 0, 0, 226, 66, 0, 0, 35, 67, 0, 0, 228, 66, 0, 0, 35, 67, 0, 0, 230, 66, 0, 0, 35, 67, 0, 0, 232, 66, 0, 0, 35, 67, 0, 0, 234, 66, 0, 0, 35, 67, 0, 0, 236, 66, 0, 0, 35, 67, 0, 0, 238, 66, 0, 0, 35, 67, 0, 0, 240, 66, 0, 0, 35, 67, 0, 0, 242, 66, 0, 0, 35, 67, 0, 0, 244, 66, 0, 0, 35, 67, 0, 0, 246, 66, 0, 0, 35, 67, 0, 0, 248, 66, 0, 0, 35, 67, 0, 0, 250, 66, 0, 0, 35, 67, 0, 0, 252, 66, 0, 0, 35, 67, 0, 0, 254, 66, 0, 0, 35, 67, 0, 0, 0, 67, 0, 0, 35, 67, 0, 0, 1, 67, 0, 0, 35, 67, 0, 0, 2, 67, 0, 0, 35, 67, 0, 0, 3, 67, 0, 0, 35, 67, 0, 0, 4, 67, 0, 0, 35, 67, 0, 0, 5, 67, 0, 0, 35, 67, 0, 0, 6, 67, 0, 0, 35, 67, 0, 0, 7, 67, 0, 0, 35, 67, 0, 0, 8, 67, 0, 0, 35, 67, 0, 0, 9, 67, 0, 0, 35, 67, 0, 0, 10, 67, 0, 0, 35, 67, 0, 0, 11, 67, 0, 0, 35, 67, 0, 0, 12, 67, 0, 0, 35, 67, 0, 0, 13, 67, 0, 0, 35, 67, 0, 0, 14, 67, 0, 0, 35, 67, 0, 0, 15, 67, 0, 0, 35, 67, 0, 0, 16, 67, 0, 0, 35, 67, 0, 0, 17, 67, 0, 0, 35, 67, 0, 0, 18, 67, 0, 0, 35, 67, 0, 0, 19, 67, 0, 0, 35, 67, 0, 0, 20, 67, 0, 0, 35, 67, 0, 0, 21, 67, 0, 0, 35, 67, 0, 0, 22, 67, 0, 0, 35, 67, 0, 0, 23, 67, 0, 0, 35, 67, 0, 0, 24, 67, 0, 0, 35, 67, 0, 0, 25, 67, 0, 0, 35, 67, 0, 0, 26, 67, 0, 0, 35, 67, 0, 0, 27, 67, 0, 0, 35, 67, 0, 0, 28, 67, 0, 0, 35, 67, 0, 0, 29, 67, 0, 0, 35, 67, 0, 0, 30, 67, 0, 0, 35, 67, 0, 0, 31, 67, 0, 0, 35, 67, 0, 0, 32, 67, 0, 0, 35, 67, 0, 0, 33, 67, 0, 0, 35, 67, 0, 0, 34, 67, 0, 0, 35, 67, 0, 0, 35, 67, 0, 0, 35, 67, 0, 0, 36, 67, 0, 0, 35, 67, 0, 0, 37, 67, 0, 0, 35, 67, 0, 0, 38, 67, 0, 0, 35, 67, 0, 0, 39, 67, 0, 0, 35, 67, 0, 0, 40, 67, 0, 0, 35, 67, 0, 0, 41, 67, 0, 0, 35, 67, 0, 0, 42, 67, 0, 0, 35, 67, 0, 0, 43, 67, 0, 0, 35, 67, 0, 0, 44, 67, 0, 0, 35, 67, 0, 0, 45, 67, 0, 0, 35, 67, 0, 0, 46, 67, 0, 0, 35, 67, 0, 0, 47, 67, 0, 0, 35, 67, 0, 0, 48, 67, 0, 0, 35, 67, 0, 0, 49, 67, 0, 0, 35, 67, 0, 0, 50, 67, 0, 0, 35, 67, 0, 0, 51, 67, 0, 0, 35, 67, 0, 0, 52, 67, 0, 0, 35, 67, 0, 0, 53, 67, 0, 0, 35, 67, 0, 0, 54, 67, 0, 0, 35, 67, 0, 0, 55, 67, 0, 0, 36, 67, 0, 0, 184, 66, 0, 0, 36, 67, 0, 0, 186, 66, 0, 0, 36, 67, 0, 0, 188, 66, 0, 0, 36, 67, 0, 0, 190, 66, 0, 0, 36, 67, 0, 0, 192, 66, 0, 0, 36, 67, 0, 0, 194, 66, 0, 0, 36, 67, 0, 0, 196, 66, 0, 0, 36, 67, 0, 0, 198, 66, 0, 0, 36, 67, 0, 0, 200, 66, 0, 0, 36, 67, 0, 0, 202, 66, 0, 0, 36, 67, 0, 0, 204, 66, 0, 0, 36, 67, 0, 0, 206, 66, 0, 0, 36, 67, 0, 0, 208, 66, 0, 0, 36, 67, 0, 0, 210, 66, 0, 0, 36, 67, 0, 0, 212, 66, 0, 0, 36, 67, 0, 0, 214, 66, 0, 0, 36, 67, 0, 0, 216, 66, 0, 0, 36, 67, 0, 0, 218, 66, 0, 0, 36, 67, 0, 0, 220, 66, 0, 0, 36, 67, 0, 0, 222, 66, 0, 0, 36, 67, 0, 0, 224, 66, 0, 0, 36, 67, 0, 0, 226, 66, 0, 0, 36, 67, 0, 0, 228, 66, 0, 0, 36, 67, 0, 0, 230, 66, 0, 0, 36, 67, 0, 0, 232, 66, 0, 0, 36, 67, 0, 0, 234, 66, 0, 0, 36, 67, 0, 0, 236, 66, 0, 0, 36, 67, 0, 0, 238, 66, 0, 0, 36, 67, 0, 0, 240, 66, 0, 0, 36, 67, 0, 0, 242, 66, 0, 0, 36, 67, 0, 0, 244, 66, 0, 0, 36, 67, 0, 0, 246, 66, 0, 0, 36, 67, 0, 0, 248, 66, 0, 0, 36, 67, 0, 0, 250, 66, 0, 0, 36, 67, 0, 0, 252, 66, 0, 0, 36, 67, 0, 0, 254, 66, 0, 0, 36, 67, 0, 0, 0, 67, 0, 0, 36, 67, 0, 0, 1, 67, 0, 0, 36, 67, 0, 0, 2, 67, 0, 0, 36, 67, 0, 0, 3, 67, 0, 0, 36, 67, 0, 0, 4, 67, 0, 0, 36, 67, 0, 0, 5, 67, 0, 0, 36, 67, 0, 0, 6, 67, 0, 0, 36, 67, 0, 0, 7, 67, 0, 0, 36, 67, 0, 0, 8, 67, 0, 0, 36, 67, 0, 0, 9, 67, 0, 0, 36, 67, 0, 0, 10, 67, 0, 0, 36, 67, 0, 0, 11, 67, 0, 0, 36, 67, 0, 0, 12, 67, 0, 0, 36, 67, 0, 0, 13, 67, 0, 0, 36, 67, 0, 0, 14, 67, 0, 0, 36, 67, 0, 0, 15, 67, 0, 0, 36, 67, 0, 0, 16, 67, 0, 0, 36, 67, 0, 0, 17, 67, 0, 0, 36, 67, 0, 0, 18, 67, 0, 0, 36, 67, 0, 0, 19, 67, 0, 0, 36, 67, 0, 0, 20, 67, 0, 0, 36, 67, 0, 0, 21, 67, 0, 0, 36, 67, 0, 0, 22, 67, 0, 0, 36, 67, 0, 0, 23, 67, 0, 0, 36, 67, 0, 0, 24, 67, 0, 0, 36, 67, 0, 0, 25, 67, 0, 0, 36, 67, 0, 0, 26, 67, 0, 0, 36, 67, 0, 0, 27, 67, 0, 0, 36, 67, 0, 0, 28, 67, 0, 0, 36, 67, 0, 0, 29, 67, 0, 0, 36, 67, 0, 0, 30, 67, 0, 0, 36, 67, 0, 0, 31, 67, 0, 0, 36, 67, 0, 0, 32, 67, 0, 0, 36, 67, 0, 0, 33, 67, 0, 0, 36, 67, 0, 0, 34, 67, 0, 0, 36, 67, 0, 0, 35, 67, 0, 0, 36, 67, 0, 0, 36, 67, 0, 0, 36, 67, 0, 0, 37, 67, 0, 0, 36, 67, 0, 0, 38, 67, 0, 0, 36, 67, 0, 0, 39, 67, 0, 0, 36, 67, 0, 0, 40, 67, 0, 0, 36, 67, 0, 0, 41, 67, 0, 0, 36, 67, 0, 0, 42, 67, 0, 0, 36, 67, 0, 0, 43, 67, 0, 0, 36, 67, 0, 0, 44, 67, 0, 0, 36, 67, 0, 0, 45, 67, 0, 0, 36, 67, 0, 0, 46, 67, 0, 0, 36, 67, 0, 0, 47, 67, 0, 0, 36, 67, 0, 0, 48, 67, 0, 0, 36, 67, 0, 0, 49, 67, 0, 0, 36, 67, 0, 0, 50, 67, 0, 0, 36, 67, 0, 0, 51, 67, 0, 0, 36, 67, 0, 0, 52, 67, 0, 0, 36, 67, 0, 0, 53, 67, 0, 0, 36, 67, 0, 0, 54, 67, 0, 0, 36, 67, 0, 0, 55, 67, 0, 0, 37, 67, 0, 0, 184, 66, 0, 0, 37, 67, 0, 0, 186, 66, 0, 0, 37, 67, 0, 0, 188, 66, 0, 0, 37, 67, 0, 0, 190, 66, 0, 0, 37, 67, 0, 0, 192, 66, 0, 0, 37, 67, 0, 0, 194, 66, 0, 0, 37, 67, 0, 0, 196, 66, 0, 0, 37, 67, 0, 0, 198, 66, 0, 0, 37, 67, 0, 0, 200, 66, 0, 0, 37, 67, 0, 0, 202, 66, 0, 0, 37, 67, 0, 0, 204, 66, 0, 0, 37, 67, 0, 0, 206, 66, 0, 0, 37, 67, 0, 0, 208, 66, 0, 0, 37, 67, 0, 0, 210, 66, 0, 0, 37, 67, 0, 0, 212, 66, 0, 0, 37, 67, 0, 0, 214, 66, 0, 0, 37, 67, 0, 0, 216, 66, 0, 0, 37, 67, 0, 0, 218, 66, 0, 0, 37, 67, 0, 0, 220, 66, 0, 0, 37, 67, 0, 0, 222, 66, 0, 0, 37, 67, 0, 0, 224, 66, 0, 0, 37, 67, 0, 0, 226, 66, 0, 0, 37, 67, 0, 0, 228, 66, 0, 0, 37, 67, 0, 0, 230, 66, 0, 0, 37, 67, 0, 0, 232, 66, 0, 0, 37, 67, 0, 0, 234, 66, 0, 0, 37, 67, 0, 0, 236, 66, 0, 0, 37, 67, 0, 0, 238, 66, 0, 0, 37, 67, 0, 0, 240, 66, 0, 0, 37, 67, 0, 0, 242, 66, 0, 0, 37, 67, 0, 0, 244, 66, 0, 0, 37, 67, 0, 0, 246, 66, 0, 0, 37, 67, 0, 0, 248, 66, 0, 0, 37, 67, 0, 0, 250, 66, 0, 0, 37, 67, 0, 0, 252, 66, 0, 0, 37, 67, 0, 0, 254, 66, 0, 0, 37, 67, 0, 0, 0, 67, 0, 0, 37, 67, 0, 0, 1, 67, 0, 0, 37, 67, 0, 0, 2, 67, 0, 0, 37, 67, 0, 0, 3, 67, 0, 0, 37, 67, 0, 0, 4, 67, 0, 0, 37, 67, 0, 0, 5, 67, 0, 0, 37, 67, 0, 0, 6, 67, 0, 0, 37, 67, 0, 0, 7, 67, 0, 0, 37, 67, 0, 0, 8, 67, 0, 0, 37, 67, 0, 0, 9, 67, 0, 0, 37, 67, 0, 0, 10, 67, 0, 0, 37, 67, 0, 0, 11, 67, 0, 0, 37, 67, 0, 0, 12, 67, 0, 0, 37, 67, 0, 0, 13, 67, 0, 0, 37, 67, 0, 0, 14, 67, 0, 0, 37, 67, 0, 0, 15, 67, 0, 0, 37, 67, 0, 0, 16, 67, 0, 0, 37, 67, 0, 0, 17, 67, 0, 0, 37, 67, 0, 0, 18, 67, 0, 0, 37, 67, 0, 0, 19, 67, 0, 0, 37, 67, 0, 0, 20, 67, 0, 0, 37, 67, 0, 0, 21, 67, 0, 0, 37, 67, 0, 0, 22, 67, 0, 0, 37, 67, 0, 0, 23, 67, 0, 0, 37, 67, 0, 0, 24, 67, 0, 0, 37, 67, 0, 0, 25, 67, 0, 0, 37, 67, 0, 0, 26, 67, 0, 0, 37, 67, 0, 0, 27, 67, 0, 0, 37, 67, 0, 0, 28, 67, 0, 0, 37, 67, 0, 0, 29, 67, 0, 0, 37, 67, 0, 0, 30, 67, 0, 0, 37, 67, 0, 0, 31, 67, 0, 0, 37, 67, 0, 0, 32, 67, 0, 0, 37, 67, 0, 0, 33, 67, 0, 0, 37, 67, 0, 0, 34, 67, 0, 0, 37, 67, 0, 0, 35, 67, 0, 0, 37, 67, 0, 0, 36, 67, 0, 0, 37, 67, 0, 0, 37, 67, 0, 0, 37, 67, 0, 0, 38, 67, 0, 0, 37, 67, 0, 0, 39, 67, 0, 0, 37, 67, 0, 0, 40, 67, 0, 0, 37, 67, 0, 0, 41, 67, 0, 0, 37, 67, 0, 0, 42, 67, 0, 0, 37, 67, 0, 0, 43, 67, 0, 0, 37, 67, 0, 0, 44, 67, 0, 0, 37, 67, 0, 0, 45, 67, 0, 0, 37, 67, 0, 0, 46, 67, 0, 0, 37, 67, 0, 0, 47, 67, 0, 0, 37, 67, 0, 0, 48, 67, 0, 0, 37, 67, 0, 0, 49, 67, 0, 0, 37, 67, 0, 0, 50, 67, 0, 0, 37, 67, 0, 0, 51, 67, 0, 0, 37, 67, 0, 0, 52, 67, 0, 0, 37, 67, 0, 0, 53, 67, 0, 0, 37, 67, 0, 0, 54, 67, 0, 0, 37, 67, 0, 0, 55, 67, 0, 0, 38, 67, 0, 0, 184, 66, 0, 0, 38, 67, 0, 0, 186, 66, 0, 0, 38, 67, 0, 0, 188, 66, 0, 0, 38, 67, 0, 0, 190, 66, 0, 0, 38, 67, 0, 0, 192, 66, 0, 0, 38, 67, 0, 0, 194, 66, 0, 0, 38, 67, 0, 0, 196, 66, 0, 0, 38, 67, 0, 0, 198, 66, 0, 0, 38, 67, 0, 0, 200, 66, 0, 0, 38, 67, 0, 0, 202, 66, 0, 0, 38, 67, 0, 0, 204, 66, 0, 0, 38, 67, 0, 0, 206, 66, 0, 0, 38, 67, 0, 0, 208, 66, 0, 0, 38, 67, 0, 0, 210, 66, 0, 0, 38, 67, 0, 0, 212, 66, 0, 0, 38, 67, 0, 0, 214, 66, 0, 0, 38, 67, 0, 0, 216, 66, 0, 0, 38, 67, 0, 0, 218, 66, 0, 0, 38, 67, 0, 0, 220, 66, 0, 0, 38, 67, 0, 0, 222, 66, 0, 0, 38, 67, 0, 0, 224, 66, 0, 0, 38, 67, 0, 0, 226, 66, 0, 0, 38, 67, 0, 0, 228, 66, 0, 0, 38, 67, 0, 0, 230, 66, 0, 0, 38, 67, 0, 0, 232, 66, 0, 0, 38, 67, 0, 0, 234, 66, 0, 0, 38, 67, 0, 0, 236, 66, 0, 0, 38, 67, 0, 0, 238, 66, 0, 0, 38, 67, 0, 0, 240, 66, 0, 0, 38, 67, 0, 0, 242, 66, 0, 0, 38, 67, 0, 0, 244, 66, 0, 0, 38, 67, 0, 0, 246, 66, 0, 0, 38, 67, 0, 0, 248, 66, 0, 0, 38, 67, 0, 0, 250, 66, 0, 0, 38, 67, 0, 0, 252, 66, 0, 0, 38, 67, 0, 0, 254, 66, 0, 0, 38, 67, 0, 0, 0, 67, 0, 0, 38, 67, 0, 0, 1, 67, 0, 0, 38, 67, 0, 0, 2, 67, 0, 0, 38, 67, 0, 0, 3, 67, 0, 0, 38, 67, 0, 0, 4, 67, 0, 0, 38, 67, 0, 0, 5, 67, 0, 0, 38, 67, 0, 0, 6, 67, 0, 0, 38, 67, 0, 0, 7, 67, 0, 0, 38, 67, 0, 0, 8, 67, 0, 0, 38, 67, 0, 0, 9, 67, 0, 0, 38, 67, 0, 0, 10, 67, 0, 0, 38, 67, 0, 0, 11, 67, 0, 0, 38, 67, 0, 0, 12, 67, 0, 0, 38, 67, 0, 0, 13, 67, 0, 0, 38, 67, 0, 0, 14, 67, 0, 0, 38, 67, 0, 0, 15, 67, 0, 0, 38, 67, 0, 0, 16, 67, 0, 0, 38, 67, 0, 0, 17, 67, 0, 0, 38, 67, 0, 0, 18, 67, 0, 0, 38, 67, 0, 0, 19, 67, 0, 0, 38, 67, 0, 0, 20, 67, 0, 0, 38, 67, 0, 0, 21, 67, 0, 0, 38, 67, 0, 0, 22, 67, 0, 0, 38, 67, 0, 0, 23, 67, 0, 0, 38, 67, 0, 0, 24, 67, 0, 0, 38, 67, 0, 0, 25, 67, 0, 0, 38, 67, 0, 0, 26, 67, 0, 0, 38, 67, 0, 0, 27, 67, 0, 0, 38, 67, 0, 0, 28, 67, 0, 0, 38, 67, 0, 0, 29, 67, 0, 0, 38, 67, 0, 0, 30, 67, 0, 0, 38, 67, 0, 0, 31, 67, 0, 0, 38, 67, 0, 0, 32, 67, 0, 0, 38, 67, 0, 0, 33, 67, 0, 0, 38, 67, 0, 0, 34, 67, 0, 0, 38, 67, 0, 0, 35, 67, 0, 0, 38, 67, 0, 0, 36, 67, 0, 0, 38, 67, 0, 0, 37, 67, 0, 0, 38, 67, 0, 0, 38, 67, 0, 0, 38, 67, 0, 0, 39, 67, 0, 0, 38, 67, 0, 0, 40, 67, 0, 0, 38, 67, 0, 0, 41, 67, 0, 0, 38, 67, 0, 0, 42, 67, 0, 0, 38, 67, 0, 0, 43, 67, 0, 0, 38, 67, 0, 0, 44, 67, 0, 0, 38, 67, 0, 0, 45, 67, 0, 0, 38, 67, 0, 0, 46, 67, 0, 0, 38, 67, 0, 0, 47, 67, 0, 0, 38, 67, 0, 0, 48, 67, 0, 0, 38, 67, 0, 0, 49, 67, 0, 0, 38, 67, 0, 0, 50, 67, 0, 0, 38, 67, 0, 0, 51, 67, 0, 0, 38, 67, 0, 0, 52, 67, 0, 0, 38, 67, 0, 0, 53, 67, 0, 0, 38, 67, 0, 0, 54, 67, 0, 0, 38, 67, 0, 0, 55, 67, 0, 0, 39, 67, 0, 0, 184, 66, 0, 0, 39, 67, 0, 0, 186, 66, 0, 0, 39, 67, 0, 0, 188, 66, 0, 0, 39, 67, 0, 0, 190, 66, 0, 0, 39, 67, 0, 0, 192, 66, 0, 0, 39, 67, 0, 0, 194, 66, 0, 0, 39, 67, 0, 0, 196, 66, 0, 0, 39, 67, 0, 0, 198, 66, 0, 0, 39, 67, 0, 0, 200, 66, 0, 0, 39, 67, 0, 0, 202, 66, 0, 0, 39, 67, 0, 0, 204, 66, 0, 0, 39, 67, 0, 0, 206, 66, 0, 0, 39, 67, 0, 0, 208, 66, 0, 0, 39, 67, 0, 0, 210, 66, 0, 0, 39, 67, 0, 0, 212, 66, 0, 0, 39, 67, 0, 0, 214, 66, 0, 0, 39, 67, 0, 0, 216, 66, 0, 0, 39, 67, 0, 0, 218, 66, 0, 0, 39, 67, 0, 0, 220, 66, 0, 0, 39, 67, 0, 0, 222, 66, 0, 0, 39, 67, 0, 0, 224, 66, 0, 0, 39, 67, 0, 0, 226, 66, 0, 0, 39, 67, 0, 0, 228, 66, 0, 0, 39, 67, 0, 0, 230, 66, 0, 0, 39, 67, 0, 0, 232, 66, 0, 0, 39, 67, 0, 0, 234, 66, 0, 0, 39, 67, 0, 0, 236, 66, 0, 0, 39, 67, 0, 0, 238, 66, 0, 0, 39, 67, 0, 0, 240, 66, 0, 0, 39, 67, 0, 0, 242, 66, 0, 0, 39, 67, 0, 0, 244, 66, 0, 0, 39, 67, 0, 0, 246, 66, 0, 0, 39, 67, 0, 0, 248, 66, 0, 0, 39, 67, 0, 0, 250, 66, 0, 0, 39, 67, 0, 0, 252, 66, 0, 0, 39, 67, 0, 0, 254, 66, 0, 0, 39, 67, 0, 0, 0, 67, 0, 0, 39, 67, 0, 0, 1, 67, 0, 0, 39, 67, 0, 0, 2, 67, 0, 0, 39, 67, 0, 0, 3, 67, 0, 0, 39, 67, 0, 0, 4, 67, 0, 0, 39, 67, 0, 0, 5, 67, 0, 0, 39, 67, 0, 0, 6, 67, 0, 0, 39, 67, 0, 0, 7, 67, 0, 0, 39, 67, 0, 0, 8, 67, 0, 0, 39, 67, 0, 0, 9, 67, 0, 0, 39, 67, 0, 0, 10, 67, 0, 0, 39, 67, 0, 0, 11, 67, 0, 0, 39, 67, 0, 0, 12, 67, 0, 0, 39, 67, 0, 0, 13, 67, 0, 0, 39, 67, 0, 0, 14, 67, 0, 0, 39, 67, 0, 0, 15, 67, 0, 0, 39, 67, 0, 0, 16, 67, 0, 0, 39, 67, 0, 0, 17, 67, 0, 0, 39, 67, 0, 0, 18, 67, 0, 0, 39, 67, 0, 0, 19, 67, 0, 0, 39, 67, 0, 0, 20, 67, 0, 0, 39, 67, 0, 0, 21, 67, 0, 0, 39, 67, 0, 0, 22, 67, 0, 0, 39, 67, 0, 0, 23, 67, 0, 0, 39, 67, 0, 0, 24, 67, 0, 0, 39, 67, 0, 0, 25, 67, 0, 0, 39, 67, 0, 0, 26, 67, 0, 0, 39, 67, 0, 0, 27, 67, 0, 0, 39, 67, 0, 0, 28, 67, 0, 0, 39, 67, 0, 0, 29, 67, 0, 0, 39, 67, 0, 0, 30, 67, 0, 0, 39, 67, 0, 0, 31, 67, 0, 0, 39, 67, 0, 0, 32, 67, 0, 0, 39, 67, 0, 0, 33, 67, 0, 0, 39, 67, 0, 0, 34, 67, 0, 0, 39, 67, 0, 0, 35, 67, 0, 0, 39, 67, 0, 0, 36, 67, 0, 0, 39, 67, 0, 0, 37, 67, 0, 0, 39, 67, 0, 0, 38, 67, 0, 0, 39, 67, 0, 0, 39, 67, 0, 0, 39, 67, 0, 0, 40, 67, 0, 0, 39, 67, 0, 0, 41, 67, 0, 0, 39, 67, 0, 0, 42, 67, 0, 0, 39, 67, 0, 0, 43, 67, 0, 0, 39, 67, 0, 0, 44, 67, 0, 0, 39, 67, 0, 0, 45, 67, 0, 0, 39, 67, 0, 0, 46, 67, 0, 0, 39, 67, 0, 0, 47, 67, 0, 0, 39, 67, 0, 0, 48, 67, 0, 0, 39, 67, 0, 0, 49, 67, 0, 0, 39, 67, 0, 0, 50, 67, 0, 0, 39, 67, 0, 0, 51, 67, 0, 0, 39, 67, 0, 0, 52, 67, 0, 0, 39, 67, 0, 0, 53, 67, 0, 0, 39, 67, 0, 0, 54, 67, 0, 0, 39, 67, 0, 0, 55, 67, 0, 0, 40, 67, 0, 0, 184, 66, 0, 0, 40, 67, 0, 0, 186, 66, 0, 0, 40, 67, 0, 0, 188, 66, 0, 0, 40, 67, 0, 0, 190, 66, 0, 0, 40, 67, 0, 0, 192, 66, 0, 0, 40, 67, 0, 0, 194, 66, 0, 0, 40, 67, 0, 0, 196, 66, 0, 0, 40, 67, 0, 0, 198, 66, 0, 0, 40, 67, 0, 0, 200, 66, 0, 0, 40, 67, 0, 0, 202, 66, 0, 0, 40, 67, 0, 0, 204, 66, 0, 0, 40, 67, 0, 0, 206, 66, 0, 0, 40, 67, 0, 0, 208, 66, 0, 0, 40, 67, 0, 0, 210, 66, 0, 0, 40, 67, 0, 0, 212, 66, 0, 0, 40, 67, 0, 0, 214, 66, 0, 0, 40, 67, 0, 0, 216, 66, 0, 0, 40, 67, 0, 0, 218, 66, 0, 0, 40, 67, 0, 0, 220, 66, 0, 0, 40, 67, 0, 0, 222, 66, 0, 0, 40, 67, 0, 0, 224, 66, 0, 0, 40, 67, 0, 0, 226, 66, 0, 0, 40, 67, 0, 0, 228, 66, 0, 0, 40, 67, 0, 0, 230, 66, 0, 0, 40, 67, 0, 0, 232, 66, 0, 0, 40, 67, 0, 0, 234, 66, 0, 0, 40, 67, 0, 0, 236, 66, 0, 0, 40, 67, 0, 0, 238, 66, 0, 0, 40, 67, 0, 0, 240, 66, 0, 0, 40, 67, 0, 0, 242, 66, 0, 0, 40, 67, 0, 0, 244, 66, 0, 0, 40, 67, 0, 0, 246, 66, 0, 0, 40, 67, 0, 0, 248, 66, 0, 0, 40, 67, 0, 0, 250, 66, 0, 0, 40, 67, 0, 0, 252, 66, 0, 0, 40, 67, 0, 0, 254, 66, 0, 0, 40, 67, 0, 0, 0, 67, 0, 0, 40, 67, 0, 0, 1, 67, 0, 0, 40, 67, 0, 0, 2, 67, 0, 0, 40, 67, 0, 0, 3, 67, 0, 0, 40, 67, 0, 0, 4, 67, 0, 0, 40, 67, 0, 0, 5, 67, 0, 0, 40, 67, 0, 0, 6, 67, 0, 0, 40, 67, 0, 0, 7, 67, 0, 0, 40, 67, 0, 0, 8, 67, 0, 0, 40, 67, 0, 0, 9, 67, 0, 0, 40, 67, 0, 0, 10, 67, 0, 0, 40, 67, 0, 0, 11, 67, 0, 0, 40, 67, 0, 0, 12, 67, 0, 0, 40, 67, 0, 0, 13, 67, 0, 0, 40, 67, 0, 0, 14, 67, 0, 0, 40, 67, 0, 0, 15, 67, 0, 0, 40, 67, 0, 0, 16, 67, 0, 0, 40, 67, 0, 0, 17, 67, 0, 0, 40, 67, 0, 0, 18, 67, 0, 0, 40, 67, 0, 0, 19, 67, 0, 0, 40, 67, 0, 0, 20, 67, 0, 0, 40, 67, 0, 0, 21, 67, 0, 0, 40, 67, 0, 0, 22, 67, 0, 0, 40, 67, 0, 0, 23, 67, 0, 0, 40, 67, 0, 0, 24, 67, 0, 0, 40, 67, 0, 0, 25, 67, 0, 0, 40, 67, 0, 0, 26, 67, 0, 0, 40, 67, 0, 0, 27, 67, 0, 0, 40, 67, 0, 0, 28, 67, 0, 0, 40, 67, 0, 0, 29, 67, 0, 0, 40, 67, 0, 0, 30, 67, 0, 0, 40, 67, 0, 0, 31, 67, 0, 0, 40, 67, 0, 0, 32, 67, 0, 0, 40, 67, 0, 0, 33, 67, 0, 0, 40, 67, 0, 0, 34, 67, 0, 0, 40, 67, 0, 0, 35, 67, 0, 0, 40, 67, 0, 0, 36, 67, 0, 0, 40, 67, 0, 0, 37, 67, 0, 0, 40, 67, 0, 0, 38, 67, 0, 0, 40, 67, 0, 0, 39, 67, 0, 0, 40, 67, 0, 0, 40, 67, 0, 0, 40, 67, 0, 0, 41, 67, 0, 0, 40, 67, 0, 0, 42, 67, 0, 0, 40, 67, 0, 0, 43, 67, 0, 0, 40, 67, 0, 0, 44, 67, 0, 0, 40, 67, 0, 0, 45, 67, 0, 0, 40, 67, 0, 0, 46, 67, 0, 0, 40, 67, 0, 0, 47, 67, 0, 0, 40, 67, 0, 0, 48, 67, 0, 0, 40, 67, 0, 0, 49, 67, 0, 0, 40, 67, 0, 0, 50, 67, 0, 0, 40, 67, 0, 0, 51, 67, 0, 0, 40, 67, 0, 0, 52, 67, 0, 0, 40, 67, 0, 0, 53, 67, 0, 0, 40, 67, 0, 0, 54, 67, 0, 0, 40, 67, 0, 0, 55, 67, 0, 0, 41, 67, 0, 0, 184, 66, 0, 0, 41, 67, 0, 0, 186, 66, 0, 0, 41, 67, 0, 0, 188, 66, 0, 0, 41, 67, 0, 0, 190, 66, 0, 0, 41, 67, 0, 0, 192, 66, 0, 0, 41, 67, 0, 0, 194, 66, 0, 0, 41, 67, 0, 0, 196, 66, 0, 0, 41, 67, 0, 0, 198, 66, 0, 0, 41, 67, 0, 0, 200, 66, 0, 0, 41, 67, 0, 0, 202, 66, 0, 0, 41, 67, 0, 0, 204, 66, 0, 0, 41, 67, 0, 0, 206, 66, 0, 0, 41, 67, 0, 0, 208, 66, 0, 0, 41, 67, 0, 0, 210, 66, 0, 0, 41, 67, 0, 0, 212, 66, 0, 0, 41, 67, 0, 0, 214, 66, 0, 0, 41, 67, 0, 0, 216, 66, 0, 0, 41, 67, 0, 0, 218, 66, 0, 0, 41, 67, 0, 0, 220, 66, 0, 0, 41, 67, 0, 0, 222, 66, 0, 0, 41, 67, 0, 0, 224, 66, 0, 0, 41, 67, 0, 0, 226, 66, 0, 0, 41, 67, 0, 0, 228, 66, 0, 0, 41, 67, 0, 0, 230, 66, 0, 0, 41, 67, 0, 0, 232, 66, 0, 0, 41, 67, 0, 0, 234, 66, 0, 0, 41, 67, 0, 0, 236, 66, 0, 0, 41, 67, 0, 0, 238, 66, 0, 0, 41, 67, 0, 0, 240, 66, 0, 0, 41, 67, 0, 0, 242, 66, 0, 0, 41, 67, 0, 0, 244, 66, 0, 0, 41, 67, 0, 0, 246, 66, 0, 0, 41, 67, 0, 0, 248, 66, 0, 0, 41, 67, 0, 0, 250, 66, 0, 0, 41, 67, 0, 0, 252, 66, 0, 0, 41, 67, 0, 0, 254, 66, 0, 0, 41, 67, 0, 0, 0, 67, 0, 0, 41, 67, 0, 0, 1, 67, 0, 0, 41, 67, 0, 0, 2, 67, 0, 0, 41, 67, 0, 0, 3, 67, 0, 0, 41, 67, 0, 0, 4, 67, 0, 0, 41, 67, 0, 0, 5, 67, 0, 0, 41, 67, 0, 0, 6, 67, 0, 0, 41, 67, 0, 0, 7, 67, 0, 0, 41, 67, 0, 0, 8, 67, 0, 0, 41, 67, 0, 0, 9, 67, 0, 0, 41, 67, 0, 0, 10, 67, 0, 0, 41, 67, 0, 0, 11, 67, 0, 0, 41, 67, 0, 0, 12, 67, 0, 0, 41, 67, 0, 0, 13, 67, 0, 0, 41, 67, 0, 0, 14, 67, 0, 0, 41, 67, 0, 0, 15, 67, 0, 0, 41, 67, 0, 0, 16, 67, 0, 0, 41, 67, 0, 0, 17, 67, 0, 0, 41, 67, 0, 0, 18, 67, 0, 0, 41, 67, 0, 0, 19, 67, 0, 0, 41, 67, 0, 0, 20, 67, 0, 0, 41, 67, 0, 0, 21, 67, 0, 0, 41, 67, 0, 0, 22, 67, 0, 0, 41, 67, 0, 0, 23, 67, 0, 0, 41, 67, 0, 0, 24, 67, 0, 0, 41, 67, 0, 0, 25, 67, 0, 0, 41, 67, 0, 0, 26, 67, 0, 0, 41, 67, 0, 0, 27, 67, 0, 0, 41, 67, 0, 0, 28, 67, 0, 0, 41, 67, 0, 0, 29, 67, 0, 0, 41, 67, 0, 0, 30, 67, 0, 0, 41, 67, 0, 0, 31, 67, 0, 0, 41, 67, 0, 0, 32, 67, 0, 0, 41, 67, 0, 0, 33, 67, 0, 0, 41, 67, 0, 0, 34, 67, 0, 0, 41, 67, 0, 0, 35, 67, 0, 0, 41, 67, 0, 0, 36, 67, 0, 0, 41, 67, 0, 0, 37, 67, 0, 0, 41, 67, 0, 0, 38, 67, 0, 0, 41, 67, 0, 0, 39, 67, 0, 0, 41, 67, 0, 0, 40, 67, 0, 0, 41, 67, 0, 0, 41, 67, 0, 0, 41, 67, 0, 0, 42, 67, 0, 0, 41, 67, 0, 0, 43, 67, 0, 0, 41, 67, 0, 0, 44, 67, 0, 0, 41, 67, 0, 0, 45, 67, 0, 0, 41, 67, 0, 0, 46, 67, 0, 0, 41, 67, 0, 0, 47, 67, 0, 0, 41, 67, 0, 0, 48, 67, 0, 0, 41, 67, 0, 0, 49, 67, 0, 0, 41, 67, 0, 0, 50, 67, 0, 0, 41, 67, 0, 0, 51, 67, 0, 0, 41, 67, 0, 0, 52, 67, 0, 0, 41, 67, 0, 0, 53, 67, 0, 0, 41, 67, 0, 0, 54, 67, 0, 0, 41, 67, 0, 0, 55, 67, 0, 0, 42, 67, 0, 0, 184, 66, 0, 0, 42, 67, 0, 0, 186, 66, 0, 0, 42, 67, 0, 0, 188, 66, 0, 0, 42, 67, 0, 0, 190, 66, 0, 0, 42, 67, 0, 0, 192, 66, 0, 0, 42, 67, 0, 0, 194, 66, 0, 0, 42, 67, 0, 0, 196, 66, 0, 0, 42, 67, 0, 0, 198, 66, 0, 0, 42, 67, 0, 0, 200, 66, 0, 0, 42, 67, 0, 0, 202, 66, 0, 0, 42, 67, 0, 0, 204, 66, 0, 0, 42, 67, 0, 0, 206, 66, 0, 0, 42, 67, 0, 0, 208, 66, 0, 0, 42, 67, 0, 0, 210, 66, 0, 0, 42, 67, 0, 0, 212, 66, 0, 0, 42, 67, 0, 0, 214, 66, 0, 0, 42, 67, 0, 0, 216, 66, 0, 0, 42, 67, 0, 0, 218, 66, 0, 0, 42, 67, 0, 0, 220, 66, 0, 0, 42, 67, 0, 0, 222, 66, 0, 0, 42, 67, 0, 0, 224, 66, 0, 0, 42, 67, 0, 0, 226, 66, 0, 0, 42, 67, 0, 0, 228, 66, 0, 0, 42, 67, 0, 0, 230, 66, 0, 0, 42, 67, 0, 0, 232, 66, 0, 0, 42, 67, 0, 0, 234, 66, 0, 0, 42, 67, 0, 0, 236, 66, 0, 0, 42, 67, 0, 0, 238, 66, 0, 0, 42, 67, 0, 0, 240, 66, 0, 0, 42, 67, 0, 0, 242, 66, 0, 0, 42, 67, 0, 0, 244, 66, 0, 0, 42, 67, 0, 0, 246, 66, 0, 0, 42, 67, 0, 0, 248, 66, 0, 0, 42, 67, 0, 0, 250, 66, 0, 0, 42, 67, 0, 0, 252, 66, 0, 0, 42, 67, 0, 0, 254, 66, 0, 0, 42, 67, 0, 0, 0, 67, 0, 0, 42, 67, 0, 0, 1, 67, 0, 0, 42, 67, 0, 0, 2, 67, 0, 0, 42, 67, 0, 0, 3, 67, 0, 0, 42, 67, 0, 0, 4, 67, 0, 0, 42, 67, 0, 0, 5, 67, 0, 0, 42, 67, 0, 0, 6, 67, 0, 0, 42, 67, 0, 0, 7, 67, 0, 0, 42, 67, 0, 0, 8, 67, 0, 0, 42, 67, 0, 0, 9, 67, 0, 0, 42, 67, 0, 0, 10, 67, 0, 0, 42, 67, 0, 0, 11, 67, 0, 0, 42, 67, 0, 0, 12, 67, 0, 0, 42, 67, 0, 0, 13, 67, 0, 0, 42, 67, 0, 0, 14, 67, 0, 0, 42, 67, 0, 0, 15, 67, 0, 0, 42, 67, 0, 0, 16, 67, 0, 0, 42, 67, 0, 0, 17, 67, 0, 0, 42, 67, 0, 0, 18, 67, 0, 0, 42, 67, 0, 0, 19, 67, 0, 0, 42, 67, 0, 0, 20, 67, 0, 0, 42, 67, 0, 0, 21, 67, 0, 0, 42, 67, 0, 0, 22, 67, 0, 0, 42, 67, 0, 0, 23, 67, 0, 0, 42, 67, 0, 0, 24, 67, 0, 0, 42, 67, 0, 0, 25, 67, 0, 0, 42, 67, 0, 0, 26, 67, 0, 0, 42, 67, 0, 0, 27, 67, 0, 0, 42, 67, 0, 0, 28, 67, 0, 0, 42, 67, 0, 0, 29, 67, 0, 0, 42, 67, 0, 0, 30, 67, 0, 0, 42, 67, 0, 0, 31, 67, 0, 0, 42, 67, 0, 0, 32, 67, 0, 0, 42, 67, 0, 0, 33, 67, 0, 0, 42, 67, 0, 0, 34, 67, 0, 0, 42, 67, 0, 0, 35, 67, 0, 0, 42, 67, 0, 0, 36, 67, 0, 0, 42, 67, 0, 0, 37, 67, 0, 0, 42, 67, 0, 0, 38, 67, 0, 0, 42, 67, 0, 0, 39, 67, 0, 0, 42, 67, 0, 0, 40, 67, 0, 0, 42, 67, 0, 0, 41, 67, 0, 0, 42, 67, 0, 0, 42, 67, 0, 0, 42, 67, 0, 0, 43, 67, 0, 0, 42, 67, 0, 0, 44, 67, 0, 0, 42, 67, 0, 0, 45, 67, 0, 0, 42, 67, 0, 0, 46, 67, 0, 0, 42, 67, 0, 0, 47, 67, 0, 0, 42, 67, 0, 0, 48, 67, 0, 0, 42, 67, 0, 0, 49, 67, 0, 0, 42, 67, 0, 0, 50, 67, 0, 0, 42, 67, 0, 0, 51, 67, 0, 0, 42, 67, 0, 0, 52, 67, 0, 0, 42, 67, 0, 0, 53, 67, 0, 0, 42, 67, 0, 0, 54, 67, 0, 0, 42, 67, 0, 0, 55, 67, 0, 0, 43, 67, 0, 0, 184, 66, 0, 0, 43, 67, 0, 0, 186, 66, 0, 0, 43, 67, 0, 0, 188, 66, 0, 0, 43, 67, 0, 0, 190, 66, 0, 0, 43, 67, 0, 0, 192, 66, 0, 0, 43, 67, 0, 0, 194, 66, 0, 0, 43, 67, 0, 0, 196, 66, 0, 0, 43, 67, 0, 0, 198, 66, 0, 0, 43, 67, 0, 0, 200, 66, 0, 0, 43, 67, 0, 0, 202, 66, 0, 0, 43, 67, 0, 0, 204, 66, 0, 0, 43, 67, 0, 0, 206, 66, 0, 0, 43, 67, 0, 0, 208, 66, 0, 0, 43, 67, 0, 0, 210, 66, 0, 0, 43, 67, 0, 0, 212, 66, 0, 0, 43, 67, 0, 0, 214, 66, 0, 0, 43, 67, 0, 0, 216, 66, 0, 0, 43, 67, 0, 0, 218, 66, 0, 0, 43, 67, 0, 0, 220, 66, 0, 0, 43, 67, 0, 0, 222, 66, 0, 0, 43, 67, 0, 0, 224, 66, 0, 0, 43, 67, 0, 0, 226, 66, 0, 0, 43, 67, 0, 0, 228, 66, 0, 0, 43, 67, 0, 0, 230, 66, 0, 0, 43, 67, 0, 0, 232, 66, 0, 0, 43, 67, 0, 0, 234, 66, 0, 0, 43, 67, 0, 0, 236, 66, 0, 0, 43, 67, 0, 0, 238, 66, 0, 0, 43, 67, 0, 0, 240, 66, 0, 0, 43, 67, 0, 0, 242, 66, 0, 0, 43, 67, 0, 0, 244, 66, 0, 0, 43, 67, 0, 0, 246, 66, 0, 0, 43, 67, 0, 0, 248, 66, 0, 0, 43, 67, 0, 0, 250, 66, 0, 0, 43, 67, 0, 0, 252, 66, 0, 0, 43, 67, 0, 0, 254, 66, 0, 0, 43, 67, 0, 0, 0, 67, 0, 0, 43, 67, 0, 0, 1, 67, 0, 0, 43, 67, 0, 0, 2, 67, 0, 0, 43, 67, 0, 0, 3, 67, 0, 0, 43, 67, 0, 0, 4, 67, 0, 0, 43, 67, 0, 0, 5, 67, 0, 0, 43, 67, 0, 0, 6, 67, 0, 0, 43, 67, 0, 0, 7, 67, 0, 0, 43, 67, 0, 0, 8, 67, 0, 0, 43, 67, 0, 0, 9, 67, 0, 0, 43, 67, 0, 0, 10, 67, 0, 0, 43, 67, 0, 0, 11, 67, 0, 0, 43, 67, 0, 0, 12, 67, 0, 0, 43, 67, 0, 0, 13, 67, 0, 0, 43, 67, 0, 0, 14, 67, 0, 0, 43, 67, 0, 0, 15, 67, 0, 0, 43, 67, 0, 0, 16, 67, 0, 0, 43, 67, 0, 0, 17, 67, 0, 0, 43, 67, 0, 0, 18, 67, 0, 0, 43, 67, 0, 0, 19, 67, 0, 0, 43, 67, 0, 0, 20, 67, 0, 0, 43, 67, 0, 0, 21, 67, 0, 0, 43, 67, 0, 0, 22, 67, 0, 0, 43, 67, 0, 0, 23, 67, 0, 0, 43, 67, 0, 0, 24, 67, 0, 0, 43, 67, 0, 0, 25, 67, 0, 0, 43, 67, 0, 0, 26, 67, 0, 0, 43, 67, 0, 0, 27, 67, 0, 0, 43, 67, 0, 0, 28, 67, 0, 0, 43, 67, 0, 0, 29, 67, 0, 0, 43, 67, 0, 0, 30, 67, 0, 0, 43, 67, 0, 0, 31, 67, 0, 0, 43, 67, 0, 0, 32, 67, 0, 0, 43, 67, 0, 0, 33, 67, 0, 0, 43, 67, 0, 0, 34, 67, 0, 0, 43, 67, 0, 0, 35, 67, 0, 0, 43, 67, 0, 0, 36, 67, 0, 0, 43, 67, 0, 0, 37, 67, 0, 0, 43, 67, 0, 0, 38, 67, 0, 0, 43, 67, 0, 0, 39, 67, 0, 0, 43, 67, 0, 0, 40, 67, 0, 0, 43, 67, 0, 0, 41, 67, 0, 0, 43, 67, 0, 0, 42, 67, 0, 0, 43, 67, 0, 0, 43, 67, 0, 0, 43, 67, 0, 0, 44, 67, 0, 0, 43, 67, 0, 0, 45, 67, 0, 0, 43, 67, 0, 0, 46, 67, 0, 0, 43, 67, 0, 0, 47, 67, 0, 0, 43, 67, 0, 0, 48, 67, 0, 0, 43, 67, 0, 0, 49, 67, 0, 0, 43, 67, 0, 0, 50, 67, 0, 0, 43, 67, 0, 0, 51, 67, 0, 0, 43, 67, 0, 0, 52, 67, 0, 0, 43, 67, 0, 0, 53, 67, 0, 0, 43, 67, 0, 0, 54, 67, 0, 0, 43, 67, 0, 0, 55, 67, 0, 0, 44, 67, 0, 0, 184, 66, 0, 0, 44, 67, 0, 0, 186, 66, 0, 0, 44, 67, 0, 0, 188, 66, 0, 0, 44, 67, 0, 0, 190, 66, 0, 0, 44, 67, 0, 0, 192, 66, 0, 0, 44, 67, 0, 0, 194, 66, 0, 0, 44, 67, 0, 0, 196, 66, 0, 0, 44, 67, 0, 0, 198, 66, 0, 0, 44, 67, 0, 0, 200, 66, 0, 0, 44, 67, 0, 0, 202, 66, 0, 0, 44, 67, 0, 0, 204, 66, 0, 0, 44, 67, 0, 0, 206, 66, 0, 0, 44, 67, 0, 0, 208, 66, 0, 0, 44, 67, 0, 0, 210, 66, 0, 0, 44, 67, 0, 0, 212, 66, 0, 0, 44, 67, 0, 0, 214, 66, 0, 0, 44, 67, 0, 0, 216, 66, 0, 0, 44, 67, 0, 0, 218, 66, 0, 0, 44, 67, 0, 0, 220, 66, 0, 0, 44, 67, 0, 0, 222, 66, 0, 0, 44, 67, 0, 0, 224, 66, 0, 0, 44, 67, 0, 0, 226, 66, 0, 0, 44, 67, 0, 0, 228, 66, 0, 0, 44, 67, 0, 0, 230, 66, 0, 0, 44, 67, 0, 0, 232, 66, 0, 0, 44, 67, 0, 0, 234, 66, 0, 0, 44, 67, 0, 0, 236, 66, 0, 0, 44, 67, 0, 0, 238, 66, 0, 0, 44, 67, 0, 0, 240, 66, 0, 0, 44, 67, 0, 0, 242, 66, 0, 0, 44, 67, 0, 0, 244, 66, 0, 0, 44, 67, 0, 0, 246, 66, 0, 0, 44, 67, 0, 0, 248, 66, 0, 0, 44, 67, 0, 0, 250, 66, 0, 0, 44, 67, 0, 0, 252, 66, 0, 0, 44, 67, 0, 0, 254, 66, 0, 0, 44, 67, 0, 0, 0, 67, 0, 0, 44, 67, 0, 0, 1, 67, 0, 0, 44, 67, 0, 0, 2, 67, 0, 0, 44, 67, 0, 0, 3, 67, 0, 0, 44, 67, 0, 0, 4, 67, 0, 0, 44, 67, 0, 0, 5, 67, 0, 0, 44, 67, 0, 0, 6, 67, 0, 0, 44, 67, 0, 0, 7, 67, 0, 0, 44, 67, 0, 0, 8, 67, 0, 0, 44, 67, 0, 0, 9, 67, 0, 0, 44, 67, 0, 0, 10, 67, 0, 0, 44, 67, 0, 0, 11, 67, 0, 0, 44, 67, 0, 0, 12, 67, 0, 0, 44, 67, 0, 0, 13, 67, 0, 0, 44, 67, 0, 0, 14, 67, 0, 0, 44, 67, 0, 0, 15, 67, 0, 0, 44, 67, 0, 0, 16, 67, 0, 0, 44, 67, 0, 0, 17, 67, 0, 0, 44, 67, 0, 0, 18, 67, 0, 0, 44, 67, 0, 0, 19, 67, 0, 0, 44, 67, 0, 0, 20, 67, 0, 0, 44, 67, 0, 0, 21, 67, 0, 0, 44, 67, 0, 0, 22, 67, 0, 0, 44, 67, 0, 0, 23, 67, 0, 0, 44, 67, 0, 0, 24, 67, 0, 0, 44, 67, 0, 0, 25, 67, 0, 0, 44, 67, 0, 0, 26, 67, 0, 0, 44, 67, 0, 0, 27, 67, 0, 0, 44, 67, 0, 0, 28, 67, 0, 0, 44, 67, 0, 0, 29, 67, 0, 0, 44, 67, 0, 0, 30, 67, 0, 0, 44, 67, 0, 0, 31, 67, 0, 0, 44, 67, 0, 0, 32, 67, 0, 0, 44, 67, 0, 0, 33, 67, 0, 0, 44, 67, 0, 0, 34, 67, 0, 0, 44, 67, 0, 0, 35, 67, 0, 0, 44, 67, 0, 0, 36, 67, 0, 0, 44, 67, 0, 0, 37, 67, 0, 0, 44, 67, 0, 0, 38, 67, 0, 0, 44, 67, 0, 0, 39, 67, 0, 0, 44, 67, 0, 0, 40, 67, 0, 0, 44, 67, 0, 0, 41, 67, 0, 0, 44, 67, 0, 0, 42, 67, 0, 0, 44, 67, 0, 0, 43, 67, 0, 0, 44, 67, 0, 0, 44, 67, 0, 0, 44, 67, 0, 0, 45, 67, 0, 0, 44, 67, 0, 0, 46, 67, 0, 0, 44, 67, 0, 0, 47, 67, 0, 0, 44, 67, 0, 0, 48, 67, 0, 0, 44, 67, 0, 0, 49, 67, 0, 0, 44, 67, 0, 0, 50, 67, 0, 0, 44, 67, 0, 0, 51, 67, 0, 0, 44, 67, 0, 0, 52, 67, 0, 0, 44, 67, 0, 0, 53, 67, 0, 0, 44, 67, 0, 0, 54, 67, 0, 0, 44, 67, 0, 0, 55, 67, 0, 0, 45, 67, 0, 0, 184, 66, 0, 0, 45, 67, 0, 0, 186, 66, 0, 0, 45, 67, 0, 0, 188, 66, 0, 0, 45, 67, 0, 0, 190, 66, 0, 0, 45, 67, 0, 0, 192, 66, 0, 0, 45, 67, 0, 0, 194, 66, 0, 0, 45, 67, 0, 0, 196, 66, 0, 0, 45, 67, 0, 0, 198, 66, 0, 0, 45, 67, 0, 0, 200, 66, 0, 0, 45, 67, 0, 0, 202, 66, 0, 0, 45, 67, 0, 0, 204, 66, 0, 0, 45, 67, 0, 0, 206, 66, 0, 0, 45, 67, 0, 0, 208, 66, 0, 0, 45, 67, 0, 0, 210, 66, 0, 0, 45, 67, 0, 0, 212, 66, 0, 0, 45, 67, 0, 0, 214, 66, 0, 0, 45, 67, 0, 0, 216, 66, 0, 0, 45, 67, 0, 0, 218, 66, 0, 0, 45, 67, 0, 0, 220, 66, 0, 0, 45, 67, 0, 0, 222, 66, 0, 0, 45, 67, 0, 0, 224, 66, 0, 0, 45, 67, 0, 0, 226, 66, 0, 0, 45, 67, 0, 0, 228, 66, 0, 0, 45, 67, 0, 0, 230, 66, 0, 0, 45, 67, 0, 0, 232, 66, 0, 0, 45, 67, 0, 0, 234, 66, 0, 0, 45, 67, 0, 0, 236, 66, 0, 0, 45, 67, 0, 0, 238, 66, 0, 0, 45, 67, 0, 0, 240, 66, 0, 0, 45, 67, 0, 0, 242, 66, 0, 0, 45, 67, 0, 0, 244, 66, 0, 0, 45, 67, 0, 0, 246, 66, 0, 0, 45, 67, 0, 0, 248, 66, 0, 0, 45, 67, 0, 0, 250, 66, 0, 0, 45, 67, 0, 0, 252, 66, 0, 0, 45, 67, 0, 0, 254, 66, 0, 0, 45, 67, 0, 0, 0, 67, 0, 0, 45, 67, 0, 0, 1, 67, 0, 0, 45, 67, 0, 0, 2, 67, 0, 0, 45, 67, 0, 0, 3, 67, 0, 0, 45, 67, 0, 0, 4, 67, 0, 0, 45, 67, 0, 0, 5, 67, 0, 0, 45, 67, 0, 0, 6, 67, 0, 0, 45, 67, 0, 0, 7, 67, 0, 0, 45, 67, 0, 0, 8, 67, 0, 0, 45, 67, 0, 0, 9, 67, 0, 0, 45, 67, 0, 0, 10, 67, 0, 0, 45, 67, 0, 0, 11, 67, 0, 0, 45, 67, 0, 0, 12, 67, 0, 0, 45, 67, 0, 0, 13, 67, 0, 0, 45, 67, 0, 0, 14, 67, 0, 0, 45, 67, 0, 0, 15, 67, 0, 0, 45, 67, 0, 0, 16, 67, 0, 0, 45, 67, 0, 0, 17, 67, 0, 0, 45, 67, 0, 0, 18, 67, 0, 0, 45, 67, 0, 0, 19, 67, 0, 0, 45, 67, 0, 0, 20, 67, 0, 0, 45, 67, 0, 0, 21, 67, 0, 0, 45, 67, 0, 0, 22, 67, 0, 0, 45, 67, 0, 0, 23, 67, 0, 0, 45, 67, 0, 0, 24, 67, 0, 0, 45, 67, 0, 0, 25, 67, 0, 0, 45, 67, 0, 0, 26, 67, 0, 0, 45, 67, 0, 0, 27, 67, 0, 0, 45, 67, 0, 0, 28, 67, 0, 0, 45, 67, 0, 0, 29, 67, 0, 0, 45, 67, 0, 0, 30, 67, 0, 0, 45, 67, 0, 0, 31, 67, 0, 0, 45, 67, 0, 0, 32, 67, 0, 0, 45, 67, 0, 0, 33, 67, 0, 0, 45, 67, 0, 0, 34, 67, 0, 0, 45, 67, 0, 0, 35, 67, 0, 0, 45, 67, 0, 0, 36, 67, 0, 0, 45, 67, 0, 0, 37, 67, 0, 0, 45, 67, 0, 0, 38, 67, 0, 0, 45, 67, 0, 0, 39, 67, 0, 0, 45, 67, 0, 0, 40, 67, 0, 0, 45, 67, 0, 0, 41, 67, 0, 0, 45, 67, 0, 0, 42, 67, 0, 0, 45, 67, 0, 0, 43, 67, 0, 0, 45, 67, 0, 0, 44, 67, 0, 0, 45, 67, 0, 0, 45, 67, 0, 0, 45, 67, 0, 0, 46, 67, 0, 0, 45, 67, 0, 0, 47, 67, 0, 0, 45, 67, 0, 0, 48, 67, 0, 0, 45, 67, 0, 0, 49, 67, 0, 0, 45, 67, 0, 0, 50, 67, 0, 0, 45, 67, 0, 0, 51, 67, 0, 0, 45, 67, 0, 0, 52, 67, 0, 0, 45, 67, 0, 0, 53, 67, 0, 0, 45, 67, 0, 0, 54, 67, 0, 0, 45, 67, 0, 0, 55, 67, 0, 0, 46, 67, 0, 0, 184, 66, 0, 0, 46, 67, 0, 0, 186, 66, 0, 0, 46, 67, 0, 0, 188, 66, 0, 0, 46, 67, 0, 0, 190, 66, 0, 0, 46, 67, 0, 0, 192, 66, 0, 0, 46, 67, 0, 0, 194, 66, 0, 0, 46, 67, 0, 0, 196, 66, 0, 0, 46, 67, 0, 0, 198, 66, 0, 0, 46, 67, 0, 0, 200, 66, 0, 0, 46, 67, 0, 0, 202, 66, 0, 0, 46, 67, 0, 0, 204, 66, 0, 0, 46, 67, 0, 0, 206, 66, 0, 0, 46, 67, 0, 0, 208, 66, 0, 0, 46, 67, 0, 0, 210, 66, 0, 0, 46, 67, 0, 0, 212, 66, 0, 0, 46, 67, 0, 0, 214, 66, 0, 0, 46, 67, 0, 0, 40, 67, 0, 0, 46, 67, 0, 0, 41, 67, 0, 0, 46, 67, 0, 0, 42, 67, 0, 0, 46, 67, 0, 0, 43, 67, 0, 0, 46, 67, 0, 0, 44, 67, 0, 0, 46, 67, 0, 0, 45, 67, 0, 0, 46, 67, 0, 0, 46, 67, 0, 0, 46, 67, 0, 0, 47, 67, 0, 0, 46, 67, 0, 0, 48, 67, 0, 0, 46, 67, 0, 0, 49, 67, 0, 0, 46, 67, 0, 0, 50, 67, 0, 0, 46, 67, 0, 0, 51, 67, 0, 0, 46, 67, 0, 0, 52, 67, 0, 0, 46, 67, 0, 0, 53, 67, 0, 0, 46, 67, 0, 0, 54, 67, 0, 0, 46, 67, 0, 0, 55, 67, 0, 0, 47, 67, 0, 0, 184, 66, 0, 0, 47, 67, 0, 0, 186, 66, 0, 0, 47, 67, 0, 0, 188, 66, 0, 0, 47, 67, 0, 0, 190, 66, 0, 0, 47, 67, 0, 0, 192, 66, 0, 0, 47, 67, 0, 0, 194, 66, 0, 0, 47, 67, 0, 0, 196, 66, 0, 0, 47, 67, 0, 0, 198, 66, 0, 0, 47, 67, 0, 0, 200, 66, 0, 0, 47, 67, 0, 0, 202, 66, 0, 0, 47, 67, 0, 0, 204, 66, 0, 0, 47, 67, 0, 0, 206, 66, 0, 0, 47, 67, 0, 0, 208, 66, 0, 0, 47, 67, 0, 0, 210, 66, 0, 0, 47, 67, 0, 0, 42, 67, 0, 0, 47, 67, 0, 0, 43, 67, 0, 0, 47, 67, 0, 0, 44, 67, 0, 0, 47, 67, 0, 0, 45, 67, 0, 0, 47, 67, 0, 0, 46, 67, 0, 0, 47, 67, 0, 0, 47, 67, 0, 0, 47, 67, 0, 0, 48, 67, 0, 0, 47, 67, 0, 0, 49, 67, 0, 0, 47, 67, 0, 0, 50, 67, 0, 0, 47, 67, 0, 0, 51, 67, 0, 0, 47, 67, 0, 0, 52, 67, 0, 0, 47, 67, 0, 0, 53, 67, 0, 0, 47, 67, 0, 0, 54, 67, 0, 0, 47, 67, 0, 0, 55, 67, 0, 0, 48, 67, 0, 0, 184, 66, 0, 0, 48, 67, 0, 0, 186, 66, 0, 0, 48, 67, 0, 0, 188, 66, 0, 0, 48, 67, 0, 0, 190, 66, 0, 0, 48, 67, 0, 0, 192, 66, 0, 0, 48, 67, 0, 0, 194, 66, 0, 0, 48, 67, 0, 0, 196, 66, 0, 0, 48, 67, 0, 0, 198, 66, 0, 0, 48, 67, 0, 0, 200, 66, 0, 0, 48, 67, 0, 0, 202, 66, 0, 0, 48, 67, 0, 0, 204, 66, 0, 0, 48, 67, 0, 0, 206, 66, 0, 0, 48, 67, 0, 0, 208, 66, 0, 0, 48, 67, 0, 0, 43, 67, 0, 0, 48, 67, 0, 0, 44, 67, 0, 0, 48, 67, 0, 0, 45, 67, 0, 0, 48, 67, 0, 0, 46, 67, 0, 0, 48, 67, 0, 0, 47, 67, 0, 0, 48, 67, 0, 0, 48, 67, 0, 0, 48, 67, 0, 0, 49, 67, 0, 0, 48, 67, 0, 0, 50, 67, 0, 0, 48, 67, 0, 0, 51, 67, 0, 0, 48, 67, 0, 0, 52, 67, 0, 0, 48, 67, 0, 0, 53, 67, 0, 0, 48, 67, 0, 0, 54, 67, 0, 0, 48, 67, 0, 0, 55, 67, 0, 0, 49, 67, 0, 0, 184, 66, 0, 0, 49, 67, 0, 0, 186, 66, 0, 0, 49, 67, 0, 0, 188, 66, 0, 0, 49, 67, 0, 0, 190, 66, 0, 0, 49, 67, 0, 0, 192, 66, 0, 0, 49, 67, 0, 0, 194, 66, 0, 0, 49, 67, 0, 0, 196, 66, 0, 0, 49, 67, 0, 0, 198, 66, 0, 0, 49, 67, 0, 0, 200, 66, 0, 0, 49, 67, 0, 0, 202, 66, 0, 0, 49, 67, 0, 0, 204, 66, 0, 0, 49, 67, 0, 0, 206, 66, 0, 0, 49, 67, 0, 0, 44, 67, 0, 0, 49, 67, 0, 0, 45, 67, 0, 0, 49, 67, 0, 0, 46, 67, 0, 0, 49, 67, 0, 0, 47, 67, 0, 0, 49, 67, 0, 0, 48, 67, 0, 0, 49, 67, 0, 0, 49, 67, 0, 0, 49, 67, 0, 0, 50, 67, 0, 0, 49, 67, 0, 0, 51, 67, 0, 0, 49, 67, 0, 0, 52, 67, 0, 0, 49, 67, 0, 0, 53, 67, 0, 0, 49, 67, 0, 0, 54, 67, 0, 0, 49, 67, 0, 0, 55, 67, 0, 0, 50, 67, 0, 0, 184, 66, 0, 0, 50, 67, 0, 0, 186, 66, 0, 0, 50, 67, 0, 0, 188, 66, 0, 0, 50, 67, 0, 0, 190, 66, 0, 0, 50, 67, 0, 0, 192, 66, 0, 0, 50, 67, 0, 0, 194, 66, 0, 0, 50, 67, 0, 0, 196, 66, 0, 0, 50, 67, 0, 0, 198, 66, 0, 0, 50, 67, 0, 0, 200, 66, 0, 0, 50, 67, 0, 0, 202, 66, 0, 0, 50, 67, 0, 0, 204, 66, 0, 0, 50, 67, 0, 0, 206, 66, 0, 0, 50, 67, 0, 0, 44, 67, 0, 0, 50, 67, 0, 0, 45, 67, 0, 0, 50, 67, 0, 0, 46, 67, 0, 0, 50, 67, 0, 0, 47, 67, 0, 0, 50, 67, 0, 0, 48, 67, 0, 0, 50, 67, 0, 0, 49, 67, 0, 0, 50, 67, 0, 0, 50, 67, 0, 0, 50, 67, 0, 0, 51, 67, 0, 0, 50, 67, 0, 0, 52, 67, 0, 0, 50, 67, 0, 0, 53, 67, 0, 0, 50, 67, 0, 0, 54, 67, 0, 0, 50, 67, 0, 0, 55, 67, 0, 0, 51, 67, 0, 0, 184, 66, 0, 0, 51, 67, 0, 0, 186, 66, 0, 0, 51, 67, 0, 0, 188, 66, 0, 0, 51, 67, 0, 0, 190, 66, 0, 0, 51, 67, 0, 0, 192, 66, 0, 0, 51, 67, 0, 0, 194, 66, 0, 0, 51, 67, 0, 0, 196, 66, 0, 0, 51, 67, 0, 0, 198, 66, 0, 0, 51, 67, 0, 0, 200, 66, 0, 0, 51, 67, 0, 0, 202, 66, 0, 0, 51, 67, 0, 0, 204, 66, 0, 0, 51, 67, 0, 0, 206, 66, 0, 0, 51, 67, 0, 0, 44, 67, 0, 0, 51, 67, 0, 0, 45, 67, 0, 0, 51, 67, 0, 0, 46, 67, 0, 0, 51, 67, 0, 0, 47, 67, 0, 0, 51, 67, 0, 0, 48, 67, 0, 0, 51, 67, 0, 0, 49, 67, 0, 0, 51, 67, 0, 0, 50, 67, 0, 0, 51, 67, 0, 0, 51, 67, 0, 0, 51, 67, 0, 0, 52, 67, 0, 0, 51, 67, 0, 0, 53, 67, 0, 0, 51, 67, 0, 0, 54, 67, 0, 0, 51, 67, 0, 0, 55, 67, 0, 0, 52, 67, 0, 0, 184, 66, 0, 0, 52, 67, 0, 0, 186, 66, 0, 0, 52, 67, 0, 0, 188, 66, 0, 0, 52, 67, 0, 0, 190, 66, 0, 0, 52, 67, 0, 0, 192, 66, 0, 0, 52, 67, 0, 0, 194, 66, 0, 0, 52, 67, 0, 0, 196, 66, 0, 0, 52, 67, 0, 0, 198, 66, 0, 0, 52, 67, 0, 0, 200, 66, 0, 0, 52, 67, 0, 0, 202, 66, 0, 0, 52, 67, 0, 0, 204, 66, 0, 0, 52, 67, 0, 0, 206, 66, 0, 0, 52, 67, 0, 0, 44, 67, 0, 0, 52, 67, 0, 0, 45, 67, 0, 0, 52, 67, 0, 0, 46, 67, 0, 0, 52, 67, 0, 0, 47, 67, 0, 0, 52, 67, 0, 0, 48, 67, 0, 0, 52, 67, 0, 0, 49, 67, 0, 0, 52, 67, 0, 0, 50, 67, 0, 0, 52, 67, 0, 0, 51, 67, 0, 0, 52, 67, 0, 0, 52, 67, 0, 0, 52, 67, 0, 0, 53, 67, 0, 0, 52, 67, 0, 0, 54, 67, 0, 0, 52, 67, 0, 0, 55, 67, 0, 0, 53, 67, 0, 0, 184, 66, 0, 0, 53, 67, 0, 0, 186, 66, 0, 0, 53, 67, 0, 0, 188, 66, 0, 0, 53, 67, 0, 0, 190, 66, 0, 0, 53, 67, 0, 0, 192, 66, 0, 0, 53, 67, 0, 0, 194, 66, 0, 0, 53, 67, 0, 0, 196, 66, 0, 0, 53, 67, 0, 0, 198, 66, 0, 0, 53, 67, 0, 0, 200, 66, 0, 0, 53, 67, 0, 0, 202, 66, 0, 0, 53, 67, 0, 0, 204, 66, 0, 0, 53, 67, 0, 0, 206, 66, 0, 0, 53, 67, 0, 0, 45, 67, 0, 0, 53, 67, 0, 0, 46, 67, 0, 0, 53, 67, 0, 0, 47, 67, 0, 0, 53, 67, 0, 0, 48, 67, 0, 0, 53, 67, 0, 0, 49, 67, 0, 0, 53, 67, 0, 0, 50, 67, 0, 0, 53, 67, 0, 0, 51, 67, 0, 0, 53, 67, 0, 0, 52, 67, 0, 0, 53, 67, 0, 0, 53, 67, 0, 0, 53, 67, 0, 0, 54, 67, 0, 0, 53, 67, 0, 0, 55, 67, 0, 0, 54, 67, 0, 0, 184, 66, 0, 0, 54, 67, 0, 0, 186, 66, 0, 0, 54, 67, 0, 0, 188, 66, 0, 0, 54, 67, 0, 0, 190, 66, 0, 0, 54, 67, 0, 0, 192, 66, 0, 0, 54, 67, 0, 0, 194, 66, 0, 0, 54, 67, 0, 0, 196, 66, 0, 0, 54, 67, 0, 0, 198, 66, 0, 0, 54, 67, 0, 0, 200, 66, 0, 0, 54, 67, 0, 0, 202, 66, 0, 0, 54, 67, 0, 0, 204, 66, 0, 0, 54, 67, 0, 0, 45, 67, 0, 0, 54, 67, 0, 0, 46, 67, 0, 0, 54, 67, 0, 0, 47, 67, 0, 0, 54, 67, 0, 0, 48, 67, 0, 0, 54, 67, 0, 0, 49, 67, 0, 0, 54, 67, 0, 0, 50, 67, 0, 0, 54, 67, 0, 0, 51, 67, 0, 0, 54, 67, 0, 0, 52, 67, 0, 0, 54, 67, 0, 0, 53, 67, 0, 0, 54, 67, 0, 0, 54, 67, 0, 0, 54, 67, 0, 0, 55, 67, 0, 0, 55, 67, 0, 0, 184, 66, 0, 0, 55, 67, 0, 0, 186, 66, 0, 0, 55, 67, 0, 0, 188, 66, 0, 0, 55, 67, 0, 0, 190, 66, 0, 0, 55, 67, 0, 0, 192, 66, 0, 0, 55, 67, 0, 0, 194, 66, 0, 0, 55, 67, 0, 0, 196, 66, 0, 0, 55, 67, 0, 0, 198, 66, 0, 0, 55, 67, 0, 0, 200, 66, 0, 0, 55, 67, 0, 0, 202, 66, 0, 0, 55, 67, 0, 0, 204, 66, 0, 0, 55, 67, 0, 0, 45, 67, 0, 0, 55, 67, 0, 0, 46, 67, 0, 0, 55, 67, 0, 0, 47, 67, 0, 0, 55, 67, 0, 0, 48, 67, 0, 0, 55, 67, 0, 0, 49, 67, 0, 0, 55, 67, 0, 0, 50, 67, 0, 0, 55, 67, 0, 0, 51, 67, 0, 0, 55, 67, 0, 0, 52, 67, 0, 0, 55, 67, 0, 0, 53, 67, 0, 0, 55, 67, 0, 0, 54, 67, 0, 0, 55, 67, 0, 0, 55, 67, 0, 0, 56, 67, 0, 0, 184, 66, 0, 0, 56, 67, 0, 0, 186, 66, 0, 0, 56, 67, 0, 0, 188, 66, 0, 0, 56, 67, 0, 0, 190, 66, 0, 0, 56, 67, 0, 0, 192, 66, 0, 0, 56, 67, 0, 0, 194, 66, 0, 0, 56, 67, 0, 0, 196, 66, 0, 0, 56, 67, 0, 0, 198, 66, 0, 0, 56, 67, 0, 0, 200, 66, 0, 0, 56, 67, 0, 0, 202, 66, 0, 0, 56, 67, 0, 0, 204, 66, 0, 0, 56, 67, 0, 0, 45, 67, 0, 0, 56, 67, 0, 0, 46, 67, 0, 0, 56, 67, 0, 0, 47, 67, 0, 0, 56, 67, 0, 0, 48, 67, 0, 0, 56, 67, 0, 0, 49, 67, 0, 0, 56, 67, 0, 0, 50, 67, 0, 0, 56, 67, 0, 0, 51, 67, 0, 0, 56, 67, 0, 0, 52, 67, 0, 0, 56, 67, 0, 0, 53, 67, 0, 0, 56, 67, 0, 0, 54, 67, 0, 0, 56, 67, 0, 0, 55, 67, 0, 0, 57, 67, 0, 0, 184, 66, 0, 0, 57, 67, 0, 0, 186, 66, 0, 0, 57, 67, 0, 0, 188, 66, 0, 0, 57, 67, 0, 0, 190, 66, 0, 0, 57, 67, 0, 0, 192, 66, 0, 0, 57, 67, 0, 0, 194, 66, 0, 0, 57, 67, 0, 0, 196, 66, 0, 0, 57, 67, 0, 0, 198, 66, 0, 0, 57, 67, 0, 0, 200, 66, 0, 0, 57, 67, 0, 0, 202, 66, 0, 0, 57, 67, 0, 0, 46, 67, 0, 0, 57, 67, 0, 0, 47, 67, 0, 0, 57, 67, 0, 0, 48, 67, 0, 0, 57, 67, 0, 0, 49, 67, 0, 0, 57, 67, 0, 0, 50, 67, 0, 0, 57, 67, 0, 0, 51, 67, 0, 0, 57, 67, 0, 0, 52, 67, 0, 0, 57, 67, 0, 0, 53, 67, 0, 0, 57, 67, 0, 0, 54, 67, 0, 0, 57, 67, 0, 0, 55, 67, 0, 0, 72, 67, 0, 0, 198, 66, 0, 0, 72, 67, 0, 0, 200, 66, 0, 0, 72, 67, 0, 0, 202, 66, 0, 0, 72, 67, 0, 0, 204, 66, 0, 0, 72, 67, 0, 0, 206, 66, 0, 0, 72, 67, 0, 0, 208, 66, 0, 0, 72, 67, 0, 0, 210, 66, 0, 0, 72, 67, 0, 0, 212, 66, 0, 0, 72, 67, 0, 0, 214, 66, 0, 0, 72, 67, 0, 0, 216, 66, 0, 0, 72, 67, 0, 0, 218, 66, 0, 0, 72, 67, 0, 0, 220, 66, 0, 0, 72, 67, 0, 0, 222, 66, 0, 0, 72, 67, 0, 0, 42, 67, 0, 0, 72, 67, 0, 0, 43, 67, 0, 0, 72, 67, 0, 0, 44, 67, 0, 0, 72, 67, 0, 0, 45, 67, 0, 0, 72, 67, 0, 0, 46, 67, 0, 0, 72, 67, 0, 0, 47, 67, 0, 0, 72, 67, 0, 0, 48, 67, 0, 0, 72, 67, 0, 0, 49, 67, 0, 0, 73, 67, 0, 0, 196, 66, 0, 0, 73, 67, 0, 0, 198, 66, 0, 0, 73, 67, 0, 0, 200, 66, 0, 0, 73, 67, 0, 0, 202, 66, 0, 0, 73, 67, 0, 0, 204, 66, 0, 0, 73, 67, 0, 0, 206, 66, 0, 0, 73, 67, 0, 0, 208, 66, 0, 0, 73, 67, 0, 0, 210, 66, 0, 0, 73, 67, 0, 0, 212, 66, 0, 0, 73, 67, 0, 0, 214, 66, 0, 0, 73, 67, 0, 0, 216, 66, 0, 0, 73, 67, 0, 0, 218, 66, 0, 0, 73, 67, 0, 0, 220, 66, 0, 0, 73, 67, 0, 0, 222, 66, 0, 0, 73, 67, 0, 0, 224, 66, 0, 0, 73, 67, 0, 0, 226, 66, 0, 0, 73, 67, 0, 0, 228, 66, 0, 0, 73, 67, 0, 0, 230, 66, 0, 0, 73, 67, 0, 0, 41, 67, 0, 0, 73, 67, 0, 0, 42, 67, 0, 0, 73, 67, 0, 0, 43, 67, 0, 0, 73, 67, 0, 0, 44, 67, 0, 0, 73, 67, 0, 0, 45, 67, 0, 0, 73, 67, 0, 0, 46, 67, 0, 0, 73, 67, 0, 0, 47, 67, 0, 0, 73, 67, 0, 0, 48, 67, 0, 0, 73, 67, 0, 0, 49, 67, 0, 0, 73, 67, 0, 0, 50, 67, 0, 0, 74, 67, 0, 0, 190, 66, 0, 0, 74, 67, 0, 0, 192, 66, 0, 0, 74, 67, 0, 0, 194, 66, 0, 0, 74, 67, 0, 0, 196, 66, 0, 0, 74, 67, 0, 0, 198, 66, 0, 0, 74, 67, 0, 0, 200, 66, 0, 0, 74, 67, 0, 0, 202, 66, 0, 0, 74, 67, 0, 0, 204, 66, 0, 0, 74, 67, 0, 0, 206, 66, 0, 0, 74, 67, 0, 0, 208, 66, 0, 0, 74, 67, 0, 0, 210, 66, 0, 0, 74, 67, 0, 0, 212, 66, 0, 0, 74, 67, 0, 0, 214, 66, 0, 0, 74, 67, 0, 0, 216, 66, 0, 0, 74, 67, 0, 0, 218, 66, 0, 0, 74, 67, 0, 0, 220, 66, 0, 0, 74, 67, 0, 0, 222, 66, 0, 0, 74, 67, 0, 0, 224, 66, 0, 0, 74, 67, 0, 0, 226, 66, 0, 0, 74, 67, 0, 0, 228, 66, 0, 0, 74, 67, 0, 0, 230, 66, 0, 0, 74, 67, 0, 0, 232, 66, 0, 0, 74, 67, 0, 0, 234, 66, 0, 0, 74, 67, 0, 0, 236, 66, 0, 0, 74, 67, 0, 0, 238, 66, 0, 0, 74, 67, 0, 0, 240, 66, 0, 0, 74, 67, 0, 0, 242, 66, 0, 0, 74, 67, 0, 0, 244, 66, 0, 0, 74, 67, 0, 0, 246, 66, 0, 0, 74, 67, 0, 0, 39, 67, 0, 0, 74, 67, 0, 0, 40, 67, 0, 0, 74, 67, 0, 0, 41, 67, 0, 0, 74, 67, 0, 0, 42, 67, 0, 0, 74, 67, 0, 0, 43, 67, 0, 0, 74, 67, 0, 0, 44, 67, 0, 0, 74, 67, 0, 0, 45, 67, 0, 0, 74, 67, 0, 0, 46, 67, 0, 0, 74, 67, 0, 0, 47, 67, 0, 0, 74, 67, 0, 0, 48, 67, 0, 0, 74, 67, 0, 0, 49, 67, 0, 0, 74, 67, 0, 0, 50, 67, 0, 0, 74, 67, 0, 0, 51, 67, 0, 0, 74, 67, 0, 0, 52, 67, 0, 0, 75, 67, 0, 0, 188, 66, 0, 0, 75, 67, 0, 0, 190, 66, 0, 0, 75, 67, 0, 0, 192, 66, 0, 0, 75, 67, 0, 0, 194, 66, 0, 0, 75, 67, 0, 0, 196, 66, 0, 0, 75, 67, 0, 0, 198, 66, 0, 0, 75, 67, 0, 0, 200, 66, 0, 0, 75, 67, 0, 0, 202, 66, 0, 0, 75, 67, 0, 0, 204, 66, 0, 0, 75, 67, 0, 0, 206, 66, 0, 0, 75, 67, 0, 0, 208, 66, 0, 0, 75, 67, 0, 0, 210, 66, 0, 0, 75, 67, 0, 0, 212, 66, 0, 0, 75, 67, 0, 0, 214, 66, 0, 0, 75, 67, 0, 0, 216, 66, 0, 0, 75, 67, 0, 0, 218, 66, 0, 0, 75, 67, 0, 0, 220, 66, 0, 0, 75, 67, 0, 0, 222, 66, 0, 0, 75, 67, 0, 0, 224, 66, 0, 0, 75, 67, 0, 0, 226, 66, 0, 0, 75, 67, 0, 0, 228, 66, 0, 0, 75, 67, 0, 0, 230, 66, 0, 0, 75, 67, 0, 0, 232, 66, 0, 0, 75, 67, 0, 0, 234, 66, 0, 0, 75, 67, 0, 0, 236, 66, 0, 0, 75, 67, 0, 0, 238, 66, 0, 0, 75, 67, 0, 0, 240, 66, 0, 0, 75, 67, 0, 0, 242, 66, 0, 0, 75, 67, 0, 0, 244, 66, 0, 0, 75, 67, 0, 0, 246, 66, 0, 0, 75, 67, 0, 0, 248, 66, 0, 0, 75, 67, 0, 0, 250, 66, 0, 0, 75, 67, 0, 0, 252, 66, 0, 0, 75, 67, 0, 0, 254, 66, 0, 0, 75, 67, 0, 0, 38, 67, 0, 0, 75, 67, 0, 0, 39, 67, 0, 0, 75, 67, 0, 0, 40, 67, 0, 0, 75, 67, 0, 0, 41, 67, 0, 0, 75, 67, 0, 0, 42, 67, 0, 0, 75, 67, 0, 0, 43, 67, 0, 0, 75, 67, 0, 0, 44, 67, 0, 0, 75, 67, 0, 0, 45, 67, 0, 0, 75, 67, 0, 0, 46, 67, 0, 0, 75, 67, 0, 0, 47, 67, 0, 0, 75, 67, 0, 0, 48, 67, 0, 0, 75, 67, 0, 0, 49, 67, 0, 0, 75, 67, 0, 0, 50, 67, 0, 0, 75, 67, 0, 0, 51, 67, 0, 0, 75, 67, 0, 0, 52, 67, 0, 0, 75, 67, 0, 0, 53, 67, 0, 0, 76, 67, 0, 0, 186, 66, 0, 0, 76, 67, 0, 0, 188, 66, 0, 0, 76, 67, 0, 0, 190, 66, 0, 0, 76, 67, 0, 0, 192, 66, 0, 0, 76, 67, 0, 0, 194, 66, 0, 0, 76, 67, 0, 0, 196, 66, 0, 0, 76, 67, 0, 0, 198, 66, 0, 0, 76, 67, 0, 0, 200, 66, 0, 0, 76, 67, 0, 0, 202, 66, 0, 0, 76, 67, 0, 0, 204, 66, 0, 0, 76, 67, 0, 0, 206, 66, 0, 0, 76, 67, 0, 0, 208, 66, 0, 0, 76, 67, 0, 0, 210, 66, 0, 0, 76, 67, 0, 0, 212, 66, 0, 0, 76, 67, 0, 0, 214, 66, 0, 0, 76, 67, 0, 0, 216, 66, 0, 0, 76, 67, 0, 0, 218, 66, 0, 0, 76, 67, 0, 0, 220, 66, 0, 0, 76, 67, 0, 0, 222, 66, 0, 0, 76, 67, 0, 0, 224, 66, 0, 0, 76, 67, 0, 0, 226, 66, 0, 0, 76, 67, 0, 0, 228, 66, 0, 0, 76, 67, 0, 0, 230, 66, 0, 0, 76, 67, 0, 0, 232, 66, 0, 0, 76, 67, 0, 0, 234, 66, 0, 0, 76, 67, 0, 0, 236, 66, 0, 0, 76, 67, 0, 0, 238, 66, 0, 0, 76, 67, 0, 0, 240, 66, 0, 0, 76, 67, 0, 0, 242, 66, 0, 0, 76, 67, 0, 0, 244, 66, 0, 0, 76, 67, 0, 0, 246, 66, 0, 0, 76, 67, 0, 0, 248, 66, 0, 0, 76, 67, 0, 0, 250, 66, 0, 0, 76, 67, 0, 0, 252, 66, 0, 0, 76, 67, 0, 0, 254, 66, 0, 0, 76, 67, 0, 0, 0, 67, 0, 0, 76, 67, 0, 0, 1, 67, 0, 0, 76, 67, 0, 0, 2, 67, 0, 0, 76, 67, 0, 0, 3, 67, 0, 0, 76, 67, 0, 0, 4, 67, 0, 0, 76, 67, 0, 0, 5, 67, 0, 0, 76, 67, 0, 0, 6, 67, 0, 0, 76, 67, 0, 0, 7, 67, 0, 0, 76, 67, 0, 0, 8, 67, 0, 0, 76, 67, 0, 0, 37, 67, 0, 0, 76, 67, 0, 0, 38, 67, 0, 0, 76, 67, 0, 0, 39, 67, 0, 0, 76, 67, 0, 0, 40, 67, 0, 0, 76, 67, 0, 0, 41, 67, 0, 0, 76, 67, 0, 0, 42, 67, 0, 0, 76, 67, 0, 0, 43, 67, 0, 0, 76, 67, 0, 0, 44, 67, 0, 0, 76, 67, 0, 0, 45, 67, 0, 0, 76, 67, 0, 0, 46, 67, 0, 0, 76, 67, 0, 0, 47, 67, 0, 0, 76, 67, 0, 0, 48, 67, 0, 0, 76, 67, 0, 0, 49, 67, 0, 0, 76, 67, 0, 0, 50, 67, 0, 0, 76, 67, 0, 0, 51, 67, 0, 0, 76, 67, 0, 0, 52, 67, 0, 0, 76, 67, 0, 0, 53, 67, 0, 0, 76, 67, 0, 0, 54, 67, 0, 0, 77, 67, 0, 0, 184, 66, 0, 0, 77, 67, 0, 0, 186, 66, 0, 0, 77, 67, 0, 0, 188, 66, 0, 0, 77, 67, 0, 0, 190, 66, 0, 0, 77, 67, 0, 0, 192, 66, 0, 0, 77, 67, 0, 0, 194, 66, 0, 0, 77, 67, 0, 0, 196, 66, 0, 0, 77, 67, 0, 0, 198, 66, 0, 0, 77, 67, 0, 0, 200, 66, 0, 0, 77, 67, 0, 0, 202, 66, 0, 0, 77, 67, 0, 0, 204, 66, 0, 0, 77, 67, 0, 0, 206, 66, 0, 0, 77, 67, 0, 0, 208, 66, 0, 0, 77, 67, 0, 0, 210, 66, 0, 0, 77, 67, 0, 0, 212, 66, 0, 0, 77, 67, 0, 0, 214, 66, 0, 0, 77, 67, 0, 0, 216, 66, 0, 0, 77, 67, 0, 0, 218, 66, 0, 0, 77, 67, 0, 0, 220, 66, 0, 0, 77, 67, 0, 0, 222, 66, 0, 0, 77, 67, 0, 0, 224, 66, 0, 0, 77, 67, 0, 0, 226, 66, 0, 0, 77, 67, 0, 0, 228, 66, 0, 0, 77, 67, 0, 0, 230, 66, 0, 0, 77, 67, 0, 0, 232, 66, 0, 0, 77, 67, 0, 0, 234, 66, 0, 0, 77, 67, 0, 0, 236, 66, 0, 0, 77, 67, 0, 0, 238, 66, 0, 0, 77, 67, 0, 0, 240, 66, 0, 0, 77, 67, 0, 0, 242, 66, 0, 0, 77, 67, 0, 0, 244, 66, 0, 0, 77, 67, 0, 0, 246, 66, 0, 0, 77, 67, 0, 0, 248, 66, 0, 0, 77, 67, 0, 0, 250, 66, 0, 0, 77, 67, 0, 0, 252, 66, 0, 0, 77, 67, 0, 0, 254, 66, 0, 0, 77, 67, 0, 0, 0, 67, 0, 0, 77, 67, 0, 0, 1, 67, 0, 0, 77, 67, 0, 0, 2, 67, 0, 0, 77, 67, 0, 0, 3, 67, 0, 0, 77, 67, 0, 0, 4, 67, 0, 0, 77, 67, 0, 0, 5, 67, 0, 0, 77, 67, 0, 0, 6, 67, 0, 0, 77, 67, 0, 0, 7, 67, 0, 0, 77, 67, 0, 0, 8, 67, 0, 0, 77, 67, 0, 0, 9, 67, 0, 0, 77, 67, 0, 0, 10, 67, 0, 0, 77, 67, 0, 0, 11, 67, 0, 0, 77, 67, 0, 0, 12, 67, 0, 0, 77, 67, 0, 0, 36, 67, 0, 0, 77, 67, 0, 0, 37, 67, 0, 0, 77, 67, 0, 0, 38, 67, 0, 0, 77, 67, 0, 0, 39, 67, 0, 0, 77, 67, 0, 0, 40, 67, 0, 0, 77, 67, 0, 0, 41, 67, 0, 0, 77, 67, 0, 0, 42, 67, 0, 0, 77, 67, 0, 0, 43, 67, 0, 0, 77, 67, 0, 0, 44, 67, 0, 0, 77, 67, 0, 0, 45, 67, 0, 0, 77, 67, 0, 0, 46, 67, 0, 0, 77, 67, 0, 0, 47, 67, 0, 0, 77, 67, 0, 0, 48, 67, 0, 0, 77, 67, 0, 0, 49, 67, 0, 0, 77, 67, 0, 0, 50, 67, 0, 0, 77, 67, 0, 0, 51, 67, 0, 0, 77, 67, 0, 0, 52, 67, 0, 0, 77, 67, 0, 0, 53, 67, 0, 0, 77, 67, 0, 0, 54, 67, 0, 0, 77, 67, 0, 0, 55, 67, 0, 0, 78, 67, 0, 0, 184, 66, 0, 0, 78, 67, 0, 0, 186, 66, 0, 0, 78, 67, 0, 0, 188, 66, 0, 0, 78, 67, 0, 0, 190, 66, 0, 0, 78, 67, 0, 0, 192, 66, 0, 0, 78, 67, 0, 0, 194, 66, 0, 0, 78, 67, 0, 0, 196, 66, 0, 0, 78, 67, 0, 0, 198, 66, 0, 0, 78, 67, 0, 0, 200, 66, 0, 0, 78, 67, 0, 0, 202, 66, 0, 0, 78, 67, 0, 0, 204, 66, 0, 0, 78, 67, 0, 0, 206, 66, 0, 0, 78, 67, 0, 0, 208, 66, 0, 0, 78, 67, 0, 0, 210, 66, 0, 0, 78, 67, 0, 0, 212, 66, 0, 0, 78, 67, 0, 0, 214, 66, 0, 0, 78, 67, 0, 0, 216, 66, 0, 0, 78, 67, 0, 0, 218, 66, 0, 0, 78, 67, 0, 0, 220, 66, 0, 0, 78, 67, 0, 0, 222, 66, 0, 0, 78, 67, 0, 0, 224, 66, 0, 0, 78, 67, 0, 0, 226, 66, 0, 0, 78, 67, 0, 0, 228, 66, 0, 0, 78, 67, 0, 0, 230, 66, 0, 0, 78, 67, 0, 0, 232, 66, 0, 0, 78, 67, 0, 0, 234, 66, 0, 0, 78, 67, 0, 0, 236, 66, 0, 0, 78, 67, 0, 0, 238, 66, 0, 0, 78, 67, 0, 0, 240, 66, 0, 0, 78, 67, 0, 0, 242, 66, 0, 0, 78, 67, 0, 0, 244, 66, 0, 0, 78, 67, 0, 0, 246, 66, 0, 0, 78, 67, 0, 0, 248, 66, 0, 0, 78, 67, 0, 0, 250, 66, 0, 0, 78, 67, 0, 0, 252, 66, 0, 0, 78, 67, 0, 0, 254, 66, 0, 0, 78, 67, 0, 0, 0, 67, 0, 0, 78, 67, 0, 0, 1, 67, 0, 0, 78, 67, 0, 0, 2, 67, 0, 0, 78, 67, 0, 0, 3, 67, 0, 0, 78, 67, 0, 0, 4, 67, 0, 0, 78, 67, 0, 0, 5, 67, 0, 0, 78, 67, 0, 0, 6, 67, 0, 0, 78, 67, 0, 0, 7, 67, 0, 0, 78, 67, 0, 0, 8, 67, 0, 0, 78, 67, 0, 0, 9, 67, 0, 0, 78, 67, 0, 0, 10, 67, 0, 0, 78, 67, 0, 0, 11, 67, 0, 0, 78, 67, 0, 0, 12, 67, 0, 0, 78, 67, 0, 0, 13, 67, 0, 0, 78, 67, 0, 0, 14, 67, 0, 0, 78, 67, 0, 0, 15, 67, 0, 0, 78, 67, 0, 0, 16, 67, 0, 0, 78, 67, 0, 0, 17, 67, 0, 0, 78, 67, 0, 0, 18, 67, 0, 0, 78, 67, 0, 0, 19, 67, 0, 0, 78, 67, 0, 0, 20, 67, 0, 0, 78, 67, 0, 0, 21, 67, 0, 0, 78, 67, 0, 0, 22, 67, 0, 0, 78, 67, 0, 0, 23, 67, 0, 0, 78, 67, 0, 0, 24, 67, 0, 0, 78, 67, 0, 0, 25, 67, 0, 0, 78, 67, 0, 0, 26, 67, 0, 0, 78, 67, 0, 0, 36, 67, 0, 0, 78, 67, 0, 0, 37, 67, 0, 0, 78, 67, 0, 0, 38, 67, 0, 0, 78, 67, 0, 0, 39, 67, 0, 0, 78, 67, 0, 0, 40, 67, 0, 0, 78, 67, 0, 0, 41, 67, 0, 0, 78, 67, 0, 0, 42, 67, 0, 0, 78, 67, 0, 0, 43, 67, 0, 0, 78, 67, 0, 0, 44, 67, 0, 0, 78, 67, 0, 0, 45, 67, 0, 0, 78, 67, 0, 0, 46, 67, 0, 0, 78, 67, 0, 0, 47, 67, 0, 0, 78, 67, 0, 0, 48, 67, 0, 0, 78, 67, 0, 0, 49, 67, 0, 0, 78, 67, 0, 0, 50, 67, 0, 0, 78, 67, 0, 0, 51, 67, 0, 0, 78, 67, 0, 0, 52, 67, 0, 0, 78, 67, 0, 0, 53, 67, 0, 0, 78, 67, 0, 0, 54, 67, 0, 0, 78, 67, 0, 0, 55, 67, 0, 0, 79, 67, 0, 0, 182, 66, 0, 0, 79, 67, 0, 0, 184, 66, 0, 0, 79, 67, 0, 0, 186, 66, 0, 0, 79, 67, 0, 0, 188, 66, 0, 0, 79, 67, 0, 0, 190, 66, 0, 0, 79, 67, 0, 0, 192, 66, 0, 0, 79, 67, 0, 0, 194, 66, 0, 0, 79, 67, 0, 0, 196, 66, 0, 0, 79, 67, 0, 0, 198, 66, 0, 0, 79, 67, 0, 0, 200, 66, 0, 0, 79, 67, 0, 0, 202, 66, 0, 0, 79, 67, 0, 0, 204, 66, 0, 0, 79, 67, 0, 0, 206, 66, 0, 0, 79, 67, 0, 0, 208, 66, 0, 0, 79, 67, 0, 0, 210, 66, 0, 0, 79, 67, 0, 0, 212, 66, 0, 0, 79, 67, 0, 0, 214, 66, 0, 0, 79, 67, 0, 0, 216, 66, 0, 0, 79, 67, 0, 0, 218, 66, 0, 0, 79, 67, 0, 0, 220, 66, 0, 0, 79, 67, 0, 0, 222, 66, 0, 0, 79, 67, 0, 0, 224, 66, 0, 0, 79, 67, 0, 0, 226, 66, 0, 0, 79, 67, 0, 0, 228, 66, 0, 0, 79, 67, 0, 0, 230, 66, 0, 0, 79, 67, 0, 0, 232, 66, 0, 0, 79, 67, 0, 0, 234, 66, 0, 0, 79, 67, 0, 0, 236, 66, 0, 0, 79, 67, 0, 0, 238, 66, 0, 0, 79, 67, 0, 0, 240, 66, 0, 0, 79, 67, 0, 0, 242, 66, 0, 0, 79, 67, 0, 0, 244, 66, 0, 0, 79, 67, 0, 0, 246, 66, 0, 0, 79, 67, 0, 0, 248, 66, 0, 0, 79, 67, 0, 0, 250, 66, 0, 0, 79, 67, 0, 0, 252, 66, 0, 0, 79, 67, 0, 0, 254, 66, 0, 0, 79, 67, 0, 0, 0, 67, 0, 0, 79, 67, 0, 0, 1, 67, 0, 0, 79, 67, 0, 0, 2, 67, 0, 0, 79, 67, 0, 0, 3, 67, 0, 0, 79, 67, 0, 0, 4, 67, 0, 0, 79, 67, 0, 0, 5, 67, 0, 0, 79, 67, 0, 0, 6, 67, 0, 0, 79, 67, 0, 0, 7, 67, 0, 0, 79, 67, 0, 0, 8, 67, 0, 0, 79, 67, 0, 0, 9, 67, 0, 0, 79, 67, 0, 0, 10, 67, 0, 0, 79, 67, 0, 0, 11, 67, 0, 0, 79, 67, 0, 0, 12, 67, 0, 0, 79, 67, 0, 0, 13, 67, 0, 0, 79, 67, 0, 0, 14, 67, 0, 0, 79, 67, 0, 0, 15, 67, 0, 0, 79, 67, 0, 0, 16, 67, 0, 0, 79, 67, 0, 0, 17, 67, 0, 0, 79, 67, 0, 0, 18, 67, 0, 0, 79, 67, 0, 0, 19, 67, 0, 0, 79, 67, 0, 0, 20, 67, 0, 0, 79, 67, 0, 0, 21, 67, 0, 0, 79, 67, 0, 0, 22, 67, 0, 0, 79, 67, 0, 0, 23, 67, 0, 0, 79, 67, 0, 0, 24, 67, 0, 0, 79, 67, 0, 0, 25, 67, 0, 0, 79, 67, 0, 0, 26, 67, 0, 0, 79, 67, 0, 0, 27, 67, 0, 0, 79, 67, 0, 0, 35, 67, 0, 0, 79, 67, 0, 0, 36, 67, 0, 0, 79, 67, 0, 0, 37, 67, 0, 0, 79, 67, 0, 0, 38, 67, 0, 0, 79, 67, 0, 0, 39, 67, 0, 0, 79, 67, 0, 0, 40, 67, 0, 0, 79, 67, 0, 0, 41, 67, 0, 0, 79, 67, 0, 0, 42, 67, 0, 0, 79, 67, 0, 0, 43, 67, 0, 0, 79, 67, 0, 0, 44, 67, 0, 0, 79, 67, 0, 0, 45, 67, 0, 0, 79, 67, 0, 0, 46, 67, 0, 0, 79, 67, 0, 0, 47, 67, 0, 0, 79, 67, 0, 0, 48, 67, 0, 0, 79, 67, 0, 0, 49, 67, 0, 0, 79, 67, 0, 0, 50, 67, 0, 0, 79, 67, 0, 0, 51, 67, 0, 0, 79, 67, 0, 0, 52, 67, 0, 0, 79, 67, 0, 0, 53, 67, 0, 0, 79, 67, 0, 0, 54, 67, 0, 0, 79, 67, 0, 0, 55, 67, 0, 0, 79, 67, 0, 0, 56, 67, 0, 0, 80, 67, 0, 0, 182, 66, 0, 0, 80, 67, 0, 0, 184, 66, 0, 0, 80, 67, 0, 0, 186, 66, 0, 0, 80, 67, 0, 0, 188, 66, 0, 0, 80, 67, 0, 0, 190, 66, 0, 0, 80, 67, 0, 0, 192, 66, 0, 0, 80, 67, 0, 0, 194, 66, 0, 0, 80, 67, 0, 0, 196, 66, 0, 0, 80, 67, 0, 0, 198, 66, 0, 0, 80, 67, 0, 0, 200, 66, 0, 0, 80, 67, 0, 0, 202, 66, 0, 0, 80, 67, 0, 0, 204, 66, 0, 0, 80, 67, 0, 0, 206, 66, 0, 0, 80, 67, 0, 0, 208, 66, 0, 0, 80, 67, 0, 0, 210, 66, 0, 0, 80, 67, 0, 0, 212, 66, 0, 0, 80, 67, 0, 0, 214, 66, 0, 0, 80, 67, 0, 0, 216, 66, 0, 0, 80, 67, 0, 0, 218, 66, 0, 0, 80, 67, 0, 0, 220, 66, 0, 0, 80, 67, 0, 0, 222, 66, 0, 0, 80, 67, 0, 0, 224, 66, 0, 0, 80, 67, 0, 0, 226, 66, 0, 0, 80, 67, 0, 0, 228, 66, 0, 0, 80, 67, 0, 0, 230, 66, 0, 0, 80, 67, 0, 0, 232, 66, 0, 0, 80, 67, 0, 0, 234, 66, 0, 0, 80, 67, 0, 0, 236, 66, 0, 0, 80, 67, 0, 0, 238, 66, 0, 0, 80, 67, 0, 0, 240, 66, 0, 0, 80, 67, 0, 0, 242, 66, 0, 0, 80, 67, 0, 0, 244, 66, 0, 0, 80, 67, 0, 0, 246, 66, 0, 0, 80, 67, 0, 0, 248, 66, 0, 0, 80, 67, 0, 0, 250, 66, 0, 0, 80, 67, 0, 0, 252, 66, 0, 0, 80, 67, 0, 0, 254, 66, 0, 0, 80, 67, 0, 0, 0, 67, 0, 0, 80, 67, 0, 0, 1, 67, 0, 0, 80, 67, 0, 0, 2, 67, 0, 0, 80, 67, 0, 0, 3, 67, 0, 0, 80, 67, 0, 0, 4, 67, 0, 0, 80, 67, 0, 0, 5, 67, 0, 0, 80, 67, 0, 0, 6, 67, 0, 0, 80, 67, 0, 0, 7, 67, 0, 0, 80, 67, 0, 0, 8, 67, 0, 0, 80, 67, 0, 0, 9, 67, 0, 0, 80, 67, 0, 0, 10, 67, 0, 0, 80, 67, 0, 0, 11, 67, 0, 0, 80, 67, 0, 0, 12, 67, 0, 0, 80, 67, 0, 0, 13, 67, 0, 0, 80, 67, 0, 0, 14, 67, 0, 0, 80, 67, 0, 0, 15, 67, 0, 0, 80, 67, 0, 0, 16, 67, 0, 0, 80, 67, 0, 0, 17, 67, 0, 0, 80, 67, 0, 0, 18, 67, 0, 0, 80, 67, 0, 0, 19, 67, 0, 0, 80, 67, 0, 0, 20, 67, 0, 0, 80, 67, 0, 0, 21, 67, 0, 0, 80, 67, 0, 0, 22, 67, 0, 0, 80, 67, 0, 0, 23, 67, 0, 0, 80, 67, 0, 0, 24, 67, 0, 0, 80, 67, 0, 0, 25, 67, 0, 0, 80, 67, 0, 0, 26, 67, 0, 0, 80, 67, 0, 0, 27, 67, 0, 0, 80, 67, 0, 0, 34, 67, 0, 0, 80, 67, 0, 0, 35, 67, 0, 0, 80, 67, 0, 0, 36, 67, 0, 0, 80, 67, 0, 0, 37, 67, 0, 0, 80, 67, 0, 0, 38, 67, 0, 0, 80, 67, 0, 0, 39, 67, 0, 0, 80, 67, 0, 0, 40, 67, 0, 0, 80, 67, 0, 0, 41, 67, 0, 0, 80, 67, 0, 0, 42, 67, 0, 0, 80, 67, 0, 0, 43, 67, 0, 0, 80, 67, 0, 0, 44, 67, 0, 0, 80, 67, 0, 0, 45, 67, 0, 0, 80, 67, 0, 0, 46, 67, 0, 0, 80, 67, 0, 0, 47, 67, 0, 0, 80, 67, 0, 0, 48, 67, 0, 0, 80, 67, 0, 0, 49, 67, 0, 0, 80, 67, 0, 0, 50, 67, 0, 0, 80, 67, 0, 0, 51, 67, 0, 0, 80, 67, 0, 0, 52, 67, 0, 0, 80, 67, 0, 0, 53, 67, 0, 0, 80, 67, 0, 0, 54, 67, 0, 0, 80, 67, 0, 0, 55, 67, 0, 0, 80, 67, 0, 0, 56, 67, 0, 0, 80, 67, 0, 0, 57, 67, 0, 0, 81, 67, 0, 0, 180, 66, 0, 0, 81, 67, 0, 0, 182, 66, 0, 0, 81, 67, 0, 0, 184, 66, 0, 0, 81, 67, 0, 0, 186, 66, 0, 0, 81, 67, 0, 0, 188, 66, 0, 0, 81, 67, 0, 0, 190, 66, 0, 0, 81, 67, 0, 0, 192, 66, 0, 0, 81, 67, 0, 0, 194, 66, 0, 0, 81, 67, 0, 0, 196, 66, 0, 0, 81, 67, 0, 0, 198, 66, 0, 0, 81, 67, 0, 0, 200, 66, 0, 0, 81, 67, 0, 0, 202, 66, 0, 0, 81, 67, 0, 0, 204, 66, 0, 0, 81, 67, 0, 0, 206, 66, 0, 0, 81, 67, 0, 0, 208, 66, 0, 0, 81, 67, 0, 0, 210, 66, 0, 0, 81, 67, 0, 0, 212, 66, 0, 0, 81, 67, 0, 0, 214, 66, 0, 0, 81, 67, 0, 0, 216, 66, 0, 0, 81, 67, 0, 0, 218, 66, 0, 0, 81, 67, 0, 0, 220, 66, 0, 0, 81, 67, 0, 0, 222, 66, 0, 0, 81, 67, 0, 0, 224, 66, 0, 0, 81, 67, 0, 0, 226, 66, 0, 0, 81, 67, 0, 0, 228, 66, 0, 0, 81, 67, 0, 0, 230, 66, 0, 0, 81, 67, 0, 0, 232, 66, 0, 0, 81, 67, 0, 0, 234, 66, 0, 0, 81, 67, 0, 0, 236, 66, 0, 0, 81, 67, 0, 0, 238, 66, 0, 0, 81, 67, 0, 0, 240, 66, 0, 0, 81, 67, 0, 0, 242, 66, 0, 0, 81, 67, 0, 0, 244, 66, 0, 0, 81, 67, 0, 0, 246, 66, 0, 0, 81, 67, 0, 0, 248, 66, 0, 0, 81, 67, 0, 0, 250, 66, 0, 0, 81, 67, 0, 0, 252, 66, 0, 0, 81, 67, 0, 0, 254, 66, 0, 0, 81, 67, 0, 0, 0, 67, 0, 0, 81, 67, 0, 0, 1, 67, 0, 0, 81, 67, 0, 0, 2, 67, 0, 0, 81, 67, 0, 0, 3, 67, 0, 0, 81, 67, 0, 0, 4, 67, 0, 0, 81, 67, 0, 0, 5, 67, 0, 0, 81, 67, 0, 0, 6, 67, 0, 0, 81, 67, 0, 0, 7, 67, 0, 0, 81, 67, 0, 0, 8, 67, 0, 0, 81, 67, 0, 0, 9, 67, 0, 0, 81, 67, 0, 0, 10, 67, 0, 0, 81, 67, 0, 0, 11, 67, 0, 0, 81, 67, 0, 0, 12, 67, 0, 0, 81, 67, 0, 0, 13, 67, 0, 0, 81, 67, 0, 0, 14, 67, 0, 0, 81, 67, 0, 0, 15, 67, 0, 0, 81, 67, 0, 0, 16, 67, 0, 0, 81, 67, 0, 0, 17, 67, 0, 0, 81, 67, 0, 0, 18, 67, 0, 0, 81, 67, 0, 0, 19, 67, 0, 0, 81, 67, 0, 0, 20, 67, 0, 0, 81, 67, 0, 0, 21, 67, 0, 0, 81, 67, 0, 0, 22, 67, 0, 0, 81, 67, 0, 0, 23, 67, 0, 0, 81, 67, 0, 0, 24, 67, 0, 0, 81, 67, 0, 0, 25, 67, 0, 0, 81, 67, 0, 0, 26, 67, 0, 0, 81, 67, 0, 0, 27, 67, 0, 0, 81, 67, 0, 0, 34, 67, 0, 0, 81, 67, 0, 0, 35, 67, 0, 0, 81, 67, 0, 0, 36, 67, 0, 0, 81, 67, 0, 0, 37, 67, 0, 0, 81, 67, 0, 0, 38, 67, 0, 0, 81, 67, 0, 0, 39, 67, 0, 0, 81, 67, 0, 0, 40, 67, 0, 0, 81, 67, 0, 0, 41, 67, 0, 0, 81, 67, 0, 0, 42, 67, 0, 0, 81, 67, 0, 0, 43, 67, 0, 0, 81, 67, 0, 0, 44, 67, 0, 0, 81, 67, 0, 0, 45, 67, 0, 0, 81, 67, 0, 0, 46, 67, 0, 0, 81, 67, 0, 0, 47, 67, 0, 0, 81, 67, 0, 0, 48, 67, 0, 0, 81, 67, 0, 0, 49, 67, 0, 0, 81, 67, 0, 0, 50, 67, 0, 0, 81, 67, 0, 0, 51, 67, 0, 0, 81, 67, 0, 0, 52, 67, 0, 0, 81, 67, 0, 0, 53, 67, 0, 0, 81, 67, 0, 0, 54, 67, 0, 0, 81, 67, 0, 0, 55, 67, 0, 0, 81, 67, 0, 0, 56, 67, 0, 0, 81, 67, 0, 0, 57, 67, 0, 0, 82, 67, 0, 0, 180, 66, 0, 0, 82, 67, 0, 0, 182, 66, 0, 0, 82, 67, 0, 0, 184, 66, 0, 0, 82, 67, 0, 0, 186, 66, 0, 0, 82, 67, 0, 0, 188, 66, 0, 0, 82, 67, 0, 0, 190, 66, 0, 0, 82, 67, 0, 0, 192, 66, 0, 0, 82, 67, 0, 0, 194, 66, 0, 0, 82, 67, 0, 0, 196, 66, 0, 0, 82, 67, 0, 0, 198, 66, 0, 0, 82, 67, 0, 0, 200, 66, 0, 0, 82, 67, 0, 0, 202, 66, 0, 0, 82, 67, 0, 0, 204, 66, 0, 0, 82, 67, 0, 0, 206, 66, 0, 0, 82, 67, 0, 0, 208, 66, 0, 0, 82, 67, 0, 0, 210, 66, 0, 0, 82, 67, 0, 0, 212, 66, 0, 0, 82, 67, 0, 0, 214, 66, 0, 0, 82, 67, 0, 0, 216, 66, 0, 0, 82, 67, 0, 0, 218, 66, 0, 0, 82, 67, 0, 0, 220, 66, 0, 0, 82, 67, 0, 0, 222, 66, 0, 0, 82, 67, 0, 0, 224, 66, 0, 0, 82, 67, 0, 0, 226, 66, 0, 0, 82, 67, 0, 0, 228, 66, 0, 0, 82, 67, 0, 0, 230, 66, 0, 0, 82, 67, 0, 0, 232, 66, 0, 0, 82, 67, 0, 0, 234, 66, 0, 0, 82, 67, 0, 0, 236, 66, 0, 0, 82, 67, 0, 0, 238, 66, 0, 0, 82, 67, 0, 0, 240, 66, 0, 0, 82, 67, 0, 0, 242, 66, 0, 0, 82, 67, 0, 0, 244, 66, 0, 0, 82, 67, 0, 0, 246, 66, 0, 0, 82, 67, 0, 0, 248, 66, 0, 0, 82, 67, 0, 0, 250, 66, 0, 0, 82, 67, 0, 0, 252, 66, 0, 0, 82, 67, 0, 0, 254, 66, 0, 0, 82, 67, 0, 0, 0, 67, 0, 0, 82, 67, 0, 0, 1, 67, 0, 0, 82, 67, 0, 0, 2, 67, 0, 0, 82, 67, 0, 0, 3, 67, 0, 0, 82, 67, 0, 0, 4, 67, 0, 0, 82, 67, 0, 0, 5, 67, 0, 0, 82, 67, 0, 0, 6, 67, 0, 0, 82, 67, 0, 0, 7, 67, 0, 0, 82, 67, 0, 0, 8, 67, 0, 0, 82, 67, 0, 0, 9, 67, 0, 0, 82, 67, 0, 0, 10, 67, 0, 0, 82, 67, 0, 0, 11, 67, 0, 0, 82, 67, 0, 0, 12, 67, 0, 0, 82, 67, 0, 0, 13, 67, 0, 0, 82, 67, 0, 0, 14, 67, 0, 0, 82, 67, 0, 0, 15, 67, 0, 0, 82, 67, 0, 0, 16, 67, 0, 0, 82, 67, 0, 0, 17, 67, 0, 0, 82, 67, 0, 0, 18, 67, 0, 0, 82, 67, 0, 0, 19, 67, 0, 0, 82, 67, 0, 0, 20, 67, 0, 0, 82, 67, 0, 0, 21, 67, 0, 0, 82, 67, 0, 0, 22, 67, 0, 0, 82, 67, 0, 0, 23, 67, 0, 0, 82, 67, 0, 0, 24, 67, 0, 0, 82, 67, 0, 0, 25, 67, 0, 0, 82, 67, 0, 0, 26, 67, 0, 0, 82, 67, 0, 0, 27, 67, 0, 0, 82, 67, 0, 0, 34, 67, 0, 0, 82, 67, 0, 0, 35, 67, 0, 0, 82, 67, 0, 0, 36, 67, 0, 0, 82, 67, 0, 0, 37, 67, 0, 0, 82, 67, 0, 0, 38, 67, 0, 0, 82, 67, 0, 0, 39, 67, 0, 0, 82, 67, 0, 0, 40, 67, 0, 0, 82, 67, 0, 0, 41, 67, 0, 0, 82, 67, 0, 0, 42, 67, 0, 0, 82, 67, 0, 0, 43, 67, 0, 0, 82, 67, 0, 0, 44, 67, 0, 0, 82, 67, 0, 0, 45, 67, 0, 0, 82, 67, 0, 0, 46, 67, 0, 0, 82, 67, 0, 0, 47, 67, 0, 0, 82, 67, 0, 0, 48, 67, 0, 0, 82, 67, 0, 0, 49, 67, 0, 0, 82, 67, 0, 0, 50, 67, 0, 0, 82, 67, 0, 0, 51, 67, 0, 0, 82, 67, 0, 0, 52, 67, 0, 0, 82, 67, 0, 0, 53, 67, 0, 0, 82, 67, 0, 0, 54, 67, 0, 0, 82, 67, 0, 0, 55, 67, 0, 0, 82, 67, 0, 0, 56, 67, 0, 0, 82, 67, 0, 0, 57, 67, 0, 0, 83, 67, 0, 0, 180, 66, 0, 0, 83, 67, 0, 0, 182, 66, 0, 0, 83, 67, 0, 0, 184, 66, 0, 0, 83, 67, 0, 0, 186, 66, 0, 0, 83, 67, 0, 0, 188, 66, 0, 0, 83, 67, 0, 0, 190, 66, 0, 0, 83, 67, 0, 0, 192, 66, 0, 0, 83, 67, 0, 0, 194, 66, 0, 0, 83, 67, 0, 0, 196, 66, 0, 0, 83, 67, 0, 0, 198, 66, 0, 0, 83, 67, 0, 0, 200, 66, 0, 0, 83, 67, 0, 0, 202, 66, 0, 0, 83, 67, 0, 0, 204, 66, 0, 0, 83, 67, 0, 0, 206, 66, 0, 0, 83, 67, 0, 0, 208, 66, 0, 0, 83, 67, 0, 0, 210, 66, 0, 0, 83, 67, 0, 0, 212, 66, 0, 0, 83, 67, 0, 0, 214, 66, 0, 0, 83, 67, 0, 0, 216, 66, 0, 0, 83, 67, 0, 0, 218, 66, 0, 0, 83, 67, 0, 0, 220, 66, 0, 0, 83, 67, 0, 0, 222, 66, 0, 0, 83, 67, 0, 0, 224, 66, 0, 0, 83, 67, 0, 0, 226, 66, 0, 0, 83, 67, 0, 0, 228, 66, 0, 0, 83, 67, 0, 0, 230, 66, 0, 0, 83, 67, 0, 0, 232, 66, 0, 0, 83, 67, 0, 0, 234, 66, 0, 0, 83, 67, 0, 0, 236, 66, 0, 0, 83, 67, 0, 0, 238, 66, 0, 0, 83, 67, 0, 0, 240, 66, 0, 0, 83, 67, 0, 0, 242, 66, 0, 0, 83, 67, 0, 0, 244, 66, 0, 0, 83, 67, 0, 0, 246, 66, 0, 0, 83, 67, 0, 0, 248, 66, 0, 0, 83, 67, 0, 0, 250, 66, 0, 0, 83, 67, 0, 0, 252, 66, 0, 0, 83, 67, 0, 0, 254, 66, 0, 0, 83, 67, 0, 0, 0, 67, 0, 0, 83, 67, 0, 0, 1, 67, 0, 0, 83, 67, 0, 0, 2, 67, 0, 0, 83, 67, 0, 0, 3, 67, 0, 0, 83, 67, 0, 0, 4, 67, 0, 0, 83, 67, 0, 0, 5, 67, 0, 0, 83, 67, 0, 0, 6, 67, 0, 0, 83, 67, 0, 0, 7, 67, 0, 0, 83, 67, 0, 0, 8, 67, 0, 0, 83, 67, 0, 0, 9, 67, 0, 0, 83, 67, 0, 0, 10, 67, 0, 0, 83, 67, 0, 0, 11, 67, 0, 0, 83, 67, 0, 0, 12, 67, 0, 0, 83, 67, 0, 0, 13, 67, 0, 0, 83, 67, 0, 0, 14, 67, 0, 0, 83, 67, 0, 0, 15, 67, 0, 0, 83, 67, 0, 0, 16, 67, 0, 0, 83, 67, 0, 0, 17, 67, 0, 0, 83, 67, 0, 0, 18, 67, 0, 0, 83, 67, 0, 0, 19, 67, 0, 0, 83, 67, 0, 0, 20, 67, 0, 0, 83, 67, 0, 0, 21, 67, 0, 0, 83, 67, 0, 0, 22, 67, 0, 0, 83, 67, 0, 0, 23, 67, 0, 0, 83, 67, 0, 0, 24, 67, 0, 0, 83, 67, 0, 0, 25, 67, 0, 0, 83, 67, 0, 0, 26, 67, 0, 0, 83, 67, 0, 0, 27, 67, 0, 0, 83, 67, 0, 0, 34, 67, 0, 0, 83, 67, 0, 0, 35, 67, 0, 0, 83, 67, 0, 0, 36, 67, 0, 0, 83, 67, 0, 0, 37, 67, 0, 0, 83, 67, 0, 0, 38, 67, 0, 0, 83, 67, 0, 0, 39, 67, 0, 0, 83, 67, 0, 0, 40, 67, 0, 0, 83, 67, 0, 0, 41, 67, 0, 0, 83, 67, 0, 0, 42, 67, 0, 0, 83, 67, 0, 0, 43, 67, 0, 0, 83, 67, 0, 0, 44, 67, 0, 0, 83, 67, 0, 0, 45, 67, 0, 0, 83, 67, 0, 0, 46, 67, 0, 0, 83, 67, 0, 0, 47, 67, 0, 0, 83, 67, 0, 0, 48, 67, 0, 0, 83, 67, 0, 0, 49, 67, 0, 0, 83, 67, 0, 0, 50, 67, 0, 0, 83, 67, 0, 0, 51, 67, 0, 0, 83, 67, 0, 0, 52, 67, 0, 0, 83, 67, 0, 0, 53, 67, 0, 0, 83, 67, 0, 0, 54, 67, 0, 0, 83, 67, 0, 0, 55, 67, 0, 0, 83, 67, 0, 0, 56, 67, 0, 0, 83, 67, 0, 0, 57, 67, 0, 0, 84, 67, 0, 0, 180, 66, 0, 0, 84, 67, 0, 0, 182, 66, 0, 0, 84, 67, 0, 0, 184, 66, 0, 0, 84, 67, 0, 0, 186, 66, 0, 0, 84, 67, 0, 0, 188, 66, 0, 0, 84, 67, 0, 0, 190, 66, 0, 0, 84, 67, 0, 0, 192, 66, 0, 0, 84, 67, 0, 0, 194, 66, 0, 0, 84, 67, 0, 0, 196, 66, 0, 0, 84, 67, 0, 0, 198, 66, 0, 0, 84, 67, 0, 0, 200, 66, 0, 0, 84, 67, 0, 0, 202, 66, 0, 0, 84, 67, 0, 0, 204, 66, 0, 0, 84, 67, 0, 0, 206, 66, 0, 0, 84, 67, 0, 0, 208, 66, 0, 0, 84, 67, 0, 0, 210, 66, 0, 0, 84, 67, 0, 0, 212, 66, 0, 0, 84, 67, 0, 0, 214, 66, 0, 0, 84, 67, 0, 0, 216, 66, 0, 0, 84, 67, 0, 0, 218, 66, 0, 0, 84, 67, 0, 0, 220, 66, 0, 0, 84, 67, 0, 0, 222, 66, 0, 0, 84, 67, 0, 0, 224, 66, 0, 0, 84, 67, 0, 0, 226, 66, 0, 0, 84, 67, 0, 0, 228, 66, 0, 0, 84, 67, 0, 0, 230, 66, 0, 0, 84, 67, 0, 0, 232, 66, 0, 0, 84, 67, 0, 0, 234, 66, 0, 0, 84, 67, 0, 0, 236, 66, 0, 0, 84, 67, 0, 0, 238, 66, 0, 0, 84, 67, 0, 0, 240, 66, 0, 0, 84, 67, 0, 0, 242, 66, 0, 0, 84, 67, 0, 0, 244, 66, 0, 0, 84, 67, 0, 0, 246, 66, 0, 0, 84, 67, 0, 0, 248, 66, 0, 0, 84, 67, 0, 0, 250, 66, 0, 0, 84, 67, 0, 0, 252, 66, 0, 0, 84, 67, 0, 0, 254, 66, 0, 0, 84, 67, 0, 0, 0, 67, 0, 0, 84, 67, 0, 0, 1, 67, 0, 0, 84, 67, 0, 0, 2, 67, 0, 0, 84, 67, 0, 0, 3, 67, 0, 0, 84, 67, 0, 0, 4, 67, 0, 0, 84, 67, 0, 0, 5, 67, 0, 0, 84, 67, 0, 0, 6, 67, 0, 0, 84, 67, 0, 0, 7, 67, 0, 0, 84, 67, 0, 0, 8, 67, 0, 0, 84, 67, 0, 0, 9, 67, 0, 0, 84, 67, 0, 0, 10, 67, 0, 0, 84, 67, 0, 0, 11, 67, 0, 0, 84, 67, 0, 0, 12, 67, 0, 0, 84, 67, 0, 0, 13, 67, 0, 0, 84, 67, 0, 0, 14, 67, 0, 0, 84, 67, 0, 0, 15, 67, 0, 0, 84, 67, 0, 0, 16, 67, 0, 0, 84, 67, 0, 0, 17, 67, 0, 0, 84, 67, 0, 0, 18, 67, 0, 0, 84, 67, 0, 0, 19, 67, 0, 0, 84, 67, 0, 0, 20, 67, 0, 0, 84, 67, 0, 0, 21, 67, 0, 0, 84, 67, 0, 0, 22, 67, 0, 0, 84, 67, 0, 0, 23, 67, 0, 0, 84, 67, 0, 0, 24, 67, 0, 0, 84, 67, 0, 0, 25, 67, 0, 0, 84, 67, 0, 0, 26, 67, 0, 0, 84, 67, 0, 0, 27, 67, 0, 0, 84, 67, 0, 0, 34, 67, 0, 0, 84, 67, 0, 0, 35, 67, 0, 0, 84, 67, 0, 0, 36, 67, 0, 0, 84, 67, 0, 0, 37, 67, 0, 0, 84, 67, 0, 0, 38, 67, 0, 0, 84, 67, 0, 0, 39, 67, 0, 0, 84, 67, 0, 0, 40, 67, 0, 0, 84, 67, 0, 0, 41, 67, 0, 0, 84, 67, 0, 0, 42, 67, 0, 0, 84, 67, 0, 0, 43, 67, 0, 0, 84, 67, 0, 0, 44, 67, 0, 0, 84, 67, 0, 0, 45, 67, 0, 0, 84, 67, 0, 0, 46, 67, 0, 0, 84, 67, 0, 0, 47, 67, 0, 0, 84, 67, 0, 0, 48, 67, 0, 0, 84, 67, 0, 0, 49, 67, 0, 0, 84, 67, 0, 0, 50, 67, 0, 0, 84, 67, 0, 0, 51, 67, 0, 0, 84, 67, 0, 0, 52, 67, 0, 0, 84, 67, 0, 0, 53, 67, 0, 0, 84, 67, 0, 0, 54, 67, 0, 0, 84, 67, 0, 0, 55, 67, 0, 0, 84, 67, 0, 0, 56, 67, 0, 0, 84, 67, 0, 0, 57, 67, 0, 0, 85, 67, 0, 0, 180, 66, 0, 0, 85, 67, 0, 0, 182, 66, 0, 0, 85, 67, 0, 0, 184, 66, 0, 0, 85, 67, 0, 0, 186, 66, 0, 0, 85, 67, 0, 0, 188, 66, 0, 0, 85, 67, 0, 0, 190, 66, 0, 0, 85, 67, 0, 0, 192, 66, 0, 0, 85, 67, 0, 0, 194, 66, 0, 0, 85, 67, 0, 0, 196, 66, 0, 0, 85, 67, 0, 0, 198, 66, 0, 0, 85, 67, 0, 0, 200, 66, 0, 0, 85, 67, 0, 0, 202, 66, 0, 0, 85, 67, 0, 0, 204, 66, 0, 0, 85, 67, 0, 0, 206, 66, 0, 0, 85, 67, 0, 0, 208, 66, 0, 0, 85, 67, 0, 0, 210, 66, 0, 0, 85, 67, 0, 0, 212, 66, 0, 0, 85, 67, 0, 0, 214, 66, 0, 0, 85, 67, 0, 0, 216, 66, 0, 0, 85, 67, 0, 0, 218, 66, 0, 0, 85, 67, 0, 0, 220, 66, 0, 0, 85, 67, 0, 0, 222, 66, 0, 0, 85, 67, 0, 0, 224, 66, 0, 0, 85, 67, 0, 0, 226, 66, 0, 0, 85, 67, 0, 0, 228, 66, 0, 0, 85, 67, 0, 0, 230, 66, 0, 0, 85, 67, 0, 0, 232, 66, 0, 0, 85, 67, 0, 0, 234, 66, 0, 0, 85, 67, 0, 0, 236, 66, 0, 0, 85, 67, 0, 0, 238, 66, 0, 0, 85, 67, 0, 0, 240, 66, 0, 0, 85, 67, 0, 0, 242, 66, 0, 0, 85, 67, 0, 0, 244, 66, 0, 0, 85, 67, 0, 0, 246, 66, 0, 0, 85, 67, 0, 0, 248, 66, 0, 0, 85, 67, 0, 0, 250, 66, 0, 0, 85, 67, 0, 0, 252, 66, 0, 0, 85, 67, 0, 0, 254, 66, 0, 0, 85, 67, 0, 0, 0, 67, 0, 0, 85, 67, 0, 0, 1, 67, 0, 0, 85, 67, 0, 0, 2, 67, 0, 0, 85, 67, 0, 0, 3, 67, 0, 0, 85, 67, 0, 0, 4, 67, 0, 0, 85, 67, 0, 0, 5, 67, 0, 0, 85, 67, 0, 0, 6, 67, 0, 0, 85, 67, 0, 0, 7, 67, 0, 0, 85, 67, 0, 0, 8, 67, 0, 0, 85, 67, 0, 0, 9, 67, 0, 0, 85, 67, 0, 0, 10, 67, 0, 0, 85, 67, 0, 0, 11, 67, 0, 0, 85, 67, 0, 0, 12, 67, 0, 0, 85, 67, 0, 0, 13, 67, 0, 0, 85, 67, 0, 0, 14, 67, 0, 0, 85, 67, 0, 0, 15, 67, 0, 0, 85, 67, 0, 0, 16, 67, 0, 0, 85, 67, 0, 0, 17, 67, 0, 0, 85, 67, 0, 0, 18, 67, 0, 0, 85, 67, 0, 0, 19, 67, 0, 0, 85, 67, 0, 0, 20, 67, 0, 0, 85, 67, 0, 0, 21, 67, 0, 0, 85, 67, 0, 0, 22, 67, 0, 0, 85, 67, 0, 0, 23, 67, 0, 0, 85, 67, 0, 0, 24, 67, 0, 0, 85, 67, 0, 0, 25, 67, 0, 0, 85, 67, 0, 0, 26, 67, 0, 0, 85, 67, 0, 0, 27, 67, 0, 0, 85, 67, 0, 0, 34, 67, 0, 0, 85, 67, 0, 0, 35, 67, 0, 0, 85, 67, 0, 0, 36, 67, 0, 0, 85, 67, 0, 0, 37, 67, 0, 0, 85, 67, 0, 0, 38, 67, 0, 0, 85, 67, 0, 0, 39, 67, 0, 0, 85, 67, 0, 0, 40, 67, 0, 0, 85, 67, 0, 0, 41, 67, 0, 0, 85, 67, 0, 0, 42, 67, 0, 0, 85, 67, 0, 0, 43, 67, 0, 0, 85, 67, 0, 0, 44, 67, 0, 0, 85, 67, 0, 0, 45, 67, 0, 0, 85, 67, 0, 0, 46, 67, 0, 0, 85, 67, 0, 0, 47, 67, 0, 0, 85, 67, 0, 0, 48, 67, 0, 0, 85, 67, 0, 0, 49, 67, 0, 0, 85, 67, 0, 0, 50, 67, 0, 0, 85, 67, 0, 0, 51, 67, 0, 0, 85, 67, 0, 0, 52, 67, 0, 0, 85, 67, 0, 0, 53, 67, 0, 0, 85, 67, 0, 0, 54, 67, 0, 0, 85, 67, 0, 0, 55, 67, 0, 0, 85, 67, 0, 0, 56, 67, 0, 0, 85, 67, 0, 0, 57, 67, 0, 0, 86, 67, 0, 0, 180, 66, 0, 0, 86, 67, 0, 0, 182, 66, 0, 0, 86, 67, 0, 0, 184, 66, 0, 0, 86, 67, 0, 0, 186, 66, 0, 0, 86, 67, 0, 0, 188, 66, 0, 0, 86, 67, 0, 0, 190, 66, 0, 0, 86, 67, 0, 0, 192, 66, 0, 0, 86, 67, 0, 0, 194, 66, 0, 0, 86, 67, 0, 0, 196, 66, 0, 0, 86, 67, 0, 0, 198, 66, 0, 0, 86, 67, 0, 0, 200, 66, 0, 0, 86, 67, 0, 0, 202, 66, 0, 0, 86, 67, 0, 0, 204, 66, 0, 0, 86, 67, 0, 0, 206, 66, 0, 0, 86, 67, 0, 0, 208, 66, 0, 0, 86, 67, 0, 0, 210, 66, 0, 0, 86, 67, 0, 0, 212, 66, 0, 0, 86, 67, 0, 0, 214, 66, 0, 0, 86, 67, 0, 0, 216, 66, 0, 0, 86, 67, 0, 0, 218, 66, 0, 0, 86, 67, 0, 0, 220, 66, 0, 0, 86, 67, 0, 0, 222, 66, 0, 0, 86, 67, 0, 0, 224, 66, 0, 0, 86, 67, 0, 0, 226, 66, 0, 0, 86, 67, 0, 0, 228, 66, 0, 0, 86, 67, 0, 0, 230, 66, 0, 0, 86, 67, 0, 0, 232, 66, 0, 0, 86, 67, 0, 0, 234, 66, 0, 0, 86, 67, 0, 0, 236, 66, 0, 0, 86, 67, 0, 0, 238, 66, 0, 0, 86, 67, 0, 0, 240, 66, 0, 0, 86, 67, 0, 0, 242, 66, 0, 0, 86, 67, 0, 0, 244, 66, 0, 0, 86, 67, 0, 0, 246, 66, 0, 0, 86, 67, 0, 0, 248, 66, 0, 0, 86, 67, 0, 0, 250, 66, 0, 0, 86, 67, 0, 0, 252, 66, 0, 0, 86, 67, 0, 0, 254, 66, 0, 0, 86, 67, 0, 0, 0, 67, 0, 0, 86, 67, 0, 0, 1, 67, 0, 0, 86, 67, 0, 0, 2, 67, 0, 0, 86, 67, 0, 0, 3, 67, 0, 0, 86, 67, 0, 0, 4, 67, 0, 0, 86, 67, 0, 0, 5, 67, 0, 0, 86, 67, 0, 0, 6, 67, 0, 0, 86, 67, 0, 0, 7, 67, 0, 0, 86, 67, 0, 0, 8, 67, 0, 0, 86, 67, 0, 0, 9, 67, 0, 0, 86, 67, 0, 0, 10, 67, 0, 0, 86, 67, 0, 0, 11, 67, 0, 0, 86, 67, 0, 0, 12, 67, 0, 0, 86, 67, 0, 0, 13, 67, 0, 0, 86, 67, 0, 0, 14, 67, 0, 0, 86, 67, 0, 0, 15, 67, 0, 0, 86, 67, 0, 0, 16, 67, 0, 0, 86, 67, 0, 0, 17, 67, 0, 0, 86, 67, 0, 0, 18, 67, 0, 0, 86, 67, 0, 0, 19, 67, 0, 0, 86, 67, 0, 0, 20, 67, 0, 0, 86, 67, 0, 0, 21, 67, 0, 0, 86, 67, 0, 0, 22, 67, 0, 0, 86, 67, 0, 0, 23, 67, 0, 0, 86, 67, 0, 0, 24, 67, 0, 0, 86, 67, 0, 0, 25, 67, 0, 0, 86, 67, 0, 0, 26, 67, 0, 0, 86, 67, 0, 0, 27, 67, 0, 0, 86, 67, 0, 0, 34, 67, 0, 0, 86, 67, 0, 0, 35, 67, 0, 0, 86, 67, 0, 0, 36, 67, 0, 0, 86, 67, 0, 0, 37, 67, 0, 0, 86, 67, 0, 0, 38, 67, 0, 0, 86, 67, 0, 0, 39, 67, 0, 0, 86, 67, 0, 0, 40, 67, 0, 0, 86, 67, 0, 0, 41, 67, 0, 0, 86, 67, 0, 0, 42, 67, 0, 0, 86, 67, 0, 0, 43, 67, 0, 0, 86, 67, 0, 0, 44, 67, 0, 0, 86, 67, 0, 0, 45, 67, 0, 0, 86, 67, 0, 0, 46, 67, 0, 0, 86, 67, 0, 0, 47, 67, 0, 0, 86, 67, 0, 0, 48, 67, 0, 0, 86, 67, 0, 0, 49, 67, 0, 0, 86, 67, 0, 0, 50, 67, 0, 0, 86, 67, 0, 0, 51, 67, 0, 0, 86, 67, 0, 0, 52, 67, 0, 0, 86, 67, 0, 0, 53, 67, 0, 0, 86, 67, 0, 0, 54, 67, 0, 0, 86, 67, 0, 0, 55, 67, 0, 0, 86, 67, 0, 0, 56, 67, 0, 0, 86, 67, 0, 0, 57, 67, 0, 0, 87, 67, 0, 0, 180, 66, 0, 0, 87, 67, 0, 0, 182, 66, 0, 0, 87, 67, 0, 0, 184, 66, 0, 0, 87, 67, 0, 0, 186, 66, 0, 0, 87, 67, 0, 0, 188, 66, 0, 0, 87, 67, 0, 0, 190, 66, 0, 0, 87, 67, 0, 0, 192, 66, 0, 0, 87, 67, 0, 0, 194, 66, 0, 0, 87, 67, 0, 0, 196, 66, 0, 0, 87, 67, 0, 0, 198, 66, 0, 0, 87, 67, 0, 0, 200, 66, 0, 0, 87, 67, 0, 0, 202, 66, 0, 0, 87, 67, 0, 0, 204, 66, 0, 0, 87, 67, 0, 0, 206, 66, 0, 0, 87, 67, 0, 0, 208, 66, 0, 0, 87, 67, 0, 0, 210, 66, 0, 0, 87, 67, 0, 0, 212, 66, 0, 0, 87, 67, 0, 0, 214, 66, 0, 0, 87, 67, 0, 0, 216, 66, 0, 0, 87, 67, 0, 0, 218, 66, 0, 0, 87, 67, 0, 0, 220, 66, 0, 0, 87, 67, 0, 0, 222, 66, 0, 0, 87, 67, 0, 0, 224, 66, 0, 0, 87, 67, 0, 0, 226, 66, 0, 0, 87, 67, 0, 0, 228, 66, 0, 0, 87, 67, 0, 0, 230, 66, 0, 0, 87, 67, 0, 0, 232, 66, 0, 0, 87, 67, 0, 0, 234, 66, 0, 0, 87, 67, 0, 0, 236, 66, 0, 0, 87, 67, 0, 0, 238, 66, 0, 0, 87, 67, 0, 0, 240, 66, 0, 0, 87, 67, 0, 0, 242, 66, 0, 0, 87, 67, 0, 0, 244, 66, 0, 0, 87, 67, 0, 0, 246, 66, 0, 0, 87, 67, 0, 0, 248, 66, 0, 0, 87, 67, 0, 0, 250, 66, 0, 0, 87, 67, 0, 0, 252, 66, 0, 0, 87, 67, 0, 0, 254, 66, 0, 0, 87, 67, 0, 0, 0, 67, 0, 0, 87, 67, 0, 0, 1, 67, 0, 0, 87, 67, 0, 0, 2, 67, 0, 0, 87, 67, 0, 0, 3, 67, 0, 0, 87, 67, 0, 0, 4, 67, 0, 0, 87, 67, 0, 0, 5, 67, 0, 0, 87, 67, 0, 0, 6, 67, 0, 0, 87, 67, 0, 0, 7, 67, 0, 0, 87, 67, 0, 0, 8, 67, 0, 0, 87, 67, 0, 0, 9, 67, 0, 0, 87, 67, 0, 0, 10, 67, 0, 0, 87, 67, 0, 0, 11, 67, 0, 0, 87, 67, 0, 0, 12, 67, 0, 0, 87, 67, 0, 0, 13, 67, 0, 0, 87, 67, 0, 0, 14, 67, 0, 0, 87, 67, 0, 0, 15, 67, 0, 0, 87, 67, 0, 0, 16, 67, 0, 0, 87, 67, 0, 0, 17, 67, 0, 0, 87, 67, 0, 0, 18, 67, 0, 0, 87, 67, 0, 0, 19, 67, 0, 0, 87, 67, 0, 0, 20, 67, 0, 0, 87, 67, 0, 0, 21, 67, 0, 0, 87, 67, 0, 0, 22, 67, 0, 0, 87, 67, 0, 0, 23, 67, 0, 0, 87, 67, 0, 0, 24, 67, 0, 0, 87, 67, 0, 0, 25, 67, 0, 0, 87, 67, 0, 0, 26, 67, 0, 0, 87, 67, 0, 0, 27, 67, 0, 0, 87, 67, 0, 0, 34, 67, 0, 0, 87, 67, 0, 0, 35, 67, 0, 0, 87, 67, 0, 0, 36, 67, 0, 0, 87, 67, 0, 0, 37, 67, 0, 0, 87, 67, 0, 0, 38, 67, 0, 0, 87, 67, 0, 0, 39, 67, 0, 0, 87, 67, 0, 0, 40, 67, 0, 0, 87, 67, 0, 0, 41, 67, 0, 0, 87, 67, 0, 0, 42, 67, 0, 0, 87, 67, 0, 0, 43, 67, 0, 0, 87, 67, 0, 0, 44, 67, 0, 0, 87, 67, 0, 0, 45, 67, 0, 0, 87, 67, 0, 0, 46, 67, 0, 0, 87, 67, 0, 0, 47, 67, 0, 0, 87, 67, 0, 0, 48, 67, 0, 0, 87, 67, 0, 0, 49, 67, 0, 0, 87, 67, 0, 0, 50, 67, 0, 0, 87, 67, 0, 0, 51, 67, 0, 0, 87, 67, 0, 0, 52, 67, 0, 0, 87, 67, 0, 0, 53, 67, 0, 0, 87, 67, 0, 0, 54, 67, 0, 0, 87, 67, 0, 0, 55, 67, 0, 0, 87, 67, 0, 0, 56, 67, 0, 0, 87, 67, 0, 0, 57, 67, 0, 0, 88, 67, 0, 0, 180, 66, 0, 0, 88, 67, 0, 0, 182, 66, 0, 0, 88, 67, 0, 0, 184, 66, 0, 0, 88, 67, 0, 0, 186, 66, 0, 0, 88, 67, 0, 0, 188, 66, 0, 0, 88, 67, 0, 0, 190, 66, 0, 0, 88, 67, 0, 0, 192, 66, 0, 0, 88, 67, 0, 0, 194, 66, 0, 0, 88, 67, 0, 0, 196, 66, 0, 0, 88, 67, 0, 0, 198, 66, 0, 0, 88, 67, 0, 0, 200, 66, 0, 0, 88, 67, 0, 0, 202, 66, 0, 0, 88, 67, 0, 0, 204, 66, 0, 0, 88, 67, 0, 0, 206, 66, 0, 0, 88, 67, 0, 0, 208, 66, 0, 0, 88, 67, 0, 0, 210, 66, 0, 0, 88, 67, 0, 0, 212, 66, 0, 0, 88, 67, 0, 0, 214, 66, 0, 0, 88, 67, 0, 0, 216, 66, 0, 0, 88, 67, 0, 0, 218, 66, 0, 0, 88, 67, 0, 0, 220, 66, 0, 0, 88, 67, 0, 0, 222, 66, 0, 0, 88, 67, 0, 0, 224, 66, 0, 0, 88, 67, 0, 0, 226, 66, 0, 0, 88, 67, 0, 0, 228, 66, 0, 0, 88, 67, 0, 0, 230, 66, 0, 0, 88, 67, 0, 0, 232, 66, 0, 0, 88, 67, 0, 0, 234, 66, 0, 0, 88, 67, 0, 0, 236, 66, 0, 0, 88, 67, 0, 0, 238, 66, 0, 0, 88, 67, 0, 0, 240, 66, 0, 0, 88, 67, 0, 0, 242, 66, 0, 0, 88, 67, 0, 0, 244, 66, 0, 0, 88, 67, 0, 0, 246, 66, 0, 0, 88, 67, 0, 0, 248, 66, 0, 0, 88, 67, 0, 0, 250, 66, 0, 0, 88, 67, 0, 0, 252, 66, 0, 0, 88, 67, 0, 0, 254, 66, 0, 0, 88, 67, 0, 0, 0, 67, 0, 0, 88, 67, 0, 0, 1, 67, 0, 0, 88, 67, 0, 0, 2, 67, 0, 0, 88, 67, 0, 0, 3, 67, 0, 0, 88, 67, 0, 0, 4, 67, 0, 0, 88, 67, 0, 0, 5, 67, 0, 0, 88, 67, 0, 0, 6, 67, 0, 0, 88, 67, 0, 0, 7, 67, 0, 0, 88, 67, 0, 0, 8, 67, 0, 0, 88, 67, 0, 0, 9, 67, 0, 0, 88, 67, 0, 0, 10, 67, 0, 0, 88, 67, 0, 0, 11, 67, 0, 0, 88, 67, 0, 0, 12, 67, 0, 0, 88, 67, 0, 0, 13, 67, 0, 0, 88, 67, 0, 0, 14, 67, 0, 0, 88, 67, 0, 0, 15, 67, 0, 0, 88, 67, 0, 0, 16, 67, 0, 0, 88, 67, 0, 0, 17, 67, 0, 0, 88, 67, 0, 0, 18, 67, 0, 0, 88, 67, 0, 0, 19, 67, 0, 0, 88, 67, 0, 0, 20, 67, 0, 0, 88, 67, 0, 0, 21, 67, 0, 0, 88, 67, 0, 0, 22, 67, 0, 0, 88, 67, 0, 0, 23, 67, 0, 0, 88, 67, 0, 0, 24, 67, 0, 0, 88, 67, 0, 0, 25, 67, 0, 0, 88, 67, 0, 0, 26, 67, 0, 0, 88, 67, 0, 0, 27, 67, 0, 0, 88, 67, 0, 0, 35, 67, 0, 0, 88, 67, 0, 0, 36, 67, 0, 0, 88, 67, 0, 0, 37, 67, 0, 0, 88, 67, 0, 0, 38, 67, 0, 0, 88, 67, 0, 0, 39, 67, 0, 0, 88, 67, 0, 0, 40, 67, 0, 0, 88, 67, 0, 0, 41, 67, 0, 0, 88, 67, 0, 0, 42, 67, 0, 0, 88, 67, 0, 0, 43, 67, 0, 0, 88, 67, 0, 0, 44, 67, 0, 0, 88, 67, 0, 0, 45, 67, 0, 0, 88, 67, 0, 0, 46, 67, 0, 0, 88, 67, 0, 0, 47, 67, 0, 0, 88, 67, 0, 0, 48, 67, 0, 0, 88, 67, 0, 0, 49, 67, 0, 0, 88, 67, 0, 0, 50, 67, 0, 0, 88, 67, 0, 0, 51, 67, 0, 0, 88, 67, 0, 0, 52, 67, 0, 0, 88, 67, 0, 0, 53, 67, 0, 0, 88, 67, 0, 0, 54, 67, 0, 0, 88, 67, 0, 0, 55, 67, 0, 0, 88, 67, 0, 0, 56, 67, 0, 0, 89, 67, 0, 0, 182, 66, 0, 0, 89, 67, 0, 0, 184, 66, 0, 0, 89, 67, 0, 0, 186, 66, 0, 0, 89, 67, 0, 0, 188, 66, 0, 0, 89, 67, 0, 0, 190, 66, 0, 0, 89, 67, 0, 0, 192, 66, 0, 0, 89, 67, 0, 0, 194, 66, 0, 0, 89, 67, 0, 0, 196, 66, 0, 0, 89, 67, 0, 0, 198, 66, 0, 0, 89, 67, 0, 0, 200, 66, 0, 0, 89, 67, 0, 0, 202, 66, 0, 0, 89, 67, 0, 0, 204, 66, 0, 0, 89, 67, 0, 0, 206, 66, 0, 0, 89, 67, 0, 0, 208, 66, 0, 0, 89, 67, 0, 0, 210, 66, 0, 0, 89, 67, 0, 0, 212, 66, 0, 0, 89, 67, 0, 0, 214, 66, 0, 0, 89, 67, 0, 0, 216, 66, 0, 0, 89, 67, 0, 0, 218, 66, 0, 0, 89, 67, 0, 0, 220, 66, 0, 0, 89, 67, 0, 0, 222, 66, 0, 0, 89, 67, 0, 0, 224, 66, 0, 0, 89, 67, 0, 0, 226, 66, 0, 0, 89, 67, 0, 0, 228, 66, 0, 0, 89, 67, 0, 0, 230, 66, 0, 0, 89, 67, 0, 0, 232, 66, 0, 0, 89, 67, 0, 0, 234, 66, 0, 0, 89, 67, 0, 0, 236, 66, 0, 0, 89, 67, 0, 0, 238, 66, 0, 0, 89, 67, 0, 0, 240, 66, 0, 0, 89, 67, 0, 0, 242, 66, 0, 0, 89, 67, 0, 0, 244, 66, 0, 0, 89, 67, 0, 0, 246, 66, 0, 0, 89, 67, 0, 0, 248, 66, 0, 0, 89, 67, 0, 0, 250, 66, 0, 0, 89, 67, 0, 0, 252, 66, 0, 0, 89, 67, 0, 0, 254, 66, 0, 0, 89, 67, 0, 0, 0, 67, 0, 0, 89, 67, 0, 0, 1, 67, 0, 0, 89, 67, 0, 0, 2, 67, 0, 0, 89, 67, 0, 0, 3, 67, 0, 0, 89, 67, 0, 0, 4, 67, 0, 0, 89, 67, 0, 0, 5, 67, 0, 0, 89, 67, 0, 0, 6, 67, 0, 0, 89, 67, 0, 0, 7, 67, 0, 0, 89, 67, 0, 0, 8, 67, 0, 0, 89, 67, 0, 0, 9, 67, 0, 0, 89, 67, 0, 0, 10, 67, 0, 0, 89, 67, 0, 0, 11, 67, 0, 0, 89, 67, 0, 0, 12, 67, 0, 0, 89, 67, 0, 0, 13, 67, 0, 0, 89, 67, 0, 0, 14, 67, 0, 0, 89, 67, 0, 0, 15, 67, 0, 0, 89, 67, 0, 0, 16, 67, 0, 0, 89, 67, 0, 0, 17, 67, 0, 0, 89, 67, 0, 0, 18, 67, 0, 0, 89, 67, 0, 0, 19, 67, 0, 0, 89, 67, 0, 0, 20, 67, 0, 0, 89, 67, 0, 0, 21, 67, 0, 0, 89, 67, 0, 0, 22, 67, 0, 0, 89, 67, 0, 0, 23, 67, 0, 0, 89, 67, 0, 0, 24, 67, 0, 0, 89, 67, 0, 0, 25, 67, 0, 0, 89, 67, 0, 0, 26, 67, 0, 0, 89, 67, 0, 0, 36, 67, 0, 0, 89, 67, 0, 0, 37, 67, 0, 0, 89, 67, 0, 0, 38, 67, 0, 0, 89, 67, 0, 0, 39, 67, 0, 0, 89, 67, 0, 0, 40, 67, 0, 0, 89, 67, 0, 0, 41, 67, 0, 0, 89, 67, 0, 0, 42, 67, 0, 0, 89, 67, 0, 0, 43, 67, 0, 0, 89, 67, 0, 0, 44, 67, 0, 0, 89, 67, 0, 0, 45, 67, 0, 0, 89, 67, 0, 0, 46, 67, 0, 0, 89, 67, 0, 0, 47, 67, 0, 0, 89, 67, 0, 0, 48, 67, 0, 0, 89, 67, 0, 0, 49, 67, 0, 0, 89, 67, 0, 0, 50, 67, 0, 0, 89, 67, 0, 0, 51, 67, 0, 0, 89, 67, 0, 0, 52, 67, 0, 0, 89, 67, 0, 0, 53, 67, 0, 0, 89, 67, 0, 0, 54, 67, 0, 0, 89, 67, 0, 0, 55, 67, 0, 0, 90, 67, 0, 0, 184, 66, 0, 0, 90, 67, 0, 0, 186, 66, 0, 0, 90, 67, 0, 0, 188, 66, 0, 0, 90, 67, 0, 0, 190, 66, 0, 0, 90, 67, 0, 0, 192, 66, 0, 0, 90, 67, 0, 0, 194, 66, 0, 0, 90, 67, 0, 0, 196, 66, 0, 0, 90, 67, 0, 0, 198, 66, 0, 0, 90, 67, 0, 0, 200, 66, 0, 0, 90, 67, 0, 0, 202, 66, 0, 0, 90, 67, 0, 0, 204, 66, 0, 0, 90, 67, 0, 0, 206, 66, 0, 0, 90, 67, 0, 0, 208, 66, 0, 0, 90, 67, 0, 0, 210, 66, 0, 0, 90, 67, 0, 0, 212, 66, 0, 0, 90, 67, 0, 0, 214, 66, 0, 0, 90, 67, 0, 0, 216, 66, 0, 0, 90, 67, 0, 0, 218, 66, 0, 0, 90, 67, 0, 0, 220, 66, 0, 0, 90, 67, 0, 0, 222, 66, 0, 0, 90, 67, 0, 0, 224, 66, 0, 0, 90, 67, 0, 0, 226, 66, 0, 0, 90, 67, 0, 0, 228, 66, 0, 0, 90, 67, 0, 0, 230, 66, 0, 0, 90, 67, 0, 0, 232, 66, 0, 0, 90, 67, 0, 0, 234, 66, 0, 0, 90, 67, 0, 0, 236, 66, 0, 0, 90, 67, 0, 0, 238, 66, 0, 0, 90, 67, 0, 0, 240, 66, 0, 0, 90, 67, 0, 0, 242, 66, 0, 0, 90, 67, 0, 0, 244, 66, 0, 0, 90, 67, 0, 0, 246, 66, 0, 0, 90, 67, 0, 0, 248, 66, 0, 0, 90, 67, 0, 0, 250, 66, 0, 0, 90, 67, 0, 0, 252, 66, 0, 0, 90, 67, 0, 0, 254, 66, 0, 0, 90, 67, 0, 0, 0, 67, 0, 0, 90, 67, 0, 0, 1, 67, 0, 0, 90, 67, 0, 0, 2, 67, 0, 0, 90, 67, 0, 0, 3, 67, 0, 0, 90, 67, 0, 0, 4, 67, 0, 0, 90, 67, 0, 0, 5, 67, 0, 0, 90, 67, 0, 0, 6, 67, 0, 0, 90, 67, 0, 0, 7, 67, 0, 0, 90, 67, 0, 0, 8, 67, 0, 0, 90, 67, 0, 0, 9, 67, 0, 0, 90, 67, 0, 0, 10, 67, 0, 0, 90, 67, 0, 0, 11, 67, 0, 0, 90, 67, 0, 0, 12, 67, 0, 0, 90, 67, 0, 0, 13, 67, 0, 0, 90, 67, 0, 0, 14, 67, 0, 0, 90, 67, 0, 0, 15, 67, 0, 0, 90, 67, 0, 0, 36, 67, 0, 0, 90, 67, 0, 0, 37, 67, 0, 0, 90, 67, 0, 0, 38, 67, 0, 0, 90, 67, 0, 0, 39, 67, 0, 0, 90, 67, 0, 0, 40, 67, 0, 0, 90, 67, 0, 0, 41, 67, 0, 0, 90, 67, 0, 0, 42, 67, 0, 0, 90, 67, 0, 0, 43, 67, 0, 0, 90, 67, 0, 0, 44, 67, 0, 0, 90, 67, 0, 0, 45, 67, 0, 0, 90, 67, 0, 0, 46, 67, 0, 0, 90, 67, 0, 0, 47, 67, 0, 0, 90, 67, 0, 0, 48, 67, 0, 0, 90, 67, 0, 0, 49, 67, 0, 0, 90, 67, 0, 0, 50, 67, 0, 0, 90, 67, 0, 0, 51, 67, 0, 0, 90, 67, 0, 0, 52, 67, 0, 0, 90, 67, 0, 0, 53, 67, 0, 0, 90, 67, 0, 0, 54, 67, 0, 0, 90, 67, 0, 0, 55, 67, 0, 0, 91, 67, 0, 0, 184, 66, 0, 0, 91, 67, 0, 0, 186, 66, 0, 0, 91, 67, 0, 0, 188, 66, 0, 0, 91, 67, 0, 0, 190, 66, 0, 0, 91, 67, 0, 0, 192, 66, 0, 0, 91, 67, 0, 0, 194, 66, 0, 0, 91, 67, 0, 0, 196, 66, 0, 0, 91, 67, 0, 0, 198, 66, 0, 0, 91, 67, 0, 0, 200, 66, 0, 0, 91, 67, 0, 0, 202, 66, 0, 0, 91, 67, 0, 0, 204, 66, 0, 0, 91, 67, 0, 0, 206, 66, 0, 0, 91, 67, 0, 0, 208, 66, 0, 0, 91, 67, 0, 0, 210, 66, 0, 0, 91, 67, 0, 0, 212, 66, 0, 0, 91, 67, 0, 0, 214, 66, 0, 0, 91, 67, 0, 0, 216, 66, 0, 0, 91, 67, 0, 0, 218, 66, 0, 0, 91, 67, 0, 0, 220, 66, 0, 0, 91, 67, 0, 0, 222, 66, 0, 0, 91, 67, 0, 0, 224, 66, 0, 0, 91, 67, 0, 0, 226, 66, 0, 0, 91, 67, 0, 0, 228, 66, 0, 0, 91, 67, 0, 0, 230, 66, 0, 0, 91, 67, 0, 0, 232, 66, 0, 0, 91, 67, 0, 0, 234, 66, 0, 0, 91, 67, 0, 0, 236, 66, 0, 0, 91, 67, 0, 0, 238, 66, 0, 0, 91, 67, 0, 0, 240, 66, 0, 0, 91, 67, 0, 0, 242, 66, 0, 0, 91, 67, 0, 0, 244, 66, 0, 0, 91, 67, 0, 0, 246, 66, 0, 0, 91, 67, 0, 0, 248, 66, 0, 0, 91, 67, 0, 0, 250, 66, 0, 0, 91, 67, 0, 0, 252, 66, 0, 0, 91, 67, 0, 0, 254, 66, 0, 0, 91, 67, 0, 0, 0, 67, 0, 0, 91, 67, 0, 0, 1, 67, 0, 0, 91, 67, 0, 0, 2, 67, 0, 0, 91, 67, 0, 0, 3, 67, 0, 0, 91, 67, 0, 0, 4, 67, 0, 0, 91, 67, 0, 0, 5, 67, 0, 0, 91, 67, 0, 0, 6, 67, 0, 0, 91, 67, 0, 0, 7, 67, 0, 0, 91, 67, 0, 0, 8, 67, 0, 0, 91, 67, 0, 0, 9, 67, 0, 0, 91, 67, 0, 0, 10, 67, 0, 0, 91, 67, 0, 0, 37, 67, 0, 0, 91, 67, 0, 0, 38, 67, 0, 0, 91, 67, 0, 0, 39, 67, 0, 0, 91, 67, 0, 0, 40, 67, 0, 0, 91, 67, 0, 0, 41, 67, 0, 0, 91, 67, 0, 0, 42, 67, 0, 0, 91, 67, 0, 0, 43, 67, 0, 0, 91, 67, 0, 0, 44, 67, 0, 0, 91, 67, 0, 0, 45, 67, 0, 0, 91, 67, 0, 0, 46, 67, 0, 0, 91, 67, 0, 0, 47, 67, 0, 0, 91, 67, 0, 0, 48, 67, 0, 0, 91, 67, 0, 0, 49, 67, 0, 0, 91, 67, 0, 0, 50, 67, 0, 0, 91, 67, 0, 0, 51, 67, 0, 0, 91, 67, 0, 0, 52, 67, 0, 0, 91, 67, 0, 0, 53, 67, 0, 0, 91, 67, 0, 0, 54, 67, 0, 0, 92, 67, 0, 0, 186, 66, 0, 0, 92, 67, 0, 0, 188, 66, 0, 0, 92, 67, 0, 0, 190, 66, 0, 0, 92, 67, 0, 0, 192, 66, 0, 0, 92, 67, 0, 0, 194, 66, 0, 0, 92, 67, 0, 0, 196, 66, 0, 0, 92, 67, 0, 0, 198, 66, 0, 0, 92, 67, 0, 0, 200, 66, 0, 0, 92, 67, 0, 0, 202, 66, 0, 0, 92, 67, 0, 0, 204, 66, 0, 0, 92, 67, 0, 0, 206, 66, 0, 0, 92, 67, 0, 0, 208, 66, 0, 0, 92, 67, 0, 0, 210, 66, 0, 0, 92, 67, 0, 0, 212, 66, 0, 0, 92, 67, 0, 0, 214, 66, 0, 0, 92, 67, 0, 0, 216, 66, 0, 0, 92, 67, 0, 0, 218, 66, 0, 0, 92, 67, 0, 0, 220, 66, 0, 0, 92, 67, 0, 0, 222, 66, 0, 0, 92, 67, 0, 0, 224, 66, 0, 0, 92, 67, 0, 0, 226, 66, 0, 0, 92, 67, 0, 0, 228, 66, 0, 0, 92, 67, 0, 0, 230, 66, 0, 0, 92, 67, 0, 0, 232, 66, 0, 0, 92, 67, 0, 0, 234, 66, 0, 0, 92, 67, 0, 0, 236, 66, 0, 0, 92, 67, 0, 0, 238, 66, 0, 0, 92, 67, 0, 0, 240, 66, 0, 0, 92, 67, 0, 0, 242, 66, 0, 0, 92, 67, 0, 0, 244, 66, 0, 0, 92, 67, 0, 0, 246, 66, 0, 0, 92, 67, 0, 0, 248, 66, 0, 0, 92, 67, 0, 0, 250, 66, 0, 0, 92, 67, 0, 0, 252, 66, 0, 0, 92, 67, 0, 0, 254, 66, 0, 0, 92, 67, 0, 0, 0, 67, 0, 0, 92, 67, 0, 0, 1, 67, 0, 0, 92, 67, 0, 0, 2, 67, 0, 0, 92, 67, 0, 0, 3, 67, 0, 0, 92, 67, 0, 0, 38, 67, 0, 0, 92, 67, 0, 0, 39, 67, 0, 0, 92, 67, 0, 0, 40, 67, 0, 0, 92, 67, 0, 0, 41, 67, 0, 0, 92, 67, 0, 0, 42, 67, 0, 0, 92, 67, 0, 0, 43, 67, 0, 0, 92, 67, 0, 0, 44, 67, 0, 0, 92, 67, 0, 0, 45, 67, 0, 0, 92, 67, 0, 0, 46, 67, 0, 0, 92, 67, 0, 0, 47, 67, 0, 0, 92, 67, 0, 0, 48, 67, 0, 0, 92, 67, 0, 0, 49, 67, 0, 0, 92, 67, 0, 0, 50, 67, 0, 0, 92, 67, 0, 0, 51, 67, 0, 0, 92, 67, 0, 0, 52, 67, 0, 0, 92, 67, 0, 0, 53, 67, 0, 0, 93, 67, 0, 0, 188, 66, 0, 0, 93, 67, 0, 0, 190, 66, 0, 0, 93, 67, 0, 0, 192, 66, 0, 0, 93, 67, 0, 0, 194, 66, 0, 0, 93, 67, 0, 0, 196, 66, 0, 0, 93, 67, 0, 0, 198, 66, 0, 0, 93, 67, 0, 0, 200, 66, 0, 0, 93, 67, 0, 0, 202, 66, 0, 0, 93, 67, 0, 0, 204, 66, 0, 0, 93, 67, 0, 0, 206, 66, 0, 0, 93, 67, 0, 0, 208, 66, 0, 0, 93, 67, 0, 0, 210, 66, 0, 0, 93, 67, 0, 0, 212, 66, 0, 0, 93, 67, 0, 0, 214, 66, 0, 0, 93, 67, 0, 0, 216, 66, 0, 0, 93, 67, 0, 0, 218, 66, 0, 0, 93, 67, 0, 0, 220, 66, 0, 0, 93, 67, 0, 0, 222, 66, 0, 0, 93, 67, 0, 0, 224, 66, 0, 0, 93, 67, 0, 0, 226, 66, 0, 0, 93, 67, 0, 0, 228, 66, 0, 0, 93, 67, 0, 0, 230, 66, 0, 0, 93, 67, 0, 0, 232, 66, 0, 0, 93, 67, 0, 0, 234, 66, 0, 0, 93, 67, 0, 0, 236, 66, 0, 0, 93, 67, 0, 0, 238, 66, 0, 0, 93, 67, 0, 0, 240, 66, 0, 0, 93, 67, 0, 0, 242, 66, 0, 0, 93, 67, 0, 0, 244, 66, 0, 0, 93, 67, 0, 0, 246, 66, 0, 0, 93, 67, 0, 0, 248, 66, 0, 0, 93, 67, 0, 0, 250, 66, 0, 0, 93, 67, 0, 0, 252, 66, 0, 0, 93, 67, 0, 0, 254, 66, 0, 0, 93, 67, 0, 0, 0, 67, 0, 0, 93, 67, 0, 0, 39, 67, 0, 0, 93, 67, 0, 0, 40, 67, 0, 0, 93, 67, 0, 0, 41, 67, 0, 0, 93, 67, 0, 0, 42, 67, 0, 0, 93, 67, 0, 0, 43, 67, 0, 0, 93, 67, 0, 0, 44, 67, 0, 0, 93, 67, 0, 0, 45, 67, 0, 0, 93, 67, 0, 0, 46, 67, 0, 0, 93, 67, 0, 0, 47, 67, 0, 0, 93, 67, 0, 0, 48, 67, 0, 0, 93, 67, 0, 0, 49, 67, 0, 0, 93, 67, 0, 0, 50, 67, 0, 0, 93, 67, 0, 0, 51, 67, 0, 0, 93, 67, 0, 0, 52, 67, 0, 0, 94, 67, 0, 0, 190, 66, 0, 0, 94, 67, 0, 0, 192, 66, 0, 0, 94, 67, 0, 0, 194, 66, 0, 0, 94, 67, 0, 0, 196, 66, 0, 0, 94, 67, 0, 0, 198, 66, 0, 0, 94, 67, 0, 0, 200, 66, 0, 0, 94, 67, 0, 0, 202, 66, 0, 0, 94, 67, 0, 0, 204, 66, 0, 0, 94, 67, 0, 0, 206, 66, 0, 0, 94, 67, 0, 0, 208, 66, 0, 0, 94, 67, 0, 0, 210, 66, 0, 0, 94, 67, 0, 0, 212, 66, 0, 0, 94, 67, 0, 0, 214, 66, 0, 0, 94, 67, 0, 0, 216, 66, 0, 0, 94, 67, 0, 0, 218, 66, 0, 0, 94, 67, 0, 0, 220, 66, 0, 0, 94, 67, 0, 0, 222, 66, 0, 0, 94, 67, 0, 0, 224, 66, 0, 0, 94, 67, 0, 0, 226, 66, 0, 0, 94, 67, 0, 0, 228, 66, 0, 0, 94, 67, 0, 0, 230, 66, 0, 0, 94, 67, 0, 0, 232, 66, 0, 0, 94, 67, 0, 0, 234, 66, 0, 0, 94, 67, 0, 0, 236, 66, 0, 0, 94, 67, 0, 0, 238, 66, 0, 0, 94, 67, 0, 0, 240, 66, 0, 0, 94, 67, 0, 0, 242, 66, 0, 0, 94, 67, 0, 0, 244, 66, 0, 0, 94, 67, 0, 0, 41, 67, 0, 0, 94, 67, 0, 0, 42, 67, 0, 0, 94, 67, 0, 0, 43, 67, 0, 0, 94, 67, 0, 0, 44, 67, 0, 0, 94, 67, 0, 0, 45, 67, 0, 0, 94, 67, 0, 0, 46, 67, 0, 0, 94, 67, 0, 0, 47, 67, 0, 0, 94, 67, 0, 0, 48, 67, 0, 0, 94, 67, 0, 0, 49, 67, 0, 0, 94, 67, 0, 0, 50, 67, 0, 0, 95, 67, 0, 0, 192, 66, 0, 0, 95, 67, 0, 0, 194, 66, 0, 0, 95, 67, 0, 0, 196, 66, 0, 0, 95, 67, 0, 0, 198, 66, 0, 0, 95, 67, 0, 0, 200, 66, 0, 0, 95, 67, 0, 0, 202, 66, 0, 0, 95, 67, 0, 0, 204, 66, 0, 0, 95, 67, 0, 0, 206, 66, 0, 0, 95, 67, 0, 0, 208, 66, 0, 0, 95, 67, 0, 0, 210, 66, 0, 0, 95, 67, 0, 0, 212, 66, 0, 0, 95, 67, 0, 0, 214, 66, 0, 0, 95, 67, 0, 0, 216, 66, 0, 0, 95, 67, 0, 0, 218, 66, 0, 0, 95, 67, 0, 0, 220, 66, 0, 0, 95, 67, 0, 0, 222, 66, 0, 0, 95, 67, 0, 0, 224, 66, 0, 0, 95, 67, 0, 0, 226, 66, 0, 0, 95, 67, 0, 0, 228, 66, 0, 0, 95, 67, 0, 0, 230, 66, 0, 0, 95, 67, 0, 0, 232, 66, 0, 0, 95, 67, 0, 0, 234, 66, 0, 0, 95, 67, 0, 0, 236, 66, 0, 0, 95, 67, 0, 0, 238, 66, 0, 0, 95, 67, 0, 0, 42, 67, 0, 0, 95, 67, 0, 0, 43, 67, 0, 0, 95, 67, 0, 0, 44, 67, 0, 0, 95, 67, 0, 0, 45, 67, 0, 0, 95, 67, 0, 0, 46, 67, 0, 0, 95, 67, 0, 0, 47, 67, 0, 0, 95, 67, 0, 0, 48, 67, 0, 0, 95, 67, 0, 0, 49, 67, 0, 0, 96, 67, 0, 0, 196, 66, 0, 0, 96, 67, 0, 0, 198, 66, 0, 0, 96, 67, 0, 0, 200, 66, 0, 0, 96, 67, 0, 0, 202, 66, 0, 0, 96, 67, 0, 0, 204, 66, 0, 0, 96, 67, 0, 0, 206, 66, 0, 0, 96, 67, 0, 0, 208, 66, 0, 0, 96, 67, 0, 0, 210, 66, 0, 0, 96, 67, 0, 0, 212, 66, 0, 0, 96, 67, 0, 0, 214, 66, 0, 0, 96, 67, 0, 0, 216, 66, 0, 0, 96, 67, 0, 0, 218, 66, 0, 0, 96, 67, 0, 0, 220, 66, 0, 0, 96, 67, 0, 0, 222, 66, 0, 0, 96, 67, 0, 0, 224, 66, 0, 0, 96, 67, 0, 0, 226, 66, 0, 0, 97, 67, 0, 0, 200, 66, 0, 0, 97, 67, 0, 0, 202, 66, 0, 0, 97, 67, 0, 0, 204, 66, 0, 0, 97, 67, 0, 0, 206, 66, 0, 0, 97, 67, 0, 0, 208, 66, 0, 0, 97, 67, 0, 0, 210, 66, 0, 0, 97, 67, 0, 0, 212, 66, 0, 0, 97, 67, 0, 0, 214, 66, 0, 0, 97, 67, 0, 0, 216, 66, 0, 0, 97, 67, 0, 0, 218, 66, 0, 0, 97, 67, 0, 0, 220, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 2, 255, 12, 255, 82, 255, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 211, 255, 80, 255, 11, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 2, 255, 12, 255, 82, 255, 211, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 211, 255, 80, 255, 11, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 70, 255, 208, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 209, 255, 74, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 7, 255, 38, 255, 96, 255, 183, 255, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 242, 255, 188, 255, 100, 255, 40, 255, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 5, 255, 23, 255, 93, 255, 214, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 255, 91, 255, 22, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 5, 255, 23, 255, 93, 255, 214, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 255, 91, 255, 22, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 3, 255, 17, 255, 87, 255, 212, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 213, 255, 88, 255, 19, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 25, 255, 117, 255, 186, 255, 231, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 232, 255, 187, 255, 118, 255, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 10, 255, 50, 255, 121, 255, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 221, 255, 119, 255, 49, 255, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 10, 255, 50, 255, 121, 255, 221, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 221, 255, 119, 255, 49, 255, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 8, 255, 42, 255, 112, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 114, 255, 44, 255, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 4, 255, 63, 255, 176, 255, 240, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 255, 176, 255, 62, 255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 16, 255, 94, 255, 166, 255, 233, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 233, 255, 164, 255, 92, 255, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 16, 255, 94, 255, 166, 255, 233, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 233, 255, 164, 255, 92, 255, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 13, 255, 74, 255, 146, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 229, 255, 151, 255, 79, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 13, 255, 54, 255, 121, 255, 214, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 255, 118, 255, 50, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 5, 255, 55, 255, 146, 255, 209, 255, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 244, 255, 207, 255, 144, 255, 54, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 5, 255, 55, 255, 146, 255, 209, 255, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 244, 255, 207, 255, 144, 255, 54, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 43, 255, 124, 255, 190, 255, 239, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 240, 255, 194, 255, 128, 255, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 25, 255, 101, 255, 172, 255, 238, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 237, 255, 167, 255, 96, 255, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 5, 255, 58, 255, 125, 255, 205, 255, 248, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 248, 255, 205, 255, 124, 255, 57, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 5, 255, 58, 255, 125, 255, 205, 255, 248, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 254, 255, 248, 255, 205, 255, 124, 255, 57, 255, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 34, 255, 99, 255, 193, 255, 244, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 244, 255, 190, 255, 92, 255, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 37, 255, 145, 255, 215, 255, 247, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 246, 255, 210, 255, 140, 255, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 4, 255, 14, 255, 21, 255, 25, 255, 29, 255, 34, 255, 39, 255, 43, 255, 73, 255, 130, 255, 186, 255, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 255, 186, 255, 130, 255, 73, 255, 42, 255, 39, 255, 34, 255, 29, 255, 25, 255, 21, 255, 14, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 4, 255, 14, 255, 21, 255, 25, 255, 29, 255, 34, 255, 39, 255, 43, 255, 73, 255, 130, 255, 186, 255, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 241, 255, 186, 255, 130, 255, 73, 255, 42, 255, 39, 255, 34, 255, 29, 255, 25, 255, 21, 255, 14, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 255, 4, 255, 14, 255, 21, 255, 23, 255, 27, 255, 33, 255, 39, 255, 44, 255, 67, 255, 106, 255, 162, 255, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 231, 255, 155, 255, 98, 255, 61, 255, 40, 255, 36, 255, 31, 255, 26, 255, 22, 255, 20, 255, 14, 255, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 45, 255, 175, 255, 245, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 240, 255, 171, 255, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 15, 255, 58, 255, 87, 255, 100, 255, 117, 255, 137, 255, 159, 255, 181, 255, 203, 255, 222, 255, 239, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 239, 255, 222, 255, 202, 255, 181, 255, 158, 255, 137, 255, 117, 255, 100, 255, 87, 255, 58, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 15, 255, 58, 255, 87, 255, 100, 255, 117, 255, 137, 255, 159, 255, 181, 255, 203, 255, 222, 255, 239, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 239, 255, 222, 255, 202, 255, 181, 255, 158, 255, 137, 255, 117, 255, 100, 255, 87, 255, 58, 255, 15, 0, 0, 0, 0, 0, 0, 0, 0, 255, 17, 255, 59, 255, 84, 255, 92, 255, 108, 255, 132, 255, 157, 255, 183, 255, 203, 255, 217, 255, 233, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 231, 255, 213, 255, 194, 255, 173, 255, 148, 255, 125, 255, 104, 255, 89, 255, 82, 255, 58, 255, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 49, 255, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 188, 255, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 27, 255, 107, 255, 155, 255, 170, 255, 187, 255, 207, 255, 229, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 229, 255, 207, 255, 187, 255, 170, 255, 155, 255, 107, 255, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 27, 255, 107, 255, 155, 255, 170, 255, 187, 255, 207, 255, 229, 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 229, 255, 207, 255, 187, 255, 170, 255, 155, 255, 107, 255, 27, 0, 0, 0, 0, 0, 0, 0, 0, 255, 33, 255, 115, 255, 159, 255, 163, 255, 178, 255, 202, 255, 227, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 244, 255, 218, 255, 195, 255, 173, 255, 161, 255, 157, 255, 114, 255, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 51, 255, 199, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 197, 255, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 41, 255, 162, 255, 226, 255, 234, 255, 240, 255, 244, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 255, 244, 255, 240, 255, 234, 255, 226, 255, 162, 255, 41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 41, 255, 162, 255, 226, 255, 234, 255, 240, 255, 244, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 249, 255, 244, 255, 240, 255, 234, 255, 226, 255, 162, 255, 41, 0, 0, 0, 0, 0, 0, 0, 0, 255, 52, 255, 183, 255, 244, 255, 237, 255, 236, 255, 242, 255, 249, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 247, 255, 241, 255, 235, 255, 236, 255, 244, 255, 182, 255, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 50, 255, 196, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 196, 255, 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 47, 255, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 47, 255, 187, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 187, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 255, 61, 255, 213, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 214, 255, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 47, 255, 185, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 186, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 182, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 182, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 182, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 182, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 255, 60, 255, 208, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 208, 255, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 42, 255, 166, 255, 236, 255, 251, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 252, 255, 239, 255, 169, 255, 43, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 255, 59, 255, 205, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 255, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 33, 255, 133, 255, 203, 255, 244, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 245, 255, 208, 255, 137, 255, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 255, 59, 255, 205, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 255, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 21, 255, 86, 255, 157, 255, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 236, 255, 163, 255, 92, 255, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 255, 59, 255, 205, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 255, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 10, 255, 42, 255, 108, 255, 209, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 212, 255, 114, 255, 47, 255, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 46, 255, 180, 255, 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 250, 255, 180, 255, 46, 0, 0, 0, 0, 0, 0, 0, 0, 255, 59, 255, 205, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 205, 255, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 57, 255, 168, 255, 234, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 255, 173, 255, 60, 255, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 47, 255, 184, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 184, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 47, 255, 184, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 184, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 255, 60, 255, 210, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 210, 255, 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 23, 255, 109, 255, 177, 255, 228, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 231, 255, 184, 255, 115, 255, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 49, 255, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 192, 255, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 49, 255, 192, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 192, 255, 49, 0, 0, 0, 0, 0, 0, 0, 0, 255, 63, 255, 219, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 219, 255, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 6, 255, 33, 255, 90, 255, 179, 255, 235, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 238, 255, 184, 255, 96, 255, 37, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 36, 255, 143, 255, 199, 255, 203, 255, 205, 255, 204, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 204, 255, 205, 255, 203, 255, 199, 255, 143, 255, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 36, 255, 143, 255, 199, 255, 203, 255, 205, 255, 204, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 204, 255, 205, 255, 203, 255, 199, 255, 143, 255, 36, 0, 0, 0, 0, 0, 0, 0, 0, 255, 47, 255, 163, 255, 217, 255, 208, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 203, 255, 208, 255, 217, 255, 163, 255, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 33, 255, 110, 255, 170, 255, 211, 255, 237, 255, 246, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 253, 255, 246, 255, 237, 255, 213, 255, 173, 255, 115, 255, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 9, 255, 37, 255, 51, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 51, 255, 37, 255, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 9, 255, 37, 255, 51, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 51, 255, 37, 255, 9, 0, 0, 0, 0, 0, 0, 0, 0, 255, 12, 255, 42, 255, 55, 255, 53, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 52, 255, 53, 255, 55, 255, 42, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 6, 255, 23, 255, 59, 255, 114, 255, 164, 255, 210, 255, 241, 255, 255, 255, 255, 255, 255, 255, 255, 255, 242, 255, 211, 255, 168, 255, 117, 255, 61, 255, 24, 255, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 3, 255, 48, 255, 93, 255, 140, 255, 171, 255, 188, 255, 197, 255, 197, 255, 189, 255, 172, 255, 141, 255, 96, 255, 50, 255, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 11, 255, 23, 255, 35, 255, 44, 255, 48, 255, 50, 255, 50, 255, 48, 255, 44, 255, 36, 255, 24, 255, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), +"format": "RGFloat", +"height": 6, +"mipmaps": false, +"width": 2048 +} + +[sub_resource type="ImageTexture" id="ImageTexture_4v5mq"] +image = SubResource("Image_56cqp") + +[sub_resource type="ParticleProcessMaterial" id="28"] +emission_shape = 4 +emission_point_texture = SubResource("ImageTexture_4v5mq") emission_point_count = 10554 -flag_disable_z = true gravity = Vector3(0, 0, 0) -initial_velocity = 1.0 -angular_velocity = 1.47136e-43 -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -scale = 0.5 -scale_random = 1.0 color = Color(1, 0.550781, 0.550781, 1) -[sub_resource type="ParticlesMaterial" id=29] -emission_shape = 3 -emission_point_texture = ExtResource( 5 ) +[sub_resource type="Image" id="Image_rjs8t"] +data = { +"data": PackedByteArray(242, 4, 53, 191, 244, 4, 53, 191, 6, 238, 108, 191, 252, 232, 193, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 97, 227, 108, 191, 248, 28, 194, 62, 145, 189, 94, 191, 194, 94, 252, 190, 225, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 6, 238, 108, 191, 252, 232, 193, 62, 243, 4, 53, 191, 243, 4, 53, 63, 252, 232, 193, 190, 6, 238, 108, 191, 224, 72, 102, 191, 187, 166, 223, 62, 243, 4, 53, 191, 243, 4, 53, 63, 193, 94, 252, 190, 145, 189, 94, 191, 243, 4, 53, 191, 243, 4, 53, 191, 251, 232, 193, 190, 6, 238, 108, 63, 13, 82, 8, 50, 0, 0, 128, 191, 187, 166, 223, 190, 224, 72, 102, 63, 247, 28, 194, 190, 97, 227, 108, 63, 8, 157, 132, 190, 141, 67, 119, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 221, 32, 7, 190, 225, 194, 125, 63, 200, 37, 122, 190, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 52, 187, 131, 190, 185, 97, 119, 191, 10, 165, 146, 190, 103, 70, 117, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 220, 32, 7, 190, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 225, 158, 0, 190, 248, 248, 125, 63, 224, 158, 0, 190, 248, 248, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 244, 167, 193, 190, 82, 251, 108, 63, 200, 37, 122, 190, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 228, 113, 23, 191, 20, 102, 78, 63, 7, 59, 27, 191, 30, 145, 75, 63, 193, 94, 252, 190, 145, 189, 94, 191, 178, 171, 227, 190, 65, 76, 101, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 191, 242, 4, 53, 63, 243, 4, 53, 191, 243, 4, 53, 63, 56, 169, 30, 191, 153, 231, 72, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 191, 242, 4, 53, 63, 30, 145, 75, 191, 7, 59, 27, 63, 77, 191, 75, 191, 100, 254, 26, 191, 153, 231, 72, 191, 56, 169, 30, 191, 244, 4, 53, 191, 244, 4, 53, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 21, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 97, 227, 108, 191, 248, 28, 194, 62, 145, 189, 94, 191, 193, 94, 252, 190, 74, 151, 80, 191, 51, 105, 20, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 65, 76, 101, 191, 178, 171, 227, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 248, 248, 125, 191, 225, 158, 0, 190, 82, 251, 108, 191, 244, 167, 193, 190, 21, 102, 78, 191, 228, 113, 23, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 65, 76, 101, 63, 178, 171, 227, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 125, 62, 120, 63, 200, 37, 122, 190, 212, 127, 93, 63, 237, 89, 0, 191, 243, 4, 53, 63, 244, 4, 53, 191, 244, 4, 53, 63, 244, 4, 53, 63, 212, 127, 93, 63, 237, 89, 0, 63, 125, 62, 120, 63, 200, 37, 122, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 248, 248, 125, 63, 224, 158, 0, 190, 82, 251, 108, 63, 244, 167, 193, 190, 20, 102, 78, 63, 228, 113, 23, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 21, 102, 78, 63, 228, 113, 23, 63, 117, 233, 92, 63, 16, 92, 1, 63, 98, 227, 108, 63, 248, 28, 194, 62, 235, 89, 0, 63, 213, 127, 93, 191, 237, 89, 0, 63, 212, 127, 93, 63, 145, 189, 94, 63, 194, 94, 252, 190, 74, 151, 80, 63, 51, 105, 20, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 30, 145, 75, 63, 7, 59, 27, 63, 201, 37, 122, 62, 125, 62, 120, 191, 201, 37, 122, 62, 125, 62, 120, 63, 78, 191, 75, 63, 99, 254, 26, 191, 152, 231, 72, 63, 57, 169, 30, 191, 243, 4, 53, 63, 244, 4, 53, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 55, 169, 30, 63, 153, 231, 72, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 228, 113, 23, 63, 21, 102, 78, 63, 7, 59, 27, 63, 30, 145, 75, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 193, 94, 252, 62, 145, 189, 94, 191, 178, 171, 227, 62, 65, 76, 101, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 244, 167, 193, 62, 82, 251, 108, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 201, 37, 122, 62, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 227, 158, 0, 62, 248, 248, 125, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 227, 158, 0, 62, 248, 248, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 221, 32, 7, 62, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 52, 187, 131, 62, 185, 97, 119, 191, 10, 165, 146, 62, 103, 70, 117, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 222, 32, 7, 62, 225, 194, 125, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 201, 37, 122, 62, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 187, 166, 223, 62, 224, 72, 102, 63, 247, 28, 194, 62, 97, 227, 108, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 9, 157, 132, 62, 140, 67, 119, 191, 14, 82, 8, 50, 0, 0, 128, 63, 251, 232, 193, 62, 6, 238, 108, 191, 224, 72, 102, 63, 187, 166, 223, 62, 243, 4, 53, 63, 243, 4, 53, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 193, 94, 252, 62, 145, 189, 94, 191, 243, 4, 53, 63, 243, 4, 53, 191, 252, 232, 193, 62, 6, 238, 108, 63, 242, 4, 53, 63, 244, 4, 53, 191, 6, 238, 108, 63, 251, 232, 193, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 98, 227, 108, 63, 248, 28, 194, 62, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 145, 189, 94, 63, 191, 94, 252, 190, 225, 194, 125, 63, 220, 32, 7, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 6, 238, 108, 63, 251, 232, 193, 62, 243, 4, 53, 63, 243, 4, 53, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 242, 4, 53, 191, 244, 4, 53, 191, 6, 238, 108, 191, 252, 232, 193, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 97, 227, 108, 191, 248, 28, 194, 62, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 145, 189, 94, 191, 194, 94, 252, 190, 225, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 6, 238, 108, 191, 252, 232, 193, 62, 243, 4, 53, 191, 243, 4, 53, 63, 252, 232, 193, 190, 6, 238, 108, 191, 224, 72, 102, 191, 187, 166, 223, 62, 243, 4, 53, 191, 243, 4, 53, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 193, 94, 252, 190, 145, 189, 94, 191, 243, 4, 53, 191, 243, 4, 53, 191, 251, 232, 193, 190, 6, 238, 108, 63, 13, 82, 8, 50, 0, 0, 128, 191, 187, 166, 223, 190, 224, 72, 102, 63, 247, 28, 194, 190, 97, 227, 108, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 8, 157, 132, 190, 141, 67, 119, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 221, 32, 7, 190, 225, 194, 125, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 200, 37, 122, 190, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 52, 187, 131, 190, 185, 97, 119, 191, 10, 165, 146, 190, 103, 70, 117, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 220, 32, 7, 190, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 225, 158, 0, 190, 248, 248, 125, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 224, 158, 0, 190, 248, 248, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 244, 167, 193, 190, 82, 251, 108, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 200, 37, 122, 190, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 228, 113, 23, 191, 20, 102, 78, 63, 7, 59, 27, 191, 30, 145, 75, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 193, 94, 252, 190, 145, 189, 94, 191, 178, 171, 227, 190, 65, 76, 101, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 191, 242, 4, 53, 63, 243, 4, 53, 191, 243, 4, 53, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 56, 169, 30, 191, 153, 231, 72, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 191, 242, 4, 53, 63, 30, 145, 75, 191, 7, 59, 27, 63, 200, 37, 122, 190, 125, 62, 120, 191, 201, 37, 122, 190, 125, 62, 120, 63, 77, 191, 75, 191, 100, 254, 26, 191, 153, 231, 72, 191, 56, 169, 30, 191, 244, 4, 53, 191, 244, 4, 53, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 21, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 97, 227, 108, 191, 248, 28, 194, 62, 236, 89, 0, 191, 213, 127, 93, 191, 237, 89, 0, 191, 212, 127, 93, 63, 145, 189, 94, 191, 193, 94, 252, 190, 74, 151, 80, 191, 51, 105, 20, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 65, 76, 101, 191, 178, 171, 227, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 125, 62, 120, 191, 201, 37, 122, 190, 213, 127, 93, 191, 236, 89, 0, 191, 244, 4, 53, 191, 244, 4, 53, 191, 244, 4, 53, 191, 243, 4, 53, 63, 212, 127, 93, 191, 236, 89, 0, 63, 125, 62, 120, 191, 201, 37, 122, 62, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 248, 248, 125, 191, 225, 158, 0, 190, 82, 251, 108, 191, 244, 167, 193, 190, 21, 102, 78, 191, 228, 113, 23, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 65, 76, 101, 63, 178, 171, 227, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 248, 248, 125, 63, 224, 158, 0, 190, 82, 251, 108, 63, 244, 167, 193, 190, 20, 102, 78, 63, 228, 113, 23, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 21, 102, 78, 63, 228, 113, 23, 63, 117, 233, 92, 63, 16, 92, 1, 63, 98, 227, 108, 63, 248, 28, 194, 62, 145, 189, 94, 63, 194, 94, 252, 190, 74, 151, 80, 63, 51, 105, 20, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 30, 145, 75, 63, 7, 59, 27, 63, 78, 191, 75, 63, 99, 254, 26, 191, 152, 231, 72, 63, 57, 169, 30, 191, 243, 4, 53, 63, 244, 4, 53, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 55, 169, 30, 63, 153, 231, 72, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 228, 113, 23, 63, 21, 102, 78, 63, 7, 59, 27, 63, 30, 145, 75, 63, 193, 94, 252, 62, 145, 189, 94, 191, 178, 171, 227, 62, 65, 76, 101, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 244, 167, 193, 62, 82, 251, 108, 63, 201, 37, 122, 62, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 227, 158, 0, 62, 248, 248, 125, 63, 227, 158, 0, 62, 248, 248, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 221, 32, 7, 62, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 52, 187, 131, 62, 185, 97, 119, 191, 10, 165, 146, 62, 103, 70, 117, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 222, 32, 7, 62, 225, 194, 125, 63, 201, 37, 122, 62, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 187, 166, 223, 62, 224, 72, 102, 63, 247, 28, 194, 62, 97, 227, 108, 63, 9, 157, 132, 62, 140, 67, 119, 191, 14, 82, 8, 50, 0, 0, 128, 63, 251, 232, 193, 62, 6, 238, 108, 191, 224, 72, 102, 63, 187, 166, 223, 62, 243, 4, 53, 63, 243, 4, 53, 63, 193, 94, 252, 62, 145, 189, 94, 191, 243, 4, 53, 63, 243, 4, 53, 191, 252, 232, 193, 62, 6, 238, 108, 63, 242, 4, 53, 63, 244, 4, 53, 191, 6, 238, 108, 63, 251, 232, 193, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 98, 227, 108, 63, 248, 28, 194, 62, 145, 189, 94, 63, 191, 94, 252, 190, 225, 194, 125, 63, 220, 32, 7, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 6, 238, 108, 63, 251, 232, 193, 62, 243, 4, 53, 63, 243, 4, 53, 63, 242, 4, 53, 191, 244, 4, 53, 191, 6, 238, 108, 191, 252, 232, 193, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 145, 189, 94, 191, 194, 94, 252, 62, 145, 189, 94, 191, 194, 94, 252, 190, 225, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 6, 238, 108, 191, 252, 232, 193, 62, 243, 4, 53, 191, 243, 4, 53, 63, 252, 232, 193, 190, 6, 238, 108, 191, 243, 4, 53, 191, 243, 4, 53, 63, 192, 94, 252, 190, 145, 189, 94, 63, 193, 94, 252, 190, 145, 189, 94, 191, 243, 4, 53, 191, 243, 4, 53, 191, 251, 232, 193, 190, 6, 238, 108, 63, 13, 82, 8, 50, 0, 0, 128, 191, 221, 32, 7, 190, 225, 194, 125, 63, 8, 157, 132, 190, 141, 67, 119, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 225, 158, 0, 190, 248, 248, 125, 63, 200, 37, 122, 190, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 201, 37, 122, 190, 125, 62, 120, 63, 52, 187, 131, 190, 185, 97, 119, 191, 10, 165, 146, 190, 103, 70, 117, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 10, 165, 146, 190, 103, 70, 117, 63, 52, 187, 131, 190, 185, 97, 119, 63, 220, 32, 7, 190, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 221, 32, 7, 190, 225, 194, 125, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 225, 158, 0, 190, 248, 248, 125, 63, 224, 158, 0, 190, 248, 248, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 244, 167, 193, 190, 82, 251, 108, 63, 242, 167, 193, 190, 81, 251, 108, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 228, 113, 23, 191, 20, 102, 78, 63, 7, 59, 27, 191, 30, 145, 75, 63, 7, 59, 27, 191, 30, 145, 75, 191, 228, 113, 23, 191, 21, 102, 78, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 191, 242, 4, 53, 63, 30, 145, 75, 191, 7, 59, 27, 63, 30, 145, 75, 191, 7, 59, 27, 191, 243, 4, 53, 191, 243, 4, 53, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 21, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 97, 227, 108, 191, 248, 28, 194, 62, 97, 227, 108, 191, 247, 28, 194, 190, 117, 233, 92, 191, 16, 92, 1, 191, 21, 102, 78, 191, 228, 113, 23, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 65, 76, 101, 191, 178, 171, 227, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 248, 248, 125, 191, 225, 158, 0, 190, 125, 62, 120, 191, 201, 37, 122, 190, 65, 76, 101, 191, 178, 171, 227, 190, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 65, 76, 101, 63, 178, 171, 227, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 248, 248, 125, 63, 224, 158, 0, 190, 125, 62, 120, 63, 201, 37, 122, 190, 65, 76, 101, 63, 178, 171, 227, 190, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 21, 102, 78, 63, 228, 113, 23, 63, 117, 233, 92, 63, 16, 92, 1, 63, 98, 227, 108, 63, 248, 28, 194, 62, 98, 227, 108, 63, 247, 28, 194, 190, 117, 233, 92, 63, 16, 92, 1, 191, 20, 102, 78, 63, 228, 113, 23, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 30, 145, 75, 63, 7, 59, 27, 63, 30, 145, 75, 63, 8, 59, 27, 191, 242, 4, 53, 63, 243, 4, 53, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 228, 113, 23, 63, 21, 102, 78, 63, 7, 59, 27, 63, 30, 145, 75, 63, 8, 59, 27, 63, 30, 145, 75, 191, 227, 113, 23, 63, 21, 102, 78, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 244, 167, 193, 62, 82, 251, 108, 63, 244, 167, 193, 62, 82, 251, 108, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 227, 158, 0, 62, 248, 248, 125, 63, 227, 158, 0, 62, 248, 248, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 221, 32, 7, 62, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 222, 32, 7, 62, 225, 194, 125, 63, 52, 187, 131, 62, 185, 97, 119, 191, 10, 165, 146, 62, 103, 70, 117, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 10, 165, 146, 62, 103, 70, 117, 63, 53, 187, 131, 62, 185, 97, 119, 63, 201, 37, 122, 62, 125, 62, 120, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 201, 37, 122, 62, 125, 62, 120, 63, 227, 158, 0, 62, 248, 248, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 9, 157, 132, 62, 140, 67, 119, 63, 221, 32, 7, 62, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 251, 232, 193, 62, 6, 238, 108, 191, 243, 4, 53, 63, 243, 4, 53, 63, 194, 94, 252, 62, 145, 189, 94, 63, 193, 94, 252, 62, 145, 189, 94, 191, 243, 4, 53, 63, 243, 4, 53, 191, 252, 232, 193, 62, 6, 238, 108, 63, 242, 4, 53, 63, 244, 4, 53, 191, 6, 238, 108, 63, 251, 232, 193, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 145, 189, 94, 63, 192, 94, 252, 62, 145, 189, 94, 63, 191, 94, 252, 190, 225, 194, 125, 63, 220, 32, 7, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 6, 238, 108, 63, 251, 232, 193, 62, 243, 4, 53, 63, 243, 4, 53, 63, 97, 227, 108, 191, 248, 28, 194, 190, 225, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 185, 97, 119, 191, 53, 187, 131, 62, 97, 227, 108, 191, 248, 28, 194, 190, 225, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 97, 227, 108, 191, 248, 28, 194, 62, 145, 189, 94, 191, 193, 94, 252, 190, 224, 72, 102, 191, 187, 166, 223, 190, 103, 70, 117, 191, 10, 165, 146, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 225, 194, 125, 191, 222, 32, 7, 62, 185, 97, 119, 191, 53, 187, 131, 62, 145, 189, 94, 191, 193, 94, 252, 190, 224, 72, 102, 191, 187, 166, 223, 190, 224, 72, 102, 191, 187, 166, 223, 62, 145, 189, 94, 191, 193, 94, 252, 62, 97, 227, 108, 191, 248, 28, 194, 190, 140, 67, 119, 191, 8, 157, 132, 190, 82, 251, 108, 191, 244, 167, 193, 190, 21, 102, 78, 191, 228, 113, 23, 191, 103, 70, 117, 191, 10, 165, 146, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 185, 97, 119, 191, 53, 187, 131, 62, 53, 41, 94, 191, 190, 103, 254, 190, 117, 233, 92, 191, 16, 92, 1, 191, 21, 102, 78, 191, 228, 113, 23, 191, 21, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 53, 41, 94, 191, 192, 103, 254, 62, 77, 191, 75, 191, 100, 254, 26, 191, 224, 72, 102, 191, 187, 166, 223, 190, 103, 70, 117, 191, 10, 165, 146, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 225, 194, 125, 191, 222, 32, 7, 62, 185, 97, 119, 191, 53, 187, 131, 62, 77, 191, 75, 191, 100, 254, 26, 191, 74, 151, 80, 191, 51, 105, 20, 191, 74, 151, 80, 191, 51, 105, 20, 63, 77, 191, 75, 191, 100, 254, 26, 63, 100, 254, 26, 191, 77, 191, 75, 191, 243, 4, 53, 191, 243, 4, 53, 191, 103, 70, 117, 191, 10, 165, 146, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 185, 97, 119, 191, 53, 187, 131, 62, 100, 254, 26, 191, 77, 191, 75, 191, 243, 4, 53, 191, 243, 4, 53, 191, 243, 4, 53, 191, 242, 4, 53, 63, 100, 254, 26, 191, 77, 191, 75, 63, 191, 103, 254, 190, 53, 41, 94, 191, 51, 105, 20, 191, 74, 151, 80, 191, 103, 70, 117, 191, 10, 165, 146, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 225, 194, 125, 191, 222, 32, 7, 62, 185, 97, 119, 191, 53, 187, 131, 62, 191, 103, 254, 190, 53, 41, 94, 191, 51, 105, 20, 191, 74, 151, 80, 191, 51, 105, 20, 191, 74, 151, 80, 63, 191, 103, 254, 190, 53, 41, 94, 63, 251, 232, 193, 190, 6, 238, 108, 191, 103, 70, 117, 191, 10, 165, 146, 62, 125, 62, 120, 191, 201, 37, 122, 62, 248, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 225, 194, 125, 191, 222, 32, 7, 62, 145, 189, 94, 191, 194, 94, 252, 62, 16, 92, 1, 191, 118, 233, 92, 191, 16, 92, 1, 191, 117, 233, 92, 63, 248, 28, 194, 190, 98, 227, 108, 191, 178, 171, 227, 190, 65, 76, 101, 191, 243, 4, 53, 191, 243, 4, 53, 63, 192, 94, 252, 190, 145, 189, 94, 63, 193, 94, 252, 190, 145, 189, 94, 191, 228, 113, 23, 191, 21, 102, 78, 191, 228, 113, 23, 191, 20, 102, 78, 63, 192, 94, 252, 190, 145, 189, 94, 63, 251, 232, 193, 190, 6, 238, 108, 191, 221, 32, 7, 190, 225, 194, 125, 63, 248, 28, 194, 190, 97, 227, 108, 191, 187, 166, 223, 190, 224, 72, 102, 191, 187, 166, 223, 190, 224, 72, 102, 63, 247, 28, 194, 190, 97, 227, 108, 63, 52, 187, 131, 190, 185, 97, 119, 191, 10, 165, 146, 190, 103, 70, 117, 191, 14, 82, 8, 50, 0, 0, 128, 63, 220, 32, 7, 190, 225, 194, 125, 191, 221, 32, 7, 190, 225, 194, 125, 63, 220, 32, 7, 190, 225, 194, 125, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 13, 82, 8, 50, 0, 0, 128, 191, 14, 82, 8, 50, 0, 0, 128, 63, 221, 32, 7, 62, 225, 194, 125, 191, 222, 32, 7, 62, 225, 194, 125, 63, 221, 32, 7, 62, 225, 194, 125, 191, 222, 32, 7, 62, 225, 194, 125, 63, 248, 28, 194, 62, 98, 227, 108, 191, 187, 166, 223, 62, 224, 72, 102, 191, 187, 166, 223, 62, 224, 72, 102, 63, 247, 28, 194, 62, 97, 227, 108, 63, 248, 28, 194, 62, 98, 227, 108, 191, 187, 166, 223, 62, 224, 72, 102, 191, 243, 4, 53, 63, 243, 4, 53, 63, 194, 94, 252, 62, 145, 189, 94, 63, 193, 94, 252, 62, 145, 189, 94, 191, 227, 113, 23, 63, 21, 102, 78, 191, 228, 113, 23, 63, 21, 102, 78, 63, 194, 94, 252, 62, 145, 189, 94, 63, 193, 94, 252, 62, 145, 189, 94, 191, 227, 113, 23, 63, 21, 102, 78, 191, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 145, 189, 94, 63, 192, 94, 252, 62, 16, 92, 1, 63, 117, 233, 92, 191, 16, 92, 1, 63, 117, 233, 92, 63, 16, 92, 1, 63, 117, 233, 92, 191, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 192, 103, 254, 62, 53, 41, 94, 191, 51, 105, 20, 63, 74, 151, 80, 191, 51, 105, 20, 63, 74, 151, 80, 63, 191, 103, 254, 62, 53, 41, 94, 63, 192, 103, 254, 62, 53, 41, 94, 191, 51, 105, 20, 63, 74, 151, 80, 191, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 100, 254, 26, 63, 77, 191, 75, 191, 242, 4, 53, 63, 243, 4, 53, 191, 243, 4, 53, 63, 243, 4, 53, 63, 100, 254, 26, 63, 77, 191, 75, 63, 100, 254, 26, 63, 77, 191, 75, 191, 242, 4, 53, 63, 243, 4, 53, 191, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 141, 67, 119, 63, 9, 157, 132, 62, 185, 97, 119, 63, 52, 187, 131, 62, 78, 191, 75, 63, 99, 254, 26, 191, 74, 151, 80, 63, 51, 105, 20, 191, 74, 151, 80, 63, 51, 105, 20, 63, 78, 191, 75, 63, 99, 254, 26, 63, 244, 4, 53, 63, 243, 4, 53, 191, 242, 4, 53, 63, 243, 4, 53, 191, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 53, 41, 94, 63, 190, 103, 254, 190, 117, 233, 92, 63, 16, 92, 1, 191, 20, 102, 78, 63, 228, 113, 23, 191, 21, 102, 78, 63, 228, 113, 23, 63, 117, 233, 92, 63, 16, 92, 1, 63, 53, 41, 94, 63, 191, 103, 254, 62, 78, 191, 75, 63, 99, 254, 26, 191, 74, 151, 80, 63, 51, 105, 20, 191, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 141, 67, 119, 63, 9, 157, 132, 62, 185, 97, 119, 63, 52, 187, 131, 62, 145, 189, 94, 63, 194, 94, 252, 190, 224, 72, 102, 63, 187, 166, 223, 190, 224, 72, 102, 63, 187, 166, 223, 62, 145, 189, 94, 63, 192, 94, 252, 62, 53, 41, 94, 63, 190, 103, 254, 190, 6, 238, 108, 63, 252, 232, 193, 190, 65, 76, 101, 63, 178, 171, 227, 190, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 248, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 98, 227, 108, 63, 247, 28, 194, 190, 225, 194, 125, 63, 220, 32, 7, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 98, 227, 108, 63, 248, 28, 194, 62, 98, 227, 108, 63, 247, 28, 194, 190, 6, 238, 108, 63, 252, 232, 193, 190, 103, 70, 117, 63, 10, 165, 146, 190, 103, 70, 117, 63, 10, 165, 146, 62, 125, 62, 120, 63, 200, 37, 122, 62, 141, 67, 119, 63, 9, 157, 132, 62, 185, 97, 119, 63, 52, 187, 131, 62, 185, 97, 119, 63, 52, 187, 131, 190, 225, 194, 125, 63, 220, 32, 7, 190, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 0, 0, 128, 63, 13, 82, 136, 50, 225, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 28, 0, 1, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 208, 201, 83, 8, 0, 0, 0, 0, 130, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 8, 202, 83, 8, 0, 0, 0, 0, 131, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 64, 202, 83, 8, 0, 0, 0, 0, 132, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 120, 202, 83, 8, 0, 0, 0, 0, 133, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 20, 4, 1, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 176, 202, 83, 8, 0, 0, 0, 0, 134, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 244, 3, 3, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 232, 202, 83, 8, 0, 0, 0, 0, 135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 32, 203, 83, 8, 0, 0, 0, 0, 136, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 248, 1, 2, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 88, 203, 83, 8, 0, 0, 0, 0, 137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 144, 203, 83, 8, 0, 0, 0, 0, 138, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 200, 203, 83, 8, 0, 0, 0, 0, 139, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 204, 83, 8, 0, 0, 0, 0, 140, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 56, 204, 83, 8, 0, 0, 0, 0, 141, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 112, 204, 83, 8, 0, 0, 0, 0, 142, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 168, 204, 83, 8, 0, 0, 0, 0, 143, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 224, 204, 83, 8, 0, 0, 0, 0, 144, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 24, 205, 83, 8, 0, 0, 0, 0, 145, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 80, 205, 83, 8, 0, 0, 0, 0, 146, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 136, 205, 83, 8, 0, 0, 0, 0, 147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 192, 205, 83, 8, 0, 0, 0, 0, 148, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 248, 205, 83, 8, 0, 0, 0, 0, 149, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 48, 206, 83, 8, 0, 0, 0, 0, 150, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 104, 206, 83, 8, 0, 0, 0, 0, 151, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 160, 206, 83, 8, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 216, 206, 83, 8, 0, 0, 0, 0, 153, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 16, 207, 83, 8, 0, 0, 0, 0, 154, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 72, 207, 83, 8, 0, 0, 0, 0, 155, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 128, 207, 83, 8, 0, 0, 0, 0, 156, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 184, 207, 83, 8, 0, 0, 0, 0, 157, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 240, 207, 83, 8, 0, 0, 0, 0, 158, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 40, 208, 83, 8, 0, 0, 0, 0, 159, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 96, 208, 83, 8, 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 152, 208, 83, 8, 0, 0, 0, 0, 161, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 208, 208, 83, 8, 0, 0, 0, 0, 162, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 8, 209, 83, 8, 0, 0, 0, 0, 163, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 64, 209, 83, 8, 0, 0, 0, 0, 164, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 120, 209, 83, 8, 0, 0, 0, 0, 165, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 176, 209, 83, 8, 0, 0, 0, 0, 166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 232, 209, 83, 8, 0, 0, 0, 0, 167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 32, 210, 83, 8, 0, 0, 0, 0, 168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 88, 210, 83, 8, 0, 0, 0, 0, 169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 144, 210, 83, 8, 0, 0, 0, 0, 170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 200, 210, 83, 8, 0, 0, 0, 0, 171, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 211, 83, 8, 0, 0, 0, 0, 172, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 56, 211, 83, 8, 0, 0, 0, 0, 173, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 112, 211, 83, 8, 0, 0, 0, 0, 174, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 168, 211, 83, 8, 0, 0, 0, 0, 175, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 224, 211, 83, 8, 0, 0, 0, 0, 176, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 24, 212, 83, 8, 0, 0, 0, 0, 177, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 80, 212, 83, 8, 0, 0, 0, 0, 178, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 136, 212, 83, 8, 0, 0, 0, 0, 179, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 192, 212, 83, 8, 0, 0, 0, 0, 180, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 248, 212, 83, 8, 0, 0, 0, 0, 181, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 48, 213, 83, 8, 0, 0, 0, 0, 182, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 77, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 104, 213, 83, 8, 0, 0, 0, 0, 183, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 160, 213, 83, 8, 0, 0, 0, 0, 184, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 216, 213, 83, 8, 0, 0, 0, 0, 185, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 16, 214, 83, 8, 0, 0, 0, 0, 186, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 72, 214, 83, 8, 0, 0, 0, 0, 187, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 128, 214, 83, 8, 0, 0, 0, 0, 188, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 184, 214, 83, 8, 0, 0, 0, 0, 189, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 240, 214, 83, 8, 0, 0, 0, 0, 190, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 40, 215, 83, 8, 0, 0, 0, 0, 191, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 96, 215, 83, 8, 0, 0, 0, 0, 192, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 152, 215, 83, 8, 0, 0, 0, 0, 193, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 208, 215, 83, 8, 0, 0, 0, 0, 194, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 8, 216, 83, 8, 0, 0, 0, 0, 195, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 64, 216, 83, 8, 0, 0, 0, 0, 196, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 120, 216, 83, 8, 0, 0, 0, 0, 197, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 176, 216, 83, 8, 0, 0, 0, 0, 198, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 232, 216, 83, 8, 0, 0, 0, 0, 199, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 32, 217, 83, 8, 0, 0, 0, 0, 200, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 88, 217, 83, 8, 0, 0, 0, 0, 201, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 144, 217, 83, 8, 0, 0, 0, 0, 202, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 200, 217, 83, 8, 0, 0, 0, 0, 203, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 218, 83, 8, 0, 0, 0, 0, 204, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 56, 218, 83, 8, 0, 0, 0, 0, 205, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 112, 218, 83, 8, 0, 0, 0, 0, 206, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 168, 218, 83, 8, 0, 0, 0, 0, 207, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 224, 218, 83, 8, 0, 0, 0, 0, 208, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 24, 219, 83, 8, 0, 0, 0, 0, 209, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 80, 219, 83, 8, 0, 0, 0, 0, 210, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 136, 219, 83, 8, 0, 0, 0, 0, 211, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 192, 219, 83, 8, 0, 0, 0, 0, 212, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 248, 219, 83, 8, 0, 0, 0, 0, 213, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 48, 220, 83, 8, 0, 0, 0, 0, 214, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 104, 220, 83, 8, 0, 0, 0, 0, 215, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 160, 220, 83, 8, 0, 0, 0, 0, 216, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 216, 220, 83, 8, 0, 0, 0, 0, 217, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 16, 221, 83, 8, 0, 0, 0, 0, 218, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 72, 221, 83, 8, 0, 0, 0, 0, 219, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 128, 221, 83, 8, 0, 0, 0, 0, 220, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 184, 221, 83, 8, 0, 0, 0, 0, 221, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 240, 221, 83, 8, 0, 0, 0, 0, 222, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 40, 222, 83, 8, 0, 0, 0, 0, 223, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 96, 222, 83, 8, 0, 0, 0, 0, 224, 5, 0, 0, 0, 0, 0, 0), +"format": "RGFloat", +"height": 1, +"mipmaps": false, +"width": 2048 +} + +[sub_resource type="ImageTexture" id="ImageTexture_jr4op"] +image = SubResource("Image_rjs8t") + +[sub_resource type="Image" id="Image_4y1dq"] +data = { +"data": PackedByteArray(0, 0, 208, 65, 0, 0, 184, 66, 0, 0, 208, 65, 0, 0, 186, 66, 0, 0, 208, 65, 0, 0, 188, 66, 0, 0, 208, 65, 0, 0, 190, 66, 0, 0, 208, 65, 0, 0, 192, 66, 0, 0, 208, 65, 0, 0, 194, 66, 0, 0, 208, 65, 0, 0, 196, 66, 0, 0, 208, 65, 0, 0, 198, 66, 0, 0, 208, 65, 0, 0, 200, 66, 0, 0, 208, 65, 0, 0, 202, 66, 0, 0, 208, 65, 0, 0, 46, 67, 0, 0, 208, 65, 0, 0, 47, 67, 0, 0, 208, 65, 0, 0, 48, 67, 0, 0, 208, 65, 0, 0, 49, 67, 0, 0, 208, 65, 0, 0, 50, 67, 0, 0, 208, 65, 0, 0, 51, 67, 0, 0, 208, 65, 0, 0, 52, 67, 0, 0, 208, 65, 0, 0, 53, 67, 0, 0, 208, 65, 0, 0, 54, 67, 0, 0, 208, 65, 0, 0, 55, 67, 0, 0, 216, 65, 0, 0, 184, 66, 0, 0, 216, 65, 0, 0, 202, 66, 0, 0, 216, 65, 0, 0, 204, 66, 0, 0, 216, 65, 0, 0, 45, 67, 0, 0, 216, 65, 0, 0, 46, 67, 0, 0, 216, 65, 0, 0, 55, 67, 0, 0, 224, 65, 0, 0, 184, 66, 0, 0, 224, 65, 0, 0, 204, 66, 0, 0, 224, 65, 0, 0, 206, 66, 0, 0, 224, 65, 0, 0, 45, 67, 0, 0, 224, 65, 0, 0, 55, 67, 0, 0, 232, 65, 0, 0, 184, 66, 0, 0, 232, 65, 0, 0, 206, 66, 0, 0, 232, 65, 0, 0, 45, 67, 0, 0, 232, 65, 0, 0, 55, 67, 0, 0, 240, 65, 0, 0, 184, 66, 0, 0, 240, 65, 0, 0, 206, 66, 0, 0, 240, 65, 0, 0, 44, 67, 0, 0, 240, 65, 0, 0, 45, 67, 0, 0, 240, 65, 0, 0, 55, 67, 0, 0, 248, 65, 0, 0, 184, 66, 0, 0, 248, 65, 0, 0, 206, 66, 0, 0, 248, 65, 0, 0, 44, 67, 0, 0, 248, 65, 0, 0, 55, 67, 0, 0, 0, 66, 0, 0, 184, 66, 0, 0, 0, 66, 0, 0, 206, 66, 0, 0, 0, 66, 0, 0, 44, 67, 0, 0, 0, 66, 0, 0, 55, 67, 0, 0, 4, 66, 0, 0, 184, 66, 0, 0, 4, 66, 0, 0, 206, 66, 0, 0, 4, 66, 0, 0, 44, 67, 0, 0, 4, 66, 0, 0, 55, 67, 0, 0, 8, 66, 0, 0, 184, 66, 0, 0, 8, 66, 0, 0, 206, 66, 0, 0, 8, 66, 0, 0, 208, 66, 0, 0, 8, 66, 0, 0, 43, 67, 0, 0, 8, 66, 0, 0, 44, 67, 0, 0, 8, 66, 0, 0, 55, 67, 0, 0, 12, 66, 0, 0, 184, 66, 0, 0, 12, 66, 0, 0, 208, 66, 0, 0, 12, 66, 0, 0, 210, 66, 0, 0, 12, 66, 0, 0, 43, 67, 0, 0, 12, 66, 0, 0, 55, 67, 0, 0, 16, 66, 0, 0, 184, 66, 0, 0, 16, 66, 0, 0, 210, 66, 0, 0, 16, 66, 0, 0, 212, 66, 0, 0, 16, 66, 0, 0, 41, 67, 0, 0, 16, 66, 0, 0, 42, 67, 0, 0, 16, 66, 0, 0, 43, 67, 0, 0, 16, 66, 0, 0, 55, 67, 0, 0, 20, 66, 0, 0, 184, 66, 0, 0, 20, 66, 0, 0, 212, 66, 0, 0, 20, 66, 0, 0, 214, 66, 0, 0, 20, 66, 0, 0, 216, 66, 0, 0, 20, 66, 0, 0, 40, 67, 0, 0, 20, 66, 0, 0, 41, 67, 0, 0, 20, 66, 0, 0, 55, 67, 0, 0, 24, 66, 0, 0, 184, 66, 0, 0, 24, 66, 0, 0, 216, 66, 0, 0, 24, 66, 0, 0, 218, 66, 0, 0, 24, 66, 0, 0, 220, 66, 0, 0, 24, 66, 0, 0, 222, 66, 0, 0, 24, 66, 0, 0, 224, 66, 0, 0, 24, 66, 0, 0, 226, 66, 0, 0, 24, 66, 0, 0, 228, 66, 0, 0, 24, 66, 0, 0, 230, 66, 0, 0, 24, 66, 0, 0, 232, 66, 0, 0, 24, 66, 0, 0, 234, 66, 0, 0, 24, 66, 0, 0, 236, 66, 0, 0, 24, 66, 0, 0, 238, 66, 0, 0, 24, 66, 0, 0, 240, 66, 0, 0, 24, 66, 0, 0, 242, 66, 0, 0, 24, 66, 0, 0, 244, 66, 0, 0, 24, 66, 0, 0, 246, 66, 0, 0, 24, 66, 0, 0, 248, 66, 0, 0, 24, 66, 0, 0, 250, 66, 0, 0, 24, 66, 0, 0, 252, 66, 0, 0, 24, 66, 0, 0, 254, 66, 0, 0, 24, 66, 0, 0, 0, 67, 0, 0, 24, 66, 0, 0, 1, 67, 0, 0, 24, 66, 0, 0, 2, 67, 0, 0, 24, 66, 0, 0, 3, 67, 0, 0, 24, 66, 0, 0, 4, 67, 0, 0, 24, 66, 0, 0, 5, 67, 0, 0, 24, 66, 0, 0, 6, 67, 0, 0, 24, 66, 0, 0, 7, 67, 0, 0, 24, 66, 0, 0, 8, 67, 0, 0, 24, 66, 0, 0, 9, 67, 0, 0, 24, 66, 0, 0, 10, 67, 0, 0, 24, 66, 0, 0, 11, 67, 0, 0, 24, 66, 0, 0, 12, 67, 0, 0, 24, 66, 0, 0, 13, 67, 0, 0, 24, 66, 0, 0, 14, 67, 0, 0, 24, 66, 0, 0, 15, 67, 0, 0, 24, 66, 0, 0, 16, 67, 0, 0, 24, 66, 0, 0, 17, 67, 0, 0, 24, 66, 0, 0, 18, 67, 0, 0, 24, 66, 0, 0, 19, 67, 0, 0, 24, 66, 0, 0, 20, 67, 0, 0, 24, 66, 0, 0, 21, 67, 0, 0, 24, 66, 0, 0, 22, 67, 0, 0, 24, 66, 0, 0, 23, 67, 0, 0, 24, 66, 0, 0, 24, 67, 0, 0, 24, 66, 0, 0, 25, 67, 0, 0, 24, 66, 0, 0, 26, 67, 0, 0, 24, 66, 0, 0, 27, 67, 0, 0, 24, 66, 0, 0, 28, 67, 0, 0, 24, 66, 0, 0, 29, 67, 0, 0, 24, 66, 0, 0, 30, 67, 0, 0, 24, 66, 0, 0, 31, 67, 0, 0, 24, 66, 0, 0, 32, 67, 0, 0, 24, 66, 0, 0, 33, 67, 0, 0, 24, 66, 0, 0, 34, 67, 0, 0, 24, 66, 0, 0, 35, 67, 0, 0, 24, 66, 0, 0, 36, 67, 0, 0, 24, 66, 0, 0, 37, 67, 0, 0, 24, 66, 0, 0, 38, 67, 0, 0, 24, 66, 0, 0, 39, 67, 0, 0, 24, 66, 0, 0, 40, 67, 0, 0, 24, 66, 0, 0, 55, 67, 0, 0, 28, 66, 0, 0, 184, 66, 0, 0, 28, 66, 0, 0, 55, 67, 0, 0, 32, 66, 0, 0, 184, 66, 0, 0, 32, 66, 0, 0, 55, 67, 0, 0, 36, 66, 0, 0, 184, 66, 0, 0, 36, 66, 0, 0, 55, 67, 0, 0, 40, 66, 0, 0, 184, 66, 0, 0, 40, 66, 0, 0, 55, 67, 0, 0, 44, 66, 0, 0, 184, 66, 0, 0, 44, 66, 0, 0, 55, 67, 0, 0, 48, 66, 0, 0, 184, 66, 0, 0, 48, 66, 0, 0, 55, 67, 0, 0, 52, 66, 0, 0, 184, 66, 0, 0, 52, 66, 0, 0, 55, 67, 0, 0, 56, 66, 0, 0, 184, 66, 0, 0, 56, 66, 0, 0, 55, 67, 0, 0, 60, 66, 0, 0, 184, 66, 0, 0, 60, 66, 0, 0, 55, 67, 0, 0, 64, 66, 0, 0, 184, 66, 0, 0, 64, 66, 0, 0, 55, 67, 0, 0, 68, 66, 0, 0, 184, 66, 0, 0, 68, 66, 0, 0, 55, 67, 0, 0, 72, 66, 0, 0, 184, 66, 0, 0, 72, 66, 0, 0, 55, 67, 0, 0, 76, 66, 0, 0, 184, 66, 0, 0, 76, 66, 0, 0, 55, 67, 0, 0, 80, 66, 0, 0, 184, 66, 0, 0, 80, 66, 0, 0, 55, 67, 0, 0, 84, 66, 0, 0, 184, 66, 0, 0, 84, 66, 0, 0, 55, 67, 0, 0, 88, 66, 0, 0, 184, 66, 0, 0, 88, 66, 0, 0, 55, 67, 0, 0, 92, 66, 0, 0, 184, 66, 0, 0, 92, 66, 0, 0, 55, 67, 0, 0, 96, 66, 0, 0, 184, 66, 0, 0, 96, 66, 0, 0, 55, 67, 0, 0, 100, 66, 0, 0, 184, 66, 0, 0, 100, 66, 0, 0, 55, 67, 0, 0, 104, 66, 0, 0, 184, 66, 0, 0, 104, 66, 0, 0, 55, 67, 0, 0, 108, 66, 0, 0, 184, 66, 0, 0, 108, 66, 0, 0, 55, 67, 0, 0, 112, 66, 0, 0, 184, 66, 0, 0, 112, 66, 0, 0, 55, 67, 0, 0, 116, 66, 0, 0, 184, 66, 0, 0, 116, 66, 0, 0, 216, 66, 0, 0, 116, 66, 0, 0, 218, 66, 0, 0, 116, 66, 0, 0, 220, 66, 0, 0, 116, 66, 0, 0, 222, 66, 0, 0, 116, 66, 0, 0, 224, 66, 0, 0, 116, 66, 0, 0, 226, 66, 0, 0, 116, 66, 0, 0, 228, 66, 0, 0, 116, 66, 0, 0, 230, 66, 0, 0, 116, 66, 0, 0, 232, 66, 0, 0, 116, 66, 0, 0, 234, 66, 0, 0, 116, 66, 0, 0, 236, 66, 0, 0, 116, 66, 0, 0, 238, 66, 0, 0, 116, 66, 0, 0, 240, 66, 0, 0, 116, 66, 0, 0, 242, 66, 0, 0, 116, 66, 0, 0, 244, 66, 0, 0, 116, 66, 0, 0, 246, 66, 0, 0, 116, 66, 0, 0, 248, 66, 0, 0, 116, 66, 0, 0, 250, 66, 0, 0, 116, 66, 0, 0, 252, 66, 0, 0, 116, 66, 0, 0, 254, 66, 0, 0, 116, 66, 0, 0, 0, 67, 0, 0, 116, 66, 0, 0, 13, 67, 0, 0, 116, 66, 0, 0, 14, 67, 0, 0, 116, 66, 0, 0, 15, 67, 0, 0, 116, 66, 0, 0, 16, 67, 0, 0, 116, 66, 0, 0, 17, 67, 0, 0, 116, 66, 0, 0, 18, 67, 0, 0, 116, 66, 0, 0, 19, 67, 0, 0, 116, 66, 0, 0, 20, 67, 0, 0, 116, 66, 0, 0, 21, 67, 0, 0, 116, 66, 0, 0, 22, 67, 0, 0, 116, 66, 0, 0, 23, 67, 0, 0, 116, 66, 0, 0, 24, 67, 0, 0, 116, 66, 0, 0, 25, 67, 0, 0, 116, 66, 0, 0, 26, 67, 0, 0, 116, 66, 0, 0, 27, 67, 0, 0, 116, 66, 0, 0, 28, 67, 0, 0, 116, 66, 0, 0, 29, 67, 0, 0, 116, 66, 0, 0, 30, 67, 0, 0, 116, 66, 0, 0, 31, 67, 0, 0, 116, 66, 0, 0, 32, 67, 0, 0, 116, 66, 0, 0, 33, 67, 0, 0, 116, 66, 0, 0, 34, 67, 0, 0, 116, 66, 0, 0, 35, 67, 0, 0, 116, 66, 0, 0, 36, 67, 0, 0, 116, 66, 0, 0, 37, 67, 0, 0, 116, 66, 0, 0, 38, 67, 0, 0, 116, 66, 0, 0, 39, 67, 0, 0, 116, 66, 0, 0, 40, 67, 0, 0, 116, 66, 0, 0, 55, 67, 0, 0, 120, 66, 0, 0, 184, 66, 0, 0, 120, 66, 0, 0, 212, 66, 0, 0, 120, 66, 0, 0, 214, 66, 0, 0, 120, 66, 0, 0, 216, 66, 0, 0, 120, 66, 0, 0, 0, 67, 0, 0, 120, 66, 0, 0, 13, 67, 0, 0, 120, 66, 0, 0, 40, 67, 0, 0, 120, 66, 0, 0, 41, 67, 0, 0, 120, 66, 0, 0, 55, 67, 0, 0, 124, 66, 0, 0, 184, 66, 0, 0, 124, 66, 0, 0, 210, 66, 0, 0, 124, 66, 0, 0, 212, 66, 0, 0, 124, 66, 0, 0, 0, 67, 0, 0, 124, 66, 0, 0, 13, 67, 0, 0, 124, 66, 0, 0, 41, 67, 0, 0, 124, 66, 0, 0, 42, 67, 0, 0, 124, 66, 0, 0, 43, 67, 0, 0, 124, 66, 0, 0, 55, 67, 0, 0, 128, 66, 0, 0, 184, 66, 0, 0, 128, 66, 0, 0, 208, 66, 0, 0, 128, 66, 0, 0, 210, 66, 0, 0, 128, 66, 0, 0, 0, 67, 0, 0, 128, 66, 0, 0, 13, 67, 0, 0, 128, 66, 0, 0, 43, 67, 0, 0, 128, 66, 0, 0, 55, 67, 0, 0, 130, 66, 0, 0, 184, 66, 0, 0, 130, 66, 0, 0, 206, 66, 0, 0, 130, 66, 0, 0, 208, 66, 0, 0, 130, 66, 0, 0, 0, 67, 0, 0, 130, 66, 0, 0, 13, 67, 0, 0, 130, 66, 0, 0, 43, 67, 0, 0, 130, 66, 0, 0, 44, 67, 0, 0, 130, 66, 0, 0, 55, 67, 0, 0, 132, 66, 0, 0, 184, 66, 0, 0, 132, 66, 0, 0, 206, 66, 0, 0, 132, 66, 0, 0, 0, 67, 0, 0, 132, 66, 0, 0, 13, 67, 0, 0, 132, 66, 0, 0, 44, 67, 0, 0, 132, 66, 0, 0, 55, 67, 0, 0, 134, 66, 0, 0, 184, 66, 0, 0, 134, 66, 0, 0, 206, 66, 0, 0, 134, 66, 0, 0, 0, 67, 0, 0, 134, 66, 0, 0, 13, 67, 0, 0, 134, 66, 0, 0, 44, 67, 0, 0, 134, 66, 0, 0, 55, 67, 0, 0, 136, 66, 0, 0, 184, 66, 0, 0, 136, 66, 0, 0, 206, 66, 0, 0, 136, 66, 0, 0, 0, 67, 0, 0, 136, 66, 0, 0, 13, 67, 0, 0, 136, 66, 0, 0, 44, 67, 0, 0, 136, 66, 0, 0, 55, 67, 0, 0, 138, 66, 0, 0, 184, 66, 0, 0, 138, 66, 0, 0, 206, 66, 0, 0, 138, 66, 0, 0, 0, 67, 0, 0, 138, 66, 0, 0, 13, 67, 0, 0, 138, 66, 0, 0, 44, 67, 0, 0, 138, 66, 0, 0, 45, 67, 0, 0, 138, 66, 0, 0, 55, 67, 0, 0, 140, 66, 0, 0, 184, 66, 0, 0, 140, 66, 0, 0, 206, 66, 0, 0, 140, 66, 0, 0, 0, 67, 0, 0, 140, 66, 0, 0, 13, 67, 0, 0, 140, 66, 0, 0, 45, 67, 0, 0, 140, 66, 0, 0, 55, 67, 0, 0, 142, 66, 0, 0, 184, 66, 0, 0, 142, 66, 0, 0, 204, 66, 0, 0, 142, 66, 0, 0, 206, 66, 0, 0, 142, 66, 0, 0, 0, 67, 0, 0, 142, 66, 0, 0, 13, 67, 0, 0, 142, 66, 0, 0, 45, 67, 0, 0, 142, 66, 0, 0, 55, 67, 0, 0, 144, 66, 0, 0, 184, 66, 0, 0, 144, 66, 0, 0, 202, 66, 0, 0, 144, 66, 0, 0, 204, 66, 0, 0, 144, 66, 0, 0, 0, 67, 0, 0, 144, 66, 0, 0, 13, 67, 0, 0, 144, 66, 0, 0, 45, 67, 0, 0, 144, 66, 0, 0, 46, 67, 0, 0, 144, 66, 0, 0, 55, 67, 0, 0, 146, 66, 0, 0, 184, 66, 0, 0, 146, 66, 0, 0, 186, 66, 0, 0, 146, 66, 0, 0, 188, 66, 0, 0, 146, 66, 0, 0, 190, 66, 0, 0, 146, 66, 0, 0, 192, 66, 0, 0, 146, 66, 0, 0, 194, 66, 0, 0, 146, 66, 0, 0, 196, 66, 0, 0, 146, 66, 0, 0, 198, 66, 0, 0, 146, 66, 0, 0, 200, 66, 0, 0, 146, 66, 0, 0, 202, 66, 0, 0, 146, 66, 0, 0, 0, 67, 0, 0, 146, 66, 0, 0, 13, 67, 0, 0, 146, 66, 0, 0, 46, 67, 0, 0, 146, 66, 0, 0, 47, 67, 0, 0, 146, 66, 0, 0, 48, 67, 0, 0, 146, 66, 0, 0, 49, 67, 0, 0, 146, 66, 0, 0, 50, 67, 0, 0, 146, 66, 0, 0, 51, 67, 0, 0, 146, 66, 0, 0, 52, 67, 0, 0, 146, 66, 0, 0, 53, 67, 0, 0, 146, 66, 0, 0, 54, 67, 0, 0, 146, 66, 0, 0, 55, 67, 0, 0, 148, 66, 0, 0, 0, 67, 0, 0, 148, 66, 0, 0, 13, 67, 0, 0, 150, 66, 0, 0, 0, 67, 0, 0, 150, 66, 0, 0, 13, 67, 0, 0, 152, 66, 0, 0, 0, 67, 0, 0, 152, 66, 0, 0, 13, 67, 0, 0, 154, 66, 0, 0, 0, 67, 0, 0, 154, 66, 0, 0, 13, 67, 0, 0, 156, 66, 0, 0, 0, 67, 0, 0, 156, 66, 0, 0, 13, 67, 0, 0, 158, 66, 0, 0, 0, 67, 0, 0, 158, 66, 0, 0, 13, 67, 0, 0, 160, 66, 0, 0, 0, 67, 0, 0, 160, 66, 0, 0, 13, 67, 0, 0, 162, 66, 0, 0, 0, 67, 0, 0, 162, 66, 0, 0, 13, 67, 0, 0, 164, 66, 0, 0, 0, 67, 0, 0, 164, 66, 0, 0, 13, 67, 0, 0, 166, 66, 0, 0, 0, 67, 0, 0, 166, 66, 0, 0, 13, 67, 0, 0, 168, 66, 0, 0, 184, 66, 0, 0, 168, 66, 0, 0, 186, 66, 0, 0, 168, 66, 0, 0, 188, 66, 0, 0, 168, 66, 0, 0, 190, 66, 0, 0, 168, 66, 0, 0, 192, 66, 0, 0, 168, 66, 0, 0, 194, 66, 0, 0, 168, 66, 0, 0, 196, 66, 0, 0, 168, 66, 0, 0, 198, 66, 0, 0, 168, 66, 0, 0, 200, 66, 0, 0, 168, 66, 0, 0, 202, 66, 0, 0, 168, 66, 0, 0, 0, 67, 0, 0, 168, 66, 0, 0, 13, 67, 0, 0, 168, 66, 0, 0, 46, 67, 0, 0, 168, 66, 0, 0, 47, 67, 0, 0, 168, 66, 0, 0, 48, 67, 0, 0, 168, 66, 0, 0, 49, 67, 0, 0, 168, 66, 0, 0, 50, 67, 0, 0, 168, 66, 0, 0, 51, 67, 0, 0, 168, 66, 0, 0, 52, 67, 0, 0, 168, 66, 0, 0, 53, 67, 0, 0, 168, 66, 0, 0, 54, 67, 0, 0, 168, 66, 0, 0, 55, 67, 0, 0, 170, 66, 0, 0, 184, 66, 0, 0, 170, 66, 0, 0, 202, 66, 0, 0, 170, 66, 0, 0, 204, 66, 0, 0, 170, 66, 0, 0, 0, 67, 0, 0, 170, 66, 0, 0, 13, 67, 0, 0, 170, 66, 0, 0, 45, 67, 0, 0, 170, 66, 0, 0, 46, 67, 0, 0, 170, 66, 0, 0, 55, 67, 0, 0, 172, 66, 0, 0, 184, 66, 0, 0, 172, 66, 0, 0, 204, 66, 0, 0, 172, 66, 0, 0, 206, 66, 0, 0, 172, 66, 0, 0, 0, 67, 0, 0, 172, 66, 0, 0, 13, 67, 0, 0, 172, 66, 0, 0, 45, 67, 0, 0, 172, 66, 0, 0, 55, 67, 0, 0, 174, 66, 0, 0, 184, 66, 0, 0, 174, 66, 0, 0, 206, 66, 0, 0, 174, 66, 0, 0, 0, 67, 0, 0, 174, 66, 0, 0, 13, 67, 0, 0, 174, 66, 0, 0, 45, 67, 0, 0, 174, 66, 0, 0, 55, 67, 0, 0, 176, 66, 0, 0, 184, 66, 0, 0, 176, 66, 0, 0, 206, 66, 0, 0, 176, 66, 0, 0, 0, 67, 0, 0, 176, 66, 0, 0, 13, 67, 0, 0, 176, 66, 0, 0, 44, 67, 0, 0, 176, 66, 0, 0, 45, 67, 0, 0, 176, 66, 0, 0, 55, 67, 0, 0, 178, 66, 0, 0, 184, 66, 0, 0, 178, 66, 0, 0, 206, 66, 0, 0, 178, 66, 0, 0, 0, 67, 0, 0, 178, 66, 0, 0, 13, 67, 0, 0, 178, 66, 0, 0, 44, 67, 0, 0, 178, 66, 0, 0, 55, 67, 0, 0, 180, 66, 0, 0, 184, 66, 0, 0, 180, 66, 0, 0, 206, 66, 0, 0, 180, 66, 0, 0, 0, 67, 0, 0, 180, 66, 0, 0, 13, 67, 0, 0, 180, 66, 0, 0, 44, 67, 0, 0, 180, 66, 0, 0, 55, 67, 0, 0, 182, 66, 0, 0, 184, 66, 0, 0, 182, 66, 0, 0, 206, 66, 0, 0, 182, 66, 0, 0, 0, 67, 0, 0, 182, 66, 0, 0, 13, 67, 0, 0, 182, 66, 0, 0, 44, 67, 0, 0, 182, 66, 0, 0, 55, 67, 0, 0, 184, 66, 0, 0, 184, 66, 0, 0, 184, 66, 0, 0, 206, 66, 0, 0, 184, 66, 0, 0, 208, 66, 0, 0, 184, 66, 0, 0, 0, 67, 0, 0, 184, 66, 0, 0, 13, 67, 0, 0, 184, 66, 0, 0, 43, 67, 0, 0, 184, 66, 0, 0, 44, 67, 0, 0, 184, 66, 0, 0, 55, 67, 0, 0, 186, 66, 0, 0, 184, 66, 0, 0, 186, 66, 0, 0, 208, 66, 0, 0, 186, 66, 0, 0, 210, 66, 0, 0, 186, 66, 0, 0, 0, 67, 0, 0, 186, 66, 0, 0, 13, 67, 0, 0, 186, 66, 0, 0, 43, 67, 0, 0, 186, 66, 0, 0, 55, 67, 0, 0, 188, 66, 0, 0, 184, 66, 0, 0, 188, 66, 0, 0, 210, 66, 0, 0, 188, 66, 0, 0, 212, 66, 0, 0, 188, 66, 0, 0, 0, 67, 0, 0, 188, 66, 0, 0, 13, 67, 0, 0, 188, 66, 0, 0, 41, 67, 0, 0, 188, 66, 0, 0, 42, 67, 0, 0, 188, 66, 0, 0, 43, 67, 0, 0, 188, 66, 0, 0, 55, 67, 0, 0, 190, 66, 0, 0, 184, 66, 0, 0, 190, 66, 0, 0, 212, 66, 0, 0, 190, 66, 0, 0, 214, 66, 0, 0, 190, 66, 0, 0, 216, 66, 0, 0, 190, 66, 0, 0, 0, 67, 0, 0, 190, 66, 0, 0, 13, 67, 0, 0, 190, 66, 0, 0, 40, 67, 0, 0, 190, 66, 0, 0, 41, 67, 0, 0, 190, 66, 0, 0, 55, 67, 0, 0, 192, 66, 0, 0, 184, 66, 0, 0, 192, 66, 0, 0, 216, 66, 0, 0, 192, 66, 0, 0, 218, 66, 0, 0, 192, 66, 0, 0, 220, 66, 0, 0, 192, 66, 0, 0, 222, 66, 0, 0, 192, 66, 0, 0, 224, 66, 0, 0, 192, 66, 0, 0, 226, 66, 0, 0, 192, 66, 0, 0, 228, 66, 0, 0, 192, 66, 0, 0, 230, 66, 0, 0, 192, 66, 0, 0, 232, 66, 0, 0, 192, 66, 0, 0, 234, 66, 0, 0, 192, 66, 0, 0, 236, 66, 0, 0, 192, 66, 0, 0, 238, 66, 0, 0, 192, 66, 0, 0, 240, 66, 0, 0, 192, 66, 0, 0, 242, 66, 0, 0, 192, 66, 0, 0, 244, 66, 0, 0, 192, 66, 0, 0, 246, 66, 0, 0, 192, 66, 0, 0, 248, 66, 0, 0, 192, 66, 0, 0, 250, 66, 0, 0, 192, 66, 0, 0, 252, 66, 0, 0, 192, 66, 0, 0, 254, 66, 0, 0, 192, 66, 0, 0, 0, 67, 0, 0, 192, 66, 0, 0, 13, 67, 0, 0, 192, 66, 0, 0, 14, 67, 0, 0, 192, 66, 0, 0, 15, 67, 0, 0, 192, 66, 0, 0, 16, 67, 0, 0, 192, 66, 0, 0, 17, 67, 0, 0, 192, 66, 0, 0, 18, 67, 0, 0, 192, 66, 0, 0, 19, 67, 0, 0, 192, 66, 0, 0, 20, 67, 0, 0, 192, 66, 0, 0, 21, 67, 0, 0, 192, 66, 0, 0, 22, 67, 0, 0, 192, 66, 0, 0, 23, 67, 0, 0, 192, 66, 0, 0, 24, 67, 0, 0, 192, 66, 0, 0, 25, 67, 0, 0, 192, 66, 0, 0, 26, 67, 0, 0, 192, 66, 0, 0, 27, 67, 0, 0, 192, 66, 0, 0, 28, 67, 0, 0, 192, 66, 0, 0, 29, 67, 0, 0, 192, 66, 0, 0, 30, 67, 0, 0, 192, 66, 0, 0, 31, 67, 0, 0, 192, 66, 0, 0, 32, 67, 0, 0, 192, 66, 0, 0, 33, 67, 0, 0, 192, 66, 0, 0, 34, 67, 0, 0, 192, 66, 0, 0, 35, 67, 0, 0, 192, 66, 0, 0, 36, 67, 0, 0, 192, 66, 0, 0, 37, 67, 0, 0, 192, 66, 0, 0, 38, 67, 0, 0, 192, 66, 0, 0, 39, 67, 0, 0, 192, 66, 0, 0, 40, 67, 0, 0, 192, 66, 0, 0, 55, 67, 0, 0, 194, 66, 0, 0, 184, 66, 0, 0, 194, 66, 0, 0, 55, 67, 0, 0, 196, 66, 0, 0, 184, 66, 0, 0, 196, 66, 0, 0, 55, 67, 0, 0, 198, 66, 0, 0, 184, 66, 0, 0, 198, 66, 0, 0, 55, 67, 0, 0, 200, 66, 0, 0, 184, 66, 0, 0, 200, 66, 0, 0, 55, 67, 0, 0, 202, 66, 0, 0, 184, 66, 0, 0, 202, 66, 0, 0, 55, 67, 0, 0, 204, 66, 0, 0, 184, 66, 0, 0, 204, 66, 0, 0, 55, 67, 0, 0, 206, 66, 0, 0, 184, 66, 0, 0, 206, 66, 0, 0, 55, 67, 0, 0, 208, 66, 0, 0, 184, 66, 0, 0, 208, 66, 0, 0, 55, 67, 0, 0, 210, 66, 0, 0, 184, 66, 0, 0, 210, 66, 0, 0, 55, 67, 0, 0, 212, 66, 0, 0, 184, 66, 0, 0, 212, 66, 0, 0, 55, 67, 0, 0, 214, 66, 0, 0, 184, 66, 0, 0, 214, 66, 0, 0, 55, 67, 0, 0, 216, 66, 0, 0, 184, 66, 0, 0, 216, 66, 0, 0, 55, 67, 0, 0, 218, 66, 0, 0, 184, 66, 0, 0, 218, 66, 0, 0, 55, 67, 0, 0, 220, 66, 0, 0, 184, 66, 0, 0, 220, 66, 0, 0, 55, 67, 0, 0, 222, 66, 0, 0, 184, 66, 0, 0, 222, 66, 0, 0, 55, 67, 0, 0, 224, 66, 0, 0, 184, 66, 0, 0, 224, 66, 0, 0, 55, 67, 0, 0, 226, 66, 0, 0, 184, 66, 0, 0, 226, 66, 0, 0, 55, 67, 0, 0, 228, 66, 0, 0, 184, 66, 0, 0, 228, 66, 0, 0, 55, 67, 0, 0, 230, 66, 0, 0, 184, 66, 0, 0, 230, 66, 0, 0, 55, 67, 0, 0, 232, 66, 0, 0, 184, 66, 0, 0, 232, 66, 0, 0, 55, 67, 0, 0, 234, 66, 0, 0, 184, 66, 0, 0, 234, 66, 0, 0, 55, 67, 0, 0, 236, 66, 0, 0, 184, 66, 0, 0, 236, 66, 0, 0, 55, 67, 0, 0, 238, 66, 0, 0, 184, 66, 0, 0, 238, 66, 0, 0, 216, 66, 0, 0, 238, 66, 0, 0, 218, 66, 0, 0, 238, 66, 0, 0, 220, 66, 0, 0, 238, 66, 0, 0, 222, 66, 0, 0, 238, 66, 0, 0, 224, 66, 0, 0, 238, 66, 0, 0, 226, 66, 0, 0, 238, 66, 0, 0, 228, 66, 0, 0, 238, 66, 0, 0, 230, 66, 0, 0, 238, 66, 0, 0, 232, 66, 0, 0, 238, 66, 0, 0, 234, 66, 0, 0, 238, 66, 0, 0, 236, 66, 0, 0, 238, 66, 0, 0, 238, 66, 0, 0, 238, 66, 0, 0, 240, 66, 0, 0, 238, 66, 0, 0, 242, 66, 0, 0, 238, 66, 0, 0, 244, 66, 0, 0, 238, 66, 0, 0, 246, 66, 0, 0, 238, 66, 0, 0, 248, 66, 0, 0, 238, 66, 0, 0, 250, 66, 0, 0, 238, 66, 0, 0, 252, 66, 0, 0, 238, 66, 0, 0, 254, 66, 0, 0, 238, 66, 0, 0, 0, 67, 0, 0, 238, 66, 0, 0, 1, 67, 0, 0, 238, 66, 0, 0, 2, 67, 0, 0, 238, 66, 0, 0, 3, 67, 0, 0, 238, 66, 0, 0, 4, 67, 0, 0, 238, 66, 0, 0, 5, 67, 0, 0, 238, 66, 0, 0, 6, 67, 0, 0, 238, 66, 0, 0, 7, 67, 0, 0, 238, 66, 0, 0, 8, 67, 0, 0, 238, 66, 0, 0, 9, 67, 0, 0, 238, 66, 0, 0, 10, 67, 0, 0, 238, 66, 0, 0, 11, 67, 0, 0, 238, 66, 0, 0, 12, 67, 0, 0, 238, 66, 0, 0, 13, 67, 0, 0, 238, 66, 0, 0, 14, 67, 0, 0, 238, 66, 0, 0, 15, 67, 0, 0, 238, 66, 0, 0, 16, 67, 0, 0, 238, 66, 0, 0, 17, 67, 0, 0, 238, 66, 0, 0, 18, 67, 0, 0, 238, 66, 0, 0, 19, 67, 0, 0, 238, 66, 0, 0, 20, 67, 0, 0, 238, 66, 0, 0, 21, 67, 0, 0, 238, 66, 0, 0, 22, 67, 0, 0, 238, 66, 0, 0, 23, 67, 0, 0, 238, 66, 0, 0, 24, 67, 0, 0, 238, 66, 0, 0, 25, 67, 0, 0, 238, 66, 0, 0, 26, 67, 0, 0, 238, 66, 0, 0, 27, 67, 0, 0, 238, 66, 0, 0, 28, 67, 0, 0, 238, 66, 0, 0, 29, 67, 0, 0, 238, 66, 0, 0, 30, 67, 0, 0, 238, 66, 0, 0, 31, 67, 0, 0, 238, 66, 0, 0, 32, 67, 0, 0, 238, 66, 0, 0, 33, 67, 0, 0, 238, 66, 0, 0, 34, 67, 0, 0, 238, 66, 0, 0, 35, 67, 0, 0, 238, 66, 0, 0, 36, 67, 0, 0, 238, 66, 0, 0, 37, 67, 0, 0, 238, 66, 0, 0, 38, 67, 0, 0, 238, 66, 0, 0, 39, 67, 0, 0, 238, 66, 0, 0, 40, 67, 0, 0, 238, 66, 0, 0, 55, 67, 0, 0, 240, 66, 0, 0, 184, 66, 0, 0, 240, 66, 0, 0, 212, 66, 0, 0, 240, 66, 0, 0, 214, 66, 0, 0, 240, 66, 0, 0, 216, 66, 0, 0, 240, 66, 0, 0, 40, 67, 0, 0, 240, 66, 0, 0, 41, 67, 0, 0, 240, 66, 0, 0, 55, 67, 0, 0, 242, 66, 0, 0, 184, 66, 0, 0, 242, 66, 0, 0, 210, 66, 0, 0, 242, 66, 0, 0, 212, 66, 0, 0, 242, 66, 0, 0, 41, 67, 0, 0, 242, 66, 0, 0, 42, 67, 0, 0, 242, 66, 0, 0, 43, 67, 0, 0, 242, 66, 0, 0, 55, 67, 0, 0, 244, 66, 0, 0, 184, 66, 0, 0, 244, 66, 0, 0, 208, 66, 0, 0, 244, 66, 0, 0, 210, 66, 0, 0, 244, 66, 0, 0, 43, 67, 0, 0, 244, 66, 0, 0, 55, 67, 0, 0, 246, 66, 0, 0, 184, 66, 0, 0, 246, 66, 0, 0, 206, 66, 0, 0, 246, 66, 0, 0, 208, 66, 0, 0, 246, 66, 0, 0, 43, 67, 0, 0, 246, 66, 0, 0, 44, 67, 0, 0, 246, 66, 0, 0, 55, 67, 0, 0, 248, 66, 0, 0, 184, 66, 0, 0, 248, 66, 0, 0, 206, 66, 0, 0, 248, 66, 0, 0, 44, 67, 0, 0, 248, 66, 0, 0, 55, 67, 0, 0, 250, 66, 0, 0, 184, 66, 0, 0, 250, 66, 0, 0, 206, 66, 0, 0, 250, 66, 0, 0, 44, 67, 0, 0, 250, 66, 0, 0, 55, 67, 0, 0, 252, 66, 0, 0, 184, 66, 0, 0, 252, 66, 0, 0, 206, 66, 0, 0, 252, 66, 0, 0, 44, 67, 0, 0, 252, 66, 0, 0, 55, 67, 0, 0, 254, 66, 0, 0, 184, 66, 0, 0, 254, 66, 0, 0, 206, 66, 0, 0, 254, 66, 0, 0, 44, 67, 0, 0, 254, 66, 0, 0, 45, 67, 0, 0, 254, 66, 0, 0, 55, 67, 0, 0, 0, 67, 0, 0, 184, 66, 0, 0, 0, 67, 0, 0, 206, 66, 0, 0, 0, 67, 0, 0, 45, 67, 0, 0, 0, 67, 0, 0, 55, 67, 0, 0, 1, 67, 0, 0, 184, 66, 0, 0, 1, 67, 0, 0, 204, 66, 0, 0, 1, 67, 0, 0, 206, 66, 0, 0, 1, 67, 0, 0, 45, 67, 0, 0, 1, 67, 0, 0, 55, 67, 0, 0, 2, 67, 0, 0, 184, 66, 0, 0, 2, 67, 0, 0, 202, 66, 0, 0, 2, 67, 0, 0, 204, 66, 0, 0, 2, 67, 0, 0, 45, 67, 0, 0, 2, 67, 0, 0, 46, 67, 0, 0, 2, 67, 0, 0, 55, 67, 0, 0, 3, 67, 0, 0, 184, 66, 0, 0, 3, 67, 0, 0, 186, 66, 0, 0, 3, 67, 0, 0, 188, 66, 0, 0, 3, 67, 0, 0, 190, 66, 0, 0, 3, 67, 0, 0, 192, 66, 0, 0, 3, 67, 0, 0, 194, 66, 0, 0, 3, 67, 0, 0, 196, 66, 0, 0, 3, 67, 0, 0, 198, 66, 0, 0, 3, 67, 0, 0, 200, 66, 0, 0, 3, 67, 0, 0, 202, 66, 0, 0, 3, 67, 0, 0, 46, 67, 0, 0, 3, 67, 0, 0, 47, 67, 0, 0, 3, 67, 0, 0, 48, 67, 0, 0, 3, 67, 0, 0, 49, 67, 0, 0, 3, 67, 0, 0, 50, 67, 0, 0, 3, 67, 0, 0, 51, 67, 0, 0, 3, 67, 0, 0, 52, 67, 0, 0, 3, 67, 0, 0, 53, 67, 0, 0, 3, 67, 0, 0, 54, 67, 0, 0, 3, 67, 0, 0, 55, 67, 0, 0, 10, 67, 0, 0, 184, 66, 0, 0, 10, 67, 0, 0, 186, 66, 0, 0, 10, 67, 0, 0, 188, 66, 0, 0, 10, 67, 0, 0, 190, 66, 0, 0, 10, 67, 0, 0, 192, 66, 0, 0, 10, 67, 0, 0, 194, 66, 0, 0, 10, 67, 0, 0, 196, 66, 0, 0, 10, 67, 0, 0, 198, 66, 0, 0, 10, 67, 0, 0, 200, 66, 0, 0, 10, 67, 0, 0, 202, 66, 0, 0, 10, 67, 0, 0, 46, 67, 0, 0, 10, 67, 0, 0, 47, 67, 0, 0, 10, 67, 0, 0, 48, 67, 0, 0, 10, 67, 0, 0, 49, 67, 0, 0, 10, 67, 0, 0, 50, 67, 0, 0, 10, 67, 0, 0, 51, 67, 0, 0, 10, 67, 0, 0, 52, 67, 0, 0, 10, 67, 0, 0, 53, 67, 0, 0, 10, 67, 0, 0, 54, 67, 0, 0, 10, 67, 0, 0, 55, 67, 0, 0, 11, 67, 0, 0, 184, 66, 0, 0, 11, 67, 0, 0, 202, 66, 0, 0, 11, 67, 0, 0, 204, 66, 0, 0, 11, 67, 0, 0, 45, 67, 0, 0, 11, 67, 0, 0, 46, 67, 0, 0, 11, 67, 0, 0, 55, 67, 0, 0, 12, 67, 0, 0, 184, 66, 0, 0, 12, 67, 0, 0, 204, 66, 0, 0, 12, 67, 0, 0, 45, 67, 0, 0, 12, 67, 0, 0, 55, 67, 0, 0, 13, 67, 0, 0, 184, 66, 0, 0, 13, 67, 0, 0, 204, 66, 0, 0, 13, 67, 0, 0, 45, 67, 0, 0, 13, 67, 0, 0, 55, 67, 0, 0, 14, 67, 0, 0, 184, 66, 0, 0, 14, 67, 0, 0, 204, 66, 0, 0, 14, 67, 0, 0, 44, 67, 0, 0, 14, 67, 0, 0, 45, 67, 0, 0, 14, 67, 0, 0, 55, 67, 0, 0, 15, 67, 0, 0, 184, 66, 0, 0, 15, 67, 0, 0, 204, 66, 0, 0, 15, 67, 0, 0, 206, 66, 0, 0, 15, 67, 0, 0, 44, 67, 0, 0, 15, 67, 0, 0, 55, 67, 0, 0, 16, 67, 0, 0, 184, 66, 0, 0, 16, 67, 0, 0, 206, 66, 0, 0, 16, 67, 0, 0, 44, 67, 0, 0, 16, 67, 0, 0, 55, 67, 0, 0, 17, 67, 0, 0, 184, 66, 0, 0, 17, 67, 0, 0, 206, 66, 0, 0, 17, 67, 0, 0, 44, 67, 0, 0, 17, 67, 0, 0, 55, 67, 0, 0, 18, 67, 0, 0, 184, 66, 0, 0, 18, 67, 0, 0, 206, 66, 0, 0, 18, 67, 0, 0, 44, 67, 0, 0, 18, 67, 0, 0, 55, 67, 0, 0, 19, 67, 0, 0, 184, 66, 0, 0, 19, 67, 0, 0, 206, 66, 0, 0, 19, 67, 0, 0, 208, 66, 0, 0, 19, 67, 0, 0, 43, 67, 0, 0, 19, 67, 0, 0, 44, 67, 0, 0, 19, 67, 0, 0, 55, 67, 0, 0, 20, 67, 0, 0, 184, 66, 0, 0, 20, 67, 0, 0, 208, 66, 0, 0, 20, 67, 0, 0, 210, 66, 0, 0, 20, 67, 0, 0, 42, 67, 0, 0, 20, 67, 0, 0, 43, 67, 0, 0, 20, 67, 0, 0, 55, 67, 0, 0, 21, 67, 0, 0, 184, 66, 0, 0, 21, 67, 0, 0, 210, 66, 0, 0, 21, 67, 0, 0, 212, 66, 0, 0, 21, 67, 0, 0, 214, 66, 0, 0, 21, 67, 0, 0, 40, 67, 0, 0, 21, 67, 0, 0, 41, 67, 0, 0, 21, 67, 0, 0, 42, 67, 0, 0, 21, 67, 0, 0, 55, 67, 0, 0, 22, 67, 0, 0, 184, 66, 0, 0, 22, 67, 0, 0, 214, 66, 0, 0, 22, 67, 0, 0, 216, 66, 0, 0, 22, 67, 0, 0, 218, 66, 0, 0, 22, 67, 0, 0, 220, 66, 0, 0, 22, 67, 0, 0, 222, 66, 0, 0, 22, 67, 0, 0, 224, 66, 0, 0, 22, 67, 0, 0, 226, 66, 0, 0, 22, 67, 0, 0, 228, 66, 0, 0, 22, 67, 0, 0, 230, 66, 0, 0, 22, 67, 0, 0, 232, 66, 0, 0, 22, 67, 0, 0, 234, 66, 0, 0, 22, 67, 0, 0, 236, 66, 0, 0, 22, 67, 0, 0, 238, 66, 0, 0, 22, 67, 0, 0, 240, 66, 0, 0, 22, 67, 0, 0, 242, 66, 0, 0, 22, 67, 0, 0, 244, 66, 0, 0, 22, 67, 0, 0, 246, 66, 0, 0, 22, 67, 0, 0, 248, 66, 0, 0, 22, 67, 0, 0, 250, 66, 0, 0, 22, 67, 0, 0, 252, 66, 0, 0, 22, 67, 0, 0, 254, 66, 0, 0, 22, 67, 0, 0, 0, 67, 0, 0, 22, 67, 0, 0, 1, 67, 0, 0, 22, 67, 0, 0, 2, 67, 0, 0, 22, 67, 0, 0, 3, 67, 0, 0, 22, 67, 0, 0, 4, 67, 0, 0, 22, 67, 0, 0, 5, 67, 0, 0, 22, 67, 0, 0, 6, 67, 0, 0, 22, 67, 0, 0, 7, 67, 0, 0, 22, 67, 0, 0, 8, 67, 0, 0, 22, 67, 0, 0, 9, 67, 0, 0, 22, 67, 0, 0, 10, 67, 0, 0, 22, 67, 0, 0, 11, 67, 0, 0, 22, 67, 0, 0, 12, 67, 0, 0, 22, 67, 0, 0, 13, 67, 0, 0, 22, 67, 0, 0, 14, 67, 0, 0, 22, 67, 0, 0, 15, 67, 0, 0, 22, 67, 0, 0, 16, 67, 0, 0, 22, 67, 0, 0, 17, 67, 0, 0, 22, 67, 0, 0, 18, 67, 0, 0, 22, 67, 0, 0, 19, 67, 0, 0, 22, 67, 0, 0, 20, 67, 0, 0, 22, 67, 0, 0, 21, 67, 0, 0, 22, 67, 0, 0, 22, 67, 0, 0, 22, 67, 0, 0, 23, 67, 0, 0, 22, 67, 0, 0, 24, 67, 0, 0, 22, 67, 0, 0, 25, 67, 0, 0, 22, 67, 0, 0, 26, 67, 0, 0, 22, 67, 0, 0, 27, 67, 0, 0, 22, 67, 0, 0, 28, 67, 0, 0, 22, 67, 0, 0, 29, 67, 0, 0, 22, 67, 0, 0, 30, 67, 0, 0, 22, 67, 0, 0, 31, 67, 0, 0, 22, 67, 0, 0, 32, 67, 0, 0, 22, 67, 0, 0, 33, 67, 0, 0, 22, 67, 0, 0, 34, 67, 0, 0, 22, 67, 0, 0, 35, 67, 0, 0, 22, 67, 0, 0, 36, 67, 0, 0, 22, 67, 0, 0, 37, 67, 0, 0, 22, 67, 0, 0, 38, 67, 0, 0, 22, 67, 0, 0, 39, 67, 0, 0, 22, 67, 0, 0, 40, 67, 0, 0, 22, 67, 0, 0, 55, 67, 0, 0, 23, 67, 0, 0, 184, 66, 0, 0, 23, 67, 0, 0, 55, 67, 0, 0, 24, 67, 0, 0, 184, 66, 0, 0, 24, 67, 0, 0, 55, 67, 0, 0, 25, 67, 0, 0, 184, 66, 0, 0, 25, 67, 0, 0, 55, 67, 0, 0, 26, 67, 0, 0, 184, 66, 0, 0, 26, 67, 0, 0, 55, 67, 0, 0, 27, 67, 0, 0, 184, 66, 0, 0, 27, 67, 0, 0, 55, 67, 0, 0, 28, 67, 0, 0, 184, 66, 0, 0, 28, 67, 0, 0, 55, 67, 0, 0, 29, 67, 0, 0, 184, 66, 0, 0, 29, 67, 0, 0, 55, 67, 0, 0, 30, 67, 0, 0, 184, 66, 0, 0, 30, 67, 0, 0, 55, 67, 0, 0, 31, 67, 0, 0, 184, 66, 0, 0, 31, 67, 0, 0, 55, 67, 0, 0, 32, 67, 0, 0, 184, 66, 0, 0, 32, 67, 0, 0, 55, 67, 0, 0, 33, 67, 0, 0, 184, 66, 0, 0, 33, 67, 0, 0, 55, 67, 0, 0, 34, 67, 0, 0, 184, 66, 0, 0, 34, 67, 0, 0, 55, 67, 0, 0, 35, 67, 0, 0, 184, 66, 0, 0, 35, 67, 0, 0, 55, 67, 0, 0, 36, 67, 0, 0, 184, 66, 0, 0, 36, 67, 0, 0, 55, 67, 0, 0, 37, 67, 0, 0, 184, 66, 0, 0, 37, 67, 0, 0, 55, 67, 0, 0, 38, 67, 0, 0, 184, 66, 0, 0, 38, 67, 0, 0, 55, 67, 0, 0, 39, 67, 0, 0, 184, 66, 0, 0, 39, 67, 0, 0, 55, 67, 0, 0, 40, 67, 0, 0, 184, 66, 0, 0, 40, 67, 0, 0, 55, 67, 0, 0, 41, 67, 0, 0, 184, 66, 0, 0, 41, 67, 0, 0, 55, 67, 0, 0, 42, 67, 0, 0, 184, 66, 0, 0, 42, 67, 0, 0, 55, 67, 0, 0, 43, 67, 0, 0, 184, 66, 0, 0, 43, 67, 0, 0, 55, 67, 0, 0, 44, 67, 0, 0, 184, 66, 0, 0, 44, 67, 0, 0, 55, 67, 0, 0, 45, 67, 0, 0, 184, 66, 0, 0, 45, 67, 0, 0, 214, 66, 0, 0, 45, 67, 0, 0, 216, 66, 0, 0, 45, 67, 0, 0, 218, 66, 0, 0, 45, 67, 0, 0, 220, 66, 0, 0, 45, 67, 0, 0, 222, 66, 0, 0, 45, 67, 0, 0, 224, 66, 0, 0, 45, 67, 0, 0, 226, 66, 0, 0, 45, 67, 0, 0, 228, 66, 0, 0, 45, 67, 0, 0, 230, 66, 0, 0, 45, 67, 0, 0, 232, 66, 0, 0, 45, 67, 0, 0, 234, 66, 0, 0, 45, 67, 0, 0, 236, 66, 0, 0, 45, 67, 0, 0, 238, 66, 0, 0, 45, 67, 0, 0, 240, 66, 0, 0, 45, 67, 0, 0, 242, 66, 0, 0, 45, 67, 0, 0, 244, 66, 0, 0, 45, 67, 0, 0, 246, 66, 0, 0, 45, 67, 0, 0, 248, 66, 0, 0, 45, 67, 0, 0, 250, 66, 0, 0, 45, 67, 0, 0, 252, 66, 0, 0, 45, 67, 0, 0, 254, 66, 0, 0, 45, 67, 0, 0, 0, 67, 0, 0, 45, 67, 0, 0, 1, 67, 0, 0, 45, 67, 0, 0, 2, 67, 0, 0, 45, 67, 0, 0, 3, 67, 0, 0, 45, 67, 0, 0, 4, 67, 0, 0, 45, 67, 0, 0, 5, 67, 0, 0, 45, 67, 0, 0, 6, 67, 0, 0, 45, 67, 0, 0, 7, 67, 0, 0, 45, 67, 0, 0, 8, 67, 0, 0, 45, 67, 0, 0, 9, 67, 0, 0, 45, 67, 0, 0, 10, 67, 0, 0, 45, 67, 0, 0, 11, 67, 0, 0, 45, 67, 0, 0, 12, 67, 0, 0, 45, 67, 0, 0, 13, 67, 0, 0, 45, 67, 0, 0, 14, 67, 0, 0, 45, 67, 0, 0, 15, 67, 0, 0, 45, 67, 0, 0, 16, 67, 0, 0, 45, 67, 0, 0, 17, 67, 0, 0, 45, 67, 0, 0, 18, 67, 0, 0, 45, 67, 0, 0, 19, 67, 0, 0, 45, 67, 0, 0, 20, 67, 0, 0, 45, 67, 0, 0, 21, 67, 0, 0, 45, 67, 0, 0, 22, 67, 0, 0, 45, 67, 0, 0, 23, 67, 0, 0, 45, 67, 0, 0, 24, 67, 0, 0, 45, 67, 0, 0, 25, 67, 0, 0, 45, 67, 0, 0, 26, 67, 0, 0, 45, 67, 0, 0, 27, 67, 0, 0, 45, 67, 0, 0, 28, 67, 0, 0, 45, 67, 0, 0, 29, 67, 0, 0, 45, 67, 0, 0, 30, 67, 0, 0, 45, 67, 0, 0, 31, 67, 0, 0, 45, 67, 0, 0, 32, 67, 0, 0, 45, 67, 0, 0, 33, 67, 0, 0, 45, 67, 0, 0, 34, 67, 0, 0, 45, 67, 0, 0, 35, 67, 0, 0, 45, 67, 0, 0, 36, 67, 0, 0, 45, 67, 0, 0, 37, 67, 0, 0, 45, 67, 0, 0, 38, 67, 0, 0, 45, 67, 0, 0, 39, 67, 0, 0, 45, 67, 0, 0, 40, 67, 0, 0, 45, 67, 0, 0, 55, 67, 0, 0, 46, 67, 0, 0, 184, 66, 0, 0, 46, 67, 0, 0, 210, 66, 0, 0, 46, 67, 0, 0, 212, 66, 0, 0, 46, 67, 0, 0, 214, 66, 0, 0, 46, 67, 0, 0, 40, 67, 0, 0, 46, 67, 0, 0, 41, 67, 0, 0, 46, 67, 0, 0, 42, 67, 0, 0, 46, 67, 0, 0, 55, 67, 0, 0, 47, 67, 0, 0, 184, 66, 0, 0, 47, 67, 0, 0, 208, 66, 0, 0, 47, 67, 0, 0, 210, 66, 0, 0, 47, 67, 0, 0, 42, 67, 0, 0, 47, 67, 0, 0, 43, 67, 0, 0, 47, 67, 0, 0, 55, 67, 0, 0, 48, 67, 0, 0, 184, 66, 0, 0, 48, 67, 0, 0, 206, 66, 0, 0, 48, 67, 0, 0, 208, 66, 0, 0, 48, 67, 0, 0, 43, 67, 0, 0, 48, 67, 0, 0, 44, 67, 0, 0, 48, 67, 0, 0, 55, 67, 0, 0, 49, 67, 0, 0, 184, 66, 0, 0, 49, 67, 0, 0, 206, 66, 0, 0, 49, 67, 0, 0, 44, 67, 0, 0, 49, 67, 0, 0, 55, 67, 0, 0, 50, 67, 0, 0, 184, 66, 0, 0, 50, 67, 0, 0, 206, 66, 0, 0, 50, 67, 0, 0, 44, 67, 0, 0, 50, 67, 0, 0, 55, 67, 0, 0, 51, 67, 0, 0, 184, 66, 0, 0, 51, 67, 0, 0, 206, 66, 0, 0, 51, 67, 0, 0, 44, 67, 0, 0, 51, 67, 0, 0, 55, 67, 0, 0, 52, 67, 0, 0, 184, 66, 0, 0, 52, 67, 0, 0, 206, 66, 0, 0, 52, 67, 0, 0, 44, 67, 0, 0, 52, 67, 0, 0, 45, 67, 0, 0, 52, 67, 0, 0, 55, 67, 0, 0, 53, 67, 0, 0, 184, 66, 0, 0, 53, 67, 0, 0, 204, 66, 0, 0, 53, 67, 0, 0, 206, 66, 0, 0, 53, 67, 0, 0, 45, 67, 0, 0, 53, 67, 0, 0, 55, 67, 0, 0, 54, 67, 0, 0, 184, 66, 0, 0, 54, 67, 0, 0, 204, 66, 0, 0, 54, 67, 0, 0, 45, 67, 0, 0, 54, 67, 0, 0, 55, 67, 0, 0, 55, 67, 0, 0, 184, 66, 0, 0, 55, 67, 0, 0, 204, 66, 0, 0, 55, 67, 0, 0, 45, 67, 0, 0, 55, 67, 0, 0, 55, 67, 0, 0, 56, 67, 0, 0, 184, 66, 0, 0, 56, 67, 0, 0, 202, 66, 0, 0, 56, 67, 0, 0, 204, 66, 0, 0, 56, 67, 0, 0, 45, 67, 0, 0, 56, 67, 0, 0, 46, 67, 0, 0, 56, 67, 0, 0, 55, 67, 0, 0, 57, 67, 0, 0, 184, 66, 0, 0, 57, 67, 0, 0, 186, 66, 0, 0, 57, 67, 0, 0, 188, 66, 0, 0, 57, 67, 0, 0, 190, 66, 0, 0, 57, 67, 0, 0, 192, 66, 0, 0, 57, 67, 0, 0, 194, 66, 0, 0, 57, 67, 0, 0, 196, 66, 0, 0, 57, 67, 0, 0, 198, 66, 0, 0, 57, 67, 0, 0, 200, 66, 0, 0, 57, 67, 0, 0, 202, 66, 0, 0, 57, 67, 0, 0, 46, 67, 0, 0, 57, 67, 0, 0, 47, 67, 0, 0, 57, 67, 0, 0, 48, 67, 0, 0, 57, 67, 0, 0, 49, 67, 0, 0, 57, 67, 0, 0, 50, 67, 0, 0, 57, 67, 0, 0, 51, 67, 0, 0, 57, 67, 0, 0, 52, 67, 0, 0, 57, 67, 0, 0, 53, 67, 0, 0, 57, 67, 0, 0, 54, 67, 0, 0, 57, 67, 0, 0, 55, 67, 0, 0, 72, 67, 0, 0, 198, 66, 0, 0, 72, 67, 0, 0, 200, 66, 0, 0, 72, 67, 0, 0, 202, 66, 0, 0, 72, 67, 0, 0, 204, 66, 0, 0, 72, 67, 0, 0, 206, 66, 0, 0, 72, 67, 0, 0, 208, 66, 0, 0, 72, 67, 0, 0, 210, 66, 0, 0, 72, 67, 0, 0, 212, 66, 0, 0, 72, 67, 0, 0, 214, 66, 0, 0, 72, 67, 0, 0, 216, 66, 0, 0, 72, 67, 0, 0, 218, 66, 0, 0, 72, 67, 0, 0, 220, 66, 0, 0, 72, 67, 0, 0, 222, 66, 0, 0, 72, 67, 0, 0, 42, 67, 0, 0, 72, 67, 0, 0, 43, 67, 0, 0, 72, 67, 0, 0, 44, 67, 0, 0, 72, 67, 0, 0, 45, 67, 0, 0, 72, 67, 0, 0, 46, 67, 0, 0, 72, 67, 0, 0, 47, 67, 0, 0, 72, 67, 0, 0, 48, 67, 0, 0, 72, 67, 0, 0, 49, 67, 0, 0, 73, 67, 0, 0, 196, 66, 0, 0, 73, 67, 0, 0, 198, 66, 0, 0, 73, 67, 0, 0, 222, 66, 0, 0, 73, 67, 0, 0, 224, 66, 0, 0, 73, 67, 0, 0, 226, 66, 0, 0, 73, 67, 0, 0, 228, 66, 0, 0, 73, 67, 0, 0, 230, 66, 0, 0, 73, 67, 0, 0, 41, 67, 0, 0, 73, 67, 0, 0, 42, 67, 0, 0, 73, 67, 0, 0, 49, 67, 0, 0, 73, 67, 0, 0, 50, 67, 0, 0, 74, 67, 0, 0, 190, 66, 0, 0, 74, 67, 0, 0, 192, 66, 0, 0, 74, 67, 0, 0, 194, 66, 0, 0, 74, 67, 0, 0, 196, 66, 0, 0, 74, 67, 0, 0, 230, 66, 0, 0, 74, 67, 0, 0, 232, 66, 0, 0, 74, 67, 0, 0, 234, 66, 0, 0, 74, 67, 0, 0, 236, 66, 0, 0, 74, 67, 0, 0, 238, 66, 0, 0, 74, 67, 0, 0, 240, 66, 0, 0, 74, 67, 0, 0, 242, 66, 0, 0, 74, 67, 0, 0, 244, 66, 0, 0, 74, 67, 0, 0, 246, 66, 0, 0, 74, 67, 0, 0, 39, 67, 0, 0, 74, 67, 0, 0, 40, 67, 0, 0, 74, 67, 0, 0, 41, 67, 0, 0, 74, 67, 0, 0, 50, 67, 0, 0, 74, 67, 0, 0, 51, 67, 0, 0, 74, 67, 0, 0, 52, 67, 0, 0, 75, 67, 0, 0, 188, 66, 0, 0, 75, 67, 0, 0, 190, 66, 0, 0, 75, 67, 0, 0, 246, 66, 0, 0, 75, 67, 0, 0, 248, 66, 0, 0, 75, 67, 0, 0, 250, 66, 0, 0, 75, 67, 0, 0, 252, 66, 0, 0, 75, 67, 0, 0, 254, 66, 0, 0, 75, 67, 0, 0, 38, 67, 0, 0, 75, 67, 0, 0, 39, 67, 0, 0, 75, 67, 0, 0, 52, 67, 0, 0, 75, 67, 0, 0, 53, 67, 0, 0, 76, 67, 0, 0, 186, 66, 0, 0, 76, 67, 0, 0, 188, 66, 0, 0, 76, 67, 0, 0, 254, 66, 0, 0, 76, 67, 0, 0, 0, 67, 0, 0, 76, 67, 0, 0, 1, 67, 0, 0, 76, 67, 0, 0, 2, 67, 0, 0, 76, 67, 0, 0, 3, 67, 0, 0, 76, 67, 0, 0, 4, 67, 0, 0, 76, 67, 0, 0, 5, 67, 0, 0, 76, 67, 0, 0, 6, 67, 0, 0, 76, 67, 0, 0, 7, 67, 0, 0, 76, 67, 0, 0, 8, 67, 0, 0, 76, 67, 0, 0, 37, 67, 0, 0, 76, 67, 0, 0, 38, 67, 0, 0, 76, 67, 0, 0, 53, 67, 0, 0, 76, 67, 0, 0, 54, 67, 0, 0, 77, 67, 0, 0, 184, 66, 0, 0, 77, 67, 0, 0, 186, 66, 0, 0, 77, 67, 0, 0, 8, 67, 0, 0, 77, 67, 0, 0, 9, 67, 0, 0, 77, 67, 0, 0, 10, 67, 0, 0, 77, 67, 0, 0, 11, 67, 0, 0, 77, 67, 0, 0, 12, 67, 0, 0, 77, 67, 0, 0, 36, 67, 0, 0, 77, 67, 0, 0, 37, 67, 0, 0, 77, 67, 0, 0, 54, 67, 0, 0, 77, 67, 0, 0, 55, 67, 0, 0, 78, 67, 0, 0, 184, 66, 0, 0, 78, 67, 0, 0, 12, 67, 0, 0, 78, 67, 0, 0, 13, 67, 0, 0, 78, 67, 0, 0, 14, 67, 0, 0, 78, 67, 0, 0, 15, 67, 0, 0, 78, 67, 0, 0, 16, 67, 0, 0, 78, 67, 0, 0, 17, 67, 0, 0, 78, 67, 0, 0, 18, 67, 0, 0, 78, 67, 0, 0, 19, 67, 0, 0, 78, 67, 0, 0, 20, 67, 0, 0, 78, 67, 0, 0, 21, 67, 0, 0, 78, 67, 0, 0, 22, 67, 0, 0, 78, 67, 0, 0, 23, 67, 0, 0, 78, 67, 0, 0, 24, 67, 0, 0, 78, 67, 0, 0, 25, 67, 0, 0, 78, 67, 0, 0, 26, 67, 0, 0, 78, 67, 0, 0, 36, 67, 0, 0, 78, 67, 0, 0, 55, 67, 0, 0, 79, 67, 0, 0, 182, 66, 0, 0, 79, 67, 0, 0, 184, 66, 0, 0, 79, 67, 0, 0, 26, 67, 0, 0, 79, 67, 0, 0, 27, 67, 0, 0, 79, 67, 0, 0, 35, 67, 0, 0, 79, 67, 0, 0, 36, 67, 0, 0, 79, 67, 0, 0, 55, 67, 0, 0, 79, 67, 0, 0, 56, 67, 0, 0, 80, 67, 0, 0, 182, 66, 0, 0, 80, 67, 0, 0, 27, 67, 0, 0, 80, 67, 0, 0, 34, 67, 0, 0, 80, 67, 0, 0, 35, 67, 0, 0, 80, 67, 0, 0, 56, 67, 0, 0, 80, 67, 0, 0, 57, 67, 0, 0, 81, 67, 0, 0, 180, 66, 0, 0, 81, 67, 0, 0, 182, 66, 0, 0, 81, 67, 0, 0, 27, 67, 0, 0, 81, 67, 0, 0, 34, 67, 0, 0, 81, 67, 0, 0, 57, 67, 0, 0, 82, 67, 0, 0, 180, 66, 0, 0, 82, 67, 0, 0, 27, 67, 0, 0, 82, 67, 0, 0, 34, 67, 0, 0, 82, 67, 0, 0, 57, 67, 0, 0, 83, 67, 0, 0, 180, 66, 0, 0, 83, 67, 0, 0, 27, 67, 0, 0, 83, 67, 0, 0, 34, 67, 0, 0, 83, 67, 0, 0, 57, 67, 0, 0, 84, 67, 0, 0, 180, 66, 0, 0, 84, 67, 0, 0, 27, 67, 0, 0, 84, 67, 0, 0, 34, 67, 0, 0, 84, 67, 0, 0, 57, 67, 0, 0, 85, 67, 0, 0, 180, 66, 0, 0, 85, 67, 0, 0, 27, 67, 0, 0, 85, 67, 0, 0, 34, 67, 0, 0, 85, 67, 0, 0, 57, 67, 0, 0, 86, 67, 0, 0, 180, 66, 0, 0, 86, 67, 0, 0, 27, 67, 0, 0, 86, 67, 0, 0, 34, 67, 0, 0, 86, 67, 0, 0, 57, 67, 0, 0, 87, 67, 0, 0, 180, 66, 0, 0, 87, 67, 0, 0, 27, 67, 0, 0, 87, 67, 0, 0, 34, 67, 0, 0, 87, 67, 0, 0, 35, 67, 0, 0, 87, 67, 0, 0, 56, 67, 0, 0, 87, 67, 0, 0, 57, 67, 0, 0, 88, 67, 0, 0, 180, 66, 0, 0, 88, 67, 0, 0, 182, 66, 0, 0, 88, 67, 0, 0, 26, 67, 0, 0, 88, 67, 0, 0, 27, 67, 0, 0, 88, 67, 0, 0, 35, 67, 0, 0, 88, 67, 0, 0, 36, 67, 0, 0, 88, 67, 0, 0, 55, 67, 0, 0, 88, 67, 0, 0, 56, 67, 0, 0, 89, 67, 0, 0, 182, 66, 0, 0, 89, 67, 0, 0, 184, 66, 0, 0, 89, 67, 0, 0, 15, 67, 0, 0, 89, 67, 0, 0, 16, 67, 0, 0, 89, 67, 0, 0, 17, 67, 0, 0, 89, 67, 0, 0, 18, 67, 0, 0, 89, 67, 0, 0, 19, 67, 0, 0, 89, 67, 0, 0, 20, 67, 0, 0, 89, 67, 0, 0, 21, 67, 0, 0, 89, 67, 0, 0, 22, 67, 0, 0, 89, 67, 0, 0, 23, 67, 0, 0, 89, 67, 0, 0, 24, 67, 0, 0, 89, 67, 0, 0, 25, 67, 0, 0, 89, 67, 0, 0, 26, 67, 0, 0, 89, 67, 0, 0, 36, 67, 0, 0, 89, 67, 0, 0, 55, 67, 0, 0, 90, 67, 0, 0, 184, 66, 0, 0, 90, 67, 0, 0, 10, 67, 0, 0, 90, 67, 0, 0, 11, 67, 0, 0, 90, 67, 0, 0, 12, 67, 0, 0, 90, 67, 0, 0, 13, 67, 0, 0, 90, 67, 0, 0, 14, 67, 0, 0, 90, 67, 0, 0, 15, 67, 0, 0, 90, 67, 0, 0, 36, 67, 0, 0, 90, 67, 0, 0, 37, 67, 0, 0, 90, 67, 0, 0, 54, 67, 0, 0, 90, 67, 0, 0, 55, 67, 0, 0, 91, 67, 0, 0, 184, 66, 0, 0, 91, 67, 0, 0, 186, 66, 0, 0, 91, 67, 0, 0, 3, 67, 0, 0, 91, 67, 0, 0, 4, 67, 0, 0, 91, 67, 0, 0, 5, 67, 0, 0, 91, 67, 0, 0, 6, 67, 0, 0, 91, 67, 0, 0, 7, 67, 0, 0, 91, 67, 0, 0, 8, 67, 0, 0, 91, 67, 0, 0, 9, 67, 0, 0, 91, 67, 0, 0, 10, 67, 0, 0, 91, 67, 0, 0, 37, 67, 0, 0, 91, 67, 0, 0, 38, 67, 0, 0, 91, 67, 0, 0, 53, 67, 0, 0, 91, 67, 0, 0, 54, 67, 0, 0, 92, 67, 0, 0, 186, 66, 0, 0, 92, 67, 0, 0, 188, 66, 0, 0, 92, 67, 0, 0, 0, 67, 0, 0, 92, 67, 0, 0, 1, 67, 0, 0, 92, 67, 0, 0, 2, 67, 0, 0, 92, 67, 0, 0, 3, 67, 0, 0, 92, 67, 0, 0, 38, 67, 0, 0, 92, 67, 0, 0, 39, 67, 0, 0, 92, 67, 0, 0, 52, 67, 0, 0, 92, 67, 0, 0, 53, 67, 0, 0, 93, 67, 0, 0, 188, 66, 0, 0, 93, 67, 0, 0, 190, 66, 0, 0, 93, 67, 0, 0, 244, 66, 0, 0, 93, 67, 0, 0, 246, 66, 0, 0, 93, 67, 0, 0, 248, 66, 0, 0, 93, 67, 0, 0, 250, 66, 0, 0, 93, 67, 0, 0, 252, 66, 0, 0, 93, 67, 0, 0, 254, 66, 0, 0, 93, 67, 0, 0, 0, 67, 0, 0, 93, 67, 0, 0, 39, 67, 0, 0, 93, 67, 0, 0, 40, 67, 0, 0, 93, 67, 0, 0, 41, 67, 0, 0, 93, 67, 0, 0, 50, 67, 0, 0, 93, 67, 0, 0, 51, 67, 0, 0, 93, 67, 0, 0, 52, 67, 0, 0, 94, 67, 0, 0, 190, 66, 0, 0, 94, 67, 0, 0, 192, 66, 0, 0, 94, 67, 0, 0, 238, 66, 0, 0, 94, 67, 0, 0, 240, 66, 0, 0, 94, 67, 0, 0, 242, 66, 0, 0, 94, 67, 0, 0, 244, 66, 0, 0, 94, 67, 0, 0, 41, 67, 0, 0, 94, 67, 0, 0, 42, 67, 0, 0, 94, 67, 0, 0, 49, 67, 0, 0, 94, 67, 0, 0, 50, 67, 0, 0, 95, 67, 0, 0, 192, 66, 0, 0, 95, 67, 0, 0, 194, 66, 0, 0, 95, 67, 0, 0, 196, 66, 0, 0, 95, 67, 0, 0, 226, 66, 0, 0, 95, 67, 0, 0, 228, 66, 0, 0, 95, 67, 0, 0, 230, 66, 0, 0, 95, 67, 0, 0, 232, 66, 0, 0, 95, 67, 0, 0, 234, 66, 0, 0, 95, 67, 0, 0, 236, 66, 0, 0, 95, 67, 0, 0, 238, 66, 0, 0, 95, 67, 0, 0, 42, 67, 0, 0, 95, 67, 0, 0, 43, 67, 0, 0, 95, 67, 0, 0, 44, 67, 0, 0, 95, 67, 0, 0, 45, 67, 0, 0, 95, 67, 0, 0, 46, 67, 0, 0, 95, 67, 0, 0, 47, 67, 0, 0, 95, 67, 0, 0, 48, 67, 0, 0, 95, 67, 0, 0, 49, 67, 0, 0, 96, 67, 0, 0, 196, 66, 0, 0, 96, 67, 0, 0, 198, 66, 0, 0, 96, 67, 0, 0, 200, 66, 0, 0, 96, 67, 0, 0, 220, 66, 0, 0, 96, 67, 0, 0, 222, 66, 0, 0, 96, 67, 0, 0, 224, 66, 0, 0, 96, 67, 0, 0, 226, 66, 0, 0, 97, 67, 0, 0, 200, 66, 0, 0, 97, 67, 0, 0, 202, 66, 0, 0, 97, 67, 0, 0, 204, 66, 0, 0, 97, 67, 0, 0, 206, 66, 0, 0, 97, 67, 0, 0, 208, 66, 0, 0, 97, 67, 0, 0, 210, 66, 0, 0, 97, 67, 0, 0, 212, 66, 0, 0, 97, 67, 0, 0, 214, 66, 0, 0, 97, 67, 0, 0, 216, 66, 0, 0, 97, 67, 0, 0, 218, 66, 0, 0, 97, 67, 0, 0, 220, 66, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 28, 0, 1, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 208, 201, 83, 8, 0, 0, 0, 0, 130, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 8, 202, 83, 8, 0, 0, 0, 0, 131, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 64, 202, 83, 8, 0, 0, 0, 0, 132, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 120, 202, 83, 8, 0, 0, 0, 0, 133, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 20, 4, 1, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 176, 202, 83, 8, 0, 0, 0, 0, 134, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 244, 3, 3, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 232, 202, 83, 8, 0, 0, 0, 0, 135, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 32, 203, 83, 8, 0, 0, 0, 0, 136, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 248, 1, 2, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 88, 203, 83, 8, 0, 0, 0, 0, 137, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 144, 203, 83, 8, 0, 0, 0, 0, 138, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 200, 203, 83, 8, 0, 0, 0, 0, 139, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 204, 83, 8, 0, 0, 0, 0, 140, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 56, 204, 83, 8, 0, 0, 0, 0, 141, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 112, 204, 83, 8, 0, 0, 0, 0, 142, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 168, 204, 83, 8, 0, 0, 0, 0, 143, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 224, 204, 83, 8, 0, 0, 0, 0, 144, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 24, 205, 83, 8, 0, 0, 0, 0, 145, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 80, 205, 83, 8, 0, 0, 0, 0, 146, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 136, 205, 83, 8, 0, 0, 0, 0, 147, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 192, 205, 83, 8, 0, 0, 0, 0, 148, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 248, 205, 83, 8, 0, 0, 0, 0, 149, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 48, 206, 83, 8, 0, 0, 0, 0, 150, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 104, 206, 83, 8, 0, 0, 0, 0, 151, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 160, 206, 83, 8, 0, 0, 0, 0, 152, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 216, 206, 83, 8, 0, 0, 0, 0, 153, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 16, 207, 83, 8, 0, 0, 0, 0, 154, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 72, 207, 83, 8, 0, 0, 0, 0, 155, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 3, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 128, 207, 83, 8, 0, 0, 0, 0, 156, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 184, 207, 83, 8, 0, 0, 0, 0, 157, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 240, 207, 83, 8, 0, 0, 0, 0, 158, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 40, 208, 83, 8, 0, 0, 0, 0, 159, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 96, 208, 83, 8, 0, 0, 0, 0, 160, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 2, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 152, 208, 83, 8, 0, 0, 0, 0, 161, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 208, 208, 83, 8, 0, 0, 0, 0, 162, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 8, 209, 83, 8, 0, 0, 0, 0, 163, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 64, 209, 83, 8, 0, 0, 0, 0, 164, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 120, 209, 83, 8, 0, 0, 0, 0, 165, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 4, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 176, 209, 83, 8, 0, 0, 0, 0, 166, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 232, 209, 83, 8, 0, 0, 0, 0, 167, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 32, 210, 83, 8, 0, 0, 0, 0, 168, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 88, 210, 83, 8, 0, 0, 0, 0, 169, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 144, 210, 83, 8, 0, 0, 0, 0, 170, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 200, 210, 83, 8, 0, 0, 0, 0, 171, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 211, 83, 8, 0, 0, 0, 0, 172, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 56, 211, 83, 8, 0, 0, 0, 0, 173, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 112, 211, 83, 8, 0, 0, 0, 0, 174, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 168, 211, 83, 8, 0, 0, 0, 0, 175, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 224, 211, 83, 8, 0, 0, 0, 0, 176, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 24, 212, 83, 8, 0, 0, 0, 0, 177, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 80, 212, 83, 8, 0, 0, 0, 0, 178, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 136, 212, 83, 8, 0, 0, 0, 0, 179, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 192, 212, 83, 8, 0, 0, 0, 0, 180, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 248, 212, 83, 8, 0, 0, 0, 0, 181, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 48, 213, 83, 8, 0, 0, 0, 0, 182, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 77, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 104, 213, 83, 8, 0, 0, 0, 0, 183, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 160, 213, 83, 8, 0, 0, 0, 0, 184, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 216, 213, 83, 8, 0, 0, 0, 0, 185, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 16, 214, 83, 8, 0, 0, 0, 0, 186, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 72, 214, 83, 8, 0, 0, 0, 0, 187, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 128, 214, 83, 8, 0, 0, 0, 0, 188, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 184, 214, 83, 8, 0, 0, 0, 0, 189, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 240, 214, 83, 8, 0, 0, 0, 0, 190, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 40, 215, 83, 8, 0, 0, 0, 0, 191, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 96, 215, 83, 8, 0, 0, 0, 0, 192, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 152, 215, 83, 8, 0, 0, 0, 0, 193, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 208, 215, 83, 8, 0, 0, 0, 0, 194, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 8, 216, 83, 8, 0, 0, 0, 0, 195, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 64, 216, 83, 8, 0, 0, 0, 0, 196, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 120, 216, 83, 8, 0, 0, 0, 0, 197, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 176, 216, 83, 8, 0, 0, 0, 0, 198, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 232, 216, 83, 8, 0, 0, 0, 0, 199, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 32, 217, 83, 8, 0, 0, 0, 0, 200, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 88, 217, 83, 8, 0, 0, 0, 0, 201, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 144, 217, 83, 8, 0, 0, 0, 0, 202, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 120, 127, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 200, 217, 83, 8, 0, 0, 0, 0, 203, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 0, 218, 83, 8, 0, 0, 0, 0, 204, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 56, 218, 83, 8, 0, 0, 0, 0, 205, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 112, 218, 83, 8, 0, 0, 0, 0, 206, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 168, 218, 83, 8, 0, 0, 0, 0, 207, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 224, 218, 83, 8, 0, 0, 0, 0, 208, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 24, 219, 83, 8, 0, 0, 0, 0, 209, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 80, 219, 83, 8, 0, 0, 0, 0, 210, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 136, 219, 83, 8, 0, 0, 0, 0, 211, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 192, 219, 83, 8, 0, 0, 0, 0, 212, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 248, 219, 83, 8, 0, 0, 0, 0, 213, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 48, 220, 83, 8, 0, 0, 0, 0, 214, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 104, 220, 83, 8, 0, 0, 0, 0, 215, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 160, 220, 83, 8, 0, 0, 0, 0, 216, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 216, 220, 83, 8, 0, 0, 0, 0, 217, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 255, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 8, 0, 0, 0, 109, 206, 115, 33, 0, 0, 0, 0, 193, 1, 0, 0, 0, 0, 0, 0, 112, 2, 75, 33, 0, 0, 0, 0, 144, 142, 95, 122, 120, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 18, 207, 32, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 45, 154, 115, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 141, 113, 33, 0, 0, 0, 0, 224, 140, 113, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 96, 218, 8, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 81, 1, 0, 0, 0, 0, 0, 0, 96, 53, 120, 33, 0, 0, 0, 0, 112, 105, 114, 33, 0, 0, 0, 0, 1, 0, 0, 1, 129, 0, 0, 0, 113, 0, 0, 4, 80, 0, 3, 0, 110, 0, 0, 33, 12, 4, 3, 0, 0, 0, 0, 0, 0, 2, 134, 0, 198, 6, 0, 36, 16, 4, 43, 0, 129, 0, 0, 0, 0, 0, 0, 0, 160, 73, 224, 32, 0, 0, 0, 0, 80, 250, 120, 33, 0, 0, 0, 0, 1, 0, 0, 1, 1, 0, 0, 0, 113, 0, 0, 4, 80, 0, 3, 0, 110, 0, 0, 33, 12, 4, 3, 0, 0, 0, 0, 0, 0, 2, 134, 0, 200, 6, 0, 36, 16, 4, 43, 0, 65, 0, 0, 0, 0, 0, 0, 0, 16, 251, 120, 33, 0, 0, 0, 0, 160, 73, 224, 32, 0, 0, 0, 0, 1, 0, 0, 1, 33, 0, 0, 0, 113, 0, 0, 4, 80, 0, 3, 0, 110, 0, 0, 33, 12, 4, 3, 0, 0, 0, 0, 0, 0, 2, 134, 0, 192, 0, 0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 0, 0, 0, 0, 0, 107, 114, 33, 0, 0, 0, 0, 144, 137, 165, 32, 0, 0, 0, 0, 240, 104, 240, 32, 0, 0, 0, 0, 16, 107, 114, 33, 0, 0, 0, 0, 112, 137, 165, 32, 0, 0, 0, 0, 8, 2, 0, 0, 0, 0, 0, 0, 16, 53, 120, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 53, 120, 33, 0, 0, 0, 0), +"format": "RGFloat", +"height": 1, +"mipmaps": false, +"width": 2048 +} + +[sub_resource type="ImageTexture" id="ImageTexture_sshgl"] +image = SubResource("Image_4y1dq") + +[sub_resource type="ParticleProcessMaterial" id="29"] +emission_shape = 5 +emission_point_texture = SubResource("ImageTexture_sshgl") +emission_normal_texture = SubResource("ImageTexture_jr4op") emission_point_count = 1288 -flag_disable_z = true gravity = Vector3(0, 0, 0) -initial_velocity = 1.0 -angular_velocity = 1.47136e-43 -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -scale = 0.5 -scale_random = 1.0 +linear_accel_min = 5.0 +linear_accel_max = 5.0 +radial_accel_min = 200.0 +radial_accel_max = 200.0 color = Color(0.375, 0.692383, 1, 1) -[sub_resource type="ParticlesMaterial" id=30] +[sub_resource type="ParticleProcessMaterial" id="30"] emission_shape = 4 -emission_point_texture = ExtResource( 5 ) -emission_normal_texture = ExtResource( 6 ) +emission_point_texture = ExtResource("5") emission_point_count = 1288 -flag_disable_z = true gravity = Vector3(0, 0, 0) -initial_velocity = 20.0 -angular_velocity = 1.47136e-43 -orbit_velocity = 0.0 -orbit_velocity_random = 0.0 -scale = 0.5 -scale_random = 1.0 color = Color(0.214844, 1, 0.392731, 1) [node name="GPUParticles3D" type="Node"] [node name="Fire" type="GPUParticles2D" parent="."] -material = SubResource( 1 ) +material = SubResource("1") position = Vector2(122, 502) amount = 32 preprocess = 0.1 -process_material = SubResource( 6 ) -texture = ExtResource( 1 ) +process_material = SubResource("6") +texture = ExtResource("1") [node name="Flipbook" type="GPUParticles2D" parent="."] -material = SubResource( 7 ) +material = SubResource("7") position = Vector2(392, 215) amount = 20 lifetime = 3.0 preprocess = 0.1 -process_material = SubResource( 8 ) -texture = ExtResource( 7 ) -__meta__ = { -"_editor_description_": "Flipbook animation requires setting a custom CanvasItemMaterial with GPUParticles3D Animation enabled." -} +fixed_fps = 0 +interpolate = false +process_material = SubResource("8") +texture = ExtResource("7") [node name="Smoke" type="GPUParticles2D" parent="."] position = Vector2(362, 502) amount = 32 lifetime = 2.0 preprocess = 0.1 -process_material = SubResource( 11 ) -texture = ExtResource( 2 ) +process_material = SubResource("11") +texture = ExtResource("2") [node name="Magic" type="GPUParticles2D" parent="."] -material = SubResource( 12 ) +material = SubResource("12") position = Vector2(620, 440) amount = 64 lifetime = 2.0 preprocess = 0.1 randomness = 1.0 -process_material = SubResource( 19 ) -texture = ExtResource( 3 ) +process_material = SubResource("19") +texture = ExtResource("3") [node name="Explosion" type="GPUParticles2D" parent="."] -material = SubResource( 20 ) +material = SubResource("20") position = Vector2(613.467, 182.62) rotation = 3.13794 amount = 16 lifetime = 2.0 explosiveness = 1.0 -process_material = SubResource( 27 ) -texture = ExtResource( 2 ) +process_material = SubResource("27") +texture = ExtResource("2") [node name="EmitMask" type="GPUParticles2D" parent="."] -position = Vector2(42, -68) +position = Vector2(41, -68) amount = 180 lifetime = 0.2 visibility_rect = Rect2(26.0055, 90.0015, 199.176, 95.0445) -process_material = SubResource( 28 ) -texture = ExtResource( 3 ) +process_material = SubResource("28") +texture = ExtResource("3") [node name="OutlineMask" type="GPUParticles2D" parent="."] position = Vector2(42, 52) amount = 180 lifetime = 0.2 visibility_rect = Rect2(26.0055, 90.0015, 199.176, 95.0445) -process_material = SubResource( 29 ) -texture = ExtResource( 3 ) +process_material = SubResource("29") +texture = ExtResource("3") [node name="DirectionMask" type="GPUParticles2D" parent="."] position = Vector2(40, 180) amount = 180 lifetime = 0.2 visibility_rect = Rect2(26.0055, 90.0015, 199.176, 95.0445) -process_material = SubResource( 30 ) -texture = ExtResource( 3 ) +process_material = SubResource("30") +texture = ExtResource("3") [node name="Camera2D" type="Camera2D" parent="."] -offset = Vector2(512, 300) +offset = Vector2(576, 324) current = true diff --git a/2d/particles/project.godot b/2d/particles/project.godot index 644dd7b8e54..cacea73dc6e 100644 --- a/2d/particles/project.godot +++ b/2d/particles/project.godot @@ -6,25 +6,21 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] config/name="2D GPUParticles3D" config/description="This demo showcases how 2D particle systems work in Godot." run/main_scene="res://particles.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - [rendering] -environment/default_clear_color=Color(0, 0, 0, 1) +environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1) diff --git a/2d/particles/smoke_particle.png.import b/2d/particles/smoke_particle.png.import index e33d90e3a03..651d579ef97 100644 --- a/2d/particles/smoke_particle.png.import +++ b/2d/particles/smoke_particle.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/smoke_particle.png-2af9cbaa4a935c239d404ea2402bff45.stex" +type="CompressedTexture2D" +uid="uid://bii6kglnqm6r2" +path="res://.godot/imported/smoke_particle.png-2af9cbaa4a935c239d404ea2402bff45.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://smoke_particle.png" -dest_files=["res://.godot/imported/smoke_particle.png-2af9cbaa4a935c239d404ea2402bff45.stex"] +dest_files=["res://.godot/imported/smoke_particle.png-2af9cbaa4a935c239d404ea2402bff45.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/particles/spark_particle2.png.import b/2d/particles/spark_particle2.png.import index c47db896235..4c365d08d26 100644 --- a/2d/particles/spark_particle2.png.import +++ b/2d/particles/spark_particle2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/spark_particle2.png-c01711346d42a0d9675f292248ead315.stex" +type="CompressedTexture2D" +uid="uid://b0nirvelkp3x2" +path="res://.godot/imported/spark_particle2.png-c01711346d42a0d9675f292248ead315.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://spark_particle2.png" -dest_files=["res://.godot/imported/spark_particle2.png-c01711346d42a0d9675f292248ead315.stex"] +dest_files=["res://.godot/imported/spark_particle2.png-c01711346d42a0d9675f292248ead315.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/Stage.tscn b/2d/physics_platformer/Stage.tscn index 3a2c4d67abd..aea04bf1a80 100644 --- a/2d/physics_platformer/Stage.tscn +++ b/2d/physics_platformer/Stage.tscn @@ -1,263 +1,259 @@ -[gd_scene load_steps=22 format=2] - -[ext_resource path="res://Tileset.tres" type="TileSet" id=1] -[ext_resource path="res://coin/Coin.tscn" type="PackedScene" id=2] -[ext_resource path="res://platform/MovingPlatform.tscn" type="PackedScene" id=3] -[ext_resource path="res://background/Seesaw.tscn" type="PackedScene" id=4] -[ext_resource path="res://platform/OneWayPlatform.tscn" type="PackedScene" id=5] -[ext_resource path="res://player/Player.tscn" type="PackedScene" id=6] -[ext_resource path="res://enemy/Enemy.tscn" type="PackedScene" id=7] -[ext_resource path="res://background/ParallaxBg.tscn" type="PackedScene" id=8] -[ext_resource path="res://audio/music.ogg" type="AudioStream" id=9] - -[sub_resource type="PhysicsMaterial" id=1] +[gd_scene load_steps=22 format=3 uid="uid://dmlw8ugjpukmy"] + +[ext_resource type="TileSet" path="res://Tileset.tres" id="1"] +[ext_resource type="PackedScene" path="res://coin/Coin.tscn" id="2"] +[ext_resource type="PackedScene" path="res://platform/MovingPlatform.tscn" id="3"] +[ext_resource type="PackedScene" path="res://background/Seesaw.tscn" id="4"] +[ext_resource type="PackedScene" path="res://platform/OneWayPlatform.tscn" id="5"] +[ext_resource type="PackedScene" uid="uid://bv85r3nk410cj" path="res://player/Player.tscn" id="6"] +[ext_resource type="PackedScene" path="res://enemy/Enemy.tscn" id="7"] +[ext_resource type="PackedScene" path="res://background/ParallaxBg.tscn" id="8"] +[ext_resource type="AudioStream" uid="uid://gunv00cij80t" path="res://audio/music.ogg" id="9"] + +[sub_resource type="PhysicsMaterial" id="1"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=2] +[sub_resource type="PhysicsMaterial" id="2"] -[sub_resource type="PhysicsMaterial" id=3] +[sub_resource type="PhysicsMaterial" id="3"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=4] +[sub_resource type="PhysicsMaterial" id="4"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=5] +[sub_resource type="PhysicsMaterial" id="5"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=6] +[sub_resource type="PhysicsMaterial" id="6"] -[sub_resource type="PhysicsMaterial" id=7] +[sub_resource type="PhysicsMaterial" id="7"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=8] +[sub_resource type="PhysicsMaterial" id="8"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=9] +[sub_resource type="PhysicsMaterial" id="9"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=10] +[sub_resource type="PhysicsMaterial" id="10"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=11] +[sub_resource type="PhysicsMaterial" id="11"] friction = 0.0 -[sub_resource type="PhysicsMaterial" id=12] +[sub_resource type="PhysicsMaterial" id="12"] friction = 0.0 [node name="Stage" type="Node2D"] [node name="TileMap" type="TileMap" parent="."] -tile_set = ExtResource( 1 ) -cell_size = Vector2(32, 32) +tile_set = ExtResource("1") cell_quadrant_size = 4 -format = 1 -tile_data = PackedInt32Array(0, 2, 0, 70, 536870914, 0, 71, 10, 0, 72, 10, 0, 73, 10, 0, 74, 10, 0, 75, 10, 0, 76, 10, 0, 77, 10, 0, 78, 10, 0, 65536, 2, 0, 65606, 536870914, 0, 65607, 10, 0, 65608, 10, 0, 65609, 10, 0, 65610, 10, 0, 65611, 10, 0, 65612, 10, 0, 65613, 10, 0, 65614, 10, 0, 131072, 2, 0, 131142, 536870914, 0, 131143, 10, 0, 131144, 10, 0, 131145, 10, 0, 131146, 10, 0, 131147, 10, 0, 131148, 10, 0, 131149, 10, 0, 131150, 10, 0, 196608, 2, 0, 196626, 9, 0, 196678, 536870914, 0, 196679, 10, 0, 196680, 10, 0, 196681, 10, 0, 196682, 10, 0, 196683, 10, 0, 196684, 10, 0, 196685, 10, 0, 196686, 10, 0, 262144, 2, 0, 262162, 8, 0, 262214, 536870914, 0, 262215, 10, 0, 262216, 10, 0, 262217, 10, 0, 262218, 10, 0, 262219, 10, 0, 262220, 10, 0, 262221, 10, 0, 262222, 10, 0, 327680, 2, 0, 327697, 536870921, 0, 327698, 7, 0, 327733, 9, 0, 327750, 536870914, 0, 327751, 10, 0, 327752, 10, 0, 327753, 10, 0, 327754, 10, 0, 327755, 10, 0, 327756, 10, 0, 327757, 10, 0, 327758, 10, 0, 393216, 2, 0, 393233, 536870920, 0, 393234, 7, 0, 393257, 9, 0, 393269, 7, 0, 393286, 536870914, 0, 393287, 10, 0, 393288, 10, 0, 393289, 10, 0, 393290, 10, 0, 393291, 10, 0, 393292, 10, 0, 393293, 10, 0, 393294, 10, 0, 458752, 2, 0, 458769, 7, 0, 458770, 8, 0, 458790, 9, 0, 458793, 8, 0, 458805, 8, 0, 458822, 536870914, 0, 458823, 10, 0, 458824, 10, 0, 458825, 10, 0, 458826, 10, 0, 458827, 10, 0, 458828, 10, 0, 458829, 10, 0, 458830, 10, 0, 524288, 4, 0, 524289, 1, 0, 524304, 536870913, 0, 524305, 536870918, 0, 524306, 6, 0, 524307, 5, 0, 524308, 1, 0, 524326, 8, 0, 524329, 7, 0, 524341, 7, 0, 524358, 536870914, 0, 524359, 10, 0, 524360, 10, 0, 524361, 10, 0, 524362, 10, 0, 524363, 10, 0, 524364, 10, 0, 524365, 10, 0, 524366, 10, 0, 589824, 10, 0, 589825, 13, 0, 589840, 536870914, 0, 589841, 10, 0, 589842, 10, 0, 589843, 10, 0, 589844, 2, 0, 589862, 7, 0, 589865, 7, 0, 589876, 536870913, 0, 589877, 6, 0, 589878, 1, 0, 589894, 536870914, 0, 589895, 10, 0, 589896, 10, 0, 589897, 10, 0, 589898, 10, 0, 589899, 10, 0, 589900, 10, 0, 589901, 10, 0, 589902, 10, 0, 655360, 2, 0, 655376, 536870914, 0, 655377, 10, 0, 655378, 10, 0, 655379, 10, 0, 655380, 2, 0, 655398, 7, 0, 655401, 8, 0, 655412, 536870925, 0, 655413, 11, 0, 655414, 13, 0, 655430, 536870914, 0, 655431, 10, 0, 655432, 10, 0, 655433, 10, 0, 655434, 10, 0, 655435, 10, 0, 655436, 10, 0, 655437, 10, 0, 655438, 10, 0, 720896, 2, 0, 720912, 536870914, 0, 720913, 10, 0, 720914, 10, 0, 720915, 10, 0, 720916, 2, 0, 720934, 8, 0, 720937, 7, 0, 720958, 536870913, 0, 720959, 5, 0, 720960, 536870917, 0, 720961, 5, 0, 720962, 5, 0, 720963, 536870917, 0, 720964, 5, 0, 720965, 0, 0, 720966, 536870916, 0, 720967, 10, 0, 720968, 10, 0, 720969, 10, 0, 720970, 10, 0, 720971, 10, 0, 720972, 10, 0, 720973, 10, 0, 720974, 10, 0, 786432, 2, 0, 786437, 9, 0, 786448, 536870914, 0, 786449, 10, 0, 786450, 10, 0, 786451, 10, 0, 786452, 2, 0, 786464, 536870913, 0, 786465, 1, 0, 786470, 7, 0, 786473, 7, 0, 786474, 536870924, 0, 786475, 1, 0, 786494, 536870914, 0, 786495, 10, 0, 786496, 10, 0, 786497, 10, 0, 786498, 10, 0, 786499, 10, 0, 786500, 10, 0, 786501, 10, 0, 786502, 10, 0, 786503, 10, 0, 786504, 10, 0, 786505, 10, 0, 786506, 10, 0, 786507, 10, 0, 786508, 10, 0, 786509, 10, 0, 851968, 2, 0, 851973, 7, 0, 851984, 536870914, 0, 851985, 10, 0, 851986, 10, 0, 851987, 10, 0, 851988, 2, 0, 851996, 536870913, 0, 851997, 1, 0, 852000, 536870914, 0, 852001, 3, 0, 852006, 7, 0, 852009, 536870913, 0, 852011, 2, 0, 852030, 536870914, 0, 852031, 10, 0, 852032, 10, 0, 852033, 10, 0, 852034, 10, 0, 852035, 10, 0, 852036, 10, 0, 852037, 10, 0, 852038, 10, 0, 852039, 10, 0, 852040, 10, 0, 852041, 10, 0, 852042, 10, 0, 852043, 10, 0, 852044, 10, 0, 852045, 10, 0, 917504, 2, 0, 917506, 9, 0, 917509, 7, 0, 917512, 536870921, 0, 917520, 536870925, 0, 917521, 11, 0, 917522, 11, 0, 917523, 11, 0, 917524, 13, 0, 917532, 536870925, 0, 917533, 13, 0, 917536, 536870914, 0, 917537, 4, 0, 917538, 1, 0, 917540, 536870913, 0, 917541, 0, 0, 917542, 1, 0, 917545, 536870914, 0, 917546, 10, 0, 917547, 4, 0, 917548, 1, 0, 917566, 536870914, 0, 917567, 10, 0, 917568, 10, 0, 917569, 10, 0, 917570, 10, 0, 917571, 10, 0, 917572, 10, 0, 917573, 10, 0, 917574, 10, 0, 917575, 10, 0, 917576, 10, 0, 917577, 10, 0, 917578, 10, 0, 917579, 10, 0, 917580, 10, 0, 917581, 10, 0, 983040, 2, 0, 983042, 7, 0, 983045, 7, 0, 983048, 536870920, 0, 983050, 536870913, 0, 983051, 0, 0, 983052, 1, 0, 983064, 536870913, 0, 983065, 1, 0, 983072, 536870914, 0, 983073, 10, 0, 983074, 4, 0, 983075, 0, 0, 983076, 536870916, 0, 983077, 10, 0, 983078, 4, 0, 983079, 536870912, 0, 983080, 536870912, 0, 983081, 536870916, 0, 983082, 10, 0, 983083, 10, 0, 983084, 2, 0, 983095, 9, 0, 983102, 536870914, 0, 983103, 10, 0, 983104, 10, 0, 983105, 10, 0, 983106, 10, 0, 983107, 10, 0, 983108, 10, 0, 983109, 10, 0, 983110, 10, 0, 983111, 10, 0, 983112, 10, 0, 983113, 10, 0, 983114, 10, 0, 983115, 10, 0, 983116, 10, 0, 983117, 10, 0, 1048576, 2, 0, 1048578, 8, 0, 1048581, 8, 0, 1048584, 536870919, 0, 1048586, 536870914, 0, 1048587, 536870922, 0, 1048588, 2, 0, 1048600, 536870925, 0, 1048601, 13, 0, 1048604, 9, 0, 1048608, 536870925, 0, 1048609, 536870923, 0, 1048610, 536870923, 0, 1048611, 536870923, 0, 1048612, 10, 0, 1048613, 10, 0, 1048614, 10, 0, 1048615, 10, 0, 1048616, 10, 0, 1048617, 10, 0, 1048618, 10, 0, 1048619, 10, 0, 1048620, 4, 0, 1048621, 1, 0, 1048630, 536870921, 0, 1048631, 8, 0, 1048638, 536870914, 0, 1048639, 10, 0, 1048640, 10, 0, 1048641, 10, 0, 1048642, 10, 0, 1048643, 10, 0, 1048644, 10, 0, 1048645, 10, 0, 1048646, 10, 0, 1048647, 10, 0, 1048648, 10, 0, 1048649, 10, 0, 1048650, 10, 0, 1048651, 10, 0, 1048652, 10, 0, 1048653, 10, 0, 1114112, 4, 0, 1114113, 0, 0, 1114114, 6, 0, 1114115, 0, 0, 1114116, 0, 0, 1114117, 6, 0, 1114118, 1, 0, 1114120, 536870920, 0, 1114122, 536870925, 0, 1114123, 11, 0, 1114124, 13, 0, 1114128, 536870913, 0, 1114129, 5, 0, 1114130, 536870917, 0, 1114131, 5, 0, 1114132, 0, 0, 1114133, 1, 0, 1114140, 7, 0, 1114141, 536870921, 0, 1114148, 536870914, 0, 1114149, 10, 0, 1114150, 10, 0, 1114151, 10, 0, 1114152, 10, 0, 1114153, 10, 0, 1114154, 10, 0, 1114155, 10, 0, 1114156, 10, 0, 1114157, 2, 0, 1114166, 536870920, 0, 1114167, 8, 0, 1114174, 536870914, 0, 1114175, 10, 0, 1114176, 10, 0, 1114177, 10, 0, 1114178, 10, 0, 1114179, 10, 0, 1114180, 10, 0, 1114181, 10, 0, 1114182, 10, 0, 1114183, 10, 0, 1114184, 10, 0, 1114185, 10, 0, 1114186, 10, 0, 1114187, 10, 0, 1114188, 10, 0, 1179648, 10, 0, 1179649, 10, 0, 1179650, 10, 0, 1179651, 10, 0, 1179652, 10, 0, 1179653, 10, 0, 1179654, 2, 0, 1179656, 536870919, 0, 1179664, 536870914, 0, 1179665, 10, 0, 1179666, 10, 0, 1179667, 10, 0, 1179668, 10, 0, 1179669, 4, 0, 1179670, 12, 0, 1179675, 9, 0, 1179676, 8, 0, 1179677, 8, 0, 1179684, 536870914, 0, 1179685, 10, 0, 1179686, 10, 0, 1179687, 10, 0, 1179688, 10, 0, 1179689, 10, 0, 1179690, 10, 0, 1179691, 10, 0, 1179692, 10, 0, 1179693, 4, 0, 1179694, 1, 0, 1179701, 9, 0, 1179702, 536870919, 0, 1179703, 7, 0, 1179710, 536870914, 0, 1179711, 10, 0, 1179712, 10, 0, 1179713, 10, 0, 1179714, 10, 0, 1179715, 10, 0, 1179716, 10, 0, 1179717, 10, 0, 1179718, 10, 0, 1179719, 10, 0, 1179720, 10, 0, 1179721, 10, 0, 1179722, 10, 0, 1245184, 10, 0, 1245185, 10, 0, 1245186, 10, 0, 1245187, 10, 0, 1245188, 10, 0, 1245189, 10, 0, 1245190, 2, 0, 1245192, 536870919, 0, 1245199, 536870913, 0, 1245200, 536870916, 0, 1245201, 10, 0, 1245202, 10, 0, 1245203, 10, 0, 1245204, 10, 0, 1245205, 10, 0, 1245207, 1, 0, 1245211, 7, 0, 1245212, 7, 0, 1245213, 536870920, 0, 1245220, 536870914, 0, 1245221, 10, 0, 1245222, 10, 0, 1245223, 10, 0, 1245224, 10, 0, 1245225, 10, 0, 1245226, 10, 0, 1245227, 10, 0, 1245228, 10, 0, 1245229, 10, 0, 1245230, 2, 0, 1245237, 8, 0, 1245238, 536870919, 0, 1245239, 8, 0, 1245240, 536870921, 0, 1245246, 536870914, 0, 1245247, 10, 0, 1245248, 10, 0, 1245249, 10, 0, 1245250, 10, 0, 1245251, 10, 0, 1245252, 10, 0, 1245253, 10, 0, 1245254, 10, 0, 1245255, 10, 0, 1245256, 10, 0, 1245257, 10, 0, 1245258, 10, 0, 1310720, 10, 0, 1310721, 10, 0, 1310722, 10, 0, 1310723, 10, 0, 1310724, 10, 0, 1310725, 10, 0, 1310726, 2, 0, 1310728, 536870920, 0, 1310730, 536870913, 0, 1310731, 1, 0, 1310734, 536870913, 0, 1310735, 536870916, 0, 1310736, 10, 0, 1310737, 10, 0, 1310738, 10, 0, 1310739, 10, 0, 1310740, 10, 0, 1310741, 10, 0, 1310742, 10, 0, 1310743, 4, 0, 1310744, 1, 0, 1310747, 8, 0, 1310748, 7, 0, 1310749, 536870919, 0, 1310756, 536870914, 0, 1310757, 10, 0, 1310758, 10, 0, 1310759, 10, 0, 1310760, 10, 0, 1310761, 10, 0, 1310762, 10, 0, 1310763, 10, 0, 1310764, 10, 0, 1310765, 10, 0, 1310766, 4, 0, 1310767, 5, 0, 1310768, 12, 0, 1310773, 7, 0, 1310774, 536870919, 0, 1310775, 7, 0, 1310776, 536870919, 0, 1310782, 536870914, 0, 1310783, 10, 0, 1310784, 10, 0, 1310785, 10, 0, 1310786, 10, 0, 1310787, 10, 0, 1310788, 10, 0, 1310789, 10, 0, 1310790, 10, 0, 1310791, 10, 0, 1310792, 10, 0, 1310793, 10, 0, 1376256, 10, 0, 1376257, 10, 0, 1376258, 10, 0, 1376259, 10, 0, 1376260, 10, 0, 1376261, 10, 0, 1376262, 4, 0, 1376263, 0, 0, 1376264, 0, 0, 1376265, 0, 0, 1376266, 536870916, 0, 1376267, 4, 0, 1376268, 0, 0, 1376269, 0, 0, 1376270, 536870916, 0, 1376271, 10, 0, 1376272, 10, 0, 1376273, 10, 0, 1376274, 10, 0, 1376275, 10, 0, 1376276, 10, 0, 1376277, 10, 0, 1376278, 10, 0, 1376279, 10, 0, 1376280, 4, 0, 1376281, 12, 0, 1376283, 8, 0, 1376284, 8, 0, 1376285, 536870920, 0, 1376287, 536870924, 0, 1376288, 0, 0, 1376289, 5, 0, 1376290, 536870917, 0, 1376291, 0, 0, 1376292, 536870916, 0, 1376293, 10, 0, 1376294, 10, 0, 1376295, 10, 0, 1376296, 10, 0, 1376297, 10, 0, 1376298, 10, 0, 1376299, 10, 0, 1376300, 10, 0, 1376301, 10, 0, 1376302, 10, 0, 1376303, 10, 0, 1376305, 12, 0, 1376309, 7, 0, 1376310, 536870920, 0, 1376311, 7, 0, 1376312, 536870920, 0, 1376318, 536870914, 0, 1376319, 10, 0, 1376320, 10, 0, 1376321, 10, 0, 1376322, 10, 0, 1376323, 10, 0, 1376324, 10, 0, 1376325, 10, 0, 1376326, 10, 0, 1376327, 10, 0, 1376328, 10, 0, 1441792, 10, 0, 1441793, 10, 0, 1441794, 10, 0, 1441795, 10, 0, 1441796, 10, 0, 1441797, 10, 0, 1441798, 10, 0, 1441799, 10, 0, 1441800, 10, 0, 1441801, 10, 0, 1441802, 10, 0, 1441803, 10, 0, 1441804, 10, 0, 1441805, 10, 0, 1441806, 10, 0, 1441807, 10, 0, 1441808, 10, 0, 1441809, 10, 0, 1441810, 10, 0, 1441811, 10, 0, 1441812, 10, 0, 1441813, 10, 0, 1441814, 10, 0, 1441815, 10, 0, 1441816, 10, 0, 1441818, 0, 0, 1441819, 6, 0, 1441820, 6, 0, 1441821, 536870918, 0, 1441822, 5, 0, 1441824, 10, 0, 1441825, 10, 0, 1441826, 10, 0, 1441827, 10, 0, 1441828, 10, 0, 1441829, 10, 0, 1441830, 10, 0, 1441831, 10, 0, 1441832, 10, 0, 1441833, 10, 0, 1441834, 10, 0, 1441835, 10, 0, 1441836, 10, 0, 1441837, 10, 0, 1441838, 10, 0, 1441839, 10, 0, 1441840, 10, 0, 1441842, 0, 0, 1441843, 0, 0, 1441844, 0, 0, 1441845, 6, 0, 1441846, 536870918, 0, 1441847, 6, 0, 1441848, 536870918, 0, 1441849, 0, 0, 1441850, 5, 0, 1441851, 536870917, 0, 1441852, 5, 0, 1441853, 0, 0, 1441854, 536870916, 0, 1441855, 10, 0, 1441856, 10, 0, 1441857, 10, 0, 1441858, 10, 0, 1441859, 10, 0, 1441860, 10, 0, 1441861, 10, 0, 1441862, 10, 0, 1441863, 10, 0, 1507328, 10, 0, 1507329, 10, 0, 1507330, 10, 0, 1507331, 10, 0, 1507332, 10, 0, 1507333, 10, 0, 1507334, 10, 0, 1507335, 10, 0, 1507336, 10, 0, 1507337, 10, 0, 1507338, 10, 0, 1507339, 10, 0, 1507340, 10, 0, 1507341, 10, 0, 1507342, 10, 0, 1507343, 10, 0, 1507344, 10, 0, 1507345, 10, 0, 1507346, 10, 0, 1507347, 10, 0, 1507348, 10, 0, 1507349, 10, 0, 1507350, 10, 0, 1507351, 10, 0, 1507352, 10, 0, 1507353, 10, 0, 1507354, 10, 0, 1507355, 10, 0, 1507356, 10, 0, 1507357, 10, 0, 1507358, 10, 0, 1507359, 10, 0, 1507360, 10, 0, 1507361, 10, 0, 1507362, 10, 0, 1507363, 10, 0, 1507364, 10, 0, 1507365, 10, 0, 1507366, 10, 0, 1507367, 10, 0, 1507368, 10, 0, 1507369, 10, 0, 1507370, 10, 0, 1507371, 10, 0, 1507372, 10, 0, 1507373, 10, 0, 1507374, 10, 0, 1507375, 10, 0, 1507376, 10, 0, 1507377, 10, 0, 1507378, 10, 0, 1507379, 10, 0, 1507380, 10, 0, 1507381, 10, 0, 1507382, 10, 0, 1507383, 10, 0, 1507384, 10, 0, 1507385, 10, 0, 1507386, 10, 0, 1507387, 10, 0, 1507388, 10, 0, 1507389, 10, 0, 1507390, 10, 0, 1507391, 10, 0, 1507392, 10, 0, 1507393, 10, 0, 1507394, 10, 0, 1507395, 10, 0, 1507396, 10, 0, 1507397, 10, 0, 1507398, 10, 0, 1507399, 10, 0, 1572864, 10, 0, 1572865, 10, 0, 1572866, 10, 0, 1572867, 10, 0, 1572868, 10, 0, 1572869, 10, 0, 1572870, 10, 0, 1572871, 10, 0, 1572872, 10, 0, 1572873, 10, 0, 1572874, 10, 0, 1572875, 10, 0, 1572876, 10, 0, 1572877, 10, 0, 1572878, 10, 0, 1572879, 10, 0, 1572880, 10, 0, 1572881, 10, 0, 1572882, 10, 0, 1572883, 10, 0, 1572884, 10, 0, 1572885, 10, 0, 1572886, 10, 0, 1572887, 10, 0, 1572888, 10, 0, 1572889, 10, 0, 1572890, 10, 0, 1572891, 10, 0, 1572892, 10, 0, 1572893, 10, 0, 1572894, 10, 0, 1572895, 10, 0, 1572896, 10, 0, 1572897, 10, 0, 1572898, 10, 0, 1572899, 10, 0, 1572900, 10, 0, 1572901, 10, 0, 1572902, 10, 0, 1572903, 10, 0, 1572904, 10, 0, 1572905, 10, 0, 1572906, 10, 0, 1572907, 10, 0, 1572908, 10, 0, 1572909, 10, 0, 1572910, 10, 0, 1572911, 10, 0, 1572912, 10, 0, 1572913, 10, 0, 1572914, 10, 0, 1572915, 10, 0, 1572916, 10, 0, 1572917, 10, 0, 1572918, 10, 0, 1572919, 10, 0, 1572920, 10, 0, 1572921, 10, 0, 1572922, 10, 0, 1572923, 10, 0, 1572924, 10, 0, 1572925, 10, 0, 1572926, 10, 0, 1572927, 10, 0, 1572928, 10, 0, 1572929, 10, 0, 1572930, 10, 0, 1572931, 10, 0, 1572932, 10, 0, 1572933, 10, 0, 1572934, 10, 0, 1572935, 10, 0, 1638400, 10, 0, 1638401, 10, 0, 1638402, 10, 0, 1638403, 10, 0, 1638404, 10, 0, 1638405, 10, 0, 1638406, 10, 0, 1638407, 10, 0, 1638408, 10, 0, 1638409, 10, 0, 1638410, 10, 0, 1638411, 10, 0, 1638412, 10, 0, 1638413, 10, 0, 1638414, 10, 0, 1638415, 10, 0, 1638416, 10, 0, 1638417, 10, 0, 1638418, 10, 0, 1638419, 10, 0, 1638420, 10, 0, 1638421, 10, 0, 1638422, 10, 0, 1638423, 10, 0, 1638424, 10, 0, 1638425, 10, 0, 1638426, 10, 0, 1638427, 10, 0, 1638428, 10, 0, 1638429, 10, 0, 1638430, 10, 0, 1638431, 10, 0, 1638432, 10, 0, 1638433, 10, 0, 1638434, 10, 0, 1638435, 10, 0, 1638436, 10, 0, 1638437, 10, 0, 1638438, 10, 0, 1638439, 10, 0, 1638440, 10, 0, 1638441, 10, 0, 1638442, 10, 0, 1638443, 10, 0, 1638444, 10, 0, 1638445, 10, 0, 1638446, 10, 0, 1638447, 10, 0, 1638448, 10, 0, 1638449, 10, 0, 1638450, 10, 0, 1638451, 10, 0, 1638452, 10, 0, 1638453, 10, 0, 1638454, 10, 0, 1638455, 10, 0, 1638456, 10, 0, 1638457, 10, 0, 1638458, 10, 0, 1638459, 10, 0, 1638460, 10, 0, 1638461, 10, 0, 1638462, 10, 0, 1638463, 10, 0, 1638464, 10, 0, 1638465, 10, 0, 1638466, 10, 0, 1638467, 10, 0, 1638468, 10, 0, 1638469, 10, 0, 1638470, 10, 0, 1638471, 10, 0, 1703952, 10, 0, 1703953, 10, 0, 1703954, 10, 0, 1703955, 10, 0, 1703956, 10, 0, 1703957, 10, 0, 1703958, 10, 0, 1703959, 10, 0, 1703960, 10, 0, 1703961, 10, 0, 1703962, 10, 0, 1703963, 10, 0, 1703964, 10, 0, 1703965, 10, 0, 1703966, 10, 0, 1703967, 10, 0, 1703968, 10, 0, 1703969, 10, 0, 1703970, 10, 0, 1703971, 10, 0, 1703972, 10, 0, 1703973, 10, 0, 1703974, 10, 0, 1703975, 10, 0, 1703976, 10, 0, 1703977, 10, 0, 1703978, 10, 0, 1703979, 10, 0, 1703980, 10, 0, 1703981, 10, 0, 1703982, 10, 0, 1703983, 10, 0, 1703984, 10, 0, 1703985, 10, 0, 1703986, 10, 0, 1703987, 10, 0, 1703988, 10, 0, 1703989, 10, 0, 1703990, 10, 0, 1703991, 10, 0, 1703992, 10, 0, 1703993, 10, 0, 1703994, 10, 0, 1703995, 10, 0, 1703996, 10, 0, 1703997, 10, 0, 1703998, 10, 0, 1703999, 10, 0, 1704000, 10, 0, 1704001, 10, 0, 1704002, 10, 0, 1704003, 10, 0, 1704004, 10, 0, 1704005, 10, 0, 1704006, 10, 0, 1704007, 10, 0, 1769488, 10, 0, 1769489, 10, 0, 1769490, 10, 0, 1769491, 10, 0, 1769492, 10, 0, 1769493, 10, 0, 1769494, 10, 0, 1769495, 10, 0, 1769496, 10, 0, 1769497, 10, 0, 1769498, 10, 0, 1769499, 10, 0, 1769500, 10, 0, 1769501, 10, 0, 1769502, 10, 0, 1769503, 10, 0, 1769504, 10, 0, 1769505, 10, 0, 1769506, 10, 0, 1769507, 10, 0, 1769508, 10, 0, 1769509, 10, 0, 1769510, 10, 0, 1769511, 10, 0, 1769512, 10, 0, 1769513, 10, 0, 1769514, 10, 0, 1769515, 10, 0, 1769516, 10, 0, 1769517, 10, 0, 1769518, 10, 0, 1769519, 10, 0, 1769520, 10, 0, 1769521, 10, 0, 1769522, 10, 0, 1769523, 10, 0, 1769524, 10, 0, 1769525, 10, 0, 1769526, 10, 0, 1769527, 10, 0, 1769528, 10, 0, 1769529, 10, 0, 1769530, 10, 0, 1769531, 10, 0, 1769532, 10, 0, 1769533, 10, 0, 1769534, 10, 0, 1769535, 10, 0, 1769536, 10, 0, 1769537, 10, 0, 1769538, 10, 0, 1769539, 10, 0, 1769540, 10, 0, 1769541, 10, 0) -__meta__ = { -"_edit_lock_": true -} +format = 2 +layer_0/tile_data = PackedInt32Array(0, 2, 0, 70, 2, 65536, 71, 10, 0, 72, 10, 0, 73, 10, 0, 74, 10, 0, 75, 10, 0, 76, 10, 0, 77, 10, 0, 78, 10, 0, 65536, 2, 0, 65606, 2, 65536, 65607, 10, 0, 65608, 10, 0, 65609, 10, 0, 65610, 10, 0, 65611, 10, 0, 65612, 10, 0, 65613, 10, 0, 65614, 10, 0, 131072, 2, 0, 131142, 2, 65536, 131143, 10, 0, 131144, 10, 0, 131145, 10, 0, 131146, 10, 0, 131147, 10, 0, 131148, 10, 0, 131149, 10, 0, 131150, 10, 0, 196608, 2, 0, 196626, 9, 0, 196678, 2, 65536, 196679, 10, 0, 196680, 10, 0, 196681, 10, 0, 196682, 10, 0, 196683, 10, 0, 196684, 10, 0, 196685, 10, 0, 196686, 10, 0, 262144, 2, 0, 262162, 8, 0, 262214, 2, 65536, 262215, 10, 0, 262216, 10, 0, 262217, 10, 0, 262218, 10, 0, 262219, 10, 0, 262220, 10, 0, 262221, 10, 0, 262222, 10, 0, 327680, 2, 0, 327697, 9, 65536, 327698, 7, 0, 327733, 9, 0, 327750, 2, 65536, 327751, 10, 0, 327752, 10, 0, 327753, 10, 0, 327754, 10, 0, 327755, 10, 0, 327756, 10, 0, 327757, 10, 0, 327758, 10, 0, 393216, 2, 0, 393233, 8, 65536, 393234, 7, 0, 393257, 9, 0, 393269, 7, 0, 393286, 2, 65536, 393287, 10, 0, 393288, 10, 0, 393289, 10, 0, 393290, 10, 0, 393291, 10, 0, 393292, 10, 0, 393293, 10, 0, 393294, 10, 0, 458752, 2, 0, 458769, 7, 0, 458770, 8, 0, 458790, 9, 0, 458793, 8, 0, 458805, 8, 0, 458822, 2, 65536, 458823, 10, 0, 458824, 10, 0, 458825, 10, 0, 458826, 10, 0, 458827, 10, 0, 458828, 10, 0, 458829, 10, 0, 458830, 10, 0, 524288, 4, 0, 524289, 1, 0, 524304, 1, 65536, 524305, 6, 65536, 524306, 6, 0, 524307, 5, 0, 524308, 1, 0, 524326, 8, 0, 524329, 7, 0, 524341, 7, 0, 524358, 2, 65536, 524359, 10, 0, 524360, 10, 0, 524361, 10, 0, 524362, 10, 0, 524363, 10, 0, 524364, 10, 0, 524365, 10, 0, 524366, 10, 0, 589824, 10, 0, 589825, 13, 0, 589840, 2, 65536, 589841, 10, 0, 589842, 10, 0, 589843, 10, 0, 589844, 2, 0, 589862, 7, 0, 589865, 7, 0, 589876, 1, 65536, 589877, 6, 0, 589878, 1, 0, 589894, 2, 65536, 589895, 10, 0, 589896, 10, 0, 589897, 10, 0, 589898, 10, 0, 589899, 10, 0, 589900, 10, 0, 589901, 10, 0, 589902, 10, 0, 655360, 2, 0, 655376, 2, 65536, 655377, 10, 0, 655378, 10, 0, 655379, 10, 0, 655380, 2, 0, 655398, 7, 0, 655401, 8, 0, 655412, 13, 65536, 655413, 11, 0, 655414, 13, 0, 655430, 2, 65536, 655431, 10, 0, 655432, 10, 0, 655433, 10, 0, 655434, 10, 0, 655435, 10, 0, 655436, 10, 0, 655437, 10, 0, 655438, 10, 0, 720896, 2, 0, 720912, 2, 65536, 720913, 10, 0, 720914, 10, 0, 720915, 10, 0, 720916, 2, 0, 720934, 8, 0, 720937, 7, 0, 720958, 1, 65536, 720959, 5, 0, 720960, 5, 65536, 720961, 5, 0, 720962, 5, 0, 720963, 5, 65536, 720964, 5, 0, 720965, 0, 0, 720966, 4, 65536, 720967, 10, 0, 720968, 10, 0, 720969, 10, 0, 720970, 10, 0, 720971, 10, 0, 720972, 10, 0, 720973, 10, 0, 720974, 10, 0, 786432, 2, 0, 786437, 9, 0, 786448, 2, 65536, 786449, 10, 0, 786450, 10, 0, 786451, 10, 0, 786452, 2, 0, 786464, 1, 65536, 786465, 1, 0, 786470, 7, 0, 786473, 7, 0, 786474, 12, 65536, 786475, 1, 0, 786494, 2, 65536, 786495, 10, 0, 786496, 10, 0, 786497, 10, 0, 786498, 10, 0, 786499, 10, 0, 786500, 10, 0, 786501, 10, 0, 786502, 10, 0, 786503, 10, 0, 786504, 10, 0, 786505, 10, 0, 786506, 10, 0, 786507, 10, 0, 786508, 10, 0, 786509, 10, 0, 851968, 2, 0, 851973, 7, 0, 851984, 2, 65536, 851985, 10, 0, 851986, 10, 0, 851987, 10, 0, 851988, 2, 0, 851996, 1, 65536, 851997, 1, 0, 852000, 2, 65536, 852001, 3, 0, 852006, 7, 0, 852009, 1, 65536, 852011, 2, 0, 852030, 2, 65536, 852031, 10, 0, 852032, 10, 0, 852033, 10, 0, 852034, 10, 0, 852035, 10, 0, 852036, 10, 0, 852037, 10, 0, 852038, 10, 0, 852039, 10, 0, 852040, 10, 0, 852041, 10, 0, 852042, 10, 0, 852043, 10, 0, 852044, 10, 0, 852045, 10, 0, 917504, 2, 0, 917506, 9, 0, 917509, 7, 0, 917512, 9, 65536, 917520, 13, 65536, 917521, 11, 0, 917522, 11, 0, 917523, 11, 0, 917524, 13, 0, 917532, 13, 65536, 917533, 13, 0, 917536, 2, 65536, 917537, 4, 0, 917538, 1, 0, 917540, 1, 65536, 917541, 0, 0, 917542, 1, 0, 917545, 2, 65536, 917546, 10, 0, 917547, 4, 0, 917548, 1, 0, 917566, 2, 65536, 917567, 10, 0, 917568, 10, 0, 917569, 10, 0, 917570, 10, 0, 917571, 10, 0, 917572, 10, 0, 917573, 10, 0, 917574, 10, 0, 917575, 10, 0, 917576, 10, 0, 917577, 10, 0, 917578, 10, 0, 917579, 10, 0, 917580, 10, 0, 917581, 10, 0, 983040, 2, 0, 983042, 7, 0, 983045, 7, 0, 983048, 8, 65536, 983050, 1, 65536, 983051, 0, 0, 983052, 1, 0, 983064, 1, 65536, 983065, 1, 0, 983072, 2, 65536, 983073, 10, 0, 983074, 4, 0, 983075, 0, 0, 983076, 4, 65536, 983077, 10, 0, 983078, 4, 0, 983079, 0, 65536, 983080, 0, 65536, 983081, 4, 65536, 983082, 10, 0, 983083, 10, 0, 983084, 2, 0, 983095, 9, 0, 983102, 2, 65536, 983103, 10, 0, 983104, 10, 0, 983105, 10, 0, 983106, 10, 0, 983107, 10, 0, 983108, 10, 0, 983109, 10, 0, 983110, 10, 0, 983111, 10, 0, 983112, 10, 0, 983113, 10, 0, 983114, 10, 0, 983115, 10, 0, 983116, 10, 0, 983117, 10, 0, 1048576, 2, 0, 1048578, 8, 0, 1048581, 8, 0, 1048584, 7, 65536, 1048586, 2, 65536, 1048587, 10, 65536, 1048588, 2, 0, 1048600, 13, 65536, 1048601, 13, 0, 1048604, 9, 0, 1048608, 13, 65536, 1048609, 11, 65536, 1048610, 11, 65536, 1048611, 11, 65536, 1048612, 10, 0, 1048613, 10, 0, 1048614, 10, 0, 1048615, 10, 0, 1048616, 10, 0, 1048617, 10, 0, 1048618, 10, 0, 1048619, 10, 0, 1048620, 4, 0, 1048621, 1, 0, 1048630, 9, 65536, 1048631, 8, 0, 1048638, 2, 65536, 1048639, 10, 0, 1048640, 10, 0, 1048641, 10, 0, 1048642, 10, 0, 1048643, 10, 0, 1048644, 10, 0, 1048645, 10, 0, 1048646, 10, 0, 1048647, 10, 0, 1048648, 10, 0, 1048649, 10, 0, 1048650, 10, 0, 1048651, 10, 0, 1048652, 10, 0, 1048653, 10, 0, 1114112, 4, 0, 1114113, 0, 0, 1114114, 6, 0, 1114115, 0, 0, 1114116, 0, 0, 1114117, 6, 0, 1114118, 1, 0, 1114120, 8, 65536, 1114122, 13, 65536, 1114123, 11, 0, 1114124, 13, 0, 1114128, 1, 65536, 1114129, 5, 0, 1114130, 5, 65536, 1114131, 5, 0, 1114132, 0, 0, 1114133, 1, 0, 1114140, 7, 0, 1114141, 9, 65536, 1114148, 2, 65536, 1114149, 10, 0, 1114150, 10, 0, 1114151, 10, 0, 1114152, 10, 0, 1114153, 10, 0, 1114154, 10, 0, 1114155, 10, 0, 1114156, 10, 0, 1114157, 2, 0, 1114166, 8, 65536, 1114167, 8, 0, 1114174, 2, 65536, 1114175, 10, 0, 1114176, 10, 0, 1114177, 10, 0, 1114178, 10, 0, 1114179, 10, 0, 1114180, 10, 0, 1114181, 10, 0, 1114182, 10, 0, 1114183, 10, 0, 1114184, 10, 0, 1114185, 10, 0, 1114186, 10, 0, 1114187, 10, 0, 1114188, 10, 0, 1179648, 10, 0, 1179649, 10, 0, 1179650, 10, 0, 1179651, 10, 0, 1179652, 10, 0, 1179653, 10, 0, 1179654, 2, 0, 1179656, 7, 65536, 1179664, 2, 65536, 1179665, 10, 0, 1179666, 10, 0, 1179667, 10, 0, 1179668, 10, 0, 1179669, 4, 0, 1179670, 12, 0, 1179675, 9, 0, 1179676, 8, 0, 1179677, 8, 0, 1179684, 2, 65536, 1179685, 10, 0, 1179686, 10, 0, 1179687, 10, 0, 1179688, 10, 0, 1179689, 10, 0, 1179690, 10, 0, 1179691, 10, 0, 1179692, 10, 0, 1179693, 4, 0, 1179694, 1, 0, 1179701, 9, 0, 1179702, 7, 65536, 1179703, 7, 0, 1179710, 2, 65536, 1179711, 10, 0, 1179712, 10, 0, 1179713, 10, 0, 1179714, 10, 0, 1179715, 10, 0, 1179716, 10, 0, 1179717, 10, 0, 1179718, 10, 0, 1179719, 10, 0, 1179720, 10, 0, 1179721, 10, 0, 1179722, 10, 0, 1245184, 10, 0, 1245185, 10, 0, 1245186, 10, 0, 1245187, 10, 0, 1245188, 10, 0, 1245189, 10, 0, 1245190, 2, 0, 1245192, 7, 65536, 1245199, 1, 65536, 1245200, 4, 65536, 1245201, 10, 0, 1245202, 10, 0, 1245203, 10, 0, 1245204, 10, 0, 1245205, 10, 0, 1245207, 1, 0, 1245211, 7, 0, 1245212, 7, 0, 1245213, 8, 65536, 1245220, 2, 65536, 1245221, 10, 0, 1245222, 10, 0, 1245223, 10, 0, 1245224, 10, 0, 1245225, 10, 0, 1245226, 10, 0, 1245227, 10, 0, 1245228, 10, 0, 1245229, 10, 0, 1245230, 2, 0, 1245237, 8, 0, 1245238, 7, 65536, 1245239, 8, 0, 1245240, 9, 65536, 1245246, 2, 65536, 1245247, 10, 0, 1245248, 10, 0, 1245249, 10, 0, 1245250, 10, 0, 1245251, 10, 0, 1245252, 10, 0, 1245253, 10, 0, 1245254, 10, 0, 1245255, 10, 0, 1245256, 10, 0, 1245257, 10, 0, 1245258, 10, 0, 1310720, 10, 0, 1310721, 10, 0, 1310722, 10, 0, 1310723, 10, 0, 1310724, 10, 0, 1310725, 10, 0, 1310726, 2, 0, 1310728, 8, 65536, 1310730, 1, 65536, 1310731, 1, 0, 1310734, 1, 65536, 1310735, 4, 65536, 1310736, 10, 0, 1310737, 10, 0, 1310738, 10, 0, 1310739, 10, 0, 1310740, 10, 0, 1310741, 10, 0, 1310742, 10, 0, 1310743, 4, 0, 1310744, 1, 0, 1310747, 8, 0, 1310748, 7, 0, 1310749, 7, 65536, 1310756, 2, 65536, 1310757, 10, 0, 1310758, 10, 0, 1310759, 10, 0, 1310760, 10, 0, 1310761, 10, 0, 1310762, 10, 0, 1310763, 10, 0, 1310764, 10, 0, 1310765, 10, 0, 1310766, 4, 0, 1310767, 5, 0, 1310768, 12, 0, 1310773, 7, 0, 1310774, 7, 65536, 1310775, 7, 0, 1310776, 7, 65536, 1310782, 2, 65536, 1310783, 10, 0, 1310784, 10, 0, 1310785, 10, 0, 1310786, 10, 0, 1310787, 10, 0, 1310788, 10, 0, 1310789, 10, 0, 1310790, 10, 0, 1310791, 10, 0, 1310792, 10, 0, 1310793, 10, 0, 1376256, 10, 0, 1376257, 10, 0, 1376258, 10, 0, 1376259, 10, 0, 1376260, 10, 0, 1376261, 10, 0, 1376262, 4, 0, 1376263, 0, 0, 1376264, 0, 0, 1376265, 0, 0, 1376266, 4, 65536, 1376267, 4, 0, 1376268, 0, 0, 1376269, 0, 0, 1376270, 4, 65536, 1376271, 10, 0, 1376272, 10, 0, 1376273, 10, 0, 1376274, 10, 0, 1376275, 10, 0, 1376276, 10, 0, 1376277, 10, 0, 1376278, 10, 0, 1376279, 10, 0, 1376280, 4, 0, 1376281, 12, 0, 1376283, 8, 0, 1376284, 8, 0, 1376285, 8, 65536, 1376287, 12, 65536, 1376288, 0, 0, 1376289, 5, 0, 1376290, 5, 65536, 1376291, 0, 0, 1376292, 4, 65536, 1376293, 10, 0, 1376294, 10, 0, 1376295, 10, 0, 1376296, 10, 0, 1376297, 10, 0, 1376298, 10, 0, 1376299, 10, 0, 1376300, 10, 0, 1376301, 10, 0, 1376302, 10, 0, 1376303, 10, 0, 1376305, 12, 0, 1376309, 7, 0, 1376310, 8, 65536, 1376311, 7, 0, 1376312, 8, 65536, 1376318, 2, 65536, 1376319, 10, 0, 1376320, 10, 0, 1376321, 10, 0, 1376322, 10, 0, 1376323, 10, 0, 1376324, 10, 0, 1376325, 10, 0, 1376326, 10, 0, 1376327, 10, 0, 1376328, 10, 0, 1441792, 10, 0, 1441793, 10, 0, 1441794, 10, 0, 1441795, 10, 0, 1441796, 10, 0, 1441797, 10, 0, 1441798, 10, 0, 1441799, 10, 0, 1441800, 10, 0, 1441801, 10, 0, 1441802, 10, 0, 1441803, 10, 0, 1441804, 10, 0, 1441805, 10, 0, 1441806, 10, 0, 1441807, 10, 0, 1441808, 10, 0, 1441809, 10, 0, 1441810, 10, 0, 1441811, 10, 0, 1441812, 10, 0, 1441813, 10, 0, 1441814, 10, 0, 1441815, 10, 0, 1441816, 10, 0, 1441818, 0, 0, 1441819, 6, 0, 1441820, 6, 0, 1441821, 6, 65536, 1441822, 5, 0, 1441824, 10, 0, 1441825, 10, 0, 1441826, 10, 0, 1441827, 10, 0, 1441828, 10, 0, 1441829, 10, 0, 1441830, 10, 0, 1441831, 10, 0, 1441832, 10, 0, 1441833, 10, 0, 1441834, 10, 0, 1441835, 10, 0, 1441836, 10, 0, 1441837, 10, 0, 1441838, 10, 0, 1441839, 10, 0, 1441840, 10, 0, 1441842, 0, 0, 1441843, 0, 0, 1441844, 0, 0, 1441845, 6, 0, 1441846, 6, 65536, 1441847, 6, 0, 1441848, 6, 65536, 1441849, 0, 0, 1441850, 5, 0, 1441851, 5, 65536, 1441852, 5, 0, 1441853, 0, 0, 1441854, 4, 65536, 1441855, 10, 0, 1441856, 10, 0, 1441857, 10, 0, 1441858, 10, 0, 1441859, 10, 0, 1441860, 10, 0, 1441861, 10, 0, 1441862, 10, 0, 1441863, 10, 0, 1507328, 10, 0, 1507329, 10, 0, 1507330, 10, 0, 1507331, 10, 0, 1507332, 10, 0, 1507333, 10, 0, 1507334, 10, 0, 1507335, 10, 0, 1507336, 10, 0, 1507337, 10, 0, 1507338, 10, 0, 1507339, 10, 0, 1507340, 10, 0, 1507341, 10, 0, 1507342, 10, 0, 1507343, 10, 0, 1507344, 10, 0, 1507345, 10, 0, 1507346, 10, 0, 1507347, 10, 0, 1507348, 10, 0, 1507349, 10, 0, 1507350, 10, 0, 1507351, 10, 0, 1507352, 10, 0, 1507353, 10, 0, 1507354, 10, 0, 1507355, 10, 0, 1507356, 10, 0, 1507357, 10, 0, 1507358, 10, 0, 1507359, 10, 0, 1507360, 10, 0, 1507361, 10, 0, 1507362, 10, 0, 1507363, 10, 0, 1507364, 10, 0, 1507365, 10, 0, 1507366, 10, 0, 1507367, 10, 0, 1507368, 10, 0, 1507369, 10, 0, 1507370, 10, 0, 1507371, 10, 0, 1507372, 10, 0, 1507373, 10, 0, 1507374, 10, 0, 1507375, 10, 0, 1507376, 10, 0, 1507377, 10, 0, 1507378, 10, 0, 1507379, 10, 0, 1507380, 10, 0, 1507381, 10, 0, 1507382, 10, 0, 1507383, 10, 0, 1507384, 10, 0, 1507385, 10, 0, 1507386, 10, 0, 1507387, 10, 0, 1507388, 10, 0, 1507389, 10, 0, 1507390, 10, 0, 1507391, 10, 0, 1507392, 10, 0, 1507393, 10, 0, 1507394, 10, 0, 1507395, 10, 0, 1507396, 10, 0, 1507397, 10, 0, 1507398, 10, 0, 1507399, 10, 0, 1572864, 10, 0, 1572865, 10, 0, 1572866, 10, 0, 1572867, 10, 0, 1572868, 10, 0, 1572869, 10, 0, 1572870, 10, 0, 1572871, 10, 0, 1572872, 10, 0, 1572873, 10, 0, 1572874, 10, 0, 1572875, 10, 0, 1572876, 10, 0, 1572877, 10, 0, 1572878, 10, 0, 1572879, 10, 0, 1572880, 10, 0, 1572881, 10, 0, 1572882, 10, 0, 1572883, 10, 0, 1572884, 10, 0, 1572885, 10, 0, 1572886, 10, 0, 1572887, 10, 0, 1572888, 10, 0, 1572889, 10, 0, 1572890, 10, 0, 1572891, 10, 0, 1572892, 10, 0, 1572893, 10, 0, 1572894, 10, 0, 1572895, 10, 0, 1572896, 10, 0, 1572897, 10, 0, 1572898, 10, 0, 1572899, 10, 0, 1572900, 10, 0, 1572901, 10, 0, 1572902, 10, 0, 1572903, 10, 0, 1572904, 10, 0, 1572905, 10, 0, 1572906, 10, 0, 1572907, 10, 0, 1572908, 10, 0, 1572909, 10, 0, 1572910, 10, 0, 1572911, 10, 0, 1572912, 10, 0, 1572913, 10, 0, 1572914, 10, 0, 1572915, 10, 0, 1572916, 10, 0, 1572917, 10, 0, 1572918, 10, 0, 1572919, 10, 0, 1572920, 10, 0, 1572921, 10, 0, 1572922, 10, 0, 1572923, 10, 0, 1572924, 10, 0, 1572925, 10, 0, 1572926, 10, 0, 1572927, 10, 0, 1572928, 10, 0, 1572929, 10, 0, 1572930, 10, 0, 1572931, 10, 0, 1572932, 10, 0, 1572933, 10, 0, 1572934, 10, 0, 1572935, 10, 0, 1638400, 10, 0, 1638401, 10, 0, 1638402, 10, 0, 1638403, 10, 0, 1638404, 10, 0, 1638405, 10, 0, 1638406, 10, 0, 1638407, 10, 0, 1638408, 10, 0, 1638409, 10, 0, 1638410, 10, 0, 1638411, 10, 0, 1638412, 10, 0, 1638413, 10, 0, 1638414, 10, 0, 1638415, 10, 0, 1638416, 10, 0, 1638417, 10, 0, 1638418, 10, 0, 1638419, 10, 0, 1638420, 10, 0, 1638421, 10, 0, 1638422, 10, 0, 1638423, 10, 0, 1638424, 10, 0, 1638425, 10, 0, 1638426, 10, 0, 1638427, 10, 0, 1638428, 10, 0, 1638429, 10, 0, 1638430, 10, 0, 1638431, 10, 0, 1638432, 10, 0, 1638433, 10, 0, 1638434, 10, 0, 1638435, 10, 0, 1638436, 10, 0, 1638437, 10, 0, 1638438, 10, 0, 1638439, 10, 0, 1638440, 10, 0, 1638441, 10, 0, 1638442, 10, 0, 1638443, 10, 0, 1638444, 10, 0, 1638445, 10, 0, 1638446, 10, 0, 1638447, 10, 0, 1638448, 10, 0, 1638449, 10, 0, 1638450, 10, 0, 1638451, 10, 0, 1638452, 10, 0, 1638453, 10, 0, 1638454, 10, 0, 1638455, 10, 0, 1638456, 10, 0, 1638457, 10, 0, 1638458, 10, 0, 1638459, 10, 0, 1638460, 10, 0, 1638461, 10, 0, 1638462, 10, 0, 1638463, 10, 0, 1638464, 10, 0, 1638465, 10, 0, 1638466, 10, 0, 1638467, 10, 0, 1638468, 10, 0, 1638469, 10, 0, 1638470, 10, 0, 1638471, 10, 0, 1703952, 10, 0, 1703953, 10, 0, 1703954, 10, 0, 1703955, 10, 0, 1703956, 10, 0, 1703957, 10, 0, 1703958, 10, 0, 1703959, 10, 0, 1703960, 10, 0, 1703961, 10, 0, 1703962, 10, 0, 1703963, 10, 0, 1703964, 10, 0, 1703965, 10, 0, 1703966, 10, 0, 1703967, 10, 0, 1703968, 10, 0, 1703969, 10, 0, 1703970, 10, 0, 1703971, 10, 0, 1703972, 10, 0, 1703973, 10, 0, 1703974, 10, 0, 1703975, 10, 0, 1703976, 10, 0, 1703977, 10, 0, 1703978, 10, 0, 1703979, 10, 0, 1703980, 10, 0, 1703981, 10, 0, 1703982, 10, 0, 1703983, 10, 0, 1703984, 10, 0, 1703985, 10, 0, 1703986, 10, 0, 1703987, 10, 0, 1703988, 10, 0, 1703989, 10, 0, 1703990, 10, 0, 1703991, 10, 0, 1703992, 10, 0, 1703993, 10, 0, 1703994, 10, 0, 1703995, 10, 0, 1703996, 10, 0, 1703997, 10, 0, 1703998, 10, 0, 1703999, 10, 0, 1704000, 10, 0, 1704001, 10, 0, 1704002, 10, 0, 1704003, 10, 0, 1704004, 10, 0, 1704005, 10, 0, 1704006, 10, 0, 1704007, 10, 0, 1769488, 10, 0, 1769489, 10, 0, 1769490, 10, 0, 1769491, 10, 0, 1769492, 10, 0, 1769493, 10, 0, 1769494, 10, 0, 1769495, 10, 0, 1769496, 10, 0, 1769497, 10, 0, 1769498, 10, 0, 1769499, 10, 0, 1769500, 10, 0, 1769501, 10, 0, 1769502, 10, 0, 1769503, 10, 0, 1769504, 10, 0, 1769505, 10, 0, 1769506, 10, 0, 1769507, 10, 0, 1769508, 10, 0, 1769509, 10, 0, 1769510, 10, 0, 1769511, 10, 0, 1769512, 10, 0, 1769513, 10, 0, 1769514, 10, 0, 1769515, 10, 0, 1769516, 10, 0, 1769517, 10, 0, 1769518, 10, 0, 1769519, 10, 0, 1769520, 10, 0, 1769521, 10, 0, 1769522, 10, 0, 1769523, 10, 0, 1769524, 10, 0, 1769525, 10, 0, 1769526, 10, 0, 1769527, 10, 0, 1769528, 10, 0, 1769529, 10, 0, 1769530, 10, 0, 1769531, 10, 0, 1769532, 10, 0, 1769533, 10, 0, 1769534, 10, 0, 1769535, 10, 0, 1769536, 10, 0, 1769537, 10, 0, 1769538, 10, 0, 1769539, 10, 0, 1769540, 10, 0, 1769541, 10, 0) [node name="Coins" type="Node2D" parent="."] -[node name="Coin" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin" parent="Coins" instance=ExtResource("2")] position = Vector2(336, 589.5) -[node name="Coin2" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin2" parent="Coins" instance=ExtResource("2")] position = Vector2(352, 589.5) -[node name="Coin3" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin3" parent="Coins" instance=ExtResource("2")] position = Vector2(368, 589.5) -[node name="Coin4" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin4" parent="Coins" instance=ExtResource("2")] position = Vector2(560, 496) -[node name="Coin5" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin5" parent="Coins" instance=ExtResource("2")] position = Vector2(576, 496) -[node name="Coin6" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin6" parent="Coins" instance=ExtResource("2")] position = Vector2(592, 496) -[node name="Coin7" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin7" parent="Coins" instance=ExtResource("2")] position = Vector2(608, 496) -[node name="Coin8" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin8" parent="Coins" instance=ExtResource("2")] position = Vector2(624, 496) -[node name="Coin9" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin9" parent="Coins" instance=ExtResource("2")] position = Vector2(784, 432) -[node name="Coin10" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin10" parent="Coins" instance=ExtResource("2")] position = Vector2(816, 432) -[node name="Coin11" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin11" parent="Coins" instance=ExtResource("2")] position = Vector2(912, 384) -[node name="Coin12" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin12" parent="Coins" instance=ExtResource("2")] position = Vector2(944, 384) -[node name="Coin13" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin13" parent="Coins" instance=ExtResource("2")] position = Vector2(1040, 336) -[node name="Coin14" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin14" parent="Coins" instance=ExtResource("2")] position = Vector2(1072, 336) -[node name="Coin15" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin15" parent="Coins" instance=ExtResource("2")] position = Vector2(896, 624) -[node name="Coin16" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin16" parent="Coins" instance=ExtResource("2")] position = Vector2(928, 624) -[node name="Coin17" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin17" parent="Coins" instance=ExtResource("2")] position = Vector2(960, 624) -[node name="Coin18" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin18" parent="Coins" instance=ExtResource("2")] position = Vector2(960, 592) -[node name="Coin19" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin19" parent="Coins" instance=ExtResource("2")] position = Vector2(928, 592) -[node name="Coin20" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin20" parent="Coins" instance=ExtResource("2")] position = Vector2(896, 592) -[node name="Coin21" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin21" parent="Coins" instance=ExtResource("2")] position = Vector2(49.4434, 244.258) -[node name="Coin22" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin22" parent="Coins" instance=ExtResource("2")] position = Vector2(44.7994, 240.609) -[node name="Coin23" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin23" parent="Coins" instance=ExtResource("2")] position = Vector2(54.0875, 240.609) -[node name="Coin24" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin24" parent="Coins" instance=ExtResource("2")] position = Vector2(58.068, 234.969) -[node name="Coin25" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin25" parent="Coins" instance=ExtResource("2")] position = Vector2(58.7315, 228.999) -[node name="Coin26" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin26" parent="Coins" instance=ExtResource("2")] position = Vector2(53.092, 224.686) -[node name="Coin27" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin27" parent="Coins" instance=ExtResource("2")] position = Vector2(49.1117, 229.331) -[node name="Coin28" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin28" parent="Coins" instance=ExtResource("2")] position = Vector2(44.136, 224.355) -[node name="Coin29" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin29" parent="Coins" instance=ExtResource("2")] position = Vector2(39.8238, 228.667) -[node name="Coin30" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin30" parent="Coins" instance=ExtResource("2")] position = Vector2(41.4823, 234.306) -[node name="Coin31" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin31" parent="Coins" instance=ExtResource("2")] position = Vector2(1678.71, 232.644) -[node name="Coin32" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin32" parent="Coins" instance=ExtResource("2")] position = Vector2(1710.71, 232.644) -[node name="Coin33" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin33" parent="Coins" instance=ExtResource("2")] position = Vector2(1742.71, 232.644) -[node name="Coin34" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin34" parent="Coins" instance=ExtResource("2")] position = Vector2(1742.71, 200.644) -[node name="Coin35" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin35" parent="Coins" instance=ExtResource("2")] position = Vector2(1710.71, 200.644) -[node name="Coin36" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin36" parent="Coins" instance=ExtResource("2")] position = Vector2(1678.71, 200.644) -[node name="Coin37" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin37" parent="Coins" instance=ExtResource("2")] position = Vector2(2086.38, 302.529) -[node name="Coin38" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin38" parent="Coins" instance=ExtResource("2")] position = Vector2(2118.38, 302.529) -[node name="Coin39" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin39" parent="Coins" instance=ExtResource("2")] position = Vector2(2150.38, 302.529) -[node name="Coin40" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin40" parent="Coins" instance=ExtResource("2")] position = Vector2(2150.38, 270.529) -[node name="Coin41" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin41" parent="Coins" instance=ExtResource("2")] position = Vector2(2118.38, 270.529) -[node name="Coin42" parent="Coins" instance=ExtResource( 2 )] +[node name="Coin42" parent="Coins" instance=ExtResource("2")] position = Vector2(2086.38, 270.529) [node name="Props" type="Node2D" parent="."] -[node name="MovingPlatform" parent="Props" instance=ExtResource( 3 )] +[node name="MovingPlatform" parent="Props" instance=ExtResource("3")] position = Vector2(725.93, 371.484) motion = Vector2(0, 70) cycle = 5.0 -[node name="MovingPlatform 2" parent="Props" instance=ExtResource( 3 )] +[node name="MovingPlatform 2" parent="Props" instance=ExtResource("3")] position = Vector2(312.412, 272.772) motion = Vector2(150, 0) cycle = 10.0 -[node name="MovingPlatform 3" parent="Props" instance=ExtResource( 3 )] +[node name="MovingPlatform 3" parent="Props" instance=ExtResource("3")] position = Vector2(1709.93, 369.831) motion = Vector2(225, 0) cycle = 10.0 -[node name="Seesaw" parent="Props" instance=ExtResource( 4 )] +[node name="Seesaw" parent="Props" instance=ExtResource("4")] position = Vector2(1201.4, 424.76) -[node name="OneWayPlatform" parent="Props" instance=ExtResource( 5 )] +[node name="OneWayPlatform" parent="Props" instance=ExtResource("5")] position = Vector2(463.849, 560.405) -[node name="Player" parent="." instance=ExtResource( 6 )] +[node name="Player" parent="." instance=ExtResource("6")] position = Vector2(125.842, 522.8) -physics_material_override = SubResource( 1 ) +physics_material_override = SubResource("1") [node name="Enemies" type="Node2D" parent="."] -[node name="Enemy1" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy1" parent="Enemies" instance=ExtResource("7")] position = Vector2(417.332, 654.8) -physics_material_override = SubResource( 2 ) +physics_material_override = SubResource("2") -[node name="Enemy2" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy2" parent="Enemies" instance=ExtResource("7")] position = Vector2(353.832, 612.525) -physics_material_override = SubResource( 3 ) +physics_material_override = SubResource("3") -[node name="Enemy3" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy3" parent="Enemies" instance=ExtResource("7")] position = Vector2(562.605, 526.53) -physics_material_override = SubResource( 4 ) +physics_material_override = SubResource("4") -[node name="Enemy4" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy4" parent="Enemies" instance=ExtResource("7")] position = Vector2(646.055, 529.62) -physics_material_override = SubResource( 5 ) +physics_material_override = SubResource("5") -[node name="Enemy5" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy5" parent="Enemies" instance=ExtResource("7")] position = Vector2(803.69, 461.62) -physics_material_override = SubResource( 6 ) +physics_material_override = SubResource("6") -[node name="Enemy6" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy6" parent="Enemies" instance=ExtResource("7")] position = Vector2(1293.45, 469.53) -physics_material_override = SubResource( 7 ) +physics_material_override = SubResource("7") -[node name="Enemy7" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy7" parent="Enemies" instance=ExtResource("7")] position = Vector2(728.8, 344.371) -physics_material_override = SubResource( 8 ) +physics_material_override = SubResource("8") -[node name="Enemy8" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy8" parent="Enemies" instance=ExtResource("7")] position = Vector2(596.815, 230.191) -physics_material_override = SubResource( 9 ) +physics_material_override = SubResource("9") -[node name="Enemy9" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy9" parent="Enemies" instance=ExtResource("7")] position = Vector2(1714.86, 270.432) -physics_material_override = SubResource( 10 ) +physics_material_override = SubResource("10") -[node name="Enemy10" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy10" parent="Enemies" instance=ExtResource("7")] position = Vector2(1773.1, 678.095) -physics_material_override = SubResource( 11 ) +physics_material_override = SubResource("11") -[node name="Enemy11" parent="Enemies" instance=ExtResource( 7 )] +[node name="Enemy11" parent="Enemies" instance=ExtResource("7")] position = Vector2(1203.31, 407.557) -physics_material_override = SubResource( 12 ) +physics_material_override = SubResource("12") -[node name="ParallaxBg" parent="." instance=ExtResource( 8 )] +[node name="ParallaxBg" parent="." instance=ExtResource("8")] [node name="Label" type="Label" parent="."] offset_left = 12.0 @@ -266,9 +262,14 @@ offset_right = 358.0 offset_bottom = -10.0 size_flags_horizontal = 2 size_flags_vertical = 0 -text = "This is a simple demo on how to make a platformer game with Godot.\"This version uses physics and the 2D physics engine for motion and collision.\"\"The demo also shows the benefits of using the scene system, where coins,\"enemies and the player are edited separatedly and instanced in the stage.\"\"To edit the base tiles for the tileset, open the tileset_edit.tscn file and follow \"instructions.\"" -autowrap = true +text = "This is a simple demo on how to make a platformer game with Godot. +This version uses physics and the 2D physics engine for motion and collision. +The demo also shows the benefits of using the scene system, where coins, +enemies and the player are edited separatedly and instanced in the stage. + +To edit the base tiles for the tileset, open the tileset_edit.tscn file and follow +instructions." [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 9 ) +stream = ExtResource("9") autoplay = true diff --git a/2d/physics_platformer/audio/music.ogg.import b/2d/physics_platformer/audio/music.ogg.import index bda0194b8d5..a80b8e4c80c 100644 --- a/2d/physics_platformer/audio/music.ogg.import +++ b/2d/physics_platformer/audio/music.ogg.import @@ -1,15 +1,19 @@ [remap] -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.godot/imported/music.ogg-552a37c4bfe46d894cb8004cf1c345ad.oggstr" +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://gunv00cij80t" +path="res://.godot/imported/music.ogg-552a37c4bfe46d894cb8004cf1c345ad.oggvorbisstr" [deps] source_file="res://audio/music.ogg" -dest_files=["res://.godot/imported/music.ogg-552a37c4bfe46d894cb8004cf1c345ad.oggstr"] +dest_files=["res://.godot/imported/music.ogg-552a37c4bfe46d894cb8004cf1c345ad.oggvorbisstr"] [params] loop=true loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/2d/physics_platformer/audio/sound_coin.wav.import b/2d/physics_platformer/audio/sound_coin.wav.import index 06feb8c16e0..2e7f2279084 100644 --- a/2d/physics_platformer/audio/sound_coin.wav.import +++ b/2d/physics_platformer/audio/sound_coin.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://cy7lxrapbqu1r" path="res://.godot/imported/sound_coin.wav-e18cceeba8b7dc02bbb940b85bcad99a.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/physics_platformer/audio/sound_explode.wav.import b/2d/physics_platformer/audio/sound_explode.wav.import index 1316e9856f8..750fe3c45b4 100644 --- a/2d/physics_platformer/audio/sound_explode.wav.import +++ b/2d/physics_platformer/audio/sound_explode.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://bulmr2lpb7y4h" path="res://.godot/imported/sound_explode.wav-536668d880bfb277b9e5253774598e9e.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/physics_platformer/audio/sound_hit.wav.import b/2d/physics_platformer/audio/sound_hit.wav.import index 4c98cc2dca6..38059b08a92 100644 --- a/2d/physics_platformer/audio/sound_hit.wav.import +++ b/2d/physics_platformer/audio/sound_hit.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://cfssio7r2t7wq" path="res://.godot/imported/sound_hit.wav-6c98c4eeb2c6ac3fc45dc4a7ebd8602f.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/physics_platformer/audio/sound_jump.wav.import b/2d/physics_platformer/audio/sound_jump.wav.import index 6b3f880e95b..f11efeb1af6 100644 --- a/2d/physics_platformer/audio/sound_jump.wav.import +++ b/2d/physics_platformer/audio/sound_jump.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://bpyko2i13mj0v" path="res://.godot/imported/sound_jump.wav-7e05b84e4426c7461dd15838765e210b.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/physics_platformer/audio/sound_shoot.wav.import b/2d/physics_platformer/audio/sound_shoot.wav.import index bf7c81361db..29230187298 100644 --- a/2d/physics_platformer/audio/sound_shoot.wav.import +++ b/2d/physics_platformer/audio/sound_shoot.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://gw2a4ii0oby2" path="res://.godot/imported/sound_shoot.wav-a37772efd1dbcd76c4fe35742f502bb7.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/physics_platformer/background/plank.png.import b/2d/physics_platformer/background/plank.png.import index d8549b0127a..4bf28b1da16 100644 --- a/2d/physics_platformer/background/plank.png.import +++ b/2d/physics_platformer/background/plank.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/plank.png-d70731fc82f225d8353819786c2ed28a.stex" +type="CompressedTexture2D" +uid="uid://c3w6uvr4jjkwa" +path="res://.godot/imported/plank.png-d70731fc82f225d8353819786c2ed28a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/plank.png" -dest_files=["res://.godot/imported/plank.png-d70731fc82f225d8353819786c2ed28a.stex"] +dest_files=["res://.godot/imported/plank.png-d70731fc82f225d8353819786c2ed28a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/background/plankpin.png.import b/2d/physics_platformer/background/plankpin.png.import index 6e30d67c45f..e7a8ba3978f 100644 --- a/2d/physics_platformer/background/plankpin.png.import +++ b/2d/physics_platformer/background/plankpin.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/plankpin.png-68d06cc4b9ab95f9d0142d1a4c768140.stex" +type="CompressedTexture2D" +uid="uid://ci8y3ieuf3ltc" +path="res://.godot/imported/plankpin.png-68d06cc4b9ab95f9d0142d1a4c768140.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/plankpin.png" -dest_files=["res://.godot/imported/plankpin.png-68d06cc4b9ab95f9d0142d1a4c768140.stex"] +dest_files=["res://.godot/imported/plankpin.png-68d06cc4b9ab95f9d0142d1a4c768140.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/background/scroll_bg_cloud_1.png.import b/2d/physics_platformer/background/scroll_bg_cloud_1.png.import index 7692aef9fca..e9ca1367906 100644 --- a/2d/physics_platformer/background/scroll_bg_cloud_1.png.import +++ b/2d/physics_platformer/background/scroll_bg_cloud_1.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/scroll_bg_cloud_1.png-19f55c25a7e1985c92542faa0106888e.stex" +type="CompressedTexture2D" +uid="uid://udnu8aekj8mh" +path="res://.godot/imported/scroll_bg_cloud_1.png-19f55c25a7e1985c92542faa0106888e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/scroll_bg_cloud_1.png" -dest_files=["res://.godot/imported/scroll_bg_cloud_1.png-19f55c25a7e1985c92542faa0106888e.stex"] +dest_files=["res://.godot/imported/scroll_bg_cloud_1.png-19f55c25a7e1985c92542faa0106888e.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/background/scroll_bg_cloud_2.png.import b/2d/physics_platformer/background/scroll_bg_cloud_2.png.import index 81af30e34ea..c95a14c4722 100644 --- a/2d/physics_platformer/background/scroll_bg_cloud_2.png.import +++ b/2d/physics_platformer/background/scroll_bg_cloud_2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/scroll_bg_cloud_2.png-869806dcc546591f3d754e3b845c61c9.stex" +type="CompressedTexture2D" +uid="uid://crkm8guj5obto" +path="res://.godot/imported/scroll_bg_cloud_2.png-869806dcc546591f3d754e3b845c61c9.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/scroll_bg_cloud_2.png" -dest_files=["res://.godot/imported/scroll_bg_cloud_2.png-869806dcc546591f3d754e3b845c61c9.stex"] +dest_files=["res://.godot/imported/scroll_bg_cloud_2.png-869806dcc546591f3d754e3b845c61c9.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/background/scroll_bg_cloud_3.png.import b/2d/physics_platformer/background/scroll_bg_cloud_3.png.import index 90ec60620a6..93c4431b7fa 100644 --- a/2d/physics_platformer/background/scroll_bg_cloud_3.png.import +++ b/2d/physics_platformer/background/scroll_bg_cloud_3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/scroll_bg_cloud_3.png-831c6ed9fa8b4070081428a936bcc2f7.stex" +type="CompressedTexture2D" +uid="uid://bb8syr2l4kbwp" +path="res://.godot/imported/scroll_bg_cloud_3.png-831c6ed9fa8b4070081428a936bcc2f7.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/scroll_bg_cloud_3.png" -dest_files=["res://.godot/imported/scroll_bg_cloud_3.png-831c6ed9fa8b4070081428a936bcc2f7.stex"] +dest_files=["res://.godot/imported/scroll_bg_cloud_3.png-831c6ed9fa8b4070081428a936bcc2f7.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/background/scroll_bg_fg_1.png.import b/2d/physics_platformer/background/scroll_bg_fg_1.png.import index ff5d51415da..c1fc29b70ec 100644 --- a/2d/physics_platformer/background/scroll_bg_fg_1.png.import +++ b/2d/physics_platformer/background/scroll_bg_fg_1.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/scroll_bg_fg_1.png-20c90ebded5095c6863cdf6b1b82882d.stex" +type="CompressedTexture2D" +uid="uid://bdhblhpgjebrc" +path="res://.godot/imported/scroll_bg_fg_1.png-20c90ebded5095c6863cdf6b1b82882d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/scroll_bg_fg_1.png" -dest_files=["res://.godot/imported/scroll_bg_fg_1.png-20c90ebded5095c6863cdf6b1b82882d.stex"] +dest_files=["res://.godot/imported/scroll_bg_fg_1.png-20c90ebded5095c6863cdf6b1b82882d.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/background/scroll_bg_fg_2.png.import b/2d/physics_platformer/background/scroll_bg_fg_2.png.import index d1993ed93da..10eb96f5eeb 100644 --- a/2d/physics_platformer/background/scroll_bg_fg_2.png.import +++ b/2d/physics_platformer/background/scroll_bg_fg_2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/scroll_bg_fg_2.png-2b54decd69e8aff2caa33640a336d1e9.stex" +type="CompressedTexture2D" +uid="uid://bitu0xunnhbjf" +path="res://.godot/imported/scroll_bg_fg_2.png-2b54decd69e8aff2caa33640a336d1e9.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/scroll_bg_fg_2.png" -dest_files=["res://.godot/imported/scroll_bg_fg_2.png-2b54decd69e8aff2caa33640a336d1e9.stex"] +dest_files=["res://.godot/imported/scroll_bg_fg_2.png-2b54decd69e8aff2caa33640a336d1e9.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/background/scroll_bg_sky.png.import b/2d/physics_platformer/background/scroll_bg_sky.png.import index ba380af1eee..5e8aab39e70 100644 --- a/2d/physics_platformer/background/scroll_bg_sky.png.import +++ b/2d/physics_platformer/background/scroll_bg_sky.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/scroll_bg_sky.png-377ea542199b2e23d7a822ed940ea99e.stex" +type="CompressedTexture2D" +uid="uid://obtbrlptthky" +path="res://.godot/imported/scroll_bg_sky.png-377ea542199b2e23d7a822ed940ea99e.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://background/scroll_bg_sky.png" -dest_files=["res://.godot/imported/scroll_bg_sky.png-377ea542199b2e23d7a822ed940ea99e.stex"] +dest_files=["res://.godot/imported/scroll_bg_sky.png-377ea542199b2e23d7a822ed940ea99e.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/coin/coin.png.import b/2d/physics_platformer/coin/coin.png.import index 0996507041c..45977d0a860 100644 --- a/2d/physics_platformer/coin/coin.png.import +++ b/2d/physics_platformer/coin/coin.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/coin.png-c9e5c2f51b2a10beb2d794afbbee004f.stex" +type="CompressedTexture2D" +uid="uid://bio1crwbvrmc2" +path="res://.godot/imported/coin.png-c9e5c2f51b2a10beb2d794afbbee004f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://coin/coin.png" -dest_files=["res://.godot/imported/coin.png-c9e5c2f51b2a10beb2d794afbbee004f.stex"] +dest_files=["res://.godot/imported/coin.png-c9e5c2f51b2a10beb2d794afbbee004f.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/enemy/enemy.gd b/2d/physics_platformer/enemy/enemy.gd index 24749398c5c..7b6d3086b06 100644 --- a/2d/physics_platformer/enemy/enemy.gd +++ b/2d/physics_platformer/enemy/enemy.gd @@ -1,5 +1,5 @@ class_name Enemy -extends RigidDynamicBody2D +extends RigidBody2D const WALK_SPEED = 50 @@ -74,12 +74,12 @@ func _pre_explode(): $Shape3.queue_free() # Stay there - mode = MODE_STATIC + #mode = MODE_STATIC ($SoundExplode as AudioStreamPlayer2D).play() func _bullet_collider(cc, s, dp): - mode = MODE_RIGID + #mode = MODE_RIGID state = State.DYING s.set_angular_velocity(sign(dp.x) * 33.0) diff --git a/2d/physics_platformer/enemy/enemy.png.import b/2d/physics_platformer/enemy/enemy.png.import index 77359bd86b0..438ebb7218c 100644 --- a/2d/physics_platformer/enemy/enemy.png.import +++ b/2d/physics_platformer/enemy/enemy.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/enemy.png-1891d9038eeed672a2459bc4e7db5910.stex" +type="CompressedTexture2D" +uid="uid://crrmmbu8k46tl" +path="res://.godot/imported/enemy.png-1891d9038eeed672a2459bc4e7db5910.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://enemy/enemy.png" -dest_files=["res://.godot/imported/enemy.png-1891d9038eeed672a2459bc4e7db5910.stex"] +dest_files=["res://.godot/imported/enemy.png-1891d9038eeed672a2459bc4e7db5910.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/icon.png.import b/2d/physics_platformer/icon.png.import index 889af9df580..2d1827c60aa 100644 --- a/2d/physics_platformer/icon.png.import +++ b/2d/physics_platformer/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://dv2hr3igi3roi" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/platform/moving_platform.gd b/2d/physics_platformer/platform/moving_platform.gd index 8e0a8ce0375..13b5c4fec22 100644 --- a/2d/physics_platformer/platform/moving_platform.gd +++ b/2d/physics_platformer/platform/moving_platform.gd @@ -14,4 +14,4 @@ func _physics_process(delta): var xf = Transform2D() xf[2]= motion * d - ($Platform as RigidDynamicBody2D).transform = xf + ($Platform as RigidBody2D).transform = xf diff --git a/2d/physics_platformer/platform/moving_platform.png.import b/2d/physics_platformer/platform/moving_platform.png.import index 7f09c289ad4..42567fbe22e 100644 --- a/2d/physics_platformer/platform/moving_platform.png.import +++ b/2d/physics_platformer/platform/moving_platform.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/moving_platform.png-7e92061cd93e8b0235df711d3782cd8c.stex" +type="CompressedTexture2D" +uid="uid://cde7btbdorp8f" +path="res://.godot/imported/moving_platform.png-7e92061cd93e8b0235df711d3782cd8c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://platform/moving_platform.png" -dest_files=["res://.godot/imported/moving_platform.png-7e92061cd93e8b0235df711d3782cd8c.stex"] +dest_files=["res://.godot/imported/moving_platform.png-7e92061cd93e8b0235df711d3782cd8c.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/platform/one_way_platform.png.import b/2d/physics_platformer/platform/one_way_platform.png.import index fbe73ab6d91..74e05f3374e 100644 --- a/2d/physics_platformer/platform/one_way_platform.png.import +++ b/2d/physics_platformer/platform/one_way_platform.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/one_way_platform.png-2865772e209813c1636a14aee8d019a3.stex" +type="CompressedTexture2D" +uid="uid://c15sicsdamq2o" +path="res://.godot/imported/one_way_platform.png-2865772e209813c1636a14aee8d019a3.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://platform/one_way_platform.png" -dest_files=["res://.godot/imported/one_way_platform.png-2865772e209813c1636a14aee8d019a3.stex"] +dest_files=["res://.godot/imported/one_way_platform.png-2865772e209813c1636a14aee8d019a3.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/player/Player.tscn b/2d/physics_platformer/player/Player.tscn index 930762cb97c..28a8fd5b54b 100644 --- a/2d/physics_platformer/player/Player.tscn +++ b/2d/physics_platformer/player/Player.tscn @@ -1,31 +1,26 @@ -[gd_scene load_steps=23 format=2] +[gd_scene load_steps=20 format=3 uid="uid://bv85r3nk410cj"] -[ext_resource path="res://player/player.gd" type="Script" id=1] -[ext_resource path="res://player/robot_demo.png" type="Texture2D" id=2] -[ext_resource path="res://player/bullet.png" type="Texture2D" id=3] -[ext_resource path="res://player/osb_left.png" type="Texture2D" id=4] -[ext_resource path="res://player/osb_right.png" type="Texture2D" id=5] -[ext_resource path="res://player/osb_jump.png" type="Texture2D" id=6] -[ext_resource path="res://player/osb_fire.png" type="Texture2D" id=7] -[ext_resource path="res://audio/sound_shoot.wav" type="AudioStream" id=8] -[ext_resource path="res://audio/sound_jump.wav" type="AudioStream" id=9] +[ext_resource type="Script" path="res://player/player.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://u5mto8jq4nhu" path="res://player/robot_demo.png" id="2"] +[ext_resource type="Texture2D" uid="uid://7sv64orewgmb" path="res://player/bullet.png" id="3"] +[ext_resource type="AudioStream" uid="uid://gw2a4ii0oby2" path="res://audio/sound_shoot.wav" id="8"] +[ext_resource type="AudioStream" uid="uid://bpyko2i13mj0v" path="res://audio/sound_jump.wav" id="9"] -[sub_resource type="PhysicsMaterial" id=1] +[sub_resource type="PhysicsMaterial" id="1"] friction = 0.0 -[sub_resource type="Gradient" id=2] +[sub_resource type="Gradient" id="2"] colors = PackedColorArray(0.708353, 0.72498, 1, 1, 1, 1, 1, 0) -[sub_resource type="Animation" id=3] +[sub_resource type="Animation" id="3"] length = 0.01 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -33,16 +28,15 @@ tracks/0/keys = { "values": [22] } -[sub_resource type="Animation" id=4] +[sub_resource type="Animation" id="4"] length = 0.01 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -50,16 +44,15 @@ tracks/0/keys = { "values": [21] } -[sub_resource type="Animation" id=5] +[sub_resource type="Animation" id="5"] length = 0.5 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -67,16 +60,15 @@ tracks/0/keys = { "values": [26] } -[sub_resource type="Animation" id=6] +[sub_resource type="Animation" id="6"] length = 7.0 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), @@ -84,16 +76,15 @@ tracks/0/keys = { "values": [16, 17, 18, 16, 19, 20, 19, 16] } -[sub_resource type="Animation" id=7] +[sub_resource type="Animation" id="7"] length = 0.5 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -101,16 +92,15 @@ tracks/0/keys = { "values": [25] } -[sub_resource type="Animation" id=8] +[sub_resource type="Animation" id="8"] length = 0.5 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.25, 0.5), "transitions": PackedFloat32Array(1, 1, 1), @@ -118,16 +108,15 @@ tracks/0/keys = { "values": [23, 24, 23] } -[sub_resource type="Animation" id=9] +[sub_resource type="Animation" id="9"] length = 0.5 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), @@ -135,16 +124,15 @@ tracks/0/keys = { "values": [26] } -[sub_resource type="Animation" id=10] +[sub_resource type="Animation" id="10"] length = 1.25 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), @@ -152,16 +140,15 @@ tracks/0/keys = { "values": [0, 1, 2, 3, 4, 0] } -[sub_resource type="Animation" id=11] +[sub_resource type="Animation" id="11"] length = 1.25 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), @@ -169,16 +156,15 @@ tracks/0/keys = { "values": [5, 6, 7, 8, 9, 5] } -[sub_resource type="Animation" id=12] +[sub_resource type="Animation" id="12"] length = 1.25 -loop = true step = 0.25 tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), @@ -186,20 +172,32 @@ tracks/0/keys = { "values": [10, 11, 12, 13, 14, 5] } -[sub_resource type="RayShape2D" id=13] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_30623"] +_data = { +"crouch": SubResource("3"), +"falling": SubResource("4"), +"falling_weapon": SubResource("5"), +"idle": SubResource("6"), +"idle_weapon": SubResource("7"), +"jumping": SubResource("8"), +"jumping_weapon": SubResource("9"), +"run": SubResource("10"), +"run_weapon": SubResource("11"), +"standing_weapon_ready": SubResource("12") +} + +[sub_resource type="SeparationRayShape2D" id="13"] custom_solver_bias = 0.5 length = 18.0 -[node name="Player" type="RigidDynamicBody2D"] -mode = 2 +[node name="Player" type="RigidBody2D"] mass = 1.5 -physics_material_override = SubResource( 1 ) +physics_material_override = SubResource("1") custom_integrator = true -contacts_reported = 3 -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource( 2 ) +texture = ExtResource("2") hframes = 16 vframes = 2 @@ -211,40 +209,28 @@ emitting = false lifetime = 0.3 one_shot = true explosiveness = 1.0 -local_coords = false -texture = ExtResource( 3 ) +texture = ExtResource("3") spread = 65.84 gravity = Vector2(0, -15) -initial_velocity = 10.14 -angular_velocity = 200.0 -angular_velocity_random = 1.0 -linear_accel = 100.0 -color_ramp = SubResource( 2 ) +color_ramp = SubResource("2") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/crouch = SubResource( 3 ) -anims/falling = SubResource( 4 ) -anims/falling_weapon = SubResource( 5 ) -anims/idle = SubResource( 6 ) -anims/idle_weapon = SubResource( 7 ) -anims/jumping = SubResource( 8 ) -anims/jumping_weapon = SubResource( 9 ) -anims/run = SubResource( 10 ) -anims/run_weapon = SubResource( 11 ) -anims/standing_weapon_ready = SubResource( 12 ) +libraries = { +"": SubResource("AnimationLibrary_30623") +} -[node name="Camera3D" type="Camera2D" parent="."] +[node name="Camera2D" type="Camera2D" parent="."] current = true -zoom = Vector2(0.5, 0.5) +zoom = Vector2(2, 2) limit_left = 0 limit_top = 0 -[node name="BulletShoot" type="Position2D" parent="."] +[node name="BulletShoot" type="Marker2D" parent="."] position = Vector2(15, 2) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] position = Vector2(0.15, -6) -shape = SubResource( 13 ) +shape = SubResource("13") [node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] polygon = PackedVector2Array(-0.138, 8.25, -10, -12, 11, -12) @@ -255,7 +241,6 @@ layer = 0 [node name="Left" type="TouchScreenButton" parent="UI"] position = Vector2(27.7593, 360.87) scale = Vector2(1.49157, 1.46265) -normal = ExtResource( 4 ) passby_press = true action = "move_left" visibility_mode = 1 @@ -263,7 +248,6 @@ visibility_mode = 1 [node name="Right" type="TouchScreenButton" parent="UI"] position = Vector2(121.542, 361.415) scale = Vector2(1.49157, 1.46265) -normal = ExtResource( 5 ) passby_press = true action = "move_right" visibility_mode = 1 @@ -271,19 +255,17 @@ visibility_mode = 1 [node name="Jump" type="TouchScreenButton" parent="UI"] position = Vector2(666.224, 359.02) scale = Vector2(1.49157, 1.46265) -normal = ExtResource( 6 ) action = "jump" visibility_mode = 1 [node name="Fire" type="TouchScreenButton" parent="UI"] position = Vector2(668.073, 262.788) scale = Vector2(1.49157, 1.46265) -normal = ExtResource( 7 ) action = "shoot" visibility_mode = 1 [node name="SoundShoot" type="AudioStreamPlayer2D" parent="."] -stream = ExtResource( 8 ) +stream = ExtResource("8") [node name="SoundJump" type="AudioStreamPlayer2D" parent="."] -stream = ExtResource( 9 ) +stream = ExtResource("9") diff --git a/2d/physics_platformer/player/bullet.gd b/2d/physics_platformer/player/bullet.gd index 9b276dafd92..07e286bd7ad 100644 --- a/2d/physics_platformer/player/bullet.gd +++ b/2d/physics_platformer/player/bullet.gd @@ -1,5 +1,5 @@ class_name Bullet -extends RigidDynamicBody2D +extends RigidBody2D var disabled = false diff --git a/2d/physics_platformer/player/bullet.png.import b/2d/physics_platformer/player/bullet.png.import index c1903b57483..b5d1b5d85b0 100644 --- a/2d/physics_platformer/player/bullet.png.import +++ b/2d/physics_platformer/player/bullet.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/bullet.png-5615cb9904aab8db60fe6f48e996475f.stex" +type="CompressedTexture2D" +uid="uid://7sv64orewgmb" +path="res://.godot/imported/bullet.png-5615cb9904aab8db60fe6f48e996475f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/bullet.png" -dest_files=["res://.godot/imported/bullet.png-5615cb9904aab8db60fe6f48e996475f.stex"] +dest_files=["res://.godot/imported/bullet.png-5615cb9904aab8db60fe6f48e996475f.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/player/osb_fire.png.import b/2d/physics_platformer/player/osb_fire.png.import index eabd37eab3b..dc73a597d39 100644 --- a/2d/physics_platformer/player/osb_fire.png.import +++ b/2d/physics_platformer/player/osb_fire.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/osb_fire.png-67a49910acd764fd7c67429af0ad5cb8.stex" +type="CompressedTexture2D" +uid="uid://dfaohortmfvm7" +path="res://.godot/imported/osb_fire.png-67a49910acd764fd7c67429af0ad5cb8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/osb_fire.png" -dest_files=["res://.godot/imported/osb_fire.png-67a49910acd764fd7c67429af0ad5cb8.stex"] +dest_files=["res://.godot/imported/osb_fire.png-67a49910acd764fd7c67429af0ad5cb8.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/player/osb_jump.png.import b/2d/physics_platformer/player/osb_jump.png.import index 68050edde83..e640cb3aed4 100644 --- a/2d/physics_platformer/player/osb_jump.png.import +++ b/2d/physics_platformer/player/osb_jump.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/osb_jump.png-0d4d2b2d1a7d2c11e3e4fd800b8589ed.stex" +type="CompressedTexture2D" +uid="uid://c7ymjckh78mib" +path="res://.godot/imported/osb_jump.png-0d4d2b2d1a7d2c11e3e4fd800b8589ed.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/osb_jump.png" -dest_files=["res://.godot/imported/osb_jump.png-0d4d2b2d1a7d2c11e3e4fd800b8589ed.stex"] +dest_files=["res://.godot/imported/osb_jump.png-0d4d2b2d1a7d2c11e3e4fd800b8589ed.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/player/osb_left.png.import b/2d/physics_platformer/player/osb_left.png.import index 1aca496792c..541ac5122b0 100644 --- a/2d/physics_platformer/player/osb_left.png.import +++ b/2d/physics_platformer/player/osb_left.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/osb_left.png-95ec3a371455889d592aa8cae0a755bc.stex" +type="CompressedTexture2D" +uid="uid://dx42eijx3d7df" +path="res://.godot/imported/osb_left.png-95ec3a371455889d592aa8cae0a755bc.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/osb_left.png" -dest_files=["res://.godot/imported/osb_left.png-95ec3a371455889d592aa8cae0a755bc.stex"] +dest_files=["res://.godot/imported/osb_left.png-95ec3a371455889d592aa8cae0a755bc.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/player/osb_right.png.import b/2d/physics_platformer/player/osb_right.png.import index 8e4d012a157..781dcc0cfa4 100644 --- a/2d/physics_platformer/player/osb_right.png.import +++ b/2d/physics_platformer/player/osb_right.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/osb_right.png-db9bb4651315f3d42b87bd17a86cce76.stex" +type="CompressedTexture2D" +uid="uid://dykiknf7km7u4" +path="res://.godot/imported/osb_right.png-db9bb4651315f3d42b87bd17a86cce76.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/osb_right.png" -dest_files=["res://.godot/imported/osb_right.png-db9bb4651315f3d42b87bd17a86cce76.stex"] +dest_files=["res://.godot/imported/osb_right.png-db9bb4651315f3d42b87bd17a86cce76.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/player/player.gd b/2d/physics_platformer/player/player.gd index 14abc8b1a42..872d1165182 100644 --- a/2d/physics_platformer/player/player.gd +++ b/2d/physics_platformer/player/player.gd @@ -1,5 +1,5 @@ class_name Player -extends RigidDynamicBody2D +extends RigidBody2D # Character Demo, written by Juan Linietsky. # diff --git a/2d/physics_platformer/player/robot_demo.png.import b/2d/physics_platformer/player/robot_demo.png.import index 81acae59f6f..0419b9b142a 100644 --- a/2d/physics_platformer/player/robot_demo.png.import +++ b/2d/physics_platformer/player/robot_demo.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.stex" +type="CompressedTexture2D" +uid="uid://u5mto8jq4nhu" +path="res://.godot/imported/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/robot_demo.png" -dest_files=["res://.godot/imported/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.stex"] +dest_files=["res://.godot/imported/robot_demo.png-7165a8ae8f36b01883df6b585a93f592.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_platformer/project.godot b/2d/physics_platformer/project.godot index 0e330a16a29..a5d84956886 100644 --- a/2d/physics_platformer/project.godot +++ b/2d/physics_platformer/project.godot @@ -6,10 +6,10 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 _global_script_classes=[{ -"base": "RigidDynamicBody2D", +"base": "RigidBody2D", "class": &"Bullet", "language": &"GDScript", "path": "res://player/bullet.gd" @@ -19,7 +19,7 @@ _global_script_classes=[{ "language": &"GDScript", "path": "res://coin/coin.gd" }, { -"base": "RigidDynamicBody2D", +"base": "RigidBody2D", "class": &"Enemy", "language": &"GDScript", "path": "res://enemy/enemy.gd" @@ -29,7 +29,7 @@ _global_script_classes=[{ "language": &"GDScript", "path": "res://platform/moving_platform.gd" }, { -"base": "RigidDynamicBody2D", +"base": "RigidBody2D", "class": &"Player", "language": &"GDScript", "path": "res://player/player.gd" @@ -50,32 +50,24 @@ character controllers are more powerful than CharacterBody2D, but can be more difficult to handle, as they require manual modification of the RigidDynamicBody3D velocity." run/main_scene="res://Stage.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [debug] -gdscript/completion/autocomplete_setters_and_getters=true gdscript/warnings/unsafe_property_access=true gdscript/warnings/unsafe_method_access=true gdscript/warnings/unsafe_cast=true gdscript/warnings/unsafe_call_argument=true +gdscript/completion/autocomplete_setters_and_getters=true [display] -window/size/width=800 -window/size/height=480 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=800 +window/size/viewport_height=480 +window/stretch/mode="canvas_items" window/stretch/aspect="keep_height" -[gdnative] - -singletons=[] - -[image_loader] - -repeat=false - [importer_defaults] texture={ @@ -103,39 +95,39 @@ texture={ jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } shoot={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) ] } spawn={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777244,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777244,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } @@ -144,24 +136,9 @@ spawn={ 2d/default_gravity=900 -[rasterizer] - -use_pixel_snap=true - -[render] - -mipmap_policy=1 - [rendering] -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=0 -quality/intended_usage/framebuffer_allocation.mobile=1 -2d/snapping/use_gpu_pixel_snap=true -quality/filters/anisotropic_filter_level=2 -quality/filters/use_nearest_mipmap_filter=true -quality/depth/hdr=false -quality/2d/use_pixel_snap=true +textures/canvas_textures/default_texture_filter=0 [texture_import] diff --git a/2d/physics_platformer/tiles_demo.png.import b/2d/physics_platformer/tiles_demo.png.import index bb4ee2ddec0..29ac591daaf 100644 --- a/2d/physics_platformer/tiles_demo.png.import +++ b/2d/physics_platformer/tiles_demo.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/tiles_demo.png-7ca5c7c5c02ab8abe0d585a6a8f086bd.stex" +type="CompressedTexture2D" +uid="uid://dbcdt0wqr3gd3" +path="res://.godot/imported/tiles_demo.png-7ca5c7c5c02ab8abe0d585a6a8f086bd.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://tiles_demo.png" -dest_files=["res://.godot/imported/tiles_demo.png-7ca5c7c5c02ab8abe0d585a6a8f086bd.stex"] +dest_files=["res://.godot/imported/tiles_demo.png-7ca5c7c5c02ab8abe0d585a6a8f086bd.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/physics_tests/assets/texture/godot-head.png.import b/2d/physics_tests/assets/texture/godot-head.png.import index 88082bde594..295126dc938 100644 --- a/2d/physics_tests/assets/texture/godot-head.png.import +++ b/2d/physics_tests/assets/texture/godot-head.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/physics_tests/assets/tileset/tiles_demo.png.import b/2d/physics_tests/assets/tileset/tiles_demo.png.import index 2aa023875ae..91103831036 100644 --- a/2d/physics_tests/assets/tileset/tiles_demo.png.import +++ b/2d/physics_tests/assets/tileset/tiles_demo.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/physics_tests/icon.png.import b/2d/physics_tests/icon.png.import index 17462ff7ce7..400067248d5 100644 --- a/2d/physics_tests/icon.png.import +++ b/2d/physics_tests/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/physics_tests/main.tscn b/2d/physics_tests/main.tscn index 986a41a0b25..5093db34e89 100644 --- a/2d/physics_tests/main.tscn +++ b/2d/physics_tests/main.tscn @@ -14,116 +14,116 @@ bg_color = Color(0, 0, 0, 0.176471) [node name="Main" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 mouse_filter = 2 -script = ExtResource( "12" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("12") [node name="TestsMenu" type="MenuButton" parent="."] +layout_mode = 0 offset_left = 10.0 offset_top = 10.0 offset_right = 125.0 offset_bottom = 30.0 text = "TESTS" flat = false -script = ExtResource( "4" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("4") [node name="LabelControls" type="Label" parent="."] +layout_mode = 0 offset_left = 157.0 offset_top = 13.0 offset_right = 646.0 offset_bottom = 27.0 text = "P - TOGGLE PAUSE / R - RESTART / C - TOGGLE COLLISION / F - TOGGLE FULL SCREEN / ESC - QUIT" -__meta__ = { -"_edit_use_anchors_": false -} [node name="LabelFPS" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -19.0 offset_right = 50.0 offset_bottom = -5.0 +grow_vertical = 0 text = "FPS: 0" -script = ExtResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("1") [node name="LabelEngine" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -39.0 offset_right = 50.0 offset_bottom = -25.0 +grow_vertical = 0 text = "Physics engine:" -script = ExtResource( "3" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("3") [node name="LabelVersion" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -59.0 offset_right = 50.0 offset_bottom = -45.0 +grow_vertical = 0 text = "Godot Version:" -script = ExtResource( "2" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("2") [node name="LabelTest" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -79.0 offset_right = 50.0 offset_bottom = -65.0 +grow_vertical = 0 text = "Test:" -script = ExtResource( "5" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("5") [node name="LabelPause" type="Label" parent="."] +modulate = Color(1, 1, 0, 1) +layout_mode = 1 +anchors_preset = 5 anchor_left = 0.5 -anchor_top = 1.0 anchor_right = 0.5 -anchor_bottom = 1.0 -offset_left = -20.0 -offset_top = -40.9695 -offset_right = 31.0 -offset_bottom = -26.9695 +offset_left = -62.0 +offset_top = 48.0 +offset_right = 62.0 +offset_bottom = 96.0 +grow_horizontal = 2 +theme_override_font_sizes/font_size = 32 text = "PAUSED" -script = ExtResource( "6" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("6") [node name="PanelLog" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -428.0 -offset_top = -125.0 -theme_override_styles/panel = SubResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +offset_left = -630.0 +offset_top = -251.0 +grow_horizontal = 0 +grow_vertical = 0 +theme_override_styles/panel = SubResource("1") [node name="ButtonClear" type="Button" parent="PanelLog"] +layout_mode = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 @@ -132,55 +132,47 @@ offset_left = -48.0 offset_top = -25.0 offset_right = -5.0 offset_bottom = -5.0 +grow_horizontal = 0 +grow_vertical = 0 focus_mode = 0 -text = "clear" -__meta__ = { -"_edit_use_anchors_": false -} +text = "Clear" -[node name="CheckBoxScroll" type="CheckBox" parent="PanelLog"] +[node name="CheckBoxScroll" type="CheckButton" parent="PanelLog"] +layout_mode = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -150.0 -offset_top = -27.0 -offset_right = -54.0 -offset_bottom = -3.0 +offset_left = -261.0 +offset_top = -35.0 +offset_right = -62.0 +offset_bottom = -4.0 +grow_horizontal = 0 +grow_vertical = 0 focus_mode = 0 -text = "auto-scroll" -__meta__ = { -"_edit_use_anchors_": false -} +text = "Automatic Scrolling" [node name="ScrollLog" type="ScrollContainer" parent="PanelLog"] +layout_mode = 0 offset_left = 10.0 offset_top = 5.0 -offset_right = 418.0 -offset_bottom = 94.0 -script = ExtResource( "11" ) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 619.0 +offset_bottom = 210.0 +script = ExtResource("11") auto_scroll = true [node name="VBoxLog" type="VBoxContainer" parent="PanelLog/ScrollLog"] -offset_right = 408.0 -offset_bottom = 89.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 alignment = 2 -script = ExtResource( "10" ) +script = ExtResource("10") [node name="LabelLog" type="Label" parent="PanelLog/ScrollLog/VBoxLog"] -offset_top = 63.0 -offset_right = 408.0 -offset_bottom = 89.0 +layout_mode = 2 text = "Log start" max_lines_visible = 5 -__meta__ = { -"_edit_use_anchors_": false -} [connection signal="pressed" from="PanelLog/ButtonClear" to="PanelLog/ScrollLog/VBoxLog" method="clear"] -[connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="set_auto_scroll"] +[connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="_on_check_box_scroll_toggled"] diff --git a/2d/physics_tests/project.godot b/2d/physics_tests/project.godot index 16e33433c18..08ebab07ba8 100644 --- a/2d/physics_tests/project.godot +++ b/2d/physics_tests/project.godot @@ -34,18 +34,14 @@ _global_script_class_icons={ config/name="2D Physics Tests" run/main_scene="res://main.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [autoload] Log="*res://utils/system_log.gd" System="*res://utils/system.gd" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] window/stretch/mode="canvas_items" @@ -71,56 +67,48 @@ ui_down={ } toggle_full_screen={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } exit={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_debug_collision={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } restart_test={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_pause={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } character_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } character_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } character_jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } [memory] limits/message_queue/max_size_kb=10240 - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.184314, 0.184314, 0.184314, 1) -quality/filters/msaa=2 diff --git a/2d/physics_tests/test.gd b/2d/physics_tests/test.gd index 715b526f682..2c58081e88b 100644 --- a/2d/physics_tests/test.gd +++ b/2d/physics_tests/test.gd @@ -73,7 +73,7 @@ func create_rigidbody(shape, pickable = false, shape_transform = Transform2D.IDE collision.shape = shape collision.transform = shape_transform - var body = RigidDynamicBody2D.new() + var body = RigidBody2D.new() body.add_child(collision) if pickable: @@ -100,7 +100,7 @@ func create_rigidbody_box(size, pickable = false, use_icon = false, shape_transf func find_node(node_name): - var nodes = find_nodes(node_name) + var nodes = find_children(node_name) if nodes.size() > 0: return nodes[0] return null @@ -111,7 +111,7 @@ func start_timer(timeout): _timer = Timer.new() _timer.one_shot = true add_child(_timer) - _timer.connect("timeout", Callable(self, "_on_timer_done")) + _timer.timeout.connect(self._on_timer_done) else: cancel_timer() diff --git a/2d/physics_tests/tests/functional/test_character.gd b/2d/physics_tests/tests/functional/test_character.gd index 1fda3905b56..2e6c7551220 100644 --- a/2d/physics_tests/tests/functional/test_character.gd +++ b/2d/physics_tests/tests/functional/test_character.gd @@ -44,31 +44,31 @@ var _moving_body : PhysicsBody2D = null func _ready(): - options.connect(&"option_selected", Callable(self, "_on_option_selected")) - options.connect(&"option_changed", Callable(self, "_on_option_changed")) + options.option_selected.connect(self._on_option_selected) + options.option_changed.connect(self._on_option_changed) - _character_body_template = find_node("CharacterBody2D") + _character_body_template = find_child("CharacterBody2D") if _character_body_template: _body_parent = _character_body_template.get_parent() _body_parent.remove_child(_character_body_template) var enabled = _body_type == E_BodyType.CHARACTER_BODY options.add_menu_item(OPTION_OBJECT_TYPE_CHARACTER, true, enabled, true) - _character_body_ray_template = find_node("CharacterBodyRay2D") + _character_body_ray_template = find_child("CharacterBodyRay2D") if _character_body_ray_template: _body_parent = _character_body_ray_template.get_parent() _body_parent.remove_child(_character_body_ray_template) var enabled = _body_type == E_BodyType.CHARACTER_BODY_RAY options.add_menu_item(OPTION_OBJECT_TYPE_CHARACTER_RAY, true, enabled, true) - _rigid_body_template = find_node("RigidDynamicBody2D") + _rigid_body_template = find_child("RigidBody2D") if _rigid_body_template: _body_parent = _rigid_body_template.get_parent() _body_parent.remove_child(_rigid_body_template) var enabled = _body_type == E_BodyType.RIGID_BODY options.add_menu_item(OPTION_OBJECT_TYPE_RIGID_BODY, true, enabled, true) - _rigid_body_ray_template = find_node("RigidBodyRay2D") + _rigid_body_ray_template = find_child("RigidBodyRay2D") if _rigid_body_ray_template: _body_parent = _rigid_body_ray_template.get_parent() _body_parent.remove_child(_rigid_body_ray_template) @@ -80,7 +80,7 @@ func _ready(): options.add_menu_item(OPTION_MOVE_CHARACTER_FLOOR_ONLY, true, _use_floor_only) options.add_menu_item(OPTION_MOVE_CHARACTER_CONSTANT_SPEED, true, _use_constant_speed) - var floor_slider = find_node("FloorMaxAngle") + var floor_slider = find_child("FloorMaxAngle") if floor_slider: floor_slider.get_node("HSlider").value = _floor_max_angle diff --git a/2d/physics_tests/tests/functional/test_character_slopes.tscn b/2d/physics_tests/tests/functional/test_character_slopes.tscn index 8775a680bff..2a5d1f5ceff 100644 --- a/2d/physics_tests/tests/functional/test_character_slopes.tscn +++ b/2d/physics_tests/tests/functional/test_character_slopes.tscn @@ -32,7 +32,7 @@ radius = 32.0 length = 64.0 [node name="Test" type="Node2D"] -script = ExtResource( "1" ) +script = ExtResource("1") _snap_distance = 32.0 _floor_max_angle = 60.0 @@ -42,11 +42,8 @@ offset_top = 79.0 offset_right = 145.0 offset_bottom = 93.0 text = "Testing: " -__meta__ = { -"_edit_use_anchors_": false -} -[node name="Options" parent="." instance=ExtResource( "3" )] +[node name="Options" parent="." instance=ExtResource("3")] [node name="LabelFloor" type="Label" parent="."] offset_left = 14.0 @@ -54,9 +51,6 @@ offset_top = 237.929 offset_right = 145.0 offset_bottom = 251.929 text = "ON FLOOR" -__meta__ = { -"_edit_use_anchors_": false -} [node name="LabelControls" type="Label" parent="."] offset_left = 14.0 @@ -65,9 +59,6 @@ offset_right = 145.0 offset_bottom = 294.291 text = "LEFT/RIGHT - MOVE UP - JUMP" -__meta__ = { -"_edit_use_anchors_": false -} [node name="FloorMaxAngle" type="HBoxContainer" parent="."] offset_left = 14.0 @@ -76,83 +67,80 @@ offset_right = 476.0 offset_bottom = 186.0 theme_override_constants/separation = 20 alignment = 2 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Label" type="Label" parent="FloorMaxAngle"] -offset_right = 122.0 +layout_mode = 2 +offset_right = 123.0 offset_bottom = 26.0 text = "Floor Max angle" [node name="HSlider" type="HSlider" parent="FloorMaxAngle"] -offset_left = 142.0 -offset_right = 342.0 +layout_mode = 2 +offset_left = 143.0 +offset_right = 419.0 offset_bottom = 16.0 -rect_min_size = Vector2(200, 0) +size_flags_horizontal = 3 max_value = 180.0 -script = ExtResource( "3_cd5g0" ) +script = ExtResource("3_cd5g0") snap_step = 5.0 [node name="LabelValue" type="Label" parent="FloorMaxAngle"] -offset_left = 362.0 +layout_mode = 2 +offset_left = 439.0 offset_right = 462.0 offset_bottom = 26.0 -rect_min_size = Vector2(100, 0) text = "0.0" -script = ExtResource( "4_eoplu" ) +script = ExtResource("4_eoplu") [node name="CharacterBody2D" type="CharacterBody2D" parent="."] position = Vector2(100, 450) collision_mask = 2147483649 -script = ExtResource( "7" ) +script = ExtResource("7") [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBody2D"] -shape = SubResource( "3" ) +shape = SubResource("3") [node name="CharacterBodyRay2D" type="CharacterBody2D" parent="."] position = Vector2(100, 450) collision_mask = 2147483649 -script = ExtResource( "7" ) +script = ExtResource("7") [node name="CollisionShape2D" type="CollisionShape2D" parent="CharacterBodyRay2D"] position = Vector2(0, -16) -shape = SubResource( "CircleShape2D_llvur" ) +shape = SubResource("CircleShape2D_llvur") [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="CharacterBodyRay2D"] position = Vector2(0, -16) -shape = SubResource( "RayShape2D_3lv1w" ) +shape = SubResource("RayShape2D_3lv1w") -[node name="RigidDynamicBody2D" type="RigidDynamicBody2D" parent="."] +[node name="RigidDynamicBody2D" type="RigidBody2D" parent="."] position = Vector2(100, 450) collision_mask = 2147483649 -physics_material_override = SubResource( "1" ) -contacts_reported = 4 +physics_material_override = SubResource("1") contact_monitor = true lock_rotation = true -script = ExtResource( "6" ) +script = ExtResource("6") [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidDynamicBody2D"] -shape = SubResource( "2" ) +shape = SubResource("2") -[node name="RigidBodyRay2D" type="RigidDynamicBody2D" parent="."] +[node name="RigidBodyRay2D" type="RigidBody2D" parent="."] position = Vector2(100, 450) collision_mask = 2147483649 -physics_material_override = SubResource( "1" ) -contacts_reported = 4 +physics_material_override = SubResource("1") contact_monitor = true lock_rotation = true -script = ExtResource( "6" ) +script = ExtResource("6") [node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBodyRay2D"] position = Vector2(-7.62939e-06, -16) -shape = SubResource( "CircleShape2D_dr08f" ) +shape = SubResource("CircleShape2D_dr08f") [node name="CollisionShapeRay2D" type="CollisionShape2D" parent="RigidBodyRay2D"] position = Vector2(-7.62939e-06, -16) -shape = SubResource( "RayShape2D_w83f0" ) +shape = SubResource("RayShape2D_w83f0") -[node name="StaticSceneFlat" parent="." instance=ExtResource( "4" )] +[node name="StaticSceneFlat" parent="." instance=ExtResource("4")] position = Vector2(0, 12) [node name="StaticBody2D" type="StaticBody2D" parent="."] diff --git a/2d/physics_tests/tests/functional/test_collision_pairs.gd b/2d/physics_tests/tests/functional/test_collision_pairs.gd index 470b8110aef..62f5d307a32 100644 --- a/2d/physics_tests/tests/functional/test_collision_pairs.gd +++ b/2d/physics_tests/tests/functional/test_collision_pairs.gd @@ -42,8 +42,8 @@ func _ready(): options.add_menu_item(OPTION_SHAPE_CONCAVE_POLYGON, true, true) options.add_menu_item(OPTION_SHAPE_CONCAVE_SEGMENTS, true, true) - options.connect(&"option_selected", Callable(self, "_on_option_selected")) - options.connect(&"option_changed", Callable(self, "_on_option_changed")) + options.option_selected.connect(self._on_option_selected) + options.option_changed.connect(self._on_option_changed) await start_timer(0.5).timeout if is_timer_canceled(): @@ -202,7 +202,7 @@ func _on_option_changed(option, checked): func _find_shape_node(type_name): - var node = $Shapes.find_node("RigidBody%s" % type_name) + var node = $Shapes.find_child("RigidBody%s" % type_name) if not node: Log.print_error("Invalid shape type: " + type_name) diff --git a/2d/physics_tests/tests/functional/test_one_way_collision.gd b/2d/physics_tests/tests/functional/test_one_way_collision.gd index 4a108759532..6b8f08c6691 100644 --- a/2d/physics_tests/tests/functional/test_one_way_collision.gd +++ b/2d/physics_tests/tests/functional/test_one_way_collision.gd @@ -81,17 +81,17 @@ func _ready(): options.add_menu_item(OPTION_TEST_CASE_MOVING_PLATFORM_RIGID) options.add_menu_item(OPTION_TEST_CASE_MOVING_PLATFORM_CHARACTER) - options.connect(&"option_selected", Callable(self, "_on_option_selected")) + options.option_selected.connect(self._on_option_selected) $Controls/PlatformSize/HSlider.value = _platform_size $Controls/PlatformAngle/HSlider.value = _platform_angle $Controls/BodyAngle/HSlider.value = _body_angle remove_child(_target_area) - _target_area.connect(&"body_entered", Callable(self, "_on_target_entered")) - $Timer.connect(&"timeout", Callable(self, "_on_timeout")) + _target_area.body_entered.connect(self._on_target_entered) + $Timer.timeout.connect(self._on_timeout) - _rigid_body_template = $RigidDynamicBody2D + _rigid_body_template = $RigidBody2D remove_child(_rigid_body_template) _character_body_template = $CharacterBody2D @@ -173,11 +173,11 @@ func _update_platform_angle(value, reset = true): _platform_angle = value if is_inside_tree(): if Engine.is_editor_hint(): - $OneWayStaticBody2D.rotation = deg2rad(value) + $OneWayStaticBody2D.rotation = deg_to_rad(value) else: if _platform_body: - _platform_body.rotation = deg2rad(value) - _platform_template.rotation = deg2rad(value) + _platform_body.rotation = deg_to_rad(value) + _platform_template.rotation = deg_to_rad(value) if reset: await _reset_test() @@ -190,13 +190,13 @@ func _update_rigidbody_angle(value, reset = true): _body_angle = value if is_inside_tree(): if Engine.is_editor_hint(): - $RigidDynamicBody2D.rotation = deg2rad(value) - $CharacterBody2D.rotation = deg2rad(value) + $RigidBody2D.rotation = deg_to_rad(value) + $CharacterBody2D.rotation = deg_to_rad(value) else: if _moving_body: - _moving_body.rotation = deg2rad(value) - _rigid_body_template.rotation = deg2rad(value) - _character_body_template.rotation = deg2rad(value) + _moving_body.rotation = deg_to_rad(value) + _rigid_body_template.rotation = deg_to_rad(value) + _character_body_template.rotation = deg_to_rad(value) if reset: await _reset_test() @@ -373,7 +373,7 @@ func _start_test(): test_label += String(_rigid_body_template.name) _moving_body = _rigid_body_template.duplicate() _moving_body.linear_velocity = _body_velocity - _moving_body.connect(&"body_entered", Callable(self, "_on_contact_detected")) + _moving_body.body_entered.connect(self._on_contact_detected) add_child(_moving_body) if _platform_speed != 0.0: @@ -414,7 +414,7 @@ func _reset_test(cancel_test = true): emit_signal("all_tests_done") else: Log.print_log("*** Start around the clock tests") - _platform_body.rotation = deg2rad(_platform_angle) + _platform_body.rotation = deg_to_rad(_platform_angle) _lock_controls = true $Controls/PlatformAngle/HSlider.value = _platform_angle _lock_controls = false @@ -429,9 +429,9 @@ func _next_test(force_start = false): _moving_body = null if _test_all_angles: - var angle = rad2deg(_platform_body.rotation) + var angle = rad_to_deg(_platform_body.rotation) if angle >= _platform_angle + TEST_ALL_ANGLES_MAX: - _platform_body.rotation = deg2rad(_platform_angle) + _platform_body.rotation = deg_to_rad(_platform_angle) _lock_controls = true $Controls/PlatformAngle/HSlider.value = _platform_angle _lock_controls = false @@ -439,7 +439,7 @@ func _next_test(force_start = false): Log.print_log("*** Done all angles") else: angle = _platform_angle + _test_step * TEST_ALL_ANGLES_STEP - _platform_body.rotation = deg2rad(angle) + _platform_body.rotation = deg_to_rad(angle) _lock_controls = true $Controls/PlatformAngle/HSlider.value = angle _lock_controls = false @@ -472,7 +472,7 @@ func _on_target_entered(_body): func _should_collide(): - var platform_rotation = round(rad2deg(_platform_body.rotation)) + var platform_rotation = round(rad_to_deg(_platform_body.rotation)) var angle = fposmod(platform_rotation, 360) return angle > 180 @@ -522,7 +522,7 @@ func _set_result(): $LabelResult.text = result - var platform_angle = rad2deg(_platform_body.rotation) + var platform_angle = rad_to_deg(_platform_body.rotation) result += ": size=%.1f, angle=%.1f, body angle=%.1f" % [_platform_size, platform_angle, _body_angle] Log.print_log("Test %s" % result) diff --git a/2d/physics_tests/tests/functional/test_raycasting.gd b/2d/physics_tests/tests/functional/test_raycasting.gd index 37e2790465a..9d67a1edf28 100644 --- a/2d/physics_tests/tests/functional/test_raycasting.gd +++ b/2d/physics_tests/tests/functional/test_raycasting.gd @@ -12,7 +12,7 @@ func _ready(): options.add_menu_item(OPTION_TEST_CASE_HIT_FROM_INSIDE, true, false) - options.connect(&"option_changed", Callable(self, "_on_option_changed")) + options.option_changed.connect(self._on_option_changed) await start_timer(0.5).timeout if is_timer_canceled(): diff --git a/2d/physics_tests/tests/performance/test_perf_contacts.gd b/2d/physics_tests/tests/performance/test_perf_contacts.gd index 776b0aa3a07..6e1210eb8c0 100644 --- a/2d/physics_tests/tests/performance/test_perf_contacts.gd +++ b/2d/physics_tests/tests/performance/test_perf_contacts.gd @@ -39,7 +39,7 @@ func _ready(): options.add_menu_item(OPTION_TYPE_CAPSULE) options.add_menu_item(OPTION_TYPE_CONVEX_POLYGON) options.add_menu_item(OPTION_TYPE_CONCAVE_POLYGON) - options.connect(&"option_selected", Callable(self, "_on_option_selected")) + options.option_selected.connect(self._on_option_selected) await _start_all_types() @@ -186,7 +186,7 @@ func _activate_objects(): var spawn_parent = get_node(spawn) for node_index in range(spawn_parent.get_child_count()): - var node = spawn_parent.get_child(node_index) as RigidDynamicBody2D + var node = spawn_parent.get_child(node_index) as RigidBody2D node.set_sleeping(false) diff --git a/2d/physics_tests/tests_menu.gd b/2d/physics_tests/tests_menu.gd index a428c25399e..a80564c88a8 100644 --- a/2d/physics_tests/tests_menu.gd +++ b/2d/physics_tests/tests_menu.gd @@ -13,7 +13,7 @@ var _current_test_scene : Node = null func _ready(): - connect(&"option_selected", Callable(self, "_on_option_selected")) + option_selected.connect(self._on_option_selected) func _process(_delta): diff --git a/2d/physics_tests/utils/characterbody_controller.gd b/2d/physics_tests/utils/characterbody_controller.gd index 60c3fd87a7e..899855a8e95 100644 --- a/2d/physics_tests/utils/characterbody_controller.gd +++ b/2d/physics_tests/utils/characterbody_controller.gd @@ -51,7 +51,7 @@ func _physics_process(_delta): floor_stop_on_slope = _stop_on_slope floor_block_on_wall = _move_on_floor_only floor_constant_speed = _constant_speed - floor_max_angle = deg2rad(_floor_max_angle) + floor_max_angle = deg_to_rad(_floor_max_angle) velocity = _velocity move_and_slide() _velocity = velocity diff --git a/2d/physics_tests/utils/container_log.gd b/2d/physics_tests/utils/container_log.gd index 329bd0dadf2..d92ad3baffd 100644 --- a/2d/physics_tests/utils/container_log.gd +++ b/2d/physics_tests/utils/container_log.gd @@ -7,7 +7,7 @@ var _entry_template func _enter_tree(): - Log.connect(&"entry_logged", Callable(self, "_on_log_entry")) + Log.entry_logged.connect(self._on_log_entry) _entry_template = get_child(0) as Label remove_child(_entry_template) diff --git a/2d/physics_tests/utils/label_engine.gd b/2d/physics_tests/utils/label_engine.gd index 65fd7035b95..07392adc61d 100644 --- a/2d/physics_tests/utils/label_engine.gd +++ b/2d/physics_tests/utils/label_engine.gd @@ -5,7 +5,7 @@ func _process(_delta): var engine_name = "" match System.get_physics_engine(): System.PhysicsEngine.GODOT_PHYSICS: - engine_name = "Godot Physics" + engine_name = "GodotPhysics 2D" System.PhysicsEngine.OTHER: var engine_setting = ProjectSettings.get_setting("physics/2d/physics_engine") engine_name = "Other (%s)" % engine_setting diff --git a/2d/physics_tests/utils/option_menu.gd b/2d/physics_tests/utils/option_menu.gd index 5f402fd3177..c760843ee67 100644 --- a/2d/physics_tests/utils/option_menu.gd +++ b/2d/physics_tests/utils/option_menu.gd @@ -47,7 +47,7 @@ func _add_popup(parent_popup, path, label): parent_popup.add_child(popup_menu) parent_popup.add_submenu_item(label, label) - popup_menu.connect(&"index_pressed", Callable(self, "_on_item_pressed"), [popup_menu, path]) + popup_menu.index_pressed.connect(_on_item_pressed.bind(popup_menu, path)) return popup_menu diff --git a/2d/physics_tests/utils/rigidbody_controller.gd b/2d/physics_tests/utils/rigidbody_controller.gd index 1616686cb76..32f6b2fcf7b 100644 --- a/2d/physics_tests/utils/rigidbody_controller.gd +++ b/2d/physics_tests/utils/rigidbody_controller.gd @@ -1,4 +1,4 @@ -extends RigidDynamicBody2D +extends RigidBody2D var _initial_velocity = Vector2.ZERO @@ -62,11 +62,11 @@ func _integrate_forces(state): var normal = state.get_contact_local_normal(i) # Detect floor. - if acos(normal.dot(Vector2.UP)) <= deg2rad(_floor_max_angle) + 0.01: + if acos(normal.dot(Vector2.UP)) <= deg_to_rad(_floor_max_angle) + 0.01: _on_floor = true # Detect ceiling. - if acos(normal.dot(-Vector2.UP)) <= deg2rad(_floor_max_angle) + 0.01: + if acos(normal.dot(-Vector2.UP)) <= deg_to_rad(_floor_max_angle) + 0.01: _jumping = false _velocity.y = 0.0 diff --git a/2d/physics_tests/utils/rigidbody_pick.gd b/2d/physics_tests/utils/rigidbody_pick.gd index 7d8b5820f1e..4ab93aa8453 100644 --- a/2d/physics_tests/utils/rigidbody_pick.gd +++ b/2d/physics_tests/utils/rigidbody_pick.gd @@ -1,4 +1,4 @@ -extends RigidDynamicBody2D +extends RigidBody2D var _picked = false diff --git a/2d/physics_tests/utils/scroll_log.gd b/2d/physics_tests/utils/scroll_log.gd index de75842159c..70972277bd0 100644 --- a/2d/physics_tests/utils/scroll_log.gd +++ b/2d/physics_tests/utils/scroll_log.gd @@ -6,7 +6,7 @@ extends ScrollContainer func _ready(): var scrollbar = get_v_scroll_bar() - scrollbar.connect(&"scrolling", Callable(self, "_on_scrolling")) + scrollbar.scrolling.connect(self._on_scrolling) func _process(_delta): @@ -17,4 +17,8 @@ func _process(_delta): func _on_scrolling(): auto_scroll = false - $"../CheckBoxScroll".pressed = false + $"../CheckBoxScroll".button_pressed = false + + +func _on_check_box_scroll_toggled(button_pressed): + auto_scroll = button_pressed diff --git a/2d/platformer/assets/art/background/cloud_1.png.import b/2d/platformer/assets/art/background/cloud_1.png.import index 995c0d05358..5893ddf860d 100644 --- a/2d/platformer/assets/art/background/cloud_1.png.import +++ b/2d/platformer/assets/art/background/cloud_1.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.stex" +type="CompressedTexture2D" +uid="uid://b4n7s65t0qoep" +path="res://.godot/imported/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/background/cloud_1.png" -dest_files=["res://.godot/imported/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.stex"] +dest_files=["res://.godot/imported/cloud_1.png-03c0ad8be397b731df0dd38fa3c87727.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/background/cloud_2.png.import b/2d/platformer/assets/art/background/cloud_2.png.import index 0349eebd419..421d8c1e705 100644 --- a/2d/platformer/assets/art/background/cloud_2.png.import +++ b/2d/platformer/assets/art/background/cloud_2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.stex" +type="CompressedTexture2D" +uid="uid://cubkvnu4fdwki" +path="res://.godot/imported/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/background/cloud_2.png" -dest_files=["res://.godot/imported/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.stex"] +dest_files=["res://.godot/imported/cloud_2.png-4ddf8c5bceca4aa07a8bc86d7d788e02.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/background/cloud_3.png.import b/2d/platformer/assets/art/background/cloud_3.png.import index ca7d215cc32..b5af3c62721 100644 --- a/2d/platformer/assets/art/background/cloud_3.png.import +++ b/2d/platformer/assets/art/background/cloud_3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.stex" +type="CompressedTexture2D" +uid="uid://5tho6j8r4eam" +path="res://.godot/imported/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/background/cloud_3.png" -dest_files=["res://.godot/imported/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.stex"] +dest_files=["res://.godot/imported/cloud_3.png-a1b7dc71aa84bea9cb4f78f585dcc65d.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/background/distant_platforms_1.png.import b/2d/platformer/assets/art/background/distant_platforms_1.png.import index 2512ddc2b21..d6c68a38645 100644 --- a/2d/platformer/assets/art/background/distant_platforms_1.png.import +++ b/2d/platformer/assets/art/background/distant_platforms_1.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.stex" +type="CompressedTexture2D" +uid="uid://smxp1wviat8" +path="res://.godot/imported/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/background/distant_platforms_1.png" -dest_files=["res://.godot/imported/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.stex"] +dest_files=["res://.godot/imported/distant_platforms_1.png-7286fe6c8587b96abbbe0bc4a8cbc510.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=1 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/background/distant_platforms_2.png.import b/2d/platformer/assets/art/background/distant_platforms_2.png.import index 138ff824e2a..5583686d536 100644 --- a/2d/platformer/assets/art/background/distant_platforms_2.png.import +++ b/2d/platformer/assets/art/background/distant_platforms_2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.stex" +type="CompressedTexture2D" +uid="uid://d003shl6ntver" +path="res://.godot/imported/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/background/distant_platforms_2.png" -dest_files=["res://.godot/imported/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.stex"] +dest_files=["res://.godot/imported/distant_platforms_2.png-ba010b30987da6d74062ce964ab450ef.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=1 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/background/sky.png.import b/2d/platformer/assets/art/background/sky.png.import index aff0127ea00..118364fe76c 100644 --- a/2d/platformer/assets/art/background/sky.png.import +++ b/2d/platformer/assets/art/background/sky.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/sky.png-c175b712c46edc17f2b5fc55b9de3c49.stex" +type="CompressedTexture2D" +uid="uid://cnxf4hsvrcgka" +path="res://.godot/imported/sky.png-c175b712c46edc17f2b5fc55b9de3c49.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/background/sky.png" -dest_files=["res://.godot/imported/sky.png-c175b712c46edc17f2b5fc55b9de3c49.stex"] +dest_files=["res://.godot/imported/sky.png-c175b712c46edc17f2b5fc55b9de3c49.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=1 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/coin/coin.png.import b/2d/platformer/assets/art/coin/coin.png.import index 2e112e903a7..2be6965ec68 100644 --- a/2d/platformer/assets/art/coin/coin.png.import +++ b/2d/platformer/assets/art/coin/coin.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/coin.png-87689993f83db6056500d4fa153313d8.stex" +type="CompressedTexture2D" +uid="uid://l42us5qso8v4" +path="res://.godot/imported/coin.png-87689993f83db6056500d4fa153313d8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/coin/coin.png" -dest_files=["res://.godot/imported/coin.png-87689993f83db6056500d4fa153313d8.stex"] +dest_files=["res://.godot/imported/coin.png-87689993f83db6056500d4fa153313d8.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/enemy/enemy.png.import b/2d/platformer/assets/art/enemy/enemy.png.import index 9ee0707a921..94f8895c8eb 100644 --- a/2d/platformer/assets/art/enemy/enemy.png.import +++ b/2d/platformer/assets/art/enemy/enemy.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/enemy.png-c2f48b2558d3b68a547452306041a310.stex" +type="CompressedTexture2D" +uid="uid://dq7svs8qmf7h6" +path="res://.godot/imported/enemy.png-c2f48b2558d3b68a547452306041a310.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/enemy/enemy.png" -dest_files=["res://.godot/imported/enemy.png-c2f48b2558d3b68a547452306041a310.stex"] +dest_files=["res://.godot/imported/enemy.png-c2f48b2558d3b68a547452306041a310.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/platforms/moving_platform.png.import b/2d/platformer/assets/art/platforms/moving_platform.png.import index 71dddf360c1..205452a1c34 100644 --- a/2d/platformer/assets/art/platforms/moving_platform.png.import +++ b/2d/platformer/assets/art/platforms/moving_platform.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex" +type="CompressedTexture2D" +uid="uid://8p65ui1ydnff" +path="res://.godot/imported/moving_platform.png-479aa8f802d1a4964b138893ada8d372.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/platforms/moving_platform.png" -dest_files=["res://.godot/imported/moving_platform.png-479aa8f802d1a4964b138893ada8d372.stex"] +dest_files=["res://.godot/imported/moving_platform.png-479aa8f802d1a4964b138893ada8d372.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/platforms/one_way_platform.png.import b/2d/platformer/assets/art/platforms/one_way_platform.png.import index e82591e8abd..fefc8591811 100644 --- a/2d/platformer/assets/art/platforms/one_way_platform.png.import +++ b/2d/platformer/assets/art/platforms/one_way_platform.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex" +type="CompressedTexture2D" +uid="uid://dpdd5ioofxcur" +path="res://.godot/imported/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/platforms/one_way_platform.png" -dest_files=["res://.godot/imported/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.stex"] +dest_files=["res://.godot/imported/one_way_platform.png-aaf0179c7171228f27cb489e99e339bd.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/player/bullet/bullet.png.import b/2d/platformer/assets/art/player/bullet/bullet.png.import index 0461b2043e3..afa1337edaf 100644 --- a/2d/platformer/assets/art/player/bullet/bullet.png.import +++ b/2d/platformer/assets/art/player/bullet/bullet.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/bullet.png-a148438922f3743d5615622ef8134c9f.stex" +type="CompressedTexture2D" +uid="uid://c2aisfmq85suf" +path="res://.godot/imported/bullet.png-a148438922f3743d5615622ef8134c9f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/player/bullet/bullet.png" -dest_files=["res://.godot/imported/bullet.png-a148438922f3743d5615622ef8134c9f.stex"] +dest_files=["res://.godot/imported/bullet.png-a148438922f3743d5615622ef8134c9f.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/player/robot_demo.png.import b/2d/platformer/assets/art/player/robot_demo.png.import index 58a9fe639e7..e86fae7eb25 100644 --- a/2d/platformer/assets/art/player/robot_demo.png.import +++ b/2d/platformer/assets/art/player/robot_demo.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.stex" +type="CompressedTexture2D" +uid="uid://go76jbr7e1px" +path="res://.godot/imported/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/player/robot_demo.png" -dest_files=["res://.godot/imported/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.stex"] +dest_files=["res://.godot/imported/robot_demo.png-cd7cbcf6d0c47d4a233ea7ce93b142c2.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/tileset/tiles_demo.png.import b/2d/platformer/assets/art/tileset/tiles_demo.png.import index de338f8b653..1e664a5dfd0 100644 --- a/2d/platformer/assets/art/tileset/tiles_demo.png.import +++ b/2d/platformer/assets/art/tileset/tiles_demo.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.stex" +type="CompressedTexture2D" +uid="uid://c1hixfwf86y2q" +path="res://.godot/imported/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/tileset/tiles_demo.png" -dest_files=["res://.godot/imported/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.stex"] +dest_files=["res://.godot/imported/tiles_demo.png-f720a7de2b60b01f690cfa3cb881996b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/ui/touch_button_fire.png.import b/2d/platformer/assets/art/ui/touch_button_fire.png.import index 4c4aff632ae..486fca1785f 100644 --- a/2d/platformer/assets/art/ui/touch_button_fire.png.import +++ b/2d/platformer/assets/art/ui/touch_button_fire.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex" +type="CompressedTexture2D" +uid="uid://dkvmtr3ieug3l" +path="res://.godot/imported/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/ui/touch_button_fire.png" -dest_files=["res://.godot/imported/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.stex"] +dest_files=["res://.godot/imported/touch_button_fire.png-8b72c42a8cb252207ce8948d4b623690.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/ui/touch_button_jump.png.import b/2d/platformer/assets/art/ui/touch_button_jump.png.import index 92fb5009c11..487c21fe07b 100644 --- a/2d/platformer/assets/art/ui/touch_button_jump.png.import +++ b/2d/platformer/assets/art/ui/touch_button_jump.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex" +type="CompressedTexture2D" +uid="uid://xbywv0ti1u0h" +path="res://.godot/imported/touch_button_jump.png-f72afeb370538aa951853dbc52052250.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/ui/touch_button_jump.png" -dest_files=["res://.godot/imported/touch_button_jump.png-f72afeb370538aa951853dbc52052250.stex"] +dest_files=["res://.godot/imported/touch_button_jump.png-f72afeb370538aa951853dbc52052250.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/ui/touch_button_left.png.import b/2d/platformer/assets/art/ui/touch_button_left.png.import index d4fa07a4aa3..421ef16241b 100644 --- a/2d/platformer/assets/art/ui/touch_button_left.png.import +++ b/2d/platformer/assets/art/ui/touch_button_left.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex" +type="CompressedTexture2D" +uid="uid://byv1xhmnegdap" +path="res://.godot/imported/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/ui/touch_button_left.png" -dest_files=["res://.godot/imported/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.stex"] +dest_files=["res://.godot/imported/touch_button_left.png-e48f16cfdaae98fdc92a21f20c157c53.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/art/ui/touch_button_right.png.import b/2d/platformer/assets/art/ui/touch_button_right.png.import index debca6e74e4..bf278221aea 100644 --- a/2d/platformer/assets/art/ui/touch_button_right.png.import +++ b/2d/platformer/assets/art/ui/touch_button_right.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex" +type="CompressedTexture2D" +uid="uid://byg0psif5h7ak" +path="res://.godot/imported/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/art/ui/touch_button_right.png" -dest_files=["res://.godot/imported/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.stex"] +dest_files=["res://.godot/imported/touch_button_right.png-74bf87a3a0fa663fbb3574844de31372.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/assets/audio/music/music.ogg.import b/2d/platformer/assets/audio/music/music.ogg.import index b353131ec19..88faf849807 100644 --- a/2d/platformer/assets/audio/music/music.ogg.import +++ b/2d/platformer/assets/audio/music/music.ogg.import @@ -1,15 +1,19 @@ [remap] -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.godot/imported/music.ogg-e27216112531ea490cdad574860a53a5.oggstr" +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://cx6hrmvjvhkt5" +path="res://.godot/imported/music.ogg-e27216112531ea490cdad574860a53a5.oggvorbisstr" [deps] source_file="res://assets/audio/music/music.ogg" -dest_files=["res://.godot/imported/music.ogg-e27216112531ea490cdad574860a53a5.oggstr"] +dest_files=["res://.godot/imported/music.ogg-e27216112531ea490cdad574860a53a5.oggvorbisstr"] [params] loop=true loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/2d/platformer/assets/audio/sfx/coin_pickup.wav.import b/2d/platformer/assets/audio/sfx/coin_pickup.wav.import index e35a454ba27..05aec83bec9 100644 --- a/2d/platformer/assets/audio/sfx/coin_pickup.wav.import +++ b/2d/platformer/assets/audio/sfx/coin_pickup.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://bw67pgdlhpqd0" path="res://.godot/imported/coin_pickup.wav-69d455f3063e30fd994846647c281aea.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/platformer/assets/audio/sfx/explode.wav.import b/2d/platformer/assets/audio/sfx/explode.wav.import index f90abf4f55c..885dbf47db9 100644 --- a/2d/platformer/assets/audio/sfx/explode.wav.import +++ b/2d/platformer/assets/audio/sfx/explode.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://bbxjxs8sms61b" path="res://.godot/imported/explode.wav-302a3de6d016432bf47477d337a4d553.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/platformer/assets/audio/sfx/hit.wav.import b/2d/platformer/assets/audio/sfx/hit.wav.import index dee6d28d8b6..8f81b3b787e 100644 --- a/2d/platformer/assets/audio/sfx/hit.wav.import +++ b/2d/platformer/assets/audio/sfx/hit.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://brtn51vs7jaet" path="res://.godot/imported/hit.wav-27e178036f6cee6545e9f025a3865a36.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/platformer/assets/audio/sfx/jump.wav.import b/2d/platformer/assets/audio/sfx/jump.wav.import index f32bae9a1dc..28eafef4d8f 100644 --- a/2d/platformer/assets/audio/sfx/jump.wav.import +++ b/2d/platformer/assets/audio/sfx/jump.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://i2vnokf2khqj" path="res://.godot/imported/jump.wav-127418ac4fc0b61a7fed0684053202c7.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/platformer/assets/audio/sfx/shoot.wav.import b/2d/platformer/assets/audio/sfx/shoot.wav.import index 384ebcfe11c..c887c22959e 100644 --- a/2d/platformer/assets/audio/sfx/shoot.wav.import +++ b/2d/platformer/assets/audio/sfx/shoot.wav.import @@ -1,7 +1,8 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" +uid="uid://bpxywy45eqgwy" path="res://.godot/imported/shoot.wav-f3ce9b4ae60220ecd3cf78df7278a10f.sample" [deps] @@ -17,5 +18,7 @@ force/max_rate=false force/max_rate_hz=44100 edit/trim=true edit/normalize=true -edit/loop=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 compress/mode=0 diff --git a/2d/platformer/assets/theme/fonts/kenney_mini_square.ttf.import b/2d/platformer/assets/theme/fonts/kenney_mini_square.ttf.import new file mode 100644 index 00000000000..32284136368 --- /dev/null +++ b/2d/platformer/assets/theme/fonts/kenney_mini_square.ttf.import @@ -0,0 +1,32 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bk80b6owsrioj" +path="res://.godot/imported/kenney_mini_square.ttf-d79fb84878832e276f7b282a10aa19c8.fontdata" + +[deps] + +source_file="res://assets/theme/fonts/kenney_mini_square.ttf" +dest_files=["res://.godot/imported/kenney_mini_square.ttf-d79fb84878832e276f7b282a10aa19c8.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/2d/platformer/assets/theme/user_interface.tres b/2d/platformer/assets/theme/user_interface.tres index 968bd7b65d7..9218df04f4c 100644 --- a/2d/platformer/assets/theme/user_interface.tres +++ b/2d/platformer/assets/theme/user_interface.tres @@ -1,83 +1,79 @@ -[gd_resource type="Theme" load_steps=8 format=2] +[gd_resource type="Theme" load_steps=7 format=3 uid="uid://chubprkmexsng"] -[ext_resource path="res://assets/theme/fonts/kenney_mini_square.tres" type="FontData" id=1] +[ext_resource type="FontFile" uid="uid://bk80b6owsrioj" path="res://assets/theme/fonts/kenney_mini_square.ttf" id="1_f0sjs"] -[sub_resource type="StyleBoxFlat" id=1] +[sub_resource type="StyleBoxFlat" id="1"] content_margin_left = 6.0 -content_margin_right = 6.0 content_margin_top = 4.0 +content_margin_right = 6.0 content_margin_bottom = 4.0 -bg_color = Color( 0.18, 0.207, 0.279, 1 ) +bg_color = Color(0.18, 0.207, 0.279, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color( 0.14, 0.161, 0.217, 1 ) +border_color = Color(0.14, 0.161, 0.217, 1) -[sub_resource type="StyleBoxFlat" id=2] +[sub_resource type="StyleBoxFlat" id="2"] content_margin_left = 6.0 -content_margin_right = 6.0 content_margin_top = 4.0 +content_margin_right = 6.0 content_margin_bottom = 4.0 -bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +bg_color = Color(0.15, 0.1725, 0.2325, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color( 0.41, 0.61, 0.91, 1 ) +border_color = Color(0.41, 0.61, 0.91, 1) -[sub_resource type="StyleBoxFlat" id=3] +[sub_resource type="StyleBoxFlat" id="3"] content_margin_left = 6.0 -content_margin_right = 6.0 content_margin_top = 4.0 +content_margin_right = 6.0 content_margin_bottom = 4.0 -bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +bg_color = Color(0.15, 0.1725, 0.2325, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color( 0.4, 0.4225, 0.4825, 1 ) +border_color = Color(0.4, 0.4225, 0.4825, 1) -[sub_resource type="StyleBoxFlat" id=4] +[sub_resource type="StyleBoxFlat" id="4"] content_margin_left = 6.0 -content_margin_right = 6.0 content_margin_top = 4.0 +content_margin_right = 6.0 content_margin_bottom = 4.0 -bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +bg_color = Color(0.15, 0.1725, 0.2325, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color( 0.125, 0.14375, 0.19375, 1 ) +border_color = Color(0.125, 0.14375, 0.19375, 1) -[sub_resource type="StyleBoxFlat" id=5] +[sub_resource type="StyleBoxFlat" id="5"] content_margin_left = 6.0 -content_margin_right = 6.0 content_margin_top = 4.0 +content_margin_right = 6.0 content_margin_bottom = 4.0 -bg_color = Color( 0.15, 0.1725, 0.2325, 1 ) +bg_color = Color(0.15, 0.1725, 0.2325, 1) border_width_left = 1 border_width_top = 1 border_width_right = 1 border_width_bottom = 1 -border_color = Color( 0.41, 0.61, 0.91, 1 ) - -[sub_resource type="Font" id=6] -size = 30 -font_data = ExtResource( 1 ) +border_color = Color(0.41, 0.61, 0.91, 1) [resource] -default_font = SubResource( 6 ) -Button/colors/font_color = Color( 0.8, 0.8075, 0.8275, 1 ) -Button/colors/font_color_disabled = Color( 1, 1, 1, 0.3 ) -Button/colors/font_color_hover = Color( 0.88, 0.8845, 0.8965, 1 ) -Button/colors/font_color_pressed = Color( 0.411765, 0.611765, 0.909804, 1 ) -Button/colors/icon_color_hover = Color( 1.15, 1.15, 1.15, 1 ) -Button/colors/icon_color_pressed = Color( 0.4715, 0.7015, 1.0465, 1 ) +default_font = ExtResource("1_f0sjs") +Button/colors/font_color = Color(0.8, 0.8075, 0.8275, 1) +Button/colors/font_color_disabled = Color(1, 1, 1, 0.3) +Button/colors/font_color_hover = Color(0.88, 0.8845, 0.8965, 1) +Button/colors/font_color_pressed = Color(0.411765, 0.611765, 0.909804, 1) +Button/colors/icon_color_hover = Color(1.15, 1.15, 1.15, 1) +Button/colors/icon_color_pressed = Color(0.4715, 0.7015, 1.0465, 1) Button/constants/hseparation = 2 -Button/fonts/font = null -Button/styles/disabled = SubResource( 1 ) -Button/styles/focus = SubResource( 2 ) -Button/styles/hover = SubResource( 3 ) -Button/styles/normal = SubResource( 4 ) -Button/styles/pressed = SubResource( 5 ) +Button/fonts/font = ExtResource("1_f0sjs") +Button/styles/disabled = SubResource("1") +Button/styles/focus = SubResource("2") +Button/styles/hover = SubResource("3") +Button/styles/normal = SubResource("4") +Button/styles/pressed = SubResource("5") diff --git a/2d/platformer/icon.png.import b/2d/platformer/icon.png.import index 7abfc9e5fbd..6fc13e7ecbb 100644 --- a/2d/platformer/icon.png.import +++ b/2d/platformer/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://dpxlcfssx0etu" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/platformer/project.godot b/2d/platformer/project.godot index 5308ac8577b..9bf7358dc4d 100644 --- a/2d/platformer/project.godot +++ b/2d/platformer/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 _global_script_classes=[{ "base": "CharacterBody2D", @@ -14,7 +14,7 @@ _global_script_classes=[{ "language": &"GDScript", "path": "res://src/Actors/Actor.gd" }, { -"base": "RigidDynamicBody2D", +"base": "RigidBody2D", "class": &"Bullet", "language": &"GDScript", "path": "res://src/Objects/Bullet.gd" @@ -29,7 +29,7 @@ _global_script_classes=[{ "language": &"GDScript", "path": "res://src/Actors/Enemy.gd" }, { -"base": "Position2D", +"base": "Marker2D", "class": &"Gun", "language": &"GDScript", "path": "res://src/Actors/Gun.gd" @@ -59,34 +59,24 @@ where the player can jump, walk on slopes, fire bullets, interact with enemies, and more. It contains one closed level, and the player is invincible, unlike the enemies." run/main_scene="res://src/Main/Game.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" target_fps="60" [debug] -gdscript/completion/autocomplete_setters_and_getters=true gdscript/warnings/unsafe_property_access=true gdscript/warnings/unsafe_method_access=true gdscript/warnings/unsafe_cast=true gdscript/warnings/unsafe_call_argument=true +gdscript/completion/autocomplete_setters_and_getters=true [display] -window/size/width=800 -window/size/height=480 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=800 +window/size/viewport_height=480 +window/stretch/mode="canvas_items" window/stretch/aspect="keep_height" -stretch/aspect="keep_height" -stretch/mode="2d" - -[gdnative] - -singletons=[] - -[image_loader] - -repeat=false [importer_defaults] @@ -115,106 +105,106 @@ texture={ jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } shoot={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777238,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777238,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_fullscreen={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777254,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777254,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_pause={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } jump_p1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_left_p1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right_p1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } shoot_p1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } jump_p2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_left_p2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":-1.0,"script":null) ] } move_right_p2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":1.0,"script":null) ] } shoot_p2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777238,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777238,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } splitscreen={ "deadzone": 0.5, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } @@ -230,25 +220,6 @@ splitscreen={ 2d/default_gravity=900 -[rasterizer] - -use_pixel_snap=true - -[render] - -mipmap_policy=1 - [rendering] -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=0 -quality/intended_usage/framebuffer_allocation.mobile=1 -2d/snapping/use_gpu_pixel_snap=true -quality/filters/anisotropic_filter_level=2 -quality/filters/use_nearest_mipmap_filter=true -quality/depth/hdr=false -quality/2d/use_pixel_snap=true - -[texture_import] - -filter=false +textures/canvas_textures/default_texture_filter=0 diff --git a/2d/platformer/src/Actors/Actor.gd b/2d/platformer/src/Actors/Actor.gd index 82fc198edd4..990d9eb04dc 100644 --- a/2d/platformer/src/Actors/Actor.gd +++ b/2d/platformer/src/Actors/Actor.gd @@ -10,9 +10,8 @@ extends CharacterBody2D const FLOOR_NORMAL = Vector2.UP -var _velocity = Vector2.ZERO - # _physics_process is called after the inherited _physics_process function. # This allows the Player and Enemy scenes to be affected by gravity. func _physics_process(delta): - _velocity.y += gravity * delta + velocity.y += gravity * delta + move_and_slide() diff --git a/2d/platformer/src/Actors/Enemy.gd b/2d/platformer/src/Actors/Enemy.gd index 75908271bc0..7f57c1f9dc5 100644 --- a/2d/platformer/src/Actors/Enemy.gd +++ b/2d/platformer/src/Actors/Enemy.gd @@ -18,7 +18,7 @@ var _state = State.WALKING # This function is called when the scene enters the scene tree. # We can initialize variables here. func _ready(): - _velocity.x = speed.x + velocity.x = speed.x # Physics process is a built-in loop in Godot. # If you define _physics_process on a node, Godot will call it every frame. @@ -38,19 +38,19 @@ func _ready(): func _physics_process(_delta): # If the enemy encounters a wall or an edge, the horizontal velocity is flipped. if not floor_detector_left.is_colliding(): - _velocity.x = speed.x + velocity.x = speed.x elif not floor_detector_right.is_colliding(): - _velocity.x = -speed.x + velocity.x = -speed.x if is_on_wall(): - _velocity.x *= -1 + velocity.x *= -1 # We only update the y value of _velocity as we want to handle the horizontal movement ourselves. # TODO: This information should be set to the CharacterBody properties instead of arguments. - move_and_slide(_velocity, FLOOR_NORMAL).y + move_and_slide() # We flip the Sprite2D depending on which way the enemy is moving. - if _velocity.x > 0: + if velocity.x > 0: sprite.scale.x = 1 else: sprite.scale.x = -1 @@ -62,13 +62,13 @@ func _physics_process(_delta): func destroy(): _state = State.DEAD - _velocity = Vector2.ZERO + velocity = Vector2.ZERO func get_new_animation(): var animation_new = "" if _state == State.WALKING: - if _velocity.x == 0: + if velocity.x == 0: animation_new = "idle" else: animation_new = "walk" diff --git a/2d/platformer/src/Actors/Gun.gd b/2d/platformer/src/Actors/Gun.gd index e311acba311..5d3de5d6ab6 100644 --- a/2d/platformer/src/Actors/Gun.gd +++ b/2d/platformer/src/Actors/Gun.gd @@ -1,5 +1,5 @@ class_name Gun -extends Position2D +extends Marker2D # Represents a weapon that spawns and shoots bullets. # The Cooldown timer controls the cooldown duration between shots. diff --git a/2d/platformer/src/Actors/Player.gd b/2d/platformer/src/Actors/Player.gd index ac8c055450c..ea358d1804a 100644 --- a/2d/platformer/src/Actors/Player.gd +++ b/2d/platformer/src/Actors/Player.gd @@ -57,17 +57,16 @@ func _physics_process(_delta): var direction = get_direction() - var is_jump_interrupted = Input.is_action_just_released("jump" + action_suffix) and _velocity.y < 0.0 - _velocity = calculate_move_velocity(_velocity, direction, speed, is_jump_interrupted) + var is_jump_interrupted = Input.is_action_just_released("jump" + action_suffix) and velocity.y < 0.0 + velocity = calculate_move_velocity(velocity, direction, speed, is_jump_interrupted) var snap_vector = Vector2.ZERO if direction.y == 0.0: snap_vector = Vector2.DOWN * FLOOR_DETECT_DISTANCE var is_on_platform = platform_detector.is_colliding() # TODO: This information should be set to the CharacterBody properties instead of arguments. - move_and_slide( - _velocity, snap_vector, FLOOR_NORMAL, not is_on_platform, 4, 0.9, false - ) + move_and_slide() + #velocity, snap_vector, FLOOR_NORMAL, not is_on_platform, 4, 0.9, false # When the character’s direction changes, we want to to scale the Sprite2D accordingly to flip it. # This will make Robi face left or right depending on the direction you move. @@ -107,26 +106,25 @@ func calculate_move_velocity( speed, is_jump_interrupted ): - var velocity = linear_velocity - velocity.x = speed.x * direction.x + linear_velocity.x = speed.x * direction.x if direction.y != 0.0: - velocity.y = speed.y * direction.y + linear_velocity.y = speed.y * direction.y if is_jump_interrupted: # Decrease the Y velocity by multiplying it, but don't set it to 0 # as to not be too abrupt. - velocity.y *= 0.6 - return velocity + linear_velocity.y *= 0.6 + return linear_velocity func get_new_animation(is_shooting = false): var animation_new = "" if is_on_floor(): - if abs(_velocity.x) > 0.1: + if abs(velocity.x) > 0.1: animation_new = "run" else: animation_new = "idle" else: - if _velocity.y > 0: + if velocity.y > 0: animation_new = "falling" else: animation_new = "jumping" diff --git a/2d/platformer/src/Main/Game.gd b/2d/platformer/src/Main/Game.gd index 890522242af..49e580e67d3 100644 --- a/2d/platformer/src/Main/Game.gd +++ b/2d/platformer/src/Main/Game.gd @@ -8,13 +8,8 @@ extends Node @onready var _pause_menu = $InterfaceLayer/PauseMenu -func _init(): - OS.min_window_size = OS.window_size - OS.max_window_size = OS.get_screen_size() - - func _notification(what): - if what == NOTIFICATION_WM_QUIT_REQUEST: + if what == NOTIFICATION_WM_CLOSE_REQUEST: # We need to clean up a little bit first to avoid SubViewport errors. if name == "Splitscreen": $Black/SplitContainer/ViewportContainer1.free() @@ -43,8 +38,6 @@ func _unhandled_input(event): # We need to clean up a little bit first to avoid SubViewport errors. $Black/SplitContainer/ViewportContainer1.free() $Black.queue_free() - # warning-ignore:return_value_discarded get_tree().change_scene("res://src/Main/Game.tscn") else: - # warning-ignore:return_value_discarded get_tree().change_scene("res://src/Main/Splitscreen.tscn") diff --git a/2d/platformer/src/Main/Game.tscn b/2d/platformer/src/Main/Game.tscn index fb659d011c2..08deb37cf66 100644 --- a/2d/platformer/src/Main/Game.tscn +++ b/2d/platformer/src/Main/Game.tscn @@ -1,20 +1,22 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://b0qd6b4ipb0iv"] -[ext_resource path="res://src/UserInterface/PauseMenu.tscn" type="PackedScene" id=1] -[ext_resource path="res://src/Main/Game.gd" type="Script" id=2] -[ext_resource path="res://src/Level/Level.tscn" type="PackedScene" id=3] -[ext_resource path="res://src/Actors/Player.tscn" type="PackedScene" id=4] +[ext_resource type="PackedScene" path="res://src/UserInterface/PauseMenu.tscn" id="1"] +[ext_resource type="Script" path="res://src/Main/Game.gd" id="2"] +[ext_resource type="PackedScene" path="res://src/Level/Level.tscn" id="3"] +[ext_resource type="PackedScene" path="res://src/Actors/Player.tscn" id="4"] [node name="Game" type="Node"] process_mode = 3 -script = ExtResource( 2 ) +script = ExtResource("2") -[node name="Level" parent="." instance=ExtResource( 3 )] +[node name="Level" parent="." instance=ExtResource("3")] -[node name="Player" parent="Level" instance=ExtResource( 4 )] +[node name="Player" parent="Level" instance=ExtResource("4")] position = Vector2(90, 546) [node name="InterfaceLayer" type="CanvasLayer" parent="."] layer = 100 -[node name="PauseMenu" parent="InterfaceLayer" instance=ExtResource( 1 )] +[node name="PauseMenu" parent="InterfaceLayer" instance=ExtResource("1")] +layout_mode = 3 +anchors_preset = 15 diff --git a/2d/platformer/src/Objects/Bullet.gd b/2d/platformer/src/Objects/Bullet.gd index adbfd0786f9..7b35e9fe543 100644 --- a/2d/platformer/src/Objects/Bullet.gd +++ b/2d/platformer/src/Objects/Bullet.gd @@ -1,5 +1,5 @@ class_name Bullet -extends RigidDynamicBody2D +extends RigidBody2D @onready var animation_player = $AnimationPlayer diff --git a/2d/platformer/src/UserInterface/CoinsCounter.gd b/2d/platformer/src/UserInterface/CoinsCounter.gd index 8b301f28855..9ddcb41f51d 100644 --- a/2d/platformer/src/UserInterface/CoinsCounter.gd +++ b/2d/platformer/src/UserInterface/CoinsCounter.gd @@ -13,11 +13,11 @@ func _ready(): # Check if the game is in splitscreen mode by checking the scene root name. if get_tree().get_root().get_child(0).name == "Splitscreen": var _level_node = get_node(^"../../../../Black/SplitContainer/ViewportContainer1/Viewport1/Level") - _level_node.get_node(^"Player1").connect(&"collect_coin", self._collect_coin) - _level_node.get_node(^"Player2").connect(&"collect_coin", self._collect_coin) + _level_node.get_node(^"Player1").collect_coin.connect(self._collect_coin) + _level_node.get_node(^"Player2").collect_coin.connect(self._collect_coin) else: var _player_path = get_node(^"../../../../Level/Player") - _player_path.connect(&"collect_coin", self._collect_coin) + _player_path.collect_coin.connect(self._collect_coin) func _collect_coin(): diff --git a/2d/platformer/src/UserInterface/PauseMenu.gd b/2d/platformer/src/UserInterface/PauseMenu.gd index 2cc5160f73c..e022c9b5fc4 100644 --- a/2d/platformer/src/UserInterface/PauseMenu.gd +++ b/2d/platformer/src/UserInterface/PauseMenu.gd @@ -49,7 +49,7 @@ func _on_ResumeButton_pressed(): func _on_QuitButton_pressed(): - scene_root.notification(NOTIFICATION_WM_QUIT_REQUEST) + scene_root.notification(NOTIFICATION_WM_CLOSE_REQUEST) get_tree().quit() diff --git a/2d/platformer/src/UserInterface/PauseMenu.tscn b/2d/platformer/src/UserInterface/PauseMenu.tscn index 9113bead990..3b480f85226 100644 --- a/2d/platformer/src/UserInterface/PauseMenu.tscn +++ b/2d/platformer/src/UserInterface/PauseMenu.tscn @@ -1,90 +1,81 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=4 format=3 uid="uid://0oqbyhiw1abi"] -[ext_resource path="res://assets/theme/user_interface.tres" type="Theme" id=1] -[ext_resource path="res://src/UserInterface/PauseMenu.gd" type="Script" id=2] -[ext_resource path="res://assets/theme/fonts/kenney_mini_square.tres" type="FontData" id=3] -[ext_resource path="res://src/UserInterface/CoinsCounter.tscn" type="PackedScene" id=4] - -[sub_resource type="Font" id=1] -size = 44 -font_data = ExtResource( 3 ) +[ext_resource type="Theme" uid="uid://chubprkmexsng" path="res://assets/theme/user_interface.tres" id="1"] +[ext_resource type="Script" path="res://src/UserInterface/PauseMenu.gd" id="2"] +[ext_resource type="PackedScene" path="res://src/UserInterface/CoinsCounter.tscn" id="4"] [node name="PauseMenu" type="Control"] process_mode = 3 +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -theme = ExtResource( 1 ) -script = ExtResource( 2 ) -__meta__ = { -"_edit_use_anchors_": false -} +theme = ExtResource("1") +script = ExtResource("2") [node name="ColorRect" type="ColorRect" parent="."] +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 color = Color(0, 0, 0, 0.294118) -__meta__ = { -"_edit_use_anchors_": false -} [node name="CenterContainer" type="CenterContainer" parent="ColorRect"] +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="VBoxContainer" type="VBoxContainer" parent="ColorRect/CenterContainer"] -offset_left = 250.0 -offset_top = 140.0 -offset_right = 550.0 -offset_bottom = 340.0 -rect_min_size = Vector2(300, 200) -custom_constants/separation = 6 +layout_mode = 2 +offset_left = 347.0 +offset_top = 194.0 +offset_right = 453.0 +offset_bottom = 285.0 alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Label" type="Label" parent="ColorRect/CenterContainer/VBoxContainer"] -offset_top = 7.0 -offset_right = 300.0 -offset_bottom = 62.0 -custom_fonts/font = SubResource( 1 ) +layout_mode = 2 +offset_right = 106.0 +offset_bottom = 23.0 text = "Game Paused" -align = 1 -valign = 1 [node name="MarginContainer" type="MarginContainer" parent="ColorRect/CenterContainer/VBoxContainer"] -offset_top = 68.0 -offset_right = 300.0 -offset_bottom = 88.0 -rect_min_size = Vector2(0, 20) +layout_mode = 2 +offset_top = 27.0 +offset_right = 106.0 +offset_bottom = 27.0 [node name="ResumeButton" type="Button" parent="ColorRect/CenterContainer/VBoxContainer"] -offset_left = 60.0 -offset_top = 94.0 -offset_right = 240.0 -offset_bottom = 140.0 -rect_min_size = Vector2(180, 40) +layout_mode = 2 +offset_left = 16.0 +offset_top = 31.0 +offset_right = 90.0 +offset_bottom = 59.0 size_flags_horizontal = 4 text = "Resume" [node name="QuitButton" type="Button" parent="ColorRect/CenterContainer/VBoxContainer"] -offset_left = 60.0 -offset_top = 146.0 -offset_right = 240.0 -offset_bottom = 192.0 -rect_min_size = Vector2(180, 40) +layout_mode = 2 +offset_left = 31.0 +offset_top = 63.0 +offset_right = 75.0 +offset_bottom = 91.0 size_flags_horizontal = 4 text = "Quit" -[node name="CoinsCounter" parent="ColorRect" instance=ExtResource( 4 )] +[node name="CoinsCounter" parent="ColorRect" instance=ExtResource("4")] +layout_mode = 0 offset_right = 105.0 offset_bottom = 50.0 [node name="Tween" type="Tween" parent="."] +_import_path = NodePath("") +unique_name_in_owner = false +process_mode = 0 +process_priority = 0 +editor_description = "" +script = null [connection signal="pressed" from="ColorRect/CenterContainer/VBoxContainer/ResumeButton" to="." method="_on_ResumeButton_pressed"] [connection signal="pressed" from="ColorRect/CenterContainer/VBoxContainer/QuitButton" to="." method="_on_QuitButton_pressed"] -[connection signal="tween_all_completed" from="Tween" to="." method="_on_Tween_all_completed"] diff --git a/2d/pong/ball.png.import b/2d/pong/ball.png.import index 56465ac1365..0526217d912 100644 --- a/2d/pong/ball.png.import +++ b/2d/pong/ball.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/pong/icon.png.import b/2d/pong/icon.png.import index f24b7636452..2f7ca52fae7 100644 --- a/2d/pong/icon.png.import +++ b/2d/pong/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/pong/paddle.png.import b/2d/pong/paddle.png.import index be5e113b6f7..a59ade3efbd 100644 --- a/2d/pong/paddle.png.import +++ b/2d/pong/paddle.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/pong/pong.tscn b/2d/pong/pong.tscn index 2e88016946a..7d78ccd2948 100644 --- a/2d/pong/pong.tscn +++ b/2d/pong/pong.tscn @@ -30,67 +30,67 @@ color = Color(0.141176, 0.152941, 0.164706, 1) [node name="Left" type="Area2D" parent="."] modulate = Color(0, 1, 1, 1) position = Vector2(67.6285, 192.594) -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Sprite2D" type="Sprite2D" parent="Left"] -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="Collision" type="CollisionShape2D" parent="Left"] -shape = SubResource( "1" ) +shape = SubResource("1") [node name="Right" type="Area2D" parent="."] modulate = Color(1, 0, 1, 1) position = Vector2(563.815, 188.919) -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Sprite2D" type="Sprite2D" parent="Right"] -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="Collision" type="CollisionShape2D" parent="Right"] -shape = SubResource( "1" ) +shape = SubResource("1") [node name="Ball" type="Area2D" parent="."] position = Vector2(320.5, 191.124) -script = ExtResource( "4" ) +script = ExtResource("4") [node name="Sprite2D" type="Sprite2D" parent="Ball"] -texture = ExtResource( "5" ) +texture = ExtResource("5") [node name="Collision" type="CollisionShape2D" parent="Ball"] -shape = SubResource( "2" ) +shape = SubResource("2") [node name="Separator" type="Sprite2D" parent="."] position = Vector2(320, 200) -texture = ExtResource( "6" ) +texture = ExtResource("6") [node name="LeftWall" type="Area2D" parent="."] position = Vector2(-10, 200) -script = ExtResource( "7" ) +script = ExtResource("7") [node name="Collision" type="CollisionShape2D" parent="LeftWall"] -shape = SubResource( "3" ) +shape = SubResource("3") [node name="RightWall" type="Area2D" parent="."] position = Vector2(650, 200) -script = ExtResource( "7" ) +script = ExtResource("7") [node name="Collision" type="CollisionShape2D" parent="RightWall"] -shape = SubResource( "3" ) +shape = SubResource("3") [node name="Ceiling" type="Area2D" parent="."] position = Vector2(320, -10) -script = ExtResource( "8" ) +script = ExtResource("8") [node name="Collision" type="CollisionShape2D" parent="Ceiling"] -shape = SubResource( "4" ) +shape = SubResource("4") [node name="Floor" type="Area2D" parent="."] position = Vector2(320, 410) -script = ExtResource( "8" ) +script = ExtResource("8") _bounce_direction = -1 [node name="Collision" type="CollisionShape2D" parent="Floor"] -shape = SubResource( "4" ) +shape = SubResource("4") [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(320, 200) diff --git a/2d/pong/project.godot b/2d/pong/project.godot index fd2d7213394..697dd7ce6d2 100644 --- a/2d/pong/project.godot +++ b/2d/pong/project.godot @@ -14,8 +14,8 @@ config/name="Pong with GDScript" config/description="A simple Pong game. This demo shows best practices for game development in Godot, including signals." run/main_scene="pong.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] @@ -28,36 +28,36 @@ window/stretch/aspect="expand" left_move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) ] } left_move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) ] } right_move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } right_move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } [rendering] +environment/defaults/default_clear_color=Color(0.105882, 0.105882, 0.12549, 1) +textures/canvas_textures/default_texture_filter=0 vulkan/rendering/back_end=1 2d/snapping/use_gpu_pixel_snap=true diff --git a/2d/pong/separator.png.import b/2d/pong/separator.png.import index 6900685b679..d30b8ed60cd 100644 --- a/2d/pong/separator.png.import +++ b/2d/pong/separator.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/2d/role_playing_game/Game.gd b/2d/role_playing_game/Game.gd index 4675db60784..49c844781aa 100644 --- a/2d/role_playing_game/Game.gd +++ b/2d/role_playing_game/Game.gd @@ -9,14 +9,13 @@ const PLAYER_LOSE = "res://dialogue/dialogue_data/player_lose.json" func _ready(): exploration_screen = get_node(exploration_screen) combat_screen = get_node(combat_screen) - combat_screen.connect(&"combat_finished", self._on_combat_finished) + combat_screen.combat_finished.connect(self._on_combat_finished) for n in $Exploration/Grid.get_children(): if not n.type == n.CellType.ACTOR: continue if not n.has_node("DialoguePlayer"): continue - n.get_node(^"DialoguePlayer").connect("dialogue_finished", self, - "_on_opponent_dialogue_finished", [n]) + n.get_node(^"DialoguePlayer").dialogue_finished.connect(self._on_opponent_dialogue_finished.bind(n)) remove_child(combat_screen) diff --git a/2d/role_playing_game/combat/Combat.gd b/2d/role_playing_game/combat/Combat.gd index ac62b3269d6..53b87fa4cd9 100644 --- a/2d/role_playing_game/combat/Combat.gd +++ b/2d/role_playing_game/combat/Combat.gd @@ -7,7 +7,7 @@ func initialize(combat_combatants): combatant = combatant.instantiate() if combatant is Combatant: $Combatants.add_combatant(combatant) - combatant.get_node(^"Health").connect(&"dead", self._on_combatant_death, [combatant]) + combatant.get_node(^"Health").dead.connect(self._on_combatant_death.bind(combatant)) else: combatant.queue_free() $UI.initialize() diff --git a/2d/role_playing_game/combat/combatants/sprites/blue.png.import b/2d/role_playing_game/combat/combatants/sprites/blue.png.import index 87618c92de9..2020a2c6779 100644 --- a/2d/role_playing_game/combat/combatants/sprites/blue.png.import +++ b/2d/role_playing_game/combat/combatants/sprites/blue.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/blue.png-8092cf6d59f8b71b187a850a15aa9759.stex" +type="CompressedTexture2D" +uid="uid://cxy3q53ko8jyl" +path="res://.godot/imported/blue.png-8092cf6d59f8b71b187a850a15aa9759.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://combat/combatants/sprites/blue.png" -dest_files=["res://.godot/imported/blue.png-8092cf6d59f8b71b187a850a15aa9759.stex"] +dest_files=["res://.godot/imported/blue.png-8092cf6d59f8b71b187a850a15aa9759.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/combat/combatants/sprites/green.png.import b/2d/role_playing_game/combat/combatants/sprites/green.png.import index e48b3295728..ddd3f070966 100644 --- a/2d/role_playing_game/combat/combatants/sprites/green.png.import +++ b/2d/role_playing_game/combat/combatants/sprites/green.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/green.png-d2deadceb974a66b9f9b9df11dc41501.stex" +type="CompressedTexture2D" +uid="uid://cs6ckyweue8so" +path="res://.godot/imported/green.png-d2deadceb974a66b9f9b9df11dc41501.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://combat/combatants/sprites/green.png" -dest_files=["res://.godot/imported/green.png-d2deadceb974a66b9f9b9df11dc41501.stex"] +dest_files=["res://.godot/imported/green.png-d2deadceb974a66b9f9b9df11dc41501.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/combat/combatants/sprites/shadow.png.import b/2d/role_playing_game/combat/combatants/sprites/shadow.png.import index bed158ffa23..e76af57ebd6 100644 --- a/2d/role_playing_game/combat/combatants/sprites/shadow.png.import +++ b/2d/role_playing_game/combat/combatants/sprites/shadow.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/shadow.png-d8772fa49c8867b55809e76164b76188.stex" +type="CompressedTexture2D" +uid="uid://cerhyipby6ing" +path="res://.godot/imported/shadow.png-d8772fa49c8867b55809e76164b76188.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://combat/combatants/sprites/shadow.png" -dest_files=["res://.godot/imported/shadow.png-d8772fa49c8867b55809e76164b76188.stex"] +dest_files=["res://.godot/imported/shadow.png-d8772fa49c8867b55809e76164b76188.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/combat/interface/UI.gd b/2d/role_playing_game/combat/interface/UI.gd index 7b342feaf40..35d54c15406 100644 --- a/2d/role_playing_game/combat/interface/UI.gd +++ b/2d/role_playing_game/combat/interface/UI.gd @@ -15,7 +15,7 @@ func initialize(): health_info.value = health.life health_info.max_value = health.max_life info.get_node(^"VBoxContainer/Name").text = combatant.name - health.connect(&"health_changed", health_info.set_value) + health.health_changed.connect(health_info.set_value) $Combatants.add_child(info) $Buttons/GridContainer/Attack.grab_focus() diff --git a/2d/role_playing_game/dialogue/interface/Interface.gd b/2d/role_playing_game/dialogue/interface/Interface.gd index 3a672405f1a..f486a7af18b 100644 --- a/2d/role_playing_game/dialogue/interface/Interface.gd +++ b/2d/role_playing_game/dialogue/interface/Interface.gd @@ -15,10 +15,10 @@ func show_dialogue(player, dialogue): dialogue_node.start_dialogue() break return - dialogue_node.connect(&"dialogue_started", player.set_active, [false]) - dialogue_node.connect(&"dialogue_finished", player.set_active, [true]) - dialogue_node.connect(&"dialogue_finished", self.hide) - dialogue_node.connect(&"dialogue_finished", self._on_dialogue_finished, [player]) + dialogue_node.dialogue_started.connect(player.set_active.bind(false)) + dialogue_node.dialogue_finished.connect(player.set_active.bind(true)) + dialogue_node.dialogue_finished.connect(self.hide) + dialogue_node.dialogue_finished.connect(self._on_dialogue_finished.bind(player)) dialogue_node.start_dialogue() $Name.text = dialogue_node.dialogue_name $Text.text = dialogue_node.dialogue_text @@ -31,7 +31,7 @@ func _on_Button_button_up(): func _on_dialogue_finished(player): - dialogue_node.disconnect(&"dialogue_started", player.set_active) - dialogue_node.disconnect(&"dialogue_finished", player.set_active) - dialogue_node.disconnect(&"dialogue_finished", self.hide) - dialogue_node.disconnect(&"dialogue_finished", self._on_dialogue_finished) + dialogue_node.dialogue_started.disconnect(player.set_active) + dialogue_node.dialogue_finished.disconnect(player.set_active) + dialogue_node.dialogue_finished.disconnect(self.hide) + dialogue_node.dialogue_finished.disconnect(self._on_dialogue_finished) diff --git a/2d/role_playing_game/grid_movement/grid/lines/grid_lines.png.import b/2d/role_playing_game/grid_movement/grid/lines/grid_lines.png.import index d22a0bcd51c..0f1a1559e81 100644 --- a/2d/role_playing_game/grid_movement/grid/lines/grid_lines.png.import +++ b/2d/role_playing_game/grid_movement/grid/lines/grid_lines.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/grid_lines.png-52aa706884a3dba960110e63cdf54a8c.stex" +type="CompressedTexture2D" +uid="uid://5auocr6oymg0" +path="res://.godot/imported/grid_lines.png-52aa706884a3dba960110e63cdf54a8c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://grid_movement/grid/lines/grid_lines.png" -dest_files=["res://.godot/imported/grid_lines.png-52aa706884a3dba960110e63cdf54a8c.stex"] +dest_files=["res://.godot/imported/grid_lines.png-52aa706884a3dba960110e63cdf54a8c.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/grid_movement/grid/tiles/actor.png.import b/2d/role_playing_game/grid_movement/grid/tiles/actor.png.import index a466d47d6c8..62a79060937 100644 --- a/2d/role_playing_game/grid_movement/grid/tiles/actor.png.import +++ b/2d/role_playing_game/grid_movement/grid/tiles/actor.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/actor.png-c322bfa3077f1c55a7d6251f76155bcc.stex" +type="CompressedTexture2D" +uid="uid://cwcoslr2bhal4" +path="res://.godot/imported/actor.png-c322bfa3077f1c55a7d6251f76155bcc.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://grid_movement/grid/tiles/actor.png" -dest_files=["res://.godot/imported/actor.png-c322bfa3077f1c55a7d6251f76155bcc.stex"] +dest_files=["res://.godot/imported/actor.png-c322bfa3077f1c55a7d6251f76155bcc.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/grid_movement/grid/tiles/object.png.import b/2d/role_playing_game/grid_movement/grid/tiles/object.png.import index 427d5621db2..2347b3862c8 100644 --- a/2d/role_playing_game/grid_movement/grid/tiles/object.png.import +++ b/2d/role_playing_game/grid_movement/grid/tiles/object.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/object.png-105b8788e1883723a96438fd97d5db23.stex" +type="CompressedTexture2D" +uid="uid://dxm20bh3ttr8i" +path="res://.godot/imported/object.png-105b8788e1883723a96438fd97d5db23.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://grid_movement/grid/tiles/object.png" -dest_files=["res://.godot/imported/object.png-105b8788e1883723a96438fd97d5db23.stex"] +dest_files=["res://.godot/imported/object.png-105b8788e1883723a96438fd97d5db23.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/grid_movement/grid/tiles/obstacle.png.import b/2d/role_playing_game/grid_movement/grid/tiles/obstacle.png.import index 7de9c3aa0a2..4c9fc8245fe 100644 --- a/2d/role_playing_game/grid_movement/grid/tiles/obstacle.png.import +++ b/2d/role_playing_game/grid_movement/grid/tiles/obstacle.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/obstacle.png-bd15bb10c9507019dfb2cad5661bca49.stex" +type="CompressedTexture2D" +uid="uid://tn1hwx3e1aq1" +path="res://.godot/imported/obstacle.png-bd15bb10c9507019dfb2cad5661bca49.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://grid_movement/grid/tiles/obstacle.png" -dest_files=["res://.godot/imported/obstacle.png-bd15bb10c9507019dfb2cad5661bca49.stex"] +dest_files=["res://.godot/imported/obstacle.png-bd15bb10c9507019dfb2cad5661bca49.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/grid_movement/pawns/character.png.import b/2d/role_playing_game/grid_movement/pawns/character.png.import index 154a4340334..715cdd39c37 100644 --- a/2d/role_playing_game/grid_movement/pawns/character.png.import +++ b/2d/role_playing_game/grid_movement/pawns/character.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/character.png-5e19af0401d52b4620fb84d898126e01.stex" +type="CompressedTexture2D" +uid="uid://cvq2gombrrjmr" +path="res://.godot/imported/character.png-5e19af0401d52b4620fb84d898126e01.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://grid_movement/pawns/character.png" -dest_files=["res://.godot/imported/character.png-5e19af0401d52b4620fb84d898126e01.stex"] +dest_files=["res://.godot/imported/character.png-5e19af0401d52b4620fb84d898126e01.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/icon.png.import b/2d/role_playing_game/icon.png.import index 889af9df580..f79b2b07ca4 100644 --- a/2d/role_playing_game/icon.png.import +++ b/2d/role_playing_game/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://cio5xcyg22hvu" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/icon.svg.import b/2d/role_playing_game/icon.svg.import index a85d0764abb..a21166a7f01 100644 --- a/2d/role_playing_game/icon.svg.import +++ b/2d/role_playing_game/icon.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.stex" +type="CompressedTexture2D" +uid="uid://chmyk1sf2kyc3" +path="res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://icon.svg" -dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.stex"] +dest_files=["res://.godot/imported/icon.svg-218a8f2b3041327d8a5756f3a245f83b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/2d/role_playing_game/project.godot b/2d/role_playing_game/project.godot index 34653b6a857..3d5abb6da58 100644 --- a/2d/role_playing_game/project.godot +++ b/2d/role_playing_game/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 _global_script_classes=[{ "base": "Node", @@ -31,46 +31,46 @@ config/description="This shows a method of creating grid-based movement with God and GDScript. It also includes a simple JRPG-style dialogue and battle system on top of it." run/main_scene="res://Game.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/size/width=1280 -window/size/height=720 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=1280 +window/size/viewport_height=720 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [input] ui_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } ui_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } ui_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) ] } ui_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] diff --git a/2d/role_playing_game/theme/fonts/Montserrat-ExtraBold.otf.import b/2d/role_playing_game/theme/fonts/Montserrat-ExtraBold.otf.import new file mode 100644 index 00000000000..f09c020a156 --- /dev/null +++ b/2d/role_playing_game/theme/fonts/Montserrat-ExtraBold.otf.import @@ -0,0 +1,32 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://c7r2xnh0p8nvu" +path="res://.godot/imported/Montserrat-ExtraBold.otf-9da8a825f71d3b8ee9ad59186ea4e636.fontdata" + +[deps] + +source_file="res://theme/fonts/Montserrat-ExtraBold.otf" +dest_files=["res://.godot/imported/Montserrat-ExtraBold.otf-9da8a825f71d3b8ee9ad59186ea4e636.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/2d/role_playing_game/theme/images/background.png.import b/2d/role_playing_game/theme/images/background.png.import index 4a590126d3d..c5998e1d4cb 100644 --- a/2d/role_playing_game/theme/images/background.png.import +++ b/2d/role_playing_game/theme/images/background.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/background.png-18a7ab092343a1a2d858e1a344411242.stex" +type="CompressedTexture2D" +uid="uid://4spycrcmn8ek" +path="res://.godot/imported/background.png-18a7ab092343a1a2d858e1a344411242.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://theme/images/background.png" -dest_files=["res://.godot/imported/background.png-18a7ab092343a1a2d858e1a344411242.stex"] +dest_files=["res://.godot/imported/background.png-18a7ab092343a1a2d858e1a344411242.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/theme/images/button_rect.png.import b/2d/role_playing_game/theme/images/button_rect.png.import index 1799121d1d3..dd08969fb20 100644 --- a/2d/role_playing_game/theme/images/button_rect.png.import +++ b/2d/role_playing_game/theme/images/button_rect.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/button_rect.png-b2c41a1b80f4932c0e158cb00f0366e3.stex" +type="CompressedTexture2D" +uid="uid://ckr4y26la355n" +path="res://.godot/imported/button_rect.png-b2c41a1b80f4932c0e158cb00f0366e3.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://theme/images/button_rect.png" -dest_files=["res://.godot/imported/button_rect.png-b2c41a1b80f4932c0e158cb00f0366e3.stex"] +dest_files=["res://.godot/imported/button_rect.png-b2c41a1b80f4932c0e158cb00f0366e3.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/theme/images/button_rect_pressed.png.import b/2d/role_playing_game/theme/images/button_rect_pressed.png.import index b4bc3f0f839..207a914f15d 100644 --- a/2d/role_playing_game/theme/images/button_rect_pressed.png.import +++ b/2d/role_playing_game/theme/images/button_rect_pressed.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/button_rect_pressed.png-412a6dd553cfc471e5f96826ccf6d434.stex" +type="CompressedTexture2D" +uid="uid://lqmfou7byece" +path="res://.godot/imported/button_rect_pressed.png-412a6dd553cfc471e5f96826ccf6d434.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://theme/images/button_rect_pressed.png" -dest_files=["res://.godot/imported/button_rect_pressed.png-412a6dd553cfc471e5f96826ccf6d434.stex"] +dest_files=["res://.godot/imported/button_rect_pressed.png-412a6dd553cfc471e5f96826ccf6d434.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/theme/images/foreground_blue.png.import b/2d/role_playing_game/theme/images/foreground_blue.png.import index 65bccbba7f3..11b957bf730 100644 --- a/2d/role_playing_game/theme/images/foreground_blue.png.import +++ b/2d/role_playing_game/theme/images/foreground_blue.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/foreground_blue.png-35d7e9646fc1e18e8f56dc08539244f0.stex" +type="CompressedTexture2D" +uid="uid://bcwsn6cqmfbjw" +path="res://.godot/imported/foreground_blue.png-35d7e9646fc1e18e8f56dc08539244f0.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://theme/images/foreground_blue.png" -dest_files=["res://.godot/imported/foreground_blue.png-35d7e9646fc1e18e8f56dc08539244f0.stex"] +dest_files=["res://.godot/imported/foreground_blue.png-35d7e9646fc1e18e8f56dc08539244f0.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/theme/images/foreground_red.png.import b/2d/role_playing_game/theme/images/foreground_red.png.import index b57c8601c99..ebb5868af57 100644 --- a/2d/role_playing_game/theme/images/foreground_red.png.import +++ b/2d/role_playing_game/theme/images/foreground_red.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/foreground_red.png-c23ba55805336ffe255b2be9b971baee.stex" +type="CompressedTexture2D" +uid="uid://c22hdicaajt02" +path="res://.godot/imported/foreground_red.png-c23ba55805336ffe255b2be9b971baee.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://theme/images/foreground_red.png" -dest_files=["res://.godot/imported/foreground_red.png-c23ba55805336ffe255b2be9b971baee.stex"] +dest_files=["res://.godot/imported/foreground_red.png-c23ba55805336ffe255b2be9b971baee.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/role_playing_game/theme/images/panel_rect.png.import b/2d/role_playing_game/theme/images/panel_rect.png.import index 607f848e94b..58ed2a989b0 100644 --- a/2d/role_playing_game/theme/images/panel_rect.png.import +++ b/2d/role_playing_game/theme/images/panel_rect.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/panel_rect.png-eef2ae28539c58e6b551075147d16b2a.stex" +type="CompressedTexture2D" +uid="uid://drt7tw7y6wa31" +path="res://.godot/imported/panel_rect.png-eef2ae28539c58e6b551075147d16b2a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://theme/images/panel_rect.png" -dest_files=["res://.godot/imported/panel_rect.png-eef2ae28539c58e6b551075147d16b2a.stex"] +dest_files=["res://.godot/imported/panel_rect.png-eef2ae28539c58e6b551075147d16b2a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/screen_space_shaders/project.godot b/2d/screen_space_shaders/project.godot index b23844d20b0..a084619cecb 100644 --- a/2d/screen_space_shaders/project.godot +++ b/2d/screen_space_shaders/project.godot @@ -14,8 +14,8 @@ config/name="Screen Space Shaders" config/description="Several examples of full screen 2D shader processing. Many common full-res effects are implemented here for reference." run/main_scene="res://screen_shaders.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] diff --git a/2d/screen_space_shaders/screen_shaders.tscn b/2d/screen_space_shaders/screen_shaders.tscn index c1fa3add2a4..d55f665e9b4 100644 --- a/2d/screen_space_shaders/screen_shaders.tscn +++ b/2d/screen_space_shaders/screen_shaders.tscn @@ -18,111 +18,129 @@ [ext_resource type="Shader" path="res://shaders/BCS.gdshader" id="16"] [ext_resource type="Shader" path="res://shaders/mirage.gdshader" id="17"] [ext_resource type="Shader" path="res://shaders/old_film.gdshader" id="18"] -[ext_resource type="Texture2D" uid="uid://c5jxxypesp0k5" path="res://art/filmgrain.png" id="19"] +[ext_resource type="Texture2D" uid="uid://c5jxxypesp0k5" path="res://art/filmgrain.png" id="19_mg7oc"] [sub_resource type="ShaderMaterial" id="1"] -shader = ExtResource( "6" ) -shader_param/vignette = ExtResource( "7" ) +shader = ExtResource("6") +shader_parameter/vignette = ExtResource("7") [sub_resource type="ShaderMaterial" id="2"] -shader = ExtResource( "9" ) -shader_param/amount = 4.0 +shader = ExtResource("9") +shader_parameter/amount = 4.0 [sub_resource type="ShaderMaterial" id="3"] -shader = ExtResource( "10" ) -shader_param/size_x = 0.008 -shader_param/size_y = 0.008 +shader = ExtResource("10") +shader_parameter/size_x = 0.008 +shader_parameter/size_y = 0.008 [sub_resource type="ShaderMaterial" id="4"] -shader = ExtResource( "11" ) -shader_param/rotation = 3.0 +shader = ExtResource("11") +shader_parameter/rotation = 3.0 [sub_resource type="ShaderMaterial" id="5"] -shader = ExtResource( "12" ) -shader_param/base = Color(0.54451, 0.408353, 0.403137, 1) +shader = ExtResource("12") +shader_parameter/base = Color(0.941176, 0.647059, 0.356863, 1) [sub_resource type="ShaderMaterial" id="6"] -shader = ExtResource( "13" ) +shader = ExtResource("13") [sub_resource type="ShaderMaterial" id="7"] -shader = ExtResource( "14" ) +shader = ExtResource("14") [sub_resource type="ShaderMaterial" id="8"] -shader = ExtResource( "15" ) +shader = ExtResource("15") [sub_resource type="ShaderMaterial" id="9"] -shader = ExtResource( "16" ) -shader_param/brightness = 0.8 -shader_param/contrast = 1.5 -shader_param/saturation = 1.8 +shader = ExtResource("16") +shader_parameter/brightness = 0.8 +shader_parameter/contrast = 1.5 +shader_parameter/saturation = 1.8 [sub_resource type="ShaderMaterial" id="10"] -shader = ExtResource( "17" ) -shader_param/frequency = 60.0 -shader_param/depth = 0.005 +shader = ExtResource("17") +shader_parameter/depth = 0.005 +shader_parameter/frequency = 60.0 [sub_resource type="ShaderMaterial" id="11"] -shader = ExtResource( "18" ) -shader_param/base = Color(0.450274, 0.361255, 0.335059, 1) -shader_param/grain_strength = 0.3 -shader_param/fps = 12 -shader_param/stretch = 0.5 -shader_param/flashing = 0.01 -shader_param/grain = ExtResource( "19" ) -shader_param/vignette = ExtResource( "7" ) +shader = ExtResource("18") +shader_parameter/base = Color(0.941176, 0.647059, 0.356863, 1) +shader_parameter/flashing = 0.1 +shader_parameter/fps = 15.0 +shader_parameter/grain = ExtResource("19_mg7oc") +shader_parameter/grain_strength = 0.5 +shader_parameter/stretch = 0.5 +shader_parameter/vignette = ExtResource("7") [node name="ScreenShaders" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Pictures" type="Control" parent="."] +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 [node name="Burano" type="TextureRect" parent="Pictures"] +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="Roby" type="TextureRect" parent="Pictures"] visible = false +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "3" ) +texture = ExtResource("3") [node name="Mountains" type="TextureRect" parent="Pictures"] visible = false +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "4" ) +texture = ExtResource("4") [node name="Forest" type="TextureRect" parent="Pictures"] visible = false +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "5" ) +texture = ExtResource("5") [node name="Effects" type="Control" parent="."] +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 [node name="Disabled" type="Control" parent="Effects"] visible = false +layout_mode = 1 +anchors_preset = 0 offset_right = 40.0 offset_bottom = 40.0 size_flags_horizontal = 2 @@ -130,110 +148,155 @@ size_flags_vertical = 2 [node name="Vignette" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "1" ) +material = SubResource("1") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Blur" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "2" ) +material = SubResource("2") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Pixelize" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "3" ) +material = SubResource("3") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Whirl" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "4" ) +material = SubResource("4") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Sepia" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "5" ) +material = SubResource("5") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_right = 14.0 offset_bottom = -2.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Negative" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "6" ) +material = SubResource("6") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Contrasted" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "7" ) +material = SubResource("7") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Normalized" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "8" ) +material = SubResource("8") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="BCS" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "9" ) +material = SubResource("9") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = 3.0 offset_bottom = -3.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Mirage" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "10" ) +material = SubResource("10") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="OldFilm" type="TextureRect" parent="Effects"] visible = false -material = SubResource( "11" ) +material = SubResource("11") +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = -3.0 offset_right = 3.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -texture = ExtResource( "8" ) +texture = ExtResource("8") [node name="Picture" type="OptionButton" parent="."] +layout_mode = 0 offset_left = 8.0 offset_top = 7.0 offset_right = 184.0 @@ -244,6 +307,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Effect" type="OptionButton" parent="."] +layout_mode = 0 offset_left = 189.0 offset_top = 7.0 offset_right = 312.0 diff --git a/2d/screen_space_shaders/shaders/old_film.gdshader b/2d/screen_space_shaders/shaders/old_film.gdshader index 4898374921a..0503e179148 100644 --- a/2d/screen_space_shaders/shaders/old_film.gdshader +++ b/2d/screen_space_shaders/shaders/old_film.gdshader @@ -1,6 +1,6 @@ shader_type canvas_item; -uniform vec4 base: hint_color; +uniform vec4 base: source_color; uniform sampler2D grain; uniform float grain_strength = 0.3; uniform sampler2D vignette; diff --git a/2d/screen_space_shaders/shaders/sepia.gdshader b/2d/screen_space_shaders/shaders/sepia.gdshader index 1d3b546b6ec..2f12538a0a6 100644 --- a/2d/screen_space_shaders/shaders/sepia.gdshader +++ b/2d/screen_space_shaders/shaders/sepia.gdshader @@ -1,6 +1,6 @@ shader_type canvas_item; -uniform vec4 base : hint_color; +uniform vec4 base : source_color; void fragment() { vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb; diff --git a/2d/skeleton/icon.png.import b/2d/skeleton/icon.png.import index 889af9df580..9c075e6e9ca 100644 --- a/2d/skeleton/icon.png.import +++ b/2d/skeleton/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://bu2suwey36iwr" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/level.tscn b/2d/skeleton/level.tscn index aba07a6d2fe..00ca6bbd12b 100644 --- a/2d/skeleton/level.tscn +++ b/2d/skeleton/level.tscn @@ -1,353 +1,779 @@ -[gd_scene load_steps=18 format=2] +[gd_scene load_steps=21 format=3 uid="uid://b0dcakpphuuc5"] -[ext_resource path="res://level/level.gd" type="Script" id=1] -[ext_resource path="res://level/tileset/tiles_demo.png" type="Texture2D" id=2] -[ext_resource path="res://level/background.tscn" type="PackedScene" id=3] -[ext_resource path="res://player/player.tscn" type="PackedScene" id=4] +[ext_resource type="Script" path="res://level/level.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://b54eod3j4xx34" path="res://level/tileset/tiles_demo.png" id="2"] +[ext_resource type="PackedScene" path="res://level/background.tscn" id="3"] +[ext_resource type="PackedScene" path="res://player/player.tscn" id="4"] -[sub_resource type="ConvexPolygonShape2D" id=1] -points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rab6l"] +texture = ExtResource("2") +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) -[sub_resource type="ConvexPolygonShape2D" id=2] -points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_o7puq"] +texture = ExtResource("2") +margins = Vector2i(32, 0) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) -[sub_resource type="ConvexPolygonShape2D" id=3] -points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_j5g0l"] +texture = ExtResource("2") +margins = Vector2i(160, 32) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) -[sub_resource type="ConvexPolygonShape2D" id=4] -points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_uyp8g"] +texture = ExtResource("2") +margins = Vector2i(128, 64) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 -[sub_resource type="ConvexPolygonShape2D" id=5] -points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ds0a0"] +texture = ExtResource("2") +margins = Vector2i(128, 32) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 -[sub_resource type="ConvexPolygonShape2D" id=6] -points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_4ksjb"] +texture = ExtResource("2") +margins = Vector2i(128, 96) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) -[sub_resource type="ConvexPolygonShape2D" id=7] -points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ubcc7"] +texture = ExtResource("2") +margins = Vector2i(128, 0) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 -[sub_resource type="ConvexPolygonShape2D" id=8] -points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_f777p"] +texture = ExtResource("2") +margins = Vector2i(64, 64) +texture_region_size = Vector2i(32, 64) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(32, 38, 32, 64, 0, 64, 0, 6) -[sub_resource type="ConvexPolygonShape2D" id=9] -points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_oeweg"] +texture = ExtResource("2") +margins = Vector2i(32, 32) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 32, 0, 32) -[sub_resource type="ConvexPolygonShape2D" id=10] -points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_pq75v"] +texture = ExtResource("2") +margins = Vector2i(32, 64) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(28, 6, 32, 6, 32, 32, 0, 32, 0, 0, 28, 0) -[sub_resource type="ConvexPolygonShape2D" id=11] -points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7bhqb"] +texture = ExtResource("2") +margins = Vector2i(64, 0) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/0/physics_layer_0/polygon_0/one_way = true +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/1/physics_layer_0/polygon_0/one_way = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/2/physics_layer_0/polygon_0/one_way = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/3/physics_layer_0/polygon_0/one_way = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/4/physics_layer_0/polygon_0/one_way = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/5/physics_layer_0/polygon_0/one_way = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/6/physics_layer_0/polygon_0/one_way = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 32, 6, 32, 32, 0, 32) +0:0/7/physics_layer_0/polygon_0/one_way = true -[sub_resource type="ConvexPolygonShape2D" id=12] -points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_rss6p"] +texture = ExtResource("2") +margins = Vector2i(96, 0) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/0/physics_layer_0/polygon_0/one_way = true +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/1/physics_layer_0/polygon_0/one_way = true +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/2/physics_layer_0/polygon_0/one_way = true +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/3/physics_layer_0/polygon_0/one_way = true +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/4/physics_layer_0/polygon_0/one_way = true +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/5/physics_layer_0/polygon_0/one_way = true +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/6/physics_layer_0/polygon_0/one_way = true +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 6, 28, 6, 28, 32, 0, 32) +0:0/7/physics_layer_0/polygon_0/one_way = true -[sub_resource type="TileSet" id=13] -0/name = "ground" -0/texture = ExtResource( 2 ) -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(0, 0) -0/navigation_offset = Vector2(0, 0) -0/shape_offset = Vector2(0, 0) -0/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -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, 0, 0) -}] -0/z_index = 0 -1/name = "ground_end" -1/texture = ExtResource( 2 ) -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(0, 0) -1/navigation_offset = Vector2(0, 0) -1/shape_offset = Vector2(0, 0) -1/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -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, 0, 0) -}] -1/z_index = 0 -2/name = "slope" -2/texture = ExtResource( 2 ) -2/tex_offset = Vector2(0, 0) -2/modulate = Color(1, 1, 1, 1) -2/region = Rect2(64, 64, 32, 64) -2/tile_mode = 0 -2/occluder_offset = Vector2(0, 0) -2/navigation_offset = Vector2(0, 0) -2/shape_offset = Vector2(0, 0) -2/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -2/shape = SubResource( 5 ) -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( 5 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -2/z_index = 0 -3/name = "wall" -3/texture = ExtResource( 2 ) -3/tex_offset = Vector2(0, 0) -3/modulate = Color(1, 1, 1, 1) -3/region = Rect2(32, 32, 32, 32) -3/tile_mode = 0 -3/occluder_offset = Vector2(0, 0) -3/navigation_offset = Vector2(0, 0) -3/shape_offset = Vector2(0, 0) -3/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -3/shape = SubResource( 6 ) -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( 6 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -3/z_index = 0 -4/name = "slope_top" -4/texture = ExtResource( 2 ) -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(0, 0) -4/navigation_offset = Vector2(0, 0) -4/shape_offset = Vector2(0, 0) -4/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -4/shape = SubResource( 7 ) -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( 7 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -4/z_index = 0 -5/name = "one_way" -5/texture = ExtResource( 2 ) -5/tex_offset = Vector2(0, 0) -5/modulate = Color(1, 1, 1, 1) -5/region = Rect2(64, 0, 32, 32) -5/tile_mode = 0 -5/occluder_offset = Vector2(0, 0) -5/navigation_offset = Vector2(0, 0) -5/shape_offset = Vector2(0, 0) -5/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -5/shape = SubResource( 8 ) -5/shape_one_way = true -5/shape_one_way_margin = 1.0 -5/shapes = [{ -"autotile_coord": Vector2(0, 0), -"one_way": true, -"one_way_margin": 1.0, -"shape": SubResource( 8 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -5/z_index = 0 -6/name = "one_way_end" -6/texture = ExtResource( 2 ) -6/tex_offset = Vector2(0, 0) -6/modulate = Color(1, 1, 1, 1) -6/region = Rect2(96, 0, 32, 32) -6/tile_mode = 0 -6/occluder_offset = Vector2(0, 0) -6/navigation_offset = Vector2(0, 0) -6/shape_offset = Vector2(0, 0) -6/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -6/shape = SubResource( 9 ) -6/shape_one_way = true -6/shape_one_way_margin = 1.0 -6/shapes = [{ -"autotile_coord": Vector2(0, 0), -"one_way": true, -"one_way_margin": 1.0, -"shape": SubResource( 9 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -6/z_index = 0 -7/name = "rock" -7/texture = ExtResource( 2 ) -7/tex_offset = Vector2(0, 0) -7/modulate = Color(1, 1, 1, 1) -7/region = Rect2(0, 32, 32, 32) -7/tile_mode = 0 -7/occluder_offset = Vector2(0, 0) -7/navigation_offset = Vector2(0, 0) -7/shape_offset = Vector2(0, 0) -7/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -7/shape = SubResource( 10 ) -7/shape_one_way = false -7/shape_one_way_margin = 1.0 -7/shapes = [{ -"autotile_coord": Vector2(0, 0), -"one_way": false, -"one_way_margin": 1.0, -"shape": SubResource( 10 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -7/z_index = 0 -8/name = "bottom" -8/texture = ExtResource( 2 ) -8/tex_offset = Vector2(0, 0) -8/modulate = Color(1, 1, 1, 1) -8/region = Rect2(192, 32, 32, 32) -8/tile_mode = 0 -8/occluder_offset = Vector2(0, 0) -8/navigation_offset = Vector2(0, 0) -8/shape_offset = Vector2(0, 0) -8/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -8/shape = SubResource( 11 ) -8/shape_one_way = false -8/shape_one_way_margin = 1.0 -8/shapes = [{ -"autotile_coord": Vector2(0, 0), -"one_way": false, -"one_way_margin": 1.0, -"shape": SubResource( 11 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -8/z_index = 0 -9/name = "bottom_end" -9/texture = ExtResource( 2 ) -9/tex_offset = Vector2(0, 0) -9/modulate = Color(1, 1, 1, 1) -9/region = Rect2(224, 32, 32, 32) -9/tile_mode = 0 -9/occluder_offset = Vector2(0, 0) -9/navigation_offset = Vector2(0, 0) -9/shape_offset = Vector2(0, 0) -9/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -9/shape = SubResource( 12 ) -9/shape_one_way = false -9/shape_one_way_margin = 1.0 -9/shapes = [{ -"autotile_coord": Vector2(0, 0), -"one_way": false, -"one_way_margin": 1.0, -"shape": SubResource( 12 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -9/z_index = 0 -10/name = "bottom_corner" -10/texture = ExtResource( 2 ) -10/tex_offset = Vector2(0, 0) -10/modulate = Color(1, 1, 1, 1) -10/region = Rect2(160, 32, 32, 32) -10/tile_mode = 0 -10/occluder_offset = Vector2(0, 0) -10/navigation_offset = Vector2(0, 0) -10/shape_offset = Vector2(0, 0) -10/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -10/shape = SubResource( 3 ) -10/shape_one_way = false -10/shape_one_way_margin = 1.0 -10/shapes = [{ -"autotile_coord": Vector2(0, 0), -"one_way": false, -"one_way_margin": 1.0, -"shape": SubResource( 3 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -10/z_index = 0 -11/name = "tree_trunk_0" -11/texture = ExtResource( 2 ) -11/tex_offset = Vector2(0, 0) -11/modulate = Color(1, 1, 1, 1) -11/region = Rect2(128, 64, 32, 32) -11/tile_mode = 0 -11/occluder_offset = Vector2(0, 0) -11/navigation_offset = Vector2(0, 0) -11/shape_offset = Vector2(0, 0) -11/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -11/shape_one_way = false -11/shape_one_way_margin = 0.0 -11/shapes = [] -11/z_index = 0 -12/name = "tree_trunk_1" -12/texture = ExtResource( 2 ) -12/tex_offset = Vector2(0, 0) -12/modulate = Color(1, 1, 1, 1) -12/region = Rect2(128, 32, 32, 32) -12/tile_mode = 0 -12/occluder_offset = Vector2(0, 0) -12/navigation_offset = Vector2(0, 0) -12/shape_offset = Vector2(0, 0) -12/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -12/shape_one_way = false -12/shape_one_way_margin = 0.0 -12/shapes = [] -12/z_index = 0 -13/name = "tree_base" -13/texture = ExtResource( 2 ) -13/tex_offset = Vector2(0, 0) -13/modulate = Color(1, 1, 1, 1) -13/region = Rect2(128, 96, 32, 32) -13/tile_mode = 0 -13/occluder_offset = Vector2(0, 0) -13/navigation_offset = Vector2(0, 0) -13/shape_offset = Vector2(0, 0) -13/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -13/shape = SubResource( 4 ) -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( 4 ), -"shape_transform": Transform2D(1, 0, 0, 1, 0, 0) -}] -13/z_index = 0 -14/name = "tree_top" -14/texture = ExtResource( 2 ) -14/tex_offset = Vector2(0, 0) -14/modulate = Color(1, 1, 1, 1) -14/region = Rect2(128, 0, 32, 32) -14/tile_mode = 0 -14/occluder_offset = Vector2(0, 0) -14/navigation_offset = Vector2(0, 0) -14/shape_offset = Vector2(0, 0) -14/shape_transform = Transform2D(1, 0, 0, 1, 0, 0) -14/shape_one_way = false -14/shape_one_way_margin = 0.0 -14/shapes = [] -14/z_index = 0 +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_do6p2"] +texture = ExtResource("2") +margins = Vector2i(0, 32) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 32, 0, 32) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ju8am"] +texture = ExtResource("2") +margins = Vector2i(192, 32) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 32, 0, 32, 24, 0, 24) + +[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_7h7mc"] +texture = ExtResource("2") +margins = Vector2i(224, 32) +texture_region_size = Vector2i(32, 32) +0:0/next_alternative_id = 8 +0:0/0 = 0 +0:0/0/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/0/physics_layer_0/angular_velocity = 0.0 +0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +0:0/1 = 1 +0:0/1/flip_h = true +0:0/1/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/1/physics_layer_0/angular_velocity = 0.0 +0:0/1/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +0:0/2 = 2 +0:0/2/flip_v = true +0:0/2/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/2/physics_layer_0/angular_velocity = 0.0 +0:0/2/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +0:0/3 = 3 +0:0/3/flip_h = true +0:0/3/flip_v = true +0:0/3/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/3/physics_layer_0/angular_velocity = 0.0 +0:0/3/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +0:0/4 = 4 +0:0/4/transpose = true +0:0/4/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/4/physics_layer_0/angular_velocity = 0.0 +0:0/4/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +0:0/5 = 5 +0:0/5/flip_h = true +0:0/5/transpose = true +0:0/5/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/5/physics_layer_0/angular_velocity = 0.0 +0:0/5/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +0:0/6 = 6 +0:0/6/flip_v = true +0:0/6/transpose = true +0:0/6/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/6/physics_layer_0/angular_velocity = 0.0 +0:0/6/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) +0:0/7 = 7 +0:0/7/flip_h = true +0:0/7/flip_v = true +0:0/7/transpose = true +0:0/7/physics_layer_0/linear_velocity = Vector2(0, 0) +0:0/7/physics_layer_0/angular_velocity = 0.0 +0:0/7/physics_layer_0/polygon_0/points = PackedVector2Array(0, 0, 28, 0, 28, 24, 0, 24) + +[sub_resource type="TileSet" id="13"] +physics_layer_0/collision_layer = 1 +sources/0 = SubResource("TileSetAtlasSource_rab6l") +sources/1 = SubResource("TileSetAtlasSource_o7puq") +sources/2 = SubResource("TileSetAtlasSource_f777p") +sources/3 = SubResource("TileSetAtlasSource_oeweg") +sources/4 = SubResource("TileSetAtlasSource_pq75v") +sources/5 = SubResource("TileSetAtlasSource_7bhqb") +sources/6 = SubResource("TileSetAtlasSource_rss6p") +sources/7 = SubResource("TileSetAtlasSource_do6p2") +sources/8 = SubResource("TileSetAtlasSource_ju8am") +sources/9 = SubResource("TileSetAtlasSource_7h7mc") +sources/10 = SubResource("TileSetAtlasSource_j5g0l") +sources/11 = SubResource("TileSetAtlasSource_uyp8g") +sources/12 = SubResource("TileSetAtlasSource_ds0a0") +sources/13 = SubResource("TileSetAtlasSource_4ksjb") +sources/14 = SubResource("TileSetAtlasSource_ubcc7") [node name="Level" type="Node2D"] process_mode = 1 -script = ExtResource( 1 ) +script = ExtResource("1") [node name="TileMap" type="TileMap" parent="."] -tile_set = SubResource( 13 ) -cell_size = Vector2(32, 32) -format = 1 -tile_data = PackedInt32Array(-65546, 536870913, 0, -65545, 1, 0, -131044, 536870913, 0, -131043, 1, 0, -10, 536870915, 0, -9, 3, 0, -65508, 536870915, 0, -65507, 3, 0, 65526, 536870915, 0, 65527, 3, 0, 28, 536870915, 0, 29, 3, 0, 131062, 536870915, 0, 131063, 3, 0, 131069, 536870918, 0, 131070, 5, 0, 131071, 5, 0, 65536, 5, 0, 65537, 5, 0, 65538, 5, 0, 65539, 5, 0, 65540, 6, 0, 65564, 536870915, 0, 65565, 3, 0, 196598, 536870915, 0, 196599, 3, 0, 131080, 536870913, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 1, 0, 131100, 536870915, 0, 131101, 3, 0, 262134, 536870915, 0, 262135, 3, 0, 196616, 536870921, 0, 196617, 8, 0, 196618, 8, 0, 196619, 8, 0, 196620, 8, 0, 196621, 9, 0, 196626, 536870913, 0, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 0, 0, 196631, 0, 0, 196632, 0, 0, 196633, 0, 0, 196634, 0, 0, 196635, 0, 0, 196636, 536870916, 0, 196637, 3, 0, 327670, 536870915, 0, 327671, 3, 0, 262149, 536870918, 0, 262150, 6, 0, 262162, 536870921, 0, 262163, 536870920, 0, 262164, 536870920, 0, 262165, 536870920, 0, 262166, 536870920, 0, 262167, 536870922, 0, 262168, 7, 0, 262169, 7, 0, 262170, 7, 0, 262171, 7, 0, 262172, 7, 0, 262173, 3, 0, 393206, 536870915, 0, 393207, 3, 0, 327682, 536870918, 0, 327683, 6, 0, 327703, 536870921, 0, 327704, 536870920, 0, 327705, 536870922, 0, 327706, 7, 0, 327707, 7, 0, 327708, 7, 0, 327709, 3, 0, 458742, 536870915, 0, 458743, 4, 0, 458744, 0, 0, 458745, 0, 0, 458746, 1, 0, 393241, 536870921, 0, 393242, 536870920, 0, 393243, 536870920, 0, 393244, 536870922, 0, 393245, 3, 0, 524278, 536870915, 0, 524279, 536870919, 0, 524280, 536870919, 0, 524281, 536870919, 0, 524282, 3, 0, 458754, 536870913, 0, 458755, 0, 0, 458756, 0, 0, 458757, 2, 0, 458764, 536870913, 0, 458765, 1, 0, 458780, 536870915, 0, 458781, 3, 0, 589814, 536870915, 0, 589815, 536870919, 0, 589816, 536870919, 0, 589817, 536870919, 0, 589818, 3, 0, 524290, 536870915, 0, 524291, 7, 0, 524292, 7, 0, 524294, 536870912, 0, 524295, 536870912, 0, 524296, 536870912, 0, 524297, 536870912, 0, 524298, 536870912, 0, 524299, 536870912, 0, 524300, 536870916, 0, 524301, 3, 0, 524316, 536870915, 0, 524317, 3, 0, 655350, 536870915, 0, 655351, 536870919, 0, 655352, 536870919, 0, 655353, 536870919, 0, 655354, 3, 0, 589826, 536870915, 0, 589827, 7, 0, 589828, 7, 0, 589829, 7, 0, 589830, 7, 0, 589831, 7, 0, 589832, 7, 0, 589833, 7, 0, 589834, 7, 0, 589835, 7, 0, 589836, 7, 0, 589837, 4, 0, 589838, 0, 0, 589839, 1, 0, 589841, 536870918, 0, 589842, 5, 0, 589843, 6, 0, 589852, 536870915, 0, 589853, 3, 0, 720886, 536870915, 0, 720887, 536870919, 0, 720888, 536870919, 0, 720889, 536870919, 0, 720890, 3, 0, 655362, 536870921, 0, 655363, 536870920, 0, 655364, 536870920, 0, 655365, 536870920, 0, 655366, 536870920, 0, 655367, 536870920, 0, 655368, 536870920, 0, 655369, 536870920, 0, 655370, 536870920, 0, 655371, 536870920, 0, 655372, 536870920, 0, 655373, 536870920, 0, 655374, 536870920, 0, 655375, 9, 0, 655381, 536870918, 0, 655382, 5, 0, 655383, 6, 0, 655388, 536870915, 0, 655389, 3, 0, 786422, 536870915, 0, 786423, 536870919, 0, 786424, 536870919, 0, 786425, 536870919, 0, 786426, 3, 0, 720924, 536870915, 0, 720925, 3, 0, 851958, 536870915, 0, 851959, 536870919, 0, 851960, 536870919, 0, 851961, 536870919, 0, 851962, 3, 0, 786456, 536870918, 0, 786457, 536870917, 0, 786458, 6, 0, 786460, 536870915, 0, 786461, 3, 0, 917494, 536870915, 0, 917495, 536870919, 0, 917496, 536870919, 0, 917497, 536870919, 0, 917498, 4, 0, 917499, 0, 0, 917500, 0, 0, 917501, 0, 0, 917502, 0, 0, 917503, 0, 0, 851968, 0, 0, 851969, 1, 0, 851996, 536870915, 0, 851997, 3, 0, 983030, 536870915, 0, 983031, 536870919, 0, 983032, 536870919, 0, 983033, 536870919, 0, 983034, 536870919, 0, 983035, 536870919, 0, 983036, 536870919, 0, 983037, 536870919, 0, 983038, 536870919, 0, 983039, 536870919, 0, 917504, 536870919, 0, 917505, 3, 0, 917526, 536870913, 0, 917527, 536870912, 0, 917528, 536870912, 0, 917529, 0, 0, 917530, 536870912, 0, 917531, 536870912, 0, 917532, 536870916, 0, 917533, 3, 0, 1048566, 536870915, 0, 1048567, 536870919, 0, 1048568, 536870919, 0, 1048569, 536870919, 0, 1048570, 536870919, 0, 1048571, 536870919, 0, 1048572, 536870919, 0, 1048573, 536870919, 0, 1048574, 536870919, 0, 1048575, 536870919, 0, 983040, 536870919, 0, 983041, 3, 0, 983057, 536870918, 0, 983058, 5, 0, 983059, 6, 0, 983062, 536870915, 0, 983063, 7, 0, 983064, 7, 0, 983065, 7, 0, 983066, 7, 0, 983067, 7, 0, 983068, 7, 0, 983069, 3, 0, 1114102, 536870915, 0, 1114103, 536870919, 0, 1114104, 536870919, 0, 1114105, 536870919, 0, 1114106, 536870919, 0, 1114107, 536870919, 0, 1114108, 536870919, 0, 1114109, 536870919, 0, 1114110, 536870919, 0, 1114111, 536870919, 0, 1048576, 536870919, 0, 1048577, 3, 0, 1048579, 536870926, 0, 1048598, 536870915, 0, 1048599, 7, 0, 1048600, 7, 0, 1048601, 7, 0, 1048602, 7, 0, 1048603, 7, 0, 1048604, 7, 0, 1048605, 3, 0, 1179638, 536870915, 0, 1179639, 536870919, 0, 1179640, 536870919, 0, 1179641, 536870919, 0, 1179642, 536870919, 0, 1179643, 536870919, 0, 1179644, 536870919, 0, 1179645, 536870919, 0, 1179646, 536870919, 0, 1179647, 536870919, 0, 1114112, 536870919, 0, 1114113, 4, 0, 1114114, 0, 0, 1114115, 536870925, 0, 1114116, 0, 0, 1114117, 2, 0, 1114123, 536870926, 0, 1114126, 536870918, 0, 1114127, 5, 0, 1114128, 6, 0, 1114133, 536870914, 0, 1114134, 536870916, 0, 1114135, 7, 0, 1114136, 7, 0, 1114137, 7, 0, 1114138, 7, 0, 1114139, 7, 0, 1114140, 7, 0, 1114141, 3, 0, 1245174, 536870915, 0, 1245175, 536870919, 0, 1245176, 536870919, 0, 1245177, 536870919, 0, 1245178, 536870919, 0, 1245179, 536870919, 0, 1245180, 536870919, 0, 1245181, 536870919, 0, 1245182, 536870919, 0, 1245183, 536870919, 0, 1179648, 536870919, 0, 1179649, 536870919, 0, 1179650, 536870919, 0, 1179651, 536870919, 0, 1179652, 7, 0, 1179654, 2, 0, 1179658, 536870913, 0, 1179659, 536870925, 0, 1179660, 1, 0, 1179668, 536870914, 0, 1179670, 7, 0, 1179671, 7, 0, 1179672, 7, 0, 1179673, 7, 0, 1179674, 7, 0, 1179675, 7, 0, 1179676, 7, 0, 1179677, 3, 0, 1310710, 536870915, 0, 1310711, 536870919, 0, 1310712, 536870919, 0, 1310713, 536870919, 0, 1310714, 536870919, 0, 1310715, 536870919, 0, 1310716, 536870919, 0, 1310717, 536870919, 0, 1310718, 536870919, 0, 1310719, 536870919, 0, 1245184, 536870919, 0, 1245185, 536870919, 0, 1245186, 536870919, 0, 1245187, 536870919, 0, 1245188, 536870919, 0, 1245189, 7, 0, 1245191, 2, 0, 1245194, 536870915, 0, 1245195, 7, 0, 1245196, 3, 0, 1245203, 536870914, 0, 1245205, 7, 0, 1245206, 7, 0, 1245207, 7, 0, 1245208, 7, 0, 1245209, 7, 0, 1245210, 7, 0, 1245211, 7, 0, 1245212, 7, 0, 1245213, 3, 0, 1376246, 536870915, 0, 1376247, 536870919, 0, 1376248, 536870919, 0, 1376249, 536870919, 0, 1376250, 536870919, 0, 1376251, 536870919, 0, 1376252, 536870919, 0, 1376253, 536870919, 0, 1376254, 536870919, 0, 1376255, 536870919, 0, 1310720, 536870919, 0, 1310721, 536870919, 0, 1310722, 536870919, 0, 1310723, 536870919, 0, 1310724, 536870919, 0, 1310725, 536870919, 0, 1310726, 7, 0, 1310728, 536870912, 0, 1310729, 536870912, 0, 1310730, 536870916, 0, 1310731, 7, 0, 1310732, 4, 0, 1310733, 0, 0, 1310734, 0, 0, 1310735, 0, 0, 1310736, 0, 0, 1310737, 0, 0, 1310738, 536870912, 0, 1310740, 7, 0, 1310741, 7, 0, 1310742, 7, 0, 1310743, 7, 0, 1310744, 7, 0, 1310745, 7, 0, 1310746, 7, 0, 1310747, 7, 0, 1310748, 7, 0, 1310749, 3, 0, 1441782, 536870921, 0, 1441783, 536870920, 0, 1441784, 536870920, 0, 1441785, 536870920, 0, 1441786, 536870920, 0, 1441787, 536870920, 0, 1441788, 536870920, 0, 1441789, 536870920, 0, 1441790, 536870920, 0, 1441791, 536870920, 0, 1376256, 536870920, 0, 1376257, 536870920, 0, 1376258, 536870920, 0, 1376259, 536870920, 0, 1376260, 536870920, 0, 1376261, 536870920, 0, 1376262, 536870920, 0, 1376263, 536870920, 0, 1376264, 536870920, 0, 1376265, 536870920, 0, 1376266, 536870920, 0, 1376267, 536870920, 0, 1376268, 536870920, 0, 1376269, 536870920, 0, 1376270, 536870920, 0, 1376271, 536870920, 0, 1376272, 536870920, 0, 1376273, 536870920, 0, 1376274, 536870920, 0, 1376275, 536870920, 0, 1376276, 536870920, 0, 1376277, 536870920, 0, 1376278, 536870920, 0, 1376279, 536870920, 0, 1376280, 536870920, 0, 1376281, 536870920, 0, 1376282, 536870920, 0, 1376283, 536870920, 0, 1376284, 8, 0, 1376285, 9, 0) +tile_set = SubResource("13") +format = 2 +layer_0/tile_data = PackedInt32Array(-65546, 1, 65536, -65545, 1, 0, -131044, 1, 65536, -131043, 1, 0, -10, 3, 65536, -9, 3, 0, -65508, 3, 65536, -65507, 3, 0, 65526, 3, 65536, 65527, 3, 0, 28, 3, 65536, 29, 3, 0, 131062, 3, 65536, 131063, 3, 0, 131069, 6, 65536, 131070, 5, 0, 131071, 5, 0, 65536, 5, 0, 65537, 5, 0, 65538, 5, 0, 65539, 5, 0, 65540, 6, 0, 65564, 3, 65536, 65565, 3, 0, 196598, 3, 65536, 196599, 3, 0, 131080, 1, 65536, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 1, 0, 131100, 3, 65536, 131101, 3, 0, 262134, 3, 65536, 262135, 3, 0, 196616, 9, 65536, 196617, 8, 0, 196618, 8, 0, 196619, 8, 0, 196620, 8, 0, 196621, 9, 0, 196626, 1, 65536, 196627, 0, 0, 196628, 0, 0, 196629, 0, 0, 196630, 0, 0, 196631, 0, 0, 196632, 0, 0, 196633, 0, 0, 196634, 0, 0, 196635, 0, 0, 196636, 4, 65536, 196637, 3, 0, 327670, 3, 65536, 327671, 3, 0, 262149, 6, 65536, 262150, 6, 0, 262162, 9, 65536, 262163, 8, 65536, 262164, 8, 65536, 262165, 8, 65536, 262166, 8, 65536, 262167, 10, 65536, 262168, 7, 0, 262169, 7, 0, 262170, 7, 0, 262171, 7, 0, 262172, 7, 0, 262173, 3, 0, 393206, 3, 65536, 393207, 3, 0, 327682, 6, 65536, 327683, 6, 0, 327703, 9, 65536, 327704, 8, 65536, 327705, 10, 65536, 327706, 7, 0, 327707, 7, 0, 327708, 7, 0, 327709, 3, 0, 458742, 3, 65536, 458743, 4, 0, 458744, 0, 0, 458745, 0, 0, 458746, 1, 0, 393241, 9, 65536, 393242, 8, 65536, 393243, 8, 65536, 393244, 10, 65536, 393245, 3, 0, 524278, 3, 65536, 524279, 7, 65536, 524280, 7, 65536, 524281, 7, 65536, 524282, 3, 0, 458754, 1, 65536, 458755, 0, 0, 458756, 0, 0, 458757, 2, 0, 458764, 1, 65536, 458765, 1, 0, 458780, 3, 65536, 458781, 3, 0, 589814, 3, 65536, 589815, 7, 65536, 589816, 7, 65536, 589817, 7, 65536, 589818, 3, 0, 524290, 3, 65536, 524291, 7, 0, 524292, 7, 0, 524294, 0, 65536, 524295, 0, 65536, 524296, 0, 65536, 524297, 0, 65536, 524298, 0, 65536, 524299, 0, 65536, 524300, 4, 65536, 524301, 3, 0, 524316, 3, 65536, 524317, 3, 0, 655350, 3, 65536, 655351, 7, 65536, 655352, 7, 65536, 655353, 7, 65536, 655354, 3, 0, 589826, 3, 65536, 589827, 7, 0, 589828, 7, 0, 589829, 7, 0, 589830, 7, 0, 589831, 7, 0, 589832, 7, 0, 589833, 7, 0, 589834, 7, 0, 589835, 7, 0, 589836, 7, 0, 589837, 4, 0, 589838, 0, 0, 589839, 1, 0, 589841, 6, 65536, 589842, 5, 0, 589843, 6, 0, 589852, 3, 65536, 589853, 3, 0, 720886, 3, 65536, 720887, 7, 65536, 720888, 7, 65536, 720889, 7, 65536, 720890, 3, 0, 655362, 9, 65536, 655363, 8, 65536, 655364, 8, 65536, 655365, 8, 65536, 655366, 8, 65536, 655367, 8, 65536, 655368, 8, 65536, 655369, 8, 65536, 655370, 8, 65536, 655371, 8, 65536, 655372, 8, 65536, 655373, 8, 65536, 655374, 8, 65536, 655375, 9, 0, 655381, 6, 65536, 655382, 5, 0, 655383, 6, 0, 655388, 3, 65536, 655389, 3, 0, 786422, 3, 65536, 786423, 7, 65536, 786424, 7, 65536, 786425, 7, 65536, 786426, 3, 0, 720924, 3, 65536, 720925, 3, 0, 851958, 3, 65536, 851959, 7, 65536, 851960, 7, 65536, 851961, 7, 65536, 851962, 3, 0, 786456, 6, 65536, 786457, 5, 65536, 786458, 6, 0, 786460, 3, 65536, 786461, 3, 0, 917494, 3, 65536, 917495, 7, 65536, 917496, 7, 65536, 917497, 7, 65536, 917498, 4, 0, 917499, 0, 0, 917500, 0, 0, 917501, 0, 0, 917502, 0, 0, 917503, 0, 0, 851968, 0, 0, 851969, 1, 0, 851996, 3, 65536, 851997, 3, 0, 983030, 3, 65536, 983031, 7, 65536, 983032, 7, 65536, 983033, 7, 65536, 983034, 7, 65536, 983035, 7, 65536, 983036, 7, 65536, 983037, 7, 65536, 983038, 7, 65536, 983039, 7, 65536, 917504, 7, 65536, 917505, 3, 0, 917526, 1, 65536, 917527, 0, 65536, 917528, 0, 65536, 917529, 0, 0, 917530, 0, 65536, 917531, 0, 65536, 917532, 4, 65536, 917533, 3, 0, 1048566, 3, 65536, 1048567, 7, 65536, 1048568, 7, 65536, 1048569, 7, 65536, 1048570, 7, 65536, 1048571, 7, 65536, 1048572, 7, 65536, 1048573, 7, 65536, 1048574, 7, 65536, 1048575, 7, 65536, 983040, 7, 65536, 983041, 3, 0, 983057, 6, 65536, 983058, 5, 0, 983059, 6, 0, 983062, 3, 65536, 983063, 7, 0, 983064, 7, 0, 983065, 7, 0, 983066, 7, 0, 983067, 7, 0, 983068, 7, 0, 983069, 3, 0, 1114102, 3, 65536, 1114103, 7, 65536, 1114104, 7, 65536, 1114105, 7, 65536, 1114106, 7, 65536, 1114107, 7, 65536, 1114108, 7, 65536, 1114109, 7, 65536, 1114110, 7, 65536, 1114111, 7, 65536, 1048576, 7, 65536, 1048577, 3, 0, 1048579, 14, 65536, 1048598, 3, 65536, 1048599, 7, 0, 1048600, 7, 0, 1048601, 7, 0, 1048602, 7, 0, 1048603, 7, 0, 1048604, 7, 0, 1048605, 3, 0, 1179638, 3, 65536, 1179639, 7, 65536, 1179640, 7, 65536, 1179641, 7, 65536, 1179642, 7, 65536, 1179643, 7, 65536, 1179644, 7, 65536, 1179645, 7, 65536, 1179646, 7, 65536, 1179647, 7, 65536, 1114112, 7, 65536, 1114113, 4, 0, 1114114, 0, 0, 1114115, 13, 65536, 1114116, 0, 0, 1114117, 2, 0, 1114123, 14, 65536, 1114126, 6, 65536, 1114127, 5, 0, 1114128, 6, 0, 1114133, 2, 65536, 1114134, 4, 65536, 1114135, 7, 0, 1114136, 7, 0, 1114137, 7, 0, 1114138, 7, 0, 1114139, 7, 0, 1114140, 7, 0, 1114141, 3, 0, 1245174, 3, 65536, 1245175, 7, 65536, 1245176, 7, 65536, 1245177, 7, 65536, 1245178, 7, 65536, 1245179, 7, 65536, 1245180, 7, 65536, 1245181, 7, 65536, 1245182, 7, 65536, 1245183, 7, 65536, 1179648, 7, 65536, 1179649, 7, 65536, 1179650, 7, 65536, 1179651, 7, 65536, 1179652, 7, 0, 1179654, 2, 0, 1179658, 1, 65536, 1179659, 13, 65536, 1179660, 1, 0, 1179668, 2, 65536, 1179670, 7, 0, 1179671, 7, 0, 1179672, 7, 0, 1179673, 7, 0, 1179674, 7, 0, 1179675, 7, 0, 1179676, 7, 0, 1179677, 3, 0, 1310710, 3, 65536, 1310711, 7, 65536, 1310712, 7, 65536, 1310713, 7, 65536, 1310714, 7, 65536, 1310715, 7, 65536, 1310716, 7, 65536, 1310717, 7, 65536, 1310718, 7, 65536, 1310719, 7, 65536, 1245184, 7, 65536, 1245185, 7, 65536, 1245186, 7, 65536, 1245187, 7, 65536, 1245188, 7, 65536, 1245189, 7, 0, 1245191, 2, 0, 1245194, 3, 65536, 1245195, 7, 0, 1245196, 3, 0, 1245203, 2, 65536, 1245205, 7, 0, 1245206, 7, 0, 1245207, 7, 0, 1245208, 7, 0, 1245209, 7, 0, 1245210, 7, 0, 1245211, 7, 0, 1245212, 7, 0, 1245213, 3, 0, 1376246, 3, 65536, 1376247, 7, 65536, 1376248, 7, 65536, 1376249, 7, 65536, 1376250, 7, 65536, 1376251, 7, 65536, 1376252, 7, 65536, 1376253, 7, 65536, 1376254, 7, 65536, 1376255, 7, 65536, 1310720, 7, 65536, 1310721, 7, 65536, 1310722, 7, 65536, 1310723, 7, 65536, 1310724, 7, 65536, 1310725, 7, 65536, 1310726, 7, 0, 1310728, 0, 65536, 1310729, 0, 65536, 1310730, 4, 65536, 1310731, 7, 0, 1310732, 4, 0, 1310733, 0, 0, 1310734, 0, 0, 1310735, 0, 0, 1310736, 0, 0, 1310737, 0, 0, 1310738, 0, 65536, 1310740, 7, 0, 1310741, 7, 0, 1310742, 7, 0, 1310743, 7, 0, 1310744, 7, 0, 1310745, 7, 0, 1310746, 7, 0, 1310747, 7, 0, 1310748, 7, 0, 1310749, 3, 0, 1441782, 9, 65536, 1441783, 8, 65536, 1441784, 8, 65536, 1441785, 8, 65536, 1441786, 8, 65536, 1441787, 8, 65536, 1441788, 8, 65536, 1441789, 8, 65536, 1441790, 8, 65536, 1441791, 8, 65536, 1376256, 8, 65536, 1376257, 8, 65536, 1376258, 8, 65536, 1376259, 8, 65536, 1376260, 8, 65536, 1376261, 8, 65536, 1376262, 8, 65536, 1376263, 8, 65536, 1376264, 8, 65536, 1376265, 8, 65536, 1376266, 8, 65536, 1376267, 8, 65536, 1376268, 8, 65536, 1376269, 8, 65536, 1376270, 8, 65536, 1376271, 8, 65536, 1376272, 8, 65536, 1376273, 8, 65536, 1376274, 8, 65536, 1376275, 8, 65536, 1376276, 8, 65536, 1376277, 8, 65536, 1376278, 8, 65536, 1376279, 8, 65536, 1376280, 8, 65536, 1376281, 8, 65536, 1376282, 8, 65536, 1376283, 8, 65536, 1376284, 8, 0, 1376285, 9, 0) -[node name="ParallaxBackground" parent="." instance=ExtResource( 3 )] +[node name="ParallaxBackground" parent="." instance=ExtResource("3")] -[node name="SkeletalPlayer" parent="." instance=ExtResource( 4 )] +[node name="SkeletalPlayer" parent="." instance=ExtResource("4")] position = Vector2(90, 546) diff --git a/2d/skeleton/level/background/cloud_1.png.import b/2d/skeleton/level/background/cloud_1.png.import index 0c926742887..b43ca56807a 100644 --- a/2d/skeleton/level/background/cloud_1.png.import +++ b/2d/skeleton/level/background/cloud_1.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/cloud_1.png-d9f3821e0d58b8b79ac7a8bc81287ae8.stex" +type="CompressedTexture2D" +uid="uid://j28pf8bfgty" +path="res://.godot/imported/cloud_1.png-d9f3821e0d58b8b79ac7a8bc81287ae8.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://level/background/cloud_1.png" -dest_files=["res://.godot/imported/cloud_1.png-d9f3821e0d58b8b79ac7a8bc81287ae8.stex"] +dest_files=["res://.godot/imported/cloud_1.png-d9f3821e0d58b8b79ac7a8bc81287ae8.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/level/background/cloud_2.png.import b/2d/skeleton/level/background/cloud_2.png.import index 8ac1e6dfdfb..15ed87c8d15 100644 --- a/2d/skeleton/level/background/cloud_2.png.import +++ b/2d/skeleton/level/background/cloud_2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/cloud_2.png-1b2bb3f73839db8c5ad1d01ad2876ab2.stex" +type="CompressedTexture2D" +uid="uid://kreppu5t30jn" +path="res://.godot/imported/cloud_2.png-1b2bb3f73839db8c5ad1d01ad2876ab2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://level/background/cloud_2.png" -dest_files=["res://.godot/imported/cloud_2.png-1b2bb3f73839db8c5ad1d01ad2876ab2.stex"] +dest_files=["res://.godot/imported/cloud_2.png-1b2bb3f73839db8c5ad1d01ad2876ab2.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/level/background/cloud_3.png.import b/2d/skeleton/level/background/cloud_3.png.import index 25d6f82e9a0..8dc75998bb0 100644 --- a/2d/skeleton/level/background/cloud_3.png.import +++ b/2d/skeleton/level/background/cloud_3.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/cloud_3.png-a4ce274fb6c38e3b05e8f88cf8cfffb6.stex" +type="CompressedTexture2D" +uid="uid://bwhwlduoqnb15" +path="res://.godot/imported/cloud_3.png-a4ce274fb6c38e3b05e8f88cf8cfffb6.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://level/background/cloud_3.png" -dest_files=["res://.godot/imported/cloud_3.png-a4ce274fb6c38e3b05e8f88cf8cfffb6.stex"] +dest_files=["res://.godot/imported/cloud_3.png-a4ce274fb6c38e3b05e8f88cf8cfffb6.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/level/background/distant_platforms_1.png.import b/2d/skeleton/level/background/distant_platforms_1.png.import index e6f3616288a..8b6e34f3986 100644 --- a/2d/skeleton/level/background/distant_platforms_1.png.import +++ b/2d/skeleton/level/background/distant_platforms_1.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/distant_platforms_1.png-34bd3c6d35ad3a7b690f0c018ca8743f.stex" +type="CompressedTexture2D" +uid="uid://b4lffygwgc7vy" +path="res://.godot/imported/distant_platforms_1.png-34bd3c6d35ad3a7b690f0c018ca8743f.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://level/background/distant_platforms_1.png" -dest_files=["res://.godot/imported/distant_platforms_1.png-34bd3c6d35ad3a7b690f0c018ca8743f.stex"] +dest_files=["res://.godot/imported/distant_platforms_1.png-34bd3c6d35ad3a7b690f0c018ca8743f.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=1 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/level/background/distant_platforms_2.png.import b/2d/skeleton/level/background/distant_platforms_2.png.import index b4bf11c419f..2afffef65ff 100644 --- a/2d/skeleton/level/background/distant_platforms_2.png.import +++ b/2d/skeleton/level/background/distant_platforms_2.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/distant_platforms_2.png-2ecd927ea77506f4ec1f3533e13d711a.stex" +type="CompressedTexture2D" +uid="uid://do8unqmg6yew6" +path="res://.godot/imported/distant_platforms_2.png-2ecd927ea77506f4ec1f3533e13d711a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://level/background/distant_platforms_2.png" -dest_files=["res://.godot/imported/distant_platforms_2.png-2ecd927ea77506f4ec1f3533e13d711a.stex"] +dest_files=["res://.godot/imported/distant_platforms_2.png-2ecd927ea77506f4ec1f3533e13d711a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=1 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/level/background/sky.png.import b/2d/skeleton/level/background/sky.png.import index 6abaf608fe4..4182340d78f 100644 --- a/2d/skeleton/level/background/sky.png.import +++ b/2d/skeleton/level/background/sky.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/sky.png-c2b26f59be93d20195841091d4bd6a50.stex" +type="CompressedTexture2D" +uid="uid://c8jm7s3tbb3b" +path="res://.godot/imported/sky.png-c2b26f59be93d20195841091d4bd6a50.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://level/background/sky.png" -dest_files=["res://.godot/imported/sky.png-c2b26f59be93d20195841091d4bd6a50.stex"] +dest_files=["res://.godot/imported/sky.png-c2b26f59be93d20195841091d4bd6a50.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=1 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/level/tileset/tiles_demo.png.import b/2d/skeleton/level/tileset/tiles_demo.png.import index b3cf4e8597f..fdccfd5b97a 100644 --- a/2d/skeleton/level/tileset/tiles_demo.png.import +++ b/2d/skeleton/level/tileset/tiles_demo.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/tiles_demo.png-68724c3ed5763f2cba827c6d71224f19.stex" +type="CompressedTexture2D" +uid="uid://b54eod3j4xx34" +path="res://.godot/imported/tiles_demo.png-68724c3ed5763f2cba827c6d71224f19.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://level/tileset/tiles_demo.png" -dest_files=["res://.godot/imported/tiles_demo.png-68724c3ed5763f2cba827c6d71224f19.stex"] +dest_files=["res://.godot/imported/tiles_demo.png-68724c3ed5763f2cba827c6d71224f19.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=false -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=false -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/player/gBot.png.import b/2d/skeleton/player/gBot.png.import index 9eac0d36e56..8347529dbc6 100644 --- a/2d/skeleton/player/gBot.png.import +++ b/2d/skeleton/player/gBot.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/gBot.png-b94e4323e02d18e8c6fabf612fa396da.stex" +type="CompressedTexture2D" +uid="uid://cgnjku7sa0qyt" +path="res://.godot/imported/gBot.png-b94e4323e02d18e8c6fabf612fa396da.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://player/gBot.png" -dest_files=["res://.godot/imported/gBot.png-b94e4323e02d18e8c6fabf612fa396da.stex"] +dest_files=["res://.godot/imported/gBot.png-b94e4323e02d18e8c6fabf612fa396da.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/skeleton/player/player.gd b/2d/skeleton/player/player.gd index adf0ef4aaee..bce2794a34f 100644 --- a/2d/skeleton/player/player.gd +++ b/2d/skeleton/player/player.gd @@ -11,7 +11,6 @@ enum States { } var speed = Vector2(120.0, 360.0) -var velocity = Vector2.ZERO var falling_slow = false var falling_fast = false var no_move_horizontal_time = 0.0 @@ -35,7 +34,6 @@ func _physics_process(delta): velocity.x = (Input.get_axis(&"move_left", &"move_right")) * speed.x if Input.is_action_pressed(&"walk"): velocity.x *= 0.2 - #warning-ignore:return_value_discarded # TODO: This information should be set to the CharacterBody properties instead of arguments: , Vector2.UP # TODO: Rename velocity to linear_velocity in the rest of the script. move_and_slide() diff --git a/2d/skeleton/project.godot b/2d/skeleton/project.godot index 811ceb8c9a9..b518d7d7b22 100644 --- a/2d/skeleton/project.godot +++ b/2d/skeleton/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 _global_script_classes=[{ "base": "CharacterBody2D", @@ -25,53 +25,53 @@ config/description="This demo shows how to create a rigged and animated characte Godot's Skeleton2D node. There are several movement-related animations and there is a simple character controller that controls the animations." run/main_scene="res://level.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/size/width=1600 -window/size/height=900 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=1600 +window/size/viewport_height=900 +window/stretch/mode="canvas_items" window/stretch/aspect="keep_height" [input] move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } exit={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } walk={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } diff --git a/2d/sprite_shaders/godotea.png.import b/2d/sprite_shaders/godotea.png.import index 2500dee3a63..21b6e0e036d 100644 --- a/2d/sprite_shaders/godotea.png.import +++ b/2d/sprite_shaders/godotea.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/godotea.png-418ef4f4be671d254e4230569960266a.stex" +type="CompressedTexture2D" +uid="uid://c3w5hecxtwqeh" +path="res://.godot/imported/godotea.png-418ef4f4be671d254e4230569960266a.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://godotea.png" -dest_files=["res://.godot/imported/godotea.png-418ef4f4be671d254e4230569960266a.stex"] +dest_files=["res://.godot/imported/godotea.png-418ef4f4be671d254e4230569960266a.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/sprite_shaders/icon.png.import b/2d/sprite_shaders/icon.png.import index 889af9df580..b926446d28d 100644 --- a/2d/sprite_shaders/icon.png.import +++ b/2d/sprite_shaders/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://bh1d5ld3c8sk4" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/2d/sprite_shaders/project.godot b/2d/sprite_shaders/project.godot index 08aee46c7bc..588474f5cd6 100644 --- a/2d/sprite_shaders/project.godot +++ b/2d/sprite_shaders/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -14,12 +14,12 @@ config/name="2D Shaders for Sprites" config/description="This is a sample consisting of different shaders applied to some sprites. Effects include outlines, blurs, distorts, shadows, glows, and more." run/main_scene="res://sprite_shaders.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [rendering] diff --git a/2d/sprite_shaders/shaders/aura.gdshader b/2d/sprite_shaders/shaders/aura.gdshader index 15a477da53c..bef3148db12 100644 --- a/2d/sprite_shaders/shaders/aura.gdshader +++ b/2d/sprite_shaders/shaders/aura.gdshader @@ -3,7 +3,7 @@ render_mode blend_premul_alpha; // This shader only works properly with premultiplied alpha blend mode. uniform float aura_width = 2.0; -uniform vec4 aura_color: hint_color; +uniform vec4 aura_color : source_color; void fragment() { vec4 col = texture(TEXTURE, UV); diff --git a/2d/sprite_shaders/shaders/dropshadow.gdshader b/2d/sprite_shaders/shaders/dropshadow.gdshader index 2ed01a2d19e..456e9135c67 100644 --- a/2d/sprite_shaders/shaders/dropshadow.gdshader +++ b/2d/sprite_shaders/shaders/dropshadow.gdshader @@ -2,7 +2,7 @@ shader_type canvas_item; render_mode blend_mix; uniform float radius = 5.0; -uniform vec4 modulate: hint_color; +uniform vec4 modulate : source_color; void fragment() { vec2 ps = TEXTURE_PIXEL_SIZE; diff --git a/2d/sprite_shaders/shaders/offsetshadow.gdshader b/2d/sprite_shaders/shaders/offsetshadow.gdshader index d0b0e53825e..be523966ee4 100644 --- a/2d/sprite_shaders/shaders/offsetshadow.gdshader +++ b/2d/sprite_shaders/shaders/offsetshadow.gdshader @@ -2,7 +2,7 @@ shader_type canvas_item; render_mode blend_mix; uniform vec2 offset = vec2(8.0, 8.0); -uniform vec4 modulate : hint_color; +uniform vec4 modulate : source_color; void fragment() { vec2 ps = TEXTURE_PIXEL_SIZE; diff --git a/2d/sprite_shaders/shaders/outline.gdshader b/2d/sprite_shaders/shaders/outline.gdshader index ada5725ccb3..a20ba889729 100644 --- a/2d/sprite_shaders/shaders/outline.gdshader +++ b/2d/sprite_shaders/shaders/outline.gdshader @@ -1,7 +1,7 @@ shader_type canvas_item; uniform float outline_width = 2.0; -uniform vec4 outline_color: hint_color; +uniform vec4 outline_color : source_color; void fragment() { vec4 col = texture(TEXTURE, UV); diff --git a/2d/sprite_shaders/shaders/silouette.gdshader b/2d/sprite_shaders/shaders/silouette.gdshader index d05bb7efa77..9fc5db58fea 100644 --- a/2d/sprite_shaders/shaders/silouette.gdshader +++ b/2d/sprite_shaders/shaders/silouette.gdshader @@ -1,7 +1,7 @@ shader_type canvas_item; render_mode blend_mix; -uniform vec4 modulate: hint_color; +uniform vec4 modulate : source_color; void fragment() { COLOR = vec4(modulate.rgb, texture(TEXTURE, UV).a * modulate.a); diff --git a/2d/sprite_shaders/sprite_shaders.tscn b/2d/sprite_shaders/sprite_shaders.tscn index f065e6d87d8..294f3f53f77 100644 --- a/2d/sprite_shaders/sprite_shaders.tscn +++ b/2d/sprite_shaders/sprite_shaders.tscn @@ -1,124 +1,130 @@ -[gd_scene load_steps=22 format=2] - -[ext_resource path="res://shaders/outline.gdshader" type="Shader" id=1] -[ext_resource path="res://godotea.png" type="Texture2D" id=2] -[ext_resource path="res://shaders/aura.gdshader" type="Shader" id=3] -[ext_resource path="res://shaders/blur.gdshader" type="Shader" id=4] -[ext_resource path="res://shaders/fatty.gdshader" type="Shader" id=5] -[ext_resource path="res://shaders/dropshadow.gdshader" type="Shader" id=6] -[ext_resource path="res://shaders/offsetshadow.gdshader" type="Shader" id=7] -[ext_resource path="res://shaders/silouette.gdshader" type="Shader" id=8] -[ext_resource path="res://shaders/glow.gdshader" type="Shader" id=9] -[ext_resource path="res://shaders/dissintegrate.gdshader" type="Shader" id=10] - -[sub_resource type="ShaderMaterial" id=1] -shader = ExtResource( 1 ) -shader_param/outline_width = 2.0 -shader_param/outline_color = Color(0, 1, 0.109375, 1) - -[sub_resource type="ShaderMaterial" id=2] - -[sub_resource type="ShaderMaterial" id=3] -shader = ExtResource( 1 ) -shader_param/outline_width = 4.0 -shader_param/outline_color = Color(0, 0, 0, 1) - -[sub_resource type="ShaderMaterial" id=4] -shader = ExtResource( 3 ) -shader_param/aura_width = 6.0 -shader_param/aura_color = Color(0.143326, 0.33235, 0.677765, 0.442) - -[sub_resource type="ShaderMaterial" id=5] -shader = ExtResource( 4 ) -shader_param/radius = 4.0 - -[sub_resource type="ShaderMaterial" id=6] -shader = ExtResource( 5 ) -shader_param/fattyness = 3.0 - -[sub_resource type="ShaderMaterial" id=7] -shader = ExtResource( 6 ) -shader_param/radius = 8.0 -shader_param/modulate = Color(0, 0, 0, 0.501961) - -[sub_resource type="ShaderMaterial" id=8] -shader = ExtResource( 7 ) -shader_param/offset = Vector2(20, 20) -shader_param/modulate = Color(0.90625, 0.269043, 0.746948, 1) - -[sub_resource type="ShaderMaterial" id=9] -shader = ExtResource( 8 ) -shader_param/modulate = Color(1, 0.0234375, 0.481201, 0.596706) - -[sub_resource type="ShaderMaterial" id=10] -shader = ExtResource( 9 ) -shader_param/radius = 5.0 -shader_param/amount = 0.25 - -[sub_resource type="ShaderMaterial" id=11] -shader = ExtResource( 10 ) -shader_param/amount = 4.0 +[gd_scene load_steps=22 format=3 uid="uid://qutrkkh2f6j3"] + +[ext_resource type="Shader" path="res://shaders/outline.gdshader" id="1"] +[ext_resource type="Texture2D" uid="uid://c3w5hecxtwqeh" path="res://godotea.png" id="2"] +[ext_resource type="Shader" path="res://shaders/aura.gdshader" id="3"] +[ext_resource type="Shader" path="res://shaders/blur.gdshader" id="4"] +[ext_resource type="Shader" path="res://shaders/fatty.gdshader" id="5"] +[ext_resource type="Shader" path="res://shaders/dropshadow.gdshader" id="6"] +[ext_resource type="Shader" path="res://shaders/offsetshadow.gdshader" id="7"] +[ext_resource type="Shader" path="res://shaders/silouette.gdshader" id="8"] +[ext_resource type="Shader" path="res://shaders/glow.gdshader" id="9"] +[ext_resource type="Shader" path="res://shaders/dissintegrate.gdshader" id="10"] + +[sub_resource type="ShaderMaterial" id="1"] +shader = ExtResource("1") +shader_parameter/outline_color = null +shader_parameter/outline_width = null + +[sub_resource type="ShaderMaterial" id="2"] + +[sub_resource type="ShaderMaterial" id="3"] +shader = ExtResource("1") +shader_parameter/outline_color = null +shader_parameter/outline_width = null + +[sub_resource type="ShaderMaterial" id="4"] +shader = ExtResource("3") +shader_parameter/aura_color = Color(0, 1, 0.486275, 1) +shader_parameter/aura_width = null + +[sub_resource type="ShaderMaterial" id="5"] +shader = ExtResource("4") +shader_parameter/radius = 4.0 + +[sub_resource type="ShaderMaterial" id="6"] +shader = ExtResource("5") +shader_parameter/fattyness = 3.0 + +[sub_resource type="ShaderMaterial" id="7"] +shader = ExtResource("6") +shader_parameter/modulate = null +shader_parameter/radius = null + +[sub_resource type="ShaderMaterial" id="8"] +shader = ExtResource("7") +shader_parameter/modulate = null +shader_parameter/offset = null + +[sub_resource type="ShaderMaterial" id="9"] +shader = ExtResource("8") +shader_parameter/modulate = Color(0.858824, 0.317647, 0.701961, 1) + +[sub_resource type="ShaderMaterial" id="10"] +shader = ExtResource("9") +shader_parameter/amount = 0.25 +shader_parameter/radius = 5.0 + +[sub_resource type="ShaderMaterial" id="11"] +shader = ExtResource("10") +shader_parameter/amount = 4.0 [node name="SpriteShaders" type="Node2D"] -material = SubResource( 1 ) +material = SubResource("1") position = Vector2(263.737, 179.444) scale = Vector2(0.3, 0.3) [node name="Normal" type="Sprite2D" parent="."] -material = SubResource( 2 ) +texture_filter = 4 +material = SubResource("2") position = Vector2(-2.16144, 0) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Outline" type="Sprite2D" parent="."] -material = SubResource( 3 ) +texture_filter = 4 +material = SubResource("3") position = Vector2(400, 0) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Aura" type="Sprite2D" parent="."] -material = SubResource( 4 ) +texture_filter = 4 +material = SubResource("4") position = Vector2(800, 0) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Blur" type="Sprite2D" parent="."] -material = SubResource( 5 ) +texture_filter = 4 +material = SubResource("5") position = Vector2(1200, 0) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Fatty" type="Sprite2D" parent="."] -material = SubResource( 6 ) +texture_filter = 4 +material = SubResource("6") position = Vector2(1600, 0) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="DropShadow" type="Sprite2D" parent="."] -material = SubResource( 7 ) +texture_filter = 4 +material = SubResource("7") position = Vector2(0, 800) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="OffsetShadow" type="Sprite2D" parent="."] -material = SubResource( 8 ) +texture_filter = 4 +material = SubResource("8") position = Vector2(400, 800) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Silouette" type="Sprite2D" parent="."] -material = SubResource( 9 ) +texture_filter = 4 +material = SubResource("9") position = Vector2(800, 800) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Glow" type="Sprite2D" parent="."] -material = SubResource( 10 ) +texture_filter = 4 +material = SubResource("10") position = Vector2(1200, 800) -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="Disintegrate" type="Sprite2D" parent="."] -material = SubResource( 11 ) +texture_filter = 4 +material = SubResource("11") position = Vector2(1600, 800) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_rect = Rect2(141, 115, 39, 6) [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(248, 120) current = true -drag_offset_left = 0.0 -drag_offset_top = 0.0 -drag_offset_right = 0.0 -drag_offset_bottom = 0.0 diff --git a/3d/antialiasing/anti_aliasing.gd b/3d/antialiasing/anti_aliasing.gd index 2219a59eb17..a0b1c223b76 100644 --- a/3d/antialiasing/anti_aliasing.gd +++ b/3d/antialiasing/anti_aliasing.gd @@ -50,8 +50,8 @@ func _process(delta): # This code assumes CameraHolder's X and Y coordinates are already correct. var current_position = camera_holder.global_transform.origin.z var target_position = current_tester.global_transform.origin.z - camera_holder.global_transform.origin.z = lerp(current_position, target_position, 3 * delta) - camera.position.z = lerp(camera.position.z, camera_distance, 10 * delta) + camera_holder.global_transform.origin.z = lerpf(current_position, target_position, 3 * delta) + camera.position.z = lerpf(camera.position.z, camera_distance, 10 * delta) func _on_previous_pressed(): @@ -79,7 +79,7 @@ func _on_temporal_antialiasing_toggled(button_pressed): func _on_msaa_item_selected(index): - get_viewport().msaa = index + get_viewport().msaa_3d = index func _on_render_scale_item_selected(index): diff --git a/3d/antialiasing/anti_aliasing.tscn b/3d/antialiasing/anti_aliasing.tscn index 6951101b10a..2b648c144f4 100644 --- a/3d/antialiasing/anti_aliasing.tscn +++ b/3d/antialiasing/anti_aliasing.tscn @@ -238,7 +238,7 @@ size = Vector2(128, 128) fractal_octaves = 9 fractal_gain = 1.0 -[sub_resource type="NoiseTexture" id="NoiseTexture_bgiac"] +[sub_resource type="NoiseTexture2D" id="NoiseTexture_bgiac"] seamless = true noise = SubResource("FastNoiseLite_fiqc5") @@ -248,7 +248,7 @@ albedo_texture = SubResource("NoiseTexture_bgiac") uv1_scale = Vector3(3, 2, 1) texture_filter = 5 -[sub_resource type="NoiseTexture" id="NoiseTexture_7yxqs"] +[sub_resource type="NoiseTexture2D" id="NoiseTexture_7yxqs"] width = 32 height = 32 seamless = true @@ -263,7 +263,7 @@ texture_filter = 4 offsets = PackedFloat32Array(0, 0.298851, 0.609195, 0.781609, 0.873563, 1) colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 1, 1, 0.133693, 0.238417, 0.655738, 1, 0.4, 0.47451, 0, 1, 0.364109, 0.476658, 1, 1, 1, 1, 0) -[sub_resource type="NoiseTexture" id="NoiseTexture_uv2tn"] +[sub_resource type="NoiseTexture2D" id="NoiseTexture_uv2tn"] seamless = true color_ramp = SubResource("Gradient_ekf3m") noise = SubResource("FastNoiseLite_fiqc5") @@ -356,7 +356,7 @@ size = Vector3(0.1, 0.1, 0.1) _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] point_count = 2 -[sub_resource type="ParticlesMaterial" id="ParticlesMaterial_ft0gs"] +[sub_resource type="ParticleProcessMaterial" id="ParticlesMaterial_ft0gs"] emission_shape = 6 emission_ring_axis = Vector3(0, 1, 0) emission_ring_height = 0.0 @@ -364,8 +364,6 @@ emission_ring_radius = 0.25 emission_ring_inner_radius = 0.25 radial_accel_min = 2.0 radial_accel_max = 2.0 -collision_enabled = true -collision_friction = 0.1 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1dgwn"] albedo_color = Color(0.545098, 0.545098, 0.545098, 1) @@ -426,17 +424,17 @@ void fragment() { [sub_resource type="ShaderMaterial" id="ShaderMaterial_ltvd2"] render_priority = 0 shader = SubResource("Shader_rejcs") -shader_param/albedo = Color(1.2, 0.915333, 0.997134, 1) -shader_param/metallic = 0.0 -shader_param/metallic_texture_channel = Plane(1, 0, 0, 0) -shader_param/point_size = 1.0 -shader_param/roughness = 1.0 -shader_param/specular = 0.5 -shader_param/texture_albedo = SubResource("NoiseTexture_bgiac") -shader_param/uv1_offset = Vector3(0, 0, 0) -shader_param/uv1_scale = Vector3(2, 2, 1) -shader_param/uv2_offset = Vector3(0, 0, 0) -shader_param/uv2_scale = Vector3(1, 1, 1) +shader_parameter/albedo = Color(1.2, 0.915333, 0.997134, 1) +shader_parameter/metallic = 0.0 +shader_parameter/metallic_texture_channel = Plane(1, 0, 0, 0) +shader_parameter/point_size = 1.0 +shader_parameter/roughness = 1.0 +shader_parameter/specular = 0.5 +shader_parameter/texture_albedo = SubResource("NoiseTexture_bgiac") +shader_parameter/uv1_offset = Vector3(0, 0, 0) +shader_parameter/uv1_scale = Vector3(2, 2, 1) +shader_parameter/uv2_offset = Vector3(0, 0, 0) +shader_parameter/uv2_scale = Vector3(1, 1, 1) [sub_resource type="CylinderMesh" id="CylinderMesh_oopii"] height = 1.0 @@ -487,17 +485,17 @@ void fragment() { [sub_resource type="ShaderMaterial" id="ShaderMaterial_fbaw5"] render_priority = 0 shader = SubResource("Shader_ovufm") -shader_param/albedo = Color(1.2, 1.16365, 0.85123, 1) -shader_param/metallic = 0.0 -shader_param/metallic_texture_channel = Plane(1, 0, 0, 0) -shader_param/point_size = 1.0 -shader_param/roughness = 1.0 -shader_param/specular = 0.5 -shader_param/texture_albedo = SubResource("NoiseTexture_bgiac") -shader_param/uv1_offset = Vector3(0, 0, 0) -shader_param/uv1_scale = Vector3(2, 2, 1) -shader_param/uv2_offset = Vector3(0, 0, 0) -shader_param/uv2_scale = Vector3(1, 1, 1) +shader_parameter/albedo = Color(1.2, 1.16365, 0.85123, 1) +shader_parameter/metallic = 0.0 +shader_parameter/metallic_texture_channel = Plane(1, 0, 0, 0) +shader_parameter/point_size = 1.0 +shader_parameter/roughness = 1.0 +shader_parameter/specular = 0.5 +shader_parameter/texture_albedo = SubResource("NoiseTexture_bgiac") +shader_parameter/uv1_offset = Vector3(0, 0, 0) +shader_parameter/uv1_scale = Vector3(2, 2, 1) +shader_parameter/uv2_offset = Vector3(0, 0, 0) +shader_parameter/uv2_scale = Vector3(1, 1, 1) [node name="AntiAliasingTestScene" type="WorldEnvironment"] environment = SubResource("11") @@ -652,7 +650,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, -48) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) amount = 100 lifetime = 0.5 -local_coords = false draw_order = 1 mesh = SubResource("QuadMesh_imrxg") direction = Vector3(0, 1, 0) @@ -670,7 +667,6 @@ color_ramp = SubResource("Gradient_e7gyf") [node name="CPUParticles3D" type="CPUParticles3D" parent="Testers/MovingCPUParticles/CPUParticles3D"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1, 0, 0) amount = 20 -local_coords = false mesh = SubResource("BoxMesh_88317") spread = 180.0 gravity = Vector3(0, 0, 0) @@ -706,7 +702,6 @@ lifetime = 2.0 fixed_fps = 0 collision_base_size = 0.05 visibility_aabb = AABB(-1.50087, -1.25001, -1.4745, 3.19423, 2.13905, 3.02308) -local_coords = false process_material = SubResource("ParticlesMaterial_ft0gs") draw_pass_1 = SubResource("BoxMesh_88317") @@ -750,6 +745,7 @@ mesh = SubResource("CylinderMesh_oopii") surface_material_override/0 = SubResource("ShaderMaterial_fbaw5") [node name="TestName" type="Label" parent="."] +anchors_preset = 7 anchor_left = 0.5 anchor_top = 1.0 anchor_right = 0.5 @@ -764,6 +760,7 @@ theme_override_font_sizes/font_size = 24 horizontal_alignment = 1 [node name="Previous" type="Button" parent="."] +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 24.0 @@ -773,6 +770,7 @@ offset_bottom = -24.0 text = "« Previous" [node name="Next" type="Button" parent="."] +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 @@ -791,31 +789,35 @@ offset_bottom = 55.0 theme_override_constants/separation = 10 [node name="Label" type="Label" parent="Antialiasing"] -offset_right = 265.0 +layout_mode = 2 +offset_right = 370.0 offset_bottom = 26.0 theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/outline_size = 3 text = "Antialiasing Options:" [node name="FXAA" type="CheckButton" parent="Antialiasing"] +layout_mode = 2 offset_top = 36.0 -offset_right = 265.0 +offset_right = 370.0 offset_bottom = 67.0 theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/outline_size = 3 text = "FXAA (Fast)" [node name="TemporalAntialiasing" type="CheckButton" parent="Antialiasing"] +layout_mode = 2 offset_top = 77.0 -offset_right = 265.0 +offset_right = 370.0 offset_bottom = 108.0 theme_override_colors/font_outline_color = Color(0, 0, 0, 1) theme_override_constants/outline_size = 3 text = "Temporal antialiasing (Fast)" [node name="MSAA" type="OptionButton" parent="Antialiasing"] +layout_mode = 2 offset_top = 118.0 -offset_right = 265.0 +offset_right = 370.0 offset_bottom = 149.0 item_count = 4 selected = 0 @@ -829,8 +831,9 @@ popup/item_3/text = "8× MSAA (Slowest)" popup/item_3/id = 3 [node name="RenderScale" type="OptionButton" parent="Antialiasing"] +layout_mode = 2 offset_top = 159.0 -offset_right = 265.0 +offset_right = 370.0 offset_bottom = 190.0 item_count = 7 selected = 2 diff --git a/3d/global_illumination/project.godot b/3d/global_illumination/project.godot index 8671f1bfcad..19a06b12079 100644 --- a/3d/global_illumination/project.godot +++ b/3d/global_illumination/project.godot @@ -12,8 +12,8 @@ config_version=5 config/name="Global Illumination" run/main_scene="res://test.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] @@ -28,47 +28,47 @@ import/blender/enabled=false cycle_gi_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"unicode":0,"echo":false,"script":null) ] } toggle_reflection_probe={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"unicode":0,"echo":false,"script":null) ] } cycle_ssil_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"unicode":0,"echo":false,"script":null) ] } move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777232,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777232,"unicode":0,"echo":false,"script":null) ] } move_back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777234,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777234,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777231,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777231,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777233,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777233,"unicode":0,"echo":false,"script":null) ] } toggle_mouse_capture={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777217,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777253,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777217,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777253,"unicode":0,"echo":false,"script":null) ] } diff --git a/3d/global_illumination/test.tscn b/3d/global_illumination/test.tscn index ec8dc09fb20..5093b86ae38 100644 --- a/3d/global_illumination/test.tscn +++ b/3d/global_illumination/test.tscn @@ -13,11 +13,11 @@ ground_bottom_color = Color(0.121569, 0.121569, 0.129412, 1) ground_horizon_color = Color(0.672549, 0.704902, 0.734314, 1) [sub_resource type="Sky" id="Sky_4q314"] -sky_material = SubResource( "ProceduralSkyMaterial_30v8t" ) +sky_material = SubResource("ProceduralSkyMaterial_30v8t") [sub_resource type="Environment" id="Environment_bau0c"] background_mode = 2 -sky = SubResource( "Sky_4q314" ) +sky = SubResource("Sky_4q314") tonemap_mode = 3 tonemap_white = 6.0 sdfgi_cascades = 3 @@ -29,7 +29,7 @@ sdfgi_y_scale = 0 [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_1n5k1"] emission_enabled = true emission = Color(1, 1, 0, 1) -emission_energy = 2.0 +emission_energy_multiplier = 2.0 [sub_resource type="BoxMesh" id="8"] @@ -41,18 +41,18 @@ metallic = 1.0 roughness = 0.0 [node name="Test" type="Node3D"] -script = ExtResource( "5" ) +script = ExtResource("5") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( "Environment_bau0c" ) +environment = SubResource("Environment_bau0c") -[node name="Zdm2" parent="." instance=ExtResource( "1" )] +[node name="Zdm2" parent="." instance=ExtResource("1")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 2) [node name="VoxelGI" type="VoxelGI" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 6, 2.5) extents = Vector3(39, 18.5, 30) -data = ExtResource( "3_1netx" ) +data = ExtResource("3_1netx") [node name="Sun" type="DirectionalLight3D" parent="."] transform = Transform3D(0.889832, -0.251497, 0.380722, 0, 0.834387, 0.551179, -0.456289, -0.490456, 0.742464, 4.47302, 6.47568, 8.72305) @@ -88,25 +88,25 @@ spot_range = 15.0 spot_attenuation = 2.0 spot_angle_attenuation = 0.5 -[node name="GlowingBox" parent="." instance=ExtResource( "3" )] +[node name="GlowingBox" parent="." instance=ExtResource("3")] transform = Transform3D(1.4, 0, 0, 0, 1, 0, 0, 0, 0.25, -0.681709, -0.108265, 25.4051) [node name="Cube" parent="GlowingBox" index="0"] -surface_material_override/0 = SubResource( "StandardMaterial3D_1n5k1" ) +surface_material_override/0 = SubResource("StandardMaterial3D_1n5k1") [node name="Camera" type="Camera3D" parent="."] transform = Transform3D(-0.997523, -0.00719588, 0.0699685, -8.94368e-09, 0.994753, 0.102305, -0.0703375, 0.102052, -0.992289, 11.7976, 1.49898, 9.54247) -script = ExtResource( "6" ) +script = ExtResource("6") [node name="Box" type="MeshInstance3D" parent="Camera"] transform = Transform3D(0.999999, -5.12227e-09, 9.68575e-08, 2.79397e-09, 0.999999, 8.9407e-08, 7.45058e-09, -1.11759e-07, 0.999999, -1.4, -0.999998, -3.99998) -mesh = SubResource( "8" ) +mesh = SubResource("8") [node name="ReflectiveSphere" type="MeshInstance3D" parent="Camera"] transform = Transform3D(-0.997523, -8.41886e-09, -0.0703376, -0.00719589, 0.994753, 0.102052, 0.0699685, 0.102305, -0.992289, 0.16733, -1.22931, -3.81225) layers = 2 -mesh = SubResource( "2" ) -surface_material_override/0 = SubResource( "StandardMaterial3D_7doxp" ) +mesh = SubResource("2") +surface_material_override/0 = SubResource("StandardMaterial3D_7doxp") [node name="ReflectionProbe" type="ReflectionProbe" parent="Camera/ReflectiveSphere"] transform = Transform3D(1, -8.38189e-09, -8.9407e-08, 5.58791e-09, 1, -5.21541e-07, 4.47035e-08, 1.11759e-07, 1, 0, 0, 0) @@ -146,6 +146,7 @@ theme_override_constants/shadow_offset_y = 1 text = "Screen-space lighting effects: Disabled (Fast)" [node name="Label" type="Label" parent="."] +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 16.0 diff --git a/3d/global_illumination/test_VoxelGIData.res b/3d/global_illumination/test_VoxelGIData.res index c477cb98361..b3146909d68 100644 Binary files a/3d/global_illumination/test_VoxelGIData.res and b/3d/global_illumination/test_VoxelGIData.res differ diff --git a/3d/graphics_settings/control.tscn b/3d/graphics_settings/control.tscn index 45002fb5441..1a4ae2f28b3 100644 --- a/3d/graphics_settings/control.tscn +++ b/3d/graphics_settings/control.tscn @@ -1,8 +1,7 @@ -[gd_scene load_steps=6 format=3 uid="uid://ye05btta37gb"] +[gd_scene load_steps=5 format=3 uid="uid://ye05btta37gb"] [ext_resource type="Script" path="res://settings.gd" id="1_gm54x"] [ext_resource type="PackedScene" uid="uid://cbdt8lmycl8pc" path="res://3d_scene.tscn" id="2_hsbu5"] -[ext_resource type="Texture2D" uid="uid://c5ujmv8i0y1pn" path="res://icon.png" id="3_xpykm"] [sub_resource type="Environment" id="Environment_1f0b2"] background_mode = 1 @@ -23,42 +22,51 @@ adjustment_enabled = true [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_w3j8l"] content_margin_left = 20.0 -content_margin_right = 20.0 content_margin_top = 50.0 +content_margin_right = 20.0 content_margin_bottom = 10.0 bg_color = Color(0.231373, 0.231373, 0.231373, 0.768627) [node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -script = ExtResource( "1_gm54x" ) +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_gm54x") [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( "Environment_1f0b2" ) +environment = SubResource("Environment_1f0b2") -[node name="Node3D" parent="." instance=ExtResource( "2_hsbu5" )] +[node name="Node3D" parent="." instance=ExtResource("2_hsbu5")] [node name="SettingsMenu" type="PanelContainer" parent="."] +layout_mode = 1 +anchors_preset = 9 anchor_bottom = 1.0 offset_right = 429.0 grow_vertical = 2 -theme_override_styles/panel = SubResource( "StyleBoxFlat_w3j8l" ) +theme_override_styles/panel = SubResource("StyleBoxFlat_w3j8l") [node name="ScrollContainer" type="ScrollContainer" parent="SettingsMenu"] clip_contents = false +layout_mode = 2 offset_left = 20.0 offset_top = 50.0 offset_right = 409.0 -offset_bottom = 590.0 +offset_bottom = 638.0 [node name="VBoxContainer" type="VBoxContainer" parent="SettingsMenu/ScrollContainer"] -offset_right = 358.0 -offset_bottom = 710.0 +layout_mode = 2 +offset_right = 381.0 +offset_bottom = 721.0 size_flags_horizontal = 3 size_flags_vertical = 3 theme_override_constants/separation = 10 [node name="UISection" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer"] +layout_mode = 2 offset_right = 381.0 offset_bottom = 26.0 theme_override_colors/font_color = Color(0.683425, 0.916893, 1, 1) @@ -66,27 +74,28 @@ text = "User Interface Settings" horizontal_alignment = 1 [node name="GridContainer" type="GridContainer" parent="SettingsMenu/ScrollContainer/VBoxContainer"] +layout_mode = 2 offset_top = 36.0 offset_right = 381.0 -offset_bottom = 69.0 +offset_bottom = 67.0 size_flags_horizontal = 3 size_flags_vertical = 3 -theme_override_constants/vseparation = 10 columns = 2 [node name="UIScaleLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer"] -offset_top = 3.0 -offset_right = 188.0 -offset_bottom = 29.0 +layout_mode = 2 +offset_top = 2.0 +offset_right = 189.0 +offset_bottom = 28.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "UI Scale:" [node name="UIScaleOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_right = 380.0 -offset_bottom = 33.0 +layout_mode = 2 +offset_left = 193.0 +offset_right = 381.0 +offset_bottom = 31.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 5 @@ -103,29 +112,33 @@ popup/item_4/text = "Larger (200%)" popup/item_4/id = 4 [node name="ViewportSection" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer"] -offset_top = 79.0 +layout_mode = 2 +offset_top = 77.0 offset_right = 381.0 -offset_bottom = 105.0 +offset_bottom = 103.0 theme_override_colors/font_color = Color(0.683425, 0.916893, 1, 1) text = "Video Settings" horizontal_alignment = 1 [node name="GridContainer2" type="GridContainer" parent="SettingsMenu/ScrollContainer/VBoxContainer"] -offset_top = 115.0 +layout_mode = 2 +offset_top = 113.0 offset_right = 381.0 -offset_bottom = 356.0 +offset_bottom = 379.0 columns = 2 [node name="QualityLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_right = 188.0 +layout_mode = 2 +offset_right = 189.0 offset_bottom = 26.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Resolution Scale:" [node name="QualitySlider" type="HSlider" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_left = 192.0 -offset_right = 380.0 +layout_mode = 2 +offset_left = 193.0 +offset_right = 381.0 offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 @@ -135,19 +148,20 @@ step = 0.05 value = 1.0 [node name="FilterLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_top = 33.0 -offset_right = 188.0 -offset_bottom = 59.0 +layout_mode = 2 +offset_top = 32.0 +offset_right = 189.0 +offset_bottom = 58.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Display Filter:" [node name="FilterOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 +layout_mode = 2 +offset_left = 193.0 offset_top = 30.0 -offset_right = 380.0 -offset_bottom = 63.0 +offset_right = 381.0 +offset_bottom = 61.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 2 @@ -158,19 +172,20 @@ popup/item_1/text = "FSR 1.0 (Fast)" popup/item_1/id = 1 [node name="FullscreenLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_top = 70.0 -offset_right = 188.0 -offset_bottom = 96.0 +layout_mode = 2 +offset_top = 67.0 +offset_right = 189.0 +offset_bottom = 93.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Fullscreen:" [node name="FullscreenOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 67.0 -offset_right = 380.0 -offset_bottom = 100.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 65.0 +offset_right = 381.0 +offset_bottom = 96.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 2 @@ -181,19 +196,20 @@ popup/item_1/text = "Enabled" popup/item_1/id = 1 [node name="VsyncLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_top = 107.0 -offset_right = 188.0 -offset_bottom = 133.0 +layout_mode = 2 +offset_top = 102.0 +offset_right = 189.0 +offset_bottom = 128.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "V-Sync:" [node name="VsyncOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 104.0 -offset_right = 380.0 -offset_bottom = 137.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 100.0 +offset_right = 381.0 +offset_bottom = 131.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 3 @@ -205,20 +221,45 @@ popup/item_1/id = 1 popup/item_2/text = "Enabled" popup/item_2/id = 2 -[node name="AALabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_top = 144.0 -offset_right = 188.0 -offset_bottom = 170.0 +[node name="TAALabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] +layout_mode = 2 +offset_top = 137.0 +offset_right = 189.0 +offset_bottom = 163.0 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 16 +text = "Anti-Aliasing (TAA):" + +[node name="TAAOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] +layout_mode = 2 +offset_left = 193.0 +offset_top = 135.0 +offset_right = 381.0 +offset_bottom = 166.0 +size_flags_horizontal = 3 +theme_override_font_sizes/font_size = 16 +item_count = 2 +selected = 0 +popup/item_0/text = "Disabled (Fastest)" +popup/item_0/id = 0 +popup/item_1/text = "Enabled (Average)" +popup/item_1/id = 1 + +[node name="MSAALabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] +layout_mode = 2 +offset_top = 172.0 +offset_right = 189.0 +offset_bottom = 198.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Anti-Aliasing (MSAA):" -[node name="AAOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 141.0 -offset_right = 380.0 -offset_bottom = 174.0 +[node name="MSAAOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] +layout_mode = 2 +offset_left = 193.0 +offset_top = 170.0 +offset_right = 381.0 +offset_bottom = 201.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 4 @@ -233,41 +274,44 @@ popup/item_3/text = "8× (Slower)" popup/item_3/id = 3 [node name="FXAALabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_top = 181.0 -offset_right = 188.0 -offset_bottom = 207.0 +layout_mode = 2 +offset_top = 207.0 +offset_right = 189.0 +offset_bottom = 233.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Anti-Aliasing (FXAA):" [node name="FXAAOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 178.0 -offset_right = 380.0 -offset_bottom = 211.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 205.0 +offset_right = 381.0 +offset_bottom = 236.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 2 selected = 0 popup/item_0/text = "Disabled (Fastest)" popup/item_0/id = 0 -popup/item_1/text = "FXAA (Fast)" +popup/item_1/text = "Enabled (Fast)" popup/item_1/id = 1 [node name="FOVLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_top = 215.0 -offset_right = 188.0 -offset_bottom = 241.0 +layout_mode = 2 +offset_top = 240.0 +offset_right = 189.0 +offset_bottom = 266.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Field of View:" [node name="FOVSlider" type="HSlider" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2"] -offset_left = 192.0 -offset_top = 215.0 -offset_right = 380.0 -offset_bottom = 241.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 240.0 +offset_right = 381.0 +offset_bottom = 266.0 size_flags_horizontal = 3 size_flags_vertical = 1 min_value = 50.0 @@ -275,32 +319,35 @@ step = 0.1 value = 75.0 [node name="EnvironmentSection" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer"] -offset_top = 366.0 +layout_mode = 2 +offset_top = 389.0 offset_right = 381.0 -offset_bottom = 392.0 +offset_bottom = 415.0 theme_override_colors/font_color = Color(0.683425, 0.916893, 1, 1) text = "Effect Settings" horizontal_alignment = 1 [node name="GridContainer3" type="GridContainer" parent="SettingsMenu/ScrollContainer/VBoxContainer"] -offset_top = 402.0 +layout_mode = 2 +offset_top = 425.0 offset_right = 381.0 -offset_bottom = 710.0 +offset_bottom = 721.0 columns = 2 [node name="SDFGILabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 3.0 -offset_right = 188.0 -offset_bottom = 29.0 +layout_mode = 2 +offset_top = 2.0 +offset_right = 189.0 +offset_bottom = 28.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Global Illumination:" [node name="SDFGIOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_right = 380.0 -offset_bottom = 33.0 +layout_mode = 2 +offset_left = 193.0 +offset_right = 381.0 +offset_bottom = 31.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 3 @@ -313,19 +360,20 @@ popup/item_2/text = "High (Slow)" popup/item_2/id = 2 [node name="GlowLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 40.0 -offset_right = 188.0 -offset_bottom = 66.0 +layout_mode = 2 +offset_top = 37.0 +offset_right = 189.0 +offset_bottom = 63.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Bloom:" [node name="GlowOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 37.0 -offset_right = 380.0 -offset_bottom = 70.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 35.0 +offset_right = 381.0 +offset_bottom = 66.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 3 @@ -338,19 +386,20 @@ popup/item_2/text = "High (Average)" popup/item_2/id = 2 [node name="SSAOLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 77.0 -offset_right = 188.0 -offset_bottom = 103.0 +layout_mode = 2 +offset_top = 72.0 +offset_right = 189.0 +offset_bottom = 98.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Ambient Occlusion:" [node name="SSAOOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 74.0 -offset_right = 380.0 -offset_bottom = 107.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 70.0 +offset_right = 381.0 +offset_bottom = 101.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 5 @@ -367,19 +416,20 @@ popup/item_4/text = "High (Slow)" popup/item_4/id = 4 [node name="SSReflectionsLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 116.0 -offset_right = 188.0 -offset_bottom = 139.0 +layout_mode = 2 +offset_top = 109.0 +offset_right = 189.0 +offset_bottom = 132.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 14 text = "Screen-Space Reflections:" [node name="SSReflectionsOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 111.0 -offset_right = 380.0 -offset_bottom = 144.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 105.0 +offset_right = 381.0 +offset_bottom = 136.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 4 @@ -394,19 +444,20 @@ popup/item_3/text = "High (Slower)" popup/item_3/id = 3 [node name="SSILLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 151.0 -offset_right = 188.0 -offset_bottom = 177.0 +layout_mode = 2 +offset_top = 142.0 +offset_right = 189.0 +offset_bottom = 168.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Screen-Space Lighting:" [node name="SSILOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 148.0 -offset_right = 380.0 -offset_bottom = 181.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 140.0 +offset_right = 381.0 +offset_bottom = 171.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 5 @@ -423,19 +474,20 @@ popup/item_4/text = "High (Slower)" popup/item_4/id = 4 [node name="VolumetricFogLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 188.0 -offset_right = 188.0 -offset_bottom = 214.0 +layout_mode = 2 +offset_top = 177.0 +offset_right = 189.0 +offset_bottom = 203.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Volumetric Fog:" [node name="VolumetricFogOptionButton" type="OptionButton" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -minimum_size = Vector2(100, 33) -offset_left = 192.0 -offset_top = 185.0 -offset_right = 380.0 -offset_bottom = 218.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 175.0 +offset_right = 381.0 +offset_bottom = 206.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 item_count = 3 @@ -448,18 +500,20 @@ popup/item_2/text = "High (Average)" popup/item_2/id = 2 [node name="BrightnessLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 222.0 -offset_right = 188.0 -offset_bottom = 248.0 +layout_mode = 2 +offset_top = 210.0 +offset_right = 189.0 +offset_bottom = 236.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Brightness:" [node name="BrightnessSlider" type="HSlider" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_left = 192.0 -offset_top = 222.0 -offset_right = 380.0 -offset_bottom = 248.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 210.0 +offset_right = 381.0 +offset_bottom = 236.0 size_flags_horizontal = 3 size_flags_vertical = 1 min_value = 0.5 @@ -468,18 +522,20 @@ step = 0.01 value = 1.0 [node name="ContrastLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 252.0 -offset_right = 188.0 -offset_bottom = 278.0 +layout_mode = 2 +offset_top = 240.0 +offset_right = 189.0 +offset_bottom = 266.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Contrast:" [node name="ContrastSlider" type="HSlider" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_left = 192.0 -offset_top = 252.0 -offset_right = 380.0 -offset_bottom = 278.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 240.0 +offset_right = 381.0 +offset_bottom = 266.0 size_flags_horizontal = 3 size_flags_vertical = 1 min_value = 0.5 @@ -488,18 +544,20 @@ step = 0.01 value = 1.0 [node name="SaturationLabel" type="Label" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_top = 282.0 -offset_right = 188.0 -offset_bottom = 308.0 +layout_mode = 2 +offset_top = 270.0 +offset_right = 189.0 +offset_bottom = 296.0 size_flags_horizontal = 3 theme_override_font_sizes/font_size = 16 text = "Saturation:" [node name="SaturationSlider" type="HSlider" parent="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3"] -offset_left = 192.0 -offset_top = 282.0 -offset_right = 380.0 -offset_bottom = 308.0 +layout_mode = 2 +offset_left = 193.0 +offset_top = 270.0 +offset_right = 381.0 +offset_bottom = 296.0 size_flags_horizontal = 3 size_flags_vertical = 1 min_value = 0.01 @@ -508,6 +566,7 @@ step = 0.01 value = 1.0 [node name="HideShowButton" type="Button" parent="."] +layout_mode = 0 offset_right = 149.0 offset_bottom = 31.0 focus_mode = 0 @@ -516,18 +575,9 @@ toggle_mode = true button_pressed = true text = "Hide settings" -[node name="TextureRect" type="TextureRect" parent="."] -anchor_left = 1.0 -anchor_top = 1.0 -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = -65.0 -offset_top = -65.0 -grow_horizontal = 0 -grow_vertical = 0 -texture = ExtResource( "3_xpykm" ) - [node name="FPSLabel" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 offset_left = -56.0 @@ -538,6 +588,8 @@ grow_horizontal = 0 horizontal_alignment = 2 [node name="ResolutionLabel" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 offset_left = -56.0 @@ -552,7 +604,8 @@ horizontal_alignment = 2 [connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/FilterOptionButton" to="." method="_on_filter_option_button_item_selected"] [connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/FullscreenOptionButton" to="." method="_on_fullscreen_option_button_item_selected"] [connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/VsyncOptionButton" to="." method="_on_vsync_option_button_item_selected"] -[connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/AAOptionButton" to="." method="_on_aa_option_button_item_selected"] +[connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/TAAOptionButton" to="." method="_on_taa_option_button_item_selected"] +[connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/MSAAOptionButton" to="." method="_on_msaa_option_button_item_selected"] [connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/FXAAOptionButton" to="." method="_on_fxaa_option_button_item_selected"] [connection signal="value_changed" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer2/FOVSlider" to="." method="_on_fov_slider_value_changed"] [connection signal="item_selected" from="SettingsMenu/ScrollContainer/VBoxContainer/GridContainer3/SDFGIOptionButton" to="." method="_on_sdfgi_option_button_item_selected"] diff --git a/3d/graphics_settings/project.godot b/3d/graphics_settings/project.godot index 88440bf2dc3..6e78721cc96 100644 --- a/3d/graphics_settings/project.godot +++ b/3d/graphics_settings/project.godot @@ -12,8 +12,8 @@ config_version=5 config/name="3D Graphics Settings" run/main_scene="res://control.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" -config/features=PackedStringArray("4.0", "Vulkan Clustered") [display] diff --git a/3d/graphics_settings/settings.gd b/3d/graphics_settings/settings.gd index 9f5165aa264..3cf3162cfb9 100644 --- a/3d/graphics_settings/settings.gd +++ b/3d/graphics_settings/settings.gd @@ -18,7 +18,7 @@ var viewport_start_size := Vector2( func _ready() -> void: - get_viewport().connect(&"size_changed", update_resolution_label) + get_viewport().size_changed.connect(self.update_resolution_label) update_resolution_label() # Disable V-Sync to uncap framerate on supported platforms. This makes performance comparison @@ -92,21 +92,27 @@ func _on_vsync_option_button_item_selected(index: int) -> void: DisplayServer.window_set_vsync_mode(DisplayServer.VSYNC_ENABLED) -func _on_aa_option_button_item_selected(index: int) -> void: +func _on_msaa_option_button_item_selected(index: int) -> void: # Multi-sample anti-aliasing. High quality, but slow. It also does not smooth out the edges of # transparent (alpha scissor) textures. if index == 0: # Disabled - get_viewport().msaa = Viewport.MSAA_DISABLED + get_viewport().msaa_3d = Viewport.MSAA_DISABLED elif index == 1: # 2× - get_viewport().msaa = Viewport.MSAA_2X + get_viewport().msaa_3d = Viewport.MSAA_2X elif index == 2: # 4× - get_viewport().msaa = Viewport.MSAA_4X + get_viewport().msaa_3d = Viewport.MSAA_4X elif index == 3: # 8× - get_viewport().msaa = Viewport.MSAA_8X + get_viewport().msaa_3d = Viewport.MSAA_8X + + +func _on_taa_option_button_item_selected(index: int) -> void: + # Temporal antialiasing. Smooths out everything including specular aliasing, but can introduce + # ghosting artifacts and blurring in motion. Moderate performance cost. + get_viewport().use_taa = index == 1 func _on_fxaa_option_button_item_selected(index: int) -> void: - # Fast approximate anti-aliasing. Much faster than FXAA (and works on alpha scissor edges), + # Fast approximate anti-aliasing. Much faster than MSAA (and works on alpha scissor edges), # but blurs the whole scene rendering slightly. get_viewport().screen_space_aa = index == 1 diff --git a/3d/ik/addons/sade/editor_gizmo_texture.png.import b/3d/ik/addons/sade/editor_gizmo_texture.png.import index 4592e80c478..ae898a87de7 100644 --- a/3d/ik/addons/sade/editor_gizmo_texture.png.import +++ b/3d/ik/addons/sade/editor_gizmo_texture.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/ik/addons/sade/ik_fabrik.png.import b/3d/ik/addons/sade/ik_fabrik.png.import index a70db7b364d..c456ee28083 100644 --- a/3d/ik/addons/sade/ik_fabrik.png.import +++ b/3d/ik/addons/sade/ik_fabrik.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/ik/addons/sade/ik_look_at.png.import b/3d/ik/addons/sade/ik_look_at.png.import index f6021f6d018..a9680b13294 100644 --- a/3d/ik/addons/sade/ik_look_at.png.import +++ b/3d/ik/addons/sade/ik_look_at.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/ik/button_change_scene.gd b/3d/ik/button_change_scene.gd index 3b4ed09dc19..0535f590dbd 100644 --- a/3d/ik/button_change_scene.gd +++ b/3d/ik/button_change_scene.gd @@ -4,11 +4,9 @@ extends Button func _ready(): - # warning-ignore:return_value_discarded - connect(&"pressed", self.change_scene) + pressed.connect(self.change_scene) func change_scene(): if scene_to_change_to != null: - # warning-ignore:return_value_discarded get_tree().change_scene(scene_to_change_to) diff --git a/3d/ik/fps/example_player.gd b/3d/ik/fps/example_player.gd index 95b17bee78e..9495f681dc5 100644 --- a/3d/ik/fps/example_player.gd +++ b/3d/ik/fps/example_player.gd @@ -57,7 +57,7 @@ var simple_bullet = preload("res://fps/simple_bullet.tscn") func _ready(): - anim_player.connect(&"animation_finished", self.animation_finished) + anim_player.animation_finished.connect(self.animation_finished) set_physics_process(true) Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) diff --git a/3d/ik/fps/gun_textures.png.import b/3d/ik/fps/gun_textures.png.import index ac90b13388a..7af59fe01d6 100644 --- a/3d/ik/fps/gun_textures.png.import +++ b/3d/ik/fps/gun_textures.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/ik/fps/weapon_pistol.dae.import b/3d/ik/fps/weapon_pistol.dae.import index 7c0ddb79066..980dba7d84c 100644 --- a/3d/ik/fps/weapon_pistol.dae.import +++ b/3d/ik/fps/weapon_pistol.dae.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/weapon_pistol.dae-ed8a2a8a1d486f24880330c98ee nodes/root_type="Node3D" nodes/root_name="WeaponPistol" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true diff --git a/3d/ik/icon.png.import b/3d/ik/icon.png.import index 3491ef35fed..1409a3fb13d 100644 --- a/3d/ik/icon.png.import +++ b/3d/ik/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/ik/model/godot_battle_bot.dae.import b/3d/ik/model/godot_battle_bot.dae.import index 3f5864b4451..75b34015077 100644 --- a/3d/ik/model/godot_battle_bot.dae.import +++ b/3d/ik/model/godot_battle_bot.dae.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/godot_battle_bot.dae-b816538849caf76e74976d7a nodes/root_type="Node3D" nodes/root_name="GodotBattleBot" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true diff --git a/3d/ik/model/godot_battle_bot_colors.png.import b/3d/ik/model/godot_battle_bot_colors.png.import index efa2d011cf5..bbd3268dcc7 100644 --- a/3d/ik/model/godot_battle_bot_colors.png.import +++ b/3d/ik/model/godot_battle_bot_colors.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/ik/model/godot_battle_bot_emission.png.import b/3d/ik/model/godot_battle_bot_emission.png.import index 75284cdfcff..68f32ae7180 100644 --- a/3d/ik/model/godot_battle_bot_emission.png.import +++ b/3d/ik/model/godot_battle_bot_emission.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/ik/project.godot b/3d/ik/project.godot index a6080546edf..2db781a3998 100644 --- a/3d/ik/project.godot +++ b/3d/ik/project.godot @@ -15,12 +15,12 @@ config/description="This is an example of different Inverse Kinematic algorithms implemented in Godot. It contains four scenes, showing different ways they can be used, including via SkeletonIK3D." run/main_scene="res://look_at_ik.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [editor_plugins] diff --git a/3d/kinematic_character/README.md b/3d/kinematic_character/README.md index 7e1e7223f81..3ae7e1c352e 100644 --- a/3d/kinematic_character/README.md +++ b/3d/kinematic_character/README.md @@ -18,6 +18,4 @@ for the level. Each has colliders, the player moves itself via ## Screenshots -![Screenshot](screenshots/ingame.png) - -![Screenshot](screenshots/editor.png) +![Screenshot](screenshots/kinematic_character.webp) diff --git a/3d/kinematic_character/cubelib.tres b/3d/kinematic_character/cubelib.tres index 27d5b82d4c6..bc3d7e8c209 100644 --- a/3d/kinematic_character/cubelib.tres +++ b/3d/kinematic_character/cubelib.tres @@ -2,7 +2,7 @@ [ext_resource type="ArrayMesh" uid="uid://ba7dqpj07mlsy" path="res://models/cube.mesh" id="1"] -[sub_resource type="Image" id="Image_gt44q"] +[sub_resource type="Image" id="Image_xoo4s"] data = { "data": PackedByteArray(76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 66, 41, 73, 255, 68, 42, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 32, 61, 255, 62, 36, 68, 255, 70, 43, 77, 255, 72, 45, 78, 255, 67, 43, 73, 255, 63, 41, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 33, 63, 255, 59, 34, 65, 255, 65, 38, 72, 255, 73, 45, 80, 255, 76, 47, 82, 255, 72, 47, 78, 255, 69, 46, 75, 255, 63, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 59, 34, 64, 255, 61, 35, 67, 255, 63, 36, 69, 255, 66, 38, 73, 255, 75, 44, 81, 255, 78, 47, 84, 255, 76, 49, 83, 255, 75, 51, 82, 255, 69, 46, 75, 255, 62, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 54, 32, 59, 255, 60, 35, 65, 255, 62, 36, 68, 255, 63, 37, 70, 255, 62, 36, 69, 255, 69, 40, 76, 255, 80, 48, 87, 255, 82, 50, 89, 255, 81, 52, 88, 255, 80, 54, 87, 255, 75, 51, 81, 255, 68, 46, 75, 255, 63, 42, 68, 255, 55, 35, 61, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 52, 31, 57, 255, 57, 34, 63, 255, 64, 37, 70, 255, 62, 36, 69, 255, 62, 36, 69, 255, 68, 39, 75, 255, 77, 45, 84, 255, 88, 52, 94, 255, 89, 54, 96, 255, 85, 55, 92, 255, 83, 55, 90, 255, 81, 55, 87, 255, 75, 51, 81, 255, 68, 46, 74, 255, 61, 40, 67, 255, 54, 34, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 48, 30, 53, 255, 51, 31, 56, 255, 54, 32, 59, 255, 61, 36, 67, 255, 63, 36, 69, 255, 62, 36, 69, 255, 70, 40, 77, 255, 74, 43, 81, 255, 79, 46, 87, 255, 87, 53, 95, 255, 90, 56, 97, 255, 91, 59, 99, 255, 85, 55, 93, 255, 85, 58, 92, 255, 81, 56, 87, 255, 73, 50, 80, 255, 67, 45, 73, 255, 60, 39, 65, 255, 53, 34, 58, 255, 46, 29, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 28, 51, 255, 50, 30, 55, 255, 54, 32, 59, 255, 59, 36, 65, 255, 64, 37, 70, 255, 65, 37, 72, 255, 72, 42, 80, 255, 76, 44, 84, 255, 76, 44, 84, 255, 82, 49, 90, 255, 94, 58, 103, 255, 97, 61, 105, 255, 95, 61, 103, 255, 91, 59, 98, 255, 88, 60, 96, 255, 86, 60, 93, 255, 79, 54, 85, 255, 72, 48, 78, 255, 67, 45, 73, 255, 60, 39, 65, 255, 52, 33, 57, 255, 45, 29, 50, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 45, 28, 49, 255, 48, 29, 53, 255, 55, 33, 60, 255, 60, 36, 65, 255, 64, 39, 70, 255, 68, 40, 74, 255, 75, 44, 83, 255, 78, 46, 85, 255, 75, 44, 84, 255, 78, 46, 87, 255, 85, 51, 93, 255, 93, 58, 103, 255, 99, 62, 107, 255, 101, 66, 110, 255, 96, 63, 104, 255, 92, 61, 100, 255, 90, 61, 97, 255, 85, 59, 92, 255, 77, 52, 84, 255, 73, 49, 79, 255, 67, 45, 72, 255, 58, 38, 63, 255, 49, 31, 54, 255, 43, 27, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 38, 24, 41, 255, 45, 29, 49, 255, 50, 31, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 63, 38, 69, 255, 68, 41, 74, 255, 75, 44, 82, 255, 77, 45, 85, 255, 76, 44, 84, 255, 80, 47, 88, 255, 80, 47, 89, 255, 86, 51, 95, 255, 98, 60, 106, 255, 102, 64, 110, 255, 105, 69, 114, 255, 101, 67, 110, 255, 95, 62, 103, 255, 93, 62, 100, 255, 90, 61, 97, 255, 82, 56, 89, 255, 76, 50, 82, 255, 72, 49, 78, 255, 64, 42, 69, 255, 53, 33, 58, 255, 46, 28, 50, 255, 41, 26, 45, 255, 38, 24, 42, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 35, 22, 39, 255, 41, 26, 45, 255, 50, 32, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 62, 37, 68, 255, 67, 40, 73, 255, 72, 44, 79, 255, 75, 45, 83, 255, 78, 46, 85, 255, 82, 48, 90, 255, 83, 49, 92, 255, 82, 47, 91, 255, 92, 54, 101, 255, 101, 61, 108, 255, 105, 64, 113, 255, 109, 70, 119, 255, 105, 69, 114, 255, 100, 66, 109, 255, 95, 62, 103, 255, 94, 63, 101, 255, 89, 59, 95, 255, 80, 52, 86, 255, 76, 51, 82, 255, 69, 45, 75, 255, 56, 34, 61, 255, 49, 29, 54, 255, 44, 26, 48, 255, 43, 27, 47, 255, 37, 23, 40, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 29, 18, 32, 255, 34, 21, 37, 255, 37, 22, 41, 255, 44, 27, 48, 255, 51, 32, 56, 255, 57, 35, 62, 255, 61, 38, 68, 255, 66, 40, 72, 255, 71, 43, 78, 255, 73, 45, 81, 255, 77, 46, 85, 255, 82, 49, 90, 255, 88, 53, 96, 255, 85, 50, 95, 255, 86, 49, 96, 255, 94, 55, 104, 255, 102, 60, 111, 255, 104, 63, 114, 255, 112, 71, 122, 255, 110, 72, 119, 255, 104, 69, 113, 255, 99, 64, 107, 255, 93, 60, 101, 255, 92, 60, 99, 255, 87, 55, 94, 255, 81, 53, 87, 255, 73, 48, 80, 255, 62, 38, 67, 255, 53, 32, 59, 255, 48, 28, 53, 255, 46, 28, 50, 255, 43, 27, 46, 255, 35, 21, 38, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 28, 17, 31, 255, 33, 21, 37, 255, 38, 23, 41, 255, 41, 24, 45, 255, 48, 28, 52, 255, 55, 33, 60, 255, 61, 38, 67, 255, 65, 40, 72, 255, 70, 43, 77, 255, 72, 44, 79, 255, 76, 46, 83, 255, 81, 49, 89, 255, 88, 52, 96, 255, 88, 52, 97, 255, 88, 51, 98, 255, 92, 53, 101, 255, 97, 57, 107, 255, 106, 63, 115, 255, 111, 68, 121, 255, 116, 74, 127, 255, 114, 75, 124, 255, 109, 72, 119, 255, 103, 67, 112, 255, 95, 60, 104, 255, 91, 58, 99, 255, 89, 57, 97, 255, 86, 55, 93, 255, 78, 51, 85, 255, 68, 43, 74, 255, 60, 37, 65, 255, 53, 31, 58, 255, 48, 29, 53, 255, 46, 29, 50, 255, 39, 24, 42, 255, 32, 20, 36, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 17, 29, 255, 33, 21, 36, 255, 38, 25, 42, 255, 41, 24, 45, 255, 45, 26, 50, 255, 53, 32, 58, 255, 61, 38, 67, 255, 65, 40, 71, 255, 69, 41, 75, 255, 72, 43, 79, 255, 76, 46, 84, 255, 80, 49, 88, 255, 86, 52, 94, 255, 89, 53, 98, 255, 93, 55, 102, 255, 98, 58, 108, 255, 97, 57, 107, 255, 101, 59, 111, 255, 117, 72, 127, 255, 123, 77, 134, 255, 121, 77, 131, 255, 119, 77, 129, 255, 111, 72, 121, 255, 105, 68, 115, 255, 99, 63, 108, 255, 92, 58, 101, 255, 90, 57, 98, 255, 87, 55, 94, 255, 83, 53, 90, 255, 74, 47, 81, 255, 65, 41, 71, 255, 59, 36, 65, 255, 53, 33, 59, 255, 48, 29, 53, 255, 44, 27, 48, 255, 37, 23, 41, 255, 31, 18, 34, 255, 26, 16, 28, 255, 21, 12, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 20, 13, 22, 255, 26, 17, 28, 255, 32, 21, 35, 255, 39, 26, 42, 255, 42, 27, 46, 255, 44, 26, 49, 255, 51, 31, 56, 255, 58, 36, 64, 255, 63, 39, 69, 255, 68, 41, 75, 255, 73, 44, 80, 255, 76, 47, 84, 255, 79, 48, 87, 255, 85, 52, 94, 255, 90, 55, 99, 255, 96, 58, 105, 255, 102, 62, 112, 255, 102, 61, 112, 255, 100, 59, 110, 255, 107, 64, 117, 255, 120, 74, 130, 255, 128, 81, 139, 255, 123, 78, 134, 255, 122, 78, 133, 255, 114, 73, 124, 255, 105, 66, 115, 255, 101, 64, 110, 255, 95, 60, 104, 255, 90, 56, 98, 255, 87, 55, 95, 255, 85, 54, 92, 255, 79, 49, 85, 255, 70, 44, 77, 255, 63, 39, 69, 255, 58, 36, 64, 255, 53, 33, 58, 255, 47, 29, 52, 255, 41, 25, 45, 255, 35, 21, 39, 255, 29, 17, 31, 255, 24, 14, 26, 255, 20, 11, 21, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 20, 255, 25, 16, 27, 255, 31, 20, 33, 255, 38, 25, 41, 255, 45, 30, 48, 255, 47, 30, 51, 255, 50, 31, 55, 255, 57, 35, 62, 255, 61, 37, 67, 255, 67, 40, 73, 255, 73, 44, 80, 255, 77, 46, 84, 255, 79, 48, 86, 255, 85, 52, 93, 255, 91, 55, 100, 255, 96, 58, 105, 255, 103, 63, 112, 255, 106, 64, 116, 255, 103, 62, 114, 255, 106, 63, 116, 255, 111, 65, 120, 255, 122, 75, 132, 255, 129, 80, 140, 255, 128, 81, 139, 255, 124, 79, 135, 255, 119, 76, 129, 255, 110, 69, 119, 255, 102, 63, 111, 255, 97, 60, 106, 255, 91, 57, 100, 255, 87, 55, 96, 255, 85, 53, 93, 255, 82, 51, 89, 255, 74, 46, 81, 255, 66, 40, 72, 255, 61, 37, 67, 255, 57, 35, 62, 255, 50, 31, 55, 255, 45, 27, 49, 255, 39, 24, 43, 255, 33, 20, 37, 255, 28, 16, 30, 255, 23, 14, 26, 255, 18, 10, 20, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 17, 11, 19, 255, 23, 16, 25, 255, 29, 19, 32, 255, 35, 24, 38, 255, 42, 29, 46, 255, 49, 33, 53, 255, 52, 33, 56, 255, 56, 35, 61, 255, 61, 38, 66, 255, 65, 40, 71, 255, 71, 43, 78, 255, 76, 46, 83, 255, 81, 49, 89, 255, 84, 51, 93, 255, 89, 54, 98, 255, 96, 58, 105, 255, 104, 63, 113, 255, 110, 66, 120, 255, 107, 64, 117, 255, 108, 64, 118, 255, 112, 67, 122, 255, 115, 68, 126, 255, 122, 73, 137, 255, 127, 76, 141, 255, 130, 81, 140, 255, 126, 79, 136, 255, 122, 76, 132, 255, 116, 73, 126, 255, 108, 66, 116, 255, 101, 62, 110, 255, 95, 59, 104, 255, 90, 56, 98, 255, 85, 53, 93, 255, 82, 51, 90, 255, 77, 48, 84, 255, 70, 44, 77, 255, 65, 40, 71, 255, 60, 36, 65, 255, 55, 33, 60, 255, 48, 29, 53, 255, 42, 25, 46, 255, 37, 22, 41, 255, 32, 19, 35, 255, 27, 16, 29, 255, 21, 13, 24, 255, 16, 9, 17, 255, 10, 6, 11, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 10, 6, 11, 255, 16, 10, 17, 255, 22, 15, 23, 255, 28, 19, 30, 255, 33, 23, 36, 255, 40, 27, 43, 255, 46, 30, 50, 255, 53, 35, 58, 255, 57, 36, 62, 255, 61, 38, 67, 255, 64, 40, 70, 255, 69, 42, 75, 255, 73, 44, 80, 255, 80, 49, 88, 255, 84, 51, 92, 255, 88, 53, 96, 255, 94, 57, 103, 255, 105, 64, 114, 255, 111, 68, 122, 255, 110, 66, 120, 255, 110, 65, 120, 255, 112, 67, 123, 255, 115, 69, 127, 255, 118, 70, 131, 255, 129, 78, 143, 255, 131, 79, 144, 255, 130, 80, 140, 255, 129, 80, 139, 255, 123, 77, 133, 255, 121, 75, 130, 255, 112, 68, 120, 255, 107, 65, 116, 255, 101, 62, 110, 255, 94, 58, 102, 255, 89, 55, 97, 255, 83, 52, 91, 255, 79, 49, 86, 255, 73, 45, 80, 255, 69, 42, 75, 255, 64, 39, 70, 255, 59, 35, 64, 255, 52, 32, 57, 255, 47, 28, 51, 255, 41, 24, 45, 255, 35, 21, 38, 255, 29, 17, 32, 255, 24, 14, 26, 255, 19, 11, 21, 255, 14, 8, 15, 255, 9, 5, 10, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 8, 5, 9, 255, 14, 9, 15, 255, 20, 14, 22, 255, 26, 18, 28, 255, 32, 22, 35, 255, 38, 26, 41, 255, 44, 29, 47, 255, 50, 33, 54, 255, 58, 37, 62, 255, 62, 39, 67, 255, 65, 41, 71, 255, 67, 42, 74, 255, 72, 44, 79, 255, 77, 47, 84, 255, 81, 50, 89, 255, 88, 54, 96, 255, 93, 56, 102, 255, 103, 64, 113, 255, 113, 70, 123, 255, 113, 69, 123, 255, 111, 67, 122, 255, 113, 67, 123, 255, 116, 68, 126, 255, 118, 71, 131, 255, 124, 75, 137, 255, 136, 82, 148, 255, 137, 83, 149, 255, 133, 80, 142, 255, 132, 82, 142, 255, 123, 76, 134, 255, 121, 74, 130, 255, 116, 71, 125, 255, 110, 66, 119, 255, 108, 65, 118, 255, 99, 61, 109, 255, 93, 58, 102, 255, 88, 55, 96, 255, 81, 50, 89, 255, 77, 48, 84, 255, 72, 44, 79, 255, 68, 41, 74, 255, 63, 38, 69, 255, 55, 33, 61, 255, 50, 30, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 33, 19, 36, 255, 26, 15, 28, 255, 21, 12, 23, 255, 17, 10, 19, 255, 12, 7, 13, 255, 8, 5, 9, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 18, 12, 19, 255, 24, 16, 26, 255, 31, 21, 33, 255, 37, 26, 40, 255, 43, 30, 47, 255, 49, 32, 53, 255, 56, 35, 60, 255, 61, 39, 66, 255, 65, 41, 70, 255, 68, 42, 74, 255, 71, 44, 78, 255, 74, 46, 82, 255, 78, 48, 86, 255, 84, 52, 92, 255, 92, 56, 101, 255, 103, 63, 112, 255, 110, 68, 120, 255, 115, 71, 125, 255, 114, 69, 125, 255, 115, 69, 126, 255, 117, 69, 127, 255, 119, 71, 130, 255, 122, 73, 134, 255, 129, 78, 141, 255, 138, 83, 151, 255, 137, 82, 150, 255, 133, 81, 143, 255, 132, 80, 141, 255, 127, 77, 136, 255, 123, 75, 132, 255, 118, 72, 127, 255, 113, 69, 122, 255, 109, 66, 119, 255, 105, 63, 114, 255, 96, 58, 105, 255, 88, 54, 97, 255, 83, 52, 91, 255, 78, 49, 86, 255, 74, 45, 81, 255, 71, 43, 78, 255, 66, 39, 72, 255, 59, 36, 65, 255, 52, 32, 57, 255, 47, 28, 51, 255, 43, 26, 47, 255, 39, 23, 43, 255, 32, 18, 35, 255, 24, 14, 27, 255, 19, 11, 21, 255, 15, 9, 17, 255, 11, 7, 12, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 15, 10, 17, 255, 22, 14, 24, 255, 28, 19, 30, 255, 35, 24, 38, 255, 41, 28, 45, 255, 48, 32, 51, 255, 54, 35, 58, 255, 58, 37, 63, 255, 62, 39, 68, 255, 66, 41, 72, 255, 69, 43, 75, 255, 72, 45, 79, 255, 76, 48, 84, 255, 80, 49, 88, 255, 92, 56, 100, 255, 103, 63, 112, 255, 109, 67, 118, 255, 114, 71, 125, 255, 118, 73, 128, 255, 118, 72, 129, 255, 120, 72, 131, 255, 119, 70, 129, 255, 121, 72, 132, 255, 127, 76, 138, 255, 134, 81, 143, 255, 143, 86, 155, 255, 142, 86, 155, 255, 133, 81, 146, 255, 132, 80, 142, 255, 128, 77, 137, 255, 123, 74, 132, 255, 122, 74, 131, 255, 117, 71, 126, 255, 111, 67, 121, 255, 109, 66, 120, 255, 102, 61, 111, 255, 88, 53, 97, 255, 84, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 73, 45, 80, 255, 70, 43, 76, 255, 63, 38, 69, 255, 56, 34, 61, 255, 50, 31, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 36, 21, 40, 255, 30, 17, 33, 255, 23, 13, 25, 255, 18, 10, 19, 255, 14, 8, 15, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 21, 255, 25, 16, 28, 255, 31, 21, 34, 255, 39, 26, 42, 255, 45, 31, 49, 255, 51, 34, 55, 255, 55, 35, 60, 255, 60, 37, 65, 255, 64, 40, 69, 255, 67, 42, 73, 255, 72, 45, 79, 255, 74, 46, 82, 255, 78, 48, 85, 255, 91, 55, 99, 255, 101, 62, 110, 255, 109, 67, 118, 255, 114, 71, 124, 255, 118, 73, 129, 255, 122, 75, 132, 255, 122, 74, 133, 255, 122, 73, 133, 255, 123, 73, 133, 255, 124, 75, 135, 255, 133, 81, 143, 255, 134, 82, 144, 255, 146, 90, 160, 255, 145, 90, 160, 255, 138, 84, 152, 255, 132, 81, 146, 255, 124, 76, 135, 255, 123, 74, 132, 255, 122, 73, 130, 255, 118, 71, 128, 255, 114, 69, 125, 255, 111, 67, 121, 255, 107, 65, 117, 255, 95, 57, 104, 255, 89, 53, 97, 255, 85, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 72, 44, 79, 255, 67, 41, 74, 255, 60, 37, 66, 255, 54, 33, 59, 255, 48, 29, 53, 255, 43, 26, 48, 255, 37, 22, 41, 255, 32, 19, 36, 255, 27, 16, 30, 255, 22, 13, 24, 255, 17, 10, 19, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 23, 15, 25, 255, 29, 19, 32, 255, 35, 23, 38, 255, 42, 28, 46, 255, 48, 31, 52, 255, 52, 33, 57, 255, 57, 36, 62, 255, 61, 38, 67, 255, 65, 40, 71, 255, 71, 44, 78, 255, 75, 46, 82, 255, 76, 46, 84, 255, 87, 52, 94, 255, 97, 60, 106, 255, 106, 65, 115, 255, 113, 70, 123, 255, 118, 73, 129, 255, 122, 75, 133, 255, 123, 76, 134, 255, 124, 75, 135, 255, 127, 76, 137, 255, 125, 75, 135, 255, 131, 80, 141, 255, 133, 81, 143, 255, 133, 81, 144, 255, 142, 84, 155, 255, 140, 84, 154, 255, 140, 85, 154, 255, 140, 85, 154, 255, 125, 77, 138, 255, 122, 74, 133, 255, 121, 73, 131, 255, 120, 72, 130, 255, 117, 71, 129, 255, 112, 68, 124, 255, 109, 66, 120, 255, 102, 61, 111, 255, 94, 56, 103, 255, 92, 55, 100, 255, 88, 54, 96, 255, 82, 50, 90, 255, 75, 46, 82, 255, 71, 43, 78, 255, 65, 39, 71, 255, 59, 36, 65, 255, 53, 32, 58, 255, 47, 28, 52, 255, 41, 25, 46, 255, 35, 20, 39, 255, 29, 17, 33, 255, 25, 15, 28, 255, 21, 13, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 18, 30, 255, 33, 22, 36, 255, 40, 26, 43, 255, 46, 30, 50, 255, 51, 33, 55, 255, 55, 35, 60, 255, 59, 37, 65, 255, 63, 39, 69, 255, 69, 43, 76, 255, 74, 46, 81, 255, 74, 45, 82, 255, 82, 49, 90, 255, 93, 56, 101, 255, 103, 63, 111, 255, 110, 68, 120, 255, 117, 72, 127, 255, 120, 74, 131, 255, 121, 73, 131, 255, 124, 76, 135, 255, 129, 79, 139, 255, 131, 80, 139, 255, 130, 80, 140, 255, 133, 81, 143, 255, 133, 80, 144, 255, 135, 83, 146, 255, 143, 90, 156, 255, 143, 89, 157, 255, 138, 84, 151, 255, 139, 85, 153, 255, 133, 81, 146, 255, 121, 75, 134, 255, 122, 75, 134, 255, 120, 73, 131, 255, 120, 72, 131, 255, 119, 72, 130, 255, 112, 68, 123, 255, 107, 65, 117, 255, 97, 58, 107, 255, 97, 59, 106, 255, 94, 57, 102, 255, 91, 56, 99, 255, 84, 51, 91, 255, 74, 45, 81, 255, 68, 41, 75, 255, 63, 38, 70, 255, 57, 35, 63, 255, 51, 31, 56, 255, 46, 28, 51, 255, 39, 23, 43, 255, 33, 19, 36, 255, 28, 17, 31, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 31, 20, 34, 255, 38, 25, 41, 255, 44, 29, 48, 255, 50, 33, 54, 255, 55, 35, 60, 255, 59, 37, 64, 255, 62, 39, 68, 255, 67, 42, 74, 255, 73, 45, 80, 255, 75, 45, 83, 255, 78, 47, 86, 255, 88, 53, 96, 255, 97, 59, 105, 255, 105, 64, 114, 255, 112, 69, 123, 255, 118, 72, 128, 255, 117, 71, 127, 255, 121, 74, 131, 255, 130, 81, 140, 255, 133, 82, 142, 255, 134, 82, 142, 255, 135, 82, 144, 255, 134, 82, 144, 255, 133, 82, 144, 255, 134, 83, 146, 255, 145, 91, 159, 255, 144, 90, 158, 255, 133, 82, 147, 255, 137, 84, 150, 255, 134, 81, 147, 255, 125, 77, 138, 255, 121, 75, 134, 255, 122, 75, 133, 255, 119, 74, 130, 255, 122, 74, 133, 255, 117, 70, 128, 255, 112, 68, 122, 255, 100, 60, 110, 255, 95, 57, 105, 255, 99, 60, 107, 255, 96, 59, 104, 255, 91, 56, 99, 255, 84, 52, 91, 255, 75, 46, 82, 255, 68, 41, 74, 255, 62, 37, 68, 255, 55, 33, 60, 255, 48, 29, 53, 255, 43, 26, 48, 255, 36, 21, 39, 255, 31, 18, 34, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 36, 23, 39, 255, 42, 28, 46, 255, 48, 32, 52, 255, 54, 36, 59, 255, 58, 37, 64, 255, 61, 38, 66, 255, 66, 41, 72, 255, 73, 45, 80, 255, 78, 47, 85, 255, 81, 48, 89, 255, 83, 50, 91, 255, 90, 54, 98, 255, 96, 58, 106, 255, 106, 65, 116, 255, 112, 68, 122, 255, 117, 71, 128, 255, 119, 73, 129, 255, 125, 79, 136, 255, 131, 83, 143, 255, 136, 84, 145, 255, 137, 83, 145, 255, 134, 82, 144, 255, 133, 82, 144, 255, 138, 85, 149, 255, 138, 85, 150, 255, 136, 87, 151, 255, 132, 84, 147, 255, 138, 85, 152, 255, 137, 84, 150, 255, 134, 82, 147, 255, 130, 80, 143, 255, 123, 76, 136, 255, 123, 76, 135, 255, 123, 77, 134, 255, 118, 74, 129, 255, 119, 73, 130, 255, 114, 69, 125, 255, 107, 65, 117, 255, 95, 57, 106, 255, 100, 61, 109, 255, 100, 61, 109, 255, 96, 60, 105, 255, 90, 55, 98, 255, 83, 51, 90, 255, 76, 47, 82, 255, 68, 41, 74, 255, 60, 36, 66, 255, 53, 32, 58, 255, 44, 26, 49, 255, 38, 22, 43, 255, 34, 20, 37, 255, 31, 19, 34, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 40, 26, 43, 255, 46, 30, 50, 255, 52, 34, 57, 255, 57, 37, 62, 255, 59, 37, 65, 255, 64, 40, 70, 255, 72, 44, 79, 255, 78, 47, 85, 255, 84, 51, 91, 255, 87, 52, 95, 255, 89, 53, 97, 255, 88, 53, 97, 255, 99, 60, 109, 255, 107, 64, 117, 255, 114, 70, 125, 255, 118, 74, 129, 255, 121, 76, 132, 255, 128, 81, 139, 255, 136, 86, 147, 255, 136, 84, 146, 255, 135, 83, 144, 255, 133, 82, 144, 255, 139, 86, 150, 255, 143, 87, 153, 255, 153, 98, 169, 255, 219, 159, 236, 255, 229, 167, 245, 255, 176, 115, 191, 255, 138, 85, 152, 255, 136, 83, 150, 255, 134, 82, 148, 255, 132, 80, 145, 255, 125, 78, 137, 255, 125, 78, 136, 255, 123, 77, 134, 255, 118, 74, 128, 255, 117, 72, 128, 255, 110, 67, 120, 255, 105, 63, 115, 255, 101, 61, 111, 255, 102, 63, 112, 255, 100, 62, 109, 255, 95, 59, 103, 255, 88, 54, 95, 255, 82, 51, 89, 255, 75, 46, 82, 255, 66, 40, 72, 255, 59, 36, 64, 255, 50, 30, 55, 255, 42, 24, 46, 255, 37, 22, 41, 255, 34, 20, 37, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 43, 27, 47, 255, 49, 32, 54, 255, 56, 37, 61, 255, 59, 38, 65, 255, 64, 40, 69, 255, 70, 42, 75, 255, 75, 45, 82, 255, 81, 49, 89, 255, 87, 53, 96, 255, 91, 55, 99, 255, 94, 57, 103, 255, 96, 58, 105, 255, 105, 64, 115, 255, 110, 68, 120, 255, 114, 72, 124, 255, 119, 76, 130, 255, 125, 79, 136, 255, 130, 82, 142, 255, 134, 85, 146, 255, 134, 84, 145, 255, 135, 83, 145, 255, 139, 85, 149, 255, 141, 86, 156, 255, 175, 117, 191, 255, 162, 105, 178, 255, 166, 106, 182, 255, 168, 108, 184, 255, 178, 117, 193, 255, 198, 136, 214, 255, 150, 92, 161, 255, 137, 83, 150, 255, 138, 84, 150, 255, 133, 81, 145, 255, 126, 78, 137, 255, 125, 79, 136, 255, 123, 77, 133, 255, 119, 74, 130, 255, 113, 70, 123, 255, 109, 67, 119, 255, 105, 64, 115, 255, 103, 62, 112, 255, 103, 63, 112, 255, 99, 61, 108, 255, 92, 57, 101, 255, 85, 53, 93, 255, 79, 48, 86, 255, 72, 44, 79, 255, 64, 38, 69, 255, 56, 34, 62, 255, 47, 27, 51, 255, 40, 23, 45, 255, 38, 23, 41, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 29, 50, 255, 54, 35, 59, 255, 60, 39, 65, 255, 64, 40, 70, 255, 69, 43, 74, 255, 73, 44, 79, 255, 77, 46, 84, 255, 84, 50, 92, 255, 88, 53, 97, 255, 95, 57, 104, 255, 99, 60, 109, 255, 103, 63, 112, 255, 106, 66, 116, 255, 109, 69, 119, 255, 117, 74, 127, 255, 128, 82, 138, 255, 126, 79, 138, 255, 130, 83, 142, 255, 134, 85, 147, 255, 136, 84, 147, 255, 139, 85, 149, 255, 152, 93, 167, 255, 185, 122, 201, 255, 160, 98, 175, 255, 157, 98, 173, 255, 157, 98, 173, 255, 157, 98, 173, 255, 152, 94, 168, 255, 156, 96, 171, 255, 189, 124, 200, 255, 156, 95, 167, 255, 139, 84, 152, 255, 136, 83, 149, 255, 131, 81, 142, 255, 126, 78, 136, 255, 122, 76, 133, 255, 115, 71, 125, 255, 113, 70, 123, 255, 110, 68, 119, 255, 107, 66, 117, 255, 105, 64, 114, 255, 102, 63, 112, 255, 101, 62, 110, 255, 96, 59, 105, 255, 89, 55, 97, 255, 81, 50, 88, 255, 74, 45, 80, 255, 66, 40, 72, 255, 59, 35, 64, 255, 51, 30, 56, 255, 44, 26, 49, 255, 40, 24, 44, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 50, 32, 55, 255, 58, 37, 63, 255, 64, 41, 69, 255, 69, 43, 74, 255, 73, 45, 79, 255, 77, 47, 83, 255, 81, 49, 89, 255, 87, 52, 95, 255, 93, 56, 102, 255, 98, 60, 108, 255, 100, 61, 109, 255, 104, 64, 113, 255, 109, 68, 118, 255, 112, 71, 122, 255, 122, 78, 133, 255, 127, 81, 138, 255, 128, 81, 140, 255, 133, 84, 146, 255, 132, 84, 145, 255, 143, 88, 157, 255, 172, 106, 187, 255, 172, 107, 187, 255, 165, 100, 180, 255, 164, 99, 179, 255, 159, 96, 174, 255, 158, 98, 173, 255, 152, 94, 167, 255, 141, 84, 156, 255, 143, 85, 157, 255, 152, 91, 164, 255, 167, 103, 177, 255, 170, 105, 179, 255, 143, 89, 153, 255, 134, 84, 147, 255, 128, 79, 139, 255, 121, 73, 130, 255, 116, 71, 125, 255, 111, 68, 120, 255, 111, 68, 120, 255, 108, 68, 118, 255, 104, 66, 114, 255, 104, 64, 114, 255, 100, 61, 109, 255, 97, 59, 105, 255, 93, 57, 101, 255, 85, 52, 92, 255, 75, 46, 82, 255, 68, 41, 75, 255, 61, 36, 67, 255, 54, 32, 59, 255, 48, 28, 53, 255, 43, 25, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 34, 59, 255, 62, 39, 67, 255, 67, 42, 72, 255, 72, 45, 77, 255, 75, 46, 81, 255, 80, 49, 86, 255, 85, 51, 92, 255, 91, 55, 100, 255, 98, 59, 108, 255, 101, 62, 110, 255, 105, 65, 114, 255, 106, 65, 115, 255, 109, 68, 119, 255, 113, 71, 124, 255, 122, 78, 133, 255, 128, 82, 139, 255, 134, 85, 146, 255, 132, 84, 145, 255, 152, 94, 167, 255, 175, 109, 191, 255, 163, 98, 178, 255, 161, 97, 176, 255, 163, 98, 178, 255, 160, 97, 176, 255, 161, 97, 176, 255, 152, 91, 167, 255, 138, 81, 154, 255, 142, 83, 155, 255, 148, 88, 160, 255, 155, 93, 166, 255, 152, 91, 164, 255, 157, 94, 168, 255, 161, 103, 176, 255, 150, 95, 163, 255, 132, 83, 144, 255, 123, 75, 133, 255, 115, 69, 123, 255, 114, 69, 123, 255, 110, 68, 119, 255, 109, 69, 119, 255, 107, 68, 117, 255, 105, 66, 114, 255, 101, 63, 110, 255, 95, 58, 103, 255, 94, 57, 102, 255, 88, 54, 96, 255, 80, 48, 87, 255, 72, 43, 78, 255, 65, 39, 71, 255, 58, 34, 63, 255, 52, 31, 57, 255, 47, 28, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 58, 36, 63, 255, 65, 41, 70, 255, 70, 43, 75, 255, 73, 45, 79, 255, 78, 48, 84, 255, 83, 50, 89, 255, 86, 52, 94, 255, 94, 57, 103, 255, 97, 60, 106, 255, 102, 64, 111, 255, 103, 64, 112, 255, 104, 64, 112, 255, 110, 68, 119, 255, 115, 73, 125, 255, 125, 80, 137, 255, 135, 87, 147, 255, 137, 87, 150, 255, 160, 98, 176, 255, 168, 103, 184, 255, 159, 96, 175, 255, 154, 91, 170, 255, 158, 94, 173, 255, 164, 98, 179, 255, 164, 99, 180, 255, 149, 88, 165, 255, 138, 80, 154, 255, 143, 84, 159, 255, 150, 89, 165, 255, 152, 91, 164, 255, 146, 86, 158, 255, 142, 85, 156, 255, 141, 86, 156, 255, 147, 91, 162, 255, 159, 101, 174, 255, 148, 93, 162, 255, 128, 79, 138, 255, 118, 71, 126, 255, 114, 68, 122, 255, 114, 69, 123, 255, 110, 69, 120, 255, 111, 71, 121, 255, 110, 70, 119, 255, 103, 65, 112, 255, 99, 62, 107, 255, 95, 58, 103, 255, 90, 55, 98, 255, 83, 50, 91, 255, 76, 45, 82, 255, 68, 40, 75, 255, 63, 38, 69, 255, 56, 33, 61, 255, 52, 31, 57, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 63, 40, 69, 255, 68, 43, 74, 255, 72, 45, 78, 255, 76, 46, 81, 255, 80, 48, 86, 255, 84, 50, 90, 255, 88, 54, 96, 255, 92, 58, 101, 255, 99, 62, 107, 255, 103, 64, 112, 255, 103, 63, 111, 255, 107, 65, 115, 255, 113, 69, 122, 255, 119, 76, 129, 255, 132, 85, 144, 255, 151, 97, 166, 255, 170, 107, 187, 255, 163, 100, 179, 255, 160, 97, 175, 255, 151, 89, 166, 255, 147, 86, 162, 255, 157, 95, 172, 255, 162, 97, 177, 255, 162, 97, 177, 255, 145, 85, 160, 255, 140, 81, 156, 255, 151, 89, 166, 255, 156, 93, 172, 255, 153, 91, 169, 255, 138, 82, 152, 255, 133, 81, 148, 255, 137, 84, 152, 255, 140, 86, 154, 255, 138, 85, 152, 255, 139, 87, 154, 255, 149, 93, 160, 255, 136, 84, 145, 255, 116, 70, 124, 255, 114, 69, 123, 255, 112, 71, 122, 255, 112, 71, 122, 255, 114, 73, 124, 255, 109, 69, 118, 255, 101, 64, 110, 255, 100, 63, 108, 255, 94, 58, 102, 255, 86, 52, 94, 255, 79, 47, 86, 255, 72, 43, 79, 255, 66, 39, 72, 255, 60, 36, 66, 255, 55, 32, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 65, 41, 70, 255, 71, 44, 76, 255, 76, 47, 82, 255, 78, 47, 83, 255, 81, 48, 87, 255, 85, 52, 93, 255, 90, 56, 98, 255, 97, 61, 106, 255, 103, 65, 113, 255, 103, 64, 112, 255, 105, 63, 112, 255, 109, 66, 117, 255, 114, 70, 123, 255, 125, 79, 135, 255, 155, 99, 170, 255, 164, 104, 181, 255, 155, 96, 173, 255, 152, 91, 168, 255, 144, 85, 159, 255, 148, 88, 163, 255, 157, 95, 172, 255, 159, 96, 174, 255, 158, 95, 173, 255, 150, 87, 165, 255, 146, 85, 161, 255, 149, 88, 164, 255, 159, 95, 174, 255, 155, 92, 170, 255, 139, 81, 154, 255, 139, 81, 154, 255, 142, 84, 156, 255, 135, 82, 149, 255, 132, 80, 146, 255, 127, 77, 142, 255, 133, 80, 145, 255, 142, 86, 152, 255, 143, 87, 153, 255, 133, 80, 145, 255, 114, 68, 122, 255, 115, 72, 125, 255, 115, 73, 125, 255, 114, 73, 125, 255, 110, 70, 120, 255, 105, 67, 114, 255, 102, 65, 111, 255, 99, 62, 106, 255, 91, 55, 98, 255, 83, 49, 90, 255, 74, 44, 81, 255, 69, 41, 76, 255, 64, 38, 70, 255, 58, 35, 64, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 67, 40, 71, 255, 73, 45, 79, 255, 78, 47, 83, 255, 79, 48, 85, 255, 83, 50, 90, 255, 87, 54, 96, 255, 93, 58, 101, 255, 99, 62, 108, 255, 103, 64, 112, 255, 103, 62, 110, 255, 104, 62, 111, 255, 110, 66, 117, 255, 117, 73, 130, 255, 157, 100, 173, 255, 157, 99, 174, 255, 150, 91, 167, 255, 148, 89, 166, 255, 142, 84, 162, 255, 152, 93, 169, 255, 161, 99, 176, 255, 160, 98, 175, 255, 158, 95, 172, 255, 152, 89, 166, 255, 149, 87, 163, 255, 154, 91, 168, 255, 157, 94, 172, 255, 152, 90, 166, 255, 138, 80, 152, 255, 141, 83, 155, 255, 144, 85, 159, 255, 139, 81, 153, 255, 137, 80, 151, 255, 129, 77, 143, 255, 128, 75, 142, 255, 132, 77, 145, 255, 132, 77, 145, 255, 135, 80, 146, 255, 135, 80, 146, 255, 134, 79, 145, 255, 132, 84, 144, 255, 120, 77, 131, 255, 119, 76, 129, 255, 111, 71, 121, 255, 106, 67, 116, 255, 106, 67, 114, 255, 102, 64, 109, 255, 96, 58, 101, 255, 86, 52, 92, 255, 78, 46, 85, 255, 72, 43, 79, 255, 67, 40, 74, 255, 61, 37, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 70, 42, 75, 255, 75, 45, 80, 255, 78, 47, 84, 255, 77, 47, 85, 255, 83, 51, 91, 255, 87, 54, 96, 255, 94, 59, 103, 255, 101, 62, 109, 255, 104, 63, 111, 255, 105, 64, 113, 255, 107, 64, 114, 255, 116, 70, 129, 255, 134, 83, 148, 255, 148, 94, 163, 255, 155, 98, 171, 255, 161, 103, 175, 255, 162, 104, 177, 255, 157, 99, 173, 255, 157, 98, 172, 255, 154, 95, 170, 255, 151, 91, 166, 255, 148, 86, 162, 255, 144, 83, 158, 255, 150, 89, 164, 255, 155, 94, 170, 255, 152, 91, 166, 255, 146, 86, 160, 255, 143, 84, 157, 255, 143, 84, 157, 255, 144, 85, 158, 255, 151, 90, 165, 255, 144, 86, 159, 255, 130, 75, 144, 255, 127, 73, 142, 255, 128, 74, 142, 255, 130, 76, 142, 255, 131, 77, 143, 255, 130, 76, 142, 255, 132, 79, 143, 255, 147, 93, 160, 255, 142, 91, 155, 255, 126, 81, 137, 255, 117, 75, 128, 255, 110, 70, 120, 255, 105, 67, 115, 255, 103, 65, 111, 255, 98, 60, 104, 255, 90, 55, 96, 255, 80, 49, 87, 255, 76, 46, 83, 255, 72, 43, 78, 255, 67, 40, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 73, 44, 78, 255, 77, 47, 84, 255, 79, 49, 88, 255, 82, 50, 90, 255, 85, 52, 94, 255, 92, 57, 101, 255, 99, 61, 108, 255, 105, 65, 114, 255, 108, 67, 117, 255, 110, 67, 121, 255, 124, 76, 137, 255, 127, 78, 141, 255, 136, 87, 150, 255, 141, 91, 155, 255, 145, 94, 159, 255, 153, 98, 167, 255, 156, 99, 171, 255, 154, 97, 169, 255, 152, 94, 168, 255, 147, 90, 165, 255, 144, 89, 163, 255, 143, 86, 160, 255, 150, 89, 164, 255, 151, 91, 165, 255, 148, 89, 161, 255, 141, 83, 155, 255, 138, 80, 152, 255, 140, 82, 154, 255, 144, 85, 158, 255, 151, 91, 165, 255, 142, 84, 156, 255, 136, 81, 150, 255, 134, 79, 149, 255, 135, 80, 149, 255, 139, 84, 152, 255, 133, 80, 144, 255, 130, 77, 140, 255, 125, 72, 133, 255, 127, 75, 136, 255, 135, 82, 145, 255, 139, 87, 150, 255, 138, 87, 149, 255, 118, 73, 130, 255, 112, 71, 122, 255, 108, 68, 118, 255, 103, 65, 112, 255, 99, 61, 106, 255, 94, 57, 100, 255, 86, 53, 92, 255, 81, 50, 87, 255, 76, 46, 82, 255, 71, 43, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 74, 45, 81, 255, 81, 49, 89, 255, 86, 52, 95, 255, 86, 53, 94, 255, 91, 55, 100, 255, 100, 61, 109, 255, 104, 64, 113, 255, 108, 68, 118, 255, 127, 79, 139, 255, 138, 84, 151, 255, 134, 85, 148, 255, 140, 91, 154, 255, 133, 83, 146, 255, 125, 76, 139, 255, 126, 76, 139, 255, 134, 81, 148, 255, 141, 84, 156, 255, 142, 87, 159, 255, 145, 89, 162, 255, 150, 92, 165, 255, 147, 90, 163, 255, 149, 92, 165, 255, 147, 87, 161, 255, 146, 87, 160, 255, 138, 81, 152, 255, 139, 82, 154, 255, 145, 87, 159, 255, 140, 82, 153, 255, 142, 84, 155, 255, 139, 83, 153, 255, 137, 82, 151, 255, 141, 86, 155, 255, 140, 85, 154, 255, 143, 87, 157, 255, 144, 89, 158, 255, 138, 84, 152, 255, 132, 79, 143, 255, 129, 77, 138, 255, 129, 77, 138, 255, 126, 74, 135, 255, 124, 73, 133, 255, 131, 80, 143, 255, 130, 78, 147, 255, 120, 73, 133, 255, 107, 68, 117, 255, 104, 65, 113, 255, 99, 61, 106, 255, 94, 58, 101, 255, 89, 54, 96, 255, 83, 51, 90, 255, 79, 48, 85, 255, 74, 45, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 78, 47, 85, 255, 85, 51, 93, 255, 86, 53, 95, 255, 89, 54, 98, 255, 96, 58, 105, 255, 102, 62, 112, 255, 107, 67, 117, 255, 133, 83, 145, 255, 142, 89, 155, 255, 137, 85, 150, 255, 137, 84, 149, 255, 137, 88, 150, 255, 135, 87, 149, 255, 130, 81, 143, 255, 130, 77, 143, 255, 132, 75, 145, 255, 135, 78, 148, 255, 140, 84, 154, 255, 145, 90, 160, 255, 146, 90, 161, 255, 145, 88, 160, 255, 145, 86, 159, 255, 147, 87, 160, 255, 143, 83, 156, 255, 144, 85, 157, 255, 141, 84, 155, 255, 134, 79, 148, 255, 138, 82, 151, 255, 139, 83, 153, 255, 143, 86, 156, 255, 142, 85, 156, 255, 138, 83, 151, 255, 142, 88, 156, 255, 146, 91, 160, 255, 146, 90, 159, 255, 138, 84, 152, 255, 128, 77, 142, 255, 128, 77, 140, 255, 128, 77, 138, 255, 128, 78, 139, 255, 126, 75, 138, 255, 124, 74, 141, 255, 125, 75, 142, 255, 132, 80, 146, 255, 127, 77, 139, 255, 103, 65, 113, 255, 102, 63, 109, 255, 94, 58, 102, 255, 89, 55, 96, 255, 85, 51, 92, 255, 80, 48, 86, 255, 76, 47, 82, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 85, 52, 93, 255, 87, 53, 95, 255, 91, 55, 100, 255, 98, 60, 107, 255, 116, 74, 128, 255, 136, 86, 149, 255, 136, 85, 149, 255, 135, 85, 148, 255, 138, 88, 151, 255, 143, 93, 155, 255, 144, 94, 157, 255, 143, 93, 156, 255, 136, 84, 149, 255, 132, 77, 144, 255, 133, 78, 145, 255, 136, 81, 148, 255, 140, 86, 153, 255, 142, 88, 156, 255, 139, 83, 153, 255, 139, 81, 151, 255, 142, 84, 155, 255, 147, 88, 160, 255, 149, 89, 162, 255, 140, 82, 153, 255, 133, 77, 146, 255, 137, 82, 150, 255, 138, 83, 151, 255, 140, 84, 153, 255, 137, 82, 151, 255, 136, 81, 149, 255, 141, 84, 154, 255, 145, 90, 159, 255, 148, 91, 162, 255, 141, 86, 154, 255, 132, 80, 145, 255, 131, 79, 144, 255, 130, 78, 143, 255, 129, 78, 142, 255, 128, 77, 141, 255, 125, 75, 141, 255, 124, 74, 140, 255, 126, 76, 140, 255, 129, 78, 141, 255, 130, 79, 142, 255, 126, 75, 139, 255, 108, 65, 120, 255, 99, 61, 106, 255, 92, 57, 99, 255, 86, 53, 93, 255, 81, 50, 88, 255, 77, 47, 83, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 81, 49, 88, 255, 83, 51, 92, 255, 90, 55, 98, 255, 94, 57, 103, 255, 119, 76, 133, 255, 136, 88, 149, 255, 134, 87, 147, 255, 134, 86, 147, 255, 136, 88, 148, 255, 139, 90, 151, 255, 145, 98, 157, 255, 150, 103, 162, 255, 149, 102, 162, 255, 144, 94, 156, 255, 135, 82, 147, 255, 136, 84, 149, 255, 137, 85, 150, 255, 140, 87, 153, 255, 141, 87, 154, 255, 135, 82, 148, 255, 136, 81, 149, 255, 140, 83, 153, 255, 141, 84, 154, 255, 137, 80, 150, 255, 137, 82, 150, 255, 141, 87, 154, 255, 135, 84, 148, 255, 131, 79, 144, 255, 132, 79, 145, 255, 133, 79, 146, 255, 135, 81, 148, 255, 142, 88, 155, 255, 145, 92, 158, 255, 142, 89, 155, 255, 138, 85, 151, 255, 133, 81, 146, 255, 128, 77, 141, 255, 128, 77, 140, 255, 128, 75, 137, 255, 129, 75, 138, 255, 127, 76, 139, 255, 122, 73, 137, 255, 125, 75, 138, 255, 126, 76, 138, 255, 126, 77, 138, 255, 125, 75, 136, 255, 127, 77, 139, 255, 118, 73, 129, 255, 97, 60, 104, 255, 91, 56, 98, 255, 84, 52, 91, 255, 80, 49, 86, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 87, 54, 96, 255, 95, 59, 103, 255, 120, 77, 135, 255, 127, 82, 144, 255, 129, 84, 143, 255, 134, 88, 144, 255, 135, 89, 146, 255, 136, 90, 148, 255, 140, 93, 152, 255, 143, 96, 154, 255, 146, 101, 158, 255, 145, 99, 157, 255, 144, 96, 156, 255, 141, 91, 154, 255, 138, 88, 151, 255, 138, 86, 150, 255, 141, 87, 153, 255, 137, 84, 150, 255, 132, 80, 145, 255, 135, 83, 148, 255, 132, 80, 144, 255, 127, 74, 139, 255, 134, 81, 146, 255, 134, 83, 147, 255, 125, 77, 138, 255, 128, 79, 141, 255, 135, 84, 148, 255, 127, 77, 139, 255, 132, 80, 145, 255, 138, 86, 150, 255, 139, 87, 152, 255, 139, 87, 152, 255, 139, 87, 151, 255, 136, 85, 149, 255, 131, 80, 143, 255, 128, 77, 140, 255, 130, 77, 141, 255, 130, 77, 141, 255, 126, 74, 135, 255, 121, 69, 128, 255, 121, 70, 130, 255, 120, 72, 133, 255, 122, 73, 134, 255, 124, 76, 135, 255, 123, 75, 134, 255, 122, 75, 133, 255, 124, 76, 135, 255, 110, 63, 121, 255, 99, 62, 108, 255, 88, 54, 95, 255, 80, 49, 87, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 82, 51, 90, 255, 101, 63, 108, 255, 120, 75, 127, 255, 121, 77, 132, 255, 122, 79, 138, 255, 126, 82, 140, 255, 129, 85, 141, 255, 130, 85, 142, 255, 132, 88, 144, 255, 133, 86, 145, 255, 135, 88, 146, 255, 136, 89, 148, 255, 139, 92, 150, 255, 139, 92, 151, 255, 143, 98, 156, 255, 141, 92, 153, 255, 140, 89, 152, 255, 138, 86, 151, 255, 136, 84, 148, 255, 133, 82, 145, 255, 127, 77, 140, 255, 124, 75, 136, 255, 127, 80, 139, 255, 125, 78, 137, 255, 118, 72, 130, 255, 127, 79, 140, 255, 127, 79, 140, 255, 118, 72, 130, 255, 127, 78, 138, 255, 136, 84, 147, 255, 137, 85, 149, 255, 136, 85, 148, 255, 136, 85, 148, 255, 136, 85, 148, 255, 135, 84, 146, 255, 134, 82, 144, 255, 132, 80, 142, 255, 130, 78, 142, 255, 127, 76, 138, 255, 125, 74, 134, 255, 123, 73, 133, 255, 119, 71, 129, 255, 111, 66, 122, 255, 120, 73, 131, 255, 122, 76, 133, 255, 118, 70, 128, 255, 116, 69, 127, 255, 114, 67, 125, 255, 113, 69, 124, 255, 111, 70, 122, 255, 95, 60, 105, 255, 82, 51, 90, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 102, 62, 108, 255, 116, 73, 124, 255, 116, 73, 124, 255, 119, 76, 127, 255, 123, 80, 133, 255, 127, 83, 136, 255, 130, 86, 138, 255, 130, 88, 141, 255, 133, 92, 143, 255, 134, 93, 145, 255, 134, 92, 145, 255, 134, 91, 145, 255, 135, 89, 146, 255, 134, 87, 146, 255, 136, 88, 147, 255, 139, 90, 150, 255, 138, 89, 149, 255, 136, 88, 148, 255, 133, 84, 145, 255, 129, 79, 141, 255, 123, 76, 134, 255, 121, 76, 131, 255, 117, 72, 126, 255, 119, 74, 130, 255, 122, 77, 134, 255, 112, 69, 123, 255, 112, 68, 123, 255, 127, 78, 138, 255, 133, 82, 144, 255, 136, 84, 148, 255, 136, 84, 148, 255, 134, 84, 146, 255, 134, 84, 145, 255, 133, 83, 145, 255, 131, 80, 142, 255, 132, 81, 143, 255, 130, 80, 141, 255, 125, 75, 134, 255, 124, 74, 134, 255, 125, 75, 136, 255, 122, 74, 132, 255, 117, 71, 127, 255, 117, 72, 127, 255, 118, 73, 129, 255, 116, 71, 126, 255, 114, 68, 125, 255, 111, 66, 121, 255, 108, 67, 118, 255, 106, 67, 116, 255, 101, 63, 111, 255, 109, 69, 120, 255, 90, 57, 100, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 111, 69, 118, 255, 113, 71, 120, 255, 117, 75, 126, 255, 121, 79, 130, 255, 126, 83, 136, 255, 126, 85, 137, 255, 127, 87, 138, 255, 129, 90, 140, 255, 130, 91, 141, 255, 131, 92, 142, 255, 132, 92, 143, 255, 135, 91, 144, 255, 135, 89, 145, 255, 133, 87, 144, 255, 131, 85, 143, 255, 130, 83, 141, 255, 127, 80, 138, 255, 125, 78, 136, 255, 122, 76, 133, 255, 118, 74, 129, 255, 116, 72, 126, 255, 118, 74, 129, 255, 117, 73, 127, 255, 108, 66, 115, 255, 111, 67, 118, 255, 120, 73, 128, 255, 124, 76, 133, 255, 128, 78, 138, 255, 130, 80, 141, 255, 132, 82, 144, 255, 132, 81, 143, 255, 131, 81, 143, 255, 131, 81, 143, 255, 130, 80, 141, 255, 126, 77, 136, 255, 124, 75, 133, 255, 122, 74, 131, 255, 124, 76, 133, 255, 124, 77, 133, 255, 121, 75, 131, 255, 117, 72, 127, 255, 115, 71, 124, 255, 114, 70, 123, 255, 112, 69, 122, 255, 108, 68, 118, 255, 104, 66, 114, 255, 103, 65, 113, 255, 104, 66, 114, 255, 106, 67, 116, 255, 97, 61, 107, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 64, 40, 70, 255, 110, 69, 117, 255, 113, 73, 123, 255, 120, 79, 130, 255, 121, 80, 131, 255, 122, 81, 132, 255, 124, 86, 134, 255, 126, 86, 136, 255, 127, 86, 136, 255, 131, 89, 138, 255, 133, 89, 139, 255, 130, 85, 137, 255, 126, 81, 136, 255, 123, 78, 134, 255, 121, 76, 132, 255, 120, 75, 131, 255, 118, 73, 127, 255, 115, 71, 123, 255, 115, 71, 124, 255, 116, 73, 127, 255, 114, 71, 124, 255, 107, 65, 116, 255, 105, 63, 115, 255, 111, 66, 120, 255, 119, 72, 126, 255, 121, 73, 128, 255, 121, 74, 129, 255, 123, 76, 132, 255, 124, 76, 135, 255, 126, 78, 137, 255, 126, 78, 137, 255, 126, 78, 137, 255, 122, 74, 132, 255, 117, 70, 125, 255, 115, 68, 121, 255, 118, 72, 125, 255, 121, 75, 129, 255, 118, 73, 126, 255, 118, 73, 126, 255, 114, 71, 123, 255, 112, 69, 121, 255, 110, 68, 119, 255, 105, 66, 115, 255, 101, 64, 111, 255, 100, 64, 110, 255, 103, 65, 113, 255, 105, 65, 114, 255, 61, 36, 67, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 106, 67, 115, 255, 111, 72, 121, 255, 112, 72, 121, 255, 113, 73, 123, 255, 115, 75, 125, 255, 118, 78, 127, 255, 123, 81, 130, 255, 123, 81, 131, 255, 123, 80, 131, 255, 117, 74, 127, 255, 117, 73, 127, 255, 115, 72, 126, 255, 112, 70, 121, 255, 112, 70, 121, 255, 108, 67, 115, 255, 111, 68, 118, 255, 113, 70, 122, 255, 114, 70, 122, 255, 110, 67, 119, 255, 100, 60, 111, 255, 101, 61, 112, 255, 106, 63, 115, 255, 110, 66, 118, 255, 114, 68, 121, 255, 117, 71, 124, 255, 116, 71, 125, 255, 117, 72, 128, 255, 117, 72, 128, 255, 115, 70, 126, 255, 114, 68, 124, 255, 116, 71, 127, 255, 114, 70, 123, 255, 114, 70, 121, 255, 112, 69, 120, 255, 110, 68, 119, 255, 114, 71, 122, 255, 117, 73, 123, 255, 113, 70, 120, 255, 107, 67, 116, 255, 101, 64, 111, 255, 100, 63, 110, 255, 97, 62, 107, 255, 99, 63, 109, 255, 101, 63, 110, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 99, 62, 108, 255, 108, 69, 117, 255, 111, 73, 121, 255, 111, 73, 119, 255, 110, 72, 117, 255, 110, 71, 118, 255, 112, 72, 122, 255, 113, 72, 122, 255, 114, 72, 123, 255, 112, 71, 122, 255, 107, 70, 117, 255, 107, 70, 117, 255, 110, 70, 120, 255, 108, 67, 116, 255, 108, 67, 116, 255, 106, 65, 113, 255, 108, 66, 116, 255, 109, 66, 119, 255, 108, 65, 118, 255, 105, 63, 114, 255, 102, 61, 111, 255, 96, 58, 107, 255, 99, 60, 109, 255, 96, 58, 106, 255, 102, 63, 113, 255, 107, 65, 117, 255, 106, 63, 116, 255, 106, 63, 116, 255, 111, 68, 121, 255, 111, 69, 120, 255, 110, 70, 117, 255, 106, 67, 114, 255, 105, 65, 114, 255, 109, 68, 117, 255, 109, 68, 117, 255, 107, 66, 115, 255, 105, 66, 114, 255, 103, 65, 113, 255, 104, 65, 114, 255, 100, 63, 110, 255, 98, 62, 107, 255, 97, 61, 106, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 102, 65, 108, 255, 106, 70, 114, 255, 109, 72, 117, 255, 110, 74, 119, 255, 110, 73, 118, 255, 111, 72, 119, 255, 111, 72, 120, 255, 111, 73, 120, 255, 110, 72, 120, 255, 106, 69, 116, 255, 100, 65, 110, 255, 101, 64, 110, 255, 104, 64, 112, 255, 107, 66, 116, 255, 108, 66, 118, 255, 108, 66, 117, 255, 108, 66, 118, 255, 107, 65, 117, 255, 108, 65, 115, 255, 107, 65, 115, 255, 104, 64, 114, 255, 96, 59, 107, 255, 91, 56, 101, 255, 100, 62, 111, 255, 105, 64, 115, 255, 108, 66, 118, 255, 103, 64, 112, 255, 100, 63, 109, 255, 100, 63, 109, 255, 105, 67, 112, 255, 110, 70, 116, 255, 104, 65, 112, 255, 98, 61, 107, 255, 98, 62, 108, 255, 101, 64, 111, 255, 102, 64, 112, 255, 97, 62, 107, 255, 94, 59, 103, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 101, 66, 108, 255, 104, 69, 112, 255, 106, 71, 114, 255, 106, 70, 114, 255, 106, 68, 115, 255, 108, 70, 117, 255, 111, 73, 120, 255, 102, 67, 112, 255, 96, 63, 105, 255, 96, 63, 105, 255, 98, 62, 107, 255, 101, 62, 110, 255, 101, 61, 110, 255, 101, 61, 111, 255, 104, 64, 114, 255, 104, 64, 114, 255, 103, 63, 112, 255, 101, 62, 112, 255, 102, 62, 113, 255, 105, 65, 115, 255, 103, 64, 113, 255, 103, 64, 112, 255, 97, 60, 107, 255, 98, 61, 107, 255, 94, 59, 104, 255, 98, 62, 107, 255, 100, 63, 107, 255, 99, 63, 106, 255, 101, 64, 108, 255, 101, 64, 108, 255, 99, 64, 106, 255, 95, 62, 102, 255, 98, 62, 107, 255, 99, 62, 108, 255, 92, 59, 101, 255, 93, 59, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 25, 16, 28, 255, 100, 65, 108, 255, 104, 66, 113, 255, 102, 65, 111, 255, 105, 67, 114, 255, 106, 68, 114, 255, 101, 66, 110, 255, 96, 62, 105, 255, 95, 60, 104, 255, 97, 60, 106, 255, 96, 59, 104, 255, 96, 59, 104, 255, 96, 58, 104, 255, 95, 57, 104, 255, 97, 59, 107, 255, 96, 58, 107, 255, 94, 57, 106, 255, 96, 58, 107, 255, 95, 58, 106, 255, 98, 60, 108, 255, 93, 57, 102, 255, 93, 57, 102, 255, 93, 58, 102, 255, 93, 58, 102, 255, 95, 58, 103, 255, 93, 58, 101, 255, 89, 55, 97, 255, 89, 56, 97, 255, 91, 59, 98, 255, 94, 61, 102, 255, 96, 62, 103, 255, 95, 62, 103, 255, 96, 61, 104, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 93, 59, 102, 255, 96, 61, 105, 255, 100, 64, 109, 255, 102, 65, 110, 255, 101, 65, 110, 255, 99, 64, 108, 255, 99, 63, 107, 255, 99, 63, 108, 255, 98, 62, 106, 255, 95, 59, 103, 255, 95, 59, 103, 255, 94, 59, 103, 255, 93, 57, 102, 255, 94, 57, 103, 255, 96, 58, 105, 255, 96, 58, 105, 255, 96, 58, 105, 255, 95, 58, 104, 255, 94, 58, 102, 255, 95, 58, 104, 255, 92, 57, 101, 255, 84, 53, 93, 255, 80, 52, 88, 255, 82, 52, 90, 255, 85, 53, 93, 255, 84, 53, 90, 255, 83, 54, 89, 255, 86, 56, 92, 255, 89, 58, 96, 255, 94, 61, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 71, 45, 78, 255, 96, 60, 103, 255, 96, 61, 104, 255, 95, 61, 104, 255, 96, 61, 104, 255, 94, 59, 102, 255, 92, 58, 100, 255, 90, 57, 98, 255, 88, 55, 96, 255, 87, 54, 96, 255, 88, 55, 97, 255, 86, 53, 96, 255, 84, 52, 95, 255, 83, 51, 94, 255, 89, 54, 98, 255, 87, 54, 96, 255, 85, 54, 93, 255, 86, 54, 94, 255, 86, 54, 95, 255, 84, 53, 93, 255, 80, 51, 88, 255, 80, 51, 88, 255, 81, 50, 88, 255, 82, 50, 89, 255, 80, 49, 88, 255, 78, 49, 85, 255, 79, 51, 84, 255, 70, 43, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 88, 55, 96, 255, 88, 54, 96, 255, 90, 56, 97, 255, 89, 55, 96, 255, 89, 55, 96, 255, 83, 51, 92, 255, 80, 50, 90, 255, 85, 54, 94, 255, 85, 54, 93, 255, 82, 50, 91, 255, 80, 49, 90, 255, 80, 49, 89, 255, 79, 50, 88, 255, 80, 51, 88, 255, 85, 53, 93, 255, 84, 53, 92, 255, 84, 53, 92, 255, 82, 52, 89, 255, 78, 49, 86, 255, 77, 47, 84, 255, 74, 45, 82, 255, 73, 44, 81, 255, 75, 46, 83, 255, 73, 44, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 87, 56, 94, 255, 85, 54, 93, 255, 86, 54, 93, 255, 85, 53, 93, 255, 83, 51, 91, 255, 82, 50, 90, 255, 78, 49, 87, 255, 76, 47, 85, 255, 75, 46, 85, 255, 75, 46, 85, 255, 76, 47, 84, 255, 76, 47, 84, 255, 77, 48, 84, 255, 79, 49, 86, 255, 78, 49, 85, 255, 76, 48, 83, 255, 77, 48, 84, 255, 76, 46, 83, 255, 71, 43, 78, 255, 70, 42, 77, 255, 72, 43, 79, 255, 70, 42, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 77, 47, 84, 255, 78, 48, 85, 255, 79, 48, 85, 255, 79, 48, 86, 255, 78, 48, 85, 255, 76, 47, 83, 255, 71, 44, 78, 255, 73, 45, 80, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 69, 44, 77, 255, 72, 44, 78, 255, 74, 45, 81, 255, 75, 46, 81, 255, 73, 45, 80, 255, 73, 45, 79, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 72, 44, 79, 255, 74, 45, 80, 255, 72, 44, 79, 255, 71, 43, 78, 255, 67, 41, 74, 255, 65, 41, 72, 255, 65, 40, 72, 255, 65, 41, 72, 255, 65, 40, 72, 255, 64, 40, 71, 255, 68, 41, 75, 255, 70, 42, 76, 255, 72, 44, 78, 255, 72, 45, 79, 255, 70, 44, 77, 255, 71, 44, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 30, 18, 33, 255, 66, 41, 73, 255, 66, 41, 73, 255, 68, 42, 77, 255, 68, 42, 77, 255, 68, 42, 77, 255, 65, 40, 72, 255, 63, 39, 69, 255, 64, 39, 71, 255, 66, 40, 72, 255, 68, 42, 74, 255, 66, 40, 73, 255, 65, 39, 71, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 62, 39, 70, 255, 64, 40, 72, 255, 64, 40, 73, 255, 62, 38, 69, 255, 61, 37, 67, 255, 61, 37, 67, 255, 61, 36, 67, 255, 61, 37, 67, 255, 62, 37, 68, 255, 62, 38, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 36, 64, 255, 56, 35, 62, 255, 58, 36, 64, 255, 58, 36, 64, 255, 56, 35, 62, 255, 57, 35, 63, 255, 57, 34, 63, 255, 57, 34, 62, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 51, 32, 57, 255, 50, 30, 55, 255, 54, 33, 59, 255, 54, 33, 59, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 49, 31, 54, 255, 48, 30, 53, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0), "format": "RGBA8", @@ -12,15 +12,14 @@ data = { } [sub_resource type="ImageTexture" id="2"] -image = SubResource( "Image_gt44q" ) -size = Vector2(64, 64) +image = SubResource("Image_xoo4s") [sub_resource type="BoxShape3D" id="3"] [resource] item/0/name = "cube" -item/0/mesh = ExtResource( "1" ) +item/0/mesh = ExtResource("1") item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/0/shapes = [SubResource( "3" ), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)] +item/0/shapes = [SubResource("3"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)] item/0/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/0/preview = SubResource( "2" ) +item/0/preview = SubResource("2") diff --git a/3d/kinematic_character/default_env.tres b/3d/kinematic_character/default_env.tres index 5cd11c4aa5e..cdc59a0c2fc 100644 --- a/3d/kinematic_character/default_env.tres +++ b/3d/kinematic_character/default_env.tres @@ -4,18 +4,19 @@ sky_top_color = Color(0.219608, 0.192157, 0.364706, 1) sky_horizon_color = Color(0.341176, 0.0666667, 0.560784, 1) ground_bottom_color = Color(0.0352941, 0.0352941, 0.0313726, 1) -ground_horizon_color = Color(0.14902, 0.137255, 0.12549, 1) +ground_horizon_color = Color(0.317647, 0, 0.423529, 1) ground_curve = 0.25 [sub_resource type="Sky" id="1"] -sky_material = SubResource( "ProceduralSkyMaterial_fiix7" ) -radiance_size = 1 +sky_material = SubResource("ProceduralSkyMaterial_fiix7") +radiance_size = 0 [resource] background_mode = 2 -sky = SubResource( "1" ) -ambient_light_energy = 5.0 -tonemap_mode = 2 +sky = SubResource("1") +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_sky_contribution = 0.5 +tonemap_mode = 3 tonemap_white = 6.0 glow_levels/7 = 1.0 glow_strength = 0.79 diff --git a/3d/kinematic_character/icon.png.import b/3d/kinematic_character/icon.png.import index 5a675c93b85..36f36f97424 100644 --- a/3d/kinematic_character/icon.png.import +++ b/3d/kinematic_character/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/kinematic_character/level.tscn b/3d/kinematic_character/level.tscn index 116b3dd2f9c..f7271882aeb 100644 --- a/3d/kinematic_character/level.tscn +++ b/3d/kinematic_character/level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=10 format=3 uid="uid://cucm487dww55a"] +[gd_scene load_steps=12 format=3 uid="uid://cucm487dww55a"] [ext_resource type="MeshLibrary" uid="uid://cnxehnqppo36s" path="res://cubelib.tres" id="1"] [ext_resource type="PackedScene" uid="uid://c1j6vfe3s2bq8" path="res://player/cubio.tscn" id="2"] @@ -25,6 +25,11 @@ tracks/0/keys = { "values": [Vector3(0.5, 4.5, -2.5), Vector3(0.5, 4.5, -2.5), Vector3(0.5, 8.5, -2.5), Vector3(0.5, 8.5, -2.5), Vector3(0.5, 4.5, -2.5), Vector3(0.5, 4.5, -2.5)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_uxnju"] +_data = { +"updown1": SubResource("2") +} + [sub_resource type="Animation" id="3"] length = 10.0 loop_mode = 1 @@ -41,37 +46,39 @@ tracks/0/keys = { "values": [Vector3(-3.5, 8.5, 4.5), Vector3(-3.5, 8.5, 4.5), Vector3(3.5, 8.5, 4.5), Vector3(3.5, 8.5, 4.5), Vector3(-3.5, 8.5, 4.5)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_o6d7g"] +_data = { +"side": SubResource("3"), +"updown1": SubResource("2") +} + [sub_resource type="BoxShape3D" id="4"] [node name="World3D" type="Node3D"] -__meta__ = { -"__editor_plugin_screen__": "3D" -} [node name="GridMap" type="GridMap" parent="."] -mesh_library = ExtResource( "1" ) +mesh_library = ExtResource("1") cell_size = Vector3(1, 1, 1) data = { "cells": PackedInt32Array(0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 0, 196603, 0, 0, 196604, 0, 0, 524292, 0, 0, 589820, 0, 0, 786432, 0, 0, 851967, 0, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 1, 0, 65530, 1, 0, 65531, 1, 0, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 131075, 1, 0, 196603, 1, 0, 196604, 1, 0, 524292, 1, 0, 589820, 1, 0, 786432, 1, 0, 851967, 1, 0, 0, 2, 0, 1, 2, 0, 2, 2, 0, 3, 2, 0, 4, 2, 0, 65530, 2, 0, 65531, 2, 0, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 131075, 2, 0, 196603, 2, 0, 196604, 2, 0, 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, 0, 65530, 5, 0, 65531, 5, 0, 65532, 5, 0, 65533, 5, 0, 65534, 5, 0, 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, 0, 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, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 131075, 7, 0, 196603, 7, 0, 0, 8, 0, 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, 0, 131075, 8, 0, 196603, 8, 0, 196604, 8, 0, 0, 9, 0, 1, 9, 0, 2, 9, 0, 3, 9, 0, 4, 9, 0, 65530, 9, 0, 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, 0, 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, 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, 0, 65534, 65533, 0, 65535, 65533, 0, 262145, 65533, 0, 262146, 65533, 0, 262147, 65533, 0, 589822, 65533, 0, 589823, 65533, 0, 655363, 65533, 0, 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, 0, 65532, 65534, 0, 65533, 65534, 0, 65534, 65534, 0, 65535, 65534, 0, 65536, 65534, 0, 131071, 65534, 0, 196603, 65534, 0, 196604, 65534, 0, 196605, 65534, 0, 196606, 65534, 0, 196607, 65534, 0, 589822, 65534, 0, 589828, 65534, 0, 786432, 65534, 0, 851967, 65534, 0, 0, 65535, 0, 1, 65535, 0, 2, 65535, 0, 3, 65535, 0, 4, 65535, 0, 65530, 65535, 0, 65531, 65535, 0, 65532, 65535, 0, 65533, 65535, 0, 65534, 65535, 0, 65535, 65535, 0, 196603, 65535, 0, 196604, 65535, 0, 196611, 65535, 0, 589820, 65535, 0, 589821, 65535, 0, 589822, 65535, 0, 589828, 65535, 0, 786432, 65535, 0, 851967, 65535, 0) } -__meta__ = { -"_editor_clip_": 0, -"_editor_floor_": Vector3(0, 12, 0) -} + +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = ExtResource("5_3bi5f") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(-0.173649, 0.806707, -0.564863, 0, 0.573576, 0.819152, 0.984808, 0.142244, -0.0996007, 0, 0, 0) +transform = Transform3D(-0.766045, 0.45452, -0.45452, 0, 0.707107, 0.707107, 0.642788, 0.541676, -0.541675, 0, 5, 0) light_energy = 1.3 shadow_enabled = true -shadow_reverse_cull_face = true +shadow_bias = 0.032 +directional_shadow_mode = 0 directional_shadow_split_1 = 0.05 directional_shadow_split_2 = 0.1 directional_shadow_split_3 = 0.2 -directional_shadow_blend_splits = true -directional_shadow_fade_start = 0.25 -directional_shadow_max_distance = 50.0 +directional_shadow_fade_start = 1.0 +directional_shadow_max_distance = 24.0 -[node name="Cubio" parent="." instance=ExtResource( "2" )] +[node name="Cubio" parent="." instance=ExtResource("2")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 2, 4) [node name="Elevator1" type="CharacterBody3D" parent="."] @@ -79,41 +86,41 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 4.5, -2.5) input_capture_on_drag = true [node name="Mesh" type="MeshInstance3D" parent="Elevator1"] -mesh = ExtResource( "3" ) +mesh = ExtResource("3") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator1"] -shape = SubResource( "1" ) +shape = SubResource("1") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator1"] autoplay = "updown1" playback_process_mode = 0 -anims/updown1 = SubResource( "2" ) +libraries = { +"": SubResource("AnimationLibrary_uxnju") +} [node name="Elevator2" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 8.5, 4.5) [node name="Mesh" type="MeshInstance3D" parent="Elevator2"] -mesh = ExtResource( "3" ) +mesh = ExtResource("3") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator2"] -shape = SubResource( "1" ) +shape = SubResource("1") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator2"] autoplay = "side" playback_process_mode = 0 -anims/side = SubResource( "3" ) -anims/updown1 = SubResource( "2" ) +libraries = { +"": SubResource("AnimationLibrary_o6d7g") +} [node name="Princess" type="Area3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13.25, 3) -[node name="Mushroom" parent="Princess" instance=ExtResource( "5" )] +[node name="Mushroom" parent="Princess" instance=ExtResource("5")] [node name="CollisionShape3D" type="CollisionShape3D" parent="Princess"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) -shape = SubResource( "4" ) - -[node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource( "5_3bi5f" ) +shape = SubResource("4") [connection signal="body_entered" from="Princess" to="Cubio" method="_on_tcube_body_entered"] diff --git a/3d/kinematic_character/models/cube.glb.import b/3d/kinematic_character/models/cube.glb.import index 8705f40c144..8bc6d54e494 100644 --- a/3d/kinematic_character/models/cube.glb.import +++ b/3d/kinematic_character/models/cube.glb.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/cube.glb-c6bf6ebacd621473d1ca4ff4a368b9dc.scn nodes/root_type="Node3D" nodes/root_name="Cube" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true diff --git a/3d/kinematic_character/models/cube.mesh b/3d/kinematic_character/models/cube.mesh index 1339f204eb3..c007d13be01 100644 Binary files a/3d/kinematic_character/models/cube.mesh and b/3d/kinematic_character/models/cube.mesh differ diff --git a/3d/kinematic_character/models/cube_material.tres b/3d/kinematic_character/models/cube_material.tres index 04dce8c56b0..73bf2d8083b 100644 --- a/3d/kinematic_character/models/cube_material.tres +++ b/3d/kinematic_character/models/cube_material.tres @@ -1,9 +1,10 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://cw1xbwvfmvjwr"] -[ext_resource path="res://models/white_wood.png" type="Texture2D" id=1] +[ext_resource type="Texture2D" uid="uid://b1qfd7mgvhrgu" path="res://models/white_wood.png" id="1"] [resource] resource_name = "Material" -albedo_color = Color( 0.5, 0.25, 1, 1 ) -albedo_texture = ExtResource( 1 ) +albedo_color = Color(0.564706, 0.34902, 1, 1) +albedo_texture = ExtResource("1") roughness = 0.75 +texture_filter = 5 diff --git a/3d/kinematic_character/models/mushroom.glb.import b/3d/kinematic_character/models/mushroom.glb.import index eeb1699d28b..a0161522720 100644 --- a/3d/kinematic_character/models/mushroom.glb.import +++ b/3d/kinematic_character/models/mushroom.glb.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/mushroom.glb-32cf35844b7be6455c0c736b26eb7163 nodes/root_type="Node3D" nodes/root_name="Mushroom" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true diff --git a/3d/kinematic_character/models/white_cube_material.tres b/3d/kinematic_character/models/white_cube_material.tres index b2b2405bbf8..21f6b09e795 100644 --- a/3d/kinematic_character/models/white_cube_material.tres +++ b/3d/kinematic_character/models/white_cube_material.tres @@ -1,8 +1,9 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://betphk8l40sig"] -[ext_resource path="res://models/white_wood.png" type="Texture2D" id=1] +[ext_resource type="Texture2D" uid="uid://b1qfd7mgvhrgu" path="res://models/white_wood.png" id="1"] [resource] resource_name = "Material" -albedo_texture = ExtResource( 1 ) +albedo_texture = ExtResource("1") roughness = 0.75 +texture_filter = 5 diff --git a/3d/kinematic_character/models/white_wood.png.import b/3d/kinematic_character/models/white_wood.png.import index 19d526107e4..6f32fb717eb 100644 --- a/3d/kinematic_character/models/white_wood.png.import +++ b/3d/kinematic_character/models/white_wood.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/kinematic_character/player/cubio.gd b/3d/kinematic_character/player/cubio.gd index 4e09cc021ef..6f391187dcd 100644 --- a/3d/kinematic_character/player/cubio.gd +++ b/3d/kinematic_character/player/cubio.gd @@ -1,8 +1,8 @@ extends CharacterBody3D -const MAX_SPEED = 3 -const JUMP_SPEED = 5 -const ACCELERATION = 2 +const MAX_SPEED = 3.5 +const JUMP_SPEED = 6.5 +const ACCELERATION = 4 const DECELERATION = 4 @onready var camera = $Target/Camera3D @@ -12,8 +12,10 @@ const DECELERATION = 4 func _physics_process(delta): if Input.is_action_just_pressed(&"exit"): get_tree().quit() - if Input.is_action_just_pressed(&"reset_position"): + if Input.is_action_just_pressed(&"reset_position") or global_position.y < - 6: + # Pressed the reset key or fell off the ground. position = start_position + velocity = Vector3.ZERO var dir = Vector3() dir.x = Input.get_axis(&"move_left", &"move_right") diff --git a/3d/kinematic_character/player/cubio.tscn b/3d/kinematic_character/player/cubio.tscn index 0c3be53a5c0..b072ec5f065 100644 --- a/3d/kinematic_character/player/cubio.tscn +++ b/3d/kinematic_character/player/cubio.tscn @@ -3,23 +3,23 @@ [ext_resource type="Script" path="res://player/cubio.gd" id="1"] [ext_resource type="ArrayMesh" uid="uid://ba7dqpj07mlsy" path="res://models/cube.mesh" id="2"] [ext_resource type="Script" path="res://player/follow_camera.gd" id="3"] -[ext_resource type="Material" path="res://models/white_cube_material.tres" id="4"] +[ext_resource type="Material" uid="uid://betphk8l40sig" path="res://models/white_cube_material.tres" id="4"] [sub_resource type="BoxShape3D" id="1"] margin = 0.001 size = Vector3(0.9, 0.9, 0.9) [node name="Cubio" type="CharacterBody3D"] -script = ExtResource( "1" ) +script = ExtResource("1") [node name="BoxMesh" type="MeshInstance3D" parent="."] _import_path = NodePath("cube-col") transform = Transform3D(0.9, 0, 0, 0, 0.9, 0, 0, 0, 0.9, 0, 0, 0) -mesh = ExtResource( "2" ) -surface_material_override/0 = ExtResource( "4" ) +mesh = ExtResource("2") +surface_material_override/0 = ExtResource("4") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource( "1" ) +shape = SubResource("1") [node name="Target" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) @@ -29,17 +29,21 @@ transform = Transform3D(0.34202, -0.321394, 0.883022, 0, 0.939693, 0.34202, -0.9 fov = 74.0 near = 0.1 far = 50.0 -script = ExtResource( "3" ) +script = ExtResource("3") [node name="WinText" type="CenterContainer" parent="."] visible = false +anchors_preset = 10 anchor_right = 1.0 offset_bottom = 100.0 +grow_horizontal = 2 [node name="Holder" type="Control" parent="WinText"] -offset_left = 512.0 +layout_mode = 3 +anchors_preset = 0 +offset_left = 576.0 offset_top = 50.0 -offset_right = 512.0 +offset_right = 576.0 offset_bottom = 50.0 [node name="TextLabel" type="Label" parent="WinText/Holder"] @@ -50,7 +54,3 @@ theme_override_font_sizes/font_size = 20 text = "Thank You, Cubio! But the Princess is in Another Demo!" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} diff --git a/3d/kinematic_character/player/follow_camera.gd b/3d/kinematic_character/player/follow_camera.gd index efb84a8b340..8168ab6ba8f 100644 --- a/3d/kinematic_character/player/follow_camera.gd +++ b/3d/kinematic_character/player/follow_camera.gd @@ -43,5 +43,5 @@ func _physics_process(_delta): # Turn a little up or down var t = transform - t.basis = Basis(t.basis[0], deg2rad(angle_v_adjust)) * t.basis + t.basis = Basis(t.basis[0], deg_to_rad(angle_v_adjust)) * t.basis transform = t diff --git a/3d/kinematic_character/project.godot b/3d/kinematic_character/project.godot index 171b5f3d10b..4ea4d808a7d 100644 --- a/3d/kinematic_character/project.godot +++ b/3d/kinematic_character/project.godot @@ -14,69 +14,71 @@ config/name="Kinematic Character 3D" config/description="Kinematic character demo for 3D using a cube for the character. This is similar to the 3D platformer demo." run/main_scene="res://level.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" -[gdnative] +[display] -singletons=[] +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [input] jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } reset_position={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) ] } [physics] -common/physics_fps=120 +common/physics_ticks_per_second=120 +3d/default_gravity=13.0 [rasterizer] @@ -84,11 +86,6 @@ shadow_filter=3 [rendering] -quality/driver/fallback_to_gles2=true -vram_compression/import_etc=true -quality/shadows/filter_mode=2 -quality/filters/anisotropic_filter_level=16 -quality/filters/msaa=2 +textures/default_filters/anisotropic_filtering_level=4 +anti_aliasing/quality/msaa_3d=2 environment/default_environment="res://default_env.tres" -quality/filters/msaa.mobile=0 -quality/filters/anisotropic_filter_level.mobile=4 diff --git a/3d/kinematic_character/screenshots/editor.png b/3d/kinematic_character/screenshots/editor.png deleted file mode 100644 index 72b7ded2418..00000000000 Binary files a/3d/kinematic_character/screenshots/editor.png and /dev/null differ diff --git a/3d/kinematic_character/screenshots/ingame.png b/3d/kinematic_character/screenshots/ingame.png deleted file mode 100644 index c38bd50d4ae..00000000000 Binary files a/3d/kinematic_character/screenshots/ingame.png and /dev/null differ diff --git a/3d/kinematic_character/screenshots/kinematic_character.webp b/3d/kinematic_character/screenshots/kinematic_character.webp new file mode 100644 index 00000000000..a34ce715896 Binary files /dev/null and b/3d/kinematic_character/screenshots/kinematic_character.webp differ diff --git a/3d/material_testers/icon.png.import b/3d/material_testers/icon.png.import index 53b42435254..2e5bf096518 100644 --- a/3d/material_testers/icon.png.import +++ b/3d/material_testers/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/material_testers/project.godot b/3d/material_testers/project.godot index d182962a3f9..a494d46e2d2 100644 --- a/3d/material_testers/project.godot +++ b/3d/material_testers/project.godot @@ -16,12 +16,12 @@ for the purpose of showcasing Godot's rendering capabilities. This demo was featured at the beginning of the Godot 3.0 trailer." run/main_scene="res://material_tester.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [gdnative] diff --git a/3d/material_testers/test_materials/aluminium_albedo.png.import b/3d/material_testers/test_materials/aluminium_albedo.png.import index eaa3427d99b..bd56a511d08 100644 --- a/3d/material_testers/test_materials/aluminium_albedo.png.import +++ b/3d/material_testers/test_materials/aluminium_albedo.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/aluminium_flow.png.import b/3d/material_testers/test_materials/aluminium_flow.png.import index 9d893224d32..d5788fa0200 100644 --- a/3d/material_testers/test_materials/aluminium_flow.png.import +++ b/3d/material_testers/test_materials/aluminium_flow.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/material_testers/test_materials/aluminium_normal.png.import b/3d/material_testers/test_materials/aluminium_normal.png.import index f3748dc4ca8..805958a1503 100644 --- a/3d/material_testers/test_materials/aluminium_normal.png.import +++ b/3d/material_testers/test_materials/aluminium_normal.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/marble_albedo.png.import b/3d/material_testers/test_materials/marble_albedo.png.import index af5b34ce93d..21401175b9e 100644 --- a/3d/material_testers/test_materials/marble_albedo.png.import +++ b/3d/material_testers/test_materials/marble_albedo.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/rock_albedo.jpg.import b/3d/material_testers/test_materials/rock_albedo.jpg.import index eb30dc6d6c1..5a856dc00ed 100644 --- a/3d/material_testers/test_materials/rock_albedo.jpg.import +++ b/3d/material_testers/test_materials/rock_albedo.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/rock_ao.jpg.import b/3d/material_testers/test_materials/rock_ao.jpg.import index 43d286fffc2..88b558bd38f 100644 --- a/3d/material_testers/test_materials/rock_ao.jpg.import +++ b/3d/material_testers/test_materials/rock_ao.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/rock_depth.jpg.import b/3d/material_testers/test_materials/rock_depth.jpg.import index af41f619993..f8e9ef8197f 100644 --- a/3d/material_testers/test_materials/rock_depth.jpg.import +++ b/3d/material_testers/test_materials/rock_depth.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/material_testers/test_materials/rock_metal.jpg.import b/3d/material_testers/test_materials/rock_metal.jpg.import index a23142372e4..bd4c1479ded 100644 --- a/3d/material_testers/test_materials/rock_metal.jpg.import +++ b/3d/material_testers/test_materials/rock_metal.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/rock_rough.jpg.import b/3d/material_testers/test_materials/rock_rough.jpg.import index 0ba720ae8e4..fa45404caf2 100644 --- a/3d/material_testers/test_materials/rock_rough.jpg.import +++ b/3d/material_testers/test_materials/rock_rough.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/sand_albedo.jpg.import b/3d/material_testers/test_materials/sand_albedo.jpg.import index c86922b76b0..ec6d8f47576 100644 --- a/3d/material_testers/test_materials/sand_albedo.jpg.import +++ b/3d/material_testers/test_materials/sand_albedo.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/sand_metal.jpg.import b/3d/material_testers/test_materials/sand_metal.jpg.import index 0313110860b..06ede6a4cdc 100644 --- a/3d/material_testers/test_materials/sand_metal.jpg.import +++ b/3d/material_testers/test_materials/sand_metal.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/sand_normal.jpg.import b/3d/material_testers/test_materials/sand_normal.jpg.import index fb35124e07c..5d232f9469b 100644 --- a/3d/material_testers/test_materials/sand_normal.jpg.import +++ b/3d/material_testers/test_materials/sand_normal.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/sand_rough.jpg.import b/3d/material_testers/test_materials/sand_rough.jpg.import index 5b50aa4777a..bd0121ebf3e 100644 --- a/3d/material_testers/test_materials/sand_rough.jpg.import +++ b/3d/material_testers/test_materials/sand_rough.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/sand_shine.jpg.import b/3d/material_testers/test_materials/sand_shine.jpg.import index 5d912c0bb27..f64e64b2238 100644 --- a/3d/material_testers/test_materials/sand_shine.jpg.import +++ b/3d/material_testers/test_materials/sand_shine.jpg.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/material_testers/test_materials/texture_bricks.jpg.import b/3d/material_testers/test_materials/texture_bricks.jpg.import index 5b799979c82..d62e88f41b4 100644 --- a/3d/material_testers/test_materials/texture_bricks.jpg.import +++ b/3d/material_testers/test_materials/texture_bricks.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_bricks_depth.jpg.import b/3d/material_testers/test_materials/texture_bricks_depth.jpg.import index ba0cb9887c9..057e7db2b46 100644 --- a/3d/material_testers/test_materials/texture_bricks_depth.jpg.import +++ b/3d/material_testers/test_materials/texture_bricks_depth.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_bricks_metal.jpg.import b/3d/material_testers/test_materials/texture_bricks_metal.jpg.import index a77475c0a9a..ba41b7e87c2 100644 --- a/3d/material_testers/test_materials/texture_bricks_metal.jpg.import +++ b/3d/material_testers/test_materials/texture_bricks_metal.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_bricks_normal.jpg.import b/3d/material_testers/test_materials/texture_bricks_normal.jpg.import index 9580cd91866..77020b094e9 100644 --- a/3d/material_testers/test_materials/texture_bricks_normal.jpg.import +++ b/3d/material_testers/test_materials/texture_bricks_normal.jpg.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_cheese_albedo.png.import b/3d/material_testers/test_materials/texture_cheese_albedo.png.import index 93e31cc91c6..2804d048991 100644 --- a/3d/material_testers/test_materials/texture_cheese_albedo.png.import +++ b/3d/material_testers/test_materials/texture_cheese_albedo.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_cheese_ao.png.import b/3d/material_testers/test_materials/texture_cheese_ao.png.import index bd36c58d919..64727f276f3 100644 --- a/3d/material_testers/test_materials/texture_cheese_ao.png.import +++ b/3d/material_testers/test_materials/texture_cheese_ao.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_cheese_depth.png.import b/3d/material_testers/test_materials/texture_cheese_depth.png.import index 975de3a729a..4af3db7e637 100644 --- a/3d/material_testers/test_materials/texture_cheese_depth.png.import +++ b/3d/material_testers/test_materials/texture_cheese_depth.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_cheese_normal.png.import b/3d/material_testers/test_materials/texture_cheese_normal.png.import index 87e0a10997d..47e117add15 100644 --- a/3d/material_testers/test_materials/texture_cheese_normal.png.import +++ b/3d/material_testers/test_materials/texture_cheese_normal.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_rock_albedo.png.import b/3d/material_testers/test_materials/texture_rock_albedo.png.import index 272c539ea69..cbf33b7f36a 100644 --- a/3d/material_testers/test_materials/texture_rock_albedo.png.import +++ b/3d/material_testers/test_materials/texture_rock_albedo.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_rock_ao.png.import b/3d/material_testers/test_materials/texture_rock_ao.png.import index fe94491b59a..041e90fb6de 100644 --- a/3d/material_testers/test_materials/texture_rock_ao.png.import +++ b/3d/material_testers/test_materials/texture_rock_ao.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_rock_depth.png.import b/3d/material_testers/test_materials/texture_rock_depth.png.import index 939cccc4c32..cc177c4bcb8 100644 --- a/3d/material_testers/test_materials/texture_rock_depth.png.import +++ b/3d/material_testers/test_materials/texture_rock_depth.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_rock_metal.png.import b/3d/material_testers/test_materials/texture_rock_metal.png.import index 9cb8630848d..5701c983006 100644 --- a/3d/material_testers/test_materials/texture_rock_metal.png.import +++ b/3d/material_testers/test_materials/texture_rock_metal.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_rock_normal.png.import b/3d/material_testers/test_materials/texture_rock_normal.png.import index 1347feacf79..ad283737c8f 100644 --- a/3d/material_testers/test_materials/texture_rock_normal.png.import +++ b/3d/material_testers/test_materials/texture_rock_normal.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/texture_wood.png.import b/3d/material_testers/test_materials/texture_wood.png.import index 30fd709162c..f10679135c4 100644 --- a/3d/material_testers/test_materials/texture_wood.png.import +++ b/3d/material_testers/test_materials/texture_wood.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/wool_albedo.png.import b/3d/material_testers/test_materials/wool_albedo.png.import index 31d6eadcb19..908f6421967 100644 --- a/3d/material_testers/test_materials/wool_albedo.png.import +++ b/3d/material_testers/test_materials/wool_albedo.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/wool_depth.png.import b/3d/material_testers/test_materials/wool_depth.png.import index dfc06db4595..1f7caaac344 100644 --- a/3d/material_testers/test_materials/wool_depth.png.import +++ b/3d/material_testers/test_materials/wool_depth.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/material_testers/test_materials/wool_normal.png.import b/3d/material_testers/test_materials/wool_normal.png.import index 1ed600141e0..9e53514b119 100644 --- a/3d/material_testers/test_materials/wool_normal.png.import +++ b/3d/material_testers/test_materials/wool_normal.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/navigation/default_env.tres b/3d/navigation/default_env.tres deleted file mode 100644 index ceb413c94ae..00000000000 --- a/3d/navigation/default_env.tres +++ /dev/null @@ -1,11 +0,0 @@ -[gd_resource type="Environment" load_steps=3 format=3 uid="uid://c115tt1j1r0g0"] - -[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_3brqh"] - -[sub_resource type="Sky" id="1"] -sky_material = SubResource("ProceduralSkyMaterial_3brqh") - -[resource] -background_mode = 2 -sky = SubResource("1") -tonemap_mode = 2 diff --git a/3d/navigation/level_mesh.res b/3d/navigation/level_mesh.res index cc1528a0559..ce2be437e12 100644 Binary files a/3d/navigation/level_mesh.res and b/3d/navigation/level_mesh.res differ diff --git a/3d/navigation/navmesh.gd b/3d/navigation/navmesh.gd index 9930e6da104..e722b094209 100644 --- a/3d/navigation/navmesh.gd +++ b/3d/navigation/navmesh.gd @@ -7,7 +7,7 @@ const SPEED := 10.0 var cam_rotation := 0.0 var path: PackedVector3Array -@onready var robot: Position3D = $RobotBase +@onready var robot: Marker3D = $RobotBase @onready var camera: Camera3D = $CameraBase/Camera3D func _ready(): diff --git a/3d/navigation/navmesh.tscn b/3d/navigation/navmesh.tscn index 30fad9aedb2..bb6b15602d1 100644 --- a/3d/navigation/navmesh.tscn +++ b/3d/navigation/navmesh.tscn @@ -1,14 +1,25 @@ -[gd_scene load_steps=8 format=3 uid="uid://dkhg8e00d02f2"] +[gd_scene load_steps=10 format=3 uid="uid://dkhg8e00d02f2"] [ext_resource type="Script" path="res://navmesh.gd" id="1"] [ext_resource type="NavigationMesh" uid="uid://xl4o2ckjxava" path="res://navmesh.res" id="2_lcfvj"] -[ext_resource type="Environment" uid="uid://c115tt1j1r0g0" path="res://default_env.tres" id="3"] [ext_resource type="ArrayMesh" uid="uid://gmytdjp2bcsq" path="res://level_mesh.res" id="3_1cas0"] [ext_resource type="ArrayMesh" uid="uid://prwe6io8p1iv" path="res://robot.res" id="5_ple0n"] +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_ps07l"] +sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) +ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) + +[sub_resource type="Sky" id="Sky_baxfs"] +sky_material = SubResource("ProceduralSkyMaterial_ps07l") + +[sub_resource type="Environment" id="Environment_c0if4"] +background_mode = 2 +sky = SubResource("Sky_baxfs") +tonemap_mode = 3 +tonemap_white = 6.0 + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_noou6"] shading_mode = 0 -use_point_size = true [sub_resource type="ImmediateMesh" id="ImmediateMesh_dvj5w"] @@ -16,6 +27,17 @@ use_point_size = true _import_path = NodePath(".") script = ExtResource("1") +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_c0if4") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.623013, -0.733525, 0.271653, 0.321394, 0.55667, 0.766045, -0.713134, -0.389948, 0.582563, 10.0773, 5.02381, 0) +light_energy = 5.0 +shadow_enabled = true +directional_shadow_mode = 0 +directional_shadow_fade_start = 1.0 +directional_shadow_max_distance = 35.0 + [node name="NavigationRegion3D" type="NavigationRegion3D" parent="."] navmesh = ExtResource("2_lcfvj") @@ -23,14 +45,6 @@ navmesh = ExtResource("2_lcfvj") transform = Transform3D(2, 0, 0, 0, 2, 0, 0, 0, 2, 0, -0.0452547, 0) mesh = ExtResource("3_1cas0") -[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(0.623013, -0.733525, 0.271654, 0.321394, 0.55667, 0.766044, -0.713134, -0.389948, 0.582563, 10.0773, 5.02381, 0) -light_energy = 5.0 -shadow_enabled = true - -[node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource("3") - [node name="DrawPath" type="MeshInstance3D" parent="."] material_override = SubResource("StandardMaterial3D_noou6") mesh = SubResource("ImmediateMesh_dvj5w") @@ -43,7 +57,7 @@ transform = Transform3D(-0.560554, -0.429252, 0.708182, 0.106298, 0.8108, 0.5755 fov = 50.0 near = 0.1 -[node name="RobotBase" type="Position3D" parent="."] +[node name="RobotBase" type="Marker3D" parent="."] [node name="Robot" type="MeshInstance3D" parent="RobotBase"] transform = Transform3D(-0.5, 0, -7.54979e-08, 0, 1, 0, 7.54979e-08, 0, -0.5, 0, 1, 0) diff --git a/3d/navigation/project.godot b/3d/navigation/project.godot index d08f7a6e221..52ed1020f3a 100644 --- a/3d/navigation/project.godot +++ b/3d/navigation/project.godot @@ -18,3 +18,11 @@ Code is provided for polyline following in 3D." run/main_scene="res://navmesh.tscn" config/features=PackedStringArray("4.0") config/icon="res://icon.png" + +[physics] + +common/physics_ticks_per_second=120 + +[rendering] + +anti_aliasing/quality/msaa_3d=2 diff --git a/3d/navigation/robot.res b/3d/navigation/robot.res index c1f17dbd762..64714187961 100644 Binary files a/3d/navigation/robot.res and b/3d/navigation/robot.res differ diff --git a/3d/physics_tests/icon.png.import b/3d/physics_tests/icon.png.import index f56bd00a88c..9bf6c4f6a18 100644 --- a/3d/physics_tests/icon.png.import +++ b/3d/physics_tests/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/physics_tests/main.tscn b/3d/physics_tests/main.tscn index 8b2fde4d221..4d7e6a877ca 100644 --- a/3d/physics_tests/main.tscn +++ b/3d/physics_tests/main.tscn @@ -14,116 +14,119 @@ bg_color = Color(0, 0, 0, 0.176471) [node name="Main" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 mouse_filter = 2 -script = ExtResource( "12" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("12") [node name="TestsMenu" type="MenuButton" parent="."] +layout_mode = 0 offset_left = 10.0 offset_top = 10.0 offset_right = 125.0 offset_bottom = 30.0 text = "TESTS" flat = false -script = ExtResource( "4" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("4") [node name="LabelControls" type="Label" parent="."] +layout_mode = 0 offset_left = 157.0 offset_top = 13.0 offset_right = 375.0 offset_bottom = 27.0 text = "P - TOGGLE PAUSE / R - RESTART / C - TOGGLE COLLISION / F - TOGGLE FULL SCREEN / ESC - QUIT" -__meta__ = { -"_edit_use_anchors_": false -} [node name="LabelFPS" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -19.0 offset_right = 50.0 offset_bottom = -5.0 +grow_vertical = 0 text = "FPS: 0" -script = ExtResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("1") [node name="LabelEngine" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -39.0 offset_right = 50.0 offset_bottom = -25.0 +grow_vertical = 0 text = "Physics engine:" -script = ExtResource( "3" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("3") [node name="LabelVersion" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -59.0 offset_right = 50.0 offset_bottom = -45.0 +grow_vertical = 0 text = "Godot Version:" -script = ExtResource( "2" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("2") [node name="LabelTest" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 10.0 offset_top = -79.0 offset_right = 50.0 offset_bottom = -65.0 +grow_vertical = 0 text = "Test:" -script = ExtResource( "5" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("5") [node name="LabelPause" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 7 anchor_left = 0.5 anchor_top = 1.0 anchor_right = 0.5 anchor_bottom = 1.0 -offset_left = -25.5 -offset_top = -25.0 -offset_right = 25.5 -offset_bottom = -11.0 +offset_left = -46.5 +offset_top = -584.0 +offset_right = 46.5 +offset_bottom = -547.0 +grow_horizontal = 2 +grow_vertical = 0 +theme_override_colors/font_color = Color(1, 1, 0, 1) +theme_override_font_sizes/font_size = 24 text = "PAUSED" -script = ExtResource( "6" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("6") [node name="PanelLog" type="Panel" parent="."] +layout_mode = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -428.0 -offset_top = -125.0 -theme_override_styles/panel = SubResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +offset_left = -482.0 +offset_top = -237.0 +grow_horizontal = 0 +grow_vertical = 0 +theme_override_styles/panel = SubResource("1") [node name="ButtonClear" type="Button" parent="PanelLog"] +layout_mode = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 @@ -132,55 +135,47 @@ offset_left = -48.0 offset_top = -25.0 offset_right = -5.0 offset_bottom = -5.0 +grow_horizontal = 0 +grow_vertical = 0 focus_mode = 0 -text = "clear" -__meta__ = { -"_edit_use_anchors_": false -} +text = "Clear" -[node name="CheckBoxScroll" type="CheckBox" parent="PanelLog"] +[node name="CheckBoxScroll" type="CheckButton" parent="PanelLog"] +layout_mode = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -150.0 -offset_top = -27.0 -offset_right = -54.0 -offset_bottom = -3.0 +offset_left = -189.0 +offset_top = -35.0 +offset_right = -57.0 +offset_bottom = -4.0 +grow_horizontal = 0 +grow_vertical = 0 focus_mode = 0 -text = "auto-scroll" -__meta__ = { -"_edit_use_anchors_": false -} +text = "Auto Scroll" [node name="ScrollLog" type="ScrollContainer" parent="PanelLog"] +layout_mode = 0 offset_left = 10.0 offset_top = 5.0 -offset_right = 418.0 -offset_bottom = 94.0 -script = ExtResource( "11" ) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 472.0 +offset_bottom = 194.0 +script = ExtResource("11") auto_scroll = true [node name="VBoxLog" type="VBoxContainer" parent="PanelLog/ScrollLog"] -offset_right = 408.0 -offset_bottom = 89.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 alignment = 2 -script = ExtResource( "10" ) +script = ExtResource("10") [node name="LabelLog" type="Label" parent="PanelLog/ScrollLog/VBoxLog"] -offset_top = 63.0 -offset_right = 408.0 -offset_bottom = 89.0 +layout_mode = 2 text = "Log start" max_lines_visible = 5 -__meta__ = { -"_edit_use_anchors_": false -} [connection signal="pressed" from="PanelLog/ButtonClear" to="PanelLog/ScrollLog/VBoxLog" method="clear"] -[connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="set_auto_scroll"] +[connection signal="toggled" from="PanelLog/CheckBoxScroll" to="PanelLog/ScrollLog" method="_on_check_box_scroll_toggled"] diff --git a/3d/physics_tests/project.godot b/3d/physics_tests/project.godot index 2be8dcc7cdf..67c71768383 100644 --- a/3d/physics_tests/project.godot +++ b/3d/physics_tests/project.godot @@ -28,21 +28,17 @@ _global_script_class_icons={ config/name="3D Physics Tests" run/main_scene="res://main.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [autoload] Log="*res://utils/system_log.gd" System="*res://utils/system.gd" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [input] @@ -65,52 +61,44 @@ ui_down={ } toggle_full_screen={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } exit={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_debug_collision={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } restart_test={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_pause={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } character_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } character_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } character_jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.184314, 0.184314, 0.184314, 1) -quality/filters/msaa=2 diff --git a/3d/physics_tests/test.gd b/3d/physics_tests/test.gd index 08dcbb99fc6..90794dcfd30 100644 --- a/3d/physics_tests/test.gd +++ b/3d/physics_tests/test.gd @@ -73,7 +73,7 @@ func create_rigidbody(shape, pickable = false, transform = Transform3D.IDENTITY) collision.shape = shape collision.transform = transform - var body = RigidDynamicBody3D.new() + var body = RigidBody3D.new() body.add_child(collision) if pickable: diff --git a/3d/physics_tests/tests/functional/test_collision_pairs.gd b/3d/physics_tests/tests/functional/test_collision_pairs.gd index fba92316155..b6e21e89da7 100644 --- a/3d/physics_tests/tests/functional/test_collision_pairs.gd +++ b/3d/physics_tests/tests/functional/test_collision_pairs.gd @@ -40,8 +40,8 @@ func _ready(): $Options.add_menu_item(OPTION_SHAPE_CONVEX_POLYGON, true, true) $Options.add_menu_item(OPTION_SHAPE_CONCAVE_POLYGON, true, true) - $Options.connect(&"option_selected", Callable(self, "_on_option_selected")) - $Options.connect(&"option_changed", Callable(self, "_on_option_changed")) + $Options.option_selected.connect(self._on_option_selected) + $Options.option_changed.connect(self._on_option_changed) await start_timer(0.5).timeout if is_timer_canceled(): diff --git a/3d/physics_tests/tests/functional/test_moving_platform.gd b/3d/physics_tests/tests/functional/test_moving_platform.gd index 0967699ba0f..52224b21ca5 100644 --- a/3d/physics_tests/tests/functional/test_moving_platform.gd +++ b/3d/physics_tests/tests/functional/test_moving_platform.gd @@ -55,8 +55,8 @@ func _ready(): options.add_menu_item(OPTION_ROUGH, true, false) options.add_menu_item(OPTION_PROCESS_PHYSICS, true, false) - options.connect(&"option_selected", Callable(self, "_on_option_selected")) - options.connect(&"option_changed", Callable(self, "_on_option_changed")) + options.option_selected.connect(self._on_option_selected) + options.option_changed.connect(self._on_option_changed) _shapes[SHAPE_CAPSULE] = "Capsule" _shapes[SHAPE_BOX] = "Box" @@ -147,7 +147,7 @@ func init_body(): if _current_body is CharacterBody3D: _current_body._stop_on_slopes = _slope _current_body.use_snap = _snap - elif _current_body is RigidDynamicBody3D: + elif _current_body is RigidBody3D: _current_body.physics_material_override.rough = _rough _current_body.physics_material_override.friction = 1.0 if _friction else 0.0 for shape in _current_body.get_children(): diff --git a/3d/physics_tests/tests/functional/test_raycasting.gd b/3d/physics_tests/tests/functional/test_raycasting.gd index 0d71dd01289..b6dcdde9536 100644 --- a/3d/physics_tests/tests/functional/test_raycasting.gd +++ b/3d/physics_tests/tests/functional/test_raycasting.gd @@ -15,7 +15,7 @@ func _ready(): options.add_menu_item(OPTION_TEST_CASE_HIT_FROM_INSIDE, true, false) - options.connect(&"option_changed", Callable(self, "_on_option_changed")) + options.option_changed.connect(self._on_option_changed) _material.flags_unshaded = true _material.vertex_color_use_as_albedo = true diff --git a/3d/physics_tests/tests/functional/test_rigidbody_ground_check.gd b/3d/physics_tests/tests/functional/test_rigidbody_ground_check.gd index e65146ae558..94d7c4ae09a 100644 --- a/3d/physics_tests/tests/functional/test_rigidbody_ground_check.gd +++ b/3d/physics_tests/tests/functional/test_rigidbody_ground_check.gd @@ -36,7 +36,7 @@ func _ready(): options.add_menu_item(SHAPE_CONVEX) options.add_menu_item(SHAPE_BOX) - options.connect(&"option_selected", Callable(self, "_on_option_selected")) + options.option_selected.connect(self._on_option_selected) restart_scene() @@ -78,4 +78,3 @@ func get_packed_scene(node): var packed_scene = PackedScene.new() packed_scene.pack(node) return packed_scene - diff --git a/3d/physics_tests/tests/performance/test_perf_contacts.gd b/3d/physics_tests/tests/performance/test_perf_contacts.gd index 4860e974097..4a21fc052b6 100644 --- a/3d/physics_tests/tests/performance/test_perf_contacts.gd +++ b/3d/physics_tests/tests/performance/test_perf_contacts.gd @@ -35,7 +35,7 @@ func _ready(): $Options.add_menu_item(OPTION_TYPE_CAPSULE) $Options.add_menu_item(OPTION_TYPE_CYLINDER) $Options.add_menu_item(OPTION_TYPE_CONVEX) - $Options.connect(&"option_selected", Callable(self, "_on_option_selected")) + $Options.option_selected.connect(self._on_option_selected) await _start_all_types() @@ -182,7 +182,7 @@ func _activate_objects(): var spawn_parent = get_node(spawn) for node_index in range(spawn_parent.get_child_count()): - var node = spawn_parent.get_child(node_index) as RigidDynamicBody3D + var node = spawn_parent.get_child(node_index) as RigidBody3D node.set_sleeping(false) diff --git a/3d/physics_tests/tests_menu.gd b/3d/physics_tests/tests_menu.gd index 7e71c916a06..b4a5315c487 100644 --- a/3d/physics_tests/tests_menu.gd +++ b/3d/physics_tests/tests_menu.gd @@ -13,7 +13,7 @@ var _current_test_scene : Node = null func _ready(): - connect(&"option_selected", Callable(self, "_on_option_selected")) + option_selected.connect(self._on_option_selected) func _process(_delta): diff --git a/3d/physics_tests/utils/container_log.gd b/3d/physics_tests/utils/container_log.gd index 329bd0dadf2..d92ad3baffd 100644 --- a/3d/physics_tests/utils/container_log.gd +++ b/3d/physics_tests/utils/container_log.gd @@ -7,7 +7,7 @@ var _entry_template func _enter_tree(): - Log.connect(&"entry_logged", Callable(self, "_on_log_entry")) + Log.entry_logged.connect(self._on_log_entry) _entry_template = get_child(0) as Label remove_child(_entry_template) diff --git a/3d/physics_tests/utils/label_engine.gd b/3d/physics_tests/utils/label_engine.gd index 50a60d01125..6f0cbe80065 100644 --- a/3d/physics_tests/utils/label_engine.gd +++ b/3d/physics_tests/utils/label_engine.gd @@ -4,10 +4,8 @@ extends Label func _process(_delta): var engine_name = "" match System.get_physics_engine(): - System.PhysicsEngine.BULLET: - engine_name = "Bullet" System.PhysicsEngine.GODOT_PHYSICS: - engine_name = "Godot Physics" + engine_name = "GodotPhysics 3D" System.PhysicsEngine.OTHER: var engine_setting = ProjectSettings.get_setting("physics/3d/physics_engine") engine_name = "Other (%s)" % engine_setting diff --git a/3d/physics_tests/utils/option_menu.gd b/3d/physics_tests/utils/option_menu.gd index 27039ac4c52..5d0132bd271 100644 --- a/3d/physics_tests/utils/option_menu.gd +++ b/3d/physics_tests/utils/option_menu.gd @@ -44,7 +44,7 @@ func _add_popup(parent_popup, path, label): parent_popup.add_child(popup_menu) parent_popup.add_submenu_item(label, label) - popup_menu.connect(&"index_pressed", Callable(self, "_on_item_pressed"), [popup_menu, path]) + popup_menu.index_pressed.connect(_on_item_pressed.bind(popup_menu, path)) return popup_menu diff --git a/3d/physics_tests/utils/rigidbody_ground_check.gd b/3d/physics_tests/utils/rigidbody_ground_check.gd index 87bfe4a4f5a..d4c7f44109b 100644 --- a/3d/physics_tests/utils/rigidbody_ground_check.gd +++ b/3d/physics_tests/utils/rigidbody_ground_check.gd @@ -1,4 +1,4 @@ -extends RigidDynamicBody3D +extends RigidBody3D @onready var _forward = -transform.basis.z diff --git a/3d/physics_tests/utils/rigidbody_pick.gd b/3d/physics_tests/utils/rigidbody_pick.gd index 54aca79d1b9..5bfd38cfaf2 100644 --- a/3d/physics_tests/utils/rigidbody_pick.gd +++ b/3d/physics_tests/utils/rigidbody_pick.gd @@ -1,4 +1,4 @@ -extends RigidDynamicBody3D +extends RigidBody3D const MOUSE_DELTA_COEFFICIENT = 0.01 diff --git a/3d/physics_tests/utils/scroll_log.gd b/3d/physics_tests/utils/scroll_log.gd index e8f3614f19f..7c12c10d710 100644 --- a/3d/physics_tests/utils/scroll_log.gd +++ b/3d/physics_tests/utils/scroll_log.gd @@ -8,3 +8,7 @@ func _process(_delta): if auto_scroll: var scrollbar = get_v_scroll_bar() scrollbar.value = scrollbar.max_value + + +func _on_check_box_scroll_toggled(button_pressed): + auto_scroll = button_pressed diff --git a/3d/physics_tests/utils/system.gd b/3d/physics_tests/utils/system.gd index e74b5c8c51f..7c37c29dc0e 100644 --- a/3d/physics_tests/utils/system.gd +++ b/3d/physics_tests/utils/system.gd @@ -2,7 +2,6 @@ extends Node enum PhysicsEngine { - BULLET, GODOT_PHYSICS, OTHER, } @@ -18,9 +17,7 @@ func _enter_tree(): var engine_string = ProjectSettings.get_setting("physics/3d/physics_engine") match engine_string: "DEFAULT": - _engine = PhysicsEngine.BULLET - "Bullet": - _engine = PhysicsEngine.BULLET + _engine = PhysicsEngine.GODOT_PHYSICS "GodotPhysics3D": _engine = PhysicsEngine.GODOT_PHYSICS _: diff --git a/3d/platformer/README.md b/3d/platformer/README.md index 7f9d8119ca7..2c33ef8991d 100644 --- a/3d/platformer/README.md +++ b/3d/platformer/README.md @@ -12,6 +12,4 @@ Check out this demo on the asset library: https://godotengine.org/asset-library/ ## Screenshots -![Screenshot](screenshots/face.png) - -![Screenshot](screenshots/shoot.png) +![Screenshot](screenshots/platformer.webp) diff --git a/3d/platformer/coin/coin.gd b/3d/platformer/coin/coin.gd index 7bec6173f71..94c7f44f964 100644 --- a/3d/platformer/coin/coin.gd +++ b/3d/platformer/coin/coin.gd @@ -8,3 +8,6 @@ func _on_coin_body_enter(body): if not taken and body is Player: $Animation.play(&"take") taken = true + # We've already checked whether the colliding body is a Player, which has a `coins` property. + # As a result, we can safely increment its `coins` property. + body.coins += 1 diff --git a/3d/platformer/coin/coin.tscn b/3d/platformer/coin/coin.tscn index 2166629e15f..13e8c9d7b71 100644 --- a/3d/platformer/coin/coin.tscn +++ b/3d/platformer/coin/coin.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=14 format=3 uid="uid://dfxo2jwbj4aeh"] +[gd_scene load_steps=15 format=3 uid="uid://dfxo2jwbj4aeh"] [ext_resource type="Script" path="res://coin/coin.gd" id="1"] [ext_resource type="AudioStream" uid="uid://b23l5nfatq2d2" path="res://coin/sound_coin.wav" id="2"] @@ -85,7 +85,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("GPUParticles3D:emitting") +tracks/1/path = NodePath("CPUParticles3D:emitting") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -115,7 +115,7 @@ _data = { } [sub_resource type="SphereShape3D" id="5"] -radius = 0.312546 +radius = 0.375 [sub_resource type="StandardMaterial3D" id="6"] transparency = 1 @@ -125,6 +125,7 @@ vertex_color_use_as_albedo = true vertex_color_is_srgb = true albedo_color = Color(1, 1, 0.759137, 1) albedo_texture = ExtResource("3") +texture_filter = 4 billboard_mode = 3 particles_anim_h_frames = 1 particles_anim_v_frames = 1 @@ -132,9 +133,13 @@ particles_anim_loop = false [sub_resource type="PlaneMesh" id="7"] material = SubResource("6") -size = Vector2(0.5, 0.5) +size = Vector2(0.25, 0.25) orientation = 2 +[sub_resource type="Curve" id="Curve_b7uxi"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.101562, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 + [sub_resource type="Gradient" id="8"] colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) @@ -161,11 +166,12 @@ shape = SubResource("5") [node name="Sound" type="AudioStreamPlayer3D" parent="."] stream = ExtResource("2") -[node name="GPUParticles3D" type="CPUParticles3D" parent="."] +[node name="CPUParticles3D" type="CPUParticles3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000732422, 0.542954, 0) emitting = false +amount = 16 one_shot = true -explosiveness = 0.5 +explosiveness = 1.0 lifetime_randomness = 0.2 mesh = SubResource("7") emission_shape = 2 @@ -174,6 +180,7 @@ direction = Vector3(0, 1, 0) spread = 25.0 initial_velocity_min = 1.0 initial_velocity_max = 2.0 +scale_amount_curve = SubResource("Curve_b7uxi") color_ramp = SubResource("8") [connection signal="body_entered" from="." to="." method="_on_coin_body_enter"] diff --git a/3d/platformer/coin/coin_material.tres b/3d/platformer/coin/coin_material.tres index 42ee5d719ca..89188bddce7 100644 --- a/3d/platformer/coin/coin_material.tres +++ b/3d/platformer/coin/coin_material.tres @@ -1,7 +1,7 @@ [gd_resource type="StandardMaterial3D" format=3 uid="uid://dp0bangabfrg"] [resource] -albedo_color = Color(1, 0.837686, 0, 1) +albedo_color = Color(1.5, 1.26, 0, 1) metallic = 1.0 roughness = 0.2 emission_enabled = true diff --git a/3d/platformer/default_env.tres b/3d/platformer/default_env.tres index 47afd8fb867..43196d58fb4 100644 --- a/3d/platformer/default_env.tres +++ b/3d/platformer/default_env.tres @@ -15,8 +15,7 @@ ambient_light_source = 2 ambient_light_color = Color(0.6, 0.6, 0.6, 1) ambient_light_sky_contribution = 0.0 tonemap_mode = 2 -ssao_enabled = true -glow_enabled = true -glow_intensity = 0.5 -glow_strength = 1.2 -glow_blend_mode = 1 +tonemap_white = 6.0 +fog_enabled = true +fog_density = 0.0015 +fog_sky_affect = 0.0 diff --git a/3d/platformer/enemy/enemy.glb.import b/3d/platformer/enemy/enemy.glb.import index a53c744f62f..9b5b51ac715 100644 --- a/3d/platformer/enemy/enemy.glb.import +++ b/3d/platformer/enemy/enemy.glb.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/enemy.glb-d895c1723b6b5633e6a9ea1829adeaa2.sc nodes/root_type="Node3D" nodes/root_name="Enemy" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true @@ -24,6 +25,7 @@ meshes/lightmap_texel_size=0.2 skins/use_named_skins=true animation/import=true animation/fps=30 +animation/trimming=false import_script/path="" _subresources={ "animations": { @@ -34,7 +36,1800 @@ _subresources={ "save_to_file/enabled": false, "save_to_file/keep_custom_tracks": "", "save_to_file/path": "", -"settings/loop_mode": 1 +"settings/loop_mode": 1, +"slice_1/end_frame": 0, +"slice_1/loop_mode": 0, +"slice_1/name": "", +"slice_1/save_to_file/enabled": false, +"slice_1/save_to_file/keep_custom_tracks": false, +"slice_1/save_to_file/path": "", +"slice_1/start_frame": 0, +"slice_10/end_frame": 0, +"slice_10/loop_mode": 0, +"slice_10/name": "", +"slice_10/save_to_file/enabled": false, +"slice_10/save_to_file/keep_custom_tracks": false, +"slice_10/save_to_file/path": "", +"slice_10/start_frame": 0, +"slice_100/end_frame": 0, +"slice_100/loop_mode": 0, +"slice_100/name": "", +"slice_100/save_to_file/enabled": false, +"slice_100/save_to_file/keep_custom_tracks": false, +"slice_100/save_to_file/path": "", +"slice_100/start_frame": 0, +"slice_101/end_frame": 0, +"slice_101/loop_mode": 0, +"slice_101/name": "", +"slice_101/save_to_file/enabled": false, +"slice_101/save_to_file/keep_custom_tracks": false, +"slice_101/save_to_file/path": "", +"slice_101/start_frame": 0, +"slice_102/end_frame": 0, +"slice_102/loop_mode": 0, +"slice_102/name": "", +"slice_102/save_to_file/enabled": false, +"slice_102/save_to_file/keep_custom_tracks": false, +"slice_102/save_to_file/path": "", +"slice_102/start_frame": 0, +"slice_103/end_frame": 0, +"slice_103/loop_mode": 0, +"slice_103/name": "", +"slice_103/save_to_file/enabled": false, +"slice_103/save_to_file/keep_custom_tracks": false, +"slice_103/save_to_file/path": "", +"slice_103/start_frame": 0, +"slice_104/end_frame": 0, +"slice_104/loop_mode": 0, +"slice_104/name": "", +"slice_104/save_to_file/enabled": false, +"slice_104/save_to_file/keep_custom_tracks": false, +"slice_104/save_to_file/path": "", +"slice_104/start_frame": 0, +"slice_105/end_frame": 0, +"slice_105/loop_mode": 0, +"slice_105/name": "", +"slice_105/save_to_file/enabled": false, +"slice_105/save_to_file/keep_custom_tracks": false, +"slice_105/save_to_file/path": "", +"slice_105/start_frame": 0, +"slice_106/end_frame": 0, +"slice_106/loop_mode": 0, +"slice_106/name": "", +"slice_106/save_to_file/enabled": false, +"slice_106/save_to_file/keep_custom_tracks": false, +"slice_106/save_to_file/path": "", +"slice_106/start_frame": 0, +"slice_107/end_frame": 0, +"slice_107/loop_mode": 0, +"slice_107/name": "", +"slice_107/save_to_file/enabled": false, +"slice_107/save_to_file/keep_custom_tracks": false, +"slice_107/save_to_file/path": "", +"slice_107/start_frame": 0, +"slice_108/end_frame": 0, +"slice_108/loop_mode": 0, +"slice_108/name": "", +"slice_108/save_to_file/enabled": false, +"slice_108/save_to_file/keep_custom_tracks": false, +"slice_108/save_to_file/path": "", +"slice_108/start_frame": 0, +"slice_109/end_frame": 0, +"slice_109/loop_mode": 0, +"slice_109/name": "", +"slice_109/save_to_file/enabled": false, +"slice_109/save_to_file/keep_custom_tracks": false, +"slice_109/save_to_file/path": "", +"slice_109/start_frame": 0, +"slice_11/end_frame": 0, +"slice_11/loop_mode": 0, +"slice_11/name": "", +"slice_11/save_to_file/enabled": false, +"slice_11/save_to_file/keep_custom_tracks": false, +"slice_11/save_to_file/path": "", +"slice_11/start_frame": 0, +"slice_110/end_frame": 0, +"slice_110/loop_mode": 0, +"slice_110/name": "", +"slice_110/save_to_file/enabled": false, +"slice_110/save_to_file/keep_custom_tracks": false, +"slice_110/save_to_file/path": "", +"slice_110/start_frame": 0, +"slice_111/end_frame": 0, +"slice_111/loop_mode": 0, +"slice_111/name": "", +"slice_111/save_to_file/enabled": false, +"slice_111/save_to_file/keep_custom_tracks": false, +"slice_111/save_to_file/path": "", +"slice_111/start_frame": 0, +"slice_112/end_frame": 0, +"slice_112/loop_mode": 0, +"slice_112/name": "", +"slice_112/save_to_file/enabled": false, +"slice_112/save_to_file/keep_custom_tracks": false, +"slice_112/save_to_file/path": "", +"slice_112/start_frame": 0, +"slice_113/end_frame": 0, +"slice_113/loop_mode": 0, +"slice_113/name": "", +"slice_113/save_to_file/enabled": false, +"slice_113/save_to_file/keep_custom_tracks": false, +"slice_113/save_to_file/path": "", +"slice_113/start_frame": 0, +"slice_114/end_frame": 0, +"slice_114/loop_mode": 0, +"slice_114/name": "", +"slice_114/save_to_file/enabled": false, +"slice_114/save_to_file/keep_custom_tracks": false, +"slice_114/save_to_file/path": "", +"slice_114/start_frame": 0, +"slice_115/end_frame": 0, +"slice_115/loop_mode": 0, +"slice_115/name": "", +"slice_115/save_to_file/enabled": false, +"slice_115/save_to_file/keep_custom_tracks": false, +"slice_115/save_to_file/path": "", +"slice_115/start_frame": 0, +"slice_116/end_frame": 0, +"slice_116/loop_mode": 0, +"slice_116/name": "", +"slice_116/save_to_file/enabled": false, +"slice_116/save_to_file/keep_custom_tracks": false, +"slice_116/save_to_file/path": "", +"slice_116/start_frame": 0, +"slice_117/end_frame": 0, +"slice_117/loop_mode": 0, +"slice_117/name": "", +"slice_117/save_to_file/enabled": false, +"slice_117/save_to_file/keep_custom_tracks": false, +"slice_117/save_to_file/path": "", +"slice_117/start_frame": 0, +"slice_118/end_frame": 0, +"slice_118/loop_mode": 0, +"slice_118/name": "", +"slice_118/save_to_file/enabled": false, +"slice_118/save_to_file/keep_custom_tracks": false, +"slice_118/save_to_file/path": "", +"slice_118/start_frame": 0, +"slice_119/end_frame": 0, +"slice_119/loop_mode": 0, +"slice_119/name": "", +"slice_119/save_to_file/enabled": false, +"slice_119/save_to_file/keep_custom_tracks": false, +"slice_119/save_to_file/path": "", +"slice_119/start_frame": 0, +"slice_12/end_frame": 0, +"slice_12/loop_mode": 0, +"slice_12/name": "", +"slice_12/save_to_file/enabled": false, +"slice_12/save_to_file/keep_custom_tracks": false, +"slice_12/save_to_file/path": "", +"slice_12/start_frame": 0, +"slice_120/end_frame": 0, +"slice_120/loop_mode": 0, +"slice_120/name": "", +"slice_120/save_to_file/enabled": false, +"slice_120/save_to_file/keep_custom_tracks": false, +"slice_120/save_to_file/path": "", +"slice_120/start_frame": 0, +"slice_121/end_frame": 0, +"slice_121/loop_mode": 0, +"slice_121/name": "", +"slice_121/save_to_file/enabled": false, +"slice_121/save_to_file/keep_custom_tracks": false, +"slice_121/save_to_file/path": "", +"slice_121/start_frame": 0, +"slice_122/end_frame": 0, +"slice_122/loop_mode": 0, +"slice_122/name": "", +"slice_122/save_to_file/enabled": false, +"slice_122/save_to_file/keep_custom_tracks": false, +"slice_122/save_to_file/path": "", +"slice_122/start_frame": 0, +"slice_123/end_frame": 0, +"slice_123/loop_mode": 0, +"slice_123/name": "", +"slice_123/save_to_file/enabled": false, +"slice_123/save_to_file/keep_custom_tracks": false, +"slice_123/save_to_file/path": "", +"slice_123/start_frame": 0, +"slice_124/end_frame": 0, +"slice_124/loop_mode": 0, +"slice_124/name": "", +"slice_124/save_to_file/enabled": false, +"slice_124/save_to_file/keep_custom_tracks": false, +"slice_124/save_to_file/path": "", +"slice_124/start_frame": 0, +"slice_125/end_frame": 0, +"slice_125/loop_mode": 0, +"slice_125/name": "", +"slice_125/save_to_file/enabled": false, +"slice_125/save_to_file/keep_custom_tracks": false, +"slice_125/save_to_file/path": "", +"slice_125/start_frame": 0, +"slice_126/end_frame": 0, +"slice_126/loop_mode": 0, +"slice_126/name": "", +"slice_126/save_to_file/enabled": false, +"slice_126/save_to_file/keep_custom_tracks": false, +"slice_126/save_to_file/path": "", +"slice_126/start_frame": 0, +"slice_127/end_frame": 0, +"slice_127/loop_mode": 0, +"slice_127/name": "", +"slice_127/save_to_file/enabled": false, +"slice_127/save_to_file/keep_custom_tracks": false, +"slice_127/save_to_file/path": "", +"slice_127/start_frame": 0, +"slice_128/end_frame": 0, +"slice_128/loop_mode": 0, +"slice_128/name": "", +"slice_128/save_to_file/enabled": false, +"slice_128/save_to_file/keep_custom_tracks": false, +"slice_128/save_to_file/path": "", +"slice_128/start_frame": 0, +"slice_129/end_frame": 0, +"slice_129/loop_mode": 0, +"slice_129/name": "", +"slice_129/save_to_file/enabled": false, +"slice_129/save_to_file/keep_custom_tracks": false, +"slice_129/save_to_file/path": "", +"slice_129/start_frame": 0, +"slice_13/end_frame": 0, +"slice_13/loop_mode": 0, +"slice_13/name": "", +"slice_13/save_to_file/enabled": false, +"slice_13/save_to_file/keep_custom_tracks": false, +"slice_13/save_to_file/path": "", +"slice_13/start_frame": 0, +"slice_130/end_frame": 0, +"slice_130/loop_mode": 0, +"slice_130/name": "", +"slice_130/save_to_file/enabled": false, +"slice_130/save_to_file/keep_custom_tracks": false, +"slice_130/save_to_file/path": "", +"slice_130/start_frame": 0, +"slice_131/end_frame": 0, +"slice_131/loop_mode": 0, +"slice_131/name": "", +"slice_131/save_to_file/enabled": false, +"slice_131/save_to_file/keep_custom_tracks": false, +"slice_131/save_to_file/path": "", +"slice_131/start_frame": 0, +"slice_132/end_frame": 0, +"slice_132/loop_mode": 0, +"slice_132/name": "", +"slice_132/save_to_file/enabled": false, +"slice_132/save_to_file/keep_custom_tracks": false, +"slice_132/save_to_file/path": "", +"slice_132/start_frame": 0, +"slice_133/end_frame": 0, +"slice_133/loop_mode": 0, +"slice_133/name": "", +"slice_133/save_to_file/enabled": false, +"slice_133/save_to_file/keep_custom_tracks": false, +"slice_133/save_to_file/path": "", +"slice_133/start_frame": 0, +"slice_134/end_frame": 0, +"slice_134/loop_mode": 0, +"slice_134/name": "", +"slice_134/save_to_file/enabled": false, +"slice_134/save_to_file/keep_custom_tracks": false, +"slice_134/save_to_file/path": "", +"slice_134/start_frame": 0, +"slice_135/end_frame": 0, +"slice_135/loop_mode": 0, +"slice_135/name": "", +"slice_135/save_to_file/enabled": false, +"slice_135/save_to_file/keep_custom_tracks": false, +"slice_135/save_to_file/path": "", +"slice_135/start_frame": 0, +"slice_136/end_frame": 0, +"slice_136/loop_mode": 0, +"slice_136/name": "", +"slice_136/save_to_file/enabled": false, +"slice_136/save_to_file/keep_custom_tracks": false, +"slice_136/save_to_file/path": "", +"slice_136/start_frame": 0, +"slice_137/end_frame": 0, +"slice_137/loop_mode": 0, +"slice_137/name": "", +"slice_137/save_to_file/enabled": false, +"slice_137/save_to_file/keep_custom_tracks": false, +"slice_137/save_to_file/path": "", +"slice_137/start_frame": 0, +"slice_138/end_frame": 0, +"slice_138/loop_mode": 0, +"slice_138/name": "", +"slice_138/save_to_file/enabled": false, +"slice_138/save_to_file/keep_custom_tracks": false, +"slice_138/save_to_file/path": "", +"slice_138/start_frame": 0, +"slice_139/end_frame": 0, +"slice_139/loop_mode": 0, +"slice_139/name": "", +"slice_139/save_to_file/enabled": false, +"slice_139/save_to_file/keep_custom_tracks": false, +"slice_139/save_to_file/path": "", +"slice_139/start_frame": 0, +"slice_14/end_frame": 0, +"slice_14/loop_mode": 0, +"slice_14/name": "", +"slice_14/save_to_file/enabled": false, +"slice_14/save_to_file/keep_custom_tracks": false, +"slice_14/save_to_file/path": "", +"slice_14/start_frame": 0, +"slice_140/end_frame": 0, +"slice_140/loop_mode": 0, +"slice_140/name": "", +"slice_140/save_to_file/enabled": false, +"slice_140/save_to_file/keep_custom_tracks": false, +"slice_140/save_to_file/path": "", +"slice_140/start_frame": 0, +"slice_141/end_frame": 0, +"slice_141/loop_mode": 0, +"slice_141/name": "", +"slice_141/save_to_file/enabled": false, +"slice_141/save_to_file/keep_custom_tracks": false, +"slice_141/save_to_file/path": "", +"slice_141/start_frame": 0, +"slice_142/end_frame": 0, +"slice_142/loop_mode": 0, +"slice_142/name": "", +"slice_142/save_to_file/enabled": false, +"slice_142/save_to_file/keep_custom_tracks": false, +"slice_142/save_to_file/path": "", +"slice_142/start_frame": 0, +"slice_143/end_frame": 0, +"slice_143/loop_mode": 0, +"slice_143/name": "", +"slice_143/save_to_file/enabled": false, +"slice_143/save_to_file/keep_custom_tracks": false, +"slice_143/save_to_file/path": "", +"slice_143/start_frame": 0, +"slice_144/end_frame": 0, +"slice_144/loop_mode": 0, +"slice_144/name": "", +"slice_144/save_to_file/enabled": false, +"slice_144/save_to_file/keep_custom_tracks": false, +"slice_144/save_to_file/path": "", +"slice_144/start_frame": 0, +"slice_145/end_frame": 0, +"slice_145/loop_mode": 0, +"slice_145/name": "", +"slice_145/save_to_file/enabled": false, +"slice_145/save_to_file/keep_custom_tracks": false, +"slice_145/save_to_file/path": "", +"slice_145/start_frame": 0, +"slice_146/end_frame": 0, +"slice_146/loop_mode": 0, +"slice_146/name": "", +"slice_146/save_to_file/enabled": false, +"slice_146/save_to_file/keep_custom_tracks": false, +"slice_146/save_to_file/path": "", +"slice_146/start_frame": 0, +"slice_147/end_frame": 0, +"slice_147/loop_mode": 0, +"slice_147/name": "", +"slice_147/save_to_file/enabled": false, +"slice_147/save_to_file/keep_custom_tracks": false, +"slice_147/save_to_file/path": "", +"slice_147/start_frame": 0, +"slice_148/end_frame": 0, +"slice_148/loop_mode": 0, +"slice_148/name": "", +"slice_148/save_to_file/enabled": false, +"slice_148/save_to_file/keep_custom_tracks": false, +"slice_148/save_to_file/path": "", +"slice_148/start_frame": 0, +"slice_149/end_frame": 0, +"slice_149/loop_mode": 0, +"slice_149/name": "", +"slice_149/save_to_file/enabled": false, +"slice_149/save_to_file/keep_custom_tracks": false, +"slice_149/save_to_file/path": "", +"slice_149/start_frame": 0, +"slice_15/end_frame": 0, +"slice_15/loop_mode": 0, +"slice_15/name": "", +"slice_15/save_to_file/enabled": false, +"slice_15/save_to_file/keep_custom_tracks": false, +"slice_15/save_to_file/path": "", +"slice_15/start_frame": 0, +"slice_150/end_frame": 0, +"slice_150/loop_mode": 0, +"slice_150/name": "", +"slice_150/save_to_file/enabled": false, +"slice_150/save_to_file/keep_custom_tracks": false, +"slice_150/save_to_file/path": "", +"slice_150/start_frame": 0, +"slice_151/end_frame": 0, +"slice_151/loop_mode": 0, +"slice_151/name": "", +"slice_151/save_to_file/enabled": false, +"slice_151/save_to_file/keep_custom_tracks": false, +"slice_151/save_to_file/path": "", +"slice_151/start_frame": 0, +"slice_152/end_frame": 0, +"slice_152/loop_mode": 0, +"slice_152/name": "", +"slice_152/save_to_file/enabled": false, +"slice_152/save_to_file/keep_custom_tracks": false, +"slice_152/save_to_file/path": "", +"slice_152/start_frame": 0, +"slice_153/end_frame": 0, +"slice_153/loop_mode": 0, +"slice_153/name": "", +"slice_153/save_to_file/enabled": false, +"slice_153/save_to_file/keep_custom_tracks": false, +"slice_153/save_to_file/path": "", +"slice_153/start_frame": 0, +"slice_154/end_frame": 0, +"slice_154/loop_mode": 0, +"slice_154/name": "", +"slice_154/save_to_file/enabled": false, +"slice_154/save_to_file/keep_custom_tracks": false, +"slice_154/save_to_file/path": "", +"slice_154/start_frame": 0, +"slice_155/end_frame": 0, +"slice_155/loop_mode": 0, +"slice_155/name": "", +"slice_155/save_to_file/enabled": false, +"slice_155/save_to_file/keep_custom_tracks": false, +"slice_155/save_to_file/path": "", +"slice_155/start_frame": 0, +"slice_156/end_frame": 0, +"slice_156/loop_mode": 0, +"slice_156/name": "", +"slice_156/save_to_file/enabled": false, +"slice_156/save_to_file/keep_custom_tracks": false, +"slice_156/save_to_file/path": "", +"slice_156/start_frame": 0, +"slice_157/end_frame": 0, +"slice_157/loop_mode": 0, +"slice_157/name": "", +"slice_157/save_to_file/enabled": false, +"slice_157/save_to_file/keep_custom_tracks": false, +"slice_157/save_to_file/path": "", +"slice_157/start_frame": 0, +"slice_158/end_frame": 0, +"slice_158/loop_mode": 0, +"slice_158/name": "", +"slice_158/save_to_file/enabled": false, +"slice_158/save_to_file/keep_custom_tracks": false, +"slice_158/save_to_file/path": "", +"slice_158/start_frame": 0, +"slice_159/end_frame": 0, +"slice_159/loop_mode": 0, +"slice_159/name": "", +"slice_159/save_to_file/enabled": false, +"slice_159/save_to_file/keep_custom_tracks": false, +"slice_159/save_to_file/path": "", +"slice_159/start_frame": 0, +"slice_16/end_frame": 0, +"slice_16/loop_mode": 0, +"slice_16/name": "", +"slice_16/save_to_file/enabled": false, +"slice_16/save_to_file/keep_custom_tracks": false, +"slice_16/save_to_file/path": "", +"slice_16/start_frame": 0, +"slice_160/end_frame": 0, +"slice_160/loop_mode": 0, +"slice_160/name": "", +"slice_160/save_to_file/enabled": false, +"slice_160/save_to_file/keep_custom_tracks": false, +"slice_160/save_to_file/path": "", +"slice_160/start_frame": 0, +"slice_161/end_frame": 0, +"slice_161/loop_mode": 0, +"slice_161/name": "", +"slice_161/save_to_file/enabled": false, +"slice_161/save_to_file/keep_custom_tracks": false, +"slice_161/save_to_file/path": "", +"slice_161/start_frame": 0, +"slice_162/end_frame": 0, +"slice_162/loop_mode": 0, +"slice_162/name": "", +"slice_162/save_to_file/enabled": false, +"slice_162/save_to_file/keep_custom_tracks": false, +"slice_162/save_to_file/path": "", +"slice_162/start_frame": 0, +"slice_163/end_frame": 0, +"slice_163/loop_mode": 0, +"slice_163/name": "", +"slice_163/save_to_file/enabled": false, +"slice_163/save_to_file/keep_custom_tracks": false, +"slice_163/save_to_file/path": "", +"slice_163/start_frame": 0, +"slice_164/end_frame": 0, +"slice_164/loop_mode": 0, +"slice_164/name": "", +"slice_164/save_to_file/enabled": false, +"slice_164/save_to_file/keep_custom_tracks": false, +"slice_164/save_to_file/path": "", +"slice_164/start_frame": 0, +"slice_165/end_frame": 0, +"slice_165/loop_mode": 0, +"slice_165/name": "", +"slice_165/save_to_file/enabled": false, +"slice_165/save_to_file/keep_custom_tracks": false, +"slice_165/save_to_file/path": "", +"slice_165/start_frame": 0, +"slice_166/end_frame": 0, +"slice_166/loop_mode": 0, +"slice_166/name": "", +"slice_166/save_to_file/enabled": false, +"slice_166/save_to_file/keep_custom_tracks": false, +"slice_166/save_to_file/path": "", +"slice_166/start_frame": 0, +"slice_167/end_frame": 0, +"slice_167/loop_mode": 0, +"slice_167/name": "", +"slice_167/save_to_file/enabled": false, +"slice_167/save_to_file/keep_custom_tracks": false, +"slice_167/save_to_file/path": "", +"slice_167/start_frame": 0, +"slice_168/end_frame": 0, +"slice_168/loop_mode": 0, +"slice_168/name": "", +"slice_168/save_to_file/enabled": false, +"slice_168/save_to_file/keep_custom_tracks": false, +"slice_168/save_to_file/path": "", +"slice_168/start_frame": 0, +"slice_169/end_frame": 0, +"slice_169/loop_mode": 0, +"slice_169/name": "", +"slice_169/save_to_file/enabled": false, +"slice_169/save_to_file/keep_custom_tracks": false, +"slice_169/save_to_file/path": "", +"slice_169/start_frame": 0, +"slice_17/end_frame": 0, +"slice_17/loop_mode": 0, +"slice_17/name": "", +"slice_17/save_to_file/enabled": false, +"slice_17/save_to_file/keep_custom_tracks": false, +"slice_17/save_to_file/path": "", +"slice_17/start_frame": 0, +"slice_170/end_frame": 0, +"slice_170/loop_mode": 0, +"slice_170/name": "", +"slice_170/save_to_file/enabled": false, +"slice_170/save_to_file/keep_custom_tracks": false, +"slice_170/save_to_file/path": "", +"slice_170/start_frame": 0, +"slice_171/end_frame": 0, +"slice_171/loop_mode": 0, +"slice_171/name": "", +"slice_171/save_to_file/enabled": false, +"slice_171/save_to_file/keep_custom_tracks": false, +"slice_171/save_to_file/path": "", +"slice_171/start_frame": 0, +"slice_172/end_frame": 0, +"slice_172/loop_mode": 0, +"slice_172/name": "", +"slice_172/save_to_file/enabled": false, +"slice_172/save_to_file/keep_custom_tracks": false, +"slice_172/save_to_file/path": "", +"slice_172/start_frame": 0, +"slice_173/end_frame": 0, +"slice_173/loop_mode": 0, +"slice_173/name": "", +"slice_173/save_to_file/enabled": false, +"slice_173/save_to_file/keep_custom_tracks": false, +"slice_173/save_to_file/path": "", +"slice_173/start_frame": 0, +"slice_174/end_frame": 0, +"slice_174/loop_mode": 0, +"slice_174/name": "", +"slice_174/save_to_file/enabled": false, +"slice_174/save_to_file/keep_custom_tracks": false, +"slice_174/save_to_file/path": "", +"slice_174/start_frame": 0, +"slice_175/end_frame": 0, +"slice_175/loop_mode": 0, +"slice_175/name": "", +"slice_175/save_to_file/enabled": false, +"slice_175/save_to_file/keep_custom_tracks": false, +"slice_175/save_to_file/path": "", +"slice_175/start_frame": 0, +"slice_176/end_frame": 0, +"slice_176/loop_mode": 0, +"slice_176/name": "", +"slice_176/save_to_file/enabled": false, +"slice_176/save_to_file/keep_custom_tracks": false, +"slice_176/save_to_file/path": "", +"slice_176/start_frame": 0, +"slice_177/end_frame": 0, +"slice_177/loop_mode": 0, +"slice_177/name": "", +"slice_177/save_to_file/enabled": false, +"slice_177/save_to_file/keep_custom_tracks": false, +"slice_177/save_to_file/path": "", +"slice_177/start_frame": 0, +"slice_178/end_frame": 0, +"slice_178/loop_mode": 0, +"slice_178/name": "", +"slice_178/save_to_file/enabled": false, +"slice_178/save_to_file/keep_custom_tracks": false, +"slice_178/save_to_file/path": "", +"slice_178/start_frame": 0, +"slice_179/end_frame": 0, +"slice_179/loop_mode": 0, +"slice_179/name": "", +"slice_179/save_to_file/enabled": false, +"slice_179/save_to_file/keep_custom_tracks": false, +"slice_179/save_to_file/path": "", +"slice_179/start_frame": 0, +"slice_18/end_frame": 0, +"slice_18/loop_mode": 0, +"slice_18/name": "", +"slice_18/save_to_file/enabled": false, +"slice_18/save_to_file/keep_custom_tracks": false, +"slice_18/save_to_file/path": "", +"slice_18/start_frame": 0, +"slice_180/end_frame": 0, +"slice_180/loop_mode": 0, +"slice_180/name": "", +"slice_180/save_to_file/enabled": false, +"slice_180/save_to_file/keep_custom_tracks": false, +"slice_180/save_to_file/path": "", +"slice_180/start_frame": 0, +"slice_181/end_frame": 0, +"slice_181/loop_mode": 0, +"slice_181/name": "", +"slice_181/save_to_file/enabled": false, +"slice_181/save_to_file/keep_custom_tracks": false, +"slice_181/save_to_file/path": "", +"slice_181/start_frame": 0, +"slice_182/end_frame": 0, +"slice_182/loop_mode": 0, +"slice_182/name": "", +"slice_182/save_to_file/enabled": false, +"slice_182/save_to_file/keep_custom_tracks": false, +"slice_182/save_to_file/path": "", +"slice_182/start_frame": 0, +"slice_183/end_frame": 0, +"slice_183/loop_mode": 0, +"slice_183/name": "", +"slice_183/save_to_file/enabled": false, +"slice_183/save_to_file/keep_custom_tracks": false, +"slice_183/save_to_file/path": "", +"slice_183/start_frame": 0, +"slice_184/end_frame": 0, +"slice_184/loop_mode": 0, +"slice_184/name": "", +"slice_184/save_to_file/enabled": false, +"slice_184/save_to_file/keep_custom_tracks": false, +"slice_184/save_to_file/path": "", +"slice_184/start_frame": 0, +"slice_185/end_frame": 0, +"slice_185/loop_mode": 0, +"slice_185/name": "", +"slice_185/save_to_file/enabled": false, +"slice_185/save_to_file/keep_custom_tracks": false, +"slice_185/save_to_file/path": "", +"slice_185/start_frame": 0, +"slice_186/end_frame": 0, +"slice_186/loop_mode": 0, +"slice_186/name": "", +"slice_186/save_to_file/enabled": false, +"slice_186/save_to_file/keep_custom_tracks": false, +"slice_186/save_to_file/path": "", +"slice_186/start_frame": 0, +"slice_187/end_frame": 0, +"slice_187/loop_mode": 0, +"slice_187/name": "", +"slice_187/save_to_file/enabled": false, +"slice_187/save_to_file/keep_custom_tracks": false, +"slice_187/save_to_file/path": "", +"slice_187/start_frame": 0, +"slice_188/end_frame": 0, +"slice_188/loop_mode": 0, +"slice_188/name": "", +"slice_188/save_to_file/enabled": false, +"slice_188/save_to_file/keep_custom_tracks": false, +"slice_188/save_to_file/path": "", +"slice_188/start_frame": 0, +"slice_189/end_frame": 0, +"slice_189/loop_mode": 0, +"slice_189/name": "", +"slice_189/save_to_file/enabled": false, +"slice_189/save_to_file/keep_custom_tracks": false, +"slice_189/save_to_file/path": "", +"slice_189/start_frame": 0, +"slice_19/end_frame": 0, +"slice_19/loop_mode": 0, +"slice_19/name": "", +"slice_19/save_to_file/enabled": false, +"slice_19/save_to_file/keep_custom_tracks": false, +"slice_19/save_to_file/path": "", +"slice_19/start_frame": 0, +"slice_190/end_frame": 0, +"slice_190/loop_mode": 0, +"slice_190/name": "", +"slice_190/save_to_file/enabled": false, +"slice_190/save_to_file/keep_custom_tracks": false, +"slice_190/save_to_file/path": "", +"slice_190/start_frame": 0, +"slice_191/end_frame": 0, +"slice_191/loop_mode": 0, +"slice_191/name": "", +"slice_191/save_to_file/enabled": false, +"slice_191/save_to_file/keep_custom_tracks": false, +"slice_191/save_to_file/path": "", +"slice_191/start_frame": 0, +"slice_192/end_frame": 0, +"slice_192/loop_mode": 0, +"slice_192/name": "", +"slice_192/save_to_file/enabled": false, +"slice_192/save_to_file/keep_custom_tracks": false, +"slice_192/save_to_file/path": "", +"slice_192/start_frame": 0, +"slice_193/end_frame": 0, +"slice_193/loop_mode": 0, +"slice_193/name": "", +"slice_193/save_to_file/enabled": false, +"slice_193/save_to_file/keep_custom_tracks": false, +"slice_193/save_to_file/path": "", +"slice_193/start_frame": 0, +"slice_194/end_frame": 0, +"slice_194/loop_mode": 0, +"slice_194/name": "", +"slice_194/save_to_file/enabled": false, +"slice_194/save_to_file/keep_custom_tracks": false, +"slice_194/save_to_file/path": "", +"slice_194/start_frame": 0, +"slice_195/end_frame": 0, +"slice_195/loop_mode": 0, +"slice_195/name": "", +"slice_195/save_to_file/enabled": false, +"slice_195/save_to_file/keep_custom_tracks": false, +"slice_195/save_to_file/path": "", +"slice_195/start_frame": 0, +"slice_196/end_frame": 0, +"slice_196/loop_mode": 0, +"slice_196/name": "", +"slice_196/save_to_file/enabled": false, +"slice_196/save_to_file/keep_custom_tracks": false, +"slice_196/save_to_file/path": "", +"slice_196/start_frame": 0, +"slice_197/end_frame": 0, +"slice_197/loop_mode": 0, +"slice_197/name": "", +"slice_197/save_to_file/enabled": false, +"slice_197/save_to_file/keep_custom_tracks": false, +"slice_197/save_to_file/path": "", +"slice_197/start_frame": 0, +"slice_198/end_frame": 0, +"slice_198/loop_mode": 0, +"slice_198/name": "", +"slice_198/save_to_file/enabled": false, +"slice_198/save_to_file/keep_custom_tracks": false, +"slice_198/save_to_file/path": "", +"slice_198/start_frame": 0, +"slice_199/end_frame": 0, +"slice_199/loop_mode": 0, +"slice_199/name": "", +"slice_199/save_to_file/enabled": false, +"slice_199/save_to_file/keep_custom_tracks": false, +"slice_199/save_to_file/path": "", +"slice_199/start_frame": 0, +"slice_2/end_frame": 0, +"slice_2/loop_mode": 0, +"slice_2/name": "", +"slice_2/save_to_file/enabled": false, +"slice_2/save_to_file/keep_custom_tracks": false, +"slice_2/save_to_file/path": "", +"slice_2/start_frame": 0, +"slice_20/end_frame": 0, +"slice_20/loop_mode": 0, +"slice_20/name": "", +"slice_20/save_to_file/enabled": false, +"slice_20/save_to_file/keep_custom_tracks": false, +"slice_20/save_to_file/path": "", +"slice_20/start_frame": 0, +"slice_200/end_frame": 0, +"slice_200/loop_mode": 0, +"slice_200/name": "", +"slice_200/save_to_file/enabled": false, +"slice_200/save_to_file/keep_custom_tracks": false, +"slice_200/save_to_file/path": "", +"slice_200/start_frame": 0, +"slice_201/end_frame": 0, +"slice_201/loop_mode": 0, +"slice_201/name": "", +"slice_201/save_to_file/enabled": false, +"slice_201/save_to_file/keep_custom_tracks": false, +"slice_201/save_to_file/path": "", +"slice_201/start_frame": 0, +"slice_202/end_frame": 0, +"slice_202/loop_mode": 0, +"slice_202/name": "", +"slice_202/save_to_file/enabled": false, +"slice_202/save_to_file/keep_custom_tracks": false, +"slice_202/save_to_file/path": "", +"slice_202/start_frame": 0, +"slice_203/end_frame": 0, +"slice_203/loop_mode": 0, +"slice_203/name": "", +"slice_203/save_to_file/enabled": false, +"slice_203/save_to_file/keep_custom_tracks": false, +"slice_203/save_to_file/path": "", +"slice_203/start_frame": 0, +"slice_204/end_frame": 0, +"slice_204/loop_mode": 0, +"slice_204/name": "", +"slice_204/save_to_file/enabled": false, +"slice_204/save_to_file/keep_custom_tracks": false, +"slice_204/save_to_file/path": "", +"slice_204/start_frame": 0, +"slice_205/end_frame": 0, +"slice_205/loop_mode": 0, +"slice_205/name": "", +"slice_205/save_to_file/enabled": false, +"slice_205/save_to_file/keep_custom_tracks": false, +"slice_205/save_to_file/path": "", +"slice_205/start_frame": 0, +"slice_206/end_frame": 0, +"slice_206/loop_mode": 0, +"slice_206/name": "", +"slice_206/save_to_file/enabled": false, +"slice_206/save_to_file/keep_custom_tracks": false, +"slice_206/save_to_file/path": "", +"slice_206/start_frame": 0, +"slice_207/end_frame": 0, +"slice_207/loop_mode": 0, +"slice_207/name": "", +"slice_207/save_to_file/enabled": false, +"slice_207/save_to_file/keep_custom_tracks": false, +"slice_207/save_to_file/path": "", +"slice_207/start_frame": 0, +"slice_208/end_frame": 0, +"slice_208/loop_mode": 0, +"slice_208/name": "", +"slice_208/save_to_file/enabled": false, +"slice_208/save_to_file/keep_custom_tracks": false, +"slice_208/save_to_file/path": "", +"slice_208/start_frame": 0, +"slice_209/end_frame": 0, +"slice_209/loop_mode": 0, +"slice_209/name": "", +"slice_209/save_to_file/enabled": false, +"slice_209/save_to_file/keep_custom_tracks": false, +"slice_209/save_to_file/path": "", +"slice_209/start_frame": 0, +"slice_21/end_frame": 0, +"slice_21/loop_mode": 0, +"slice_21/name": "", +"slice_21/save_to_file/enabled": false, +"slice_21/save_to_file/keep_custom_tracks": false, +"slice_21/save_to_file/path": "", +"slice_21/start_frame": 0, +"slice_210/end_frame": 0, +"slice_210/loop_mode": 0, +"slice_210/name": "", +"slice_210/save_to_file/enabled": false, +"slice_210/save_to_file/keep_custom_tracks": false, +"slice_210/save_to_file/path": "", +"slice_210/start_frame": 0, +"slice_211/end_frame": 0, +"slice_211/loop_mode": 0, +"slice_211/name": "", +"slice_211/save_to_file/enabled": false, +"slice_211/save_to_file/keep_custom_tracks": false, +"slice_211/save_to_file/path": "", +"slice_211/start_frame": 0, +"slice_212/end_frame": 0, +"slice_212/loop_mode": 0, +"slice_212/name": "", +"slice_212/save_to_file/enabled": false, +"slice_212/save_to_file/keep_custom_tracks": false, +"slice_212/save_to_file/path": "", +"slice_212/start_frame": 0, +"slice_213/end_frame": 0, +"slice_213/loop_mode": 0, +"slice_213/name": "", +"slice_213/save_to_file/enabled": false, +"slice_213/save_to_file/keep_custom_tracks": false, +"slice_213/save_to_file/path": "", +"slice_213/start_frame": 0, +"slice_214/end_frame": 0, +"slice_214/loop_mode": 0, +"slice_214/name": "", +"slice_214/save_to_file/enabled": false, +"slice_214/save_to_file/keep_custom_tracks": false, +"slice_214/save_to_file/path": "", +"slice_214/start_frame": 0, +"slice_215/end_frame": 0, +"slice_215/loop_mode": 0, +"slice_215/name": "", +"slice_215/save_to_file/enabled": false, +"slice_215/save_to_file/keep_custom_tracks": false, +"slice_215/save_to_file/path": "", +"slice_215/start_frame": 0, +"slice_216/end_frame": 0, +"slice_216/loop_mode": 0, +"slice_216/name": "", +"slice_216/save_to_file/enabled": false, +"slice_216/save_to_file/keep_custom_tracks": false, +"slice_216/save_to_file/path": "", +"slice_216/start_frame": 0, +"slice_217/end_frame": 0, +"slice_217/loop_mode": 0, +"slice_217/name": "", +"slice_217/save_to_file/enabled": false, +"slice_217/save_to_file/keep_custom_tracks": false, +"slice_217/save_to_file/path": "", +"slice_217/start_frame": 0, +"slice_218/end_frame": 0, +"slice_218/loop_mode": 0, +"slice_218/name": "", +"slice_218/save_to_file/enabled": false, +"slice_218/save_to_file/keep_custom_tracks": false, +"slice_218/save_to_file/path": "", +"slice_218/start_frame": 0, +"slice_219/end_frame": 0, +"slice_219/loop_mode": 0, +"slice_219/name": "", +"slice_219/save_to_file/enabled": false, +"slice_219/save_to_file/keep_custom_tracks": false, +"slice_219/save_to_file/path": "", +"slice_219/start_frame": 0, +"slice_22/end_frame": 0, +"slice_22/loop_mode": 0, +"slice_22/name": "", +"slice_22/save_to_file/enabled": false, +"slice_22/save_to_file/keep_custom_tracks": false, +"slice_22/save_to_file/path": "", +"slice_22/start_frame": 0, +"slice_220/end_frame": 0, +"slice_220/loop_mode": 0, +"slice_220/name": "", +"slice_220/save_to_file/enabled": false, +"slice_220/save_to_file/keep_custom_tracks": false, +"slice_220/save_to_file/path": "", +"slice_220/start_frame": 0, +"slice_221/end_frame": 0, +"slice_221/loop_mode": 0, +"slice_221/name": "", +"slice_221/save_to_file/enabled": false, +"slice_221/save_to_file/keep_custom_tracks": false, +"slice_221/save_to_file/path": "", +"slice_221/start_frame": 0, +"slice_222/end_frame": 0, +"slice_222/loop_mode": 0, +"slice_222/name": "", +"slice_222/save_to_file/enabled": false, +"slice_222/save_to_file/keep_custom_tracks": false, +"slice_222/save_to_file/path": "", +"slice_222/start_frame": 0, +"slice_223/end_frame": 0, +"slice_223/loop_mode": 0, +"slice_223/name": "", +"slice_223/save_to_file/enabled": false, +"slice_223/save_to_file/keep_custom_tracks": false, +"slice_223/save_to_file/path": "", +"slice_223/start_frame": 0, +"slice_224/end_frame": 0, +"slice_224/loop_mode": 0, +"slice_224/name": "", +"slice_224/save_to_file/enabled": false, +"slice_224/save_to_file/keep_custom_tracks": false, +"slice_224/save_to_file/path": "", +"slice_224/start_frame": 0, +"slice_225/end_frame": 0, +"slice_225/loop_mode": 0, +"slice_225/name": "", +"slice_225/save_to_file/enabled": false, +"slice_225/save_to_file/keep_custom_tracks": false, +"slice_225/save_to_file/path": "", +"slice_225/start_frame": 0, +"slice_226/end_frame": 0, +"slice_226/loop_mode": 0, +"slice_226/name": "", +"slice_226/save_to_file/enabled": false, +"slice_226/save_to_file/keep_custom_tracks": false, +"slice_226/save_to_file/path": "", +"slice_226/start_frame": 0, +"slice_227/end_frame": 0, +"slice_227/loop_mode": 0, +"slice_227/name": "", +"slice_227/save_to_file/enabled": false, +"slice_227/save_to_file/keep_custom_tracks": false, +"slice_227/save_to_file/path": "", +"slice_227/start_frame": 0, +"slice_228/end_frame": 0, +"slice_228/loop_mode": 0, +"slice_228/name": "", +"slice_228/save_to_file/enabled": false, +"slice_228/save_to_file/keep_custom_tracks": false, +"slice_228/save_to_file/path": "", +"slice_228/start_frame": 0, +"slice_229/end_frame": 0, +"slice_229/loop_mode": 0, +"slice_229/name": "", +"slice_229/save_to_file/enabled": false, +"slice_229/save_to_file/keep_custom_tracks": false, +"slice_229/save_to_file/path": "", +"slice_229/start_frame": 0, +"slice_23/end_frame": 0, +"slice_23/loop_mode": 0, +"slice_23/name": "", +"slice_23/save_to_file/enabled": false, +"slice_23/save_to_file/keep_custom_tracks": false, +"slice_23/save_to_file/path": "", +"slice_23/start_frame": 0, +"slice_230/end_frame": 0, +"slice_230/loop_mode": 0, +"slice_230/name": "", +"slice_230/save_to_file/enabled": false, +"slice_230/save_to_file/keep_custom_tracks": false, +"slice_230/save_to_file/path": "", +"slice_230/start_frame": 0, +"slice_231/end_frame": 0, +"slice_231/loop_mode": 0, +"slice_231/name": "", +"slice_231/save_to_file/enabled": false, +"slice_231/save_to_file/keep_custom_tracks": false, +"slice_231/save_to_file/path": "", +"slice_231/start_frame": 0, +"slice_232/end_frame": 0, +"slice_232/loop_mode": 0, +"slice_232/name": "", +"slice_232/save_to_file/enabled": false, +"slice_232/save_to_file/keep_custom_tracks": false, +"slice_232/save_to_file/path": "", +"slice_232/start_frame": 0, +"slice_233/end_frame": 0, +"slice_233/loop_mode": 0, +"slice_233/name": "", +"slice_233/save_to_file/enabled": false, +"slice_233/save_to_file/keep_custom_tracks": false, +"slice_233/save_to_file/path": "", +"slice_233/start_frame": 0, +"slice_234/end_frame": 0, +"slice_234/loop_mode": 0, +"slice_234/name": "", +"slice_234/save_to_file/enabled": false, +"slice_234/save_to_file/keep_custom_tracks": false, +"slice_234/save_to_file/path": "", +"slice_234/start_frame": 0, +"slice_235/end_frame": 0, +"slice_235/loop_mode": 0, +"slice_235/name": "", +"slice_235/save_to_file/enabled": false, +"slice_235/save_to_file/keep_custom_tracks": false, +"slice_235/save_to_file/path": "", +"slice_235/start_frame": 0, +"slice_236/end_frame": 0, +"slice_236/loop_mode": 0, +"slice_236/name": "", +"slice_236/save_to_file/enabled": false, +"slice_236/save_to_file/keep_custom_tracks": false, +"slice_236/save_to_file/path": "", +"slice_236/start_frame": 0, +"slice_237/end_frame": 0, +"slice_237/loop_mode": 0, +"slice_237/name": "", +"slice_237/save_to_file/enabled": false, +"slice_237/save_to_file/keep_custom_tracks": false, +"slice_237/save_to_file/path": "", +"slice_237/start_frame": 0, +"slice_238/end_frame": 0, +"slice_238/loop_mode": 0, +"slice_238/name": "", +"slice_238/save_to_file/enabled": false, +"slice_238/save_to_file/keep_custom_tracks": false, +"slice_238/save_to_file/path": "", +"slice_238/start_frame": 0, +"slice_239/end_frame": 0, +"slice_239/loop_mode": 0, +"slice_239/name": "", +"slice_239/save_to_file/enabled": false, +"slice_239/save_to_file/keep_custom_tracks": false, +"slice_239/save_to_file/path": "", +"slice_239/start_frame": 0, +"slice_24/end_frame": 0, +"slice_24/loop_mode": 0, +"slice_24/name": "", +"slice_24/save_to_file/enabled": false, +"slice_24/save_to_file/keep_custom_tracks": false, +"slice_24/save_to_file/path": "", +"slice_24/start_frame": 0, +"slice_240/end_frame": 0, +"slice_240/loop_mode": 0, +"slice_240/name": "", +"slice_240/save_to_file/enabled": false, +"slice_240/save_to_file/keep_custom_tracks": false, +"slice_240/save_to_file/path": "", +"slice_240/start_frame": 0, +"slice_241/end_frame": 0, +"slice_241/loop_mode": 0, +"slice_241/name": "", +"slice_241/save_to_file/enabled": false, +"slice_241/save_to_file/keep_custom_tracks": false, +"slice_241/save_to_file/path": "", +"slice_241/start_frame": 0, +"slice_242/end_frame": 0, +"slice_242/loop_mode": 0, +"slice_242/name": "", +"slice_242/save_to_file/enabled": false, +"slice_242/save_to_file/keep_custom_tracks": false, +"slice_242/save_to_file/path": "", +"slice_242/start_frame": 0, +"slice_243/end_frame": 0, +"slice_243/loop_mode": 0, +"slice_243/name": "", +"slice_243/save_to_file/enabled": false, +"slice_243/save_to_file/keep_custom_tracks": false, +"slice_243/save_to_file/path": "", +"slice_243/start_frame": 0, +"slice_244/end_frame": 0, +"slice_244/loop_mode": 0, +"slice_244/name": "", +"slice_244/save_to_file/enabled": false, +"slice_244/save_to_file/keep_custom_tracks": false, +"slice_244/save_to_file/path": "", +"slice_244/start_frame": 0, +"slice_245/end_frame": 0, +"slice_245/loop_mode": 0, +"slice_245/name": "", +"slice_245/save_to_file/enabled": false, +"slice_245/save_to_file/keep_custom_tracks": false, +"slice_245/save_to_file/path": "", +"slice_245/start_frame": 0, +"slice_246/end_frame": 0, +"slice_246/loop_mode": 0, +"slice_246/name": "", +"slice_246/save_to_file/enabled": false, +"slice_246/save_to_file/keep_custom_tracks": false, +"slice_246/save_to_file/path": "", +"slice_246/start_frame": 0, +"slice_247/end_frame": 0, +"slice_247/loop_mode": 0, +"slice_247/name": "", +"slice_247/save_to_file/enabled": false, +"slice_247/save_to_file/keep_custom_tracks": false, +"slice_247/save_to_file/path": "", +"slice_247/start_frame": 0, +"slice_248/end_frame": 0, +"slice_248/loop_mode": 0, +"slice_248/name": "", +"slice_248/save_to_file/enabled": false, +"slice_248/save_to_file/keep_custom_tracks": false, +"slice_248/save_to_file/path": "", +"slice_248/start_frame": 0, +"slice_249/end_frame": 0, +"slice_249/loop_mode": 0, +"slice_249/name": "", +"slice_249/save_to_file/enabled": false, +"slice_249/save_to_file/keep_custom_tracks": false, +"slice_249/save_to_file/path": "", +"slice_249/start_frame": 0, +"slice_25/end_frame": 0, +"slice_25/loop_mode": 0, +"slice_25/name": "", +"slice_25/save_to_file/enabled": false, +"slice_25/save_to_file/keep_custom_tracks": false, +"slice_25/save_to_file/path": "", +"slice_25/start_frame": 0, +"slice_250/end_frame": 0, +"slice_250/loop_mode": 0, +"slice_250/name": "", +"slice_250/save_to_file/enabled": false, +"slice_250/save_to_file/keep_custom_tracks": false, +"slice_250/save_to_file/path": "", +"slice_250/start_frame": 0, +"slice_251/end_frame": 0, +"slice_251/loop_mode": 0, +"slice_251/name": "", +"slice_251/save_to_file/enabled": false, +"slice_251/save_to_file/keep_custom_tracks": false, +"slice_251/save_to_file/path": "", +"slice_251/start_frame": 0, +"slice_252/end_frame": 0, +"slice_252/loop_mode": 0, +"slice_252/name": "", +"slice_252/save_to_file/enabled": false, +"slice_252/save_to_file/keep_custom_tracks": false, +"slice_252/save_to_file/path": "", +"slice_252/start_frame": 0, +"slice_253/end_frame": 0, +"slice_253/loop_mode": 0, +"slice_253/name": "", +"slice_253/save_to_file/enabled": false, +"slice_253/save_to_file/keep_custom_tracks": false, +"slice_253/save_to_file/path": "", +"slice_253/start_frame": 0, +"slice_254/end_frame": 0, +"slice_254/loop_mode": 0, +"slice_254/name": "", +"slice_254/save_to_file/enabled": false, +"slice_254/save_to_file/keep_custom_tracks": false, +"slice_254/save_to_file/path": "", +"slice_254/start_frame": 0, +"slice_255/end_frame": 0, +"slice_255/loop_mode": 0, +"slice_255/name": "", +"slice_255/save_to_file/enabled": false, +"slice_255/save_to_file/keep_custom_tracks": false, +"slice_255/save_to_file/path": "", +"slice_255/start_frame": 0, +"slice_256/end_frame": 0, +"slice_256/loop_mode": 0, +"slice_256/name": "", +"slice_256/save_to_file/enabled": false, +"slice_256/save_to_file/keep_custom_tracks": false, +"slice_256/save_to_file/path": "", +"slice_256/start_frame": 0, +"slice_26/end_frame": 0, +"slice_26/loop_mode": 0, +"slice_26/name": "", +"slice_26/save_to_file/enabled": false, +"slice_26/save_to_file/keep_custom_tracks": false, +"slice_26/save_to_file/path": "", +"slice_26/start_frame": 0, +"slice_27/end_frame": 0, +"slice_27/loop_mode": 0, +"slice_27/name": "", +"slice_27/save_to_file/enabled": false, +"slice_27/save_to_file/keep_custom_tracks": false, +"slice_27/save_to_file/path": "", +"slice_27/start_frame": 0, +"slice_28/end_frame": 0, +"slice_28/loop_mode": 0, +"slice_28/name": "", +"slice_28/save_to_file/enabled": false, +"slice_28/save_to_file/keep_custom_tracks": false, +"slice_28/save_to_file/path": "", +"slice_28/start_frame": 0, +"slice_29/end_frame": 0, +"slice_29/loop_mode": 0, +"slice_29/name": "", +"slice_29/save_to_file/enabled": false, +"slice_29/save_to_file/keep_custom_tracks": false, +"slice_29/save_to_file/path": "", +"slice_29/start_frame": 0, +"slice_3/end_frame": 0, +"slice_3/loop_mode": 0, +"slice_3/name": "", +"slice_3/save_to_file/enabled": false, +"slice_3/save_to_file/keep_custom_tracks": false, +"slice_3/save_to_file/path": "", +"slice_3/start_frame": 0, +"slice_30/end_frame": 0, +"slice_30/loop_mode": 0, +"slice_30/name": "", +"slice_30/save_to_file/enabled": false, +"slice_30/save_to_file/keep_custom_tracks": false, +"slice_30/save_to_file/path": "", +"slice_30/start_frame": 0, +"slice_31/end_frame": 0, +"slice_31/loop_mode": 0, +"slice_31/name": "", +"slice_31/save_to_file/enabled": false, +"slice_31/save_to_file/keep_custom_tracks": false, +"slice_31/save_to_file/path": "", +"slice_31/start_frame": 0, +"slice_32/end_frame": 0, +"slice_32/loop_mode": 0, +"slice_32/name": "", +"slice_32/save_to_file/enabled": false, +"slice_32/save_to_file/keep_custom_tracks": false, +"slice_32/save_to_file/path": "", +"slice_32/start_frame": 0, +"slice_33/end_frame": 0, +"slice_33/loop_mode": 0, +"slice_33/name": "", +"slice_33/save_to_file/enabled": false, +"slice_33/save_to_file/keep_custom_tracks": false, +"slice_33/save_to_file/path": "", +"slice_33/start_frame": 0, +"slice_34/end_frame": 0, +"slice_34/loop_mode": 0, +"slice_34/name": "", +"slice_34/save_to_file/enabled": false, +"slice_34/save_to_file/keep_custom_tracks": false, +"slice_34/save_to_file/path": "", +"slice_34/start_frame": 0, +"slice_35/end_frame": 0, +"slice_35/loop_mode": 0, +"slice_35/name": "", +"slice_35/save_to_file/enabled": false, +"slice_35/save_to_file/keep_custom_tracks": false, +"slice_35/save_to_file/path": "", +"slice_35/start_frame": 0, +"slice_36/end_frame": 0, +"slice_36/loop_mode": 0, +"slice_36/name": "", +"slice_36/save_to_file/enabled": false, +"slice_36/save_to_file/keep_custom_tracks": false, +"slice_36/save_to_file/path": "", +"slice_36/start_frame": 0, +"slice_37/end_frame": 0, +"slice_37/loop_mode": 0, +"slice_37/name": "", +"slice_37/save_to_file/enabled": false, +"slice_37/save_to_file/keep_custom_tracks": false, +"slice_37/save_to_file/path": "", +"slice_37/start_frame": 0, +"slice_38/end_frame": 0, +"slice_38/loop_mode": 0, +"slice_38/name": "", +"slice_38/save_to_file/enabled": false, +"slice_38/save_to_file/keep_custom_tracks": false, +"slice_38/save_to_file/path": "", +"slice_38/start_frame": 0, +"slice_39/end_frame": 0, +"slice_39/loop_mode": 0, +"slice_39/name": "", +"slice_39/save_to_file/enabled": false, +"slice_39/save_to_file/keep_custom_tracks": false, +"slice_39/save_to_file/path": "", +"slice_39/start_frame": 0, +"slice_4/end_frame": 0, +"slice_4/loop_mode": 0, +"slice_4/name": "", +"slice_4/save_to_file/enabled": false, +"slice_4/save_to_file/keep_custom_tracks": false, +"slice_4/save_to_file/path": "", +"slice_4/start_frame": 0, +"slice_40/end_frame": 0, +"slice_40/loop_mode": 0, +"slice_40/name": "", +"slice_40/save_to_file/enabled": false, +"slice_40/save_to_file/keep_custom_tracks": false, +"slice_40/save_to_file/path": "", +"slice_40/start_frame": 0, +"slice_41/end_frame": 0, +"slice_41/loop_mode": 0, +"slice_41/name": "", +"slice_41/save_to_file/enabled": false, +"slice_41/save_to_file/keep_custom_tracks": false, +"slice_41/save_to_file/path": "", +"slice_41/start_frame": 0, +"slice_42/end_frame": 0, +"slice_42/loop_mode": 0, +"slice_42/name": "", +"slice_42/save_to_file/enabled": false, +"slice_42/save_to_file/keep_custom_tracks": false, +"slice_42/save_to_file/path": "", +"slice_42/start_frame": 0, +"slice_43/end_frame": 0, +"slice_43/loop_mode": 0, +"slice_43/name": "", +"slice_43/save_to_file/enabled": false, +"slice_43/save_to_file/keep_custom_tracks": false, +"slice_43/save_to_file/path": "", +"slice_43/start_frame": 0, +"slice_44/end_frame": 0, +"slice_44/loop_mode": 0, +"slice_44/name": "", +"slice_44/save_to_file/enabled": false, +"slice_44/save_to_file/keep_custom_tracks": false, +"slice_44/save_to_file/path": "", +"slice_44/start_frame": 0, +"slice_45/end_frame": 0, +"slice_45/loop_mode": 0, +"slice_45/name": "", +"slice_45/save_to_file/enabled": false, +"slice_45/save_to_file/keep_custom_tracks": false, +"slice_45/save_to_file/path": "", +"slice_45/start_frame": 0, +"slice_46/end_frame": 0, +"slice_46/loop_mode": 0, +"slice_46/name": "", +"slice_46/save_to_file/enabled": false, +"slice_46/save_to_file/keep_custom_tracks": false, +"slice_46/save_to_file/path": "", +"slice_46/start_frame": 0, +"slice_47/end_frame": 0, +"slice_47/loop_mode": 0, +"slice_47/name": "", +"slice_47/save_to_file/enabled": false, +"slice_47/save_to_file/keep_custom_tracks": false, +"slice_47/save_to_file/path": "", +"slice_47/start_frame": 0, +"slice_48/end_frame": 0, +"slice_48/loop_mode": 0, +"slice_48/name": "", +"slice_48/save_to_file/enabled": false, +"slice_48/save_to_file/keep_custom_tracks": false, +"slice_48/save_to_file/path": "", +"slice_48/start_frame": 0, +"slice_49/end_frame": 0, +"slice_49/loop_mode": 0, +"slice_49/name": "", +"slice_49/save_to_file/enabled": false, +"slice_49/save_to_file/keep_custom_tracks": false, +"slice_49/save_to_file/path": "", +"slice_49/start_frame": 0, +"slice_5/end_frame": 0, +"slice_5/loop_mode": 0, +"slice_5/name": "", +"slice_5/save_to_file/enabled": false, +"slice_5/save_to_file/keep_custom_tracks": false, +"slice_5/save_to_file/path": "", +"slice_5/start_frame": 0, +"slice_50/end_frame": 0, +"slice_50/loop_mode": 0, +"slice_50/name": "", +"slice_50/save_to_file/enabled": false, +"slice_50/save_to_file/keep_custom_tracks": false, +"slice_50/save_to_file/path": "", +"slice_50/start_frame": 0, +"slice_51/end_frame": 0, +"slice_51/loop_mode": 0, +"slice_51/name": "", +"slice_51/save_to_file/enabled": false, +"slice_51/save_to_file/keep_custom_tracks": false, +"slice_51/save_to_file/path": "", +"slice_51/start_frame": 0, +"slice_52/end_frame": 0, +"slice_52/loop_mode": 0, +"slice_52/name": "", +"slice_52/save_to_file/enabled": false, +"slice_52/save_to_file/keep_custom_tracks": false, +"slice_52/save_to_file/path": "", +"slice_52/start_frame": 0, +"slice_53/end_frame": 0, +"slice_53/loop_mode": 0, +"slice_53/name": "", +"slice_53/save_to_file/enabled": false, +"slice_53/save_to_file/keep_custom_tracks": false, +"slice_53/save_to_file/path": "", +"slice_53/start_frame": 0, +"slice_54/end_frame": 0, +"slice_54/loop_mode": 0, +"slice_54/name": "", +"slice_54/save_to_file/enabled": false, +"slice_54/save_to_file/keep_custom_tracks": false, +"slice_54/save_to_file/path": "", +"slice_54/start_frame": 0, +"slice_55/end_frame": 0, +"slice_55/loop_mode": 0, +"slice_55/name": "", +"slice_55/save_to_file/enabled": false, +"slice_55/save_to_file/keep_custom_tracks": false, +"slice_55/save_to_file/path": "", +"slice_55/start_frame": 0, +"slice_56/end_frame": 0, +"slice_56/loop_mode": 0, +"slice_56/name": "", +"slice_56/save_to_file/enabled": false, +"slice_56/save_to_file/keep_custom_tracks": false, +"slice_56/save_to_file/path": "", +"slice_56/start_frame": 0, +"slice_57/end_frame": 0, +"slice_57/loop_mode": 0, +"slice_57/name": "", +"slice_57/save_to_file/enabled": false, +"slice_57/save_to_file/keep_custom_tracks": false, +"slice_57/save_to_file/path": "", +"slice_57/start_frame": 0, +"slice_58/end_frame": 0, +"slice_58/loop_mode": 0, +"slice_58/name": "", +"slice_58/save_to_file/enabled": false, +"slice_58/save_to_file/keep_custom_tracks": false, +"slice_58/save_to_file/path": "", +"slice_58/start_frame": 0, +"slice_59/end_frame": 0, +"slice_59/loop_mode": 0, +"slice_59/name": "", +"slice_59/save_to_file/enabled": false, +"slice_59/save_to_file/keep_custom_tracks": false, +"slice_59/save_to_file/path": "", +"slice_59/start_frame": 0, +"slice_6/end_frame": 0, +"slice_6/loop_mode": 0, +"slice_6/name": "", +"slice_6/save_to_file/enabled": false, +"slice_6/save_to_file/keep_custom_tracks": false, +"slice_6/save_to_file/path": "", +"slice_6/start_frame": 0, +"slice_60/end_frame": 0, +"slice_60/loop_mode": 0, +"slice_60/name": "", +"slice_60/save_to_file/enabled": false, +"slice_60/save_to_file/keep_custom_tracks": false, +"slice_60/save_to_file/path": "", +"slice_60/start_frame": 0, +"slice_61/end_frame": 0, +"slice_61/loop_mode": 0, +"slice_61/name": "", +"slice_61/save_to_file/enabled": false, +"slice_61/save_to_file/keep_custom_tracks": false, +"slice_61/save_to_file/path": "", +"slice_61/start_frame": 0, +"slice_62/end_frame": 0, +"slice_62/loop_mode": 0, +"slice_62/name": "", +"slice_62/save_to_file/enabled": false, +"slice_62/save_to_file/keep_custom_tracks": false, +"slice_62/save_to_file/path": "", +"slice_62/start_frame": 0, +"slice_63/end_frame": 0, +"slice_63/loop_mode": 0, +"slice_63/name": "", +"slice_63/save_to_file/enabled": false, +"slice_63/save_to_file/keep_custom_tracks": false, +"slice_63/save_to_file/path": "", +"slice_63/start_frame": 0, +"slice_64/end_frame": 0, +"slice_64/loop_mode": 0, +"slice_64/name": "", +"slice_64/save_to_file/enabled": false, +"slice_64/save_to_file/keep_custom_tracks": false, +"slice_64/save_to_file/path": "", +"slice_64/start_frame": 0, +"slice_65/end_frame": 0, +"slice_65/loop_mode": 0, +"slice_65/name": "", +"slice_65/save_to_file/enabled": false, +"slice_65/save_to_file/keep_custom_tracks": false, +"slice_65/save_to_file/path": "", +"slice_65/start_frame": 0, +"slice_66/end_frame": 0, +"slice_66/loop_mode": 0, +"slice_66/name": "", +"slice_66/save_to_file/enabled": false, +"slice_66/save_to_file/keep_custom_tracks": false, +"slice_66/save_to_file/path": "", +"slice_66/start_frame": 0, +"slice_67/end_frame": 0, +"slice_67/loop_mode": 0, +"slice_67/name": "", +"slice_67/save_to_file/enabled": false, +"slice_67/save_to_file/keep_custom_tracks": false, +"slice_67/save_to_file/path": "", +"slice_67/start_frame": 0, +"slice_68/end_frame": 0, +"slice_68/loop_mode": 0, +"slice_68/name": "", +"slice_68/save_to_file/enabled": false, +"slice_68/save_to_file/keep_custom_tracks": false, +"slice_68/save_to_file/path": "", +"slice_68/start_frame": 0, +"slice_69/end_frame": 0, +"slice_69/loop_mode": 0, +"slice_69/name": "", +"slice_69/save_to_file/enabled": false, +"slice_69/save_to_file/keep_custom_tracks": false, +"slice_69/save_to_file/path": "", +"slice_69/start_frame": 0, +"slice_7/end_frame": 0, +"slice_7/loop_mode": 0, +"slice_7/name": "", +"slice_7/save_to_file/enabled": false, +"slice_7/save_to_file/keep_custom_tracks": false, +"slice_7/save_to_file/path": "", +"slice_7/start_frame": 0, +"slice_70/end_frame": 0, +"slice_70/loop_mode": 0, +"slice_70/name": "", +"slice_70/save_to_file/enabled": false, +"slice_70/save_to_file/keep_custom_tracks": false, +"slice_70/save_to_file/path": "", +"slice_70/start_frame": 0, +"slice_71/end_frame": 0, +"slice_71/loop_mode": 0, +"slice_71/name": "", +"slice_71/save_to_file/enabled": false, +"slice_71/save_to_file/keep_custom_tracks": false, +"slice_71/save_to_file/path": "", +"slice_71/start_frame": 0, +"slice_72/end_frame": 0, +"slice_72/loop_mode": 0, +"slice_72/name": "", +"slice_72/save_to_file/enabled": false, +"slice_72/save_to_file/keep_custom_tracks": false, +"slice_72/save_to_file/path": "", +"slice_72/start_frame": 0, +"slice_73/end_frame": 0, +"slice_73/loop_mode": 0, +"slice_73/name": "", +"slice_73/save_to_file/enabled": false, +"slice_73/save_to_file/keep_custom_tracks": false, +"slice_73/save_to_file/path": "", +"slice_73/start_frame": 0, +"slice_74/end_frame": 0, +"slice_74/loop_mode": 0, +"slice_74/name": "", +"slice_74/save_to_file/enabled": false, +"slice_74/save_to_file/keep_custom_tracks": false, +"slice_74/save_to_file/path": "", +"slice_74/start_frame": 0, +"slice_75/end_frame": 0, +"slice_75/loop_mode": 0, +"slice_75/name": "", +"slice_75/save_to_file/enabled": false, +"slice_75/save_to_file/keep_custom_tracks": false, +"slice_75/save_to_file/path": "", +"slice_75/start_frame": 0, +"slice_76/end_frame": 0, +"slice_76/loop_mode": 0, +"slice_76/name": "", +"slice_76/save_to_file/enabled": false, +"slice_76/save_to_file/keep_custom_tracks": false, +"slice_76/save_to_file/path": "", +"slice_76/start_frame": 0, +"slice_77/end_frame": 0, +"slice_77/loop_mode": 0, +"slice_77/name": "", +"slice_77/save_to_file/enabled": false, +"slice_77/save_to_file/keep_custom_tracks": false, +"slice_77/save_to_file/path": "", +"slice_77/start_frame": 0, +"slice_78/end_frame": 0, +"slice_78/loop_mode": 0, +"slice_78/name": "", +"slice_78/save_to_file/enabled": false, +"slice_78/save_to_file/keep_custom_tracks": false, +"slice_78/save_to_file/path": "", +"slice_78/start_frame": 0, +"slice_79/end_frame": 0, +"slice_79/loop_mode": 0, +"slice_79/name": "", +"slice_79/save_to_file/enabled": false, +"slice_79/save_to_file/keep_custom_tracks": false, +"slice_79/save_to_file/path": "", +"slice_79/start_frame": 0, +"slice_8/end_frame": 0, +"slice_8/loop_mode": 0, +"slice_8/name": "", +"slice_8/save_to_file/enabled": false, +"slice_8/save_to_file/keep_custom_tracks": false, +"slice_8/save_to_file/path": "", +"slice_8/start_frame": 0, +"slice_80/end_frame": 0, +"slice_80/loop_mode": 0, +"slice_80/name": "", +"slice_80/save_to_file/enabled": false, +"slice_80/save_to_file/keep_custom_tracks": false, +"slice_80/save_to_file/path": "", +"slice_80/start_frame": 0, +"slice_81/end_frame": 0, +"slice_81/loop_mode": 0, +"slice_81/name": "", +"slice_81/save_to_file/enabled": false, +"slice_81/save_to_file/keep_custom_tracks": false, +"slice_81/save_to_file/path": "", +"slice_81/start_frame": 0, +"slice_82/end_frame": 0, +"slice_82/loop_mode": 0, +"slice_82/name": "", +"slice_82/save_to_file/enabled": false, +"slice_82/save_to_file/keep_custom_tracks": false, +"slice_82/save_to_file/path": "", +"slice_82/start_frame": 0, +"slice_83/end_frame": 0, +"slice_83/loop_mode": 0, +"slice_83/name": "", +"slice_83/save_to_file/enabled": false, +"slice_83/save_to_file/keep_custom_tracks": false, +"slice_83/save_to_file/path": "", +"slice_83/start_frame": 0, +"slice_84/end_frame": 0, +"slice_84/loop_mode": 0, +"slice_84/name": "", +"slice_84/save_to_file/enabled": false, +"slice_84/save_to_file/keep_custom_tracks": false, +"slice_84/save_to_file/path": "", +"slice_84/start_frame": 0, +"slice_85/end_frame": 0, +"slice_85/loop_mode": 0, +"slice_85/name": "", +"slice_85/save_to_file/enabled": false, +"slice_85/save_to_file/keep_custom_tracks": false, +"slice_85/save_to_file/path": "", +"slice_85/start_frame": 0, +"slice_86/end_frame": 0, +"slice_86/loop_mode": 0, +"slice_86/name": "", +"slice_86/save_to_file/enabled": false, +"slice_86/save_to_file/keep_custom_tracks": false, +"slice_86/save_to_file/path": "", +"slice_86/start_frame": 0, +"slice_87/end_frame": 0, +"slice_87/loop_mode": 0, +"slice_87/name": "", +"slice_87/save_to_file/enabled": false, +"slice_87/save_to_file/keep_custom_tracks": false, +"slice_87/save_to_file/path": "", +"slice_87/start_frame": 0, +"slice_88/end_frame": 0, +"slice_88/loop_mode": 0, +"slice_88/name": "", +"slice_88/save_to_file/enabled": false, +"slice_88/save_to_file/keep_custom_tracks": false, +"slice_88/save_to_file/path": "", +"slice_88/start_frame": 0, +"slice_89/end_frame": 0, +"slice_89/loop_mode": 0, +"slice_89/name": "", +"slice_89/save_to_file/enabled": false, +"slice_89/save_to_file/keep_custom_tracks": false, +"slice_89/save_to_file/path": "", +"slice_89/start_frame": 0, +"slice_9/end_frame": 0, +"slice_9/loop_mode": 0, +"slice_9/name": "", +"slice_9/save_to_file/enabled": false, +"slice_9/save_to_file/keep_custom_tracks": false, +"slice_9/save_to_file/path": "", +"slice_9/start_frame": 0, +"slice_90/end_frame": 0, +"slice_90/loop_mode": 0, +"slice_90/name": "", +"slice_90/save_to_file/enabled": false, +"slice_90/save_to_file/keep_custom_tracks": false, +"slice_90/save_to_file/path": "", +"slice_90/start_frame": 0, +"slice_91/end_frame": 0, +"slice_91/loop_mode": 0, +"slice_91/name": "", +"slice_91/save_to_file/enabled": false, +"slice_91/save_to_file/keep_custom_tracks": false, +"slice_91/save_to_file/path": "", +"slice_91/start_frame": 0, +"slice_92/end_frame": 0, +"slice_92/loop_mode": 0, +"slice_92/name": "", +"slice_92/save_to_file/enabled": false, +"slice_92/save_to_file/keep_custom_tracks": false, +"slice_92/save_to_file/path": "", +"slice_92/start_frame": 0, +"slice_93/end_frame": 0, +"slice_93/loop_mode": 0, +"slice_93/name": "", +"slice_93/save_to_file/enabled": false, +"slice_93/save_to_file/keep_custom_tracks": false, +"slice_93/save_to_file/path": "", +"slice_93/start_frame": 0, +"slice_94/end_frame": 0, +"slice_94/loop_mode": 0, +"slice_94/name": "", +"slice_94/save_to_file/enabled": false, +"slice_94/save_to_file/keep_custom_tracks": false, +"slice_94/save_to_file/path": "", +"slice_94/start_frame": 0, +"slice_95/end_frame": 0, +"slice_95/loop_mode": 0, +"slice_95/name": "", +"slice_95/save_to_file/enabled": false, +"slice_95/save_to_file/keep_custom_tracks": false, +"slice_95/save_to_file/path": "", +"slice_95/start_frame": 0, +"slice_96/end_frame": 0, +"slice_96/loop_mode": 0, +"slice_96/name": "", +"slice_96/save_to_file/enabled": false, +"slice_96/save_to_file/keep_custom_tracks": false, +"slice_96/save_to_file/path": "", +"slice_96/start_frame": 0, +"slice_97/end_frame": 0, +"slice_97/loop_mode": 0, +"slice_97/name": "", +"slice_97/save_to_file/enabled": false, +"slice_97/save_to_file/keep_custom_tracks": false, +"slice_97/save_to_file/path": "", +"slice_97/start_frame": 0, +"slice_98/end_frame": 0, +"slice_98/loop_mode": 0, +"slice_98/name": "", +"slice_98/save_to_file/enabled": false, +"slice_98/save_to_file/keep_custom_tracks": false, +"slice_98/save_to_file/path": "", +"slice_98/start_frame": 0, +"slice_99/end_frame": 0, +"slice_99/loop_mode": 0, +"slice_99/name": "", +"slice_99/save_to_file/enabled": false, +"slice_99/save_to_file/keep_custom_tracks": false, +"slice_99/save_to_file/path": "", +"slice_99/start_frame": 0, +"slices/amount": null }, "run": { "settings/loop_mode": 1 @@ -43,7 +1838,1800 @@ _subresources={ "save_to_file/enabled": false, "save_to_file/keep_custom_tracks": "", "save_to_file/path": "", -"settings/loop_mode": 1 +"settings/loop_mode": 1, +"slice_1/end_frame": 0, +"slice_1/loop_mode": 0, +"slice_1/name": "", +"slice_1/save_to_file/enabled": false, +"slice_1/save_to_file/keep_custom_tracks": false, +"slice_1/save_to_file/path": "", +"slice_1/start_frame": 0, +"slice_10/end_frame": 0, +"slice_10/loop_mode": 0, +"slice_10/name": "", +"slice_10/save_to_file/enabled": false, +"slice_10/save_to_file/keep_custom_tracks": false, +"slice_10/save_to_file/path": "", +"slice_10/start_frame": 0, +"slice_100/end_frame": 0, +"slice_100/loop_mode": 0, +"slice_100/name": "", +"slice_100/save_to_file/enabled": false, +"slice_100/save_to_file/keep_custom_tracks": false, +"slice_100/save_to_file/path": "", +"slice_100/start_frame": 0, +"slice_101/end_frame": 0, +"slice_101/loop_mode": 0, +"slice_101/name": "", +"slice_101/save_to_file/enabled": false, +"slice_101/save_to_file/keep_custom_tracks": false, +"slice_101/save_to_file/path": "", +"slice_101/start_frame": 0, +"slice_102/end_frame": 0, +"slice_102/loop_mode": 0, +"slice_102/name": "", +"slice_102/save_to_file/enabled": false, +"slice_102/save_to_file/keep_custom_tracks": false, +"slice_102/save_to_file/path": "", +"slice_102/start_frame": 0, +"slice_103/end_frame": 0, +"slice_103/loop_mode": 0, +"slice_103/name": "", +"slice_103/save_to_file/enabled": false, +"slice_103/save_to_file/keep_custom_tracks": false, +"slice_103/save_to_file/path": "", +"slice_103/start_frame": 0, +"slice_104/end_frame": 0, +"slice_104/loop_mode": 0, +"slice_104/name": "", +"slice_104/save_to_file/enabled": false, +"slice_104/save_to_file/keep_custom_tracks": false, +"slice_104/save_to_file/path": "", +"slice_104/start_frame": 0, +"slice_105/end_frame": 0, +"slice_105/loop_mode": 0, +"slice_105/name": "", +"slice_105/save_to_file/enabled": false, +"slice_105/save_to_file/keep_custom_tracks": false, +"slice_105/save_to_file/path": "", +"slice_105/start_frame": 0, +"slice_106/end_frame": 0, +"slice_106/loop_mode": 0, +"slice_106/name": "", +"slice_106/save_to_file/enabled": false, +"slice_106/save_to_file/keep_custom_tracks": false, +"slice_106/save_to_file/path": "", +"slice_106/start_frame": 0, +"slice_107/end_frame": 0, +"slice_107/loop_mode": 0, +"slice_107/name": "", +"slice_107/save_to_file/enabled": false, +"slice_107/save_to_file/keep_custom_tracks": false, +"slice_107/save_to_file/path": "", +"slice_107/start_frame": 0, +"slice_108/end_frame": 0, +"slice_108/loop_mode": 0, +"slice_108/name": "", +"slice_108/save_to_file/enabled": false, +"slice_108/save_to_file/keep_custom_tracks": false, +"slice_108/save_to_file/path": "", +"slice_108/start_frame": 0, +"slice_109/end_frame": 0, +"slice_109/loop_mode": 0, +"slice_109/name": "", +"slice_109/save_to_file/enabled": false, +"slice_109/save_to_file/keep_custom_tracks": false, +"slice_109/save_to_file/path": "", +"slice_109/start_frame": 0, +"slice_11/end_frame": 0, +"slice_11/loop_mode": 0, +"slice_11/name": "", +"slice_11/save_to_file/enabled": false, +"slice_11/save_to_file/keep_custom_tracks": false, +"slice_11/save_to_file/path": "", +"slice_11/start_frame": 0, +"slice_110/end_frame": 0, +"slice_110/loop_mode": 0, +"slice_110/name": "", +"slice_110/save_to_file/enabled": false, +"slice_110/save_to_file/keep_custom_tracks": false, +"slice_110/save_to_file/path": "", +"slice_110/start_frame": 0, +"slice_111/end_frame": 0, +"slice_111/loop_mode": 0, +"slice_111/name": "", +"slice_111/save_to_file/enabled": false, +"slice_111/save_to_file/keep_custom_tracks": false, +"slice_111/save_to_file/path": "", +"slice_111/start_frame": 0, +"slice_112/end_frame": 0, +"slice_112/loop_mode": 0, +"slice_112/name": "", +"slice_112/save_to_file/enabled": false, +"slice_112/save_to_file/keep_custom_tracks": false, +"slice_112/save_to_file/path": "", +"slice_112/start_frame": 0, +"slice_113/end_frame": 0, +"slice_113/loop_mode": 0, +"slice_113/name": "", +"slice_113/save_to_file/enabled": false, +"slice_113/save_to_file/keep_custom_tracks": false, +"slice_113/save_to_file/path": "", +"slice_113/start_frame": 0, +"slice_114/end_frame": 0, +"slice_114/loop_mode": 0, +"slice_114/name": "", +"slice_114/save_to_file/enabled": false, +"slice_114/save_to_file/keep_custom_tracks": false, +"slice_114/save_to_file/path": "", +"slice_114/start_frame": 0, +"slice_115/end_frame": 0, +"slice_115/loop_mode": 0, +"slice_115/name": "", +"slice_115/save_to_file/enabled": false, +"slice_115/save_to_file/keep_custom_tracks": false, +"slice_115/save_to_file/path": "", +"slice_115/start_frame": 0, +"slice_116/end_frame": 0, +"slice_116/loop_mode": 0, +"slice_116/name": "", +"slice_116/save_to_file/enabled": false, +"slice_116/save_to_file/keep_custom_tracks": false, +"slice_116/save_to_file/path": "", +"slice_116/start_frame": 0, +"slice_117/end_frame": 0, +"slice_117/loop_mode": 0, +"slice_117/name": "", +"slice_117/save_to_file/enabled": false, +"slice_117/save_to_file/keep_custom_tracks": false, +"slice_117/save_to_file/path": "", +"slice_117/start_frame": 0, +"slice_118/end_frame": 0, +"slice_118/loop_mode": 0, +"slice_118/name": "", +"slice_118/save_to_file/enabled": false, +"slice_118/save_to_file/keep_custom_tracks": false, +"slice_118/save_to_file/path": "", +"slice_118/start_frame": 0, +"slice_119/end_frame": 0, +"slice_119/loop_mode": 0, +"slice_119/name": "", +"slice_119/save_to_file/enabled": false, +"slice_119/save_to_file/keep_custom_tracks": false, +"slice_119/save_to_file/path": "", +"slice_119/start_frame": 0, +"slice_12/end_frame": 0, +"slice_12/loop_mode": 0, +"slice_12/name": "", +"slice_12/save_to_file/enabled": false, +"slice_12/save_to_file/keep_custom_tracks": false, +"slice_12/save_to_file/path": "", +"slice_12/start_frame": 0, +"slice_120/end_frame": 0, +"slice_120/loop_mode": 0, +"slice_120/name": "", +"slice_120/save_to_file/enabled": false, +"slice_120/save_to_file/keep_custom_tracks": false, +"slice_120/save_to_file/path": "", +"slice_120/start_frame": 0, +"slice_121/end_frame": 0, +"slice_121/loop_mode": 0, +"slice_121/name": "", +"slice_121/save_to_file/enabled": false, +"slice_121/save_to_file/keep_custom_tracks": false, +"slice_121/save_to_file/path": "", +"slice_121/start_frame": 0, +"slice_122/end_frame": 0, +"slice_122/loop_mode": 0, +"slice_122/name": "", +"slice_122/save_to_file/enabled": false, +"slice_122/save_to_file/keep_custom_tracks": false, +"slice_122/save_to_file/path": "", +"slice_122/start_frame": 0, +"slice_123/end_frame": 0, +"slice_123/loop_mode": 0, +"slice_123/name": "", +"slice_123/save_to_file/enabled": false, +"slice_123/save_to_file/keep_custom_tracks": false, +"slice_123/save_to_file/path": "", +"slice_123/start_frame": 0, +"slice_124/end_frame": 0, +"slice_124/loop_mode": 0, +"slice_124/name": "", +"slice_124/save_to_file/enabled": false, +"slice_124/save_to_file/keep_custom_tracks": false, +"slice_124/save_to_file/path": "", +"slice_124/start_frame": 0, +"slice_125/end_frame": 0, +"slice_125/loop_mode": 0, +"slice_125/name": "", +"slice_125/save_to_file/enabled": false, +"slice_125/save_to_file/keep_custom_tracks": false, +"slice_125/save_to_file/path": "", +"slice_125/start_frame": 0, +"slice_126/end_frame": 0, +"slice_126/loop_mode": 0, +"slice_126/name": "", +"slice_126/save_to_file/enabled": false, +"slice_126/save_to_file/keep_custom_tracks": false, +"slice_126/save_to_file/path": "", +"slice_126/start_frame": 0, +"slice_127/end_frame": 0, +"slice_127/loop_mode": 0, +"slice_127/name": "", +"slice_127/save_to_file/enabled": false, +"slice_127/save_to_file/keep_custom_tracks": false, +"slice_127/save_to_file/path": "", +"slice_127/start_frame": 0, +"slice_128/end_frame": 0, +"slice_128/loop_mode": 0, +"slice_128/name": "", +"slice_128/save_to_file/enabled": false, +"slice_128/save_to_file/keep_custom_tracks": false, +"slice_128/save_to_file/path": "", +"slice_128/start_frame": 0, +"slice_129/end_frame": 0, +"slice_129/loop_mode": 0, +"slice_129/name": "", +"slice_129/save_to_file/enabled": false, +"slice_129/save_to_file/keep_custom_tracks": false, +"slice_129/save_to_file/path": "", +"slice_129/start_frame": 0, +"slice_13/end_frame": 0, +"slice_13/loop_mode": 0, +"slice_13/name": "", +"slice_13/save_to_file/enabled": false, +"slice_13/save_to_file/keep_custom_tracks": false, +"slice_13/save_to_file/path": "", +"slice_13/start_frame": 0, +"slice_130/end_frame": 0, +"slice_130/loop_mode": 0, +"slice_130/name": "", +"slice_130/save_to_file/enabled": false, +"slice_130/save_to_file/keep_custom_tracks": false, +"slice_130/save_to_file/path": "", +"slice_130/start_frame": 0, +"slice_131/end_frame": 0, +"slice_131/loop_mode": 0, +"slice_131/name": "", +"slice_131/save_to_file/enabled": false, +"slice_131/save_to_file/keep_custom_tracks": false, +"slice_131/save_to_file/path": "", +"slice_131/start_frame": 0, +"slice_132/end_frame": 0, +"slice_132/loop_mode": 0, +"slice_132/name": "", +"slice_132/save_to_file/enabled": false, +"slice_132/save_to_file/keep_custom_tracks": false, +"slice_132/save_to_file/path": "", +"slice_132/start_frame": 0, +"slice_133/end_frame": 0, +"slice_133/loop_mode": 0, +"slice_133/name": "", +"slice_133/save_to_file/enabled": false, +"slice_133/save_to_file/keep_custom_tracks": false, +"slice_133/save_to_file/path": "", +"slice_133/start_frame": 0, +"slice_134/end_frame": 0, +"slice_134/loop_mode": 0, +"slice_134/name": "", +"slice_134/save_to_file/enabled": false, +"slice_134/save_to_file/keep_custom_tracks": false, +"slice_134/save_to_file/path": "", +"slice_134/start_frame": 0, +"slice_135/end_frame": 0, +"slice_135/loop_mode": 0, +"slice_135/name": "", +"slice_135/save_to_file/enabled": false, +"slice_135/save_to_file/keep_custom_tracks": false, +"slice_135/save_to_file/path": "", +"slice_135/start_frame": 0, +"slice_136/end_frame": 0, +"slice_136/loop_mode": 0, +"slice_136/name": "", +"slice_136/save_to_file/enabled": false, +"slice_136/save_to_file/keep_custom_tracks": false, +"slice_136/save_to_file/path": "", +"slice_136/start_frame": 0, +"slice_137/end_frame": 0, +"slice_137/loop_mode": 0, +"slice_137/name": "", +"slice_137/save_to_file/enabled": false, +"slice_137/save_to_file/keep_custom_tracks": false, +"slice_137/save_to_file/path": "", +"slice_137/start_frame": 0, +"slice_138/end_frame": 0, +"slice_138/loop_mode": 0, +"slice_138/name": "", +"slice_138/save_to_file/enabled": false, +"slice_138/save_to_file/keep_custom_tracks": false, +"slice_138/save_to_file/path": "", +"slice_138/start_frame": 0, +"slice_139/end_frame": 0, +"slice_139/loop_mode": 0, +"slice_139/name": "", +"slice_139/save_to_file/enabled": false, +"slice_139/save_to_file/keep_custom_tracks": false, +"slice_139/save_to_file/path": "", +"slice_139/start_frame": 0, +"slice_14/end_frame": 0, +"slice_14/loop_mode": 0, +"slice_14/name": "", +"slice_14/save_to_file/enabled": false, +"slice_14/save_to_file/keep_custom_tracks": false, +"slice_14/save_to_file/path": "", +"slice_14/start_frame": 0, +"slice_140/end_frame": 0, +"slice_140/loop_mode": 0, +"slice_140/name": "", +"slice_140/save_to_file/enabled": false, +"slice_140/save_to_file/keep_custom_tracks": false, +"slice_140/save_to_file/path": "", +"slice_140/start_frame": 0, +"slice_141/end_frame": 0, +"slice_141/loop_mode": 0, +"slice_141/name": "", +"slice_141/save_to_file/enabled": false, +"slice_141/save_to_file/keep_custom_tracks": false, +"slice_141/save_to_file/path": "", +"slice_141/start_frame": 0, +"slice_142/end_frame": 0, +"slice_142/loop_mode": 0, +"slice_142/name": "", +"slice_142/save_to_file/enabled": false, +"slice_142/save_to_file/keep_custom_tracks": false, +"slice_142/save_to_file/path": "", +"slice_142/start_frame": 0, +"slice_143/end_frame": 0, +"slice_143/loop_mode": 0, +"slice_143/name": "", +"slice_143/save_to_file/enabled": false, +"slice_143/save_to_file/keep_custom_tracks": false, +"slice_143/save_to_file/path": "", +"slice_143/start_frame": 0, +"slice_144/end_frame": 0, +"slice_144/loop_mode": 0, +"slice_144/name": "", +"slice_144/save_to_file/enabled": false, +"slice_144/save_to_file/keep_custom_tracks": false, +"slice_144/save_to_file/path": "", +"slice_144/start_frame": 0, +"slice_145/end_frame": 0, +"slice_145/loop_mode": 0, +"slice_145/name": "", +"slice_145/save_to_file/enabled": false, +"slice_145/save_to_file/keep_custom_tracks": false, +"slice_145/save_to_file/path": "", +"slice_145/start_frame": 0, +"slice_146/end_frame": 0, +"slice_146/loop_mode": 0, +"slice_146/name": "", +"slice_146/save_to_file/enabled": false, +"slice_146/save_to_file/keep_custom_tracks": false, +"slice_146/save_to_file/path": "", +"slice_146/start_frame": 0, +"slice_147/end_frame": 0, +"slice_147/loop_mode": 0, +"slice_147/name": "", +"slice_147/save_to_file/enabled": false, +"slice_147/save_to_file/keep_custom_tracks": false, +"slice_147/save_to_file/path": "", +"slice_147/start_frame": 0, +"slice_148/end_frame": 0, +"slice_148/loop_mode": 0, +"slice_148/name": "", +"slice_148/save_to_file/enabled": false, +"slice_148/save_to_file/keep_custom_tracks": false, +"slice_148/save_to_file/path": "", +"slice_148/start_frame": 0, +"slice_149/end_frame": 0, +"slice_149/loop_mode": 0, +"slice_149/name": "", +"slice_149/save_to_file/enabled": false, +"slice_149/save_to_file/keep_custom_tracks": false, +"slice_149/save_to_file/path": "", +"slice_149/start_frame": 0, +"slice_15/end_frame": 0, +"slice_15/loop_mode": 0, +"slice_15/name": "", +"slice_15/save_to_file/enabled": false, +"slice_15/save_to_file/keep_custom_tracks": false, +"slice_15/save_to_file/path": "", +"slice_15/start_frame": 0, +"slice_150/end_frame": 0, +"slice_150/loop_mode": 0, +"slice_150/name": "", +"slice_150/save_to_file/enabled": false, +"slice_150/save_to_file/keep_custom_tracks": false, +"slice_150/save_to_file/path": "", +"slice_150/start_frame": 0, +"slice_151/end_frame": 0, +"slice_151/loop_mode": 0, +"slice_151/name": "", +"slice_151/save_to_file/enabled": false, +"slice_151/save_to_file/keep_custom_tracks": false, +"slice_151/save_to_file/path": "", +"slice_151/start_frame": 0, +"slice_152/end_frame": 0, +"slice_152/loop_mode": 0, +"slice_152/name": "", +"slice_152/save_to_file/enabled": false, +"slice_152/save_to_file/keep_custom_tracks": false, +"slice_152/save_to_file/path": "", +"slice_152/start_frame": 0, +"slice_153/end_frame": 0, +"slice_153/loop_mode": 0, +"slice_153/name": "", +"slice_153/save_to_file/enabled": false, +"slice_153/save_to_file/keep_custom_tracks": false, +"slice_153/save_to_file/path": "", +"slice_153/start_frame": 0, +"slice_154/end_frame": 0, +"slice_154/loop_mode": 0, +"slice_154/name": "", +"slice_154/save_to_file/enabled": false, +"slice_154/save_to_file/keep_custom_tracks": false, +"slice_154/save_to_file/path": "", +"slice_154/start_frame": 0, +"slice_155/end_frame": 0, +"slice_155/loop_mode": 0, +"slice_155/name": "", +"slice_155/save_to_file/enabled": false, +"slice_155/save_to_file/keep_custom_tracks": false, +"slice_155/save_to_file/path": "", +"slice_155/start_frame": 0, +"slice_156/end_frame": 0, +"slice_156/loop_mode": 0, +"slice_156/name": "", +"slice_156/save_to_file/enabled": false, +"slice_156/save_to_file/keep_custom_tracks": false, +"slice_156/save_to_file/path": "", +"slice_156/start_frame": 0, +"slice_157/end_frame": 0, +"slice_157/loop_mode": 0, +"slice_157/name": "", +"slice_157/save_to_file/enabled": false, +"slice_157/save_to_file/keep_custom_tracks": false, +"slice_157/save_to_file/path": "", +"slice_157/start_frame": 0, +"slice_158/end_frame": 0, +"slice_158/loop_mode": 0, +"slice_158/name": "", +"slice_158/save_to_file/enabled": false, +"slice_158/save_to_file/keep_custom_tracks": false, +"slice_158/save_to_file/path": "", +"slice_158/start_frame": 0, +"slice_159/end_frame": 0, +"slice_159/loop_mode": 0, +"slice_159/name": "", +"slice_159/save_to_file/enabled": false, +"slice_159/save_to_file/keep_custom_tracks": false, +"slice_159/save_to_file/path": "", +"slice_159/start_frame": 0, +"slice_16/end_frame": 0, +"slice_16/loop_mode": 0, +"slice_16/name": "", +"slice_16/save_to_file/enabled": false, +"slice_16/save_to_file/keep_custom_tracks": false, +"slice_16/save_to_file/path": "", +"slice_16/start_frame": 0, +"slice_160/end_frame": 0, +"slice_160/loop_mode": 0, +"slice_160/name": "", +"slice_160/save_to_file/enabled": false, +"slice_160/save_to_file/keep_custom_tracks": false, +"slice_160/save_to_file/path": "", +"slice_160/start_frame": 0, +"slice_161/end_frame": 0, +"slice_161/loop_mode": 0, +"slice_161/name": "", +"slice_161/save_to_file/enabled": false, +"slice_161/save_to_file/keep_custom_tracks": false, +"slice_161/save_to_file/path": "", +"slice_161/start_frame": 0, +"slice_162/end_frame": 0, +"slice_162/loop_mode": 0, +"slice_162/name": "", +"slice_162/save_to_file/enabled": false, +"slice_162/save_to_file/keep_custom_tracks": false, +"slice_162/save_to_file/path": "", +"slice_162/start_frame": 0, +"slice_163/end_frame": 0, +"slice_163/loop_mode": 0, +"slice_163/name": "", +"slice_163/save_to_file/enabled": false, +"slice_163/save_to_file/keep_custom_tracks": false, +"slice_163/save_to_file/path": "", +"slice_163/start_frame": 0, +"slice_164/end_frame": 0, +"slice_164/loop_mode": 0, +"slice_164/name": "", +"slice_164/save_to_file/enabled": false, +"slice_164/save_to_file/keep_custom_tracks": false, +"slice_164/save_to_file/path": "", +"slice_164/start_frame": 0, +"slice_165/end_frame": 0, +"slice_165/loop_mode": 0, +"slice_165/name": "", +"slice_165/save_to_file/enabled": false, +"slice_165/save_to_file/keep_custom_tracks": false, +"slice_165/save_to_file/path": "", +"slice_165/start_frame": 0, +"slice_166/end_frame": 0, +"slice_166/loop_mode": 0, +"slice_166/name": "", +"slice_166/save_to_file/enabled": false, +"slice_166/save_to_file/keep_custom_tracks": false, +"slice_166/save_to_file/path": "", +"slice_166/start_frame": 0, +"slice_167/end_frame": 0, +"slice_167/loop_mode": 0, +"slice_167/name": "", +"slice_167/save_to_file/enabled": false, +"slice_167/save_to_file/keep_custom_tracks": false, +"slice_167/save_to_file/path": "", +"slice_167/start_frame": 0, +"slice_168/end_frame": 0, +"slice_168/loop_mode": 0, +"slice_168/name": "", +"slice_168/save_to_file/enabled": false, +"slice_168/save_to_file/keep_custom_tracks": false, +"slice_168/save_to_file/path": "", +"slice_168/start_frame": 0, +"slice_169/end_frame": 0, +"slice_169/loop_mode": 0, +"slice_169/name": "", +"slice_169/save_to_file/enabled": false, +"slice_169/save_to_file/keep_custom_tracks": false, +"slice_169/save_to_file/path": "", +"slice_169/start_frame": 0, +"slice_17/end_frame": 0, +"slice_17/loop_mode": 0, +"slice_17/name": "", +"slice_17/save_to_file/enabled": false, +"slice_17/save_to_file/keep_custom_tracks": false, +"slice_17/save_to_file/path": "", +"slice_17/start_frame": 0, +"slice_170/end_frame": 0, +"slice_170/loop_mode": 0, +"slice_170/name": "", +"slice_170/save_to_file/enabled": false, +"slice_170/save_to_file/keep_custom_tracks": false, +"slice_170/save_to_file/path": "", +"slice_170/start_frame": 0, +"slice_171/end_frame": 0, +"slice_171/loop_mode": 0, +"slice_171/name": "", +"slice_171/save_to_file/enabled": false, +"slice_171/save_to_file/keep_custom_tracks": false, +"slice_171/save_to_file/path": "", +"slice_171/start_frame": 0, +"slice_172/end_frame": 0, +"slice_172/loop_mode": 0, +"slice_172/name": "", +"slice_172/save_to_file/enabled": false, +"slice_172/save_to_file/keep_custom_tracks": false, +"slice_172/save_to_file/path": "", +"slice_172/start_frame": 0, +"slice_173/end_frame": 0, +"slice_173/loop_mode": 0, +"slice_173/name": "", +"slice_173/save_to_file/enabled": false, +"slice_173/save_to_file/keep_custom_tracks": false, +"slice_173/save_to_file/path": "", +"slice_173/start_frame": 0, +"slice_174/end_frame": 0, +"slice_174/loop_mode": 0, +"slice_174/name": "", +"slice_174/save_to_file/enabled": false, +"slice_174/save_to_file/keep_custom_tracks": false, +"slice_174/save_to_file/path": "", +"slice_174/start_frame": 0, +"slice_175/end_frame": 0, +"slice_175/loop_mode": 0, +"slice_175/name": "", +"slice_175/save_to_file/enabled": false, +"slice_175/save_to_file/keep_custom_tracks": false, +"slice_175/save_to_file/path": "", +"slice_175/start_frame": 0, +"slice_176/end_frame": 0, +"slice_176/loop_mode": 0, +"slice_176/name": "", +"slice_176/save_to_file/enabled": false, +"slice_176/save_to_file/keep_custom_tracks": false, +"slice_176/save_to_file/path": "", +"slice_176/start_frame": 0, +"slice_177/end_frame": 0, +"slice_177/loop_mode": 0, +"slice_177/name": "", +"slice_177/save_to_file/enabled": false, +"slice_177/save_to_file/keep_custom_tracks": false, +"slice_177/save_to_file/path": "", +"slice_177/start_frame": 0, +"slice_178/end_frame": 0, +"slice_178/loop_mode": 0, +"slice_178/name": "", +"slice_178/save_to_file/enabled": false, +"slice_178/save_to_file/keep_custom_tracks": false, +"slice_178/save_to_file/path": "", +"slice_178/start_frame": 0, +"slice_179/end_frame": 0, +"slice_179/loop_mode": 0, +"slice_179/name": "", +"slice_179/save_to_file/enabled": false, +"slice_179/save_to_file/keep_custom_tracks": false, +"slice_179/save_to_file/path": "", +"slice_179/start_frame": 0, +"slice_18/end_frame": 0, +"slice_18/loop_mode": 0, +"slice_18/name": "", +"slice_18/save_to_file/enabled": false, +"slice_18/save_to_file/keep_custom_tracks": false, +"slice_18/save_to_file/path": "", +"slice_18/start_frame": 0, +"slice_180/end_frame": 0, +"slice_180/loop_mode": 0, +"slice_180/name": "", +"slice_180/save_to_file/enabled": false, +"slice_180/save_to_file/keep_custom_tracks": false, +"slice_180/save_to_file/path": "", +"slice_180/start_frame": 0, +"slice_181/end_frame": 0, +"slice_181/loop_mode": 0, +"slice_181/name": "", +"slice_181/save_to_file/enabled": false, +"slice_181/save_to_file/keep_custom_tracks": false, +"slice_181/save_to_file/path": "", +"slice_181/start_frame": 0, +"slice_182/end_frame": 0, +"slice_182/loop_mode": 0, +"slice_182/name": "", +"slice_182/save_to_file/enabled": false, +"slice_182/save_to_file/keep_custom_tracks": false, +"slice_182/save_to_file/path": "", +"slice_182/start_frame": 0, +"slice_183/end_frame": 0, +"slice_183/loop_mode": 0, +"slice_183/name": "", +"slice_183/save_to_file/enabled": false, +"slice_183/save_to_file/keep_custom_tracks": false, +"slice_183/save_to_file/path": "", +"slice_183/start_frame": 0, +"slice_184/end_frame": 0, +"slice_184/loop_mode": 0, +"slice_184/name": "", +"slice_184/save_to_file/enabled": false, +"slice_184/save_to_file/keep_custom_tracks": false, +"slice_184/save_to_file/path": "", +"slice_184/start_frame": 0, +"slice_185/end_frame": 0, +"slice_185/loop_mode": 0, +"slice_185/name": "", +"slice_185/save_to_file/enabled": false, +"slice_185/save_to_file/keep_custom_tracks": false, +"slice_185/save_to_file/path": "", +"slice_185/start_frame": 0, +"slice_186/end_frame": 0, +"slice_186/loop_mode": 0, +"slice_186/name": "", +"slice_186/save_to_file/enabled": false, +"slice_186/save_to_file/keep_custom_tracks": false, +"slice_186/save_to_file/path": "", +"slice_186/start_frame": 0, +"slice_187/end_frame": 0, +"slice_187/loop_mode": 0, +"slice_187/name": "", +"slice_187/save_to_file/enabled": false, +"slice_187/save_to_file/keep_custom_tracks": false, +"slice_187/save_to_file/path": "", +"slice_187/start_frame": 0, +"slice_188/end_frame": 0, +"slice_188/loop_mode": 0, +"slice_188/name": "", +"slice_188/save_to_file/enabled": false, +"slice_188/save_to_file/keep_custom_tracks": false, +"slice_188/save_to_file/path": "", +"slice_188/start_frame": 0, +"slice_189/end_frame": 0, +"slice_189/loop_mode": 0, +"slice_189/name": "", +"slice_189/save_to_file/enabled": false, +"slice_189/save_to_file/keep_custom_tracks": false, +"slice_189/save_to_file/path": "", +"slice_189/start_frame": 0, +"slice_19/end_frame": 0, +"slice_19/loop_mode": 0, +"slice_19/name": "", +"slice_19/save_to_file/enabled": false, +"slice_19/save_to_file/keep_custom_tracks": false, +"slice_19/save_to_file/path": "", +"slice_19/start_frame": 0, +"slice_190/end_frame": 0, +"slice_190/loop_mode": 0, +"slice_190/name": "", +"slice_190/save_to_file/enabled": false, +"slice_190/save_to_file/keep_custom_tracks": false, +"slice_190/save_to_file/path": "", +"slice_190/start_frame": 0, +"slice_191/end_frame": 0, +"slice_191/loop_mode": 0, +"slice_191/name": "", +"slice_191/save_to_file/enabled": false, +"slice_191/save_to_file/keep_custom_tracks": false, +"slice_191/save_to_file/path": "", +"slice_191/start_frame": 0, +"slice_192/end_frame": 0, +"slice_192/loop_mode": 0, +"slice_192/name": "", +"slice_192/save_to_file/enabled": false, +"slice_192/save_to_file/keep_custom_tracks": false, +"slice_192/save_to_file/path": "", +"slice_192/start_frame": 0, +"slice_193/end_frame": 0, +"slice_193/loop_mode": 0, +"slice_193/name": "", +"slice_193/save_to_file/enabled": false, +"slice_193/save_to_file/keep_custom_tracks": false, +"slice_193/save_to_file/path": "", +"slice_193/start_frame": 0, +"slice_194/end_frame": 0, +"slice_194/loop_mode": 0, +"slice_194/name": "", +"slice_194/save_to_file/enabled": false, +"slice_194/save_to_file/keep_custom_tracks": false, +"slice_194/save_to_file/path": "", +"slice_194/start_frame": 0, +"slice_195/end_frame": 0, +"slice_195/loop_mode": 0, +"slice_195/name": "", +"slice_195/save_to_file/enabled": false, +"slice_195/save_to_file/keep_custom_tracks": false, +"slice_195/save_to_file/path": "", +"slice_195/start_frame": 0, +"slice_196/end_frame": 0, +"slice_196/loop_mode": 0, +"slice_196/name": "", +"slice_196/save_to_file/enabled": false, +"slice_196/save_to_file/keep_custom_tracks": false, +"slice_196/save_to_file/path": "", +"slice_196/start_frame": 0, +"slice_197/end_frame": 0, +"slice_197/loop_mode": 0, +"slice_197/name": "", +"slice_197/save_to_file/enabled": false, +"slice_197/save_to_file/keep_custom_tracks": false, +"slice_197/save_to_file/path": "", +"slice_197/start_frame": 0, +"slice_198/end_frame": 0, +"slice_198/loop_mode": 0, +"slice_198/name": "", +"slice_198/save_to_file/enabled": false, +"slice_198/save_to_file/keep_custom_tracks": false, +"slice_198/save_to_file/path": "", +"slice_198/start_frame": 0, +"slice_199/end_frame": 0, +"slice_199/loop_mode": 0, +"slice_199/name": "", +"slice_199/save_to_file/enabled": false, +"slice_199/save_to_file/keep_custom_tracks": false, +"slice_199/save_to_file/path": "", +"slice_199/start_frame": 0, +"slice_2/end_frame": 0, +"slice_2/loop_mode": 0, +"slice_2/name": "", +"slice_2/save_to_file/enabled": false, +"slice_2/save_to_file/keep_custom_tracks": false, +"slice_2/save_to_file/path": "", +"slice_2/start_frame": 0, +"slice_20/end_frame": 0, +"slice_20/loop_mode": 0, +"slice_20/name": "", +"slice_20/save_to_file/enabled": false, +"slice_20/save_to_file/keep_custom_tracks": false, +"slice_20/save_to_file/path": "", +"slice_20/start_frame": 0, +"slice_200/end_frame": 0, +"slice_200/loop_mode": 0, +"slice_200/name": "", +"slice_200/save_to_file/enabled": false, +"slice_200/save_to_file/keep_custom_tracks": false, +"slice_200/save_to_file/path": "", +"slice_200/start_frame": 0, +"slice_201/end_frame": 0, +"slice_201/loop_mode": 0, +"slice_201/name": "", +"slice_201/save_to_file/enabled": false, +"slice_201/save_to_file/keep_custom_tracks": false, +"slice_201/save_to_file/path": "", +"slice_201/start_frame": 0, +"slice_202/end_frame": 0, +"slice_202/loop_mode": 0, +"slice_202/name": "", +"slice_202/save_to_file/enabled": false, +"slice_202/save_to_file/keep_custom_tracks": false, +"slice_202/save_to_file/path": "", +"slice_202/start_frame": 0, +"slice_203/end_frame": 0, +"slice_203/loop_mode": 0, +"slice_203/name": "", +"slice_203/save_to_file/enabled": false, +"slice_203/save_to_file/keep_custom_tracks": false, +"slice_203/save_to_file/path": "", +"slice_203/start_frame": 0, +"slice_204/end_frame": 0, +"slice_204/loop_mode": 0, +"slice_204/name": "", +"slice_204/save_to_file/enabled": false, +"slice_204/save_to_file/keep_custom_tracks": false, +"slice_204/save_to_file/path": "", +"slice_204/start_frame": 0, +"slice_205/end_frame": 0, +"slice_205/loop_mode": 0, +"slice_205/name": "", +"slice_205/save_to_file/enabled": false, +"slice_205/save_to_file/keep_custom_tracks": false, +"slice_205/save_to_file/path": "", +"slice_205/start_frame": 0, +"slice_206/end_frame": 0, +"slice_206/loop_mode": 0, +"slice_206/name": "", +"slice_206/save_to_file/enabled": false, +"slice_206/save_to_file/keep_custom_tracks": false, +"slice_206/save_to_file/path": "", +"slice_206/start_frame": 0, +"slice_207/end_frame": 0, +"slice_207/loop_mode": 0, +"slice_207/name": "", +"slice_207/save_to_file/enabled": false, +"slice_207/save_to_file/keep_custom_tracks": false, +"slice_207/save_to_file/path": "", +"slice_207/start_frame": 0, +"slice_208/end_frame": 0, +"slice_208/loop_mode": 0, +"slice_208/name": "", +"slice_208/save_to_file/enabled": false, +"slice_208/save_to_file/keep_custom_tracks": false, +"slice_208/save_to_file/path": "", +"slice_208/start_frame": 0, +"slice_209/end_frame": 0, +"slice_209/loop_mode": 0, +"slice_209/name": "", +"slice_209/save_to_file/enabled": false, +"slice_209/save_to_file/keep_custom_tracks": false, +"slice_209/save_to_file/path": "", +"slice_209/start_frame": 0, +"slice_21/end_frame": 0, +"slice_21/loop_mode": 0, +"slice_21/name": "", +"slice_21/save_to_file/enabled": false, +"slice_21/save_to_file/keep_custom_tracks": false, +"slice_21/save_to_file/path": "", +"slice_21/start_frame": 0, +"slice_210/end_frame": 0, +"slice_210/loop_mode": 0, +"slice_210/name": "", +"slice_210/save_to_file/enabled": false, +"slice_210/save_to_file/keep_custom_tracks": false, +"slice_210/save_to_file/path": "", +"slice_210/start_frame": 0, +"slice_211/end_frame": 0, +"slice_211/loop_mode": 0, +"slice_211/name": "", +"slice_211/save_to_file/enabled": false, +"slice_211/save_to_file/keep_custom_tracks": false, +"slice_211/save_to_file/path": "", +"slice_211/start_frame": 0, +"slice_212/end_frame": 0, +"slice_212/loop_mode": 0, +"slice_212/name": "", +"slice_212/save_to_file/enabled": false, +"slice_212/save_to_file/keep_custom_tracks": false, +"slice_212/save_to_file/path": "", +"slice_212/start_frame": 0, +"slice_213/end_frame": 0, +"slice_213/loop_mode": 0, +"slice_213/name": "", +"slice_213/save_to_file/enabled": false, +"slice_213/save_to_file/keep_custom_tracks": false, +"slice_213/save_to_file/path": "", +"slice_213/start_frame": 0, +"slice_214/end_frame": 0, +"slice_214/loop_mode": 0, +"slice_214/name": "", +"slice_214/save_to_file/enabled": false, +"slice_214/save_to_file/keep_custom_tracks": false, +"slice_214/save_to_file/path": "", +"slice_214/start_frame": 0, +"slice_215/end_frame": 0, +"slice_215/loop_mode": 0, +"slice_215/name": "", +"slice_215/save_to_file/enabled": false, +"slice_215/save_to_file/keep_custom_tracks": false, +"slice_215/save_to_file/path": "", +"slice_215/start_frame": 0, +"slice_216/end_frame": 0, +"slice_216/loop_mode": 0, +"slice_216/name": "", +"slice_216/save_to_file/enabled": false, +"slice_216/save_to_file/keep_custom_tracks": false, +"slice_216/save_to_file/path": "", +"slice_216/start_frame": 0, +"slice_217/end_frame": 0, +"slice_217/loop_mode": 0, +"slice_217/name": "", +"slice_217/save_to_file/enabled": false, +"slice_217/save_to_file/keep_custom_tracks": false, +"slice_217/save_to_file/path": "", +"slice_217/start_frame": 0, +"slice_218/end_frame": 0, +"slice_218/loop_mode": 0, +"slice_218/name": "", +"slice_218/save_to_file/enabled": false, +"slice_218/save_to_file/keep_custom_tracks": false, +"slice_218/save_to_file/path": "", +"slice_218/start_frame": 0, +"slice_219/end_frame": 0, +"slice_219/loop_mode": 0, +"slice_219/name": "", +"slice_219/save_to_file/enabled": false, +"slice_219/save_to_file/keep_custom_tracks": false, +"slice_219/save_to_file/path": "", +"slice_219/start_frame": 0, +"slice_22/end_frame": 0, +"slice_22/loop_mode": 0, +"slice_22/name": "", +"slice_22/save_to_file/enabled": false, +"slice_22/save_to_file/keep_custom_tracks": false, +"slice_22/save_to_file/path": "", +"slice_22/start_frame": 0, +"slice_220/end_frame": 0, +"slice_220/loop_mode": 0, +"slice_220/name": "", +"slice_220/save_to_file/enabled": false, +"slice_220/save_to_file/keep_custom_tracks": false, +"slice_220/save_to_file/path": "", +"slice_220/start_frame": 0, +"slice_221/end_frame": 0, +"slice_221/loop_mode": 0, +"slice_221/name": "", +"slice_221/save_to_file/enabled": false, +"slice_221/save_to_file/keep_custom_tracks": false, +"slice_221/save_to_file/path": "", +"slice_221/start_frame": 0, +"slice_222/end_frame": 0, +"slice_222/loop_mode": 0, +"slice_222/name": "", +"slice_222/save_to_file/enabled": false, +"slice_222/save_to_file/keep_custom_tracks": false, +"slice_222/save_to_file/path": "", +"slice_222/start_frame": 0, +"slice_223/end_frame": 0, +"slice_223/loop_mode": 0, +"slice_223/name": "", +"slice_223/save_to_file/enabled": false, +"slice_223/save_to_file/keep_custom_tracks": false, +"slice_223/save_to_file/path": "", +"slice_223/start_frame": 0, +"slice_224/end_frame": 0, +"slice_224/loop_mode": 0, +"slice_224/name": "", +"slice_224/save_to_file/enabled": false, +"slice_224/save_to_file/keep_custom_tracks": false, +"slice_224/save_to_file/path": "", +"slice_224/start_frame": 0, +"slice_225/end_frame": 0, +"slice_225/loop_mode": 0, +"slice_225/name": "", +"slice_225/save_to_file/enabled": false, +"slice_225/save_to_file/keep_custom_tracks": false, +"slice_225/save_to_file/path": "", +"slice_225/start_frame": 0, +"slice_226/end_frame": 0, +"slice_226/loop_mode": 0, +"slice_226/name": "", +"slice_226/save_to_file/enabled": false, +"slice_226/save_to_file/keep_custom_tracks": false, +"slice_226/save_to_file/path": "", +"slice_226/start_frame": 0, +"slice_227/end_frame": 0, +"slice_227/loop_mode": 0, +"slice_227/name": "", +"slice_227/save_to_file/enabled": false, +"slice_227/save_to_file/keep_custom_tracks": false, +"slice_227/save_to_file/path": "", +"slice_227/start_frame": 0, +"slice_228/end_frame": 0, +"slice_228/loop_mode": 0, +"slice_228/name": "", +"slice_228/save_to_file/enabled": false, +"slice_228/save_to_file/keep_custom_tracks": false, +"slice_228/save_to_file/path": "", +"slice_228/start_frame": 0, +"slice_229/end_frame": 0, +"slice_229/loop_mode": 0, +"slice_229/name": "", +"slice_229/save_to_file/enabled": false, +"slice_229/save_to_file/keep_custom_tracks": false, +"slice_229/save_to_file/path": "", +"slice_229/start_frame": 0, +"slice_23/end_frame": 0, +"slice_23/loop_mode": 0, +"slice_23/name": "", +"slice_23/save_to_file/enabled": false, +"slice_23/save_to_file/keep_custom_tracks": false, +"slice_23/save_to_file/path": "", +"slice_23/start_frame": 0, +"slice_230/end_frame": 0, +"slice_230/loop_mode": 0, +"slice_230/name": "", +"slice_230/save_to_file/enabled": false, +"slice_230/save_to_file/keep_custom_tracks": false, +"slice_230/save_to_file/path": "", +"slice_230/start_frame": 0, +"slice_231/end_frame": 0, +"slice_231/loop_mode": 0, +"slice_231/name": "", +"slice_231/save_to_file/enabled": false, +"slice_231/save_to_file/keep_custom_tracks": false, +"slice_231/save_to_file/path": "", +"slice_231/start_frame": 0, +"slice_232/end_frame": 0, +"slice_232/loop_mode": 0, +"slice_232/name": "", +"slice_232/save_to_file/enabled": false, +"slice_232/save_to_file/keep_custom_tracks": false, +"slice_232/save_to_file/path": "", +"slice_232/start_frame": 0, +"slice_233/end_frame": 0, +"slice_233/loop_mode": 0, +"slice_233/name": "", +"slice_233/save_to_file/enabled": false, +"slice_233/save_to_file/keep_custom_tracks": false, +"slice_233/save_to_file/path": "", +"slice_233/start_frame": 0, +"slice_234/end_frame": 0, +"slice_234/loop_mode": 0, +"slice_234/name": "", +"slice_234/save_to_file/enabled": false, +"slice_234/save_to_file/keep_custom_tracks": false, +"slice_234/save_to_file/path": "", +"slice_234/start_frame": 0, +"slice_235/end_frame": 0, +"slice_235/loop_mode": 0, +"slice_235/name": "", +"slice_235/save_to_file/enabled": false, +"slice_235/save_to_file/keep_custom_tracks": false, +"slice_235/save_to_file/path": "", +"slice_235/start_frame": 0, +"slice_236/end_frame": 0, +"slice_236/loop_mode": 0, +"slice_236/name": "", +"slice_236/save_to_file/enabled": false, +"slice_236/save_to_file/keep_custom_tracks": false, +"slice_236/save_to_file/path": "", +"slice_236/start_frame": 0, +"slice_237/end_frame": 0, +"slice_237/loop_mode": 0, +"slice_237/name": "", +"slice_237/save_to_file/enabled": false, +"slice_237/save_to_file/keep_custom_tracks": false, +"slice_237/save_to_file/path": "", +"slice_237/start_frame": 0, +"slice_238/end_frame": 0, +"slice_238/loop_mode": 0, +"slice_238/name": "", +"slice_238/save_to_file/enabled": false, +"slice_238/save_to_file/keep_custom_tracks": false, +"slice_238/save_to_file/path": "", +"slice_238/start_frame": 0, +"slice_239/end_frame": 0, +"slice_239/loop_mode": 0, +"slice_239/name": "", +"slice_239/save_to_file/enabled": false, +"slice_239/save_to_file/keep_custom_tracks": false, +"slice_239/save_to_file/path": "", +"slice_239/start_frame": 0, +"slice_24/end_frame": 0, +"slice_24/loop_mode": 0, +"slice_24/name": "", +"slice_24/save_to_file/enabled": false, +"slice_24/save_to_file/keep_custom_tracks": false, +"slice_24/save_to_file/path": "", +"slice_24/start_frame": 0, +"slice_240/end_frame": 0, +"slice_240/loop_mode": 0, +"slice_240/name": "", +"slice_240/save_to_file/enabled": false, +"slice_240/save_to_file/keep_custom_tracks": false, +"slice_240/save_to_file/path": "", +"slice_240/start_frame": 0, +"slice_241/end_frame": 0, +"slice_241/loop_mode": 0, +"slice_241/name": "", +"slice_241/save_to_file/enabled": false, +"slice_241/save_to_file/keep_custom_tracks": false, +"slice_241/save_to_file/path": "", +"slice_241/start_frame": 0, +"slice_242/end_frame": 0, +"slice_242/loop_mode": 0, +"slice_242/name": "", +"slice_242/save_to_file/enabled": false, +"slice_242/save_to_file/keep_custom_tracks": false, +"slice_242/save_to_file/path": "", +"slice_242/start_frame": 0, +"slice_243/end_frame": 0, +"slice_243/loop_mode": 0, +"slice_243/name": "", +"slice_243/save_to_file/enabled": false, +"slice_243/save_to_file/keep_custom_tracks": false, +"slice_243/save_to_file/path": "", +"slice_243/start_frame": 0, +"slice_244/end_frame": 0, +"slice_244/loop_mode": 0, +"slice_244/name": "", +"slice_244/save_to_file/enabled": false, +"slice_244/save_to_file/keep_custom_tracks": false, +"slice_244/save_to_file/path": "", +"slice_244/start_frame": 0, +"slice_245/end_frame": 0, +"slice_245/loop_mode": 0, +"slice_245/name": "", +"slice_245/save_to_file/enabled": false, +"slice_245/save_to_file/keep_custom_tracks": false, +"slice_245/save_to_file/path": "", +"slice_245/start_frame": 0, +"slice_246/end_frame": 0, +"slice_246/loop_mode": 0, +"slice_246/name": "", +"slice_246/save_to_file/enabled": false, +"slice_246/save_to_file/keep_custom_tracks": false, +"slice_246/save_to_file/path": "", +"slice_246/start_frame": 0, +"slice_247/end_frame": 0, +"slice_247/loop_mode": 0, +"slice_247/name": "", +"slice_247/save_to_file/enabled": false, +"slice_247/save_to_file/keep_custom_tracks": false, +"slice_247/save_to_file/path": "", +"slice_247/start_frame": 0, +"slice_248/end_frame": 0, +"slice_248/loop_mode": 0, +"slice_248/name": "", +"slice_248/save_to_file/enabled": false, +"slice_248/save_to_file/keep_custom_tracks": false, +"slice_248/save_to_file/path": "", +"slice_248/start_frame": 0, +"slice_249/end_frame": 0, +"slice_249/loop_mode": 0, +"slice_249/name": "", +"slice_249/save_to_file/enabled": false, +"slice_249/save_to_file/keep_custom_tracks": false, +"slice_249/save_to_file/path": "", +"slice_249/start_frame": 0, +"slice_25/end_frame": 0, +"slice_25/loop_mode": 0, +"slice_25/name": "", +"slice_25/save_to_file/enabled": false, +"slice_25/save_to_file/keep_custom_tracks": false, +"slice_25/save_to_file/path": "", +"slice_25/start_frame": 0, +"slice_250/end_frame": 0, +"slice_250/loop_mode": 0, +"slice_250/name": "", +"slice_250/save_to_file/enabled": false, +"slice_250/save_to_file/keep_custom_tracks": false, +"slice_250/save_to_file/path": "", +"slice_250/start_frame": 0, +"slice_251/end_frame": 0, +"slice_251/loop_mode": 0, +"slice_251/name": "", +"slice_251/save_to_file/enabled": false, +"slice_251/save_to_file/keep_custom_tracks": false, +"slice_251/save_to_file/path": "", +"slice_251/start_frame": 0, +"slice_252/end_frame": 0, +"slice_252/loop_mode": 0, +"slice_252/name": "", +"slice_252/save_to_file/enabled": false, +"slice_252/save_to_file/keep_custom_tracks": false, +"slice_252/save_to_file/path": "", +"slice_252/start_frame": 0, +"slice_253/end_frame": 0, +"slice_253/loop_mode": 0, +"slice_253/name": "", +"slice_253/save_to_file/enabled": false, +"slice_253/save_to_file/keep_custom_tracks": false, +"slice_253/save_to_file/path": "", +"slice_253/start_frame": 0, +"slice_254/end_frame": 0, +"slice_254/loop_mode": 0, +"slice_254/name": "", +"slice_254/save_to_file/enabled": false, +"slice_254/save_to_file/keep_custom_tracks": false, +"slice_254/save_to_file/path": "", +"slice_254/start_frame": 0, +"slice_255/end_frame": 0, +"slice_255/loop_mode": 0, +"slice_255/name": "", +"slice_255/save_to_file/enabled": false, +"slice_255/save_to_file/keep_custom_tracks": false, +"slice_255/save_to_file/path": "", +"slice_255/start_frame": 0, +"slice_256/end_frame": 0, +"slice_256/loop_mode": 0, +"slice_256/name": "", +"slice_256/save_to_file/enabled": false, +"slice_256/save_to_file/keep_custom_tracks": false, +"slice_256/save_to_file/path": "", +"slice_256/start_frame": 0, +"slice_26/end_frame": 0, +"slice_26/loop_mode": 0, +"slice_26/name": "", +"slice_26/save_to_file/enabled": false, +"slice_26/save_to_file/keep_custom_tracks": false, +"slice_26/save_to_file/path": "", +"slice_26/start_frame": 0, +"slice_27/end_frame": 0, +"slice_27/loop_mode": 0, +"slice_27/name": "", +"slice_27/save_to_file/enabled": false, +"slice_27/save_to_file/keep_custom_tracks": false, +"slice_27/save_to_file/path": "", +"slice_27/start_frame": 0, +"slice_28/end_frame": 0, +"slice_28/loop_mode": 0, +"slice_28/name": "", +"slice_28/save_to_file/enabled": false, +"slice_28/save_to_file/keep_custom_tracks": false, +"slice_28/save_to_file/path": "", +"slice_28/start_frame": 0, +"slice_29/end_frame": 0, +"slice_29/loop_mode": 0, +"slice_29/name": "", +"slice_29/save_to_file/enabled": false, +"slice_29/save_to_file/keep_custom_tracks": false, +"slice_29/save_to_file/path": "", +"slice_29/start_frame": 0, +"slice_3/end_frame": 0, +"slice_3/loop_mode": 0, +"slice_3/name": "", +"slice_3/save_to_file/enabled": false, +"slice_3/save_to_file/keep_custom_tracks": false, +"slice_3/save_to_file/path": "", +"slice_3/start_frame": 0, +"slice_30/end_frame": 0, +"slice_30/loop_mode": 0, +"slice_30/name": "", +"slice_30/save_to_file/enabled": false, +"slice_30/save_to_file/keep_custom_tracks": false, +"slice_30/save_to_file/path": "", +"slice_30/start_frame": 0, +"slice_31/end_frame": 0, +"slice_31/loop_mode": 0, +"slice_31/name": "", +"slice_31/save_to_file/enabled": false, +"slice_31/save_to_file/keep_custom_tracks": false, +"slice_31/save_to_file/path": "", +"slice_31/start_frame": 0, +"slice_32/end_frame": 0, +"slice_32/loop_mode": 0, +"slice_32/name": "", +"slice_32/save_to_file/enabled": false, +"slice_32/save_to_file/keep_custom_tracks": false, +"slice_32/save_to_file/path": "", +"slice_32/start_frame": 0, +"slice_33/end_frame": 0, +"slice_33/loop_mode": 0, +"slice_33/name": "", +"slice_33/save_to_file/enabled": false, +"slice_33/save_to_file/keep_custom_tracks": false, +"slice_33/save_to_file/path": "", +"slice_33/start_frame": 0, +"slice_34/end_frame": 0, +"slice_34/loop_mode": 0, +"slice_34/name": "", +"slice_34/save_to_file/enabled": false, +"slice_34/save_to_file/keep_custom_tracks": false, +"slice_34/save_to_file/path": "", +"slice_34/start_frame": 0, +"slice_35/end_frame": 0, +"slice_35/loop_mode": 0, +"slice_35/name": "", +"slice_35/save_to_file/enabled": false, +"slice_35/save_to_file/keep_custom_tracks": false, +"slice_35/save_to_file/path": "", +"slice_35/start_frame": 0, +"slice_36/end_frame": 0, +"slice_36/loop_mode": 0, +"slice_36/name": "", +"slice_36/save_to_file/enabled": false, +"slice_36/save_to_file/keep_custom_tracks": false, +"slice_36/save_to_file/path": "", +"slice_36/start_frame": 0, +"slice_37/end_frame": 0, +"slice_37/loop_mode": 0, +"slice_37/name": "", +"slice_37/save_to_file/enabled": false, +"slice_37/save_to_file/keep_custom_tracks": false, +"slice_37/save_to_file/path": "", +"slice_37/start_frame": 0, +"slice_38/end_frame": 0, +"slice_38/loop_mode": 0, +"slice_38/name": "", +"slice_38/save_to_file/enabled": false, +"slice_38/save_to_file/keep_custom_tracks": false, +"slice_38/save_to_file/path": "", +"slice_38/start_frame": 0, +"slice_39/end_frame": 0, +"slice_39/loop_mode": 0, +"slice_39/name": "", +"slice_39/save_to_file/enabled": false, +"slice_39/save_to_file/keep_custom_tracks": false, +"slice_39/save_to_file/path": "", +"slice_39/start_frame": 0, +"slice_4/end_frame": 0, +"slice_4/loop_mode": 0, +"slice_4/name": "", +"slice_4/save_to_file/enabled": false, +"slice_4/save_to_file/keep_custom_tracks": false, +"slice_4/save_to_file/path": "", +"slice_4/start_frame": 0, +"slice_40/end_frame": 0, +"slice_40/loop_mode": 0, +"slice_40/name": "", +"slice_40/save_to_file/enabled": false, +"slice_40/save_to_file/keep_custom_tracks": false, +"slice_40/save_to_file/path": "", +"slice_40/start_frame": 0, +"slice_41/end_frame": 0, +"slice_41/loop_mode": 0, +"slice_41/name": "", +"slice_41/save_to_file/enabled": false, +"slice_41/save_to_file/keep_custom_tracks": false, +"slice_41/save_to_file/path": "", +"slice_41/start_frame": 0, +"slice_42/end_frame": 0, +"slice_42/loop_mode": 0, +"slice_42/name": "", +"slice_42/save_to_file/enabled": false, +"slice_42/save_to_file/keep_custom_tracks": false, +"slice_42/save_to_file/path": "", +"slice_42/start_frame": 0, +"slice_43/end_frame": 0, +"slice_43/loop_mode": 0, +"slice_43/name": "", +"slice_43/save_to_file/enabled": false, +"slice_43/save_to_file/keep_custom_tracks": false, +"slice_43/save_to_file/path": "", +"slice_43/start_frame": 0, +"slice_44/end_frame": 0, +"slice_44/loop_mode": 0, +"slice_44/name": "", +"slice_44/save_to_file/enabled": false, +"slice_44/save_to_file/keep_custom_tracks": false, +"slice_44/save_to_file/path": "", +"slice_44/start_frame": 0, +"slice_45/end_frame": 0, +"slice_45/loop_mode": 0, +"slice_45/name": "", +"slice_45/save_to_file/enabled": false, +"slice_45/save_to_file/keep_custom_tracks": false, +"slice_45/save_to_file/path": "", +"slice_45/start_frame": 0, +"slice_46/end_frame": 0, +"slice_46/loop_mode": 0, +"slice_46/name": "", +"slice_46/save_to_file/enabled": false, +"slice_46/save_to_file/keep_custom_tracks": false, +"slice_46/save_to_file/path": "", +"slice_46/start_frame": 0, +"slice_47/end_frame": 0, +"slice_47/loop_mode": 0, +"slice_47/name": "", +"slice_47/save_to_file/enabled": false, +"slice_47/save_to_file/keep_custom_tracks": false, +"slice_47/save_to_file/path": "", +"slice_47/start_frame": 0, +"slice_48/end_frame": 0, +"slice_48/loop_mode": 0, +"slice_48/name": "", +"slice_48/save_to_file/enabled": false, +"slice_48/save_to_file/keep_custom_tracks": false, +"slice_48/save_to_file/path": "", +"slice_48/start_frame": 0, +"slice_49/end_frame": 0, +"slice_49/loop_mode": 0, +"slice_49/name": "", +"slice_49/save_to_file/enabled": false, +"slice_49/save_to_file/keep_custom_tracks": false, +"slice_49/save_to_file/path": "", +"slice_49/start_frame": 0, +"slice_5/end_frame": 0, +"slice_5/loop_mode": 0, +"slice_5/name": "", +"slice_5/save_to_file/enabled": false, +"slice_5/save_to_file/keep_custom_tracks": false, +"slice_5/save_to_file/path": "", +"slice_5/start_frame": 0, +"slice_50/end_frame": 0, +"slice_50/loop_mode": 0, +"slice_50/name": "", +"slice_50/save_to_file/enabled": false, +"slice_50/save_to_file/keep_custom_tracks": false, +"slice_50/save_to_file/path": "", +"slice_50/start_frame": 0, +"slice_51/end_frame": 0, +"slice_51/loop_mode": 0, +"slice_51/name": "", +"slice_51/save_to_file/enabled": false, +"slice_51/save_to_file/keep_custom_tracks": false, +"slice_51/save_to_file/path": "", +"slice_51/start_frame": 0, +"slice_52/end_frame": 0, +"slice_52/loop_mode": 0, +"slice_52/name": "", +"slice_52/save_to_file/enabled": false, +"slice_52/save_to_file/keep_custom_tracks": false, +"slice_52/save_to_file/path": "", +"slice_52/start_frame": 0, +"slice_53/end_frame": 0, +"slice_53/loop_mode": 0, +"slice_53/name": "", +"slice_53/save_to_file/enabled": false, +"slice_53/save_to_file/keep_custom_tracks": false, +"slice_53/save_to_file/path": "", +"slice_53/start_frame": 0, +"slice_54/end_frame": 0, +"slice_54/loop_mode": 0, +"slice_54/name": "", +"slice_54/save_to_file/enabled": false, +"slice_54/save_to_file/keep_custom_tracks": false, +"slice_54/save_to_file/path": "", +"slice_54/start_frame": 0, +"slice_55/end_frame": 0, +"slice_55/loop_mode": 0, +"slice_55/name": "", +"slice_55/save_to_file/enabled": false, +"slice_55/save_to_file/keep_custom_tracks": false, +"slice_55/save_to_file/path": "", +"slice_55/start_frame": 0, +"slice_56/end_frame": 0, +"slice_56/loop_mode": 0, +"slice_56/name": "", +"slice_56/save_to_file/enabled": false, +"slice_56/save_to_file/keep_custom_tracks": false, +"slice_56/save_to_file/path": "", +"slice_56/start_frame": 0, +"slice_57/end_frame": 0, +"slice_57/loop_mode": 0, +"slice_57/name": "", +"slice_57/save_to_file/enabled": false, +"slice_57/save_to_file/keep_custom_tracks": false, +"slice_57/save_to_file/path": "", +"slice_57/start_frame": 0, +"slice_58/end_frame": 0, +"slice_58/loop_mode": 0, +"slice_58/name": "", +"slice_58/save_to_file/enabled": false, +"slice_58/save_to_file/keep_custom_tracks": false, +"slice_58/save_to_file/path": "", +"slice_58/start_frame": 0, +"slice_59/end_frame": 0, +"slice_59/loop_mode": 0, +"slice_59/name": "", +"slice_59/save_to_file/enabled": false, +"slice_59/save_to_file/keep_custom_tracks": false, +"slice_59/save_to_file/path": "", +"slice_59/start_frame": 0, +"slice_6/end_frame": 0, +"slice_6/loop_mode": 0, +"slice_6/name": "", +"slice_6/save_to_file/enabled": false, +"slice_6/save_to_file/keep_custom_tracks": false, +"slice_6/save_to_file/path": "", +"slice_6/start_frame": 0, +"slice_60/end_frame": 0, +"slice_60/loop_mode": 0, +"slice_60/name": "", +"slice_60/save_to_file/enabled": false, +"slice_60/save_to_file/keep_custom_tracks": false, +"slice_60/save_to_file/path": "", +"slice_60/start_frame": 0, +"slice_61/end_frame": 0, +"slice_61/loop_mode": 0, +"slice_61/name": "", +"slice_61/save_to_file/enabled": false, +"slice_61/save_to_file/keep_custom_tracks": false, +"slice_61/save_to_file/path": "", +"slice_61/start_frame": 0, +"slice_62/end_frame": 0, +"slice_62/loop_mode": 0, +"slice_62/name": "", +"slice_62/save_to_file/enabled": false, +"slice_62/save_to_file/keep_custom_tracks": false, +"slice_62/save_to_file/path": "", +"slice_62/start_frame": 0, +"slice_63/end_frame": 0, +"slice_63/loop_mode": 0, +"slice_63/name": "", +"slice_63/save_to_file/enabled": false, +"slice_63/save_to_file/keep_custom_tracks": false, +"slice_63/save_to_file/path": "", +"slice_63/start_frame": 0, +"slice_64/end_frame": 0, +"slice_64/loop_mode": 0, +"slice_64/name": "", +"slice_64/save_to_file/enabled": false, +"slice_64/save_to_file/keep_custom_tracks": false, +"slice_64/save_to_file/path": "", +"slice_64/start_frame": 0, +"slice_65/end_frame": 0, +"slice_65/loop_mode": 0, +"slice_65/name": "", +"slice_65/save_to_file/enabled": false, +"slice_65/save_to_file/keep_custom_tracks": false, +"slice_65/save_to_file/path": "", +"slice_65/start_frame": 0, +"slice_66/end_frame": 0, +"slice_66/loop_mode": 0, +"slice_66/name": "", +"slice_66/save_to_file/enabled": false, +"slice_66/save_to_file/keep_custom_tracks": false, +"slice_66/save_to_file/path": "", +"slice_66/start_frame": 0, +"slice_67/end_frame": 0, +"slice_67/loop_mode": 0, +"slice_67/name": "", +"slice_67/save_to_file/enabled": false, +"slice_67/save_to_file/keep_custom_tracks": false, +"slice_67/save_to_file/path": "", +"slice_67/start_frame": 0, +"slice_68/end_frame": 0, +"slice_68/loop_mode": 0, +"slice_68/name": "", +"slice_68/save_to_file/enabled": false, +"slice_68/save_to_file/keep_custom_tracks": false, +"slice_68/save_to_file/path": "", +"slice_68/start_frame": 0, +"slice_69/end_frame": 0, +"slice_69/loop_mode": 0, +"slice_69/name": "", +"slice_69/save_to_file/enabled": false, +"slice_69/save_to_file/keep_custom_tracks": false, +"slice_69/save_to_file/path": "", +"slice_69/start_frame": 0, +"slice_7/end_frame": 0, +"slice_7/loop_mode": 0, +"slice_7/name": "", +"slice_7/save_to_file/enabled": false, +"slice_7/save_to_file/keep_custom_tracks": false, +"slice_7/save_to_file/path": "", +"slice_7/start_frame": 0, +"slice_70/end_frame": 0, +"slice_70/loop_mode": 0, +"slice_70/name": "", +"slice_70/save_to_file/enabled": false, +"slice_70/save_to_file/keep_custom_tracks": false, +"slice_70/save_to_file/path": "", +"slice_70/start_frame": 0, +"slice_71/end_frame": 0, +"slice_71/loop_mode": 0, +"slice_71/name": "", +"slice_71/save_to_file/enabled": false, +"slice_71/save_to_file/keep_custom_tracks": false, +"slice_71/save_to_file/path": "", +"slice_71/start_frame": 0, +"slice_72/end_frame": 0, +"slice_72/loop_mode": 0, +"slice_72/name": "", +"slice_72/save_to_file/enabled": false, +"slice_72/save_to_file/keep_custom_tracks": false, +"slice_72/save_to_file/path": "", +"slice_72/start_frame": 0, +"slice_73/end_frame": 0, +"slice_73/loop_mode": 0, +"slice_73/name": "", +"slice_73/save_to_file/enabled": false, +"slice_73/save_to_file/keep_custom_tracks": false, +"slice_73/save_to_file/path": "", +"slice_73/start_frame": 0, +"slice_74/end_frame": 0, +"slice_74/loop_mode": 0, +"slice_74/name": "", +"slice_74/save_to_file/enabled": false, +"slice_74/save_to_file/keep_custom_tracks": false, +"slice_74/save_to_file/path": "", +"slice_74/start_frame": 0, +"slice_75/end_frame": 0, +"slice_75/loop_mode": 0, +"slice_75/name": "", +"slice_75/save_to_file/enabled": false, +"slice_75/save_to_file/keep_custom_tracks": false, +"slice_75/save_to_file/path": "", +"slice_75/start_frame": 0, +"slice_76/end_frame": 0, +"slice_76/loop_mode": 0, +"slice_76/name": "", +"slice_76/save_to_file/enabled": false, +"slice_76/save_to_file/keep_custom_tracks": false, +"slice_76/save_to_file/path": "", +"slice_76/start_frame": 0, +"slice_77/end_frame": 0, +"slice_77/loop_mode": 0, +"slice_77/name": "", +"slice_77/save_to_file/enabled": false, +"slice_77/save_to_file/keep_custom_tracks": false, +"slice_77/save_to_file/path": "", +"slice_77/start_frame": 0, +"slice_78/end_frame": 0, +"slice_78/loop_mode": 0, +"slice_78/name": "", +"slice_78/save_to_file/enabled": false, +"slice_78/save_to_file/keep_custom_tracks": false, +"slice_78/save_to_file/path": "", +"slice_78/start_frame": 0, +"slice_79/end_frame": 0, +"slice_79/loop_mode": 0, +"slice_79/name": "", +"slice_79/save_to_file/enabled": false, +"slice_79/save_to_file/keep_custom_tracks": false, +"slice_79/save_to_file/path": "", +"slice_79/start_frame": 0, +"slice_8/end_frame": 0, +"slice_8/loop_mode": 0, +"slice_8/name": "", +"slice_8/save_to_file/enabled": false, +"slice_8/save_to_file/keep_custom_tracks": false, +"slice_8/save_to_file/path": "", +"slice_8/start_frame": 0, +"slice_80/end_frame": 0, +"slice_80/loop_mode": 0, +"slice_80/name": "", +"slice_80/save_to_file/enabled": false, +"slice_80/save_to_file/keep_custom_tracks": false, +"slice_80/save_to_file/path": "", +"slice_80/start_frame": 0, +"slice_81/end_frame": 0, +"slice_81/loop_mode": 0, +"slice_81/name": "", +"slice_81/save_to_file/enabled": false, +"slice_81/save_to_file/keep_custom_tracks": false, +"slice_81/save_to_file/path": "", +"slice_81/start_frame": 0, +"slice_82/end_frame": 0, +"slice_82/loop_mode": 0, +"slice_82/name": "", +"slice_82/save_to_file/enabled": false, +"slice_82/save_to_file/keep_custom_tracks": false, +"slice_82/save_to_file/path": "", +"slice_82/start_frame": 0, +"slice_83/end_frame": 0, +"slice_83/loop_mode": 0, +"slice_83/name": "", +"slice_83/save_to_file/enabled": false, +"slice_83/save_to_file/keep_custom_tracks": false, +"slice_83/save_to_file/path": "", +"slice_83/start_frame": 0, +"slice_84/end_frame": 0, +"slice_84/loop_mode": 0, +"slice_84/name": "", +"slice_84/save_to_file/enabled": false, +"slice_84/save_to_file/keep_custom_tracks": false, +"slice_84/save_to_file/path": "", +"slice_84/start_frame": 0, +"slice_85/end_frame": 0, +"slice_85/loop_mode": 0, +"slice_85/name": "", +"slice_85/save_to_file/enabled": false, +"slice_85/save_to_file/keep_custom_tracks": false, +"slice_85/save_to_file/path": "", +"slice_85/start_frame": 0, +"slice_86/end_frame": 0, +"slice_86/loop_mode": 0, +"slice_86/name": "", +"slice_86/save_to_file/enabled": false, +"slice_86/save_to_file/keep_custom_tracks": false, +"slice_86/save_to_file/path": "", +"slice_86/start_frame": 0, +"slice_87/end_frame": 0, +"slice_87/loop_mode": 0, +"slice_87/name": "", +"slice_87/save_to_file/enabled": false, +"slice_87/save_to_file/keep_custom_tracks": false, +"slice_87/save_to_file/path": "", +"slice_87/start_frame": 0, +"slice_88/end_frame": 0, +"slice_88/loop_mode": 0, +"slice_88/name": "", +"slice_88/save_to_file/enabled": false, +"slice_88/save_to_file/keep_custom_tracks": false, +"slice_88/save_to_file/path": "", +"slice_88/start_frame": 0, +"slice_89/end_frame": 0, +"slice_89/loop_mode": 0, +"slice_89/name": "", +"slice_89/save_to_file/enabled": false, +"slice_89/save_to_file/keep_custom_tracks": false, +"slice_89/save_to_file/path": "", +"slice_89/start_frame": 0, +"slice_9/end_frame": 0, +"slice_9/loop_mode": 0, +"slice_9/name": "", +"slice_9/save_to_file/enabled": false, +"slice_9/save_to_file/keep_custom_tracks": false, +"slice_9/save_to_file/path": "", +"slice_9/start_frame": 0, +"slice_90/end_frame": 0, +"slice_90/loop_mode": 0, +"slice_90/name": "", +"slice_90/save_to_file/enabled": false, +"slice_90/save_to_file/keep_custom_tracks": false, +"slice_90/save_to_file/path": "", +"slice_90/start_frame": 0, +"slice_91/end_frame": 0, +"slice_91/loop_mode": 0, +"slice_91/name": "", +"slice_91/save_to_file/enabled": false, +"slice_91/save_to_file/keep_custom_tracks": false, +"slice_91/save_to_file/path": "", +"slice_91/start_frame": 0, +"slice_92/end_frame": 0, +"slice_92/loop_mode": 0, +"slice_92/name": "", +"slice_92/save_to_file/enabled": false, +"slice_92/save_to_file/keep_custom_tracks": false, +"slice_92/save_to_file/path": "", +"slice_92/start_frame": 0, +"slice_93/end_frame": 0, +"slice_93/loop_mode": 0, +"slice_93/name": "", +"slice_93/save_to_file/enabled": false, +"slice_93/save_to_file/keep_custom_tracks": false, +"slice_93/save_to_file/path": "", +"slice_93/start_frame": 0, +"slice_94/end_frame": 0, +"slice_94/loop_mode": 0, +"slice_94/name": "", +"slice_94/save_to_file/enabled": false, +"slice_94/save_to_file/keep_custom_tracks": false, +"slice_94/save_to_file/path": "", +"slice_94/start_frame": 0, +"slice_95/end_frame": 0, +"slice_95/loop_mode": 0, +"slice_95/name": "", +"slice_95/save_to_file/enabled": false, +"slice_95/save_to_file/keep_custom_tracks": false, +"slice_95/save_to_file/path": "", +"slice_95/start_frame": 0, +"slice_96/end_frame": 0, +"slice_96/loop_mode": 0, +"slice_96/name": "", +"slice_96/save_to_file/enabled": false, +"slice_96/save_to_file/keep_custom_tracks": false, +"slice_96/save_to_file/path": "", +"slice_96/start_frame": 0, +"slice_97/end_frame": 0, +"slice_97/loop_mode": 0, +"slice_97/name": "", +"slice_97/save_to_file/enabled": false, +"slice_97/save_to_file/keep_custom_tracks": false, +"slice_97/save_to_file/path": "", +"slice_97/start_frame": 0, +"slice_98/end_frame": 0, +"slice_98/loop_mode": 0, +"slice_98/name": "", +"slice_98/save_to_file/enabled": false, +"slice_98/save_to_file/keep_custom_tracks": false, +"slice_98/save_to_file/path": "", +"slice_98/start_frame": 0, +"slice_99/end_frame": 0, +"slice_99/loop_mode": 0, +"slice_99/name": "", +"slice_99/save_to_file/enabled": false, +"slice_99/save_to_file/keep_custom_tracks": false, +"slice_99/save_to_file/path": "", +"slice_99/start_frame": 0, +"slices/amount": null } } } diff --git a/3d/platformer/game.tscn b/3d/platformer/game.tscn index 8f9d2f90ce9..7194ee5b79c 100644 --- a/3d/platformer/game.tscn +++ b/3d/platformer/game.tscn @@ -25,136 +25,223 @@ friction = 0.0 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -6, -12) [node name="Coin1" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.5311, 2.85075, 5.24675) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.5311, 2.35075, 5.24675) [node name="Coin2" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.5311, 2.85075, 7.24675) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18.5311, 2.35075, 7.24675) [node name="Coin3" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5311, 2.85075, 5.24675) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5311, 2.35075, 5.24675) [node name="Coin44" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5311, 2.85075, 7.24675) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20.5311, 2.35075, 7.24675) [node name="Coin4" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 11.0239) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 10.28, 11.0239) [node name="Coin42" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 13.0239) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 10.28, 13.0239) [node name="Coin43" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 11.0239) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 10.28, 11.0239) [node name="Coin33" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 13.0239) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 10.28, 13.0239) [node name="Coin5" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 11.03) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.9027, 11.03) [node name="Coin41" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 13.03) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.9027, 13.03) [node name="Coin34" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 13.03) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.9027, 13.03) [node name="Coin40" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 11.03) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.9027, 11.03) [node name="Coin6" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 15.0922) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 10.28, 15.0922) [node name="Coin39" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.28, 17.0922) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 10.28, 17.0922) [node name="Coin35" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 17.0922) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 10.28, 17.0922) [node name="Coin38" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.28, 15.0922) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 10.28, 15.0922) [node name="Coin37" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 15.0983) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.9027, 15.0983) [node name="Coin36" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 12.9027, 17.0983) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 3.61344, 11.9027, 17.0983) [node name="Coin32" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 15.0983) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.9027, 15.0983) [node name="Coin31" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 12.9027, 17.0983) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.61344, 11.9027, 17.0983) [node name="Coin7" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 4.14271, 26.9338) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 4.24271, 26.9338) [node name="Coin30" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 4.14271, 28.9338) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 4.24271, 28.9338) [node name="Coin29" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 5.76534, 26.9399) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 5.86534, 26.9399) [node name="Coin28" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 5.76534, 28.9399) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 5.86534, 28.9399) [node name="Coin27" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 5.76534, 26.9399) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 5.86534, 26.9399) [node name="Coin26" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 4.14271, 28.9338) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 4.24271, 28.9338) [node name="Coin25" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 4.14271, 26.9338) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 59.057, 4.24271, 26.9338) [node name="Coin24" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 5.76534, 28.9399) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.057, 5.86534, 28.9399) [node name="Coin8" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 6.16547, 28.8899) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 6.26547, 28.8899) [node name="Coin23" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 7.7881, 28.896) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 7.8881, 28.896) [node name="Coin22" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 6.16547, 30.8899) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 6.26547, 30.8899) [node name="Coin21" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 7.7881, 28.896) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 7.8881, 28.896) [node name="Coin20" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 7.7881, 30.896) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 7.8881, 30.896) [node name="Coin19" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 6.16547, 28.8899) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 6.26547, 28.8899) [node name="Coin18" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 6.16547, 30.8899) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 65.0108, 6.26547, 30.8899) [node name="Coin17" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 7.7881, 30.896) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 63.0108, 7.8881, 30.896) [node name="Coin9" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 2.98252, 23.1775) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.0614, 2.48252, 23.0775) [node name="Coin16" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 4.60515, 23.1836) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.0614, 4.10515, 23.0836) [node name="Coin15" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 2.98252, 25.1775) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.0614, 2.48252, 25.0775) [node name="Coin14" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 2.98252, 23.1775) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.0614, 2.48252, 23.0775) [node name="Coin13" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 4.60515, 25.1836) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.0614, 4.10515, 25.0836) [node name="Coin12" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 4.60515, 23.1836) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.0614, 4.10515, 23.0836) [node name="Coin11" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.5614, 2.98252, 25.1775) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 53.0614, 2.48252, 25.0775) [node name="Coin10" parent="Coins" instance=ExtResource("2_chew2")] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.5614, 4.60515, 25.1836) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 51.0614, 4.10515, 25.0836) + +[node name="Coin45" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.0614, 10.2052, 19.0836) + +[node name="Coin46" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13.0614, 8.20515, 15.0836) + +[node name="Coin72" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 11.1614, 11.1052, 13.1836) + +[node name="Coin73" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14.7614, 11.1052, 16.7836) + +[node name="Coin71" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 9.0614, 10.2052, 11.0836) + +[node name="Coin47" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 35.0614, 10.2052, 11.0836) + +[node name="Coin48" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31.0614, 10.2052, 11.0836) + +[node name="Coin49" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31.0614, 4.20515, 11.0836) + +[node name="Coin50" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 31.0614, 4.20515, 13.0836) + +[node name="Coin51" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 33.0614, 4.20515, 13.0836) + +[node name="Coin52" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 33.0614, 4.20515, 11.0836) + +[node name="Coin53" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70.0614, 2.20515, 13.0836) + +[node name="Coin54" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 70.0614, 2.20515, 15.0836) + +[node name="Coin55" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 72.0614, 2.20515, 15.0836) + +[node name="Coin56" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 72.0614, 2.20515, 13.0836) + +[node name="Coin57" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 55.0614, 2.20515, 0.0835991) + +[node name="Coin58" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 55.0614, 2.20515, 2.0836) + +[node name="Coin59" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.0614, 2.20515, 2.0836) + +[node name="Coin60" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 57.0614, 2.20515, 0.0835991) + +[node name="Coin61" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.0614, 6.20515, -10.9164) + +[node name="Coin62" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.0614, 6.20515, -10.9164) + +[node name="Coin63" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.0614014, 6.20515, -10.9164) + +[node name="Coin64" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.0614, 6.20515, -10.9164) + +[node name="Coin65" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.9386, 9.20515, 2.0836) + +[node name="Coin67" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.9386, 9.20515, 6.0836) + +[node name="Coin68" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.9386, 10.2052, 5.0836) + +[node name="Coin69" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.9386, 10.2052, 3.0836) + +[node name="Coin70" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.9386, 10.7052, 4.0836) + +[node name="Coin66" parent="Coins" instance=ExtResource("2_chew2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.9386, 6.20515, -10.9164) [node name="Enemies" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -16, -6, -12) @@ -176,4 +263,4 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 52.6702, 5.40827, 27.7128) physics_material_override = SubResource("4") [node name="Player" parent="." instance=ExtResource("4_ray4s")] -transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -7.49833, -1.84189, 3.9334) +transform = Transform3D(-4.37114e-08, 0, -1, 0, 1, 0, 1, 0, -4.37114e-08, -9.49833, -3.84189, 3.9334) diff --git a/3d/platformer/player/bullet/bullet.tscn b/3d/platformer/player/bullet/bullet.tscn index ef31ea44440..2d62bccb0a9 100644 --- a/3d/platformer/player/bullet/bullet.tscn +++ b/3d/platformer/player/bullet/bullet.tscn @@ -1,22 +1,22 @@ -[gd_scene load_steps=10 format=3 uid="uid://0qwkkgqdb77r"] +[gd_scene load_steps=12 format=3 uid="uid://0qwkkgqdb77r"] [ext_resource type="Script" path="res://player/bullet/bullet.gd" id="1"] -[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_4xppo"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_p7q83"] albedo_color = Color(0.701961, 0.698039, 0.513726, 1) roughness = 0.0 emission_enabled = true emission = Color(1, 0.884824, 0.513098, 1) emission_energy_multiplier = 0.5 -[sub_resource type="SphereMesh" id="SphereMesh_syslt"] -material = SubResource("StandardMaterial3D_4xppo") +[sub_resource type="SphereMesh" id="SphereMesh_gjrxu"] +material = SubResource("StandardMaterial3D_p7q83") radius = 0.25 height = 0.5 radial_segments = 16 rings = 8 -[sub_resource type="StandardMaterial3D" id="3"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_aw6a5"] albedo_color = Color(0.7, 0.7, 0.7, 1) metallic = 0.1 roughness = 0.0 @@ -24,7 +24,34 @@ emission_enabled = true emission = Color(1, 0.884824, 0.513098, 1) emission_energy_multiplier = 3.71 -[sub_resource type="Animation" id="4"] +[sub_resource type="Animation" id="Animation_vsjh6"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath("Sphere:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(1, 1, 1)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath("OmniLight3D:omni_range") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [5.0] +} + +[sub_resource type="Animation" id="Animation_i372c"] length = 2.0 tracks/0/type = "value" tracks/0/imported = false @@ -41,7 +68,7 @@ tracks/0/keys = { tracks/1/type = "value" tracks/1/imported = false tracks/1/enabled = true -tracks/1/path = NodePath("GPUParticles3D:emitting") +tracks/1/path = NodePath("CPUParticles3D:emitting") tracks/1/interp = 1 tracks/1/loop_wrap = true tracks/1/keys = { @@ -64,23 +91,52 @@ tracks/2/keys = { "method": &"queue_free" }] } +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("Sphere:scale") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0, 1.5), +"transitions": PackedFloat32Array(-2, -2), +"update": 0, +"values": [Vector3(1, 1, 1), Vector3(0, 0, 0)] +} +tracks/4/type = "value" +tracks/4/imported = false +tracks/4/enabled = true +tracks/4/path = NodePath("OmniLight3D:omni_range") +tracks/4/interp = 1 +tracks/4/loop_wrap = true +tracks/4/keys = { +"times": PackedFloat32Array(0, 2), +"transitions": PackedFloat32Array(-2, -2), +"update": 0, +"values": [5.0, 0.0] +} -[sub_resource type="AnimationLibrary" id="AnimationLibrary_p1tyo"] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_pyoek"] _data = { -"life": SubResource("4") +"RESET": SubResource("Animation_vsjh6"), +"life": SubResource("Animation_i372c") } -[sub_resource type="SphereMesh" id="SphereMesh_xpgba"] -material = SubResource("StandardMaterial3D_4xppo") +[sub_resource type="SphereMesh" id="SphereMesh_hnt4a"] +material = SubResource("StandardMaterial3D_p7q83") radius = 0.125 height = 0.25 radial_segments = 16 rings = 8 -[sub_resource type="Gradient" id="5"] +[sub_resource type="Curve" id="Curve_4e8sm"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="Gradient" id="Gradient_ic2ol"] colors = PackedColorArray(1, 1, 1, 1, 1, 1, 1, 0) -[sub_resource type="SphereShape3D" id="6"] +[sub_resource type="SphereShape3D" id="SphereShape3D_vq2ey"] radius = 0.27 [node name="Bullet" type="RigidBody3D"] @@ -89,26 +145,32 @@ script = ExtResource("1") [node name="Sphere" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00159812, 0.0110106, 0.0045104) +visible = false cast_shadow = 0 -mesh = SubResource("SphereMesh_syslt") -surface_material_override/0 = SubResource("3") +mesh = SubResource("SphereMesh_gjrxu") +surface_material_override/0 = SubResource("StandardMaterial3D_aw6a5") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "life" libraries = { -"": SubResource("AnimationLibrary_p1tyo") +"": SubResource("AnimationLibrary_pyoek") } -[node name="GPUParticles3D" type="CPUParticles3D" parent="."] +[node name="CPUParticles3D" type="CPUParticles3D" parent="."] cast_shadow = 0 +emitting = false amount = 16 lifetime = 0.4 -fixed_fps = 60 -fract_delta = false -mesh = SubResource("SphereMesh_xpgba") +mesh = SubResource("SphereMesh_hnt4a") spread = 0.0 gravity = Vector3(0, 0, 0) -color_ramp = SubResource("5") +scale_amount_curve = SubResource("Curve_4e8sm") +color_ramp = SubResource("Gradient_ic2ol") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource("6") +shape = SubResource("SphereShape3D_vq2ey") + +[node name="OmniLight3D" type="OmniLight3D" parent="."] +light_color = Color(1, 0.733333, 0.278431, 1) +shadow_enabled = true +shadow_bias = 0.03 diff --git a/3d/platformer/player/player.gd b/3d/platformer/player/player.gd index 009e0fb447e..82c25ef83ce 100644 --- a/3d/platformer/player/player.gd +++ b/3d/platformer/player/player.gd @@ -9,14 +9,14 @@ enum _Anim { const SHOOT_TIME = 1.5 const SHOOT_SCALE = 2.0 const CHAR_SCALE = Vector3(0.3, 0.3, 0.3) -const MAX_SPEED = 4.5 +const MAX_SPEED = 6.0 const TURN_SPEED = 40.0 -const JUMP_VELOCITY = 8.5 +const JUMP_VELOCITY = 12.5 const BULLET_SPEED = 20.0 const AIR_IDLE_DEACCEL = false const ACCEL = 14.0 const DEACCEL = 14.0 -const AIR_ACCEL_FACTOR = 0.4 +const AIR_ACCEL_FACTOR = 0.5 const SHARP_TURN_THRESHOLD = deg_to_rad(140.0) var movement_dir := Vector3() @@ -24,6 +24,10 @@ var jumping := false var prev_shoot := false var shoot_blend := 0.0 +# Number of coins collected. +var coins := 0 + +@onready var initial_position := position @onready var gravity = ProjectSettings.get_setting("physics/3d/default_gravity") * \ ProjectSettings.get_setting("physics/3d/default_gravity_vector") @@ -32,6 +36,19 @@ var shoot_blend := 0.0 func _physics_process(delta): + if Input.is_action_pressed("reset_position") or global_position.y < -12: + # Player hit the reset button or fell off the map. + position = initial_position + velocity = Vector3.ZERO + + # Update coin count and its "parallax" copies. + # This gives text a pseudo-3D appearance while still using Label3D instead of the more limited TextMesh. + %CoinCount.text = str(coins) + %CoinCount.get_node("Parallax").text = str(coins) + %CoinCount.get_node("Parallax2").text = str(coins) + %CoinCount.get_node("Parallax3").text = str(coins) + %CoinCount.get_node("Parallax4").text = str(coins) + velocity += gravity * delta var anim := _Anim.FLOOR @@ -101,6 +118,7 @@ func _physics_process(delta): vertical_velocity = JUMP_VELOCITY jumping = true $SoundJump.play() + else: anim = _Anim.AIR @@ -114,6 +132,10 @@ func _physics_process(delta): horizontal_speed = 0 horizontal_velocity = horizontal_direction * horizontal_speed + if Input.is_action_just_released("jump") and velocity.y > 0.0: + # Reduce jump height if releasing the jump key before reaching the apex. + vertical_velocity *= 0.7 + if jumping and vertical_velocity < 0: jumping = false @@ -125,7 +147,7 @@ func _physics_process(delta): move_and_slide() if shoot_blend > 0: - shoot_blend -= delta * SHOOT_SCALE + shoot_blend *= 0.97 if (shoot_blend < 0): shoot_blend = 0 @@ -143,7 +165,11 @@ func _physics_process(delta): prev_shoot = shoot_attempt if is_on_floor(): - _animation_tree[&"parameters/walk/blend_amount"] = horizontal_speed / MAX_SPEED + # How much the player should be blending between the "idle" and "walk/run" animations. + _animation_tree[&"parameters/run/blend_amount"] = horizontal_speed / MAX_SPEED + + # How much the player should be running (as opposed to walking). 0.0 = fully walking, 1.0 = fully running. + _animation_tree[&"parameters/speed/blend_amount"] = minf(1.0, horizontal_speed / (MAX_SPEED * 0.5)) _animation_tree[&"parameters/state/current"] = anim _animation_tree[&"parameters/air_dir/blend_amount"] = clamp(-velocity.y / 4 + 0.5, 0, 1) diff --git a/3d/platformer/player/player.glb.import b/3d/platformer/player/player.glb.import index 1ed8f8eaa44..5d65a51ff99 100644 --- a/3d/platformer/player/player.glb.import +++ b/3d/platformer/player/player.glb.import @@ -3,7 +3,7 @@ importer="scene" importer_version=1 type="PackedScene" -uid="uid://b5ljbav3jdp61" +uid="uid://yd1e7ai2k5cr" path="res://.godot/imported/player.glb-d5e59c3624fa2635da7ea043f9526ccc.scn" [deps] @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/player.glb-d5e59c3624fa2635da7ea043f9526ccc.s nodes/root_type="Node3D" nodes/root_name="Player" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true @@ -24,6 +25,7 @@ meshes/lightmap_texel_size=0.2 skins/use_named_skins=true animation/import=true animation/fps=30 +animation/trimming=false import_script/path="" _subresources={ "animations": { @@ -31,25 +33,7207 @@ _subresources={ "save_to_file/enabled": false, "save_to_file/keep_custom_tracks": "", "save_to_file/path": "", -"settings/loop_mode": 1 +"settings/loop_mode": 1, +"slice_1/end_frame": 0, +"slice_1/loop_mode": 0, +"slice_1/name": "", +"slice_1/save_to_file/enabled": false, +"slice_1/save_to_file/keep_custom_tracks": false, +"slice_1/save_to_file/path": "", +"slice_1/start_frame": 0, +"slice_10/end_frame": 0, +"slice_10/loop_mode": 0, +"slice_10/name": "", +"slice_10/save_to_file/enabled": false, +"slice_10/save_to_file/keep_custom_tracks": false, +"slice_10/save_to_file/path": "", +"slice_10/start_frame": 0, +"slice_100/end_frame": 0, +"slice_100/loop_mode": 0, +"slice_100/name": "", +"slice_100/save_to_file/enabled": false, +"slice_100/save_to_file/keep_custom_tracks": false, +"slice_100/save_to_file/path": "", +"slice_100/start_frame": 0, +"slice_101/end_frame": 0, +"slice_101/loop_mode": 0, +"slice_101/name": "", +"slice_101/save_to_file/enabled": false, +"slice_101/save_to_file/keep_custom_tracks": false, +"slice_101/save_to_file/path": "", +"slice_101/start_frame": 0, +"slice_102/end_frame": 0, +"slice_102/loop_mode": 0, +"slice_102/name": "", +"slice_102/save_to_file/enabled": false, +"slice_102/save_to_file/keep_custom_tracks": false, +"slice_102/save_to_file/path": "", +"slice_102/start_frame": 0, +"slice_103/end_frame": 0, +"slice_103/loop_mode": 0, +"slice_103/name": "", +"slice_103/save_to_file/enabled": false, +"slice_103/save_to_file/keep_custom_tracks": false, +"slice_103/save_to_file/path": "", +"slice_103/start_frame": 0, +"slice_104/end_frame": 0, +"slice_104/loop_mode": 0, +"slice_104/name": "", +"slice_104/save_to_file/enabled": false, +"slice_104/save_to_file/keep_custom_tracks": false, +"slice_104/save_to_file/path": "", +"slice_104/start_frame": 0, +"slice_105/end_frame": 0, +"slice_105/loop_mode": 0, +"slice_105/name": "", +"slice_105/save_to_file/enabled": false, +"slice_105/save_to_file/keep_custom_tracks": false, +"slice_105/save_to_file/path": "", +"slice_105/start_frame": 0, +"slice_106/end_frame": 0, +"slice_106/loop_mode": 0, +"slice_106/name": "", +"slice_106/save_to_file/enabled": false, +"slice_106/save_to_file/keep_custom_tracks": false, +"slice_106/save_to_file/path": "", +"slice_106/start_frame": 0, +"slice_107/end_frame": 0, +"slice_107/loop_mode": 0, +"slice_107/name": "", +"slice_107/save_to_file/enabled": false, +"slice_107/save_to_file/keep_custom_tracks": false, +"slice_107/save_to_file/path": "", +"slice_107/start_frame": 0, +"slice_108/end_frame": 0, +"slice_108/loop_mode": 0, +"slice_108/name": "", +"slice_108/save_to_file/enabled": false, +"slice_108/save_to_file/keep_custom_tracks": false, +"slice_108/save_to_file/path": "", +"slice_108/start_frame": 0, +"slice_109/end_frame": 0, +"slice_109/loop_mode": 0, +"slice_109/name": "", +"slice_109/save_to_file/enabled": false, +"slice_109/save_to_file/keep_custom_tracks": false, +"slice_109/save_to_file/path": "", +"slice_109/start_frame": 0, +"slice_11/end_frame": 0, +"slice_11/loop_mode": 0, +"slice_11/name": "", +"slice_11/save_to_file/enabled": false, +"slice_11/save_to_file/keep_custom_tracks": false, +"slice_11/save_to_file/path": "", +"slice_11/start_frame": 0, +"slice_110/end_frame": 0, +"slice_110/loop_mode": 0, +"slice_110/name": "", +"slice_110/save_to_file/enabled": false, +"slice_110/save_to_file/keep_custom_tracks": false, +"slice_110/save_to_file/path": "", +"slice_110/start_frame": 0, +"slice_111/end_frame": 0, +"slice_111/loop_mode": 0, +"slice_111/name": "", +"slice_111/save_to_file/enabled": false, +"slice_111/save_to_file/keep_custom_tracks": false, +"slice_111/save_to_file/path": "", +"slice_111/start_frame": 0, +"slice_112/end_frame": 0, +"slice_112/loop_mode": 0, +"slice_112/name": "", +"slice_112/save_to_file/enabled": false, +"slice_112/save_to_file/keep_custom_tracks": false, +"slice_112/save_to_file/path": "", +"slice_112/start_frame": 0, +"slice_113/end_frame": 0, +"slice_113/loop_mode": 0, +"slice_113/name": "", +"slice_113/save_to_file/enabled": false, +"slice_113/save_to_file/keep_custom_tracks": false, +"slice_113/save_to_file/path": "", +"slice_113/start_frame": 0, +"slice_114/end_frame": 0, +"slice_114/loop_mode": 0, +"slice_114/name": "", +"slice_114/save_to_file/enabled": false, +"slice_114/save_to_file/keep_custom_tracks": false, +"slice_114/save_to_file/path": "", +"slice_114/start_frame": 0, +"slice_115/end_frame": 0, +"slice_115/loop_mode": 0, +"slice_115/name": "", +"slice_115/save_to_file/enabled": false, +"slice_115/save_to_file/keep_custom_tracks": false, +"slice_115/save_to_file/path": "", +"slice_115/start_frame": 0, +"slice_116/end_frame": 0, +"slice_116/loop_mode": 0, +"slice_116/name": "", +"slice_116/save_to_file/enabled": false, +"slice_116/save_to_file/keep_custom_tracks": false, +"slice_116/save_to_file/path": "", +"slice_116/start_frame": 0, +"slice_117/end_frame": 0, +"slice_117/loop_mode": 0, +"slice_117/name": "", +"slice_117/save_to_file/enabled": false, +"slice_117/save_to_file/keep_custom_tracks": false, +"slice_117/save_to_file/path": "", +"slice_117/start_frame": 0, +"slice_118/end_frame": 0, +"slice_118/loop_mode": 0, +"slice_118/name": "", +"slice_118/save_to_file/enabled": false, +"slice_118/save_to_file/keep_custom_tracks": false, +"slice_118/save_to_file/path": "", +"slice_118/start_frame": 0, +"slice_119/end_frame": 0, +"slice_119/loop_mode": 0, +"slice_119/name": "", +"slice_119/save_to_file/enabled": false, +"slice_119/save_to_file/keep_custom_tracks": false, +"slice_119/save_to_file/path": "", +"slice_119/start_frame": 0, +"slice_12/end_frame": 0, +"slice_12/loop_mode": 0, +"slice_12/name": "", +"slice_12/save_to_file/enabled": false, +"slice_12/save_to_file/keep_custom_tracks": false, +"slice_12/save_to_file/path": "", +"slice_12/start_frame": 0, +"slice_120/end_frame": 0, +"slice_120/loop_mode": 0, +"slice_120/name": "", +"slice_120/save_to_file/enabled": false, +"slice_120/save_to_file/keep_custom_tracks": false, +"slice_120/save_to_file/path": "", +"slice_120/start_frame": 0, +"slice_121/end_frame": 0, +"slice_121/loop_mode": 0, +"slice_121/name": "", +"slice_121/save_to_file/enabled": false, +"slice_121/save_to_file/keep_custom_tracks": false, +"slice_121/save_to_file/path": "", +"slice_121/start_frame": 0, +"slice_122/end_frame": 0, +"slice_122/loop_mode": 0, +"slice_122/name": "", +"slice_122/save_to_file/enabled": false, +"slice_122/save_to_file/keep_custom_tracks": false, +"slice_122/save_to_file/path": "", +"slice_122/start_frame": 0, +"slice_123/end_frame": 0, +"slice_123/loop_mode": 0, +"slice_123/name": "", +"slice_123/save_to_file/enabled": false, +"slice_123/save_to_file/keep_custom_tracks": false, +"slice_123/save_to_file/path": "", +"slice_123/start_frame": 0, +"slice_124/end_frame": 0, +"slice_124/loop_mode": 0, +"slice_124/name": "", +"slice_124/save_to_file/enabled": false, +"slice_124/save_to_file/keep_custom_tracks": false, +"slice_124/save_to_file/path": "", +"slice_124/start_frame": 0, +"slice_125/end_frame": 0, +"slice_125/loop_mode": 0, +"slice_125/name": "", +"slice_125/save_to_file/enabled": false, +"slice_125/save_to_file/keep_custom_tracks": false, +"slice_125/save_to_file/path": "", +"slice_125/start_frame": 0, +"slice_126/end_frame": 0, +"slice_126/loop_mode": 0, +"slice_126/name": "", +"slice_126/save_to_file/enabled": false, +"slice_126/save_to_file/keep_custom_tracks": false, +"slice_126/save_to_file/path": "", +"slice_126/start_frame": 0, +"slice_127/end_frame": 0, +"slice_127/loop_mode": 0, +"slice_127/name": "", +"slice_127/save_to_file/enabled": false, +"slice_127/save_to_file/keep_custom_tracks": false, +"slice_127/save_to_file/path": "", +"slice_127/start_frame": 0, +"slice_128/end_frame": 0, +"slice_128/loop_mode": 0, +"slice_128/name": "", +"slice_128/save_to_file/enabled": false, +"slice_128/save_to_file/keep_custom_tracks": false, +"slice_128/save_to_file/path": "", +"slice_128/start_frame": 0, +"slice_129/end_frame": 0, +"slice_129/loop_mode": 0, +"slice_129/name": "", +"slice_129/save_to_file/enabled": false, +"slice_129/save_to_file/keep_custom_tracks": false, +"slice_129/save_to_file/path": "", +"slice_129/start_frame": 0, +"slice_13/end_frame": 0, +"slice_13/loop_mode": 0, +"slice_13/name": "", +"slice_13/save_to_file/enabled": false, +"slice_13/save_to_file/keep_custom_tracks": false, +"slice_13/save_to_file/path": "", +"slice_13/start_frame": 0, +"slice_130/end_frame": 0, +"slice_130/loop_mode": 0, +"slice_130/name": "", +"slice_130/save_to_file/enabled": false, +"slice_130/save_to_file/keep_custom_tracks": false, +"slice_130/save_to_file/path": "", +"slice_130/start_frame": 0, +"slice_131/end_frame": 0, +"slice_131/loop_mode": 0, +"slice_131/name": "", +"slice_131/save_to_file/enabled": false, +"slice_131/save_to_file/keep_custom_tracks": false, +"slice_131/save_to_file/path": "", +"slice_131/start_frame": 0, +"slice_132/end_frame": 0, +"slice_132/loop_mode": 0, +"slice_132/name": "", +"slice_132/save_to_file/enabled": false, +"slice_132/save_to_file/keep_custom_tracks": false, +"slice_132/save_to_file/path": "", +"slice_132/start_frame": 0, +"slice_133/end_frame": 0, +"slice_133/loop_mode": 0, +"slice_133/name": "", +"slice_133/save_to_file/enabled": false, +"slice_133/save_to_file/keep_custom_tracks": false, +"slice_133/save_to_file/path": "", +"slice_133/start_frame": 0, +"slice_134/end_frame": 0, +"slice_134/loop_mode": 0, +"slice_134/name": "", +"slice_134/save_to_file/enabled": false, +"slice_134/save_to_file/keep_custom_tracks": false, +"slice_134/save_to_file/path": "", +"slice_134/start_frame": 0, +"slice_135/end_frame": 0, +"slice_135/loop_mode": 0, +"slice_135/name": "", +"slice_135/save_to_file/enabled": false, +"slice_135/save_to_file/keep_custom_tracks": false, +"slice_135/save_to_file/path": "", +"slice_135/start_frame": 0, +"slice_136/end_frame": 0, +"slice_136/loop_mode": 0, +"slice_136/name": "", +"slice_136/save_to_file/enabled": false, +"slice_136/save_to_file/keep_custom_tracks": false, +"slice_136/save_to_file/path": "", +"slice_136/start_frame": 0, +"slice_137/end_frame": 0, +"slice_137/loop_mode": 0, +"slice_137/name": "", +"slice_137/save_to_file/enabled": false, +"slice_137/save_to_file/keep_custom_tracks": false, +"slice_137/save_to_file/path": "", +"slice_137/start_frame": 0, +"slice_138/end_frame": 0, +"slice_138/loop_mode": 0, +"slice_138/name": "", +"slice_138/save_to_file/enabled": false, +"slice_138/save_to_file/keep_custom_tracks": false, +"slice_138/save_to_file/path": "", +"slice_138/start_frame": 0, +"slice_139/end_frame": 0, +"slice_139/loop_mode": 0, +"slice_139/name": "", +"slice_139/save_to_file/enabled": false, +"slice_139/save_to_file/keep_custom_tracks": false, +"slice_139/save_to_file/path": "", +"slice_139/start_frame": 0, +"slice_14/end_frame": 0, +"slice_14/loop_mode": 0, +"slice_14/name": "", +"slice_14/save_to_file/enabled": false, +"slice_14/save_to_file/keep_custom_tracks": false, +"slice_14/save_to_file/path": "", +"slice_14/start_frame": 0, +"slice_140/end_frame": 0, +"slice_140/loop_mode": 0, +"slice_140/name": "", +"slice_140/save_to_file/enabled": false, +"slice_140/save_to_file/keep_custom_tracks": false, +"slice_140/save_to_file/path": "", +"slice_140/start_frame": 0, +"slice_141/end_frame": 0, +"slice_141/loop_mode": 0, +"slice_141/name": "", +"slice_141/save_to_file/enabled": false, +"slice_141/save_to_file/keep_custom_tracks": false, +"slice_141/save_to_file/path": "", +"slice_141/start_frame": 0, +"slice_142/end_frame": 0, +"slice_142/loop_mode": 0, +"slice_142/name": "", +"slice_142/save_to_file/enabled": false, +"slice_142/save_to_file/keep_custom_tracks": false, +"slice_142/save_to_file/path": "", +"slice_142/start_frame": 0, +"slice_143/end_frame": 0, +"slice_143/loop_mode": 0, +"slice_143/name": "", +"slice_143/save_to_file/enabled": false, +"slice_143/save_to_file/keep_custom_tracks": false, +"slice_143/save_to_file/path": "", +"slice_143/start_frame": 0, +"slice_144/end_frame": 0, +"slice_144/loop_mode": 0, +"slice_144/name": "", +"slice_144/save_to_file/enabled": false, +"slice_144/save_to_file/keep_custom_tracks": false, +"slice_144/save_to_file/path": "", +"slice_144/start_frame": 0, +"slice_145/end_frame": 0, +"slice_145/loop_mode": 0, +"slice_145/name": "", +"slice_145/save_to_file/enabled": false, +"slice_145/save_to_file/keep_custom_tracks": false, +"slice_145/save_to_file/path": "", +"slice_145/start_frame": 0, +"slice_146/end_frame": 0, +"slice_146/loop_mode": 0, +"slice_146/name": "", +"slice_146/save_to_file/enabled": false, +"slice_146/save_to_file/keep_custom_tracks": false, +"slice_146/save_to_file/path": "", +"slice_146/start_frame": 0, +"slice_147/end_frame": 0, +"slice_147/loop_mode": 0, +"slice_147/name": "", +"slice_147/save_to_file/enabled": false, +"slice_147/save_to_file/keep_custom_tracks": false, +"slice_147/save_to_file/path": "", +"slice_147/start_frame": 0, +"slice_148/end_frame": 0, +"slice_148/loop_mode": 0, +"slice_148/name": "", +"slice_148/save_to_file/enabled": false, +"slice_148/save_to_file/keep_custom_tracks": false, +"slice_148/save_to_file/path": "", +"slice_148/start_frame": 0, +"slice_149/end_frame": 0, +"slice_149/loop_mode": 0, +"slice_149/name": "", +"slice_149/save_to_file/enabled": false, +"slice_149/save_to_file/keep_custom_tracks": false, +"slice_149/save_to_file/path": "", +"slice_149/start_frame": 0, +"slice_15/end_frame": 0, +"slice_15/loop_mode": 0, +"slice_15/name": "", +"slice_15/save_to_file/enabled": false, +"slice_15/save_to_file/keep_custom_tracks": false, +"slice_15/save_to_file/path": "", +"slice_15/start_frame": 0, +"slice_150/end_frame": 0, +"slice_150/loop_mode": 0, +"slice_150/name": "", +"slice_150/save_to_file/enabled": false, +"slice_150/save_to_file/keep_custom_tracks": false, +"slice_150/save_to_file/path": "", +"slice_150/start_frame": 0, +"slice_151/end_frame": 0, +"slice_151/loop_mode": 0, +"slice_151/name": "", +"slice_151/save_to_file/enabled": false, +"slice_151/save_to_file/keep_custom_tracks": false, +"slice_151/save_to_file/path": "", +"slice_151/start_frame": 0, +"slice_152/end_frame": 0, +"slice_152/loop_mode": 0, +"slice_152/name": "", +"slice_152/save_to_file/enabled": false, +"slice_152/save_to_file/keep_custom_tracks": false, +"slice_152/save_to_file/path": "", +"slice_152/start_frame": 0, +"slice_153/end_frame": 0, +"slice_153/loop_mode": 0, +"slice_153/name": "", +"slice_153/save_to_file/enabled": false, +"slice_153/save_to_file/keep_custom_tracks": false, +"slice_153/save_to_file/path": "", +"slice_153/start_frame": 0, +"slice_154/end_frame": 0, +"slice_154/loop_mode": 0, +"slice_154/name": "", +"slice_154/save_to_file/enabled": false, +"slice_154/save_to_file/keep_custom_tracks": false, +"slice_154/save_to_file/path": "", +"slice_154/start_frame": 0, +"slice_155/end_frame": 0, +"slice_155/loop_mode": 0, +"slice_155/name": "", +"slice_155/save_to_file/enabled": false, +"slice_155/save_to_file/keep_custom_tracks": false, +"slice_155/save_to_file/path": "", +"slice_155/start_frame": 0, +"slice_156/end_frame": 0, +"slice_156/loop_mode": 0, +"slice_156/name": "", +"slice_156/save_to_file/enabled": false, +"slice_156/save_to_file/keep_custom_tracks": false, +"slice_156/save_to_file/path": "", +"slice_156/start_frame": 0, +"slice_157/end_frame": 0, +"slice_157/loop_mode": 0, +"slice_157/name": "", +"slice_157/save_to_file/enabled": false, +"slice_157/save_to_file/keep_custom_tracks": false, +"slice_157/save_to_file/path": "", +"slice_157/start_frame": 0, +"slice_158/end_frame": 0, +"slice_158/loop_mode": 0, +"slice_158/name": "", +"slice_158/save_to_file/enabled": false, +"slice_158/save_to_file/keep_custom_tracks": false, +"slice_158/save_to_file/path": "", +"slice_158/start_frame": 0, +"slice_159/end_frame": 0, +"slice_159/loop_mode": 0, +"slice_159/name": "", +"slice_159/save_to_file/enabled": false, +"slice_159/save_to_file/keep_custom_tracks": false, +"slice_159/save_to_file/path": "", +"slice_159/start_frame": 0, +"slice_16/end_frame": 0, +"slice_16/loop_mode": 0, +"slice_16/name": "", +"slice_16/save_to_file/enabled": false, +"slice_16/save_to_file/keep_custom_tracks": false, +"slice_16/save_to_file/path": "", +"slice_16/start_frame": 0, +"slice_160/end_frame": 0, +"slice_160/loop_mode": 0, +"slice_160/name": "", +"slice_160/save_to_file/enabled": false, +"slice_160/save_to_file/keep_custom_tracks": false, +"slice_160/save_to_file/path": "", +"slice_160/start_frame": 0, +"slice_161/end_frame": 0, +"slice_161/loop_mode": 0, +"slice_161/name": "", +"slice_161/save_to_file/enabled": false, +"slice_161/save_to_file/keep_custom_tracks": false, +"slice_161/save_to_file/path": "", +"slice_161/start_frame": 0, +"slice_162/end_frame": 0, +"slice_162/loop_mode": 0, +"slice_162/name": "", +"slice_162/save_to_file/enabled": false, +"slice_162/save_to_file/keep_custom_tracks": false, +"slice_162/save_to_file/path": "", +"slice_162/start_frame": 0, +"slice_163/end_frame": 0, +"slice_163/loop_mode": 0, +"slice_163/name": "", +"slice_163/save_to_file/enabled": false, +"slice_163/save_to_file/keep_custom_tracks": false, +"slice_163/save_to_file/path": "", +"slice_163/start_frame": 0, +"slice_164/end_frame": 0, +"slice_164/loop_mode": 0, +"slice_164/name": "", +"slice_164/save_to_file/enabled": false, +"slice_164/save_to_file/keep_custom_tracks": false, +"slice_164/save_to_file/path": "", +"slice_164/start_frame": 0, +"slice_165/end_frame": 0, +"slice_165/loop_mode": 0, +"slice_165/name": "", +"slice_165/save_to_file/enabled": false, +"slice_165/save_to_file/keep_custom_tracks": false, +"slice_165/save_to_file/path": "", +"slice_165/start_frame": 0, +"slice_166/end_frame": 0, +"slice_166/loop_mode": 0, +"slice_166/name": "", +"slice_166/save_to_file/enabled": false, +"slice_166/save_to_file/keep_custom_tracks": false, +"slice_166/save_to_file/path": "", +"slice_166/start_frame": 0, +"slice_167/end_frame": 0, +"slice_167/loop_mode": 0, +"slice_167/name": "", +"slice_167/save_to_file/enabled": false, +"slice_167/save_to_file/keep_custom_tracks": false, +"slice_167/save_to_file/path": "", +"slice_167/start_frame": 0, +"slice_168/end_frame": 0, +"slice_168/loop_mode": 0, +"slice_168/name": "", +"slice_168/save_to_file/enabled": false, +"slice_168/save_to_file/keep_custom_tracks": false, +"slice_168/save_to_file/path": "", +"slice_168/start_frame": 0, +"slice_169/end_frame": 0, +"slice_169/loop_mode": 0, +"slice_169/name": "", +"slice_169/save_to_file/enabled": false, +"slice_169/save_to_file/keep_custom_tracks": false, +"slice_169/save_to_file/path": "", +"slice_169/start_frame": 0, +"slice_17/end_frame": 0, +"slice_17/loop_mode": 0, +"slice_17/name": "", +"slice_17/save_to_file/enabled": false, +"slice_17/save_to_file/keep_custom_tracks": false, +"slice_17/save_to_file/path": "", +"slice_17/start_frame": 0, +"slice_170/end_frame": 0, +"slice_170/loop_mode": 0, +"slice_170/name": "", +"slice_170/save_to_file/enabled": false, +"slice_170/save_to_file/keep_custom_tracks": false, +"slice_170/save_to_file/path": "", +"slice_170/start_frame": 0, +"slice_171/end_frame": 0, +"slice_171/loop_mode": 0, +"slice_171/name": "", +"slice_171/save_to_file/enabled": false, +"slice_171/save_to_file/keep_custom_tracks": false, +"slice_171/save_to_file/path": "", +"slice_171/start_frame": 0, +"slice_172/end_frame": 0, +"slice_172/loop_mode": 0, +"slice_172/name": "", +"slice_172/save_to_file/enabled": false, +"slice_172/save_to_file/keep_custom_tracks": false, +"slice_172/save_to_file/path": "", +"slice_172/start_frame": 0, +"slice_173/end_frame": 0, +"slice_173/loop_mode": 0, +"slice_173/name": "", +"slice_173/save_to_file/enabled": false, +"slice_173/save_to_file/keep_custom_tracks": false, +"slice_173/save_to_file/path": "", +"slice_173/start_frame": 0, +"slice_174/end_frame": 0, +"slice_174/loop_mode": 0, +"slice_174/name": "", +"slice_174/save_to_file/enabled": false, +"slice_174/save_to_file/keep_custom_tracks": false, +"slice_174/save_to_file/path": "", +"slice_174/start_frame": 0, +"slice_175/end_frame": 0, +"slice_175/loop_mode": 0, +"slice_175/name": "", +"slice_175/save_to_file/enabled": false, +"slice_175/save_to_file/keep_custom_tracks": false, +"slice_175/save_to_file/path": "", +"slice_175/start_frame": 0, +"slice_176/end_frame": 0, +"slice_176/loop_mode": 0, +"slice_176/name": "", +"slice_176/save_to_file/enabled": false, +"slice_176/save_to_file/keep_custom_tracks": false, +"slice_176/save_to_file/path": "", +"slice_176/start_frame": 0, +"slice_177/end_frame": 0, +"slice_177/loop_mode": 0, +"slice_177/name": "", +"slice_177/save_to_file/enabled": false, +"slice_177/save_to_file/keep_custom_tracks": false, +"slice_177/save_to_file/path": "", +"slice_177/start_frame": 0, +"slice_178/end_frame": 0, +"slice_178/loop_mode": 0, +"slice_178/name": "", +"slice_178/save_to_file/enabled": false, +"slice_178/save_to_file/keep_custom_tracks": false, +"slice_178/save_to_file/path": "", +"slice_178/start_frame": 0, +"slice_179/end_frame": 0, +"slice_179/loop_mode": 0, +"slice_179/name": "", +"slice_179/save_to_file/enabled": false, +"slice_179/save_to_file/keep_custom_tracks": false, +"slice_179/save_to_file/path": "", +"slice_179/start_frame": 0, +"slice_18/end_frame": 0, +"slice_18/loop_mode": 0, +"slice_18/name": "", +"slice_18/save_to_file/enabled": false, +"slice_18/save_to_file/keep_custom_tracks": false, +"slice_18/save_to_file/path": "", +"slice_18/start_frame": 0, +"slice_180/end_frame": 0, +"slice_180/loop_mode": 0, +"slice_180/name": "", +"slice_180/save_to_file/enabled": false, +"slice_180/save_to_file/keep_custom_tracks": false, +"slice_180/save_to_file/path": "", +"slice_180/start_frame": 0, +"slice_181/end_frame": 0, +"slice_181/loop_mode": 0, +"slice_181/name": "", +"slice_181/save_to_file/enabled": false, +"slice_181/save_to_file/keep_custom_tracks": false, +"slice_181/save_to_file/path": "", +"slice_181/start_frame": 0, +"slice_182/end_frame": 0, +"slice_182/loop_mode": 0, +"slice_182/name": "", +"slice_182/save_to_file/enabled": false, +"slice_182/save_to_file/keep_custom_tracks": false, +"slice_182/save_to_file/path": "", +"slice_182/start_frame": 0, +"slice_183/end_frame": 0, +"slice_183/loop_mode": 0, +"slice_183/name": "", +"slice_183/save_to_file/enabled": false, +"slice_183/save_to_file/keep_custom_tracks": false, +"slice_183/save_to_file/path": "", +"slice_183/start_frame": 0, +"slice_184/end_frame": 0, +"slice_184/loop_mode": 0, +"slice_184/name": "", +"slice_184/save_to_file/enabled": false, +"slice_184/save_to_file/keep_custom_tracks": false, +"slice_184/save_to_file/path": "", +"slice_184/start_frame": 0, +"slice_185/end_frame": 0, +"slice_185/loop_mode": 0, +"slice_185/name": "", +"slice_185/save_to_file/enabled": false, +"slice_185/save_to_file/keep_custom_tracks": false, +"slice_185/save_to_file/path": "", +"slice_185/start_frame": 0, +"slice_186/end_frame": 0, +"slice_186/loop_mode": 0, +"slice_186/name": "", +"slice_186/save_to_file/enabled": false, +"slice_186/save_to_file/keep_custom_tracks": false, +"slice_186/save_to_file/path": "", +"slice_186/start_frame": 0, +"slice_187/end_frame": 0, +"slice_187/loop_mode": 0, +"slice_187/name": "", +"slice_187/save_to_file/enabled": false, +"slice_187/save_to_file/keep_custom_tracks": false, +"slice_187/save_to_file/path": "", +"slice_187/start_frame": 0, +"slice_188/end_frame": 0, +"slice_188/loop_mode": 0, +"slice_188/name": "", +"slice_188/save_to_file/enabled": false, +"slice_188/save_to_file/keep_custom_tracks": false, +"slice_188/save_to_file/path": "", +"slice_188/start_frame": 0, +"slice_189/end_frame": 0, +"slice_189/loop_mode": 0, +"slice_189/name": "", +"slice_189/save_to_file/enabled": false, +"slice_189/save_to_file/keep_custom_tracks": false, +"slice_189/save_to_file/path": "", +"slice_189/start_frame": 0, +"slice_19/end_frame": 0, +"slice_19/loop_mode": 0, +"slice_19/name": "", +"slice_19/save_to_file/enabled": false, +"slice_19/save_to_file/keep_custom_tracks": false, +"slice_19/save_to_file/path": "", +"slice_19/start_frame": 0, +"slice_190/end_frame": 0, +"slice_190/loop_mode": 0, +"slice_190/name": "", +"slice_190/save_to_file/enabled": false, +"slice_190/save_to_file/keep_custom_tracks": false, +"slice_190/save_to_file/path": "", +"slice_190/start_frame": 0, +"slice_191/end_frame": 0, +"slice_191/loop_mode": 0, +"slice_191/name": "", +"slice_191/save_to_file/enabled": false, +"slice_191/save_to_file/keep_custom_tracks": false, +"slice_191/save_to_file/path": "", +"slice_191/start_frame": 0, +"slice_192/end_frame": 0, +"slice_192/loop_mode": 0, +"slice_192/name": "", +"slice_192/save_to_file/enabled": false, +"slice_192/save_to_file/keep_custom_tracks": false, +"slice_192/save_to_file/path": "", +"slice_192/start_frame": 0, +"slice_193/end_frame": 0, +"slice_193/loop_mode": 0, +"slice_193/name": "", +"slice_193/save_to_file/enabled": false, +"slice_193/save_to_file/keep_custom_tracks": false, +"slice_193/save_to_file/path": "", +"slice_193/start_frame": 0, +"slice_194/end_frame": 0, +"slice_194/loop_mode": 0, +"slice_194/name": "", +"slice_194/save_to_file/enabled": false, +"slice_194/save_to_file/keep_custom_tracks": false, +"slice_194/save_to_file/path": "", +"slice_194/start_frame": 0, +"slice_195/end_frame": 0, +"slice_195/loop_mode": 0, +"slice_195/name": "", +"slice_195/save_to_file/enabled": false, +"slice_195/save_to_file/keep_custom_tracks": false, +"slice_195/save_to_file/path": "", +"slice_195/start_frame": 0, +"slice_196/end_frame": 0, +"slice_196/loop_mode": 0, +"slice_196/name": "", +"slice_196/save_to_file/enabled": false, +"slice_196/save_to_file/keep_custom_tracks": false, +"slice_196/save_to_file/path": "", +"slice_196/start_frame": 0, +"slice_197/end_frame": 0, +"slice_197/loop_mode": 0, +"slice_197/name": "", +"slice_197/save_to_file/enabled": false, +"slice_197/save_to_file/keep_custom_tracks": false, +"slice_197/save_to_file/path": "", +"slice_197/start_frame": 0, +"slice_198/end_frame": 0, +"slice_198/loop_mode": 0, +"slice_198/name": "", +"slice_198/save_to_file/enabled": false, +"slice_198/save_to_file/keep_custom_tracks": false, +"slice_198/save_to_file/path": "", +"slice_198/start_frame": 0, +"slice_199/end_frame": 0, +"slice_199/loop_mode": 0, +"slice_199/name": "", +"slice_199/save_to_file/enabled": false, +"slice_199/save_to_file/keep_custom_tracks": false, +"slice_199/save_to_file/path": "", +"slice_199/start_frame": 0, +"slice_2/end_frame": 0, +"slice_2/loop_mode": 0, +"slice_2/name": "", +"slice_2/save_to_file/enabled": false, +"slice_2/save_to_file/keep_custom_tracks": false, +"slice_2/save_to_file/path": "", +"slice_2/start_frame": 0, +"slice_20/end_frame": 0, +"slice_20/loop_mode": 0, +"slice_20/name": "", +"slice_20/save_to_file/enabled": false, +"slice_20/save_to_file/keep_custom_tracks": false, +"slice_20/save_to_file/path": "", +"slice_20/start_frame": 0, +"slice_200/end_frame": 0, +"slice_200/loop_mode": 0, +"slice_200/name": "", +"slice_200/save_to_file/enabled": false, +"slice_200/save_to_file/keep_custom_tracks": false, +"slice_200/save_to_file/path": "", +"slice_200/start_frame": 0, +"slice_201/end_frame": 0, +"slice_201/loop_mode": 0, +"slice_201/name": "", +"slice_201/save_to_file/enabled": false, +"slice_201/save_to_file/keep_custom_tracks": false, +"slice_201/save_to_file/path": "", +"slice_201/start_frame": 0, +"slice_202/end_frame": 0, +"slice_202/loop_mode": 0, +"slice_202/name": "", +"slice_202/save_to_file/enabled": false, +"slice_202/save_to_file/keep_custom_tracks": false, +"slice_202/save_to_file/path": "", +"slice_202/start_frame": 0, +"slice_203/end_frame": 0, +"slice_203/loop_mode": 0, +"slice_203/name": "", +"slice_203/save_to_file/enabled": false, +"slice_203/save_to_file/keep_custom_tracks": false, +"slice_203/save_to_file/path": "", +"slice_203/start_frame": 0, +"slice_204/end_frame": 0, +"slice_204/loop_mode": 0, +"slice_204/name": "", +"slice_204/save_to_file/enabled": false, +"slice_204/save_to_file/keep_custom_tracks": false, +"slice_204/save_to_file/path": "", +"slice_204/start_frame": 0, +"slice_205/end_frame": 0, +"slice_205/loop_mode": 0, +"slice_205/name": "", +"slice_205/save_to_file/enabled": false, +"slice_205/save_to_file/keep_custom_tracks": false, +"slice_205/save_to_file/path": "", +"slice_205/start_frame": 0, +"slice_206/end_frame": 0, +"slice_206/loop_mode": 0, +"slice_206/name": "", +"slice_206/save_to_file/enabled": false, +"slice_206/save_to_file/keep_custom_tracks": false, +"slice_206/save_to_file/path": "", +"slice_206/start_frame": 0, +"slice_207/end_frame": 0, +"slice_207/loop_mode": 0, +"slice_207/name": "", +"slice_207/save_to_file/enabled": false, +"slice_207/save_to_file/keep_custom_tracks": false, +"slice_207/save_to_file/path": "", +"slice_207/start_frame": 0, +"slice_208/end_frame": 0, +"slice_208/loop_mode": 0, +"slice_208/name": "", +"slice_208/save_to_file/enabled": false, +"slice_208/save_to_file/keep_custom_tracks": false, +"slice_208/save_to_file/path": "", +"slice_208/start_frame": 0, +"slice_209/end_frame": 0, +"slice_209/loop_mode": 0, +"slice_209/name": "", +"slice_209/save_to_file/enabled": false, +"slice_209/save_to_file/keep_custom_tracks": false, +"slice_209/save_to_file/path": "", +"slice_209/start_frame": 0, +"slice_21/end_frame": 0, +"slice_21/loop_mode": 0, +"slice_21/name": "", +"slice_21/save_to_file/enabled": false, +"slice_21/save_to_file/keep_custom_tracks": false, +"slice_21/save_to_file/path": "", +"slice_21/start_frame": 0, +"slice_210/end_frame": 0, +"slice_210/loop_mode": 0, +"slice_210/name": "", +"slice_210/save_to_file/enabled": false, +"slice_210/save_to_file/keep_custom_tracks": false, +"slice_210/save_to_file/path": "", +"slice_210/start_frame": 0, +"slice_211/end_frame": 0, +"slice_211/loop_mode": 0, +"slice_211/name": "", +"slice_211/save_to_file/enabled": false, +"slice_211/save_to_file/keep_custom_tracks": false, +"slice_211/save_to_file/path": "", +"slice_211/start_frame": 0, +"slice_212/end_frame": 0, +"slice_212/loop_mode": 0, +"slice_212/name": "", +"slice_212/save_to_file/enabled": false, +"slice_212/save_to_file/keep_custom_tracks": false, +"slice_212/save_to_file/path": "", +"slice_212/start_frame": 0, +"slice_213/end_frame": 0, +"slice_213/loop_mode": 0, +"slice_213/name": "", +"slice_213/save_to_file/enabled": false, +"slice_213/save_to_file/keep_custom_tracks": false, +"slice_213/save_to_file/path": "", +"slice_213/start_frame": 0, +"slice_214/end_frame": 0, +"slice_214/loop_mode": 0, +"slice_214/name": "", +"slice_214/save_to_file/enabled": false, +"slice_214/save_to_file/keep_custom_tracks": false, +"slice_214/save_to_file/path": "", +"slice_214/start_frame": 0, +"slice_215/end_frame": 0, +"slice_215/loop_mode": 0, +"slice_215/name": "", +"slice_215/save_to_file/enabled": false, +"slice_215/save_to_file/keep_custom_tracks": false, +"slice_215/save_to_file/path": "", +"slice_215/start_frame": 0, +"slice_216/end_frame": 0, +"slice_216/loop_mode": 0, +"slice_216/name": "", +"slice_216/save_to_file/enabled": false, +"slice_216/save_to_file/keep_custom_tracks": false, +"slice_216/save_to_file/path": "", +"slice_216/start_frame": 0, +"slice_217/end_frame": 0, +"slice_217/loop_mode": 0, +"slice_217/name": "", +"slice_217/save_to_file/enabled": false, +"slice_217/save_to_file/keep_custom_tracks": false, +"slice_217/save_to_file/path": "", +"slice_217/start_frame": 0, +"slice_218/end_frame": 0, +"slice_218/loop_mode": 0, +"slice_218/name": "", +"slice_218/save_to_file/enabled": false, +"slice_218/save_to_file/keep_custom_tracks": false, +"slice_218/save_to_file/path": "", +"slice_218/start_frame": 0, +"slice_219/end_frame": 0, +"slice_219/loop_mode": 0, +"slice_219/name": "", +"slice_219/save_to_file/enabled": false, +"slice_219/save_to_file/keep_custom_tracks": false, +"slice_219/save_to_file/path": "", +"slice_219/start_frame": 0, +"slice_22/end_frame": 0, +"slice_22/loop_mode": 0, +"slice_22/name": "", +"slice_22/save_to_file/enabled": false, +"slice_22/save_to_file/keep_custom_tracks": false, +"slice_22/save_to_file/path": "", +"slice_22/start_frame": 0, +"slice_220/end_frame": 0, +"slice_220/loop_mode": 0, +"slice_220/name": "", +"slice_220/save_to_file/enabled": false, +"slice_220/save_to_file/keep_custom_tracks": false, +"slice_220/save_to_file/path": "", +"slice_220/start_frame": 0, +"slice_221/end_frame": 0, +"slice_221/loop_mode": 0, +"slice_221/name": "", +"slice_221/save_to_file/enabled": false, +"slice_221/save_to_file/keep_custom_tracks": false, +"slice_221/save_to_file/path": "", +"slice_221/start_frame": 0, +"slice_222/end_frame": 0, +"slice_222/loop_mode": 0, +"slice_222/name": "", +"slice_222/save_to_file/enabled": false, +"slice_222/save_to_file/keep_custom_tracks": false, +"slice_222/save_to_file/path": "", +"slice_222/start_frame": 0, +"slice_223/end_frame": 0, +"slice_223/loop_mode": 0, +"slice_223/name": "", +"slice_223/save_to_file/enabled": false, +"slice_223/save_to_file/keep_custom_tracks": false, +"slice_223/save_to_file/path": "", +"slice_223/start_frame": 0, +"slice_224/end_frame": 0, +"slice_224/loop_mode": 0, +"slice_224/name": "", +"slice_224/save_to_file/enabled": false, +"slice_224/save_to_file/keep_custom_tracks": false, +"slice_224/save_to_file/path": "", +"slice_224/start_frame": 0, +"slice_225/end_frame": 0, +"slice_225/loop_mode": 0, +"slice_225/name": "", +"slice_225/save_to_file/enabled": false, +"slice_225/save_to_file/keep_custom_tracks": false, +"slice_225/save_to_file/path": "", +"slice_225/start_frame": 0, +"slice_226/end_frame": 0, +"slice_226/loop_mode": 0, +"slice_226/name": "", +"slice_226/save_to_file/enabled": false, +"slice_226/save_to_file/keep_custom_tracks": false, +"slice_226/save_to_file/path": "", +"slice_226/start_frame": 0, +"slice_227/end_frame": 0, +"slice_227/loop_mode": 0, +"slice_227/name": "", +"slice_227/save_to_file/enabled": false, +"slice_227/save_to_file/keep_custom_tracks": false, +"slice_227/save_to_file/path": "", +"slice_227/start_frame": 0, +"slice_228/end_frame": 0, +"slice_228/loop_mode": 0, +"slice_228/name": "", +"slice_228/save_to_file/enabled": false, +"slice_228/save_to_file/keep_custom_tracks": false, +"slice_228/save_to_file/path": "", +"slice_228/start_frame": 0, +"slice_229/end_frame": 0, +"slice_229/loop_mode": 0, +"slice_229/name": "", +"slice_229/save_to_file/enabled": false, +"slice_229/save_to_file/keep_custom_tracks": false, +"slice_229/save_to_file/path": "", +"slice_229/start_frame": 0, +"slice_23/end_frame": 0, +"slice_23/loop_mode": 0, +"slice_23/name": "", +"slice_23/save_to_file/enabled": false, +"slice_23/save_to_file/keep_custom_tracks": false, +"slice_23/save_to_file/path": "", +"slice_23/start_frame": 0, +"slice_230/end_frame": 0, +"slice_230/loop_mode": 0, +"slice_230/name": "", +"slice_230/save_to_file/enabled": false, +"slice_230/save_to_file/keep_custom_tracks": false, +"slice_230/save_to_file/path": "", +"slice_230/start_frame": 0, +"slice_231/end_frame": 0, +"slice_231/loop_mode": 0, +"slice_231/name": "", +"slice_231/save_to_file/enabled": false, +"slice_231/save_to_file/keep_custom_tracks": false, +"slice_231/save_to_file/path": "", +"slice_231/start_frame": 0, +"slice_232/end_frame": 0, +"slice_232/loop_mode": 0, +"slice_232/name": "", +"slice_232/save_to_file/enabled": false, +"slice_232/save_to_file/keep_custom_tracks": false, +"slice_232/save_to_file/path": "", +"slice_232/start_frame": 0, +"slice_233/end_frame": 0, +"slice_233/loop_mode": 0, +"slice_233/name": "", +"slice_233/save_to_file/enabled": false, +"slice_233/save_to_file/keep_custom_tracks": false, +"slice_233/save_to_file/path": "", +"slice_233/start_frame": 0, +"slice_234/end_frame": 0, +"slice_234/loop_mode": 0, +"slice_234/name": "", +"slice_234/save_to_file/enabled": false, +"slice_234/save_to_file/keep_custom_tracks": false, +"slice_234/save_to_file/path": "", +"slice_234/start_frame": 0, +"slice_235/end_frame": 0, +"slice_235/loop_mode": 0, +"slice_235/name": "", +"slice_235/save_to_file/enabled": false, +"slice_235/save_to_file/keep_custom_tracks": false, +"slice_235/save_to_file/path": "", +"slice_235/start_frame": 0, +"slice_236/end_frame": 0, +"slice_236/loop_mode": 0, +"slice_236/name": "", +"slice_236/save_to_file/enabled": false, +"slice_236/save_to_file/keep_custom_tracks": false, +"slice_236/save_to_file/path": "", +"slice_236/start_frame": 0, +"slice_237/end_frame": 0, +"slice_237/loop_mode": 0, +"slice_237/name": "", +"slice_237/save_to_file/enabled": false, +"slice_237/save_to_file/keep_custom_tracks": false, +"slice_237/save_to_file/path": "", +"slice_237/start_frame": 0, +"slice_238/end_frame": 0, +"slice_238/loop_mode": 0, +"slice_238/name": "", +"slice_238/save_to_file/enabled": false, +"slice_238/save_to_file/keep_custom_tracks": false, +"slice_238/save_to_file/path": "", +"slice_238/start_frame": 0, +"slice_239/end_frame": 0, +"slice_239/loop_mode": 0, +"slice_239/name": "", +"slice_239/save_to_file/enabled": false, +"slice_239/save_to_file/keep_custom_tracks": false, +"slice_239/save_to_file/path": "", +"slice_239/start_frame": 0, +"slice_24/end_frame": 0, +"slice_24/loop_mode": 0, +"slice_24/name": "", +"slice_24/save_to_file/enabled": false, +"slice_24/save_to_file/keep_custom_tracks": false, +"slice_24/save_to_file/path": "", +"slice_24/start_frame": 0, +"slice_240/end_frame": 0, +"slice_240/loop_mode": 0, +"slice_240/name": "", +"slice_240/save_to_file/enabled": false, +"slice_240/save_to_file/keep_custom_tracks": false, +"slice_240/save_to_file/path": "", +"slice_240/start_frame": 0, +"slice_241/end_frame": 0, +"slice_241/loop_mode": 0, +"slice_241/name": "", +"slice_241/save_to_file/enabled": false, +"slice_241/save_to_file/keep_custom_tracks": false, +"slice_241/save_to_file/path": "", +"slice_241/start_frame": 0, +"slice_242/end_frame": 0, +"slice_242/loop_mode": 0, +"slice_242/name": "", +"slice_242/save_to_file/enabled": false, +"slice_242/save_to_file/keep_custom_tracks": false, +"slice_242/save_to_file/path": "", +"slice_242/start_frame": 0, +"slice_243/end_frame": 0, +"slice_243/loop_mode": 0, +"slice_243/name": "", +"slice_243/save_to_file/enabled": false, +"slice_243/save_to_file/keep_custom_tracks": false, +"slice_243/save_to_file/path": "", +"slice_243/start_frame": 0, +"slice_244/end_frame": 0, +"slice_244/loop_mode": 0, +"slice_244/name": "", +"slice_244/save_to_file/enabled": false, +"slice_244/save_to_file/keep_custom_tracks": false, +"slice_244/save_to_file/path": "", +"slice_244/start_frame": 0, +"slice_245/end_frame": 0, +"slice_245/loop_mode": 0, +"slice_245/name": "", +"slice_245/save_to_file/enabled": false, +"slice_245/save_to_file/keep_custom_tracks": false, +"slice_245/save_to_file/path": "", +"slice_245/start_frame": 0, +"slice_246/end_frame": 0, +"slice_246/loop_mode": 0, +"slice_246/name": "", +"slice_246/save_to_file/enabled": false, +"slice_246/save_to_file/keep_custom_tracks": false, +"slice_246/save_to_file/path": "", +"slice_246/start_frame": 0, +"slice_247/end_frame": 0, +"slice_247/loop_mode": 0, +"slice_247/name": "", +"slice_247/save_to_file/enabled": false, +"slice_247/save_to_file/keep_custom_tracks": false, +"slice_247/save_to_file/path": "", +"slice_247/start_frame": 0, +"slice_248/end_frame": 0, +"slice_248/loop_mode": 0, +"slice_248/name": "", +"slice_248/save_to_file/enabled": false, +"slice_248/save_to_file/keep_custom_tracks": false, +"slice_248/save_to_file/path": "", +"slice_248/start_frame": 0, +"slice_249/end_frame": 0, +"slice_249/loop_mode": 0, +"slice_249/name": "", +"slice_249/save_to_file/enabled": false, +"slice_249/save_to_file/keep_custom_tracks": false, +"slice_249/save_to_file/path": "", +"slice_249/start_frame": 0, +"slice_25/end_frame": 0, +"slice_25/loop_mode": 0, +"slice_25/name": "", +"slice_25/save_to_file/enabled": false, +"slice_25/save_to_file/keep_custom_tracks": false, +"slice_25/save_to_file/path": "", +"slice_25/start_frame": 0, +"slice_250/end_frame": 0, +"slice_250/loop_mode": 0, +"slice_250/name": "", +"slice_250/save_to_file/enabled": false, +"slice_250/save_to_file/keep_custom_tracks": false, +"slice_250/save_to_file/path": "", +"slice_250/start_frame": 0, +"slice_251/end_frame": 0, +"slice_251/loop_mode": 0, +"slice_251/name": "", +"slice_251/save_to_file/enabled": false, +"slice_251/save_to_file/keep_custom_tracks": false, +"slice_251/save_to_file/path": "", +"slice_251/start_frame": 0, +"slice_252/end_frame": 0, +"slice_252/loop_mode": 0, +"slice_252/name": "", +"slice_252/save_to_file/enabled": false, +"slice_252/save_to_file/keep_custom_tracks": false, +"slice_252/save_to_file/path": "", +"slice_252/start_frame": 0, +"slice_253/end_frame": 0, +"slice_253/loop_mode": 0, +"slice_253/name": "", +"slice_253/save_to_file/enabled": false, +"slice_253/save_to_file/keep_custom_tracks": false, +"slice_253/save_to_file/path": "", +"slice_253/start_frame": 0, +"slice_254/end_frame": 0, +"slice_254/loop_mode": 0, +"slice_254/name": "", +"slice_254/save_to_file/enabled": false, +"slice_254/save_to_file/keep_custom_tracks": false, +"slice_254/save_to_file/path": "", +"slice_254/start_frame": 0, +"slice_255/end_frame": 0, +"slice_255/loop_mode": 0, +"slice_255/name": "", +"slice_255/save_to_file/enabled": false, +"slice_255/save_to_file/keep_custom_tracks": false, +"slice_255/save_to_file/path": "", +"slice_255/start_frame": 0, +"slice_256/end_frame": 0, +"slice_256/loop_mode": 0, +"slice_256/name": "", +"slice_256/save_to_file/enabled": false, +"slice_256/save_to_file/keep_custom_tracks": false, +"slice_256/save_to_file/path": "", +"slice_256/start_frame": 0, +"slice_26/end_frame": 0, +"slice_26/loop_mode": 0, +"slice_26/name": "", +"slice_26/save_to_file/enabled": false, +"slice_26/save_to_file/keep_custom_tracks": false, +"slice_26/save_to_file/path": "", +"slice_26/start_frame": 0, +"slice_27/end_frame": 0, +"slice_27/loop_mode": 0, +"slice_27/name": "", +"slice_27/save_to_file/enabled": false, +"slice_27/save_to_file/keep_custom_tracks": false, +"slice_27/save_to_file/path": "", +"slice_27/start_frame": 0, +"slice_28/end_frame": 0, +"slice_28/loop_mode": 0, +"slice_28/name": "", +"slice_28/save_to_file/enabled": false, +"slice_28/save_to_file/keep_custom_tracks": false, +"slice_28/save_to_file/path": "", +"slice_28/start_frame": 0, +"slice_29/end_frame": 0, +"slice_29/loop_mode": 0, +"slice_29/name": "", +"slice_29/save_to_file/enabled": false, +"slice_29/save_to_file/keep_custom_tracks": false, +"slice_29/save_to_file/path": "", +"slice_29/start_frame": 0, +"slice_3/end_frame": 0, +"slice_3/loop_mode": 0, +"slice_3/name": "", +"slice_3/save_to_file/enabled": false, +"slice_3/save_to_file/keep_custom_tracks": false, +"slice_3/save_to_file/path": "", +"slice_3/start_frame": 0, +"slice_30/end_frame": 0, +"slice_30/loop_mode": 0, +"slice_30/name": "", +"slice_30/save_to_file/enabled": false, +"slice_30/save_to_file/keep_custom_tracks": false, +"slice_30/save_to_file/path": "", +"slice_30/start_frame": 0, +"slice_31/end_frame": 0, +"slice_31/loop_mode": 0, +"slice_31/name": "", +"slice_31/save_to_file/enabled": false, +"slice_31/save_to_file/keep_custom_tracks": false, +"slice_31/save_to_file/path": "", +"slice_31/start_frame": 0, +"slice_32/end_frame": 0, +"slice_32/loop_mode": 0, +"slice_32/name": "", +"slice_32/save_to_file/enabled": false, +"slice_32/save_to_file/keep_custom_tracks": false, +"slice_32/save_to_file/path": "", +"slice_32/start_frame": 0, +"slice_33/end_frame": 0, +"slice_33/loop_mode": 0, +"slice_33/name": "", +"slice_33/save_to_file/enabled": false, +"slice_33/save_to_file/keep_custom_tracks": false, +"slice_33/save_to_file/path": "", +"slice_33/start_frame": 0, +"slice_34/end_frame": 0, +"slice_34/loop_mode": 0, +"slice_34/name": "", +"slice_34/save_to_file/enabled": false, +"slice_34/save_to_file/keep_custom_tracks": false, +"slice_34/save_to_file/path": "", +"slice_34/start_frame": 0, +"slice_35/end_frame": 0, +"slice_35/loop_mode": 0, +"slice_35/name": "", +"slice_35/save_to_file/enabled": false, +"slice_35/save_to_file/keep_custom_tracks": false, +"slice_35/save_to_file/path": "", +"slice_35/start_frame": 0, +"slice_36/end_frame": 0, +"slice_36/loop_mode": 0, +"slice_36/name": "", +"slice_36/save_to_file/enabled": false, +"slice_36/save_to_file/keep_custom_tracks": false, +"slice_36/save_to_file/path": "", +"slice_36/start_frame": 0, +"slice_37/end_frame": 0, +"slice_37/loop_mode": 0, +"slice_37/name": "", +"slice_37/save_to_file/enabled": false, +"slice_37/save_to_file/keep_custom_tracks": false, +"slice_37/save_to_file/path": "", +"slice_37/start_frame": 0, +"slice_38/end_frame": 0, +"slice_38/loop_mode": 0, +"slice_38/name": "", +"slice_38/save_to_file/enabled": false, +"slice_38/save_to_file/keep_custom_tracks": false, +"slice_38/save_to_file/path": "", +"slice_38/start_frame": 0, +"slice_39/end_frame": 0, +"slice_39/loop_mode": 0, +"slice_39/name": "", +"slice_39/save_to_file/enabled": false, +"slice_39/save_to_file/keep_custom_tracks": false, +"slice_39/save_to_file/path": "", +"slice_39/start_frame": 0, +"slice_4/end_frame": 0, +"slice_4/loop_mode": 0, +"slice_4/name": "", +"slice_4/save_to_file/enabled": false, +"slice_4/save_to_file/keep_custom_tracks": false, +"slice_4/save_to_file/path": "", +"slice_4/start_frame": 0, +"slice_40/end_frame": 0, +"slice_40/loop_mode": 0, +"slice_40/name": "", +"slice_40/save_to_file/enabled": false, +"slice_40/save_to_file/keep_custom_tracks": false, +"slice_40/save_to_file/path": "", +"slice_40/start_frame": 0, +"slice_41/end_frame": 0, +"slice_41/loop_mode": 0, +"slice_41/name": "", +"slice_41/save_to_file/enabled": false, +"slice_41/save_to_file/keep_custom_tracks": false, +"slice_41/save_to_file/path": "", +"slice_41/start_frame": 0, +"slice_42/end_frame": 0, +"slice_42/loop_mode": 0, +"slice_42/name": "", +"slice_42/save_to_file/enabled": false, +"slice_42/save_to_file/keep_custom_tracks": false, +"slice_42/save_to_file/path": "", +"slice_42/start_frame": 0, +"slice_43/end_frame": 0, +"slice_43/loop_mode": 0, +"slice_43/name": "", +"slice_43/save_to_file/enabled": false, +"slice_43/save_to_file/keep_custom_tracks": false, +"slice_43/save_to_file/path": "", +"slice_43/start_frame": 0, +"slice_44/end_frame": 0, +"slice_44/loop_mode": 0, +"slice_44/name": "", +"slice_44/save_to_file/enabled": false, +"slice_44/save_to_file/keep_custom_tracks": false, +"slice_44/save_to_file/path": "", +"slice_44/start_frame": 0, +"slice_45/end_frame": 0, +"slice_45/loop_mode": 0, +"slice_45/name": "", +"slice_45/save_to_file/enabled": false, +"slice_45/save_to_file/keep_custom_tracks": false, +"slice_45/save_to_file/path": "", +"slice_45/start_frame": 0, +"slice_46/end_frame": 0, +"slice_46/loop_mode": 0, +"slice_46/name": "", +"slice_46/save_to_file/enabled": false, +"slice_46/save_to_file/keep_custom_tracks": false, +"slice_46/save_to_file/path": "", +"slice_46/start_frame": 0, +"slice_47/end_frame": 0, +"slice_47/loop_mode": 0, +"slice_47/name": "", +"slice_47/save_to_file/enabled": false, +"slice_47/save_to_file/keep_custom_tracks": false, +"slice_47/save_to_file/path": "", +"slice_47/start_frame": 0, +"slice_48/end_frame": 0, +"slice_48/loop_mode": 0, +"slice_48/name": "", +"slice_48/save_to_file/enabled": false, +"slice_48/save_to_file/keep_custom_tracks": false, +"slice_48/save_to_file/path": "", +"slice_48/start_frame": 0, +"slice_49/end_frame": 0, +"slice_49/loop_mode": 0, +"slice_49/name": "", +"slice_49/save_to_file/enabled": false, +"slice_49/save_to_file/keep_custom_tracks": false, +"slice_49/save_to_file/path": "", +"slice_49/start_frame": 0, +"slice_5/end_frame": 0, +"slice_5/loop_mode": 0, +"slice_5/name": "", +"slice_5/save_to_file/enabled": false, +"slice_5/save_to_file/keep_custom_tracks": false, +"slice_5/save_to_file/path": "", +"slice_5/start_frame": 0, +"slice_50/end_frame": 0, +"slice_50/loop_mode": 0, +"slice_50/name": "", +"slice_50/save_to_file/enabled": false, +"slice_50/save_to_file/keep_custom_tracks": false, +"slice_50/save_to_file/path": "", +"slice_50/start_frame": 0, +"slice_51/end_frame": 0, +"slice_51/loop_mode": 0, +"slice_51/name": "", +"slice_51/save_to_file/enabled": false, +"slice_51/save_to_file/keep_custom_tracks": false, +"slice_51/save_to_file/path": "", +"slice_51/start_frame": 0, +"slice_52/end_frame": 0, +"slice_52/loop_mode": 0, +"slice_52/name": "", +"slice_52/save_to_file/enabled": false, +"slice_52/save_to_file/keep_custom_tracks": false, +"slice_52/save_to_file/path": "", +"slice_52/start_frame": 0, +"slice_53/end_frame": 0, +"slice_53/loop_mode": 0, +"slice_53/name": "", +"slice_53/save_to_file/enabled": false, +"slice_53/save_to_file/keep_custom_tracks": false, +"slice_53/save_to_file/path": "", +"slice_53/start_frame": 0, +"slice_54/end_frame": 0, +"slice_54/loop_mode": 0, +"slice_54/name": "", +"slice_54/save_to_file/enabled": false, +"slice_54/save_to_file/keep_custom_tracks": false, +"slice_54/save_to_file/path": "", +"slice_54/start_frame": 0, +"slice_55/end_frame": 0, +"slice_55/loop_mode": 0, +"slice_55/name": "", +"slice_55/save_to_file/enabled": false, +"slice_55/save_to_file/keep_custom_tracks": false, +"slice_55/save_to_file/path": "", +"slice_55/start_frame": 0, +"slice_56/end_frame": 0, +"slice_56/loop_mode": 0, +"slice_56/name": "", +"slice_56/save_to_file/enabled": false, +"slice_56/save_to_file/keep_custom_tracks": false, +"slice_56/save_to_file/path": "", +"slice_56/start_frame": 0, +"slice_57/end_frame": 0, +"slice_57/loop_mode": 0, +"slice_57/name": "", +"slice_57/save_to_file/enabled": false, +"slice_57/save_to_file/keep_custom_tracks": false, +"slice_57/save_to_file/path": "", +"slice_57/start_frame": 0, +"slice_58/end_frame": 0, +"slice_58/loop_mode": 0, +"slice_58/name": "", +"slice_58/save_to_file/enabled": false, +"slice_58/save_to_file/keep_custom_tracks": false, +"slice_58/save_to_file/path": "", +"slice_58/start_frame": 0, +"slice_59/end_frame": 0, +"slice_59/loop_mode": 0, +"slice_59/name": "", +"slice_59/save_to_file/enabled": false, +"slice_59/save_to_file/keep_custom_tracks": false, +"slice_59/save_to_file/path": "", +"slice_59/start_frame": 0, +"slice_6/end_frame": 0, +"slice_6/loop_mode": 0, +"slice_6/name": "", +"slice_6/save_to_file/enabled": false, +"slice_6/save_to_file/keep_custom_tracks": false, +"slice_6/save_to_file/path": "", +"slice_6/start_frame": 0, +"slice_60/end_frame": 0, +"slice_60/loop_mode": 0, +"slice_60/name": "", +"slice_60/save_to_file/enabled": false, +"slice_60/save_to_file/keep_custom_tracks": false, +"slice_60/save_to_file/path": "", +"slice_60/start_frame": 0, +"slice_61/end_frame": 0, +"slice_61/loop_mode": 0, +"slice_61/name": "", +"slice_61/save_to_file/enabled": false, +"slice_61/save_to_file/keep_custom_tracks": false, +"slice_61/save_to_file/path": "", +"slice_61/start_frame": 0, +"slice_62/end_frame": 0, +"slice_62/loop_mode": 0, +"slice_62/name": "", +"slice_62/save_to_file/enabled": false, +"slice_62/save_to_file/keep_custom_tracks": false, +"slice_62/save_to_file/path": "", +"slice_62/start_frame": 0, +"slice_63/end_frame": 0, +"slice_63/loop_mode": 0, +"slice_63/name": "", +"slice_63/save_to_file/enabled": false, +"slice_63/save_to_file/keep_custom_tracks": false, +"slice_63/save_to_file/path": "", +"slice_63/start_frame": 0, +"slice_64/end_frame": 0, +"slice_64/loop_mode": 0, +"slice_64/name": "", +"slice_64/save_to_file/enabled": false, +"slice_64/save_to_file/keep_custom_tracks": false, +"slice_64/save_to_file/path": "", +"slice_64/start_frame": 0, +"slice_65/end_frame": 0, +"slice_65/loop_mode": 0, +"slice_65/name": "", +"slice_65/save_to_file/enabled": false, +"slice_65/save_to_file/keep_custom_tracks": false, +"slice_65/save_to_file/path": "", +"slice_65/start_frame": 0, +"slice_66/end_frame": 0, +"slice_66/loop_mode": 0, +"slice_66/name": "", +"slice_66/save_to_file/enabled": false, +"slice_66/save_to_file/keep_custom_tracks": false, +"slice_66/save_to_file/path": "", +"slice_66/start_frame": 0, +"slice_67/end_frame": 0, +"slice_67/loop_mode": 0, +"slice_67/name": "", +"slice_67/save_to_file/enabled": false, +"slice_67/save_to_file/keep_custom_tracks": false, +"slice_67/save_to_file/path": "", +"slice_67/start_frame": 0, +"slice_68/end_frame": 0, +"slice_68/loop_mode": 0, +"slice_68/name": "", +"slice_68/save_to_file/enabled": false, +"slice_68/save_to_file/keep_custom_tracks": false, +"slice_68/save_to_file/path": "", +"slice_68/start_frame": 0, +"slice_69/end_frame": 0, +"slice_69/loop_mode": 0, +"slice_69/name": "", +"slice_69/save_to_file/enabled": false, +"slice_69/save_to_file/keep_custom_tracks": false, +"slice_69/save_to_file/path": "", +"slice_69/start_frame": 0, +"slice_7/end_frame": 0, +"slice_7/loop_mode": 0, +"slice_7/name": "", +"slice_7/save_to_file/enabled": false, +"slice_7/save_to_file/keep_custom_tracks": false, +"slice_7/save_to_file/path": "", +"slice_7/start_frame": 0, +"slice_70/end_frame": 0, +"slice_70/loop_mode": 0, +"slice_70/name": "", +"slice_70/save_to_file/enabled": false, +"slice_70/save_to_file/keep_custom_tracks": false, +"slice_70/save_to_file/path": "", +"slice_70/start_frame": 0, +"slice_71/end_frame": 0, +"slice_71/loop_mode": 0, +"slice_71/name": "", +"slice_71/save_to_file/enabled": false, +"slice_71/save_to_file/keep_custom_tracks": false, +"slice_71/save_to_file/path": "", +"slice_71/start_frame": 0, +"slice_72/end_frame": 0, +"slice_72/loop_mode": 0, +"slice_72/name": "", +"slice_72/save_to_file/enabled": false, +"slice_72/save_to_file/keep_custom_tracks": false, +"slice_72/save_to_file/path": "", +"slice_72/start_frame": 0, +"slice_73/end_frame": 0, +"slice_73/loop_mode": 0, +"slice_73/name": "", +"slice_73/save_to_file/enabled": false, +"slice_73/save_to_file/keep_custom_tracks": false, +"slice_73/save_to_file/path": "", +"slice_73/start_frame": 0, +"slice_74/end_frame": 0, +"slice_74/loop_mode": 0, +"slice_74/name": "", +"slice_74/save_to_file/enabled": false, +"slice_74/save_to_file/keep_custom_tracks": false, +"slice_74/save_to_file/path": "", +"slice_74/start_frame": 0, +"slice_75/end_frame": 0, +"slice_75/loop_mode": 0, +"slice_75/name": "", +"slice_75/save_to_file/enabled": false, +"slice_75/save_to_file/keep_custom_tracks": false, +"slice_75/save_to_file/path": "", +"slice_75/start_frame": 0, +"slice_76/end_frame": 0, +"slice_76/loop_mode": 0, +"slice_76/name": "", +"slice_76/save_to_file/enabled": false, +"slice_76/save_to_file/keep_custom_tracks": false, +"slice_76/save_to_file/path": "", +"slice_76/start_frame": 0, +"slice_77/end_frame": 0, +"slice_77/loop_mode": 0, +"slice_77/name": "", +"slice_77/save_to_file/enabled": false, +"slice_77/save_to_file/keep_custom_tracks": false, +"slice_77/save_to_file/path": "", +"slice_77/start_frame": 0, +"slice_78/end_frame": 0, +"slice_78/loop_mode": 0, +"slice_78/name": "", +"slice_78/save_to_file/enabled": false, +"slice_78/save_to_file/keep_custom_tracks": false, +"slice_78/save_to_file/path": "", +"slice_78/start_frame": 0, +"slice_79/end_frame": 0, +"slice_79/loop_mode": 0, +"slice_79/name": "", +"slice_79/save_to_file/enabled": false, +"slice_79/save_to_file/keep_custom_tracks": false, +"slice_79/save_to_file/path": "", +"slice_79/start_frame": 0, +"slice_8/end_frame": 0, +"slice_8/loop_mode": 0, +"slice_8/name": "", +"slice_8/save_to_file/enabled": false, +"slice_8/save_to_file/keep_custom_tracks": false, +"slice_8/save_to_file/path": "", +"slice_8/start_frame": 0, +"slice_80/end_frame": 0, +"slice_80/loop_mode": 0, +"slice_80/name": "", +"slice_80/save_to_file/enabled": false, +"slice_80/save_to_file/keep_custom_tracks": false, +"slice_80/save_to_file/path": "", +"slice_80/start_frame": 0, +"slice_81/end_frame": 0, +"slice_81/loop_mode": 0, +"slice_81/name": "", +"slice_81/save_to_file/enabled": false, +"slice_81/save_to_file/keep_custom_tracks": false, +"slice_81/save_to_file/path": "", +"slice_81/start_frame": 0, +"slice_82/end_frame": 0, +"slice_82/loop_mode": 0, +"slice_82/name": "", +"slice_82/save_to_file/enabled": false, +"slice_82/save_to_file/keep_custom_tracks": false, +"slice_82/save_to_file/path": "", +"slice_82/start_frame": 0, +"slice_83/end_frame": 0, +"slice_83/loop_mode": 0, +"slice_83/name": "", +"slice_83/save_to_file/enabled": false, +"slice_83/save_to_file/keep_custom_tracks": false, +"slice_83/save_to_file/path": "", +"slice_83/start_frame": 0, +"slice_84/end_frame": 0, +"slice_84/loop_mode": 0, +"slice_84/name": "", +"slice_84/save_to_file/enabled": false, +"slice_84/save_to_file/keep_custom_tracks": false, +"slice_84/save_to_file/path": "", +"slice_84/start_frame": 0, +"slice_85/end_frame": 0, +"slice_85/loop_mode": 0, +"slice_85/name": "", +"slice_85/save_to_file/enabled": false, +"slice_85/save_to_file/keep_custom_tracks": false, +"slice_85/save_to_file/path": "", +"slice_85/start_frame": 0, +"slice_86/end_frame": 0, +"slice_86/loop_mode": 0, +"slice_86/name": "", +"slice_86/save_to_file/enabled": false, +"slice_86/save_to_file/keep_custom_tracks": false, +"slice_86/save_to_file/path": "", +"slice_86/start_frame": 0, +"slice_87/end_frame": 0, +"slice_87/loop_mode": 0, +"slice_87/name": "", +"slice_87/save_to_file/enabled": false, +"slice_87/save_to_file/keep_custom_tracks": false, +"slice_87/save_to_file/path": "", +"slice_87/start_frame": 0, +"slice_88/end_frame": 0, +"slice_88/loop_mode": 0, +"slice_88/name": "", +"slice_88/save_to_file/enabled": false, +"slice_88/save_to_file/keep_custom_tracks": false, +"slice_88/save_to_file/path": "", +"slice_88/start_frame": 0, +"slice_89/end_frame": 0, +"slice_89/loop_mode": 0, +"slice_89/name": "", +"slice_89/save_to_file/enabled": false, +"slice_89/save_to_file/keep_custom_tracks": false, +"slice_89/save_to_file/path": "", +"slice_89/start_frame": 0, +"slice_9/end_frame": 0, +"slice_9/loop_mode": 0, +"slice_9/name": "", +"slice_9/save_to_file/enabled": false, +"slice_9/save_to_file/keep_custom_tracks": false, +"slice_9/save_to_file/path": "", +"slice_9/start_frame": 0, +"slice_90/end_frame": 0, +"slice_90/loop_mode": 0, +"slice_90/name": "", +"slice_90/save_to_file/enabled": false, +"slice_90/save_to_file/keep_custom_tracks": false, +"slice_90/save_to_file/path": "", +"slice_90/start_frame": 0, +"slice_91/end_frame": 0, +"slice_91/loop_mode": 0, +"slice_91/name": "", +"slice_91/save_to_file/enabled": false, +"slice_91/save_to_file/keep_custom_tracks": false, +"slice_91/save_to_file/path": "", +"slice_91/start_frame": 0, +"slice_92/end_frame": 0, +"slice_92/loop_mode": 0, +"slice_92/name": "", +"slice_92/save_to_file/enabled": false, +"slice_92/save_to_file/keep_custom_tracks": false, +"slice_92/save_to_file/path": "", +"slice_92/start_frame": 0, +"slice_93/end_frame": 0, +"slice_93/loop_mode": 0, +"slice_93/name": "", +"slice_93/save_to_file/enabled": false, +"slice_93/save_to_file/keep_custom_tracks": false, +"slice_93/save_to_file/path": "", +"slice_93/start_frame": 0, +"slice_94/end_frame": 0, +"slice_94/loop_mode": 0, +"slice_94/name": "", +"slice_94/save_to_file/enabled": false, +"slice_94/save_to_file/keep_custom_tracks": false, +"slice_94/save_to_file/path": "", +"slice_94/start_frame": 0, +"slice_95/end_frame": 0, +"slice_95/loop_mode": 0, +"slice_95/name": "", +"slice_95/save_to_file/enabled": false, +"slice_95/save_to_file/keep_custom_tracks": false, +"slice_95/save_to_file/path": "", +"slice_95/start_frame": 0, +"slice_96/end_frame": 0, +"slice_96/loop_mode": 0, +"slice_96/name": "", +"slice_96/save_to_file/enabled": false, +"slice_96/save_to_file/keep_custom_tracks": false, +"slice_96/save_to_file/path": "", +"slice_96/start_frame": 0, +"slice_97/end_frame": 0, +"slice_97/loop_mode": 0, +"slice_97/name": "", +"slice_97/save_to_file/enabled": false, +"slice_97/save_to_file/keep_custom_tracks": false, +"slice_97/save_to_file/path": "", +"slice_97/start_frame": 0, +"slice_98/end_frame": 0, +"slice_98/loop_mode": 0, +"slice_98/name": "", +"slice_98/save_to_file/enabled": false, +"slice_98/save_to_file/keep_custom_tracks": false, +"slice_98/save_to_file/path": "", +"slice_98/start_frame": 0, +"slice_99/end_frame": 0, +"slice_99/loop_mode": 0, +"slice_99/name": "", +"slice_99/save_to_file/enabled": false, +"slice_99/save_to_file/keep_custom_tracks": false, +"slice_99/save_to_file/path": "", +"slice_99/start_frame": 0, +"slices/amount": null }, "idle": { "save_to_file/enabled": false, "save_to_file/keep_custom_tracks": "", "save_to_file/path": "", -"settings/loop_mode": 1 +"settings/loop_mode": 1, +"slice_1/end_frame": 0, +"slice_1/loop_mode": 0, +"slice_1/name": "", +"slice_1/save_to_file/enabled": false, +"slice_1/save_to_file/keep_custom_tracks": false, +"slice_1/save_to_file/path": "", +"slice_1/start_frame": 0, +"slice_10/end_frame": 0, +"slice_10/loop_mode": 0, +"slice_10/name": "", +"slice_10/save_to_file/enabled": false, +"slice_10/save_to_file/keep_custom_tracks": false, +"slice_10/save_to_file/path": "", +"slice_10/start_frame": 0, +"slice_100/end_frame": 0, +"slice_100/loop_mode": 0, +"slice_100/name": "", +"slice_100/save_to_file/enabled": false, +"slice_100/save_to_file/keep_custom_tracks": false, +"slice_100/save_to_file/path": "", +"slice_100/start_frame": 0, +"slice_101/end_frame": 0, +"slice_101/loop_mode": 0, +"slice_101/name": "", +"slice_101/save_to_file/enabled": false, +"slice_101/save_to_file/keep_custom_tracks": false, +"slice_101/save_to_file/path": "", +"slice_101/start_frame": 0, +"slice_102/end_frame": 0, +"slice_102/loop_mode": 0, +"slice_102/name": "", +"slice_102/save_to_file/enabled": false, +"slice_102/save_to_file/keep_custom_tracks": false, +"slice_102/save_to_file/path": "", +"slice_102/start_frame": 0, +"slice_103/end_frame": 0, +"slice_103/loop_mode": 0, +"slice_103/name": "", +"slice_103/save_to_file/enabled": false, +"slice_103/save_to_file/keep_custom_tracks": false, +"slice_103/save_to_file/path": "", +"slice_103/start_frame": 0, +"slice_104/end_frame": 0, +"slice_104/loop_mode": 0, +"slice_104/name": "", +"slice_104/save_to_file/enabled": false, +"slice_104/save_to_file/keep_custom_tracks": false, +"slice_104/save_to_file/path": "", +"slice_104/start_frame": 0, +"slice_105/end_frame": 0, +"slice_105/loop_mode": 0, +"slice_105/name": "", +"slice_105/save_to_file/enabled": false, +"slice_105/save_to_file/keep_custom_tracks": false, +"slice_105/save_to_file/path": "", +"slice_105/start_frame": 0, +"slice_106/end_frame": 0, +"slice_106/loop_mode": 0, +"slice_106/name": "", +"slice_106/save_to_file/enabled": false, +"slice_106/save_to_file/keep_custom_tracks": false, +"slice_106/save_to_file/path": "", +"slice_106/start_frame": 0, +"slice_107/end_frame": 0, +"slice_107/loop_mode": 0, +"slice_107/name": "", +"slice_107/save_to_file/enabled": false, +"slice_107/save_to_file/keep_custom_tracks": false, +"slice_107/save_to_file/path": "", +"slice_107/start_frame": 0, +"slice_108/end_frame": 0, +"slice_108/loop_mode": 0, +"slice_108/name": "", +"slice_108/save_to_file/enabled": false, +"slice_108/save_to_file/keep_custom_tracks": false, +"slice_108/save_to_file/path": "", +"slice_108/start_frame": 0, +"slice_109/end_frame": 0, +"slice_109/loop_mode": 0, +"slice_109/name": "", +"slice_109/save_to_file/enabled": false, +"slice_109/save_to_file/keep_custom_tracks": false, +"slice_109/save_to_file/path": "", +"slice_109/start_frame": 0, +"slice_11/end_frame": 0, +"slice_11/loop_mode": 0, +"slice_11/name": "", +"slice_11/save_to_file/enabled": false, +"slice_11/save_to_file/keep_custom_tracks": false, +"slice_11/save_to_file/path": "", +"slice_11/start_frame": 0, +"slice_110/end_frame": 0, +"slice_110/loop_mode": 0, +"slice_110/name": "", +"slice_110/save_to_file/enabled": false, +"slice_110/save_to_file/keep_custom_tracks": false, +"slice_110/save_to_file/path": "", +"slice_110/start_frame": 0, +"slice_111/end_frame": 0, +"slice_111/loop_mode": 0, +"slice_111/name": "", +"slice_111/save_to_file/enabled": false, +"slice_111/save_to_file/keep_custom_tracks": false, +"slice_111/save_to_file/path": "", +"slice_111/start_frame": 0, +"slice_112/end_frame": 0, +"slice_112/loop_mode": 0, +"slice_112/name": "", +"slice_112/save_to_file/enabled": false, +"slice_112/save_to_file/keep_custom_tracks": false, +"slice_112/save_to_file/path": "", +"slice_112/start_frame": 0, +"slice_113/end_frame": 0, +"slice_113/loop_mode": 0, +"slice_113/name": "", +"slice_113/save_to_file/enabled": false, +"slice_113/save_to_file/keep_custom_tracks": false, +"slice_113/save_to_file/path": "", +"slice_113/start_frame": 0, +"slice_114/end_frame": 0, +"slice_114/loop_mode": 0, +"slice_114/name": "", +"slice_114/save_to_file/enabled": false, +"slice_114/save_to_file/keep_custom_tracks": false, +"slice_114/save_to_file/path": "", +"slice_114/start_frame": 0, +"slice_115/end_frame": 0, +"slice_115/loop_mode": 0, +"slice_115/name": "", +"slice_115/save_to_file/enabled": false, +"slice_115/save_to_file/keep_custom_tracks": false, +"slice_115/save_to_file/path": "", +"slice_115/start_frame": 0, +"slice_116/end_frame": 0, +"slice_116/loop_mode": 0, +"slice_116/name": "", +"slice_116/save_to_file/enabled": false, +"slice_116/save_to_file/keep_custom_tracks": false, +"slice_116/save_to_file/path": "", +"slice_116/start_frame": 0, +"slice_117/end_frame": 0, +"slice_117/loop_mode": 0, +"slice_117/name": "", +"slice_117/save_to_file/enabled": false, +"slice_117/save_to_file/keep_custom_tracks": false, +"slice_117/save_to_file/path": "", +"slice_117/start_frame": 0, +"slice_118/end_frame": 0, +"slice_118/loop_mode": 0, +"slice_118/name": "", +"slice_118/save_to_file/enabled": false, +"slice_118/save_to_file/keep_custom_tracks": false, +"slice_118/save_to_file/path": "", +"slice_118/start_frame": 0, +"slice_119/end_frame": 0, +"slice_119/loop_mode": 0, +"slice_119/name": "", +"slice_119/save_to_file/enabled": false, +"slice_119/save_to_file/keep_custom_tracks": false, +"slice_119/save_to_file/path": "", +"slice_119/start_frame": 0, +"slice_12/end_frame": 0, +"slice_12/loop_mode": 0, +"slice_12/name": "", +"slice_12/save_to_file/enabled": false, +"slice_12/save_to_file/keep_custom_tracks": false, +"slice_12/save_to_file/path": "", +"slice_12/start_frame": 0, +"slice_120/end_frame": 0, +"slice_120/loop_mode": 0, +"slice_120/name": "", +"slice_120/save_to_file/enabled": false, +"slice_120/save_to_file/keep_custom_tracks": false, +"slice_120/save_to_file/path": "", +"slice_120/start_frame": 0, +"slice_121/end_frame": 0, +"slice_121/loop_mode": 0, +"slice_121/name": "", +"slice_121/save_to_file/enabled": false, +"slice_121/save_to_file/keep_custom_tracks": false, +"slice_121/save_to_file/path": "", +"slice_121/start_frame": 0, +"slice_122/end_frame": 0, +"slice_122/loop_mode": 0, +"slice_122/name": "", +"slice_122/save_to_file/enabled": false, +"slice_122/save_to_file/keep_custom_tracks": false, +"slice_122/save_to_file/path": "", +"slice_122/start_frame": 0, +"slice_123/end_frame": 0, +"slice_123/loop_mode": 0, +"slice_123/name": "", +"slice_123/save_to_file/enabled": false, +"slice_123/save_to_file/keep_custom_tracks": false, +"slice_123/save_to_file/path": "", +"slice_123/start_frame": 0, +"slice_124/end_frame": 0, +"slice_124/loop_mode": 0, +"slice_124/name": "", +"slice_124/save_to_file/enabled": false, +"slice_124/save_to_file/keep_custom_tracks": false, +"slice_124/save_to_file/path": "", +"slice_124/start_frame": 0, +"slice_125/end_frame": 0, +"slice_125/loop_mode": 0, +"slice_125/name": "", +"slice_125/save_to_file/enabled": false, +"slice_125/save_to_file/keep_custom_tracks": false, +"slice_125/save_to_file/path": "", +"slice_125/start_frame": 0, +"slice_126/end_frame": 0, +"slice_126/loop_mode": 0, +"slice_126/name": "", +"slice_126/save_to_file/enabled": false, +"slice_126/save_to_file/keep_custom_tracks": false, +"slice_126/save_to_file/path": "", +"slice_126/start_frame": 0, +"slice_127/end_frame": 0, +"slice_127/loop_mode": 0, +"slice_127/name": "", +"slice_127/save_to_file/enabled": false, +"slice_127/save_to_file/keep_custom_tracks": false, +"slice_127/save_to_file/path": "", +"slice_127/start_frame": 0, +"slice_128/end_frame": 0, +"slice_128/loop_mode": 0, +"slice_128/name": "", +"slice_128/save_to_file/enabled": false, +"slice_128/save_to_file/keep_custom_tracks": false, +"slice_128/save_to_file/path": "", +"slice_128/start_frame": 0, +"slice_129/end_frame": 0, +"slice_129/loop_mode": 0, +"slice_129/name": "", +"slice_129/save_to_file/enabled": false, +"slice_129/save_to_file/keep_custom_tracks": false, +"slice_129/save_to_file/path": "", +"slice_129/start_frame": 0, +"slice_13/end_frame": 0, +"slice_13/loop_mode": 0, +"slice_13/name": "", +"slice_13/save_to_file/enabled": false, +"slice_13/save_to_file/keep_custom_tracks": false, +"slice_13/save_to_file/path": "", +"slice_13/start_frame": 0, +"slice_130/end_frame": 0, +"slice_130/loop_mode": 0, +"slice_130/name": "", +"slice_130/save_to_file/enabled": false, +"slice_130/save_to_file/keep_custom_tracks": false, +"slice_130/save_to_file/path": "", +"slice_130/start_frame": 0, +"slice_131/end_frame": 0, +"slice_131/loop_mode": 0, +"slice_131/name": "", +"slice_131/save_to_file/enabled": false, +"slice_131/save_to_file/keep_custom_tracks": false, +"slice_131/save_to_file/path": "", +"slice_131/start_frame": 0, +"slice_132/end_frame": 0, +"slice_132/loop_mode": 0, +"slice_132/name": "", +"slice_132/save_to_file/enabled": false, +"slice_132/save_to_file/keep_custom_tracks": false, +"slice_132/save_to_file/path": "", +"slice_132/start_frame": 0, +"slice_133/end_frame": 0, +"slice_133/loop_mode": 0, +"slice_133/name": "", +"slice_133/save_to_file/enabled": false, +"slice_133/save_to_file/keep_custom_tracks": false, +"slice_133/save_to_file/path": "", +"slice_133/start_frame": 0, +"slice_134/end_frame": 0, +"slice_134/loop_mode": 0, +"slice_134/name": "", +"slice_134/save_to_file/enabled": false, +"slice_134/save_to_file/keep_custom_tracks": false, +"slice_134/save_to_file/path": "", +"slice_134/start_frame": 0, +"slice_135/end_frame": 0, +"slice_135/loop_mode": 0, +"slice_135/name": "", +"slice_135/save_to_file/enabled": false, +"slice_135/save_to_file/keep_custom_tracks": false, +"slice_135/save_to_file/path": "", +"slice_135/start_frame": 0, +"slice_136/end_frame": 0, +"slice_136/loop_mode": 0, +"slice_136/name": "", +"slice_136/save_to_file/enabled": false, +"slice_136/save_to_file/keep_custom_tracks": false, +"slice_136/save_to_file/path": "", +"slice_136/start_frame": 0, +"slice_137/end_frame": 0, +"slice_137/loop_mode": 0, +"slice_137/name": "", +"slice_137/save_to_file/enabled": false, +"slice_137/save_to_file/keep_custom_tracks": false, +"slice_137/save_to_file/path": "", +"slice_137/start_frame": 0, +"slice_138/end_frame": 0, +"slice_138/loop_mode": 0, +"slice_138/name": "", +"slice_138/save_to_file/enabled": false, +"slice_138/save_to_file/keep_custom_tracks": false, +"slice_138/save_to_file/path": "", +"slice_138/start_frame": 0, +"slice_139/end_frame": 0, +"slice_139/loop_mode": 0, +"slice_139/name": "", +"slice_139/save_to_file/enabled": false, +"slice_139/save_to_file/keep_custom_tracks": false, +"slice_139/save_to_file/path": "", +"slice_139/start_frame": 0, +"slice_14/end_frame": 0, +"slice_14/loop_mode": 0, +"slice_14/name": "", +"slice_14/save_to_file/enabled": false, +"slice_14/save_to_file/keep_custom_tracks": false, +"slice_14/save_to_file/path": "", +"slice_14/start_frame": 0, +"slice_140/end_frame": 0, +"slice_140/loop_mode": 0, +"slice_140/name": "", +"slice_140/save_to_file/enabled": false, +"slice_140/save_to_file/keep_custom_tracks": false, +"slice_140/save_to_file/path": "", +"slice_140/start_frame": 0, +"slice_141/end_frame": 0, +"slice_141/loop_mode": 0, +"slice_141/name": "", +"slice_141/save_to_file/enabled": false, +"slice_141/save_to_file/keep_custom_tracks": false, +"slice_141/save_to_file/path": "", +"slice_141/start_frame": 0, +"slice_142/end_frame": 0, +"slice_142/loop_mode": 0, +"slice_142/name": "", +"slice_142/save_to_file/enabled": false, +"slice_142/save_to_file/keep_custom_tracks": false, +"slice_142/save_to_file/path": "", +"slice_142/start_frame": 0, +"slice_143/end_frame": 0, +"slice_143/loop_mode": 0, +"slice_143/name": "", +"slice_143/save_to_file/enabled": false, +"slice_143/save_to_file/keep_custom_tracks": false, +"slice_143/save_to_file/path": "", +"slice_143/start_frame": 0, +"slice_144/end_frame": 0, +"slice_144/loop_mode": 0, +"slice_144/name": "", +"slice_144/save_to_file/enabled": false, +"slice_144/save_to_file/keep_custom_tracks": false, +"slice_144/save_to_file/path": "", +"slice_144/start_frame": 0, +"slice_145/end_frame": 0, +"slice_145/loop_mode": 0, +"slice_145/name": "", +"slice_145/save_to_file/enabled": false, +"slice_145/save_to_file/keep_custom_tracks": false, +"slice_145/save_to_file/path": "", +"slice_145/start_frame": 0, +"slice_146/end_frame": 0, +"slice_146/loop_mode": 0, +"slice_146/name": "", +"slice_146/save_to_file/enabled": false, +"slice_146/save_to_file/keep_custom_tracks": false, +"slice_146/save_to_file/path": "", +"slice_146/start_frame": 0, +"slice_147/end_frame": 0, +"slice_147/loop_mode": 0, +"slice_147/name": "", +"slice_147/save_to_file/enabled": false, +"slice_147/save_to_file/keep_custom_tracks": false, +"slice_147/save_to_file/path": "", +"slice_147/start_frame": 0, +"slice_148/end_frame": 0, +"slice_148/loop_mode": 0, +"slice_148/name": "", +"slice_148/save_to_file/enabled": false, +"slice_148/save_to_file/keep_custom_tracks": false, +"slice_148/save_to_file/path": "", +"slice_148/start_frame": 0, +"slice_149/end_frame": 0, +"slice_149/loop_mode": 0, +"slice_149/name": "", +"slice_149/save_to_file/enabled": false, +"slice_149/save_to_file/keep_custom_tracks": false, +"slice_149/save_to_file/path": "", +"slice_149/start_frame": 0, +"slice_15/end_frame": 0, +"slice_15/loop_mode": 0, +"slice_15/name": "", +"slice_15/save_to_file/enabled": false, +"slice_15/save_to_file/keep_custom_tracks": false, +"slice_15/save_to_file/path": "", +"slice_15/start_frame": 0, +"slice_150/end_frame": 0, +"slice_150/loop_mode": 0, +"slice_150/name": "", +"slice_150/save_to_file/enabled": false, +"slice_150/save_to_file/keep_custom_tracks": false, +"slice_150/save_to_file/path": "", +"slice_150/start_frame": 0, +"slice_151/end_frame": 0, +"slice_151/loop_mode": 0, +"slice_151/name": "", +"slice_151/save_to_file/enabled": false, +"slice_151/save_to_file/keep_custom_tracks": false, +"slice_151/save_to_file/path": "", +"slice_151/start_frame": 0, +"slice_152/end_frame": 0, +"slice_152/loop_mode": 0, +"slice_152/name": "", +"slice_152/save_to_file/enabled": false, +"slice_152/save_to_file/keep_custom_tracks": false, +"slice_152/save_to_file/path": "", +"slice_152/start_frame": 0, +"slice_153/end_frame": 0, +"slice_153/loop_mode": 0, +"slice_153/name": "", +"slice_153/save_to_file/enabled": false, +"slice_153/save_to_file/keep_custom_tracks": false, +"slice_153/save_to_file/path": "", +"slice_153/start_frame": 0, +"slice_154/end_frame": 0, +"slice_154/loop_mode": 0, +"slice_154/name": "", +"slice_154/save_to_file/enabled": false, +"slice_154/save_to_file/keep_custom_tracks": false, +"slice_154/save_to_file/path": "", +"slice_154/start_frame": 0, +"slice_155/end_frame": 0, +"slice_155/loop_mode": 0, +"slice_155/name": "", +"slice_155/save_to_file/enabled": false, +"slice_155/save_to_file/keep_custom_tracks": false, +"slice_155/save_to_file/path": "", +"slice_155/start_frame": 0, +"slice_156/end_frame": 0, +"slice_156/loop_mode": 0, +"slice_156/name": "", +"slice_156/save_to_file/enabled": false, +"slice_156/save_to_file/keep_custom_tracks": false, +"slice_156/save_to_file/path": "", +"slice_156/start_frame": 0, +"slice_157/end_frame": 0, +"slice_157/loop_mode": 0, +"slice_157/name": "", +"slice_157/save_to_file/enabled": false, +"slice_157/save_to_file/keep_custom_tracks": false, +"slice_157/save_to_file/path": "", +"slice_157/start_frame": 0, +"slice_158/end_frame": 0, +"slice_158/loop_mode": 0, +"slice_158/name": "", +"slice_158/save_to_file/enabled": false, +"slice_158/save_to_file/keep_custom_tracks": false, +"slice_158/save_to_file/path": "", +"slice_158/start_frame": 0, +"slice_159/end_frame": 0, +"slice_159/loop_mode": 0, +"slice_159/name": "", +"slice_159/save_to_file/enabled": false, +"slice_159/save_to_file/keep_custom_tracks": false, +"slice_159/save_to_file/path": "", +"slice_159/start_frame": 0, +"slice_16/end_frame": 0, +"slice_16/loop_mode": 0, +"slice_16/name": "", +"slice_16/save_to_file/enabled": false, +"slice_16/save_to_file/keep_custom_tracks": false, +"slice_16/save_to_file/path": "", +"slice_16/start_frame": 0, +"slice_160/end_frame": 0, +"slice_160/loop_mode": 0, +"slice_160/name": "", +"slice_160/save_to_file/enabled": false, +"slice_160/save_to_file/keep_custom_tracks": false, +"slice_160/save_to_file/path": "", +"slice_160/start_frame": 0, +"slice_161/end_frame": 0, +"slice_161/loop_mode": 0, +"slice_161/name": "", +"slice_161/save_to_file/enabled": false, +"slice_161/save_to_file/keep_custom_tracks": false, +"slice_161/save_to_file/path": "", +"slice_161/start_frame": 0, +"slice_162/end_frame": 0, +"slice_162/loop_mode": 0, +"slice_162/name": "", +"slice_162/save_to_file/enabled": false, +"slice_162/save_to_file/keep_custom_tracks": false, +"slice_162/save_to_file/path": "", +"slice_162/start_frame": 0, +"slice_163/end_frame": 0, +"slice_163/loop_mode": 0, +"slice_163/name": "", +"slice_163/save_to_file/enabled": false, +"slice_163/save_to_file/keep_custom_tracks": false, +"slice_163/save_to_file/path": "", +"slice_163/start_frame": 0, +"slice_164/end_frame": 0, +"slice_164/loop_mode": 0, +"slice_164/name": "", +"slice_164/save_to_file/enabled": false, +"slice_164/save_to_file/keep_custom_tracks": false, +"slice_164/save_to_file/path": "", +"slice_164/start_frame": 0, +"slice_165/end_frame": 0, +"slice_165/loop_mode": 0, +"slice_165/name": "", +"slice_165/save_to_file/enabled": false, +"slice_165/save_to_file/keep_custom_tracks": false, +"slice_165/save_to_file/path": "", +"slice_165/start_frame": 0, +"slice_166/end_frame": 0, +"slice_166/loop_mode": 0, +"slice_166/name": "", +"slice_166/save_to_file/enabled": false, +"slice_166/save_to_file/keep_custom_tracks": false, +"slice_166/save_to_file/path": "", +"slice_166/start_frame": 0, +"slice_167/end_frame": 0, +"slice_167/loop_mode": 0, +"slice_167/name": "", +"slice_167/save_to_file/enabled": false, +"slice_167/save_to_file/keep_custom_tracks": false, +"slice_167/save_to_file/path": "", +"slice_167/start_frame": 0, +"slice_168/end_frame": 0, +"slice_168/loop_mode": 0, +"slice_168/name": "", +"slice_168/save_to_file/enabled": false, +"slice_168/save_to_file/keep_custom_tracks": false, +"slice_168/save_to_file/path": "", +"slice_168/start_frame": 0, +"slice_169/end_frame": 0, +"slice_169/loop_mode": 0, +"slice_169/name": "", +"slice_169/save_to_file/enabled": false, +"slice_169/save_to_file/keep_custom_tracks": false, +"slice_169/save_to_file/path": "", +"slice_169/start_frame": 0, +"slice_17/end_frame": 0, +"slice_17/loop_mode": 0, +"slice_17/name": "", +"slice_17/save_to_file/enabled": false, +"slice_17/save_to_file/keep_custom_tracks": false, +"slice_17/save_to_file/path": "", +"slice_17/start_frame": 0, +"slice_170/end_frame": 0, +"slice_170/loop_mode": 0, +"slice_170/name": "", +"slice_170/save_to_file/enabled": false, +"slice_170/save_to_file/keep_custom_tracks": false, +"slice_170/save_to_file/path": "", +"slice_170/start_frame": 0, +"slice_171/end_frame": 0, +"slice_171/loop_mode": 0, +"slice_171/name": "", +"slice_171/save_to_file/enabled": false, +"slice_171/save_to_file/keep_custom_tracks": false, +"slice_171/save_to_file/path": "", +"slice_171/start_frame": 0, +"slice_172/end_frame": 0, +"slice_172/loop_mode": 0, +"slice_172/name": "", +"slice_172/save_to_file/enabled": false, +"slice_172/save_to_file/keep_custom_tracks": false, +"slice_172/save_to_file/path": "", +"slice_172/start_frame": 0, +"slice_173/end_frame": 0, +"slice_173/loop_mode": 0, +"slice_173/name": "", +"slice_173/save_to_file/enabled": false, +"slice_173/save_to_file/keep_custom_tracks": false, +"slice_173/save_to_file/path": "", +"slice_173/start_frame": 0, +"slice_174/end_frame": 0, +"slice_174/loop_mode": 0, +"slice_174/name": "", +"slice_174/save_to_file/enabled": false, +"slice_174/save_to_file/keep_custom_tracks": false, +"slice_174/save_to_file/path": "", +"slice_174/start_frame": 0, +"slice_175/end_frame": 0, +"slice_175/loop_mode": 0, +"slice_175/name": "", +"slice_175/save_to_file/enabled": false, +"slice_175/save_to_file/keep_custom_tracks": false, +"slice_175/save_to_file/path": "", +"slice_175/start_frame": 0, +"slice_176/end_frame": 0, +"slice_176/loop_mode": 0, +"slice_176/name": "", +"slice_176/save_to_file/enabled": false, +"slice_176/save_to_file/keep_custom_tracks": false, +"slice_176/save_to_file/path": "", +"slice_176/start_frame": 0, +"slice_177/end_frame": 0, +"slice_177/loop_mode": 0, +"slice_177/name": "", +"slice_177/save_to_file/enabled": false, +"slice_177/save_to_file/keep_custom_tracks": false, +"slice_177/save_to_file/path": "", +"slice_177/start_frame": 0, +"slice_178/end_frame": 0, +"slice_178/loop_mode": 0, +"slice_178/name": "", +"slice_178/save_to_file/enabled": false, +"slice_178/save_to_file/keep_custom_tracks": false, +"slice_178/save_to_file/path": "", +"slice_178/start_frame": 0, +"slice_179/end_frame": 0, +"slice_179/loop_mode": 0, +"slice_179/name": "", +"slice_179/save_to_file/enabled": false, +"slice_179/save_to_file/keep_custom_tracks": false, +"slice_179/save_to_file/path": "", +"slice_179/start_frame": 0, +"slice_18/end_frame": 0, +"slice_18/loop_mode": 0, +"slice_18/name": "", +"slice_18/save_to_file/enabled": false, +"slice_18/save_to_file/keep_custom_tracks": false, +"slice_18/save_to_file/path": "", +"slice_18/start_frame": 0, +"slice_180/end_frame": 0, +"slice_180/loop_mode": 0, +"slice_180/name": "", +"slice_180/save_to_file/enabled": false, +"slice_180/save_to_file/keep_custom_tracks": false, +"slice_180/save_to_file/path": "", +"slice_180/start_frame": 0, +"slice_181/end_frame": 0, +"slice_181/loop_mode": 0, +"slice_181/name": "", +"slice_181/save_to_file/enabled": false, +"slice_181/save_to_file/keep_custom_tracks": false, +"slice_181/save_to_file/path": "", +"slice_181/start_frame": 0, +"slice_182/end_frame": 0, +"slice_182/loop_mode": 0, +"slice_182/name": "", +"slice_182/save_to_file/enabled": false, +"slice_182/save_to_file/keep_custom_tracks": false, +"slice_182/save_to_file/path": "", +"slice_182/start_frame": 0, +"slice_183/end_frame": 0, +"slice_183/loop_mode": 0, +"slice_183/name": "", +"slice_183/save_to_file/enabled": false, +"slice_183/save_to_file/keep_custom_tracks": false, +"slice_183/save_to_file/path": "", +"slice_183/start_frame": 0, +"slice_184/end_frame": 0, +"slice_184/loop_mode": 0, +"slice_184/name": "", +"slice_184/save_to_file/enabled": false, +"slice_184/save_to_file/keep_custom_tracks": false, +"slice_184/save_to_file/path": "", +"slice_184/start_frame": 0, +"slice_185/end_frame": 0, +"slice_185/loop_mode": 0, +"slice_185/name": "", +"slice_185/save_to_file/enabled": false, +"slice_185/save_to_file/keep_custom_tracks": false, +"slice_185/save_to_file/path": "", +"slice_185/start_frame": 0, +"slice_186/end_frame": 0, +"slice_186/loop_mode": 0, +"slice_186/name": "", +"slice_186/save_to_file/enabled": false, +"slice_186/save_to_file/keep_custom_tracks": false, +"slice_186/save_to_file/path": "", +"slice_186/start_frame": 0, +"slice_187/end_frame": 0, +"slice_187/loop_mode": 0, +"slice_187/name": "", +"slice_187/save_to_file/enabled": false, +"slice_187/save_to_file/keep_custom_tracks": false, +"slice_187/save_to_file/path": "", +"slice_187/start_frame": 0, +"slice_188/end_frame": 0, +"slice_188/loop_mode": 0, +"slice_188/name": "", +"slice_188/save_to_file/enabled": false, +"slice_188/save_to_file/keep_custom_tracks": false, +"slice_188/save_to_file/path": "", +"slice_188/start_frame": 0, +"slice_189/end_frame": 0, +"slice_189/loop_mode": 0, +"slice_189/name": "", +"slice_189/save_to_file/enabled": false, +"slice_189/save_to_file/keep_custom_tracks": false, +"slice_189/save_to_file/path": "", +"slice_189/start_frame": 0, +"slice_19/end_frame": 0, +"slice_19/loop_mode": 0, +"slice_19/name": "", +"slice_19/save_to_file/enabled": false, +"slice_19/save_to_file/keep_custom_tracks": false, +"slice_19/save_to_file/path": "", +"slice_19/start_frame": 0, +"slice_190/end_frame": 0, +"slice_190/loop_mode": 0, +"slice_190/name": "", +"slice_190/save_to_file/enabled": false, +"slice_190/save_to_file/keep_custom_tracks": false, +"slice_190/save_to_file/path": "", +"slice_190/start_frame": 0, +"slice_191/end_frame": 0, +"slice_191/loop_mode": 0, +"slice_191/name": "", +"slice_191/save_to_file/enabled": false, +"slice_191/save_to_file/keep_custom_tracks": false, +"slice_191/save_to_file/path": "", +"slice_191/start_frame": 0, +"slice_192/end_frame": 0, +"slice_192/loop_mode": 0, +"slice_192/name": "", +"slice_192/save_to_file/enabled": false, +"slice_192/save_to_file/keep_custom_tracks": false, +"slice_192/save_to_file/path": "", +"slice_192/start_frame": 0, +"slice_193/end_frame": 0, +"slice_193/loop_mode": 0, +"slice_193/name": "", +"slice_193/save_to_file/enabled": false, +"slice_193/save_to_file/keep_custom_tracks": false, +"slice_193/save_to_file/path": "", +"slice_193/start_frame": 0, +"slice_194/end_frame": 0, +"slice_194/loop_mode": 0, +"slice_194/name": "", +"slice_194/save_to_file/enabled": false, +"slice_194/save_to_file/keep_custom_tracks": false, +"slice_194/save_to_file/path": "", +"slice_194/start_frame": 0, +"slice_195/end_frame": 0, +"slice_195/loop_mode": 0, +"slice_195/name": "", +"slice_195/save_to_file/enabled": false, +"slice_195/save_to_file/keep_custom_tracks": false, +"slice_195/save_to_file/path": "", +"slice_195/start_frame": 0, +"slice_196/end_frame": 0, +"slice_196/loop_mode": 0, +"slice_196/name": "", +"slice_196/save_to_file/enabled": false, +"slice_196/save_to_file/keep_custom_tracks": false, +"slice_196/save_to_file/path": "", +"slice_196/start_frame": 0, +"slice_197/end_frame": 0, +"slice_197/loop_mode": 0, +"slice_197/name": "", +"slice_197/save_to_file/enabled": false, +"slice_197/save_to_file/keep_custom_tracks": false, +"slice_197/save_to_file/path": "", +"slice_197/start_frame": 0, +"slice_198/end_frame": 0, +"slice_198/loop_mode": 0, +"slice_198/name": "", +"slice_198/save_to_file/enabled": false, +"slice_198/save_to_file/keep_custom_tracks": false, +"slice_198/save_to_file/path": "", +"slice_198/start_frame": 0, +"slice_199/end_frame": 0, +"slice_199/loop_mode": 0, +"slice_199/name": "", +"slice_199/save_to_file/enabled": false, +"slice_199/save_to_file/keep_custom_tracks": false, +"slice_199/save_to_file/path": "", +"slice_199/start_frame": 0, +"slice_2/end_frame": 0, +"slice_2/loop_mode": 0, +"slice_2/name": "", +"slice_2/save_to_file/enabled": false, +"slice_2/save_to_file/keep_custom_tracks": false, +"slice_2/save_to_file/path": "", +"slice_2/start_frame": 0, +"slice_20/end_frame": 0, +"slice_20/loop_mode": 0, +"slice_20/name": "", +"slice_20/save_to_file/enabled": false, +"slice_20/save_to_file/keep_custom_tracks": false, +"slice_20/save_to_file/path": "", +"slice_20/start_frame": 0, +"slice_200/end_frame": 0, +"slice_200/loop_mode": 0, +"slice_200/name": "", +"slice_200/save_to_file/enabled": false, +"slice_200/save_to_file/keep_custom_tracks": false, +"slice_200/save_to_file/path": "", +"slice_200/start_frame": 0, +"slice_201/end_frame": 0, +"slice_201/loop_mode": 0, +"slice_201/name": "", +"slice_201/save_to_file/enabled": false, +"slice_201/save_to_file/keep_custom_tracks": false, +"slice_201/save_to_file/path": "", +"slice_201/start_frame": 0, +"slice_202/end_frame": 0, +"slice_202/loop_mode": 0, +"slice_202/name": "", +"slice_202/save_to_file/enabled": false, +"slice_202/save_to_file/keep_custom_tracks": false, +"slice_202/save_to_file/path": "", +"slice_202/start_frame": 0, +"slice_203/end_frame": 0, +"slice_203/loop_mode": 0, +"slice_203/name": "", +"slice_203/save_to_file/enabled": false, +"slice_203/save_to_file/keep_custom_tracks": false, +"slice_203/save_to_file/path": "", +"slice_203/start_frame": 0, +"slice_204/end_frame": 0, +"slice_204/loop_mode": 0, +"slice_204/name": "", +"slice_204/save_to_file/enabled": false, +"slice_204/save_to_file/keep_custom_tracks": false, +"slice_204/save_to_file/path": "", +"slice_204/start_frame": 0, +"slice_205/end_frame": 0, +"slice_205/loop_mode": 0, +"slice_205/name": "", +"slice_205/save_to_file/enabled": false, +"slice_205/save_to_file/keep_custom_tracks": false, +"slice_205/save_to_file/path": "", +"slice_205/start_frame": 0, +"slice_206/end_frame": 0, +"slice_206/loop_mode": 0, +"slice_206/name": "", +"slice_206/save_to_file/enabled": false, +"slice_206/save_to_file/keep_custom_tracks": false, +"slice_206/save_to_file/path": "", +"slice_206/start_frame": 0, +"slice_207/end_frame": 0, +"slice_207/loop_mode": 0, +"slice_207/name": "", +"slice_207/save_to_file/enabled": false, +"slice_207/save_to_file/keep_custom_tracks": false, +"slice_207/save_to_file/path": "", +"slice_207/start_frame": 0, +"slice_208/end_frame": 0, +"slice_208/loop_mode": 0, +"slice_208/name": "", +"slice_208/save_to_file/enabled": false, +"slice_208/save_to_file/keep_custom_tracks": false, +"slice_208/save_to_file/path": "", +"slice_208/start_frame": 0, +"slice_209/end_frame": 0, +"slice_209/loop_mode": 0, +"slice_209/name": "", +"slice_209/save_to_file/enabled": false, +"slice_209/save_to_file/keep_custom_tracks": false, +"slice_209/save_to_file/path": "", +"slice_209/start_frame": 0, +"slice_21/end_frame": 0, +"slice_21/loop_mode": 0, +"slice_21/name": "", +"slice_21/save_to_file/enabled": false, +"slice_21/save_to_file/keep_custom_tracks": false, +"slice_21/save_to_file/path": "", +"slice_21/start_frame": 0, +"slice_210/end_frame": 0, +"slice_210/loop_mode": 0, +"slice_210/name": "", +"slice_210/save_to_file/enabled": false, +"slice_210/save_to_file/keep_custom_tracks": false, +"slice_210/save_to_file/path": "", +"slice_210/start_frame": 0, +"slice_211/end_frame": 0, +"slice_211/loop_mode": 0, +"slice_211/name": "", +"slice_211/save_to_file/enabled": false, +"slice_211/save_to_file/keep_custom_tracks": false, +"slice_211/save_to_file/path": "", +"slice_211/start_frame": 0, +"slice_212/end_frame": 0, +"slice_212/loop_mode": 0, +"slice_212/name": "", +"slice_212/save_to_file/enabled": false, +"slice_212/save_to_file/keep_custom_tracks": false, +"slice_212/save_to_file/path": "", +"slice_212/start_frame": 0, +"slice_213/end_frame": 0, +"slice_213/loop_mode": 0, +"slice_213/name": "", +"slice_213/save_to_file/enabled": false, +"slice_213/save_to_file/keep_custom_tracks": false, +"slice_213/save_to_file/path": "", +"slice_213/start_frame": 0, +"slice_214/end_frame": 0, +"slice_214/loop_mode": 0, +"slice_214/name": "", +"slice_214/save_to_file/enabled": false, +"slice_214/save_to_file/keep_custom_tracks": false, +"slice_214/save_to_file/path": "", +"slice_214/start_frame": 0, +"slice_215/end_frame": 0, +"slice_215/loop_mode": 0, +"slice_215/name": "", +"slice_215/save_to_file/enabled": false, +"slice_215/save_to_file/keep_custom_tracks": false, +"slice_215/save_to_file/path": "", +"slice_215/start_frame": 0, +"slice_216/end_frame": 0, +"slice_216/loop_mode": 0, +"slice_216/name": "", +"slice_216/save_to_file/enabled": false, +"slice_216/save_to_file/keep_custom_tracks": false, +"slice_216/save_to_file/path": "", +"slice_216/start_frame": 0, +"slice_217/end_frame": 0, +"slice_217/loop_mode": 0, +"slice_217/name": "", +"slice_217/save_to_file/enabled": false, +"slice_217/save_to_file/keep_custom_tracks": false, +"slice_217/save_to_file/path": "", +"slice_217/start_frame": 0, +"slice_218/end_frame": 0, +"slice_218/loop_mode": 0, +"slice_218/name": "", +"slice_218/save_to_file/enabled": false, +"slice_218/save_to_file/keep_custom_tracks": false, +"slice_218/save_to_file/path": "", +"slice_218/start_frame": 0, +"slice_219/end_frame": 0, +"slice_219/loop_mode": 0, +"slice_219/name": "", +"slice_219/save_to_file/enabled": false, +"slice_219/save_to_file/keep_custom_tracks": false, +"slice_219/save_to_file/path": "", +"slice_219/start_frame": 0, +"slice_22/end_frame": 0, +"slice_22/loop_mode": 0, +"slice_22/name": "", +"slice_22/save_to_file/enabled": false, +"slice_22/save_to_file/keep_custom_tracks": false, +"slice_22/save_to_file/path": "", +"slice_22/start_frame": 0, +"slice_220/end_frame": 0, +"slice_220/loop_mode": 0, +"slice_220/name": "", +"slice_220/save_to_file/enabled": false, +"slice_220/save_to_file/keep_custom_tracks": false, +"slice_220/save_to_file/path": "", +"slice_220/start_frame": 0, +"slice_221/end_frame": 0, +"slice_221/loop_mode": 0, +"slice_221/name": "", +"slice_221/save_to_file/enabled": false, +"slice_221/save_to_file/keep_custom_tracks": false, +"slice_221/save_to_file/path": "", +"slice_221/start_frame": 0, +"slice_222/end_frame": 0, +"slice_222/loop_mode": 0, +"slice_222/name": "", +"slice_222/save_to_file/enabled": false, +"slice_222/save_to_file/keep_custom_tracks": false, +"slice_222/save_to_file/path": "", +"slice_222/start_frame": 0, +"slice_223/end_frame": 0, +"slice_223/loop_mode": 0, +"slice_223/name": "", +"slice_223/save_to_file/enabled": false, +"slice_223/save_to_file/keep_custom_tracks": false, +"slice_223/save_to_file/path": "", +"slice_223/start_frame": 0, +"slice_224/end_frame": 0, +"slice_224/loop_mode": 0, +"slice_224/name": "", +"slice_224/save_to_file/enabled": false, +"slice_224/save_to_file/keep_custom_tracks": false, +"slice_224/save_to_file/path": "", +"slice_224/start_frame": 0, +"slice_225/end_frame": 0, +"slice_225/loop_mode": 0, +"slice_225/name": "", +"slice_225/save_to_file/enabled": false, +"slice_225/save_to_file/keep_custom_tracks": false, +"slice_225/save_to_file/path": "", +"slice_225/start_frame": 0, +"slice_226/end_frame": 0, +"slice_226/loop_mode": 0, +"slice_226/name": "", +"slice_226/save_to_file/enabled": false, +"slice_226/save_to_file/keep_custom_tracks": false, +"slice_226/save_to_file/path": "", +"slice_226/start_frame": 0, +"slice_227/end_frame": 0, +"slice_227/loop_mode": 0, +"slice_227/name": "", +"slice_227/save_to_file/enabled": false, +"slice_227/save_to_file/keep_custom_tracks": false, +"slice_227/save_to_file/path": "", +"slice_227/start_frame": 0, +"slice_228/end_frame": 0, +"slice_228/loop_mode": 0, +"slice_228/name": "", +"slice_228/save_to_file/enabled": false, +"slice_228/save_to_file/keep_custom_tracks": false, +"slice_228/save_to_file/path": "", +"slice_228/start_frame": 0, +"slice_229/end_frame": 0, +"slice_229/loop_mode": 0, +"slice_229/name": "", +"slice_229/save_to_file/enabled": false, +"slice_229/save_to_file/keep_custom_tracks": false, +"slice_229/save_to_file/path": "", +"slice_229/start_frame": 0, +"slice_23/end_frame": 0, +"slice_23/loop_mode": 0, +"slice_23/name": "", +"slice_23/save_to_file/enabled": false, +"slice_23/save_to_file/keep_custom_tracks": false, +"slice_23/save_to_file/path": "", +"slice_23/start_frame": 0, +"slice_230/end_frame": 0, +"slice_230/loop_mode": 0, +"slice_230/name": "", +"slice_230/save_to_file/enabled": false, +"slice_230/save_to_file/keep_custom_tracks": false, +"slice_230/save_to_file/path": "", +"slice_230/start_frame": 0, +"slice_231/end_frame": 0, +"slice_231/loop_mode": 0, +"slice_231/name": "", +"slice_231/save_to_file/enabled": false, +"slice_231/save_to_file/keep_custom_tracks": false, +"slice_231/save_to_file/path": "", +"slice_231/start_frame": 0, +"slice_232/end_frame": 0, +"slice_232/loop_mode": 0, +"slice_232/name": "", +"slice_232/save_to_file/enabled": false, +"slice_232/save_to_file/keep_custom_tracks": false, +"slice_232/save_to_file/path": "", +"slice_232/start_frame": 0, +"slice_233/end_frame": 0, +"slice_233/loop_mode": 0, +"slice_233/name": "", +"slice_233/save_to_file/enabled": false, +"slice_233/save_to_file/keep_custom_tracks": false, +"slice_233/save_to_file/path": "", +"slice_233/start_frame": 0, +"slice_234/end_frame": 0, +"slice_234/loop_mode": 0, +"slice_234/name": "", +"slice_234/save_to_file/enabled": false, +"slice_234/save_to_file/keep_custom_tracks": false, +"slice_234/save_to_file/path": "", +"slice_234/start_frame": 0, +"slice_235/end_frame": 0, +"slice_235/loop_mode": 0, +"slice_235/name": "", +"slice_235/save_to_file/enabled": false, +"slice_235/save_to_file/keep_custom_tracks": false, +"slice_235/save_to_file/path": "", +"slice_235/start_frame": 0, +"slice_236/end_frame": 0, +"slice_236/loop_mode": 0, +"slice_236/name": "", +"slice_236/save_to_file/enabled": false, +"slice_236/save_to_file/keep_custom_tracks": false, +"slice_236/save_to_file/path": "", +"slice_236/start_frame": 0, +"slice_237/end_frame": 0, +"slice_237/loop_mode": 0, +"slice_237/name": "", +"slice_237/save_to_file/enabled": false, +"slice_237/save_to_file/keep_custom_tracks": false, +"slice_237/save_to_file/path": "", +"slice_237/start_frame": 0, +"slice_238/end_frame": 0, +"slice_238/loop_mode": 0, +"slice_238/name": "", +"slice_238/save_to_file/enabled": false, +"slice_238/save_to_file/keep_custom_tracks": false, +"slice_238/save_to_file/path": "", +"slice_238/start_frame": 0, +"slice_239/end_frame": 0, +"slice_239/loop_mode": 0, +"slice_239/name": "", +"slice_239/save_to_file/enabled": false, +"slice_239/save_to_file/keep_custom_tracks": false, +"slice_239/save_to_file/path": "", +"slice_239/start_frame": 0, +"slice_24/end_frame": 0, +"slice_24/loop_mode": 0, +"slice_24/name": "", +"slice_24/save_to_file/enabled": false, +"slice_24/save_to_file/keep_custom_tracks": false, +"slice_24/save_to_file/path": "", +"slice_24/start_frame": 0, +"slice_240/end_frame": 0, +"slice_240/loop_mode": 0, +"slice_240/name": "", +"slice_240/save_to_file/enabled": false, +"slice_240/save_to_file/keep_custom_tracks": false, +"slice_240/save_to_file/path": "", +"slice_240/start_frame": 0, +"slice_241/end_frame": 0, +"slice_241/loop_mode": 0, +"slice_241/name": "", +"slice_241/save_to_file/enabled": false, +"slice_241/save_to_file/keep_custom_tracks": false, +"slice_241/save_to_file/path": "", +"slice_241/start_frame": 0, +"slice_242/end_frame": 0, +"slice_242/loop_mode": 0, +"slice_242/name": "", +"slice_242/save_to_file/enabled": false, +"slice_242/save_to_file/keep_custom_tracks": false, +"slice_242/save_to_file/path": "", +"slice_242/start_frame": 0, +"slice_243/end_frame": 0, +"slice_243/loop_mode": 0, +"slice_243/name": "", +"slice_243/save_to_file/enabled": false, +"slice_243/save_to_file/keep_custom_tracks": false, +"slice_243/save_to_file/path": "", +"slice_243/start_frame": 0, +"slice_244/end_frame": 0, +"slice_244/loop_mode": 0, +"slice_244/name": "", +"slice_244/save_to_file/enabled": false, +"slice_244/save_to_file/keep_custom_tracks": false, +"slice_244/save_to_file/path": "", +"slice_244/start_frame": 0, +"slice_245/end_frame": 0, +"slice_245/loop_mode": 0, +"slice_245/name": "", +"slice_245/save_to_file/enabled": false, +"slice_245/save_to_file/keep_custom_tracks": false, +"slice_245/save_to_file/path": "", +"slice_245/start_frame": 0, +"slice_246/end_frame": 0, +"slice_246/loop_mode": 0, +"slice_246/name": "", +"slice_246/save_to_file/enabled": false, +"slice_246/save_to_file/keep_custom_tracks": false, +"slice_246/save_to_file/path": "", +"slice_246/start_frame": 0, +"slice_247/end_frame": 0, +"slice_247/loop_mode": 0, +"slice_247/name": "", +"slice_247/save_to_file/enabled": false, +"slice_247/save_to_file/keep_custom_tracks": false, +"slice_247/save_to_file/path": "", +"slice_247/start_frame": 0, +"slice_248/end_frame": 0, +"slice_248/loop_mode": 0, +"slice_248/name": "", +"slice_248/save_to_file/enabled": false, +"slice_248/save_to_file/keep_custom_tracks": false, +"slice_248/save_to_file/path": "", +"slice_248/start_frame": 0, +"slice_249/end_frame": 0, +"slice_249/loop_mode": 0, +"slice_249/name": "", +"slice_249/save_to_file/enabled": false, +"slice_249/save_to_file/keep_custom_tracks": false, +"slice_249/save_to_file/path": "", +"slice_249/start_frame": 0, +"slice_25/end_frame": 0, +"slice_25/loop_mode": 0, +"slice_25/name": "", +"slice_25/save_to_file/enabled": false, +"slice_25/save_to_file/keep_custom_tracks": false, +"slice_25/save_to_file/path": "", +"slice_25/start_frame": 0, +"slice_250/end_frame": 0, +"slice_250/loop_mode": 0, +"slice_250/name": "", +"slice_250/save_to_file/enabled": false, +"slice_250/save_to_file/keep_custom_tracks": false, +"slice_250/save_to_file/path": "", +"slice_250/start_frame": 0, +"slice_251/end_frame": 0, +"slice_251/loop_mode": 0, +"slice_251/name": "", +"slice_251/save_to_file/enabled": false, +"slice_251/save_to_file/keep_custom_tracks": false, +"slice_251/save_to_file/path": "", +"slice_251/start_frame": 0, +"slice_252/end_frame": 0, +"slice_252/loop_mode": 0, +"slice_252/name": "", +"slice_252/save_to_file/enabled": false, +"slice_252/save_to_file/keep_custom_tracks": false, +"slice_252/save_to_file/path": "", +"slice_252/start_frame": 0, +"slice_253/end_frame": 0, +"slice_253/loop_mode": 0, +"slice_253/name": "", +"slice_253/save_to_file/enabled": false, +"slice_253/save_to_file/keep_custom_tracks": false, +"slice_253/save_to_file/path": "", +"slice_253/start_frame": 0, +"slice_254/end_frame": 0, +"slice_254/loop_mode": 0, +"slice_254/name": "", +"slice_254/save_to_file/enabled": false, +"slice_254/save_to_file/keep_custom_tracks": false, +"slice_254/save_to_file/path": "", +"slice_254/start_frame": 0, +"slice_255/end_frame": 0, +"slice_255/loop_mode": 0, +"slice_255/name": "", +"slice_255/save_to_file/enabled": false, +"slice_255/save_to_file/keep_custom_tracks": false, +"slice_255/save_to_file/path": "", +"slice_255/start_frame": 0, +"slice_256/end_frame": 0, +"slice_256/loop_mode": 0, +"slice_256/name": "", +"slice_256/save_to_file/enabled": false, +"slice_256/save_to_file/keep_custom_tracks": false, +"slice_256/save_to_file/path": "", +"slice_256/start_frame": 0, +"slice_26/end_frame": 0, +"slice_26/loop_mode": 0, +"slice_26/name": "", +"slice_26/save_to_file/enabled": false, +"slice_26/save_to_file/keep_custom_tracks": false, +"slice_26/save_to_file/path": "", +"slice_26/start_frame": 0, +"slice_27/end_frame": 0, +"slice_27/loop_mode": 0, +"slice_27/name": "", +"slice_27/save_to_file/enabled": false, +"slice_27/save_to_file/keep_custom_tracks": false, +"slice_27/save_to_file/path": "", +"slice_27/start_frame": 0, +"slice_28/end_frame": 0, +"slice_28/loop_mode": 0, +"slice_28/name": "", +"slice_28/save_to_file/enabled": false, +"slice_28/save_to_file/keep_custom_tracks": false, +"slice_28/save_to_file/path": "", +"slice_28/start_frame": 0, +"slice_29/end_frame": 0, +"slice_29/loop_mode": 0, +"slice_29/name": "", +"slice_29/save_to_file/enabled": false, +"slice_29/save_to_file/keep_custom_tracks": false, +"slice_29/save_to_file/path": "", +"slice_29/start_frame": 0, +"slice_3/end_frame": 0, +"slice_3/loop_mode": 0, +"slice_3/name": "", +"slice_3/save_to_file/enabled": false, +"slice_3/save_to_file/keep_custom_tracks": false, +"slice_3/save_to_file/path": "", +"slice_3/start_frame": 0, +"slice_30/end_frame": 0, +"slice_30/loop_mode": 0, +"slice_30/name": "", +"slice_30/save_to_file/enabled": false, +"slice_30/save_to_file/keep_custom_tracks": false, +"slice_30/save_to_file/path": "", +"slice_30/start_frame": 0, +"slice_31/end_frame": 0, +"slice_31/loop_mode": 0, +"slice_31/name": "", +"slice_31/save_to_file/enabled": false, +"slice_31/save_to_file/keep_custom_tracks": false, +"slice_31/save_to_file/path": "", +"slice_31/start_frame": 0, +"slice_32/end_frame": 0, +"slice_32/loop_mode": 0, +"slice_32/name": "", +"slice_32/save_to_file/enabled": false, +"slice_32/save_to_file/keep_custom_tracks": false, +"slice_32/save_to_file/path": "", +"slice_32/start_frame": 0, +"slice_33/end_frame": 0, +"slice_33/loop_mode": 0, +"slice_33/name": "", +"slice_33/save_to_file/enabled": false, +"slice_33/save_to_file/keep_custom_tracks": false, +"slice_33/save_to_file/path": "", +"slice_33/start_frame": 0, +"slice_34/end_frame": 0, +"slice_34/loop_mode": 0, +"slice_34/name": "", +"slice_34/save_to_file/enabled": false, +"slice_34/save_to_file/keep_custom_tracks": false, +"slice_34/save_to_file/path": "", +"slice_34/start_frame": 0, +"slice_35/end_frame": 0, +"slice_35/loop_mode": 0, +"slice_35/name": "", +"slice_35/save_to_file/enabled": false, +"slice_35/save_to_file/keep_custom_tracks": false, +"slice_35/save_to_file/path": "", +"slice_35/start_frame": 0, +"slice_36/end_frame": 0, +"slice_36/loop_mode": 0, +"slice_36/name": "", +"slice_36/save_to_file/enabled": false, +"slice_36/save_to_file/keep_custom_tracks": false, +"slice_36/save_to_file/path": "", +"slice_36/start_frame": 0, +"slice_37/end_frame": 0, +"slice_37/loop_mode": 0, +"slice_37/name": "", +"slice_37/save_to_file/enabled": false, +"slice_37/save_to_file/keep_custom_tracks": false, +"slice_37/save_to_file/path": "", +"slice_37/start_frame": 0, +"slice_38/end_frame": 0, +"slice_38/loop_mode": 0, +"slice_38/name": "", +"slice_38/save_to_file/enabled": false, +"slice_38/save_to_file/keep_custom_tracks": false, +"slice_38/save_to_file/path": "", +"slice_38/start_frame": 0, +"slice_39/end_frame": 0, +"slice_39/loop_mode": 0, +"slice_39/name": "", +"slice_39/save_to_file/enabled": false, +"slice_39/save_to_file/keep_custom_tracks": false, +"slice_39/save_to_file/path": "", +"slice_39/start_frame": 0, +"slice_4/end_frame": 0, +"slice_4/loop_mode": 0, +"slice_4/name": "", +"slice_4/save_to_file/enabled": false, +"slice_4/save_to_file/keep_custom_tracks": false, +"slice_4/save_to_file/path": "", +"slice_4/start_frame": 0, +"slice_40/end_frame": 0, +"slice_40/loop_mode": 0, +"slice_40/name": "", +"slice_40/save_to_file/enabled": false, +"slice_40/save_to_file/keep_custom_tracks": false, +"slice_40/save_to_file/path": "", +"slice_40/start_frame": 0, +"slice_41/end_frame": 0, +"slice_41/loop_mode": 0, +"slice_41/name": "", +"slice_41/save_to_file/enabled": false, +"slice_41/save_to_file/keep_custom_tracks": false, +"slice_41/save_to_file/path": "", +"slice_41/start_frame": 0, +"slice_42/end_frame": 0, +"slice_42/loop_mode": 0, +"slice_42/name": "", +"slice_42/save_to_file/enabled": false, +"slice_42/save_to_file/keep_custom_tracks": false, +"slice_42/save_to_file/path": "", +"slice_42/start_frame": 0, +"slice_43/end_frame": 0, +"slice_43/loop_mode": 0, +"slice_43/name": "", +"slice_43/save_to_file/enabled": false, +"slice_43/save_to_file/keep_custom_tracks": false, +"slice_43/save_to_file/path": "", +"slice_43/start_frame": 0, +"slice_44/end_frame": 0, +"slice_44/loop_mode": 0, +"slice_44/name": "", +"slice_44/save_to_file/enabled": false, +"slice_44/save_to_file/keep_custom_tracks": false, +"slice_44/save_to_file/path": "", +"slice_44/start_frame": 0, +"slice_45/end_frame": 0, +"slice_45/loop_mode": 0, +"slice_45/name": "", +"slice_45/save_to_file/enabled": false, +"slice_45/save_to_file/keep_custom_tracks": false, +"slice_45/save_to_file/path": "", +"slice_45/start_frame": 0, +"slice_46/end_frame": 0, +"slice_46/loop_mode": 0, +"slice_46/name": "", +"slice_46/save_to_file/enabled": false, +"slice_46/save_to_file/keep_custom_tracks": false, +"slice_46/save_to_file/path": "", +"slice_46/start_frame": 0, +"slice_47/end_frame": 0, +"slice_47/loop_mode": 0, +"slice_47/name": "", +"slice_47/save_to_file/enabled": false, +"slice_47/save_to_file/keep_custom_tracks": false, +"slice_47/save_to_file/path": "", +"slice_47/start_frame": 0, +"slice_48/end_frame": 0, +"slice_48/loop_mode": 0, +"slice_48/name": "", +"slice_48/save_to_file/enabled": false, +"slice_48/save_to_file/keep_custom_tracks": false, +"slice_48/save_to_file/path": "", +"slice_48/start_frame": 0, +"slice_49/end_frame": 0, +"slice_49/loop_mode": 0, +"slice_49/name": "", +"slice_49/save_to_file/enabled": false, +"slice_49/save_to_file/keep_custom_tracks": false, +"slice_49/save_to_file/path": "", +"slice_49/start_frame": 0, +"slice_5/end_frame": 0, +"slice_5/loop_mode": 0, +"slice_5/name": "", +"slice_5/save_to_file/enabled": false, +"slice_5/save_to_file/keep_custom_tracks": false, +"slice_5/save_to_file/path": "", +"slice_5/start_frame": 0, +"slice_50/end_frame": 0, +"slice_50/loop_mode": 0, +"slice_50/name": "", +"slice_50/save_to_file/enabled": false, +"slice_50/save_to_file/keep_custom_tracks": false, +"slice_50/save_to_file/path": "", +"slice_50/start_frame": 0, +"slice_51/end_frame": 0, +"slice_51/loop_mode": 0, +"slice_51/name": "", +"slice_51/save_to_file/enabled": false, +"slice_51/save_to_file/keep_custom_tracks": false, +"slice_51/save_to_file/path": "", +"slice_51/start_frame": 0, +"slice_52/end_frame": 0, +"slice_52/loop_mode": 0, +"slice_52/name": "", +"slice_52/save_to_file/enabled": false, +"slice_52/save_to_file/keep_custom_tracks": false, +"slice_52/save_to_file/path": "", +"slice_52/start_frame": 0, +"slice_53/end_frame": 0, +"slice_53/loop_mode": 0, +"slice_53/name": "", +"slice_53/save_to_file/enabled": false, +"slice_53/save_to_file/keep_custom_tracks": false, +"slice_53/save_to_file/path": "", +"slice_53/start_frame": 0, +"slice_54/end_frame": 0, +"slice_54/loop_mode": 0, +"slice_54/name": "", +"slice_54/save_to_file/enabled": false, +"slice_54/save_to_file/keep_custom_tracks": false, +"slice_54/save_to_file/path": "", +"slice_54/start_frame": 0, +"slice_55/end_frame": 0, +"slice_55/loop_mode": 0, +"slice_55/name": "", +"slice_55/save_to_file/enabled": false, +"slice_55/save_to_file/keep_custom_tracks": false, +"slice_55/save_to_file/path": "", +"slice_55/start_frame": 0, +"slice_56/end_frame": 0, +"slice_56/loop_mode": 0, +"slice_56/name": "", +"slice_56/save_to_file/enabled": false, +"slice_56/save_to_file/keep_custom_tracks": false, +"slice_56/save_to_file/path": "", +"slice_56/start_frame": 0, +"slice_57/end_frame": 0, +"slice_57/loop_mode": 0, +"slice_57/name": "", +"slice_57/save_to_file/enabled": false, +"slice_57/save_to_file/keep_custom_tracks": false, +"slice_57/save_to_file/path": "", +"slice_57/start_frame": 0, +"slice_58/end_frame": 0, +"slice_58/loop_mode": 0, +"slice_58/name": "", +"slice_58/save_to_file/enabled": false, +"slice_58/save_to_file/keep_custom_tracks": false, +"slice_58/save_to_file/path": "", +"slice_58/start_frame": 0, +"slice_59/end_frame": 0, +"slice_59/loop_mode": 0, +"slice_59/name": "", +"slice_59/save_to_file/enabled": false, +"slice_59/save_to_file/keep_custom_tracks": false, +"slice_59/save_to_file/path": "", +"slice_59/start_frame": 0, +"slice_6/end_frame": 0, +"slice_6/loop_mode": 0, +"slice_6/name": "", +"slice_6/save_to_file/enabled": false, +"slice_6/save_to_file/keep_custom_tracks": false, +"slice_6/save_to_file/path": "", +"slice_6/start_frame": 0, +"slice_60/end_frame": 0, +"slice_60/loop_mode": 0, +"slice_60/name": "", +"slice_60/save_to_file/enabled": false, +"slice_60/save_to_file/keep_custom_tracks": false, +"slice_60/save_to_file/path": "", +"slice_60/start_frame": 0, +"slice_61/end_frame": 0, +"slice_61/loop_mode": 0, +"slice_61/name": "", +"slice_61/save_to_file/enabled": false, +"slice_61/save_to_file/keep_custom_tracks": false, +"slice_61/save_to_file/path": "", +"slice_61/start_frame": 0, +"slice_62/end_frame": 0, +"slice_62/loop_mode": 0, +"slice_62/name": "", +"slice_62/save_to_file/enabled": false, +"slice_62/save_to_file/keep_custom_tracks": false, +"slice_62/save_to_file/path": "", +"slice_62/start_frame": 0, +"slice_63/end_frame": 0, +"slice_63/loop_mode": 0, +"slice_63/name": "", +"slice_63/save_to_file/enabled": false, +"slice_63/save_to_file/keep_custom_tracks": false, +"slice_63/save_to_file/path": "", +"slice_63/start_frame": 0, +"slice_64/end_frame": 0, +"slice_64/loop_mode": 0, +"slice_64/name": "", +"slice_64/save_to_file/enabled": false, +"slice_64/save_to_file/keep_custom_tracks": false, +"slice_64/save_to_file/path": "", +"slice_64/start_frame": 0, +"slice_65/end_frame": 0, +"slice_65/loop_mode": 0, +"slice_65/name": "", +"slice_65/save_to_file/enabled": false, +"slice_65/save_to_file/keep_custom_tracks": false, +"slice_65/save_to_file/path": "", +"slice_65/start_frame": 0, +"slice_66/end_frame": 0, +"slice_66/loop_mode": 0, +"slice_66/name": "", +"slice_66/save_to_file/enabled": false, +"slice_66/save_to_file/keep_custom_tracks": false, +"slice_66/save_to_file/path": "", +"slice_66/start_frame": 0, +"slice_67/end_frame": 0, +"slice_67/loop_mode": 0, +"slice_67/name": "", +"slice_67/save_to_file/enabled": false, +"slice_67/save_to_file/keep_custom_tracks": false, +"slice_67/save_to_file/path": "", +"slice_67/start_frame": 0, +"slice_68/end_frame": 0, +"slice_68/loop_mode": 0, +"slice_68/name": "", +"slice_68/save_to_file/enabled": false, +"slice_68/save_to_file/keep_custom_tracks": false, +"slice_68/save_to_file/path": "", +"slice_68/start_frame": 0, +"slice_69/end_frame": 0, +"slice_69/loop_mode": 0, +"slice_69/name": "", +"slice_69/save_to_file/enabled": false, +"slice_69/save_to_file/keep_custom_tracks": false, +"slice_69/save_to_file/path": "", +"slice_69/start_frame": 0, +"slice_7/end_frame": 0, +"slice_7/loop_mode": 0, +"slice_7/name": "", +"slice_7/save_to_file/enabled": false, +"slice_7/save_to_file/keep_custom_tracks": false, +"slice_7/save_to_file/path": "", +"slice_7/start_frame": 0, +"slice_70/end_frame": 0, +"slice_70/loop_mode": 0, +"slice_70/name": "", +"slice_70/save_to_file/enabled": false, +"slice_70/save_to_file/keep_custom_tracks": false, +"slice_70/save_to_file/path": "", +"slice_70/start_frame": 0, +"slice_71/end_frame": 0, +"slice_71/loop_mode": 0, +"slice_71/name": "", +"slice_71/save_to_file/enabled": false, +"slice_71/save_to_file/keep_custom_tracks": false, +"slice_71/save_to_file/path": "", +"slice_71/start_frame": 0, +"slice_72/end_frame": 0, +"slice_72/loop_mode": 0, +"slice_72/name": "", +"slice_72/save_to_file/enabled": false, +"slice_72/save_to_file/keep_custom_tracks": false, +"slice_72/save_to_file/path": "", +"slice_72/start_frame": 0, +"slice_73/end_frame": 0, +"slice_73/loop_mode": 0, +"slice_73/name": "", +"slice_73/save_to_file/enabled": false, +"slice_73/save_to_file/keep_custom_tracks": false, +"slice_73/save_to_file/path": "", +"slice_73/start_frame": 0, +"slice_74/end_frame": 0, +"slice_74/loop_mode": 0, +"slice_74/name": "", +"slice_74/save_to_file/enabled": false, +"slice_74/save_to_file/keep_custom_tracks": false, +"slice_74/save_to_file/path": "", +"slice_74/start_frame": 0, +"slice_75/end_frame": 0, +"slice_75/loop_mode": 0, +"slice_75/name": "", +"slice_75/save_to_file/enabled": false, +"slice_75/save_to_file/keep_custom_tracks": false, +"slice_75/save_to_file/path": "", +"slice_75/start_frame": 0, +"slice_76/end_frame": 0, +"slice_76/loop_mode": 0, +"slice_76/name": "", +"slice_76/save_to_file/enabled": false, +"slice_76/save_to_file/keep_custom_tracks": false, +"slice_76/save_to_file/path": "", +"slice_76/start_frame": 0, +"slice_77/end_frame": 0, +"slice_77/loop_mode": 0, +"slice_77/name": "", +"slice_77/save_to_file/enabled": false, +"slice_77/save_to_file/keep_custom_tracks": false, +"slice_77/save_to_file/path": "", +"slice_77/start_frame": 0, +"slice_78/end_frame": 0, +"slice_78/loop_mode": 0, +"slice_78/name": "", +"slice_78/save_to_file/enabled": false, +"slice_78/save_to_file/keep_custom_tracks": false, +"slice_78/save_to_file/path": "", +"slice_78/start_frame": 0, +"slice_79/end_frame": 0, +"slice_79/loop_mode": 0, +"slice_79/name": "", +"slice_79/save_to_file/enabled": false, +"slice_79/save_to_file/keep_custom_tracks": false, +"slice_79/save_to_file/path": "", +"slice_79/start_frame": 0, +"slice_8/end_frame": 0, +"slice_8/loop_mode": 0, +"slice_8/name": "", +"slice_8/save_to_file/enabled": false, +"slice_8/save_to_file/keep_custom_tracks": false, +"slice_8/save_to_file/path": "", +"slice_8/start_frame": 0, +"slice_80/end_frame": 0, +"slice_80/loop_mode": 0, +"slice_80/name": "", +"slice_80/save_to_file/enabled": false, +"slice_80/save_to_file/keep_custom_tracks": false, +"slice_80/save_to_file/path": "", +"slice_80/start_frame": 0, +"slice_81/end_frame": 0, +"slice_81/loop_mode": 0, +"slice_81/name": "", +"slice_81/save_to_file/enabled": false, +"slice_81/save_to_file/keep_custom_tracks": false, +"slice_81/save_to_file/path": "", +"slice_81/start_frame": 0, +"slice_82/end_frame": 0, +"slice_82/loop_mode": 0, +"slice_82/name": "", +"slice_82/save_to_file/enabled": false, +"slice_82/save_to_file/keep_custom_tracks": false, +"slice_82/save_to_file/path": "", +"slice_82/start_frame": 0, +"slice_83/end_frame": 0, +"slice_83/loop_mode": 0, +"slice_83/name": "", +"slice_83/save_to_file/enabled": false, +"slice_83/save_to_file/keep_custom_tracks": false, +"slice_83/save_to_file/path": "", +"slice_83/start_frame": 0, +"slice_84/end_frame": 0, +"slice_84/loop_mode": 0, +"slice_84/name": "", +"slice_84/save_to_file/enabled": false, +"slice_84/save_to_file/keep_custom_tracks": false, +"slice_84/save_to_file/path": "", +"slice_84/start_frame": 0, +"slice_85/end_frame": 0, +"slice_85/loop_mode": 0, +"slice_85/name": "", +"slice_85/save_to_file/enabled": false, +"slice_85/save_to_file/keep_custom_tracks": false, +"slice_85/save_to_file/path": "", +"slice_85/start_frame": 0, +"slice_86/end_frame": 0, +"slice_86/loop_mode": 0, +"slice_86/name": "", +"slice_86/save_to_file/enabled": false, +"slice_86/save_to_file/keep_custom_tracks": false, +"slice_86/save_to_file/path": "", +"slice_86/start_frame": 0, +"slice_87/end_frame": 0, +"slice_87/loop_mode": 0, +"slice_87/name": "", +"slice_87/save_to_file/enabled": false, +"slice_87/save_to_file/keep_custom_tracks": false, +"slice_87/save_to_file/path": "", +"slice_87/start_frame": 0, +"slice_88/end_frame": 0, +"slice_88/loop_mode": 0, +"slice_88/name": "", +"slice_88/save_to_file/enabled": false, +"slice_88/save_to_file/keep_custom_tracks": false, +"slice_88/save_to_file/path": "", +"slice_88/start_frame": 0, +"slice_89/end_frame": 0, +"slice_89/loop_mode": 0, +"slice_89/name": "", +"slice_89/save_to_file/enabled": false, +"slice_89/save_to_file/keep_custom_tracks": false, +"slice_89/save_to_file/path": "", +"slice_89/start_frame": 0, +"slice_9/end_frame": 0, +"slice_9/loop_mode": 0, +"slice_9/name": "", +"slice_9/save_to_file/enabled": false, +"slice_9/save_to_file/keep_custom_tracks": false, +"slice_9/save_to_file/path": "", +"slice_9/start_frame": 0, +"slice_90/end_frame": 0, +"slice_90/loop_mode": 0, +"slice_90/name": "", +"slice_90/save_to_file/enabled": false, +"slice_90/save_to_file/keep_custom_tracks": false, +"slice_90/save_to_file/path": "", +"slice_90/start_frame": 0, +"slice_91/end_frame": 0, +"slice_91/loop_mode": 0, +"slice_91/name": "", +"slice_91/save_to_file/enabled": false, +"slice_91/save_to_file/keep_custom_tracks": false, +"slice_91/save_to_file/path": "", +"slice_91/start_frame": 0, +"slice_92/end_frame": 0, +"slice_92/loop_mode": 0, +"slice_92/name": "", +"slice_92/save_to_file/enabled": false, +"slice_92/save_to_file/keep_custom_tracks": false, +"slice_92/save_to_file/path": "", +"slice_92/start_frame": 0, +"slice_93/end_frame": 0, +"slice_93/loop_mode": 0, +"slice_93/name": "", +"slice_93/save_to_file/enabled": false, +"slice_93/save_to_file/keep_custom_tracks": false, +"slice_93/save_to_file/path": "", +"slice_93/start_frame": 0, +"slice_94/end_frame": 0, +"slice_94/loop_mode": 0, +"slice_94/name": "", +"slice_94/save_to_file/enabled": false, +"slice_94/save_to_file/keep_custom_tracks": false, +"slice_94/save_to_file/path": "", +"slice_94/start_frame": 0, +"slice_95/end_frame": 0, +"slice_95/loop_mode": 0, +"slice_95/name": "", +"slice_95/save_to_file/enabled": false, +"slice_95/save_to_file/keep_custom_tracks": false, +"slice_95/save_to_file/path": "", +"slice_95/start_frame": 0, +"slice_96/end_frame": 0, +"slice_96/loop_mode": 0, +"slice_96/name": "", +"slice_96/save_to_file/enabled": false, +"slice_96/save_to_file/keep_custom_tracks": false, +"slice_96/save_to_file/path": "", +"slice_96/start_frame": 0, +"slice_97/end_frame": 0, +"slice_97/loop_mode": 0, +"slice_97/name": "", +"slice_97/save_to_file/enabled": false, +"slice_97/save_to_file/keep_custom_tracks": false, +"slice_97/save_to_file/path": "", +"slice_97/start_frame": 0, +"slice_98/end_frame": 0, +"slice_98/loop_mode": 0, +"slice_98/name": "", +"slice_98/save_to_file/enabled": false, +"slice_98/save_to_file/keep_custom_tracks": false, +"slice_98/save_to_file/path": "", +"slice_98/start_frame": 0, +"slice_99/end_frame": 0, +"slice_99/loop_mode": 0, +"slice_99/name": "", +"slice_99/save_to_file/enabled": false, +"slice_99/save_to_file/keep_custom_tracks": false, +"slice_99/save_to_file/path": "", +"slice_99/start_frame": 0, +"slices/amount": null }, "run": { "save_to_file/enabled": false, "save_to_file/keep_custom_tracks": "", "save_to_file/path": "", -"settings/loop_mode": 1 +"settings/loop_mode": 1, +"slice_1/end_frame": 0, +"slice_1/loop_mode": 0, +"slice_1/name": "", +"slice_1/save_to_file/enabled": false, +"slice_1/save_to_file/keep_custom_tracks": false, +"slice_1/save_to_file/path": "", +"slice_1/start_frame": 0, +"slice_10/end_frame": 0, +"slice_10/loop_mode": 0, +"slice_10/name": "", +"slice_10/save_to_file/enabled": false, +"slice_10/save_to_file/keep_custom_tracks": false, +"slice_10/save_to_file/path": "", +"slice_10/start_frame": 0, +"slice_100/end_frame": 0, +"slice_100/loop_mode": 0, +"slice_100/name": "", +"slice_100/save_to_file/enabled": false, +"slice_100/save_to_file/keep_custom_tracks": false, +"slice_100/save_to_file/path": "", +"slice_100/start_frame": 0, +"slice_101/end_frame": 0, +"slice_101/loop_mode": 0, +"slice_101/name": "", +"slice_101/save_to_file/enabled": false, +"slice_101/save_to_file/keep_custom_tracks": false, +"slice_101/save_to_file/path": "", +"slice_101/start_frame": 0, +"slice_102/end_frame": 0, +"slice_102/loop_mode": 0, +"slice_102/name": "", +"slice_102/save_to_file/enabled": false, +"slice_102/save_to_file/keep_custom_tracks": false, +"slice_102/save_to_file/path": "", +"slice_102/start_frame": 0, +"slice_103/end_frame": 0, +"slice_103/loop_mode": 0, +"slice_103/name": "", +"slice_103/save_to_file/enabled": false, +"slice_103/save_to_file/keep_custom_tracks": false, +"slice_103/save_to_file/path": "", +"slice_103/start_frame": 0, +"slice_104/end_frame": 0, +"slice_104/loop_mode": 0, +"slice_104/name": "", +"slice_104/save_to_file/enabled": false, +"slice_104/save_to_file/keep_custom_tracks": false, +"slice_104/save_to_file/path": "", +"slice_104/start_frame": 0, +"slice_105/end_frame": 0, +"slice_105/loop_mode": 0, +"slice_105/name": "", +"slice_105/save_to_file/enabled": false, +"slice_105/save_to_file/keep_custom_tracks": false, +"slice_105/save_to_file/path": "", +"slice_105/start_frame": 0, +"slice_106/end_frame": 0, +"slice_106/loop_mode": 0, +"slice_106/name": "", +"slice_106/save_to_file/enabled": false, +"slice_106/save_to_file/keep_custom_tracks": false, +"slice_106/save_to_file/path": "", +"slice_106/start_frame": 0, +"slice_107/end_frame": 0, +"slice_107/loop_mode": 0, +"slice_107/name": "", +"slice_107/save_to_file/enabled": false, +"slice_107/save_to_file/keep_custom_tracks": false, +"slice_107/save_to_file/path": "", +"slice_107/start_frame": 0, +"slice_108/end_frame": 0, +"slice_108/loop_mode": 0, +"slice_108/name": "", +"slice_108/save_to_file/enabled": false, +"slice_108/save_to_file/keep_custom_tracks": false, +"slice_108/save_to_file/path": "", +"slice_108/start_frame": 0, +"slice_109/end_frame": 0, +"slice_109/loop_mode": 0, +"slice_109/name": "", +"slice_109/save_to_file/enabled": false, +"slice_109/save_to_file/keep_custom_tracks": false, +"slice_109/save_to_file/path": "", +"slice_109/start_frame": 0, +"slice_11/end_frame": 0, +"slice_11/loop_mode": 0, +"slice_11/name": "", +"slice_11/save_to_file/enabled": false, +"slice_11/save_to_file/keep_custom_tracks": false, +"slice_11/save_to_file/path": "", +"slice_11/start_frame": 0, +"slice_110/end_frame": 0, +"slice_110/loop_mode": 0, +"slice_110/name": "", +"slice_110/save_to_file/enabled": false, +"slice_110/save_to_file/keep_custom_tracks": false, +"slice_110/save_to_file/path": "", +"slice_110/start_frame": 0, +"slice_111/end_frame": 0, +"slice_111/loop_mode": 0, +"slice_111/name": "", +"slice_111/save_to_file/enabled": false, +"slice_111/save_to_file/keep_custom_tracks": false, +"slice_111/save_to_file/path": "", +"slice_111/start_frame": 0, +"slice_112/end_frame": 0, +"slice_112/loop_mode": 0, +"slice_112/name": "", +"slice_112/save_to_file/enabled": false, +"slice_112/save_to_file/keep_custom_tracks": false, +"slice_112/save_to_file/path": "", +"slice_112/start_frame": 0, +"slice_113/end_frame": 0, +"slice_113/loop_mode": 0, +"slice_113/name": "", +"slice_113/save_to_file/enabled": false, +"slice_113/save_to_file/keep_custom_tracks": false, +"slice_113/save_to_file/path": "", +"slice_113/start_frame": 0, +"slice_114/end_frame": 0, +"slice_114/loop_mode": 0, +"slice_114/name": "", +"slice_114/save_to_file/enabled": false, +"slice_114/save_to_file/keep_custom_tracks": false, +"slice_114/save_to_file/path": "", +"slice_114/start_frame": 0, +"slice_115/end_frame": 0, +"slice_115/loop_mode": 0, +"slice_115/name": "", +"slice_115/save_to_file/enabled": false, +"slice_115/save_to_file/keep_custom_tracks": false, +"slice_115/save_to_file/path": "", +"slice_115/start_frame": 0, +"slice_116/end_frame": 0, +"slice_116/loop_mode": 0, +"slice_116/name": "", +"slice_116/save_to_file/enabled": false, +"slice_116/save_to_file/keep_custom_tracks": false, +"slice_116/save_to_file/path": "", +"slice_116/start_frame": 0, +"slice_117/end_frame": 0, +"slice_117/loop_mode": 0, +"slice_117/name": "", +"slice_117/save_to_file/enabled": false, +"slice_117/save_to_file/keep_custom_tracks": false, +"slice_117/save_to_file/path": "", +"slice_117/start_frame": 0, +"slice_118/end_frame": 0, +"slice_118/loop_mode": 0, +"slice_118/name": "", +"slice_118/save_to_file/enabled": false, +"slice_118/save_to_file/keep_custom_tracks": false, +"slice_118/save_to_file/path": "", +"slice_118/start_frame": 0, +"slice_119/end_frame": 0, +"slice_119/loop_mode": 0, +"slice_119/name": "", +"slice_119/save_to_file/enabled": false, +"slice_119/save_to_file/keep_custom_tracks": false, +"slice_119/save_to_file/path": "", +"slice_119/start_frame": 0, +"slice_12/end_frame": 0, +"slice_12/loop_mode": 0, +"slice_12/name": "", +"slice_12/save_to_file/enabled": false, +"slice_12/save_to_file/keep_custom_tracks": false, +"slice_12/save_to_file/path": "", +"slice_12/start_frame": 0, +"slice_120/end_frame": 0, +"slice_120/loop_mode": 0, +"slice_120/name": "", +"slice_120/save_to_file/enabled": false, +"slice_120/save_to_file/keep_custom_tracks": false, +"slice_120/save_to_file/path": "", +"slice_120/start_frame": 0, +"slice_121/end_frame": 0, +"slice_121/loop_mode": 0, +"slice_121/name": "", +"slice_121/save_to_file/enabled": false, +"slice_121/save_to_file/keep_custom_tracks": false, +"slice_121/save_to_file/path": "", +"slice_121/start_frame": 0, +"slice_122/end_frame": 0, +"slice_122/loop_mode": 0, +"slice_122/name": "", +"slice_122/save_to_file/enabled": false, +"slice_122/save_to_file/keep_custom_tracks": false, +"slice_122/save_to_file/path": "", +"slice_122/start_frame": 0, +"slice_123/end_frame": 0, +"slice_123/loop_mode": 0, +"slice_123/name": "", +"slice_123/save_to_file/enabled": false, +"slice_123/save_to_file/keep_custom_tracks": false, +"slice_123/save_to_file/path": "", +"slice_123/start_frame": 0, +"slice_124/end_frame": 0, +"slice_124/loop_mode": 0, +"slice_124/name": "", +"slice_124/save_to_file/enabled": false, +"slice_124/save_to_file/keep_custom_tracks": false, +"slice_124/save_to_file/path": "", +"slice_124/start_frame": 0, +"slice_125/end_frame": 0, +"slice_125/loop_mode": 0, +"slice_125/name": "", +"slice_125/save_to_file/enabled": false, +"slice_125/save_to_file/keep_custom_tracks": false, +"slice_125/save_to_file/path": "", +"slice_125/start_frame": 0, +"slice_126/end_frame": 0, +"slice_126/loop_mode": 0, +"slice_126/name": "", +"slice_126/save_to_file/enabled": false, +"slice_126/save_to_file/keep_custom_tracks": false, +"slice_126/save_to_file/path": "", +"slice_126/start_frame": 0, +"slice_127/end_frame": 0, +"slice_127/loop_mode": 0, +"slice_127/name": "", +"slice_127/save_to_file/enabled": false, +"slice_127/save_to_file/keep_custom_tracks": false, +"slice_127/save_to_file/path": "", +"slice_127/start_frame": 0, +"slice_128/end_frame": 0, +"slice_128/loop_mode": 0, +"slice_128/name": "", +"slice_128/save_to_file/enabled": false, +"slice_128/save_to_file/keep_custom_tracks": false, +"slice_128/save_to_file/path": "", +"slice_128/start_frame": 0, +"slice_129/end_frame": 0, +"slice_129/loop_mode": 0, +"slice_129/name": "", +"slice_129/save_to_file/enabled": false, +"slice_129/save_to_file/keep_custom_tracks": false, +"slice_129/save_to_file/path": "", +"slice_129/start_frame": 0, +"slice_13/end_frame": 0, +"slice_13/loop_mode": 0, +"slice_13/name": "", +"slice_13/save_to_file/enabled": false, +"slice_13/save_to_file/keep_custom_tracks": false, +"slice_13/save_to_file/path": "", +"slice_13/start_frame": 0, +"slice_130/end_frame": 0, +"slice_130/loop_mode": 0, +"slice_130/name": "", +"slice_130/save_to_file/enabled": false, +"slice_130/save_to_file/keep_custom_tracks": false, +"slice_130/save_to_file/path": "", +"slice_130/start_frame": 0, +"slice_131/end_frame": 0, +"slice_131/loop_mode": 0, +"slice_131/name": "", +"slice_131/save_to_file/enabled": false, +"slice_131/save_to_file/keep_custom_tracks": false, +"slice_131/save_to_file/path": "", +"slice_131/start_frame": 0, +"slice_132/end_frame": 0, +"slice_132/loop_mode": 0, +"slice_132/name": "", +"slice_132/save_to_file/enabled": false, +"slice_132/save_to_file/keep_custom_tracks": false, +"slice_132/save_to_file/path": "", +"slice_132/start_frame": 0, +"slice_133/end_frame": 0, +"slice_133/loop_mode": 0, +"slice_133/name": "", +"slice_133/save_to_file/enabled": false, +"slice_133/save_to_file/keep_custom_tracks": false, +"slice_133/save_to_file/path": "", +"slice_133/start_frame": 0, +"slice_134/end_frame": 0, +"slice_134/loop_mode": 0, +"slice_134/name": "", +"slice_134/save_to_file/enabled": false, +"slice_134/save_to_file/keep_custom_tracks": false, +"slice_134/save_to_file/path": "", +"slice_134/start_frame": 0, +"slice_135/end_frame": 0, +"slice_135/loop_mode": 0, +"slice_135/name": "", +"slice_135/save_to_file/enabled": false, +"slice_135/save_to_file/keep_custom_tracks": false, +"slice_135/save_to_file/path": "", +"slice_135/start_frame": 0, +"slice_136/end_frame": 0, +"slice_136/loop_mode": 0, +"slice_136/name": "", +"slice_136/save_to_file/enabled": false, +"slice_136/save_to_file/keep_custom_tracks": false, +"slice_136/save_to_file/path": "", +"slice_136/start_frame": 0, +"slice_137/end_frame": 0, +"slice_137/loop_mode": 0, +"slice_137/name": "", +"slice_137/save_to_file/enabled": false, +"slice_137/save_to_file/keep_custom_tracks": false, +"slice_137/save_to_file/path": "", +"slice_137/start_frame": 0, +"slice_138/end_frame": 0, +"slice_138/loop_mode": 0, +"slice_138/name": "", +"slice_138/save_to_file/enabled": false, +"slice_138/save_to_file/keep_custom_tracks": false, +"slice_138/save_to_file/path": "", +"slice_138/start_frame": 0, +"slice_139/end_frame": 0, +"slice_139/loop_mode": 0, +"slice_139/name": "", +"slice_139/save_to_file/enabled": false, +"slice_139/save_to_file/keep_custom_tracks": false, +"slice_139/save_to_file/path": "", +"slice_139/start_frame": 0, +"slice_14/end_frame": 0, +"slice_14/loop_mode": 0, +"slice_14/name": "", +"slice_14/save_to_file/enabled": false, +"slice_14/save_to_file/keep_custom_tracks": false, +"slice_14/save_to_file/path": "", +"slice_14/start_frame": 0, +"slice_140/end_frame": 0, +"slice_140/loop_mode": 0, +"slice_140/name": "", +"slice_140/save_to_file/enabled": false, +"slice_140/save_to_file/keep_custom_tracks": false, +"slice_140/save_to_file/path": "", +"slice_140/start_frame": 0, +"slice_141/end_frame": 0, +"slice_141/loop_mode": 0, +"slice_141/name": "", +"slice_141/save_to_file/enabled": false, +"slice_141/save_to_file/keep_custom_tracks": false, +"slice_141/save_to_file/path": "", +"slice_141/start_frame": 0, +"slice_142/end_frame": 0, +"slice_142/loop_mode": 0, +"slice_142/name": "", +"slice_142/save_to_file/enabled": false, +"slice_142/save_to_file/keep_custom_tracks": false, +"slice_142/save_to_file/path": "", +"slice_142/start_frame": 0, +"slice_143/end_frame": 0, +"slice_143/loop_mode": 0, +"slice_143/name": "", +"slice_143/save_to_file/enabled": false, +"slice_143/save_to_file/keep_custom_tracks": false, +"slice_143/save_to_file/path": "", +"slice_143/start_frame": 0, +"slice_144/end_frame": 0, +"slice_144/loop_mode": 0, +"slice_144/name": "", +"slice_144/save_to_file/enabled": false, +"slice_144/save_to_file/keep_custom_tracks": false, +"slice_144/save_to_file/path": "", +"slice_144/start_frame": 0, +"slice_145/end_frame": 0, +"slice_145/loop_mode": 0, +"slice_145/name": "", +"slice_145/save_to_file/enabled": false, +"slice_145/save_to_file/keep_custom_tracks": false, +"slice_145/save_to_file/path": "", +"slice_145/start_frame": 0, +"slice_146/end_frame": 0, +"slice_146/loop_mode": 0, +"slice_146/name": "", +"slice_146/save_to_file/enabled": false, +"slice_146/save_to_file/keep_custom_tracks": false, +"slice_146/save_to_file/path": "", +"slice_146/start_frame": 0, +"slice_147/end_frame": 0, +"slice_147/loop_mode": 0, +"slice_147/name": "", +"slice_147/save_to_file/enabled": false, +"slice_147/save_to_file/keep_custom_tracks": false, +"slice_147/save_to_file/path": "", +"slice_147/start_frame": 0, +"slice_148/end_frame": 0, +"slice_148/loop_mode": 0, +"slice_148/name": "", +"slice_148/save_to_file/enabled": false, +"slice_148/save_to_file/keep_custom_tracks": false, +"slice_148/save_to_file/path": "", +"slice_148/start_frame": 0, +"slice_149/end_frame": 0, +"slice_149/loop_mode": 0, +"slice_149/name": "", +"slice_149/save_to_file/enabled": false, +"slice_149/save_to_file/keep_custom_tracks": false, +"slice_149/save_to_file/path": "", +"slice_149/start_frame": 0, +"slice_15/end_frame": 0, +"slice_15/loop_mode": 0, +"slice_15/name": "", +"slice_15/save_to_file/enabled": false, +"slice_15/save_to_file/keep_custom_tracks": false, +"slice_15/save_to_file/path": "", +"slice_15/start_frame": 0, +"slice_150/end_frame": 0, +"slice_150/loop_mode": 0, +"slice_150/name": "", +"slice_150/save_to_file/enabled": false, +"slice_150/save_to_file/keep_custom_tracks": false, +"slice_150/save_to_file/path": "", +"slice_150/start_frame": 0, +"slice_151/end_frame": 0, +"slice_151/loop_mode": 0, +"slice_151/name": "", +"slice_151/save_to_file/enabled": false, +"slice_151/save_to_file/keep_custom_tracks": false, +"slice_151/save_to_file/path": "", +"slice_151/start_frame": 0, +"slice_152/end_frame": 0, +"slice_152/loop_mode": 0, +"slice_152/name": "", +"slice_152/save_to_file/enabled": false, +"slice_152/save_to_file/keep_custom_tracks": false, +"slice_152/save_to_file/path": "", +"slice_152/start_frame": 0, +"slice_153/end_frame": 0, +"slice_153/loop_mode": 0, +"slice_153/name": "", +"slice_153/save_to_file/enabled": false, +"slice_153/save_to_file/keep_custom_tracks": false, +"slice_153/save_to_file/path": "", +"slice_153/start_frame": 0, +"slice_154/end_frame": 0, +"slice_154/loop_mode": 0, +"slice_154/name": "", +"slice_154/save_to_file/enabled": false, +"slice_154/save_to_file/keep_custom_tracks": false, +"slice_154/save_to_file/path": "", +"slice_154/start_frame": 0, +"slice_155/end_frame": 0, +"slice_155/loop_mode": 0, +"slice_155/name": "", +"slice_155/save_to_file/enabled": false, +"slice_155/save_to_file/keep_custom_tracks": false, +"slice_155/save_to_file/path": "", +"slice_155/start_frame": 0, +"slice_156/end_frame": 0, +"slice_156/loop_mode": 0, +"slice_156/name": "", +"slice_156/save_to_file/enabled": false, +"slice_156/save_to_file/keep_custom_tracks": false, +"slice_156/save_to_file/path": "", +"slice_156/start_frame": 0, +"slice_157/end_frame": 0, +"slice_157/loop_mode": 0, +"slice_157/name": "", +"slice_157/save_to_file/enabled": false, +"slice_157/save_to_file/keep_custom_tracks": false, +"slice_157/save_to_file/path": "", +"slice_157/start_frame": 0, +"slice_158/end_frame": 0, +"slice_158/loop_mode": 0, +"slice_158/name": "", +"slice_158/save_to_file/enabled": false, +"slice_158/save_to_file/keep_custom_tracks": false, +"slice_158/save_to_file/path": "", +"slice_158/start_frame": 0, +"slice_159/end_frame": 0, +"slice_159/loop_mode": 0, +"slice_159/name": "", +"slice_159/save_to_file/enabled": false, +"slice_159/save_to_file/keep_custom_tracks": false, +"slice_159/save_to_file/path": "", +"slice_159/start_frame": 0, +"slice_16/end_frame": 0, +"slice_16/loop_mode": 0, +"slice_16/name": "", +"slice_16/save_to_file/enabled": false, +"slice_16/save_to_file/keep_custom_tracks": false, +"slice_16/save_to_file/path": "", +"slice_16/start_frame": 0, +"slice_160/end_frame": 0, +"slice_160/loop_mode": 0, +"slice_160/name": "", +"slice_160/save_to_file/enabled": false, +"slice_160/save_to_file/keep_custom_tracks": false, +"slice_160/save_to_file/path": "", +"slice_160/start_frame": 0, +"slice_161/end_frame": 0, +"slice_161/loop_mode": 0, +"slice_161/name": "", +"slice_161/save_to_file/enabled": false, +"slice_161/save_to_file/keep_custom_tracks": false, +"slice_161/save_to_file/path": "", +"slice_161/start_frame": 0, +"slice_162/end_frame": 0, +"slice_162/loop_mode": 0, +"slice_162/name": "", +"slice_162/save_to_file/enabled": false, +"slice_162/save_to_file/keep_custom_tracks": false, +"slice_162/save_to_file/path": "", +"slice_162/start_frame": 0, +"slice_163/end_frame": 0, +"slice_163/loop_mode": 0, +"slice_163/name": "", +"slice_163/save_to_file/enabled": false, +"slice_163/save_to_file/keep_custom_tracks": false, +"slice_163/save_to_file/path": "", +"slice_163/start_frame": 0, +"slice_164/end_frame": 0, +"slice_164/loop_mode": 0, +"slice_164/name": "", +"slice_164/save_to_file/enabled": false, +"slice_164/save_to_file/keep_custom_tracks": false, +"slice_164/save_to_file/path": "", +"slice_164/start_frame": 0, +"slice_165/end_frame": 0, +"slice_165/loop_mode": 0, +"slice_165/name": "", +"slice_165/save_to_file/enabled": false, +"slice_165/save_to_file/keep_custom_tracks": false, +"slice_165/save_to_file/path": "", +"slice_165/start_frame": 0, +"slice_166/end_frame": 0, +"slice_166/loop_mode": 0, +"slice_166/name": "", +"slice_166/save_to_file/enabled": false, +"slice_166/save_to_file/keep_custom_tracks": false, +"slice_166/save_to_file/path": "", +"slice_166/start_frame": 0, +"slice_167/end_frame": 0, +"slice_167/loop_mode": 0, +"slice_167/name": "", +"slice_167/save_to_file/enabled": false, +"slice_167/save_to_file/keep_custom_tracks": false, +"slice_167/save_to_file/path": "", +"slice_167/start_frame": 0, +"slice_168/end_frame": 0, +"slice_168/loop_mode": 0, +"slice_168/name": "", +"slice_168/save_to_file/enabled": false, +"slice_168/save_to_file/keep_custom_tracks": false, +"slice_168/save_to_file/path": "", +"slice_168/start_frame": 0, +"slice_169/end_frame": 0, +"slice_169/loop_mode": 0, +"slice_169/name": "", +"slice_169/save_to_file/enabled": false, +"slice_169/save_to_file/keep_custom_tracks": false, +"slice_169/save_to_file/path": "", +"slice_169/start_frame": 0, +"slice_17/end_frame": 0, +"slice_17/loop_mode": 0, +"slice_17/name": "", +"slice_17/save_to_file/enabled": false, +"slice_17/save_to_file/keep_custom_tracks": false, +"slice_17/save_to_file/path": "", +"slice_17/start_frame": 0, +"slice_170/end_frame": 0, +"slice_170/loop_mode": 0, +"slice_170/name": "", +"slice_170/save_to_file/enabled": false, +"slice_170/save_to_file/keep_custom_tracks": false, +"slice_170/save_to_file/path": "", +"slice_170/start_frame": 0, +"slice_171/end_frame": 0, +"slice_171/loop_mode": 0, +"slice_171/name": "", +"slice_171/save_to_file/enabled": false, +"slice_171/save_to_file/keep_custom_tracks": false, +"slice_171/save_to_file/path": "", +"slice_171/start_frame": 0, +"slice_172/end_frame": 0, +"slice_172/loop_mode": 0, +"slice_172/name": "", +"slice_172/save_to_file/enabled": false, +"slice_172/save_to_file/keep_custom_tracks": false, +"slice_172/save_to_file/path": "", +"slice_172/start_frame": 0, +"slice_173/end_frame": 0, +"slice_173/loop_mode": 0, +"slice_173/name": "", +"slice_173/save_to_file/enabled": false, +"slice_173/save_to_file/keep_custom_tracks": false, +"slice_173/save_to_file/path": "", +"slice_173/start_frame": 0, +"slice_174/end_frame": 0, +"slice_174/loop_mode": 0, +"slice_174/name": "", +"slice_174/save_to_file/enabled": false, +"slice_174/save_to_file/keep_custom_tracks": false, +"slice_174/save_to_file/path": "", +"slice_174/start_frame": 0, +"slice_175/end_frame": 0, +"slice_175/loop_mode": 0, +"slice_175/name": "", +"slice_175/save_to_file/enabled": false, +"slice_175/save_to_file/keep_custom_tracks": false, +"slice_175/save_to_file/path": "", +"slice_175/start_frame": 0, +"slice_176/end_frame": 0, +"slice_176/loop_mode": 0, +"slice_176/name": "", +"slice_176/save_to_file/enabled": false, +"slice_176/save_to_file/keep_custom_tracks": false, +"slice_176/save_to_file/path": "", +"slice_176/start_frame": 0, +"slice_177/end_frame": 0, +"slice_177/loop_mode": 0, +"slice_177/name": "", +"slice_177/save_to_file/enabled": false, +"slice_177/save_to_file/keep_custom_tracks": false, +"slice_177/save_to_file/path": "", +"slice_177/start_frame": 0, +"slice_178/end_frame": 0, +"slice_178/loop_mode": 0, +"slice_178/name": "", +"slice_178/save_to_file/enabled": false, +"slice_178/save_to_file/keep_custom_tracks": false, +"slice_178/save_to_file/path": "", +"slice_178/start_frame": 0, +"slice_179/end_frame": 0, +"slice_179/loop_mode": 0, +"slice_179/name": "", +"slice_179/save_to_file/enabled": false, +"slice_179/save_to_file/keep_custom_tracks": false, +"slice_179/save_to_file/path": "", +"slice_179/start_frame": 0, +"slice_18/end_frame": 0, +"slice_18/loop_mode": 0, +"slice_18/name": "", +"slice_18/save_to_file/enabled": false, +"slice_18/save_to_file/keep_custom_tracks": false, +"slice_18/save_to_file/path": "", +"slice_18/start_frame": 0, +"slice_180/end_frame": 0, +"slice_180/loop_mode": 0, +"slice_180/name": "", +"slice_180/save_to_file/enabled": false, +"slice_180/save_to_file/keep_custom_tracks": false, +"slice_180/save_to_file/path": "", +"slice_180/start_frame": 0, +"slice_181/end_frame": 0, +"slice_181/loop_mode": 0, +"slice_181/name": "", +"slice_181/save_to_file/enabled": false, +"slice_181/save_to_file/keep_custom_tracks": false, +"slice_181/save_to_file/path": "", +"slice_181/start_frame": 0, +"slice_182/end_frame": 0, +"slice_182/loop_mode": 0, +"slice_182/name": "", +"slice_182/save_to_file/enabled": false, +"slice_182/save_to_file/keep_custom_tracks": false, +"slice_182/save_to_file/path": "", +"slice_182/start_frame": 0, +"slice_183/end_frame": 0, +"slice_183/loop_mode": 0, +"slice_183/name": "", +"slice_183/save_to_file/enabled": false, +"slice_183/save_to_file/keep_custom_tracks": false, +"slice_183/save_to_file/path": "", +"slice_183/start_frame": 0, +"slice_184/end_frame": 0, +"slice_184/loop_mode": 0, +"slice_184/name": "", +"slice_184/save_to_file/enabled": false, +"slice_184/save_to_file/keep_custom_tracks": false, +"slice_184/save_to_file/path": "", +"slice_184/start_frame": 0, +"slice_185/end_frame": 0, +"slice_185/loop_mode": 0, +"slice_185/name": "", +"slice_185/save_to_file/enabled": false, +"slice_185/save_to_file/keep_custom_tracks": false, +"slice_185/save_to_file/path": "", +"slice_185/start_frame": 0, +"slice_186/end_frame": 0, +"slice_186/loop_mode": 0, +"slice_186/name": "", +"slice_186/save_to_file/enabled": false, +"slice_186/save_to_file/keep_custom_tracks": false, +"slice_186/save_to_file/path": "", +"slice_186/start_frame": 0, +"slice_187/end_frame": 0, +"slice_187/loop_mode": 0, +"slice_187/name": "", +"slice_187/save_to_file/enabled": false, +"slice_187/save_to_file/keep_custom_tracks": false, +"slice_187/save_to_file/path": "", +"slice_187/start_frame": 0, +"slice_188/end_frame": 0, +"slice_188/loop_mode": 0, +"slice_188/name": "", +"slice_188/save_to_file/enabled": false, +"slice_188/save_to_file/keep_custom_tracks": false, +"slice_188/save_to_file/path": "", +"slice_188/start_frame": 0, +"slice_189/end_frame": 0, +"slice_189/loop_mode": 0, +"slice_189/name": "", +"slice_189/save_to_file/enabled": false, +"slice_189/save_to_file/keep_custom_tracks": false, +"slice_189/save_to_file/path": "", +"slice_189/start_frame": 0, +"slice_19/end_frame": 0, +"slice_19/loop_mode": 0, +"slice_19/name": "", +"slice_19/save_to_file/enabled": false, +"slice_19/save_to_file/keep_custom_tracks": false, +"slice_19/save_to_file/path": "", +"slice_19/start_frame": 0, +"slice_190/end_frame": 0, +"slice_190/loop_mode": 0, +"slice_190/name": "", +"slice_190/save_to_file/enabled": false, +"slice_190/save_to_file/keep_custom_tracks": false, +"slice_190/save_to_file/path": "", +"slice_190/start_frame": 0, +"slice_191/end_frame": 0, +"slice_191/loop_mode": 0, +"slice_191/name": "", +"slice_191/save_to_file/enabled": false, +"slice_191/save_to_file/keep_custom_tracks": false, +"slice_191/save_to_file/path": "", +"slice_191/start_frame": 0, +"slice_192/end_frame": 0, +"slice_192/loop_mode": 0, +"slice_192/name": "", +"slice_192/save_to_file/enabled": false, +"slice_192/save_to_file/keep_custom_tracks": false, +"slice_192/save_to_file/path": "", +"slice_192/start_frame": 0, +"slice_193/end_frame": 0, +"slice_193/loop_mode": 0, +"slice_193/name": "", +"slice_193/save_to_file/enabled": false, +"slice_193/save_to_file/keep_custom_tracks": false, +"slice_193/save_to_file/path": "", +"slice_193/start_frame": 0, +"slice_194/end_frame": 0, +"slice_194/loop_mode": 0, +"slice_194/name": "", +"slice_194/save_to_file/enabled": false, +"slice_194/save_to_file/keep_custom_tracks": false, +"slice_194/save_to_file/path": "", +"slice_194/start_frame": 0, +"slice_195/end_frame": 0, +"slice_195/loop_mode": 0, +"slice_195/name": "", +"slice_195/save_to_file/enabled": false, +"slice_195/save_to_file/keep_custom_tracks": false, +"slice_195/save_to_file/path": "", +"slice_195/start_frame": 0, +"slice_196/end_frame": 0, +"slice_196/loop_mode": 0, +"slice_196/name": "", +"slice_196/save_to_file/enabled": false, +"slice_196/save_to_file/keep_custom_tracks": false, +"slice_196/save_to_file/path": "", +"slice_196/start_frame": 0, +"slice_197/end_frame": 0, +"slice_197/loop_mode": 0, +"slice_197/name": "", +"slice_197/save_to_file/enabled": false, +"slice_197/save_to_file/keep_custom_tracks": false, +"slice_197/save_to_file/path": "", +"slice_197/start_frame": 0, +"slice_198/end_frame": 0, +"slice_198/loop_mode": 0, +"slice_198/name": "", +"slice_198/save_to_file/enabled": false, +"slice_198/save_to_file/keep_custom_tracks": false, +"slice_198/save_to_file/path": "", +"slice_198/start_frame": 0, +"slice_199/end_frame": 0, +"slice_199/loop_mode": 0, +"slice_199/name": "", +"slice_199/save_to_file/enabled": false, +"slice_199/save_to_file/keep_custom_tracks": false, +"slice_199/save_to_file/path": "", +"slice_199/start_frame": 0, +"slice_2/end_frame": 0, +"slice_2/loop_mode": 0, +"slice_2/name": "", +"slice_2/save_to_file/enabled": false, +"slice_2/save_to_file/keep_custom_tracks": false, +"slice_2/save_to_file/path": "", +"slice_2/start_frame": 0, +"slice_20/end_frame": 0, +"slice_20/loop_mode": 0, +"slice_20/name": "", +"slice_20/save_to_file/enabled": false, +"slice_20/save_to_file/keep_custom_tracks": false, +"slice_20/save_to_file/path": "", +"slice_20/start_frame": 0, +"slice_200/end_frame": 0, +"slice_200/loop_mode": 0, +"slice_200/name": "", +"slice_200/save_to_file/enabled": false, +"slice_200/save_to_file/keep_custom_tracks": false, +"slice_200/save_to_file/path": "", +"slice_200/start_frame": 0, +"slice_201/end_frame": 0, +"slice_201/loop_mode": 0, +"slice_201/name": "", +"slice_201/save_to_file/enabled": false, +"slice_201/save_to_file/keep_custom_tracks": false, +"slice_201/save_to_file/path": "", +"slice_201/start_frame": 0, +"slice_202/end_frame": 0, +"slice_202/loop_mode": 0, +"slice_202/name": "", +"slice_202/save_to_file/enabled": false, +"slice_202/save_to_file/keep_custom_tracks": false, +"slice_202/save_to_file/path": "", +"slice_202/start_frame": 0, +"slice_203/end_frame": 0, +"slice_203/loop_mode": 0, +"slice_203/name": "", +"slice_203/save_to_file/enabled": false, +"slice_203/save_to_file/keep_custom_tracks": false, +"slice_203/save_to_file/path": "", +"slice_203/start_frame": 0, +"slice_204/end_frame": 0, +"slice_204/loop_mode": 0, +"slice_204/name": "", +"slice_204/save_to_file/enabled": false, +"slice_204/save_to_file/keep_custom_tracks": false, +"slice_204/save_to_file/path": "", +"slice_204/start_frame": 0, +"slice_205/end_frame": 0, +"slice_205/loop_mode": 0, +"slice_205/name": "", +"slice_205/save_to_file/enabled": false, +"slice_205/save_to_file/keep_custom_tracks": false, +"slice_205/save_to_file/path": "", +"slice_205/start_frame": 0, +"slice_206/end_frame": 0, +"slice_206/loop_mode": 0, +"slice_206/name": "", +"slice_206/save_to_file/enabled": false, +"slice_206/save_to_file/keep_custom_tracks": false, +"slice_206/save_to_file/path": "", +"slice_206/start_frame": 0, +"slice_207/end_frame": 0, +"slice_207/loop_mode": 0, +"slice_207/name": "", +"slice_207/save_to_file/enabled": false, +"slice_207/save_to_file/keep_custom_tracks": false, +"slice_207/save_to_file/path": "", +"slice_207/start_frame": 0, +"slice_208/end_frame": 0, +"slice_208/loop_mode": 0, +"slice_208/name": "", +"slice_208/save_to_file/enabled": false, +"slice_208/save_to_file/keep_custom_tracks": false, +"slice_208/save_to_file/path": "", +"slice_208/start_frame": 0, +"slice_209/end_frame": 0, +"slice_209/loop_mode": 0, +"slice_209/name": "", +"slice_209/save_to_file/enabled": false, +"slice_209/save_to_file/keep_custom_tracks": false, +"slice_209/save_to_file/path": "", +"slice_209/start_frame": 0, +"slice_21/end_frame": 0, +"slice_21/loop_mode": 0, +"slice_21/name": "", +"slice_21/save_to_file/enabled": false, +"slice_21/save_to_file/keep_custom_tracks": false, +"slice_21/save_to_file/path": "", +"slice_21/start_frame": 0, +"slice_210/end_frame": 0, +"slice_210/loop_mode": 0, +"slice_210/name": "", +"slice_210/save_to_file/enabled": false, +"slice_210/save_to_file/keep_custom_tracks": false, +"slice_210/save_to_file/path": "", +"slice_210/start_frame": 0, +"slice_211/end_frame": 0, +"slice_211/loop_mode": 0, +"slice_211/name": "", +"slice_211/save_to_file/enabled": false, +"slice_211/save_to_file/keep_custom_tracks": false, +"slice_211/save_to_file/path": "", +"slice_211/start_frame": 0, +"slice_212/end_frame": 0, +"slice_212/loop_mode": 0, +"slice_212/name": "", +"slice_212/save_to_file/enabled": false, +"slice_212/save_to_file/keep_custom_tracks": false, +"slice_212/save_to_file/path": "", +"slice_212/start_frame": 0, +"slice_213/end_frame": 0, +"slice_213/loop_mode": 0, +"slice_213/name": "", +"slice_213/save_to_file/enabled": false, +"slice_213/save_to_file/keep_custom_tracks": false, +"slice_213/save_to_file/path": "", +"slice_213/start_frame": 0, +"slice_214/end_frame": 0, +"slice_214/loop_mode": 0, +"slice_214/name": "", +"slice_214/save_to_file/enabled": false, +"slice_214/save_to_file/keep_custom_tracks": false, +"slice_214/save_to_file/path": "", +"slice_214/start_frame": 0, +"slice_215/end_frame": 0, +"slice_215/loop_mode": 0, +"slice_215/name": "", +"slice_215/save_to_file/enabled": false, +"slice_215/save_to_file/keep_custom_tracks": false, +"slice_215/save_to_file/path": "", +"slice_215/start_frame": 0, +"slice_216/end_frame": 0, +"slice_216/loop_mode": 0, +"slice_216/name": "", +"slice_216/save_to_file/enabled": false, +"slice_216/save_to_file/keep_custom_tracks": false, +"slice_216/save_to_file/path": "", +"slice_216/start_frame": 0, +"slice_217/end_frame": 0, +"slice_217/loop_mode": 0, +"slice_217/name": "", +"slice_217/save_to_file/enabled": false, +"slice_217/save_to_file/keep_custom_tracks": false, +"slice_217/save_to_file/path": "", +"slice_217/start_frame": 0, +"slice_218/end_frame": 0, +"slice_218/loop_mode": 0, +"slice_218/name": "", +"slice_218/save_to_file/enabled": false, +"slice_218/save_to_file/keep_custom_tracks": false, +"slice_218/save_to_file/path": "", +"slice_218/start_frame": 0, +"slice_219/end_frame": 0, +"slice_219/loop_mode": 0, +"slice_219/name": "", +"slice_219/save_to_file/enabled": false, +"slice_219/save_to_file/keep_custom_tracks": false, +"slice_219/save_to_file/path": "", +"slice_219/start_frame": 0, +"slice_22/end_frame": 0, +"slice_22/loop_mode": 0, +"slice_22/name": "", +"slice_22/save_to_file/enabled": false, +"slice_22/save_to_file/keep_custom_tracks": false, +"slice_22/save_to_file/path": "", +"slice_22/start_frame": 0, +"slice_220/end_frame": 0, +"slice_220/loop_mode": 0, +"slice_220/name": "", +"slice_220/save_to_file/enabled": false, +"slice_220/save_to_file/keep_custom_tracks": false, +"slice_220/save_to_file/path": "", +"slice_220/start_frame": 0, +"slice_221/end_frame": 0, +"slice_221/loop_mode": 0, +"slice_221/name": "", +"slice_221/save_to_file/enabled": false, +"slice_221/save_to_file/keep_custom_tracks": false, +"slice_221/save_to_file/path": "", +"slice_221/start_frame": 0, +"slice_222/end_frame": 0, +"slice_222/loop_mode": 0, +"slice_222/name": "", +"slice_222/save_to_file/enabled": false, +"slice_222/save_to_file/keep_custom_tracks": false, +"slice_222/save_to_file/path": "", +"slice_222/start_frame": 0, +"slice_223/end_frame": 0, +"slice_223/loop_mode": 0, +"slice_223/name": "", +"slice_223/save_to_file/enabled": false, +"slice_223/save_to_file/keep_custom_tracks": false, +"slice_223/save_to_file/path": "", +"slice_223/start_frame": 0, +"slice_224/end_frame": 0, +"slice_224/loop_mode": 0, +"slice_224/name": "", +"slice_224/save_to_file/enabled": false, +"slice_224/save_to_file/keep_custom_tracks": false, +"slice_224/save_to_file/path": "", +"slice_224/start_frame": 0, +"slice_225/end_frame": 0, +"slice_225/loop_mode": 0, +"slice_225/name": "", +"slice_225/save_to_file/enabled": false, +"slice_225/save_to_file/keep_custom_tracks": false, +"slice_225/save_to_file/path": "", +"slice_225/start_frame": 0, +"slice_226/end_frame": 0, +"slice_226/loop_mode": 0, +"slice_226/name": "", +"slice_226/save_to_file/enabled": false, +"slice_226/save_to_file/keep_custom_tracks": false, +"slice_226/save_to_file/path": "", +"slice_226/start_frame": 0, +"slice_227/end_frame": 0, +"slice_227/loop_mode": 0, +"slice_227/name": "", +"slice_227/save_to_file/enabled": false, +"slice_227/save_to_file/keep_custom_tracks": false, +"slice_227/save_to_file/path": "", +"slice_227/start_frame": 0, +"slice_228/end_frame": 0, +"slice_228/loop_mode": 0, +"slice_228/name": "", +"slice_228/save_to_file/enabled": false, +"slice_228/save_to_file/keep_custom_tracks": false, +"slice_228/save_to_file/path": "", +"slice_228/start_frame": 0, +"slice_229/end_frame": 0, +"slice_229/loop_mode": 0, +"slice_229/name": "", +"slice_229/save_to_file/enabled": false, +"slice_229/save_to_file/keep_custom_tracks": false, +"slice_229/save_to_file/path": "", +"slice_229/start_frame": 0, +"slice_23/end_frame": 0, +"slice_23/loop_mode": 0, +"slice_23/name": "", +"slice_23/save_to_file/enabled": false, +"slice_23/save_to_file/keep_custom_tracks": false, +"slice_23/save_to_file/path": "", +"slice_23/start_frame": 0, +"slice_230/end_frame": 0, +"slice_230/loop_mode": 0, +"slice_230/name": "", +"slice_230/save_to_file/enabled": false, +"slice_230/save_to_file/keep_custom_tracks": false, +"slice_230/save_to_file/path": "", +"slice_230/start_frame": 0, +"slice_231/end_frame": 0, +"slice_231/loop_mode": 0, +"slice_231/name": "", +"slice_231/save_to_file/enabled": false, +"slice_231/save_to_file/keep_custom_tracks": false, +"slice_231/save_to_file/path": "", +"slice_231/start_frame": 0, +"slice_232/end_frame": 0, +"slice_232/loop_mode": 0, +"slice_232/name": "", +"slice_232/save_to_file/enabled": false, +"slice_232/save_to_file/keep_custom_tracks": false, +"slice_232/save_to_file/path": "", +"slice_232/start_frame": 0, +"slice_233/end_frame": 0, +"slice_233/loop_mode": 0, +"slice_233/name": "", +"slice_233/save_to_file/enabled": false, +"slice_233/save_to_file/keep_custom_tracks": false, +"slice_233/save_to_file/path": "", +"slice_233/start_frame": 0, +"slice_234/end_frame": 0, +"slice_234/loop_mode": 0, +"slice_234/name": "", +"slice_234/save_to_file/enabled": false, +"slice_234/save_to_file/keep_custom_tracks": false, +"slice_234/save_to_file/path": "", +"slice_234/start_frame": 0, +"slice_235/end_frame": 0, +"slice_235/loop_mode": 0, +"slice_235/name": "", +"slice_235/save_to_file/enabled": false, +"slice_235/save_to_file/keep_custom_tracks": false, +"slice_235/save_to_file/path": "", +"slice_235/start_frame": 0, +"slice_236/end_frame": 0, +"slice_236/loop_mode": 0, +"slice_236/name": "", +"slice_236/save_to_file/enabled": false, +"slice_236/save_to_file/keep_custom_tracks": false, +"slice_236/save_to_file/path": "", +"slice_236/start_frame": 0, +"slice_237/end_frame": 0, +"slice_237/loop_mode": 0, +"slice_237/name": "", +"slice_237/save_to_file/enabled": false, +"slice_237/save_to_file/keep_custom_tracks": false, +"slice_237/save_to_file/path": "", +"slice_237/start_frame": 0, +"slice_238/end_frame": 0, +"slice_238/loop_mode": 0, +"slice_238/name": "", +"slice_238/save_to_file/enabled": false, +"slice_238/save_to_file/keep_custom_tracks": false, +"slice_238/save_to_file/path": "", +"slice_238/start_frame": 0, +"slice_239/end_frame": 0, +"slice_239/loop_mode": 0, +"slice_239/name": "", +"slice_239/save_to_file/enabled": false, +"slice_239/save_to_file/keep_custom_tracks": false, +"slice_239/save_to_file/path": "", +"slice_239/start_frame": 0, +"slice_24/end_frame": 0, +"slice_24/loop_mode": 0, +"slice_24/name": "", +"slice_24/save_to_file/enabled": false, +"slice_24/save_to_file/keep_custom_tracks": false, +"slice_24/save_to_file/path": "", +"slice_24/start_frame": 0, +"slice_240/end_frame": 0, +"slice_240/loop_mode": 0, +"slice_240/name": "", +"slice_240/save_to_file/enabled": false, +"slice_240/save_to_file/keep_custom_tracks": false, +"slice_240/save_to_file/path": "", +"slice_240/start_frame": 0, +"slice_241/end_frame": 0, +"slice_241/loop_mode": 0, +"slice_241/name": "", +"slice_241/save_to_file/enabled": false, +"slice_241/save_to_file/keep_custom_tracks": false, +"slice_241/save_to_file/path": "", +"slice_241/start_frame": 0, +"slice_242/end_frame": 0, +"slice_242/loop_mode": 0, +"slice_242/name": "", +"slice_242/save_to_file/enabled": false, +"slice_242/save_to_file/keep_custom_tracks": false, +"slice_242/save_to_file/path": "", +"slice_242/start_frame": 0, +"slice_243/end_frame": 0, +"slice_243/loop_mode": 0, +"slice_243/name": "", +"slice_243/save_to_file/enabled": false, +"slice_243/save_to_file/keep_custom_tracks": false, +"slice_243/save_to_file/path": "", +"slice_243/start_frame": 0, +"slice_244/end_frame": 0, +"slice_244/loop_mode": 0, +"slice_244/name": "", +"slice_244/save_to_file/enabled": false, +"slice_244/save_to_file/keep_custom_tracks": false, +"slice_244/save_to_file/path": "", +"slice_244/start_frame": 0, +"slice_245/end_frame": 0, +"slice_245/loop_mode": 0, +"slice_245/name": "", +"slice_245/save_to_file/enabled": false, +"slice_245/save_to_file/keep_custom_tracks": false, +"slice_245/save_to_file/path": "", +"slice_245/start_frame": 0, +"slice_246/end_frame": 0, +"slice_246/loop_mode": 0, +"slice_246/name": "", +"slice_246/save_to_file/enabled": false, +"slice_246/save_to_file/keep_custom_tracks": false, +"slice_246/save_to_file/path": "", +"slice_246/start_frame": 0, +"slice_247/end_frame": 0, +"slice_247/loop_mode": 0, +"slice_247/name": "", +"slice_247/save_to_file/enabled": false, +"slice_247/save_to_file/keep_custom_tracks": false, +"slice_247/save_to_file/path": "", +"slice_247/start_frame": 0, +"slice_248/end_frame": 0, +"slice_248/loop_mode": 0, +"slice_248/name": "", +"slice_248/save_to_file/enabled": false, +"slice_248/save_to_file/keep_custom_tracks": false, +"slice_248/save_to_file/path": "", +"slice_248/start_frame": 0, +"slice_249/end_frame": 0, +"slice_249/loop_mode": 0, +"slice_249/name": "", +"slice_249/save_to_file/enabled": false, +"slice_249/save_to_file/keep_custom_tracks": false, +"slice_249/save_to_file/path": "", +"slice_249/start_frame": 0, +"slice_25/end_frame": 0, +"slice_25/loop_mode": 0, +"slice_25/name": "", +"slice_25/save_to_file/enabled": false, +"slice_25/save_to_file/keep_custom_tracks": false, +"slice_25/save_to_file/path": "", +"slice_25/start_frame": 0, +"slice_250/end_frame": 0, +"slice_250/loop_mode": 0, +"slice_250/name": "", +"slice_250/save_to_file/enabled": false, +"slice_250/save_to_file/keep_custom_tracks": false, +"slice_250/save_to_file/path": "", +"slice_250/start_frame": 0, +"slice_251/end_frame": 0, +"slice_251/loop_mode": 0, +"slice_251/name": "", +"slice_251/save_to_file/enabled": false, +"slice_251/save_to_file/keep_custom_tracks": false, +"slice_251/save_to_file/path": "", +"slice_251/start_frame": 0, +"slice_252/end_frame": 0, +"slice_252/loop_mode": 0, +"slice_252/name": "", +"slice_252/save_to_file/enabled": false, +"slice_252/save_to_file/keep_custom_tracks": false, +"slice_252/save_to_file/path": "", +"slice_252/start_frame": 0, +"slice_253/end_frame": 0, +"slice_253/loop_mode": 0, +"slice_253/name": "", +"slice_253/save_to_file/enabled": false, +"slice_253/save_to_file/keep_custom_tracks": false, +"slice_253/save_to_file/path": "", +"slice_253/start_frame": 0, +"slice_254/end_frame": 0, +"slice_254/loop_mode": 0, +"slice_254/name": "", +"slice_254/save_to_file/enabled": false, +"slice_254/save_to_file/keep_custom_tracks": false, +"slice_254/save_to_file/path": "", +"slice_254/start_frame": 0, +"slice_255/end_frame": 0, +"slice_255/loop_mode": 0, +"slice_255/name": "", +"slice_255/save_to_file/enabled": false, +"slice_255/save_to_file/keep_custom_tracks": false, +"slice_255/save_to_file/path": "", +"slice_255/start_frame": 0, +"slice_256/end_frame": 0, +"slice_256/loop_mode": 0, +"slice_256/name": "", +"slice_256/save_to_file/enabled": false, +"slice_256/save_to_file/keep_custom_tracks": false, +"slice_256/save_to_file/path": "", +"slice_256/start_frame": 0, +"slice_26/end_frame": 0, +"slice_26/loop_mode": 0, +"slice_26/name": "", +"slice_26/save_to_file/enabled": false, +"slice_26/save_to_file/keep_custom_tracks": false, +"slice_26/save_to_file/path": "", +"slice_26/start_frame": 0, +"slice_27/end_frame": 0, +"slice_27/loop_mode": 0, +"slice_27/name": "", +"slice_27/save_to_file/enabled": false, +"slice_27/save_to_file/keep_custom_tracks": false, +"slice_27/save_to_file/path": "", +"slice_27/start_frame": 0, +"slice_28/end_frame": 0, +"slice_28/loop_mode": 0, +"slice_28/name": "", +"slice_28/save_to_file/enabled": false, +"slice_28/save_to_file/keep_custom_tracks": false, +"slice_28/save_to_file/path": "", +"slice_28/start_frame": 0, +"slice_29/end_frame": 0, +"slice_29/loop_mode": 0, +"slice_29/name": "", +"slice_29/save_to_file/enabled": false, +"slice_29/save_to_file/keep_custom_tracks": false, +"slice_29/save_to_file/path": "", +"slice_29/start_frame": 0, +"slice_3/end_frame": 0, +"slice_3/loop_mode": 0, +"slice_3/name": "", +"slice_3/save_to_file/enabled": false, +"slice_3/save_to_file/keep_custom_tracks": false, +"slice_3/save_to_file/path": "", +"slice_3/start_frame": 0, +"slice_30/end_frame": 0, +"slice_30/loop_mode": 0, +"slice_30/name": "", +"slice_30/save_to_file/enabled": false, +"slice_30/save_to_file/keep_custom_tracks": false, +"slice_30/save_to_file/path": "", +"slice_30/start_frame": 0, +"slice_31/end_frame": 0, +"slice_31/loop_mode": 0, +"slice_31/name": "", +"slice_31/save_to_file/enabled": false, +"slice_31/save_to_file/keep_custom_tracks": false, +"slice_31/save_to_file/path": "", +"slice_31/start_frame": 0, +"slice_32/end_frame": 0, +"slice_32/loop_mode": 0, +"slice_32/name": "", +"slice_32/save_to_file/enabled": false, +"slice_32/save_to_file/keep_custom_tracks": false, +"slice_32/save_to_file/path": "", +"slice_32/start_frame": 0, +"slice_33/end_frame": 0, +"slice_33/loop_mode": 0, +"slice_33/name": "", +"slice_33/save_to_file/enabled": false, +"slice_33/save_to_file/keep_custom_tracks": false, +"slice_33/save_to_file/path": "", +"slice_33/start_frame": 0, +"slice_34/end_frame": 0, +"slice_34/loop_mode": 0, +"slice_34/name": "", +"slice_34/save_to_file/enabled": false, +"slice_34/save_to_file/keep_custom_tracks": false, +"slice_34/save_to_file/path": "", +"slice_34/start_frame": 0, +"slice_35/end_frame": 0, +"slice_35/loop_mode": 0, +"slice_35/name": "", +"slice_35/save_to_file/enabled": false, +"slice_35/save_to_file/keep_custom_tracks": false, +"slice_35/save_to_file/path": "", +"slice_35/start_frame": 0, +"slice_36/end_frame": 0, +"slice_36/loop_mode": 0, +"slice_36/name": "", +"slice_36/save_to_file/enabled": false, +"slice_36/save_to_file/keep_custom_tracks": false, +"slice_36/save_to_file/path": "", +"slice_36/start_frame": 0, +"slice_37/end_frame": 0, +"slice_37/loop_mode": 0, +"slice_37/name": "", +"slice_37/save_to_file/enabled": false, +"slice_37/save_to_file/keep_custom_tracks": false, +"slice_37/save_to_file/path": "", +"slice_37/start_frame": 0, +"slice_38/end_frame": 0, +"slice_38/loop_mode": 0, +"slice_38/name": "", +"slice_38/save_to_file/enabled": false, +"slice_38/save_to_file/keep_custom_tracks": false, +"slice_38/save_to_file/path": "", +"slice_38/start_frame": 0, +"slice_39/end_frame": 0, +"slice_39/loop_mode": 0, +"slice_39/name": "", +"slice_39/save_to_file/enabled": false, +"slice_39/save_to_file/keep_custom_tracks": false, +"slice_39/save_to_file/path": "", +"slice_39/start_frame": 0, +"slice_4/end_frame": 0, +"slice_4/loop_mode": 0, +"slice_4/name": "", +"slice_4/save_to_file/enabled": false, +"slice_4/save_to_file/keep_custom_tracks": false, +"slice_4/save_to_file/path": "", +"slice_4/start_frame": 0, +"slice_40/end_frame": 0, +"slice_40/loop_mode": 0, +"slice_40/name": "", +"slice_40/save_to_file/enabled": false, +"slice_40/save_to_file/keep_custom_tracks": false, +"slice_40/save_to_file/path": "", +"slice_40/start_frame": 0, +"slice_41/end_frame": 0, +"slice_41/loop_mode": 0, +"slice_41/name": "", +"slice_41/save_to_file/enabled": false, +"slice_41/save_to_file/keep_custom_tracks": false, +"slice_41/save_to_file/path": "", +"slice_41/start_frame": 0, +"slice_42/end_frame": 0, +"slice_42/loop_mode": 0, +"slice_42/name": "", +"slice_42/save_to_file/enabled": false, +"slice_42/save_to_file/keep_custom_tracks": false, +"slice_42/save_to_file/path": "", +"slice_42/start_frame": 0, +"slice_43/end_frame": 0, +"slice_43/loop_mode": 0, +"slice_43/name": "", +"slice_43/save_to_file/enabled": false, +"slice_43/save_to_file/keep_custom_tracks": false, +"slice_43/save_to_file/path": "", +"slice_43/start_frame": 0, +"slice_44/end_frame": 0, +"slice_44/loop_mode": 0, +"slice_44/name": "", +"slice_44/save_to_file/enabled": false, +"slice_44/save_to_file/keep_custom_tracks": false, +"slice_44/save_to_file/path": "", +"slice_44/start_frame": 0, +"slice_45/end_frame": 0, +"slice_45/loop_mode": 0, +"slice_45/name": "", +"slice_45/save_to_file/enabled": false, +"slice_45/save_to_file/keep_custom_tracks": false, +"slice_45/save_to_file/path": "", +"slice_45/start_frame": 0, +"slice_46/end_frame": 0, +"slice_46/loop_mode": 0, +"slice_46/name": "", +"slice_46/save_to_file/enabled": false, +"slice_46/save_to_file/keep_custom_tracks": false, +"slice_46/save_to_file/path": "", +"slice_46/start_frame": 0, +"slice_47/end_frame": 0, +"slice_47/loop_mode": 0, +"slice_47/name": "", +"slice_47/save_to_file/enabled": false, +"slice_47/save_to_file/keep_custom_tracks": false, +"slice_47/save_to_file/path": "", +"slice_47/start_frame": 0, +"slice_48/end_frame": 0, +"slice_48/loop_mode": 0, +"slice_48/name": "", +"slice_48/save_to_file/enabled": false, +"slice_48/save_to_file/keep_custom_tracks": false, +"slice_48/save_to_file/path": "", +"slice_48/start_frame": 0, +"slice_49/end_frame": 0, +"slice_49/loop_mode": 0, +"slice_49/name": "", +"slice_49/save_to_file/enabled": false, +"slice_49/save_to_file/keep_custom_tracks": false, +"slice_49/save_to_file/path": "", +"slice_49/start_frame": 0, +"slice_5/end_frame": 0, +"slice_5/loop_mode": 0, +"slice_5/name": "", +"slice_5/save_to_file/enabled": false, +"slice_5/save_to_file/keep_custom_tracks": false, +"slice_5/save_to_file/path": "", +"slice_5/start_frame": 0, +"slice_50/end_frame": 0, +"slice_50/loop_mode": 0, +"slice_50/name": "", +"slice_50/save_to_file/enabled": false, +"slice_50/save_to_file/keep_custom_tracks": false, +"slice_50/save_to_file/path": "", +"slice_50/start_frame": 0, +"slice_51/end_frame": 0, +"slice_51/loop_mode": 0, +"slice_51/name": "", +"slice_51/save_to_file/enabled": false, +"slice_51/save_to_file/keep_custom_tracks": false, +"slice_51/save_to_file/path": "", +"slice_51/start_frame": 0, +"slice_52/end_frame": 0, +"slice_52/loop_mode": 0, +"slice_52/name": "", +"slice_52/save_to_file/enabled": false, +"slice_52/save_to_file/keep_custom_tracks": false, +"slice_52/save_to_file/path": "", +"slice_52/start_frame": 0, +"slice_53/end_frame": 0, +"slice_53/loop_mode": 0, +"slice_53/name": "", +"slice_53/save_to_file/enabled": false, +"slice_53/save_to_file/keep_custom_tracks": false, +"slice_53/save_to_file/path": "", +"slice_53/start_frame": 0, +"slice_54/end_frame": 0, +"slice_54/loop_mode": 0, +"slice_54/name": "", +"slice_54/save_to_file/enabled": false, +"slice_54/save_to_file/keep_custom_tracks": false, +"slice_54/save_to_file/path": "", +"slice_54/start_frame": 0, +"slice_55/end_frame": 0, +"slice_55/loop_mode": 0, +"slice_55/name": "", +"slice_55/save_to_file/enabled": false, +"slice_55/save_to_file/keep_custom_tracks": false, +"slice_55/save_to_file/path": "", +"slice_55/start_frame": 0, +"slice_56/end_frame": 0, +"slice_56/loop_mode": 0, +"slice_56/name": "", +"slice_56/save_to_file/enabled": false, +"slice_56/save_to_file/keep_custom_tracks": false, +"slice_56/save_to_file/path": "", +"slice_56/start_frame": 0, +"slice_57/end_frame": 0, +"slice_57/loop_mode": 0, +"slice_57/name": "", +"slice_57/save_to_file/enabled": false, +"slice_57/save_to_file/keep_custom_tracks": false, +"slice_57/save_to_file/path": "", +"slice_57/start_frame": 0, +"slice_58/end_frame": 0, +"slice_58/loop_mode": 0, +"slice_58/name": "", +"slice_58/save_to_file/enabled": false, +"slice_58/save_to_file/keep_custom_tracks": false, +"slice_58/save_to_file/path": "", +"slice_58/start_frame": 0, +"slice_59/end_frame": 0, +"slice_59/loop_mode": 0, +"slice_59/name": "", +"slice_59/save_to_file/enabled": false, +"slice_59/save_to_file/keep_custom_tracks": false, +"slice_59/save_to_file/path": "", +"slice_59/start_frame": 0, +"slice_6/end_frame": 0, +"slice_6/loop_mode": 0, +"slice_6/name": "", +"slice_6/save_to_file/enabled": false, +"slice_6/save_to_file/keep_custom_tracks": false, +"slice_6/save_to_file/path": "", +"slice_6/start_frame": 0, +"slice_60/end_frame": 0, +"slice_60/loop_mode": 0, +"slice_60/name": "", +"slice_60/save_to_file/enabled": false, +"slice_60/save_to_file/keep_custom_tracks": false, +"slice_60/save_to_file/path": "", +"slice_60/start_frame": 0, +"slice_61/end_frame": 0, +"slice_61/loop_mode": 0, +"slice_61/name": "", +"slice_61/save_to_file/enabled": false, +"slice_61/save_to_file/keep_custom_tracks": false, +"slice_61/save_to_file/path": "", +"slice_61/start_frame": 0, +"slice_62/end_frame": 0, +"slice_62/loop_mode": 0, +"slice_62/name": "", +"slice_62/save_to_file/enabled": false, +"slice_62/save_to_file/keep_custom_tracks": false, +"slice_62/save_to_file/path": "", +"slice_62/start_frame": 0, +"slice_63/end_frame": 0, +"slice_63/loop_mode": 0, +"slice_63/name": "", +"slice_63/save_to_file/enabled": false, +"slice_63/save_to_file/keep_custom_tracks": false, +"slice_63/save_to_file/path": "", +"slice_63/start_frame": 0, +"slice_64/end_frame": 0, +"slice_64/loop_mode": 0, +"slice_64/name": "", +"slice_64/save_to_file/enabled": false, +"slice_64/save_to_file/keep_custom_tracks": false, +"slice_64/save_to_file/path": "", +"slice_64/start_frame": 0, +"slice_65/end_frame": 0, +"slice_65/loop_mode": 0, +"slice_65/name": "", +"slice_65/save_to_file/enabled": false, +"slice_65/save_to_file/keep_custom_tracks": false, +"slice_65/save_to_file/path": "", +"slice_65/start_frame": 0, +"slice_66/end_frame": 0, +"slice_66/loop_mode": 0, +"slice_66/name": "", +"slice_66/save_to_file/enabled": false, +"slice_66/save_to_file/keep_custom_tracks": false, +"slice_66/save_to_file/path": "", +"slice_66/start_frame": 0, +"slice_67/end_frame": 0, +"slice_67/loop_mode": 0, +"slice_67/name": "", +"slice_67/save_to_file/enabled": false, +"slice_67/save_to_file/keep_custom_tracks": false, +"slice_67/save_to_file/path": "", +"slice_67/start_frame": 0, +"slice_68/end_frame": 0, +"slice_68/loop_mode": 0, +"slice_68/name": "", +"slice_68/save_to_file/enabled": false, +"slice_68/save_to_file/keep_custom_tracks": false, +"slice_68/save_to_file/path": "", +"slice_68/start_frame": 0, +"slice_69/end_frame": 0, +"slice_69/loop_mode": 0, +"slice_69/name": "", +"slice_69/save_to_file/enabled": false, +"slice_69/save_to_file/keep_custom_tracks": false, +"slice_69/save_to_file/path": "", +"slice_69/start_frame": 0, +"slice_7/end_frame": 0, +"slice_7/loop_mode": 0, +"slice_7/name": "", +"slice_7/save_to_file/enabled": false, +"slice_7/save_to_file/keep_custom_tracks": false, +"slice_7/save_to_file/path": "", +"slice_7/start_frame": 0, +"slice_70/end_frame": 0, +"slice_70/loop_mode": 0, +"slice_70/name": "", +"slice_70/save_to_file/enabled": false, +"slice_70/save_to_file/keep_custom_tracks": false, +"slice_70/save_to_file/path": "", +"slice_70/start_frame": 0, +"slice_71/end_frame": 0, +"slice_71/loop_mode": 0, +"slice_71/name": "", +"slice_71/save_to_file/enabled": false, +"slice_71/save_to_file/keep_custom_tracks": false, +"slice_71/save_to_file/path": "", +"slice_71/start_frame": 0, +"slice_72/end_frame": 0, +"slice_72/loop_mode": 0, +"slice_72/name": "", +"slice_72/save_to_file/enabled": false, +"slice_72/save_to_file/keep_custom_tracks": false, +"slice_72/save_to_file/path": "", +"slice_72/start_frame": 0, +"slice_73/end_frame": 0, +"slice_73/loop_mode": 0, +"slice_73/name": "", +"slice_73/save_to_file/enabled": false, +"slice_73/save_to_file/keep_custom_tracks": false, +"slice_73/save_to_file/path": "", +"slice_73/start_frame": 0, +"slice_74/end_frame": 0, +"slice_74/loop_mode": 0, +"slice_74/name": "", +"slice_74/save_to_file/enabled": false, +"slice_74/save_to_file/keep_custom_tracks": false, +"slice_74/save_to_file/path": "", +"slice_74/start_frame": 0, +"slice_75/end_frame": 0, +"slice_75/loop_mode": 0, +"slice_75/name": "", +"slice_75/save_to_file/enabled": false, +"slice_75/save_to_file/keep_custom_tracks": false, +"slice_75/save_to_file/path": "", +"slice_75/start_frame": 0, +"slice_76/end_frame": 0, +"slice_76/loop_mode": 0, +"slice_76/name": "", +"slice_76/save_to_file/enabled": false, +"slice_76/save_to_file/keep_custom_tracks": false, +"slice_76/save_to_file/path": "", +"slice_76/start_frame": 0, +"slice_77/end_frame": 0, +"slice_77/loop_mode": 0, +"slice_77/name": "", +"slice_77/save_to_file/enabled": false, +"slice_77/save_to_file/keep_custom_tracks": false, +"slice_77/save_to_file/path": "", +"slice_77/start_frame": 0, +"slice_78/end_frame": 0, +"slice_78/loop_mode": 0, +"slice_78/name": "", +"slice_78/save_to_file/enabled": false, +"slice_78/save_to_file/keep_custom_tracks": false, +"slice_78/save_to_file/path": "", +"slice_78/start_frame": 0, +"slice_79/end_frame": 0, +"slice_79/loop_mode": 0, +"slice_79/name": "", +"slice_79/save_to_file/enabled": false, +"slice_79/save_to_file/keep_custom_tracks": false, +"slice_79/save_to_file/path": "", +"slice_79/start_frame": 0, +"slice_8/end_frame": 0, +"slice_8/loop_mode": 0, +"slice_8/name": "", +"slice_8/save_to_file/enabled": false, +"slice_8/save_to_file/keep_custom_tracks": false, +"slice_8/save_to_file/path": "", +"slice_8/start_frame": 0, +"slice_80/end_frame": 0, +"slice_80/loop_mode": 0, +"slice_80/name": "", +"slice_80/save_to_file/enabled": false, +"slice_80/save_to_file/keep_custom_tracks": false, +"slice_80/save_to_file/path": "", +"slice_80/start_frame": 0, +"slice_81/end_frame": 0, +"slice_81/loop_mode": 0, +"slice_81/name": "", +"slice_81/save_to_file/enabled": false, +"slice_81/save_to_file/keep_custom_tracks": false, +"slice_81/save_to_file/path": "", +"slice_81/start_frame": 0, +"slice_82/end_frame": 0, +"slice_82/loop_mode": 0, +"slice_82/name": "", +"slice_82/save_to_file/enabled": false, +"slice_82/save_to_file/keep_custom_tracks": false, +"slice_82/save_to_file/path": "", +"slice_82/start_frame": 0, +"slice_83/end_frame": 0, +"slice_83/loop_mode": 0, +"slice_83/name": "", +"slice_83/save_to_file/enabled": false, +"slice_83/save_to_file/keep_custom_tracks": false, +"slice_83/save_to_file/path": "", +"slice_83/start_frame": 0, +"slice_84/end_frame": 0, +"slice_84/loop_mode": 0, +"slice_84/name": "", +"slice_84/save_to_file/enabled": false, +"slice_84/save_to_file/keep_custom_tracks": false, +"slice_84/save_to_file/path": "", +"slice_84/start_frame": 0, +"slice_85/end_frame": 0, +"slice_85/loop_mode": 0, +"slice_85/name": "", +"slice_85/save_to_file/enabled": false, +"slice_85/save_to_file/keep_custom_tracks": false, +"slice_85/save_to_file/path": "", +"slice_85/start_frame": 0, +"slice_86/end_frame": 0, +"slice_86/loop_mode": 0, +"slice_86/name": "", +"slice_86/save_to_file/enabled": false, +"slice_86/save_to_file/keep_custom_tracks": false, +"slice_86/save_to_file/path": "", +"slice_86/start_frame": 0, +"slice_87/end_frame": 0, +"slice_87/loop_mode": 0, +"slice_87/name": "", +"slice_87/save_to_file/enabled": false, +"slice_87/save_to_file/keep_custom_tracks": false, +"slice_87/save_to_file/path": "", +"slice_87/start_frame": 0, +"slice_88/end_frame": 0, +"slice_88/loop_mode": 0, +"slice_88/name": "", +"slice_88/save_to_file/enabled": false, +"slice_88/save_to_file/keep_custom_tracks": false, +"slice_88/save_to_file/path": "", +"slice_88/start_frame": 0, +"slice_89/end_frame": 0, +"slice_89/loop_mode": 0, +"slice_89/name": "", +"slice_89/save_to_file/enabled": false, +"slice_89/save_to_file/keep_custom_tracks": false, +"slice_89/save_to_file/path": "", +"slice_89/start_frame": 0, +"slice_9/end_frame": 0, +"slice_9/loop_mode": 0, +"slice_9/name": "", +"slice_9/save_to_file/enabled": false, +"slice_9/save_to_file/keep_custom_tracks": false, +"slice_9/save_to_file/path": "", +"slice_9/start_frame": 0, +"slice_90/end_frame": 0, +"slice_90/loop_mode": 0, +"slice_90/name": "", +"slice_90/save_to_file/enabled": false, +"slice_90/save_to_file/keep_custom_tracks": false, +"slice_90/save_to_file/path": "", +"slice_90/start_frame": 0, +"slice_91/end_frame": 0, +"slice_91/loop_mode": 0, +"slice_91/name": "", +"slice_91/save_to_file/enabled": false, +"slice_91/save_to_file/keep_custom_tracks": false, +"slice_91/save_to_file/path": "", +"slice_91/start_frame": 0, +"slice_92/end_frame": 0, +"slice_92/loop_mode": 0, +"slice_92/name": "", +"slice_92/save_to_file/enabled": false, +"slice_92/save_to_file/keep_custom_tracks": false, +"slice_92/save_to_file/path": "", +"slice_92/start_frame": 0, +"slice_93/end_frame": 0, +"slice_93/loop_mode": 0, +"slice_93/name": "", +"slice_93/save_to_file/enabled": false, +"slice_93/save_to_file/keep_custom_tracks": false, +"slice_93/save_to_file/path": "", +"slice_93/start_frame": 0, +"slice_94/end_frame": 0, +"slice_94/loop_mode": 0, +"slice_94/name": "", +"slice_94/save_to_file/enabled": false, +"slice_94/save_to_file/keep_custom_tracks": false, +"slice_94/save_to_file/path": "", +"slice_94/start_frame": 0, +"slice_95/end_frame": 0, +"slice_95/loop_mode": 0, +"slice_95/name": "", +"slice_95/save_to_file/enabled": false, +"slice_95/save_to_file/keep_custom_tracks": false, +"slice_95/save_to_file/path": "", +"slice_95/start_frame": 0, +"slice_96/end_frame": 0, +"slice_96/loop_mode": 0, +"slice_96/name": "", +"slice_96/save_to_file/enabled": false, +"slice_96/save_to_file/keep_custom_tracks": false, +"slice_96/save_to_file/path": "", +"slice_96/start_frame": 0, +"slice_97/end_frame": 0, +"slice_97/loop_mode": 0, +"slice_97/name": "", +"slice_97/save_to_file/enabled": false, +"slice_97/save_to_file/keep_custom_tracks": false, +"slice_97/save_to_file/path": "", +"slice_97/start_frame": 0, +"slice_98/end_frame": 0, +"slice_98/loop_mode": 0, +"slice_98/name": "", +"slice_98/save_to_file/enabled": false, +"slice_98/save_to_file/keep_custom_tracks": false, +"slice_98/save_to_file/path": "", +"slice_98/start_frame": 0, +"slice_99/end_frame": 0, +"slice_99/loop_mode": 0, +"slice_99/name": "", +"slice_99/save_to_file/enabled": false, +"slice_99/save_to_file/keep_custom_tracks": false, +"slice_99/save_to_file/path": "", +"slice_99/start_frame": 0, +"slices/amount": null }, "walk": { "save_to_file/enabled": false, "save_to_file/keep_custom_tracks": "", "save_to_file/path": "", -"settings/loop_mode": 1 +"settings/loop_mode": 1, +"slice_1/end_frame": 0, +"slice_1/loop_mode": 0, +"slice_1/name": "", +"slice_1/save_to_file/enabled": false, +"slice_1/save_to_file/keep_custom_tracks": false, +"slice_1/save_to_file/path": "", +"slice_1/start_frame": 0, +"slice_10/end_frame": 0, +"slice_10/loop_mode": 0, +"slice_10/name": "", +"slice_10/save_to_file/enabled": false, +"slice_10/save_to_file/keep_custom_tracks": false, +"slice_10/save_to_file/path": "", +"slice_10/start_frame": 0, +"slice_100/end_frame": 0, +"slice_100/loop_mode": 0, +"slice_100/name": "", +"slice_100/save_to_file/enabled": false, +"slice_100/save_to_file/keep_custom_tracks": false, +"slice_100/save_to_file/path": "", +"slice_100/start_frame": 0, +"slice_101/end_frame": 0, +"slice_101/loop_mode": 0, +"slice_101/name": "", +"slice_101/save_to_file/enabled": false, +"slice_101/save_to_file/keep_custom_tracks": false, +"slice_101/save_to_file/path": "", +"slice_101/start_frame": 0, +"slice_102/end_frame": 0, +"slice_102/loop_mode": 0, +"slice_102/name": "", +"slice_102/save_to_file/enabled": false, +"slice_102/save_to_file/keep_custom_tracks": false, +"slice_102/save_to_file/path": "", +"slice_102/start_frame": 0, +"slice_103/end_frame": 0, +"slice_103/loop_mode": 0, +"slice_103/name": "", +"slice_103/save_to_file/enabled": false, +"slice_103/save_to_file/keep_custom_tracks": false, +"slice_103/save_to_file/path": "", +"slice_103/start_frame": 0, +"slice_104/end_frame": 0, +"slice_104/loop_mode": 0, +"slice_104/name": "", +"slice_104/save_to_file/enabled": false, +"slice_104/save_to_file/keep_custom_tracks": false, +"slice_104/save_to_file/path": "", +"slice_104/start_frame": 0, +"slice_105/end_frame": 0, +"slice_105/loop_mode": 0, +"slice_105/name": "", +"slice_105/save_to_file/enabled": false, +"slice_105/save_to_file/keep_custom_tracks": false, +"slice_105/save_to_file/path": "", +"slice_105/start_frame": 0, +"slice_106/end_frame": 0, +"slice_106/loop_mode": 0, +"slice_106/name": "", +"slice_106/save_to_file/enabled": false, +"slice_106/save_to_file/keep_custom_tracks": false, +"slice_106/save_to_file/path": "", +"slice_106/start_frame": 0, +"slice_107/end_frame": 0, +"slice_107/loop_mode": 0, +"slice_107/name": "", +"slice_107/save_to_file/enabled": false, +"slice_107/save_to_file/keep_custom_tracks": false, +"slice_107/save_to_file/path": "", +"slice_107/start_frame": 0, +"slice_108/end_frame": 0, +"slice_108/loop_mode": 0, +"slice_108/name": "", +"slice_108/save_to_file/enabled": false, +"slice_108/save_to_file/keep_custom_tracks": false, +"slice_108/save_to_file/path": "", +"slice_108/start_frame": 0, +"slice_109/end_frame": 0, +"slice_109/loop_mode": 0, +"slice_109/name": "", +"slice_109/save_to_file/enabled": false, +"slice_109/save_to_file/keep_custom_tracks": false, +"slice_109/save_to_file/path": "", +"slice_109/start_frame": 0, +"slice_11/end_frame": 0, +"slice_11/loop_mode": 0, +"slice_11/name": "", +"slice_11/save_to_file/enabled": false, +"slice_11/save_to_file/keep_custom_tracks": false, +"slice_11/save_to_file/path": "", +"slice_11/start_frame": 0, +"slice_110/end_frame": 0, +"slice_110/loop_mode": 0, +"slice_110/name": "", +"slice_110/save_to_file/enabled": false, +"slice_110/save_to_file/keep_custom_tracks": false, +"slice_110/save_to_file/path": "", +"slice_110/start_frame": 0, +"slice_111/end_frame": 0, +"slice_111/loop_mode": 0, +"slice_111/name": "", +"slice_111/save_to_file/enabled": false, +"slice_111/save_to_file/keep_custom_tracks": false, +"slice_111/save_to_file/path": "", +"slice_111/start_frame": 0, +"slice_112/end_frame": 0, +"slice_112/loop_mode": 0, +"slice_112/name": "", +"slice_112/save_to_file/enabled": false, +"slice_112/save_to_file/keep_custom_tracks": false, +"slice_112/save_to_file/path": "", +"slice_112/start_frame": 0, +"slice_113/end_frame": 0, +"slice_113/loop_mode": 0, +"slice_113/name": "", +"slice_113/save_to_file/enabled": false, +"slice_113/save_to_file/keep_custom_tracks": false, +"slice_113/save_to_file/path": "", +"slice_113/start_frame": 0, +"slice_114/end_frame": 0, +"slice_114/loop_mode": 0, +"slice_114/name": "", +"slice_114/save_to_file/enabled": false, +"slice_114/save_to_file/keep_custom_tracks": false, +"slice_114/save_to_file/path": "", +"slice_114/start_frame": 0, +"slice_115/end_frame": 0, +"slice_115/loop_mode": 0, +"slice_115/name": "", +"slice_115/save_to_file/enabled": false, +"slice_115/save_to_file/keep_custom_tracks": false, +"slice_115/save_to_file/path": "", +"slice_115/start_frame": 0, +"slice_116/end_frame": 0, +"slice_116/loop_mode": 0, +"slice_116/name": "", +"slice_116/save_to_file/enabled": false, +"slice_116/save_to_file/keep_custom_tracks": false, +"slice_116/save_to_file/path": "", +"slice_116/start_frame": 0, +"slice_117/end_frame": 0, +"slice_117/loop_mode": 0, +"slice_117/name": "", +"slice_117/save_to_file/enabled": false, +"slice_117/save_to_file/keep_custom_tracks": false, +"slice_117/save_to_file/path": "", +"slice_117/start_frame": 0, +"slice_118/end_frame": 0, +"slice_118/loop_mode": 0, +"slice_118/name": "", +"slice_118/save_to_file/enabled": false, +"slice_118/save_to_file/keep_custom_tracks": false, +"slice_118/save_to_file/path": "", +"slice_118/start_frame": 0, +"slice_119/end_frame": 0, +"slice_119/loop_mode": 0, +"slice_119/name": "", +"slice_119/save_to_file/enabled": false, +"slice_119/save_to_file/keep_custom_tracks": false, +"slice_119/save_to_file/path": "", +"slice_119/start_frame": 0, +"slice_12/end_frame": 0, +"slice_12/loop_mode": 0, +"slice_12/name": "", +"slice_12/save_to_file/enabled": false, +"slice_12/save_to_file/keep_custom_tracks": false, +"slice_12/save_to_file/path": "", +"slice_12/start_frame": 0, +"slice_120/end_frame": 0, +"slice_120/loop_mode": 0, +"slice_120/name": "", +"slice_120/save_to_file/enabled": false, +"slice_120/save_to_file/keep_custom_tracks": false, +"slice_120/save_to_file/path": "", +"slice_120/start_frame": 0, +"slice_121/end_frame": 0, +"slice_121/loop_mode": 0, +"slice_121/name": "", +"slice_121/save_to_file/enabled": false, +"slice_121/save_to_file/keep_custom_tracks": false, +"slice_121/save_to_file/path": "", +"slice_121/start_frame": 0, +"slice_122/end_frame": 0, +"slice_122/loop_mode": 0, +"slice_122/name": "", +"slice_122/save_to_file/enabled": false, +"slice_122/save_to_file/keep_custom_tracks": false, +"slice_122/save_to_file/path": "", +"slice_122/start_frame": 0, +"slice_123/end_frame": 0, +"slice_123/loop_mode": 0, +"slice_123/name": "", +"slice_123/save_to_file/enabled": false, +"slice_123/save_to_file/keep_custom_tracks": false, +"slice_123/save_to_file/path": "", +"slice_123/start_frame": 0, +"slice_124/end_frame": 0, +"slice_124/loop_mode": 0, +"slice_124/name": "", +"slice_124/save_to_file/enabled": false, +"slice_124/save_to_file/keep_custom_tracks": false, +"slice_124/save_to_file/path": "", +"slice_124/start_frame": 0, +"slice_125/end_frame": 0, +"slice_125/loop_mode": 0, +"slice_125/name": "", +"slice_125/save_to_file/enabled": false, +"slice_125/save_to_file/keep_custom_tracks": false, +"slice_125/save_to_file/path": "", +"slice_125/start_frame": 0, +"slice_126/end_frame": 0, +"slice_126/loop_mode": 0, +"slice_126/name": "", +"slice_126/save_to_file/enabled": false, +"slice_126/save_to_file/keep_custom_tracks": false, +"slice_126/save_to_file/path": "", +"slice_126/start_frame": 0, +"slice_127/end_frame": 0, +"slice_127/loop_mode": 0, +"slice_127/name": "", +"slice_127/save_to_file/enabled": false, +"slice_127/save_to_file/keep_custom_tracks": false, +"slice_127/save_to_file/path": "", +"slice_127/start_frame": 0, +"slice_128/end_frame": 0, +"slice_128/loop_mode": 0, +"slice_128/name": "", +"slice_128/save_to_file/enabled": false, +"slice_128/save_to_file/keep_custom_tracks": false, +"slice_128/save_to_file/path": "", +"slice_128/start_frame": 0, +"slice_129/end_frame": 0, +"slice_129/loop_mode": 0, +"slice_129/name": "", +"slice_129/save_to_file/enabled": false, +"slice_129/save_to_file/keep_custom_tracks": false, +"slice_129/save_to_file/path": "", +"slice_129/start_frame": 0, +"slice_13/end_frame": 0, +"slice_13/loop_mode": 0, +"slice_13/name": "", +"slice_13/save_to_file/enabled": false, +"slice_13/save_to_file/keep_custom_tracks": false, +"slice_13/save_to_file/path": "", +"slice_13/start_frame": 0, +"slice_130/end_frame": 0, +"slice_130/loop_mode": 0, +"slice_130/name": "", +"slice_130/save_to_file/enabled": false, +"slice_130/save_to_file/keep_custom_tracks": false, +"slice_130/save_to_file/path": "", +"slice_130/start_frame": 0, +"slice_131/end_frame": 0, +"slice_131/loop_mode": 0, +"slice_131/name": "", +"slice_131/save_to_file/enabled": false, +"slice_131/save_to_file/keep_custom_tracks": false, +"slice_131/save_to_file/path": "", +"slice_131/start_frame": 0, +"slice_132/end_frame": 0, +"slice_132/loop_mode": 0, +"slice_132/name": "", +"slice_132/save_to_file/enabled": false, +"slice_132/save_to_file/keep_custom_tracks": false, +"slice_132/save_to_file/path": "", +"slice_132/start_frame": 0, +"slice_133/end_frame": 0, +"slice_133/loop_mode": 0, +"slice_133/name": "", +"slice_133/save_to_file/enabled": false, +"slice_133/save_to_file/keep_custom_tracks": false, +"slice_133/save_to_file/path": "", +"slice_133/start_frame": 0, +"slice_134/end_frame": 0, +"slice_134/loop_mode": 0, +"slice_134/name": "", +"slice_134/save_to_file/enabled": false, +"slice_134/save_to_file/keep_custom_tracks": false, +"slice_134/save_to_file/path": "", +"slice_134/start_frame": 0, +"slice_135/end_frame": 0, +"slice_135/loop_mode": 0, +"slice_135/name": "", +"slice_135/save_to_file/enabled": false, +"slice_135/save_to_file/keep_custom_tracks": false, +"slice_135/save_to_file/path": "", +"slice_135/start_frame": 0, +"slice_136/end_frame": 0, +"slice_136/loop_mode": 0, +"slice_136/name": "", +"slice_136/save_to_file/enabled": false, +"slice_136/save_to_file/keep_custom_tracks": false, +"slice_136/save_to_file/path": "", +"slice_136/start_frame": 0, +"slice_137/end_frame": 0, +"slice_137/loop_mode": 0, +"slice_137/name": "", +"slice_137/save_to_file/enabled": false, +"slice_137/save_to_file/keep_custom_tracks": false, +"slice_137/save_to_file/path": "", +"slice_137/start_frame": 0, +"slice_138/end_frame": 0, +"slice_138/loop_mode": 0, +"slice_138/name": "", +"slice_138/save_to_file/enabled": false, +"slice_138/save_to_file/keep_custom_tracks": false, +"slice_138/save_to_file/path": "", +"slice_138/start_frame": 0, +"slice_139/end_frame": 0, +"slice_139/loop_mode": 0, +"slice_139/name": "", +"slice_139/save_to_file/enabled": false, +"slice_139/save_to_file/keep_custom_tracks": false, +"slice_139/save_to_file/path": "", +"slice_139/start_frame": 0, +"slice_14/end_frame": 0, +"slice_14/loop_mode": 0, +"slice_14/name": "", +"slice_14/save_to_file/enabled": false, +"slice_14/save_to_file/keep_custom_tracks": false, +"slice_14/save_to_file/path": "", +"slice_14/start_frame": 0, +"slice_140/end_frame": 0, +"slice_140/loop_mode": 0, +"slice_140/name": "", +"slice_140/save_to_file/enabled": false, +"slice_140/save_to_file/keep_custom_tracks": false, +"slice_140/save_to_file/path": "", +"slice_140/start_frame": 0, +"slice_141/end_frame": 0, +"slice_141/loop_mode": 0, +"slice_141/name": "", +"slice_141/save_to_file/enabled": false, +"slice_141/save_to_file/keep_custom_tracks": false, +"slice_141/save_to_file/path": "", +"slice_141/start_frame": 0, +"slice_142/end_frame": 0, +"slice_142/loop_mode": 0, +"slice_142/name": "", +"slice_142/save_to_file/enabled": false, +"slice_142/save_to_file/keep_custom_tracks": false, +"slice_142/save_to_file/path": "", +"slice_142/start_frame": 0, +"slice_143/end_frame": 0, +"slice_143/loop_mode": 0, +"slice_143/name": "", +"slice_143/save_to_file/enabled": false, +"slice_143/save_to_file/keep_custom_tracks": false, +"slice_143/save_to_file/path": "", +"slice_143/start_frame": 0, +"slice_144/end_frame": 0, +"slice_144/loop_mode": 0, +"slice_144/name": "", +"slice_144/save_to_file/enabled": false, +"slice_144/save_to_file/keep_custom_tracks": false, +"slice_144/save_to_file/path": "", +"slice_144/start_frame": 0, +"slice_145/end_frame": 0, +"slice_145/loop_mode": 0, +"slice_145/name": "", +"slice_145/save_to_file/enabled": false, +"slice_145/save_to_file/keep_custom_tracks": false, +"slice_145/save_to_file/path": "", +"slice_145/start_frame": 0, +"slice_146/end_frame": 0, +"slice_146/loop_mode": 0, +"slice_146/name": "", +"slice_146/save_to_file/enabled": false, +"slice_146/save_to_file/keep_custom_tracks": false, +"slice_146/save_to_file/path": "", +"slice_146/start_frame": 0, +"slice_147/end_frame": 0, +"slice_147/loop_mode": 0, +"slice_147/name": "", +"slice_147/save_to_file/enabled": false, +"slice_147/save_to_file/keep_custom_tracks": false, +"slice_147/save_to_file/path": "", +"slice_147/start_frame": 0, +"slice_148/end_frame": 0, +"slice_148/loop_mode": 0, +"slice_148/name": "", +"slice_148/save_to_file/enabled": false, +"slice_148/save_to_file/keep_custom_tracks": false, +"slice_148/save_to_file/path": "", +"slice_148/start_frame": 0, +"slice_149/end_frame": 0, +"slice_149/loop_mode": 0, +"slice_149/name": "", +"slice_149/save_to_file/enabled": false, +"slice_149/save_to_file/keep_custom_tracks": false, +"slice_149/save_to_file/path": "", +"slice_149/start_frame": 0, +"slice_15/end_frame": 0, +"slice_15/loop_mode": 0, +"slice_15/name": "", +"slice_15/save_to_file/enabled": false, +"slice_15/save_to_file/keep_custom_tracks": false, +"slice_15/save_to_file/path": "", +"slice_15/start_frame": 0, +"slice_150/end_frame": 0, +"slice_150/loop_mode": 0, +"slice_150/name": "", +"slice_150/save_to_file/enabled": false, +"slice_150/save_to_file/keep_custom_tracks": false, +"slice_150/save_to_file/path": "", +"slice_150/start_frame": 0, +"slice_151/end_frame": 0, +"slice_151/loop_mode": 0, +"slice_151/name": "", +"slice_151/save_to_file/enabled": false, +"slice_151/save_to_file/keep_custom_tracks": false, +"slice_151/save_to_file/path": "", +"slice_151/start_frame": 0, +"slice_152/end_frame": 0, +"slice_152/loop_mode": 0, +"slice_152/name": "", +"slice_152/save_to_file/enabled": false, +"slice_152/save_to_file/keep_custom_tracks": false, +"slice_152/save_to_file/path": "", +"slice_152/start_frame": 0, +"slice_153/end_frame": 0, +"slice_153/loop_mode": 0, +"slice_153/name": "", +"slice_153/save_to_file/enabled": false, +"slice_153/save_to_file/keep_custom_tracks": false, +"slice_153/save_to_file/path": "", +"slice_153/start_frame": 0, +"slice_154/end_frame": 0, +"slice_154/loop_mode": 0, +"slice_154/name": "", +"slice_154/save_to_file/enabled": false, +"slice_154/save_to_file/keep_custom_tracks": false, +"slice_154/save_to_file/path": "", +"slice_154/start_frame": 0, +"slice_155/end_frame": 0, +"slice_155/loop_mode": 0, +"slice_155/name": "", +"slice_155/save_to_file/enabled": false, +"slice_155/save_to_file/keep_custom_tracks": false, +"slice_155/save_to_file/path": "", +"slice_155/start_frame": 0, +"slice_156/end_frame": 0, +"slice_156/loop_mode": 0, +"slice_156/name": "", +"slice_156/save_to_file/enabled": false, +"slice_156/save_to_file/keep_custom_tracks": false, +"slice_156/save_to_file/path": "", +"slice_156/start_frame": 0, +"slice_157/end_frame": 0, +"slice_157/loop_mode": 0, +"slice_157/name": "", +"slice_157/save_to_file/enabled": false, +"slice_157/save_to_file/keep_custom_tracks": false, +"slice_157/save_to_file/path": "", +"slice_157/start_frame": 0, +"slice_158/end_frame": 0, +"slice_158/loop_mode": 0, +"slice_158/name": "", +"slice_158/save_to_file/enabled": false, +"slice_158/save_to_file/keep_custom_tracks": false, +"slice_158/save_to_file/path": "", +"slice_158/start_frame": 0, +"slice_159/end_frame": 0, +"slice_159/loop_mode": 0, +"slice_159/name": "", +"slice_159/save_to_file/enabled": false, +"slice_159/save_to_file/keep_custom_tracks": false, +"slice_159/save_to_file/path": "", +"slice_159/start_frame": 0, +"slice_16/end_frame": 0, +"slice_16/loop_mode": 0, +"slice_16/name": "", +"slice_16/save_to_file/enabled": false, +"slice_16/save_to_file/keep_custom_tracks": false, +"slice_16/save_to_file/path": "", +"slice_16/start_frame": 0, +"slice_160/end_frame": 0, +"slice_160/loop_mode": 0, +"slice_160/name": "", +"slice_160/save_to_file/enabled": false, +"slice_160/save_to_file/keep_custom_tracks": false, +"slice_160/save_to_file/path": "", +"slice_160/start_frame": 0, +"slice_161/end_frame": 0, +"slice_161/loop_mode": 0, +"slice_161/name": "", +"slice_161/save_to_file/enabled": false, +"slice_161/save_to_file/keep_custom_tracks": false, +"slice_161/save_to_file/path": "", +"slice_161/start_frame": 0, +"slice_162/end_frame": 0, +"slice_162/loop_mode": 0, +"slice_162/name": "", +"slice_162/save_to_file/enabled": false, +"slice_162/save_to_file/keep_custom_tracks": false, +"slice_162/save_to_file/path": "", +"slice_162/start_frame": 0, +"slice_163/end_frame": 0, +"slice_163/loop_mode": 0, +"slice_163/name": "", +"slice_163/save_to_file/enabled": false, +"slice_163/save_to_file/keep_custom_tracks": false, +"slice_163/save_to_file/path": "", +"slice_163/start_frame": 0, +"slice_164/end_frame": 0, +"slice_164/loop_mode": 0, +"slice_164/name": "", +"slice_164/save_to_file/enabled": false, +"slice_164/save_to_file/keep_custom_tracks": false, +"slice_164/save_to_file/path": "", +"slice_164/start_frame": 0, +"slice_165/end_frame": 0, +"slice_165/loop_mode": 0, +"slice_165/name": "", +"slice_165/save_to_file/enabled": false, +"slice_165/save_to_file/keep_custom_tracks": false, +"slice_165/save_to_file/path": "", +"slice_165/start_frame": 0, +"slice_166/end_frame": 0, +"slice_166/loop_mode": 0, +"slice_166/name": "", +"slice_166/save_to_file/enabled": false, +"slice_166/save_to_file/keep_custom_tracks": false, +"slice_166/save_to_file/path": "", +"slice_166/start_frame": 0, +"slice_167/end_frame": 0, +"slice_167/loop_mode": 0, +"slice_167/name": "", +"slice_167/save_to_file/enabled": false, +"slice_167/save_to_file/keep_custom_tracks": false, +"slice_167/save_to_file/path": "", +"slice_167/start_frame": 0, +"slice_168/end_frame": 0, +"slice_168/loop_mode": 0, +"slice_168/name": "", +"slice_168/save_to_file/enabled": false, +"slice_168/save_to_file/keep_custom_tracks": false, +"slice_168/save_to_file/path": "", +"slice_168/start_frame": 0, +"slice_169/end_frame": 0, +"slice_169/loop_mode": 0, +"slice_169/name": "", +"slice_169/save_to_file/enabled": false, +"slice_169/save_to_file/keep_custom_tracks": false, +"slice_169/save_to_file/path": "", +"slice_169/start_frame": 0, +"slice_17/end_frame": 0, +"slice_17/loop_mode": 0, +"slice_17/name": "", +"slice_17/save_to_file/enabled": false, +"slice_17/save_to_file/keep_custom_tracks": false, +"slice_17/save_to_file/path": "", +"slice_17/start_frame": 0, +"slice_170/end_frame": 0, +"slice_170/loop_mode": 0, +"slice_170/name": "", +"slice_170/save_to_file/enabled": false, +"slice_170/save_to_file/keep_custom_tracks": false, +"slice_170/save_to_file/path": "", +"slice_170/start_frame": 0, +"slice_171/end_frame": 0, +"slice_171/loop_mode": 0, +"slice_171/name": "", +"slice_171/save_to_file/enabled": false, +"slice_171/save_to_file/keep_custom_tracks": false, +"slice_171/save_to_file/path": "", +"slice_171/start_frame": 0, +"slice_172/end_frame": 0, +"slice_172/loop_mode": 0, +"slice_172/name": "", +"slice_172/save_to_file/enabled": false, +"slice_172/save_to_file/keep_custom_tracks": false, +"slice_172/save_to_file/path": "", +"slice_172/start_frame": 0, +"slice_173/end_frame": 0, +"slice_173/loop_mode": 0, +"slice_173/name": "", +"slice_173/save_to_file/enabled": false, +"slice_173/save_to_file/keep_custom_tracks": false, +"slice_173/save_to_file/path": "", +"slice_173/start_frame": 0, +"slice_174/end_frame": 0, +"slice_174/loop_mode": 0, +"slice_174/name": "", +"slice_174/save_to_file/enabled": false, +"slice_174/save_to_file/keep_custom_tracks": false, +"slice_174/save_to_file/path": "", +"slice_174/start_frame": 0, +"slice_175/end_frame": 0, +"slice_175/loop_mode": 0, +"slice_175/name": "", +"slice_175/save_to_file/enabled": false, +"slice_175/save_to_file/keep_custom_tracks": false, +"slice_175/save_to_file/path": "", +"slice_175/start_frame": 0, +"slice_176/end_frame": 0, +"slice_176/loop_mode": 0, +"slice_176/name": "", +"slice_176/save_to_file/enabled": false, +"slice_176/save_to_file/keep_custom_tracks": false, +"slice_176/save_to_file/path": "", +"slice_176/start_frame": 0, +"slice_177/end_frame": 0, +"slice_177/loop_mode": 0, +"slice_177/name": "", +"slice_177/save_to_file/enabled": false, +"slice_177/save_to_file/keep_custom_tracks": false, +"slice_177/save_to_file/path": "", +"slice_177/start_frame": 0, +"slice_178/end_frame": 0, +"slice_178/loop_mode": 0, +"slice_178/name": "", +"slice_178/save_to_file/enabled": false, +"slice_178/save_to_file/keep_custom_tracks": false, +"slice_178/save_to_file/path": "", +"slice_178/start_frame": 0, +"slice_179/end_frame": 0, +"slice_179/loop_mode": 0, +"slice_179/name": "", +"slice_179/save_to_file/enabled": false, +"slice_179/save_to_file/keep_custom_tracks": false, +"slice_179/save_to_file/path": "", +"slice_179/start_frame": 0, +"slice_18/end_frame": 0, +"slice_18/loop_mode": 0, +"slice_18/name": "", +"slice_18/save_to_file/enabled": false, +"slice_18/save_to_file/keep_custom_tracks": false, +"slice_18/save_to_file/path": "", +"slice_18/start_frame": 0, +"slice_180/end_frame": 0, +"slice_180/loop_mode": 0, +"slice_180/name": "", +"slice_180/save_to_file/enabled": false, +"slice_180/save_to_file/keep_custom_tracks": false, +"slice_180/save_to_file/path": "", +"slice_180/start_frame": 0, +"slice_181/end_frame": 0, +"slice_181/loop_mode": 0, +"slice_181/name": "", +"slice_181/save_to_file/enabled": false, +"slice_181/save_to_file/keep_custom_tracks": false, +"slice_181/save_to_file/path": "", +"slice_181/start_frame": 0, +"slice_182/end_frame": 0, +"slice_182/loop_mode": 0, +"slice_182/name": "", +"slice_182/save_to_file/enabled": false, +"slice_182/save_to_file/keep_custom_tracks": false, +"slice_182/save_to_file/path": "", +"slice_182/start_frame": 0, +"slice_183/end_frame": 0, +"slice_183/loop_mode": 0, +"slice_183/name": "", +"slice_183/save_to_file/enabled": false, +"slice_183/save_to_file/keep_custom_tracks": false, +"slice_183/save_to_file/path": "", +"slice_183/start_frame": 0, +"slice_184/end_frame": 0, +"slice_184/loop_mode": 0, +"slice_184/name": "", +"slice_184/save_to_file/enabled": false, +"slice_184/save_to_file/keep_custom_tracks": false, +"slice_184/save_to_file/path": "", +"slice_184/start_frame": 0, +"slice_185/end_frame": 0, +"slice_185/loop_mode": 0, +"slice_185/name": "", +"slice_185/save_to_file/enabled": false, +"slice_185/save_to_file/keep_custom_tracks": false, +"slice_185/save_to_file/path": "", +"slice_185/start_frame": 0, +"slice_186/end_frame": 0, +"slice_186/loop_mode": 0, +"slice_186/name": "", +"slice_186/save_to_file/enabled": false, +"slice_186/save_to_file/keep_custom_tracks": false, +"slice_186/save_to_file/path": "", +"slice_186/start_frame": 0, +"slice_187/end_frame": 0, +"slice_187/loop_mode": 0, +"slice_187/name": "", +"slice_187/save_to_file/enabled": false, +"slice_187/save_to_file/keep_custom_tracks": false, +"slice_187/save_to_file/path": "", +"slice_187/start_frame": 0, +"slice_188/end_frame": 0, +"slice_188/loop_mode": 0, +"slice_188/name": "", +"slice_188/save_to_file/enabled": false, +"slice_188/save_to_file/keep_custom_tracks": false, +"slice_188/save_to_file/path": "", +"slice_188/start_frame": 0, +"slice_189/end_frame": 0, +"slice_189/loop_mode": 0, +"slice_189/name": "", +"slice_189/save_to_file/enabled": false, +"slice_189/save_to_file/keep_custom_tracks": false, +"slice_189/save_to_file/path": "", +"slice_189/start_frame": 0, +"slice_19/end_frame": 0, +"slice_19/loop_mode": 0, +"slice_19/name": "", +"slice_19/save_to_file/enabled": false, +"slice_19/save_to_file/keep_custom_tracks": false, +"slice_19/save_to_file/path": "", +"slice_19/start_frame": 0, +"slice_190/end_frame": 0, +"slice_190/loop_mode": 0, +"slice_190/name": "", +"slice_190/save_to_file/enabled": false, +"slice_190/save_to_file/keep_custom_tracks": false, +"slice_190/save_to_file/path": "", +"slice_190/start_frame": 0, +"slice_191/end_frame": 0, +"slice_191/loop_mode": 0, +"slice_191/name": "", +"slice_191/save_to_file/enabled": false, +"slice_191/save_to_file/keep_custom_tracks": false, +"slice_191/save_to_file/path": "", +"slice_191/start_frame": 0, +"slice_192/end_frame": 0, +"slice_192/loop_mode": 0, +"slice_192/name": "", +"slice_192/save_to_file/enabled": false, +"slice_192/save_to_file/keep_custom_tracks": false, +"slice_192/save_to_file/path": "", +"slice_192/start_frame": 0, +"slice_193/end_frame": 0, +"slice_193/loop_mode": 0, +"slice_193/name": "", +"slice_193/save_to_file/enabled": false, +"slice_193/save_to_file/keep_custom_tracks": false, +"slice_193/save_to_file/path": "", +"slice_193/start_frame": 0, +"slice_194/end_frame": 0, +"slice_194/loop_mode": 0, +"slice_194/name": "", +"slice_194/save_to_file/enabled": false, +"slice_194/save_to_file/keep_custom_tracks": false, +"slice_194/save_to_file/path": "", +"slice_194/start_frame": 0, +"slice_195/end_frame": 0, +"slice_195/loop_mode": 0, +"slice_195/name": "", +"slice_195/save_to_file/enabled": false, +"slice_195/save_to_file/keep_custom_tracks": false, +"slice_195/save_to_file/path": "", +"slice_195/start_frame": 0, +"slice_196/end_frame": 0, +"slice_196/loop_mode": 0, +"slice_196/name": "", +"slice_196/save_to_file/enabled": false, +"slice_196/save_to_file/keep_custom_tracks": false, +"slice_196/save_to_file/path": "", +"slice_196/start_frame": 0, +"slice_197/end_frame": 0, +"slice_197/loop_mode": 0, +"slice_197/name": "", +"slice_197/save_to_file/enabled": false, +"slice_197/save_to_file/keep_custom_tracks": false, +"slice_197/save_to_file/path": "", +"slice_197/start_frame": 0, +"slice_198/end_frame": 0, +"slice_198/loop_mode": 0, +"slice_198/name": "", +"slice_198/save_to_file/enabled": false, +"slice_198/save_to_file/keep_custom_tracks": false, +"slice_198/save_to_file/path": "", +"slice_198/start_frame": 0, +"slice_199/end_frame": 0, +"slice_199/loop_mode": 0, +"slice_199/name": "", +"slice_199/save_to_file/enabled": false, +"slice_199/save_to_file/keep_custom_tracks": false, +"slice_199/save_to_file/path": "", +"slice_199/start_frame": 0, +"slice_2/end_frame": 0, +"slice_2/loop_mode": 0, +"slice_2/name": "", +"slice_2/save_to_file/enabled": false, +"slice_2/save_to_file/keep_custom_tracks": false, +"slice_2/save_to_file/path": "", +"slice_2/start_frame": 0, +"slice_20/end_frame": 0, +"slice_20/loop_mode": 0, +"slice_20/name": "", +"slice_20/save_to_file/enabled": false, +"slice_20/save_to_file/keep_custom_tracks": false, +"slice_20/save_to_file/path": "", +"slice_20/start_frame": 0, +"slice_200/end_frame": 0, +"slice_200/loop_mode": 0, +"slice_200/name": "", +"slice_200/save_to_file/enabled": false, +"slice_200/save_to_file/keep_custom_tracks": false, +"slice_200/save_to_file/path": "", +"slice_200/start_frame": 0, +"slice_201/end_frame": 0, +"slice_201/loop_mode": 0, +"slice_201/name": "", +"slice_201/save_to_file/enabled": false, +"slice_201/save_to_file/keep_custom_tracks": false, +"slice_201/save_to_file/path": "", +"slice_201/start_frame": 0, +"slice_202/end_frame": 0, +"slice_202/loop_mode": 0, +"slice_202/name": "", +"slice_202/save_to_file/enabled": false, +"slice_202/save_to_file/keep_custom_tracks": false, +"slice_202/save_to_file/path": "", +"slice_202/start_frame": 0, +"slice_203/end_frame": 0, +"slice_203/loop_mode": 0, +"slice_203/name": "", +"slice_203/save_to_file/enabled": false, +"slice_203/save_to_file/keep_custom_tracks": false, +"slice_203/save_to_file/path": "", +"slice_203/start_frame": 0, +"slice_204/end_frame": 0, +"slice_204/loop_mode": 0, +"slice_204/name": "", +"slice_204/save_to_file/enabled": false, +"slice_204/save_to_file/keep_custom_tracks": false, +"slice_204/save_to_file/path": "", +"slice_204/start_frame": 0, +"slice_205/end_frame": 0, +"slice_205/loop_mode": 0, +"slice_205/name": "", +"slice_205/save_to_file/enabled": false, +"slice_205/save_to_file/keep_custom_tracks": false, +"slice_205/save_to_file/path": "", +"slice_205/start_frame": 0, +"slice_206/end_frame": 0, +"slice_206/loop_mode": 0, +"slice_206/name": "", +"slice_206/save_to_file/enabled": false, +"slice_206/save_to_file/keep_custom_tracks": false, +"slice_206/save_to_file/path": "", +"slice_206/start_frame": 0, +"slice_207/end_frame": 0, +"slice_207/loop_mode": 0, +"slice_207/name": "", +"slice_207/save_to_file/enabled": false, +"slice_207/save_to_file/keep_custom_tracks": false, +"slice_207/save_to_file/path": "", +"slice_207/start_frame": 0, +"slice_208/end_frame": 0, +"slice_208/loop_mode": 0, +"slice_208/name": "", +"slice_208/save_to_file/enabled": false, +"slice_208/save_to_file/keep_custom_tracks": false, +"slice_208/save_to_file/path": "", +"slice_208/start_frame": 0, +"slice_209/end_frame": 0, +"slice_209/loop_mode": 0, +"slice_209/name": "", +"slice_209/save_to_file/enabled": false, +"slice_209/save_to_file/keep_custom_tracks": false, +"slice_209/save_to_file/path": "", +"slice_209/start_frame": 0, +"slice_21/end_frame": 0, +"slice_21/loop_mode": 0, +"slice_21/name": "", +"slice_21/save_to_file/enabled": false, +"slice_21/save_to_file/keep_custom_tracks": false, +"slice_21/save_to_file/path": "", +"slice_21/start_frame": 0, +"slice_210/end_frame": 0, +"slice_210/loop_mode": 0, +"slice_210/name": "", +"slice_210/save_to_file/enabled": false, +"slice_210/save_to_file/keep_custom_tracks": false, +"slice_210/save_to_file/path": "", +"slice_210/start_frame": 0, +"slice_211/end_frame": 0, +"slice_211/loop_mode": 0, +"slice_211/name": "", +"slice_211/save_to_file/enabled": false, +"slice_211/save_to_file/keep_custom_tracks": false, +"slice_211/save_to_file/path": "", +"slice_211/start_frame": 0, +"slice_212/end_frame": 0, +"slice_212/loop_mode": 0, +"slice_212/name": "", +"slice_212/save_to_file/enabled": false, +"slice_212/save_to_file/keep_custom_tracks": false, +"slice_212/save_to_file/path": "", +"slice_212/start_frame": 0, +"slice_213/end_frame": 0, +"slice_213/loop_mode": 0, +"slice_213/name": "", +"slice_213/save_to_file/enabled": false, +"slice_213/save_to_file/keep_custom_tracks": false, +"slice_213/save_to_file/path": "", +"slice_213/start_frame": 0, +"slice_214/end_frame": 0, +"slice_214/loop_mode": 0, +"slice_214/name": "", +"slice_214/save_to_file/enabled": false, +"slice_214/save_to_file/keep_custom_tracks": false, +"slice_214/save_to_file/path": "", +"slice_214/start_frame": 0, +"slice_215/end_frame": 0, +"slice_215/loop_mode": 0, +"slice_215/name": "", +"slice_215/save_to_file/enabled": false, +"slice_215/save_to_file/keep_custom_tracks": false, +"slice_215/save_to_file/path": "", +"slice_215/start_frame": 0, +"slice_216/end_frame": 0, +"slice_216/loop_mode": 0, +"slice_216/name": "", +"slice_216/save_to_file/enabled": false, +"slice_216/save_to_file/keep_custom_tracks": false, +"slice_216/save_to_file/path": "", +"slice_216/start_frame": 0, +"slice_217/end_frame": 0, +"slice_217/loop_mode": 0, +"slice_217/name": "", +"slice_217/save_to_file/enabled": false, +"slice_217/save_to_file/keep_custom_tracks": false, +"slice_217/save_to_file/path": "", +"slice_217/start_frame": 0, +"slice_218/end_frame": 0, +"slice_218/loop_mode": 0, +"slice_218/name": "", +"slice_218/save_to_file/enabled": false, +"slice_218/save_to_file/keep_custom_tracks": false, +"slice_218/save_to_file/path": "", +"slice_218/start_frame": 0, +"slice_219/end_frame": 0, +"slice_219/loop_mode": 0, +"slice_219/name": "", +"slice_219/save_to_file/enabled": false, +"slice_219/save_to_file/keep_custom_tracks": false, +"slice_219/save_to_file/path": "", +"slice_219/start_frame": 0, +"slice_22/end_frame": 0, +"slice_22/loop_mode": 0, +"slice_22/name": "", +"slice_22/save_to_file/enabled": false, +"slice_22/save_to_file/keep_custom_tracks": false, +"slice_22/save_to_file/path": "", +"slice_22/start_frame": 0, +"slice_220/end_frame": 0, +"slice_220/loop_mode": 0, +"slice_220/name": "", +"slice_220/save_to_file/enabled": false, +"slice_220/save_to_file/keep_custom_tracks": false, +"slice_220/save_to_file/path": "", +"slice_220/start_frame": 0, +"slice_221/end_frame": 0, +"slice_221/loop_mode": 0, +"slice_221/name": "", +"slice_221/save_to_file/enabled": false, +"slice_221/save_to_file/keep_custom_tracks": false, +"slice_221/save_to_file/path": "", +"slice_221/start_frame": 0, +"slice_222/end_frame": 0, +"slice_222/loop_mode": 0, +"slice_222/name": "", +"slice_222/save_to_file/enabled": false, +"slice_222/save_to_file/keep_custom_tracks": false, +"slice_222/save_to_file/path": "", +"slice_222/start_frame": 0, +"slice_223/end_frame": 0, +"slice_223/loop_mode": 0, +"slice_223/name": "", +"slice_223/save_to_file/enabled": false, +"slice_223/save_to_file/keep_custom_tracks": false, +"slice_223/save_to_file/path": "", +"slice_223/start_frame": 0, +"slice_224/end_frame": 0, +"slice_224/loop_mode": 0, +"slice_224/name": "", +"slice_224/save_to_file/enabled": false, +"slice_224/save_to_file/keep_custom_tracks": false, +"slice_224/save_to_file/path": "", +"slice_224/start_frame": 0, +"slice_225/end_frame": 0, +"slice_225/loop_mode": 0, +"slice_225/name": "", +"slice_225/save_to_file/enabled": false, +"slice_225/save_to_file/keep_custom_tracks": false, +"slice_225/save_to_file/path": "", +"slice_225/start_frame": 0, +"slice_226/end_frame": 0, +"slice_226/loop_mode": 0, +"slice_226/name": "", +"slice_226/save_to_file/enabled": false, +"slice_226/save_to_file/keep_custom_tracks": false, +"slice_226/save_to_file/path": "", +"slice_226/start_frame": 0, +"slice_227/end_frame": 0, +"slice_227/loop_mode": 0, +"slice_227/name": "", +"slice_227/save_to_file/enabled": false, +"slice_227/save_to_file/keep_custom_tracks": false, +"slice_227/save_to_file/path": "", +"slice_227/start_frame": 0, +"slice_228/end_frame": 0, +"slice_228/loop_mode": 0, +"slice_228/name": "", +"slice_228/save_to_file/enabled": false, +"slice_228/save_to_file/keep_custom_tracks": false, +"slice_228/save_to_file/path": "", +"slice_228/start_frame": 0, +"slice_229/end_frame": 0, +"slice_229/loop_mode": 0, +"slice_229/name": "", +"slice_229/save_to_file/enabled": false, +"slice_229/save_to_file/keep_custom_tracks": false, +"slice_229/save_to_file/path": "", +"slice_229/start_frame": 0, +"slice_23/end_frame": 0, +"slice_23/loop_mode": 0, +"slice_23/name": "", +"slice_23/save_to_file/enabled": false, +"slice_23/save_to_file/keep_custom_tracks": false, +"slice_23/save_to_file/path": "", +"slice_23/start_frame": 0, +"slice_230/end_frame": 0, +"slice_230/loop_mode": 0, +"slice_230/name": "", +"slice_230/save_to_file/enabled": false, +"slice_230/save_to_file/keep_custom_tracks": false, +"slice_230/save_to_file/path": "", +"slice_230/start_frame": 0, +"slice_231/end_frame": 0, +"slice_231/loop_mode": 0, +"slice_231/name": "", +"slice_231/save_to_file/enabled": false, +"slice_231/save_to_file/keep_custom_tracks": false, +"slice_231/save_to_file/path": "", +"slice_231/start_frame": 0, +"slice_232/end_frame": 0, +"slice_232/loop_mode": 0, +"slice_232/name": "", +"slice_232/save_to_file/enabled": false, +"slice_232/save_to_file/keep_custom_tracks": false, +"slice_232/save_to_file/path": "", +"slice_232/start_frame": 0, +"slice_233/end_frame": 0, +"slice_233/loop_mode": 0, +"slice_233/name": "", +"slice_233/save_to_file/enabled": false, +"slice_233/save_to_file/keep_custom_tracks": false, +"slice_233/save_to_file/path": "", +"slice_233/start_frame": 0, +"slice_234/end_frame": 0, +"slice_234/loop_mode": 0, +"slice_234/name": "", +"slice_234/save_to_file/enabled": false, +"slice_234/save_to_file/keep_custom_tracks": false, +"slice_234/save_to_file/path": "", +"slice_234/start_frame": 0, +"slice_235/end_frame": 0, +"slice_235/loop_mode": 0, +"slice_235/name": "", +"slice_235/save_to_file/enabled": false, +"slice_235/save_to_file/keep_custom_tracks": false, +"slice_235/save_to_file/path": "", +"slice_235/start_frame": 0, +"slice_236/end_frame": 0, +"slice_236/loop_mode": 0, +"slice_236/name": "", +"slice_236/save_to_file/enabled": false, +"slice_236/save_to_file/keep_custom_tracks": false, +"slice_236/save_to_file/path": "", +"slice_236/start_frame": 0, +"slice_237/end_frame": 0, +"slice_237/loop_mode": 0, +"slice_237/name": "", +"slice_237/save_to_file/enabled": false, +"slice_237/save_to_file/keep_custom_tracks": false, +"slice_237/save_to_file/path": "", +"slice_237/start_frame": 0, +"slice_238/end_frame": 0, +"slice_238/loop_mode": 0, +"slice_238/name": "", +"slice_238/save_to_file/enabled": false, +"slice_238/save_to_file/keep_custom_tracks": false, +"slice_238/save_to_file/path": "", +"slice_238/start_frame": 0, +"slice_239/end_frame": 0, +"slice_239/loop_mode": 0, +"slice_239/name": "", +"slice_239/save_to_file/enabled": false, +"slice_239/save_to_file/keep_custom_tracks": false, +"slice_239/save_to_file/path": "", +"slice_239/start_frame": 0, +"slice_24/end_frame": 0, +"slice_24/loop_mode": 0, +"slice_24/name": "", +"slice_24/save_to_file/enabled": false, +"slice_24/save_to_file/keep_custom_tracks": false, +"slice_24/save_to_file/path": "", +"slice_24/start_frame": 0, +"slice_240/end_frame": 0, +"slice_240/loop_mode": 0, +"slice_240/name": "", +"slice_240/save_to_file/enabled": false, +"slice_240/save_to_file/keep_custom_tracks": false, +"slice_240/save_to_file/path": "", +"slice_240/start_frame": 0, +"slice_241/end_frame": 0, +"slice_241/loop_mode": 0, +"slice_241/name": "", +"slice_241/save_to_file/enabled": false, +"slice_241/save_to_file/keep_custom_tracks": false, +"slice_241/save_to_file/path": "", +"slice_241/start_frame": 0, +"slice_242/end_frame": 0, +"slice_242/loop_mode": 0, +"slice_242/name": "", +"slice_242/save_to_file/enabled": false, +"slice_242/save_to_file/keep_custom_tracks": false, +"slice_242/save_to_file/path": "", +"slice_242/start_frame": 0, +"slice_243/end_frame": 0, +"slice_243/loop_mode": 0, +"slice_243/name": "", +"slice_243/save_to_file/enabled": false, +"slice_243/save_to_file/keep_custom_tracks": false, +"slice_243/save_to_file/path": "", +"slice_243/start_frame": 0, +"slice_244/end_frame": 0, +"slice_244/loop_mode": 0, +"slice_244/name": "", +"slice_244/save_to_file/enabled": false, +"slice_244/save_to_file/keep_custom_tracks": false, +"slice_244/save_to_file/path": "", +"slice_244/start_frame": 0, +"slice_245/end_frame": 0, +"slice_245/loop_mode": 0, +"slice_245/name": "", +"slice_245/save_to_file/enabled": false, +"slice_245/save_to_file/keep_custom_tracks": false, +"slice_245/save_to_file/path": "", +"slice_245/start_frame": 0, +"slice_246/end_frame": 0, +"slice_246/loop_mode": 0, +"slice_246/name": "", +"slice_246/save_to_file/enabled": false, +"slice_246/save_to_file/keep_custom_tracks": false, +"slice_246/save_to_file/path": "", +"slice_246/start_frame": 0, +"slice_247/end_frame": 0, +"slice_247/loop_mode": 0, +"slice_247/name": "", +"slice_247/save_to_file/enabled": false, +"slice_247/save_to_file/keep_custom_tracks": false, +"slice_247/save_to_file/path": "", +"slice_247/start_frame": 0, +"slice_248/end_frame": 0, +"slice_248/loop_mode": 0, +"slice_248/name": "", +"slice_248/save_to_file/enabled": false, +"slice_248/save_to_file/keep_custom_tracks": false, +"slice_248/save_to_file/path": "", +"slice_248/start_frame": 0, +"slice_249/end_frame": 0, +"slice_249/loop_mode": 0, +"slice_249/name": "", +"slice_249/save_to_file/enabled": false, +"slice_249/save_to_file/keep_custom_tracks": false, +"slice_249/save_to_file/path": "", +"slice_249/start_frame": 0, +"slice_25/end_frame": 0, +"slice_25/loop_mode": 0, +"slice_25/name": "", +"slice_25/save_to_file/enabled": false, +"slice_25/save_to_file/keep_custom_tracks": false, +"slice_25/save_to_file/path": "", +"slice_25/start_frame": 0, +"slice_250/end_frame": 0, +"slice_250/loop_mode": 0, +"slice_250/name": "", +"slice_250/save_to_file/enabled": false, +"slice_250/save_to_file/keep_custom_tracks": false, +"slice_250/save_to_file/path": "", +"slice_250/start_frame": 0, +"slice_251/end_frame": 0, +"slice_251/loop_mode": 0, +"slice_251/name": "", +"slice_251/save_to_file/enabled": false, +"slice_251/save_to_file/keep_custom_tracks": false, +"slice_251/save_to_file/path": "", +"slice_251/start_frame": 0, +"slice_252/end_frame": 0, +"slice_252/loop_mode": 0, +"slice_252/name": "", +"slice_252/save_to_file/enabled": false, +"slice_252/save_to_file/keep_custom_tracks": false, +"slice_252/save_to_file/path": "", +"slice_252/start_frame": 0, +"slice_253/end_frame": 0, +"slice_253/loop_mode": 0, +"slice_253/name": "", +"slice_253/save_to_file/enabled": false, +"slice_253/save_to_file/keep_custom_tracks": false, +"slice_253/save_to_file/path": "", +"slice_253/start_frame": 0, +"slice_254/end_frame": 0, +"slice_254/loop_mode": 0, +"slice_254/name": "", +"slice_254/save_to_file/enabled": false, +"slice_254/save_to_file/keep_custom_tracks": false, +"slice_254/save_to_file/path": "", +"slice_254/start_frame": 0, +"slice_255/end_frame": 0, +"slice_255/loop_mode": 0, +"slice_255/name": "", +"slice_255/save_to_file/enabled": false, +"slice_255/save_to_file/keep_custom_tracks": false, +"slice_255/save_to_file/path": "", +"slice_255/start_frame": 0, +"slice_256/end_frame": 0, +"slice_256/loop_mode": 0, +"slice_256/name": "", +"slice_256/save_to_file/enabled": false, +"slice_256/save_to_file/keep_custom_tracks": false, +"slice_256/save_to_file/path": "", +"slice_256/start_frame": 0, +"slice_26/end_frame": 0, +"slice_26/loop_mode": 0, +"slice_26/name": "", +"slice_26/save_to_file/enabled": false, +"slice_26/save_to_file/keep_custom_tracks": false, +"slice_26/save_to_file/path": "", +"slice_26/start_frame": 0, +"slice_27/end_frame": 0, +"slice_27/loop_mode": 0, +"slice_27/name": "", +"slice_27/save_to_file/enabled": false, +"slice_27/save_to_file/keep_custom_tracks": false, +"slice_27/save_to_file/path": "", +"slice_27/start_frame": 0, +"slice_28/end_frame": 0, +"slice_28/loop_mode": 0, +"slice_28/name": "", +"slice_28/save_to_file/enabled": false, +"slice_28/save_to_file/keep_custom_tracks": false, +"slice_28/save_to_file/path": "", +"slice_28/start_frame": 0, +"slice_29/end_frame": 0, +"slice_29/loop_mode": 0, +"slice_29/name": "", +"slice_29/save_to_file/enabled": false, +"slice_29/save_to_file/keep_custom_tracks": false, +"slice_29/save_to_file/path": "", +"slice_29/start_frame": 0, +"slice_3/end_frame": 0, +"slice_3/loop_mode": 0, +"slice_3/name": "", +"slice_3/save_to_file/enabled": false, +"slice_3/save_to_file/keep_custom_tracks": false, +"slice_3/save_to_file/path": "", +"slice_3/start_frame": 0, +"slice_30/end_frame": 0, +"slice_30/loop_mode": 0, +"slice_30/name": "", +"slice_30/save_to_file/enabled": false, +"slice_30/save_to_file/keep_custom_tracks": false, +"slice_30/save_to_file/path": "", +"slice_30/start_frame": 0, +"slice_31/end_frame": 0, +"slice_31/loop_mode": 0, +"slice_31/name": "", +"slice_31/save_to_file/enabled": false, +"slice_31/save_to_file/keep_custom_tracks": false, +"slice_31/save_to_file/path": "", +"slice_31/start_frame": 0, +"slice_32/end_frame": 0, +"slice_32/loop_mode": 0, +"slice_32/name": "", +"slice_32/save_to_file/enabled": false, +"slice_32/save_to_file/keep_custom_tracks": false, +"slice_32/save_to_file/path": "", +"slice_32/start_frame": 0, +"slice_33/end_frame": 0, +"slice_33/loop_mode": 0, +"slice_33/name": "", +"slice_33/save_to_file/enabled": false, +"slice_33/save_to_file/keep_custom_tracks": false, +"slice_33/save_to_file/path": "", +"slice_33/start_frame": 0, +"slice_34/end_frame": 0, +"slice_34/loop_mode": 0, +"slice_34/name": "", +"slice_34/save_to_file/enabled": false, +"slice_34/save_to_file/keep_custom_tracks": false, +"slice_34/save_to_file/path": "", +"slice_34/start_frame": 0, +"slice_35/end_frame": 0, +"slice_35/loop_mode": 0, +"slice_35/name": "", +"slice_35/save_to_file/enabled": false, +"slice_35/save_to_file/keep_custom_tracks": false, +"slice_35/save_to_file/path": "", +"slice_35/start_frame": 0, +"slice_36/end_frame": 0, +"slice_36/loop_mode": 0, +"slice_36/name": "", +"slice_36/save_to_file/enabled": false, +"slice_36/save_to_file/keep_custom_tracks": false, +"slice_36/save_to_file/path": "", +"slice_36/start_frame": 0, +"slice_37/end_frame": 0, +"slice_37/loop_mode": 0, +"slice_37/name": "", +"slice_37/save_to_file/enabled": false, +"slice_37/save_to_file/keep_custom_tracks": false, +"slice_37/save_to_file/path": "", +"slice_37/start_frame": 0, +"slice_38/end_frame": 0, +"slice_38/loop_mode": 0, +"slice_38/name": "", +"slice_38/save_to_file/enabled": false, +"slice_38/save_to_file/keep_custom_tracks": false, +"slice_38/save_to_file/path": "", +"slice_38/start_frame": 0, +"slice_39/end_frame": 0, +"slice_39/loop_mode": 0, +"slice_39/name": "", +"slice_39/save_to_file/enabled": false, +"slice_39/save_to_file/keep_custom_tracks": false, +"slice_39/save_to_file/path": "", +"slice_39/start_frame": 0, +"slice_4/end_frame": 0, +"slice_4/loop_mode": 0, +"slice_4/name": "", +"slice_4/save_to_file/enabled": false, +"slice_4/save_to_file/keep_custom_tracks": false, +"slice_4/save_to_file/path": "", +"slice_4/start_frame": 0, +"slice_40/end_frame": 0, +"slice_40/loop_mode": 0, +"slice_40/name": "", +"slice_40/save_to_file/enabled": false, +"slice_40/save_to_file/keep_custom_tracks": false, +"slice_40/save_to_file/path": "", +"slice_40/start_frame": 0, +"slice_41/end_frame": 0, +"slice_41/loop_mode": 0, +"slice_41/name": "", +"slice_41/save_to_file/enabled": false, +"slice_41/save_to_file/keep_custom_tracks": false, +"slice_41/save_to_file/path": "", +"slice_41/start_frame": 0, +"slice_42/end_frame": 0, +"slice_42/loop_mode": 0, +"slice_42/name": "", +"slice_42/save_to_file/enabled": false, +"slice_42/save_to_file/keep_custom_tracks": false, +"slice_42/save_to_file/path": "", +"slice_42/start_frame": 0, +"slice_43/end_frame": 0, +"slice_43/loop_mode": 0, +"slice_43/name": "", +"slice_43/save_to_file/enabled": false, +"slice_43/save_to_file/keep_custom_tracks": false, +"slice_43/save_to_file/path": "", +"slice_43/start_frame": 0, +"slice_44/end_frame": 0, +"slice_44/loop_mode": 0, +"slice_44/name": "", +"slice_44/save_to_file/enabled": false, +"slice_44/save_to_file/keep_custom_tracks": false, +"slice_44/save_to_file/path": "", +"slice_44/start_frame": 0, +"slice_45/end_frame": 0, +"slice_45/loop_mode": 0, +"slice_45/name": "", +"slice_45/save_to_file/enabled": false, +"slice_45/save_to_file/keep_custom_tracks": false, +"slice_45/save_to_file/path": "", +"slice_45/start_frame": 0, +"slice_46/end_frame": 0, +"slice_46/loop_mode": 0, +"slice_46/name": "", +"slice_46/save_to_file/enabled": false, +"slice_46/save_to_file/keep_custom_tracks": false, +"slice_46/save_to_file/path": "", +"slice_46/start_frame": 0, +"slice_47/end_frame": 0, +"slice_47/loop_mode": 0, +"slice_47/name": "", +"slice_47/save_to_file/enabled": false, +"slice_47/save_to_file/keep_custom_tracks": false, +"slice_47/save_to_file/path": "", +"slice_47/start_frame": 0, +"slice_48/end_frame": 0, +"slice_48/loop_mode": 0, +"slice_48/name": "", +"slice_48/save_to_file/enabled": false, +"slice_48/save_to_file/keep_custom_tracks": false, +"slice_48/save_to_file/path": "", +"slice_48/start_frame": 0, +"slice_49/end_frame": 0, +"slice_49/loop_mode": 0, +"slice_49/name": "", +"slice_49/save_to_file/enabled": false, +"slice_49/save_to_file/keep_custom_tracks": false, +"slice_49/save_to_file/path": "", +"slice_49/start_frame": 0, +"slice_5/end_frame": 0, +"slice_5/loop_mode": 0, +"slice_5/name": "", +"slice_5/save_to_file/enabled": false, +"slice_5/save_to_file/keep_custom_tracks": false, +"slice_5/save_to_file/path": "", +"slice_5/start_frame": 0, +"slice_50/end_frame": 0, +"slice_50/loop_mode": 0, +"slice_50/name": "", +"slice_50/save_to_file/enabled": false, +"slice_50/save_to_file/keep_custom_tracks": false, +"slice_50/save_to_file/path": "", +"slice_50/start_frame": 0, +"slice_51/end_frame": 0, +"slice_51/loop_mode": 0, +"slice_51/name": "", +"slice_51/save_to_file/enabled": false, +"slice_51/save_to_file/keep_custom_tracks": false, +"slice_51/save_to_file/path": "", +"slice_51/start_frame": 0, +"slice_52/end_frame": 0, +"slice_52/loop_mode": 0, +"slice_52/name": "", +"slice_52/save_to_file/enabled": false, +"slice_52/save_to_file/keep_custom_tracks": false, +"slice_52/save_to_file/path": "", +"slice_52/start_frame": 0, +"slice_53/end_frame": 0, +"slice_53/loop_mode": 0, +"slice_53/name": "", +"slice_53/save_to_file/enabled": false, +"slice_53/save_to_file/keep_custom_tracks": false, +"slice_53/save_to_file/path": "", +"slice_53/start_frame": 0, +"slice_54/end_frame": 0, +"slice_54/loop_mode": 0, +"slice_54/name": "", +"slice_54/save_to_file/enabled": false, +"slice_54/save_to_file/keep_custom_tracks": false, +"slice_54/save_to_file/path": "", +"slice_54/start_frame": 0, +"slice_55/end_frame": 0, +"slice_55/loop_mode": 0, +"slice_55/name": "", +"slice_55/save_to_file/enabled": false, +"slice_55/save_to_file/keep_custom_tracks": false, +"slice_55/save_to_file/path": "", +"slice_55/start_frame": 0, +"slice_56/end_frame": 0, +"slice_56/loop_mode": 0, +"slice_56/name": "", +"slice_56/save_to_file/enabled": false, +"slice_56/save_to_file/keep_custom_tracks": false, +"slice_56/save_to_file/path": "", +"slice_56/start_frame": 0, +"slice_57/end_frame": 0, +"slice_57/loop_mode": 0, +"slice_57/name": "", +"slice_57/save_to_file/enabled": false, +"slice_57/save_to_file/keep_custom_tracks": false, +"slice_57/save_to_file/path": "", +"slice_57/start_frame": 0, +"slice_58/end_frame": 0, +"slice_58/loop_mode": 0, +"slice_58/name": "", +"slice_58/save_to_file/enabled": false, +"slice_58/save_to_file/keep_custom_tracks": false, +"slice_58/save_to_file/path": "", +"slice_58/start_frame": 0, +"slice_59/end_frame": 0, +"slice_59/loop_mode": 0, +"slice_59/name": "", +"slice_59/save_to_file/enabled": false, +"slice_59/save_to_file/keep_custom_tracks": false, +"slice_59/save_to_file/path": "", +"slice_59/start_frame": 0, +"slice_6/end_frame": 0, +"slice_6/loop_mode": 0, +"slice_6/name": "", +"slice_6/save_to_file/enabled": false, +"slice_6/save_to_file/keep_custom_tracks": false, +"slice_6/save_to_file/path": "", +"slice_6/start_frame": 0, +"slice_60/end_frame": 0, +"slice_60/loop_mode": 0, +"slice_60/name": "", +"slice_60/save_to_file/enabled": false, +"slice_60/save_to_file/keep_custom_tracks": false, +"slice_60/save_to_file/path": "", +"slice_60/start_frame": 0, +"slice_61/end_frame": 0, +"slice_61/loop_mode": 0, +"slice_61/name": "", +"slice_61/save_to_file/enabled": false, +"slice_61/save_to_file/keep_custom_tracks": false, +"slice_61/save_to_file/path": "", +"slice_61/start_frame": 0, +"slice_62/end_frame": 0, +"slice_62/loop_mode": 0, +"slice_62/name": "", +"slice_62/save_to_file/enabled": false, +"slice_62/save_to_file/keep_custom_tracks": false, +"slice_62/save_to_file/path": "", +"slice_62/start_frame": 0, +"slice_63/end_frame": 0, +"slice_63/loop_mode": 0, +"slice_63/name": "", +"slice_63/save_to_file/enabled": false, +"slice_63/save_to_file/keep_custom_tracks": false, +"slice_63/save_to_file/path": "", +"slice_63/start_frame": 0, +"slice_64/end_frame": 0, +"slice_64/loop_mode": 0, +"slice_64/name": "", +"slice_64/save_to_file/enabled": false, +"slice_64/save_to_file/keep_custom_tracks": false, +"slice_64/save_to_file/path": "", +"slice_64/start_frame": 0, +"slice_65/end_frame": 0, +"slice_65/loop_mode": 0, +"slice_65/name": "", +"slice_65/save_to_file/enabled": false, +"slice_65/save_to_file/keep_custom_tracks": false, +"slice_65/save_to_file/path": "", +"slice_65/start_frame": 0, +"slice_66/end_frame": 0, +"slice_66/loop_mode": 0, +"slice_66/name": "", +"slice_66/save_to_file/enabled": false, +"slice_66/save_to_file/keep_custom_tracks": false, +"slice_66/save_to_file/path": "", +"slice_66/start_frame": 0, +"slice_67/end_frame": 0, +"slice_67/loop_mode": 0, +"slice_67/name": "", +"slice_67/save_to_file/enabled": false, +"slice_67/save_to_file/keep_custom_tracks": false, +"slice_67/save_to_file/path": "", +"slice_67/start_frame": 0, +"slice_68/end_frame": 0, +"slice_68/loop_mode": 0, +"slice_68/name": "", +"slice_68/save_to_file/enabled": false, +"slice_68/save_to_file/keep_custom_tracks": false, +"slice_68/save_to_file/path": "", +"slice_68/start_frame": 0, +"slice_69/end_frame": 0, +"slice_69/loop_mode": 0, +"slice_69/name": "", +"slice_69/save_to_file/enabled": false, +"slice_69/save_to_file/keep_custom_tracks": false, +"slice_69/save_to_file/path": "", +"slice_69/start_frame": 0, +"slice_7/end_frame": 0, +"slice_7/loop_mode": 0, +"slice_7/name": "", +"slice_7/save_to_file/enabled": false, +"slice_7/save_to_file/keep_custom_tracks": false, +"slice_7/save_to_file/path": "", +"slice_7/start_frame": 0, +"slice_70/end_frame": 0, +"slice_70/loop_mode": 0, +"slice_70/name": "", +"slice_70/save_to_file/enabled": false, +"slice_70/save_to_file/keep_custom_tracks": false, +"slice_70/save_to_file/path": "", +"slice_70/start_frame": 0, +"slice_71/end_frame": 0, +"slice_71/loop_mode": 0, +"slice_71/name": "", +"slice_71/save_to_file/enabled": false, +"slice_71/save_to_file/keep_custom_tracks": false, +"slice_71/save_to_file/path": "", +"slice_71/start_frame": 0, +"slice_72/end_frame": 0, +"slice_72/loop_mode": 0, +"slice_72/name": "", +"slice_72/save_to_file/enabled": false, +"slice_72/save_to_file/keep_custom_tracks": false, +"slice_72/save_to_file/path": "", +"slice_72/start_frame": 0, +"slice_73/end_frame": 0, +"slice_73/loop_mode": 0, +"slice_73/name": "", +"slice_73/save_to_file/enabled": false, +"slice_73/save_to_file/keep_custom_tracks": false, +"slice_73/save_to_file/path": "", +"slice_73/start_frame": 0, +"slice_74/end_frame": 0, +"slice_74/loop_mode": 0, +"slice_74/name": "", +"slice_74/save_to_file/enabled": false, +"slice_74/save_to_file/keep_custom_tracks": false, +"slice_74/save_to_file/path": "", +"slice_74/start_frame": 0, +"slice_75/end_frame": 0, +"slice_75/loop_mode": 0, +"slice_75/name": "", +"slice_75/save_to_file/enabled": false, +"slice_75/save_to_file/keep_custom_tracks": false, +"slice_75/save_to_file/path": "", +"slice_75/start_frame": 0, +"slice_76/end_frame": 0, +"slice_76/loop_mode": 0, +"slice_76/name": "", +"slice_76/save_to_file/enabled": false, +"slice_76/save_to_file/keep_custom_tracks": false, +"slice_76/save_to_file/path": "", +"slice_76/start_frame": 0, +"slice_77/end_frame": 0, +"slice_77/loop_mode": 0, +"slice_77/name": "", +"slice_77/save_to_file/enabled": false, +"slice_77/save_to_file/keep_custom_tracks": false, +"slice_77/save_to_file/path": "", +"slice_77/start_frame": 0, +"slice_78/end_frame": 0, +"slice_78/loop_mode": 0, +"slice_78/name": "", +"slice_78/save_to_file/enabled": false, +"slice_78/save_to_file/keep_custom_tracks": false, +"slice_78/save_to_file/path": "", +"slice_78/start_frame": 0, +"slice_79/end_frame": 0, +"slice_79/loop_mode": 0, +"slice_79/name": "", +"slice_79/save_to_file/enabled": false, +"slice_79/save_to_file/keep_custom_tracks": false, +"slice_79/save_to_file/path": "", +"slice_79/start_frame": 0, +"slice_8/end_frame": 0, +"slice_8/loop_mode": 0, +"slice_8/name": "", +"slice_8/save_to_file/enabled": false, +"slice_8/save_to_file/keep_custom_tracks": false, +"slice_8/save_to_file/path": "", +"slice_8/start_frame": 0, +"slice_80/end_frame": 0, +"slice_80/loop_mode": 0, +"slice_80/name": "", +"slice_80/save_to_file/enabled": false, +"slice_80/save_to_file/keep_custom_tracks": false, +"slice_80/save_to_file/path": "", +"slice_80/start_frame": 0, +"slice_81/end_frame": 0, +"slice_81/loop_mode": 0, +"slice_81/name": "", +"slice_81/save_to_file/enabled": false, +"slice_81/save_to_file/keep_custom_tracks": false, +"slice_81/save_to_file/path": "", +"slice_81/start_frame": 0, +"slice_82/end_frame": 0, +"slice_82/loop_mode": 0, +"slice_82/name": "", +"slice_82/save_to_file/enabled": false, +"slice_82/save_to_file/keep_custom_tracks": false, +"slice_82/save_to_file/path": "", +"slice_82/start_frame": 0, +"slice_83/end_frame": 0, +"slice_83/loop_mode": 0, +"slice_83/name": "", +"slice_83/save_to_file/enabled": false, +"slice_83/save_to_file/keep_custom_tracks": false, +"slice_83/save_to_file/path": "", +"slice_83/start_frame": 0, +"slice_84/end_frame": 0, +"slice_84/loop_mode": 0, +"slice_84/name": "", +"slice_84/save_to_file/enabled": false, +"slice_84/save_to_file/keep_custom_tracks": false, +"slice_84/save_to_file/path": "", +"slice_84/start_frame": 0, +"slice_85/end_frame": 0, +"slice_85/loop_mode": 0, +"slice_85/name": "", +"slice_85/save_to_file/enabled": false, +"slice_85/save_to_file/keep_custom_tracks": false, +"slice_85/save_to_file/path": "", +"slice_85/start_frame": 0, +"slice_86/end_frame": 0, +"slice_86/loop_mode": 0, +"slice_86/name": "", +"slice_86/save_to_file/enabled": false, +"slice_86/save_to_file/keep_custom_tracks": false, +"slice_86/save_to_file/path": "", +"slice_86/start_frame": 0, +"slice_87/end_frame": 0, +"slice_87/loop_mode": 0, +"slice_87/name": "", +"slice_87/save_to_file/enabled": false, +"slice_87/save_to_file/keep_custom_tracks": false, +"slice_87/save_to_file/path": "", +"slice_87/start_frame": 0, +"slice_88/end_frame": 0, +"slice_88/loop_mode": 0, +"slice_88/name": "", +"slice_88/save_to_file/enabled": false, +"slice_88/save_to_file/keep_custom_tracks": false, +"slice_88/save_to_file/path": "", +"slice_88/start_frame": 0, +"slice_89/end_frame": 0, +"slice_89/loop_mode": 0, +"slice_89/name": "", +"slice_89/save_to_file/enabled": false, +"slice_89/save_to_file/keep_custom_tracks": false, +"slice_89/save_to_file/path": "", +"slice_89/start_frame": 0, +"slice_9/end_frame": 0, +"slice_9/loop_mode": 0, +"slice_9/name": "", +"slice_9/save_to_file/enabled": false, +"slice_9/save_to_file/keep_custom_tracks": false, +"slice_9/save_to_file/path": "", +"slice_9/start_frame": 0, +"slice_90/end_frame": 0, +"slice_90/loop_mode": 0, +"slice_90/name": "", +"slice_90/save_to_file/enabled": false, +"slice_90/save_to_file/keep_custom_tracks": false, +"slice_90/save_to_file/path": "", +"slice_90/start_frame": 0, +"slice_91/end_frame": 0, +"slice_91/loop_mode": 0, +"slice_91/name": "", +"slice_91/save_to_file/enabled": false, +"slice_91/save_to_file/keep_custom_tracks": false, +"slice_91/save_to_file/path": "", +"slice_91/start_frame": 0, +"slice_92/end_frame": 0, +"slice_92/loop_mode": 0, +"slice_92/name": "", +"slice_92/save_to_file/enabled": false, +"slice_92/save_to_file/keep_custom_tracks": false, +"slice_92/save_to_file/path": "", +"slice_92/start_frame": 0, +"slice_93/end_frame": 0, +"slice_93/loop_mode": 0, +"slice_93/name": "", +"slice_93/save_to_file/enabled": false, +"slice_93/save_to_file/keep_custom_tracks": false, +"slice_93/save_to_file/path": "", +"slice_93/start_frame": 0, +"slice_94/end_frame": 0, +"slice_94/loop_mode": 0, +"slice_94/name": "", +"slice_94/save_to_file/enabled": false, +"slice_94/save_to_file/keep_custom_tracks": false, +"slice_94/save_to_file/path": "", +"slice_94/start_frame": 0, +"slice_95/end_frame": 0, +"slice_95/loop_mode": 0, +"slice_95/name": "", +"slice_95/save_to_file/enabled": false, +"slice_95/save_to_file/keep_custom_tracks": false, +"slice_95/save_to_file/path": "", +"slice_95/start_frame": 0, +"slice_96/end_frame": 0, +"slice_96/loop_mode": 0, +"slice_96/name": "", +"slice_96/save_to_file/enabled": false, +"slice_96/save_to_file/keep_custom_tracks": false, +"slice_96/save_to_file/path": "", +"slice_96/start_frame": 0, +"slice_97/end_frame": 0, +"slice_97/loop_mode": 0, +"slice_97/name": "", +"slice_97/save_to_file/enabled": false, +"slice_97/save_to_file/keep_custom_tracks": false, +"slice_97/save_to_file/path": "", +"slice_97/start_frame": 0, +"slice_98/end_frame": 0, +"slice_98/loop_mode": 0, +"slice_98/name": "", +"slice_98/save_to_file/enabled": false, +"slice_98/save_to_file/keep_custom_tracks": false, +"slice_98/save_to_file/path": "", +"slice_98/start_frame": 0, +"slice_99/end_frame": 0, +"slice_99/loop_mode": 0, +"slice_99/name": "", +"slice_99/save_to_file/enabled": false, +"slice_99/save_to_file/keep_custom_tracks": false, +"slice_99/save_to_file/path": "", +"slice_99/start_frame": 0, +"slices/amount": null +} +}, +"materials": { +"player_glow": { +"use_external/enabled": true, +"use_external/path": "res://player/player_glow.tres" +}, +"player_gray": { +"use_external/enabled": true, +"use_external/path": "res://player/player_gray.tres" } } } diff --git a/3d/platformer/player/player.tscn b/3d/platformer/player/player.tscn index 5bc8daefa58..78c20d63c72 100644 --- a/3d/platformer/player/player.tscn +++ b/3d/platformer/player/player.tscn @@ -1,8 +1,8 @@ -[gd_scene load_steps=22 format=3 uid="uid://cc4idhykjp5f5"] +[gd_scene load_steps=28 format=3 uid="uid://cc4idhykjp5f5"] [ext_resource type="Script" path="res://player/player.gd" id="1"] [ext_resource type="Script" path="res://player/follow_camera.gd" id="2"] -[ext_resource type="PackedScene" uid="uid://b5ljbav3jdp61" path="res://player/player.glb" id="3_uccbe"] +[ext_resource type="PackedScene" uid="uid://yd1e7ai2k5cr" path="res://player/player.glb" id="3_uccbe"] [ext_resource type="Texture2D" uid="uid://kujhqacj3v72" path="res://player/controls/osb_up.png" id="4_lmv6w"] [ext_resource type="Texture2D" uid="uid://68sox6egj4j7" path="res://player/controls/osb_down.png" id="5_4oxdy"] [ext_resource type="Texture2D" uid="uid://r6qxvqi0unib" path="res://player/controls/osb_left.png" id="6_k2dm4"] @@ -15,7 +15,7 @@ radius = 0.4 height = 2.1 [sub_resource type="AnimationNodeAnimation" id="13"] -animation = &"walk" +animation = &"run" [sub_resource type="AnimationNodeAnimation" id="14"] animation = &"jump" @@ -26,6 +26,9 @@ animation = &"falling" [sub_resource type="AnimationNodeAnimation" id="16"] animation = &"shooting_standing" +[sub_resource type="AnimationNodeAnimation" id="AnimationNodeAnimation_jij26"] +animation = &"walk" + [sub_resource type="AnimationNodeAnimation" id="17"] animation = &"idle" @@ -35,8 +38,12 @@ animation = &"idle" filter_enabled = true filters = ["Skeleton/Skeleton3D:MASTER", "Skeleton/Skeleton3D:chest", "Skeleton/Skeleton3D:head", "Skeleton/Skeleton3D:headtracker", "Skeleton/Skeleton3D:hip", "Skeleton/Skeleton3D:l-arm", "Skeleton/Skeleton3D:l-forearm", "Skeleton/Skeleton3D:r-arm", "Skeleton/Skeleton3D:r-forearm", "Skeleton/Skeleton3D:vent", "Skeleton/Skeleton3D:waist"] +[sub_resource type="AnimationNodeBlend2" id="22"] + [sub_resource type="AnimationNodeTimeScale" id="20"] +[sub_resource type="AnimationNodeBlend2" id="AnimationNodeBlend2_lxtyk"] + [sub_resource type="AnimationNodeTransition" id="21"] enabled_inputs = 2 input_0/name = "on floor" @@ -44,12 +51,10 @@ input_0/auto_advance = false input_1/name = "in air" input_1/auto_advance = false -[sub_resource type="AnimationNodeBlend2" id="22"] - [sub_resource type="AnimationNodeBlendTree" id="23"] -graph_offset = Vector2(-188.795, -39.1622) +graph_offset = Vector2(-1070.57, -570.033) nodes/Animation/node = SubResource("17") -nodes/Animation/position = Vector2(-260, -280) +nodes/Animation/position = Vector2(-260, -400) "nodes/Animation 2/node" = SubResource("13") "nodes/Animation 2/position" = Vector2(-260, -160) "nodes/Animation 3/node" = SubResource("14") @@ -58,18 +63,46 @@ nodes/Animation/position = Vector2(-260, -280) "nodes/Animation 4/position" = Vector2(-260, 80) "nodes/Animation 5/node" = SubResource("16") "nodes/Animation 5/position" = Vector2(-260, 200) +"nodes/Animation 6/node" = SubResource("AnimationNodeAnimation_jij26") +"nodes/Animation 6/position" = Vector2(-260, -280) nodes/air_dir/node = SubResource("18") nodes/air_dir/position = Vector2(110, 20) nodes/gun/node = SubResource("19") nodes/gun/position = Vector2(680, 140) nodes/output/position = Vector2(880, 140) +nodes/run/node = SubResource("22") +nodes/run/position = Vector2(80, -260) nodes/scale/node = SubResource("20") -nodes/scale/position = Vector2(180, -120) +nodes/scale/position = Vector2(260, -120) +nodes/speed/node = SubResource("AnimationNodeBlend2_lxtyk") +nodes/speed/position = Vector2(-80, -200) nodes/state/node = SubResource("21") nodes/state/position = Vector2(440, 0) -nodes/walk/node = SubResource("22") -nodes/walk/position = Vector2(-40, -240) -node_connections = [&"output", 0, &"gun", &"air_dir", 0, &"Animation 3", &"air_dir", 1, &"Animation 4", &"gun", 0, &"state", &"gun", 1, &"Animation 5", &"scale", 0, &"walk", &"state", 0, &"scale", &"state", 1, &"air_dir", &"walk", 0, &"Animation", &"walk", 1, &"Animation 2"] +node_connections = [&"output", 0, &"gun", &"air_dir", 0, &"Animation 3", &"air_dir", 1, &"Animation 4", &"gun", 0, &"state", &"gun", 1, &"Animation 5", &"run", 0, &"Animation", &"run", 1, &"speed", &"scale", 0, &"run", &"speed", 0, &"Animation 6", &"speed", 1, &"Animation 2", &"state", 0, &"scale", &"state", 1, &"air_dir"] + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_basvh"] +streams_count = 1 +random_pitch = 1.03 +random_volume_offset_db = 0.0 +stream_0/stream = ExtResource("7") +stream_0/weight = 1.0 + +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_axa7i"] +streams_count = 1 +random_pitch = 1.03 +random_volume_offset_db = 0.0 +stream_0/stream = ExtResource("8") +stream_0/weight = 1.0 + +[sub_resource type="Gradient" id="Gradient_p2tu5"] +interpolation_mode = 2 +colors = PackedColorArray(0, 0, 0, 1, 0, 0, 0, 0) + +[sub_resource type="GradientTexture2D" id="GradientTexture2D_kvc1x"] +gradient = SubResource("Gradient_p2tu5") +fill = 1 +fill_from = Vector2(0.5, 0.5) +fill_to = Vector2(0.5, 0.01) [node name="Player" type="CharacterBody3D"] script = ExtResource("1") @@ -93,18 +126,63 @@ script = ExtResource("2") [node name="Skeleton3D" parent="Player/Skeleton" index="0"] bones/13/rotation = Quaternion(-0.000357303, 0.998602, 0.0504822, -0.0156872) +[node name="Robot" parent="Player/Skeleton/Skeleton3D" index="0"] +layers = 2 + [node name="Bullet" type="Marker3D" parent="Player/Skeleton" index="1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.94071, 3.6408, 3.3802) +[node name="CoinCount" type="Label3D" parent="Player/Skeleton" index="2"] +unique_name_in_owner = true +transform = Transform3D(-3.33333, 0, -2.91409e-07, 0, 3.33333, 0, 2.91409e-07, 0, -3.33333, 0, 7.51037, 0.531589) +double_sided = false +no_depth_test = true +modulate = Color(1, 0.8, 0.4, 1) +text = "123" +font_size = 48 + +[node name="Parallax" type="Label3D" parent="Player/Skeleton/CoinCount"] +transform = Transform3D(1, 0, 7.10543e-15, 0, 1, 0, -7.10543e-15, 0, 1, 0, 0, -0.01) +double_sided = false +no_depth_test = true +modulate = Color(0.8, 0.64, 0.32, 1) +text = "123" +font_size = 48 + +[node name="Parallax2" type="Label3D" parent="Player/Skeleton/CoinCount"] +transform = Transform3D(1, 0, 7.10543e-15, 0, 1, 0, -7.10543e-15, 0, 1, 0, 0, -0.02) +double_sided = false +no_depth_test = true +modulate = Color(0.6, 0.48, 0.24, 1) +text = "123" +font_size = 48 + +[node name="Parallax3" type="Label3D" parent="Player/Skeleton/CoinCount"] +transform = Transform3D(1, 0, 7.10543e-15, 0, 1, 0, -7.10543e-15, 0, 1, 0, 0, -0.03) +double_sided = false +no_depth_test = true +modulate = Color(0.4, 0.318667, 0.156, 1) +text = "123" +font_size = 48 + +[node name="Parallax4" type="Label3D" parent="Player/Skeleton/CoinCount"] +transform = Transform3D(1, 0, 7.10543e-15, 0, 1, 0, -7.10543e-15, 0, 1, 0, 0, -0.04) +double_sided = false +no_depth_test = true +modulate = Color(0.2, 0.159333, 0.078, 1) +text = "123" +font_size = 48 + [node name="AnimationTree" type="AnimationTree" parent="."] tree_root = SubResource("23") anim_player = NodePath("../Player/AnimationPlayer") active = true parameters/air_dir/blend_amount = 0.0 parameters/gun/blend_amount = 0.0 +parameters/run/blend_amount = 0.0 parameters/scale/scale = 1.5 +parameters/speed/blend_amount = 0 parameters/state/current = 0 -parameters/walk/blend_amount = 0.0 [node name="Forward" type="TouchScreenButton" parent="."] visible = false @@ -142,10 +220,18 @@ passby_press = true action = "move_right" visibility_mode = 1 -[node name="SoundShoot" type="AudioStreamPlayer3D" parent="."] -stream = ExtResource("7") +[node name="SoundShoot" type="AudioStreamPlayer" parent="."] +stream = SubResource("AudioStreamRandomizer_basvh") + +[node name="SoundJump" type="AudioStreamPlayer" parent="."] +stream = SubResource("AudioStreamRandomizer_axa7i") +volume_db = -6.0 -[node name="SoundJump" type="AudioStreamPlayer3D" parent="."] -stream = ExtResource("8") +[node name="BlobShadow" type="Decal" parent="."] +extents = Vector3(0.8, 6, 0.8) +texture_albedo = SubResource("GradientTexture2D_kvc1x") +upper_fade = 3.99999 +lower_fade = 1.0 +cull_mask = 1048573 [editable path="Player"] diff --git a/3d/platformer/player/player_glow.tres b/3d/platformer/player/player_glow.tres new file mode 100644 index 00000000000..d2c64dbfeef --- /dev/null +++ b/3d/platformer/player/player_glow.tres @@ -0,0 +1,11 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://be3ssftlblkjn"] + +[resource] +resource_name = "player_glow" +vertex_color_use_as_albedo = true +albedo_color = Color(0.5, 1.25, 1.75, 1) +roughness = 0.3 +emission_enabled = true +distance_fade_mode = 2 +distance_fade_min_distance = 1.0 +distance_fade_max_distance = 2.0 diff --git a/3d/platformer/player/player_gray.tres b/3d/platformer/player/player_gray.tres new file mode 100644 index 00000000000..b29691ddd95 --- /dev/null +++ b/3d/platformer/player/player_gray.tres @@ -0,0 +1,11 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://cmvnecqga07e5"] + +[resource] +resource_name = "player_gray" +vertex_color_use_as_albedo = true +albedo_color = Color(0.665185, 0.665185, 0.665185, 1) +metallic = 1.0 +roughness = 0.8 +distance_fade_mode = 2 +distance_fade_min_distance = 1.0 +distance_fade_max_distance = 2.0 diff --git a/3d/platformer/project.godot b/3d/platformer/project.godot index a066f5d11d4..e9482b560a9 100644 --- a/3d/platformer/project.godot +++ b/3d/platformer/project.godot @@ -33,10 +33,6 @@ run/main_scene="res://game.tscn" config/features=PackedStringArray("4.0") config/icon="res://icon.png" -[gdnative] - -singletons=[] - [input] ui_accept={ @@ -104,57 +100,69 @@ ui_page_down={ ] } move_forward={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null) ] } move_back={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) ] } move_left={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) ] } move_right={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) ] } jump={ "deadzone": 0.5, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } shoot={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"unicode":0,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null) +] +} +reset_position={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } - -[memory] - -multithread/thread_rid_pool_prealloc=60 [physics] -3d/default_gravity=14.0 +common/physics_ticks_per_second=120 +3d/default_gravity=22.0 [rendering] -anti_aliasing/quality/screen_space_aa=1 +lights_and_shadows/directional_shadow/size=8192 +lights_and_shadows/directional_shadow/soft_shadow_filter_quality=3 +lights_and_shadows/positional_shadow/soft_shadow_filter_quality=0 +textures/default_filters/anisotropic_filtering_level=4 +textures/decals/filter=1 +anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true +lights_and_shadows/positional_shadow/atlas_size=512 +lights_and_shadows/positional_shadow/atlas_size.mobile=256 diff --git a/3d/platformer/screenshots/face.png b/3d/platformer/screenshots/face.png deleted file mode 100644 index 9f5295ffa6b..00000000000 Binary files a/3d/platformer/screenshots/face.png and /dev/null differ diff --git a/3d/platformer/screenshots/platformer.webp b/3d/platformer/screenshots/platformer.webp new file mode 100644 index 00000000000..60e9267ea24 Binary files /dev/null and b/3d/platformer/screenshots/platformer.webp differ diff --git a/3d/platformer/screenshots/shoot.png b/3d/platformer/screenshots/shoot.png deleted file mode 100644 index 9720ea4b7d3..00000000000 Binary files a/3d/platformer/screenshots/shoot.png and /dev/null differ diff --git a/3d/platformer/stage/panorama.png.import b/3d/platformer/stage/panorama.png.import index 4914b837b98..71b85976588 100644 --- a/3d/platformer/stage/panorama.png.import +++ b/3d/platformer/stage/panorama.png.import @@ -3,21 +3,19 @@ importer="texture" type="CompressedTexture2D" uid="uid://qdur4kpvvtdg" -path.s3tc="res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.s3tc.ctex" -path.etc2="res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.etc2.ctex" +path="res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.ctex" metadata={ -"imported_formats": ["s3tc", "etc2"], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://stage/panorama.png" -dest_files=["res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.s3tc.ctex", "res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.etc2.ctex"] +dest_files=["res://.godot/imported/panorama.png-831ab5eba634fd570693d2002d1da17a.ctex"] [params] -compress/mode=2 +compress/mode=0 compress/lossy_quality=0.85 compress/hdr_compression=1 compress/bptc_ldr=0 diff --git a/3d/platformer/stage/stage.tscn b/3d/platformer/stage/stage.tscn index 596714dcb97..3662c4317b1 100644 --- a/3d/platformer/stage/stage.tscn +++ b/3d/platformer/stage/stage.tscn @@ -7,6 +7,10 @@ [node name="Stage" type="Node3D"] [node name="GridMap" parent="." instance=ExtResource("1_t0f53")] +data = { +"cells": PackedInt32Array(3, 0, 1048579, 12, 0, 1441795, 38, 0, 1048584, 65534, 0, 1441800, 65539, 0, 1048584, 65548, 0, 1441800, 65555, 0, 1048579, 65556, 0, 1048583, 65557, 0, 1048583, 65558, 0, 1048583, 65559, 0, 1048583, 65560, 0, 1048583, 65561, 0, 7, 65562, 0, 7, 65563, 0, 7, 65564, 0, 7, 65565, 0, 7, 65566, 0, 7, 65567, 0, 7, 65568, 0, 7, 65569, 0, 7, 65570, 0, 7, 65571, 0, 7, 65572, 0, 7, 65573, 0, 7, 65574, 0, 1048582, 131070, 0, 1441800, 131075, 0, 1048578, 131084, 0, 1441800, 131091, 0, 1048578, 196606, 0, 1441800, 196611, 0, 1048578, 196620, 0, 1441800, 196627, 0, 1048584, 262142, 0, 1441800, 262147, 0, 1048578, 262156, 0, 1441800, 262163, 0, 1048584, 327678, 0, 1441795, 327683, 0, 1048584, 327692, 0, 1441794, 327699, 0, 1048584, 393214, 0, 1441800, 393219, 0, 1048584, 393228, 0, 1441794, 393235, 0, 1048584, 458750, 0, 1441800, 458752, 0, 1441799, 458753, 0, 1441799, 458754, 0, 1441799, 458755, 0, 1048582, 458764, 0, 1441794, 458771, 0, 1048584, 524286, 0, 1441798, 524287, 0, 1441799, 524300, 0, 1441798, 524301, 0, 1048583, 524302, 0, 1048583, 524303, 0, 1048583, 524304, 0, 1048583, 524305, 0, 1048583, 524306, 0, 1048583, 524307, 0, 1048582, -65533, 0, 1048579, -65524, 0, 1441795, 3, 1, 1048579, 12, 1, 1441795, 29, 1, 8, 30, 1, 8, 31, 1, 8, 38, 1, 1048584, 65534, 1, 1441800, 65539, 1, 1048584, 65548, 1, 1441800, 65555, 1, 1048579, 65556, 1, 655367, 65557, 1, 655367, 65558, 1, 655367, 65559, 1, 655367, 65560, 1, 655367, 65561, 1, 655367, 65562, 1, 655367, 65563, 1, 1441799, 65564, 1, 6, 65565, 1, 6, 65566, 1, 6, 65567, 1, 6, 65568, 1, 6, 65569, 1, 7, 65570, 1, 7, 65571, 1, 7, 65572, 1, 1048583, 65573, 1, 7, 65574, 1, 1048582, 131070, 1, 1441800, 131075, 1, 1048578, 131084, 1, 1441800, 131091, 1, 1048584, 196606, 1, 1441794, 196611, 1, 1048578, 196620, 1, 1441800, 196627, 1, 1048584, 262142, 1, 1441800, 262147, 1, 1048578, 262156, 1, 1441800, 262163, 1, 1048584, 327678, 1, 1441800, 327683, 1, 1048584, 327692, 1, 1441794, 327699, 1, 1048584, 393214, 1, 1441800, 393219, 1, 1048584, 393228, 1, 1441794, 393235, 1, 1048584, 458750, 1, 1441794, 458752, 1, 655367, 458753, 1, 1441799, 458754, 1, 1441799, 458755, 1, 1048582, 458764, 1, 1441794, 458771, 1, 1048584, 524286, 1, 1441798, 524287, 1, 1441799, 524300, 1, 1441798, 524301, 1, 1048583, 524302, 1, 1048583, 524303, 1, 1048583, 524304, 1, 1048583, 524305, 1, 1048583, 524306, 1, 1048583, 524307, 1, 1048582, -65533, 1, 1048579, -65524, 1, 1441795, -65507, 1, 3, -65506, 1, 3, -65505, 1, 3, 3, 2, 1048579, 5, 2, 1441799, 8, 2, 1441796, 9, 2, 655363, 10, 2, 655363, 11, 2, 655363, 12, 2, 1441800, 28, 2, 1048584, 38, 2, 1048584, 65534, 2, 1441800, 65539, 2, 1048584, 65544, 2, 1441797, 65545, 2, 655366, 65546, 2, 655366, 65547, 2, 655366, 65548, 2, 1441800, 65555, 2, 1048584, 65556, 2, 655363, 65557, 2, 655363, 65558, 2, 655363, 65559, 2, 655363, 65560, 2, 655363, 65561, 2, 655363, 65562, 2, 655363, 65563, 2, 655363, 65564, 2, 655369, 65569, 2, 1441798, 65570, 2, 7, 65571, 2, 7, 65572, 2, 1048583, 65573, 2, 7, 65574, 2, 1048582, 131070, 2, 1441800, 131075, 2, 1048578, 131084, 2, 1441800, 131091, 2, 1048584, 131092, 2, 655368, 131093, 2, 655368, 131094, 2, 655368, 131095, 2, 655368, 131096, 2, 655368, 131097, 2, 655368, 131098, 2, 655368, 131099, 2, 655368, 131100, 2, 655369, 196606, 2, 1441800, 196611, 2, 1048578, 196620, 2, 1441800, 196627, 2, 1048579, 196628, 2, 655366, 196629, 2, 655366, 196630, 2, 655366, 196631, 2, 655366, 196632, 2, 655366, 196633, 2, 655366, 196634, 2, 655366, 196635, 2, 655366, 196636, 2, 655365, 262142, 2, 1441800, 262147, 2, 1048578, 262156, 2, 1441800, 262163, 2, 1048584, 327678, 2, 1441794, 327683, 2, 1048584, 327692, 2, 1441794, 327699, 2, 1048584, 393214, 2, 1441794, 393219, 2, 1048584, 393228, 2, 1441794, 393235, 2, 1048584, 458750, 2, 1441800, 458752, 2, 1441799, 458753, 2, 1441799, 458754, 2, 1441799, 458755, 2, 1048582, 458764, 2, 1441794, 458771, 2, 1048584, 524286, 2, 1441798, 524287, 2, 1441799, 524300, 2, 1441798, 524301, 2, 1048583, 524302, 2, 1048583, 524303, 2, 1048583, 524304, 2, 1048583, 524305, 2, 1048583, 524306, 2, 1048583, 524307, 2, 1048582, -65533, 2, 1048579, -65528, 2, 1441796, -65527, 2, 655363, -65526, 2, 655363, -65525, 2, 655363, -65524, 2, 1441800, -65508, 2, 1048579, -65507, 2, 1441799, -65506, 2, 1441799, -65505, 2, 1441799, 3, 3, 1048579, 5, 3, 1048581, 8, 3, 9, 9, 3, 8, 10, 3, 8, 11, 3, 8, 12, 3, 1441800, 28, 3, 1048585, 33, 3, 1441800, 38, 3, 1048584, 65534, 3, 1441800, 65539, 3, 1048584, 65544, 3, 5, 65545, 3, 6, 65546, 3, 6, 65547, 3, 6, 65548, 3, 1441800, 65555, 3, 1048584, 65564, 3, 1048585, 65569, 3, 1441798, 65570, 3, 7, 65571, 3, 7, 65572, 3, 1048583, 65573, 3, 7, 65574, 3, 1048582, 131070, 3, 1441800, 131075, 3, 1048578, 131084, 3, 1441800, 131091, 3, 1048584, 131100, 3, 1048585, 196606, 3, 1441800, 196611, 3, 1048578, 196620, 3, 1441800, 196627, 3, 1048584, 196628, 3, 655363, 196629, 3, 655363, 196630, 3, 655363, 196631, 3, 655363, 196632, 3, 655363, 196633, 3, 655363, 196634, 3, 655363, 196635, 3, 655364, 196636, 3, 1048581, 262142, 3, 1441800, 262147, 3, 1048578, 262156, 3, 1441800, 262163, 3, 1048579, 262164, 3, 655366, 262165, 3, 655366, 262166, 3, 655366, 262167, 3, 655366, 262168, 3, 655366, 262169, 3, 655366, 262170, 3, 655366, 262171, 3, 655365, 327678, 3, 1441795, 327683, 3, 1048584, 327692, 3, 1441794, 327699, 3, 1048584, 393214, 3, 1441800, 393219, 3, 1048584, 393228, 3, 1441794, 393235, 3, 1048584, 458750, 3, 1441800, 458752, 3, 1441799, 458753, 3, 1441799, 458754, 3, 1441799, 458755, 3, 1048582, 458764, 3, 1441794, 458771, 3, 1048578, 524286, 3, 1441798, 524287, 3, 655367, 524300, 3, 1441798, 524301, 3, 1048583, 524302, 3, 1048583, 524303, 3, 1048583, 524304, 3, 1048583, 524305, 3, 1048583, 524306, 3, 1048583, 524307, 3, 1048582, -65533, 3, 1048579, -65528, 3, 4, -65527, 3, 3, -65526, 3, 3, -65525, 3, 3, -65524, 3, 1441800, -65508, 3, 1048580, -65507, 3, 1441799, -65506, 3, 1441799, -65505, 3, 1441799, -65504, 3, 1441799, -65503, 3, 1441795, 12, 4, 1441800, 27, 4, 1048584, 38, 4, 1048584, 65534, 4, 1441800, 65548, 4, 1441800, 65563, 4, 1048584, 65570, 4, 1441798, 65571, 4, 7, 65572, 4, 1048583, 65573, 4, 7, 65574, 4, 1048582, 131070, 4, 1441800, 131075, 4, 1048578, 131084, 4, 9, 131085, 4, 3, 131086, 4, 3, 131087, 4, 3, 131088, 4, 3, 131089, 4, 3, 131090, 4, 3, 131099, 4, 1048584, 196606, 4, 1441800, 196611, 4, 1048578, 196620, 4, 9, 196621, 4, 8, 196622, 4, 8, 196623, 4, 8, 196624, 4, 8, 196625, 4, 8, 196626, 4, 8, 196628, 4, 655368, 196629, 4, 655368, 196630, 4, 655368, 196631, 4, 655368, 196632, 4, 655368, 196635, 4, 1048584, 262142, 4, 1441800, 262147, 4, 1048578, 262156, 4, 1441806, 262164, 4, 655363, 262165, 4, 655363, 262166, 4, 655363, 262167, 4, 655363, 262168, 4, 655363, 262169, 4, 655363, 262170, 4, 655364, 262171, 4, 1048582, 327678, 4, 1441795, 327680, 4, 3, 327681, 4, 3, 327682, 4, 3, 327683, 4, 1048585, 327692, 4, 9, 327693, 4, 3, 327694, 4, 3, 327695, 4, 3, 327696, 4, 3, 327697, 4, 3, 327700, 4, 655368, 327701, 4, 655368, 327702, 4, 655368, 327703, 4, 655368, 327704, 4, 655368, 327705, 4, 655368, 327706, 4, 655369, 393214, 4, 1441800, 393216, 4, 8, 393217, 4, 8, 393218, 4, 8, 393219, 4, 1048585, 393228, 4, 9, 393229, 4, 2, 393230, 4, 2, 393231, 4, 2, 393232, 4, 2, 393233, 4, 2, 393236, 4, 655368, 393237, 4, 655368, 393238, 4, 655368, 393239, 4, 655368, 393240, 4, 655368, 393241, 4, 655368, 393242, 4, 655369, 458750, 4, 1441800, 458752, 4, 6, 458753, 4, 6, 458754, 4, 6, 458755, 4, 1048581, 458764, 4, 1441806, 458771, 4, 1048579, 458772, 4, 655366, 458773, 4, 655366, 458774, 4, 655366, 458775, 4, 655366, 458776, 4, 655366, 458777, 4, 655366, 458778, 4, 655365, 524286, 4, 1441798, 524287, 4, 1048583, 524300, 4, 1441798, 524301, 4, 1048583, 524302, 4, 1048583, 524303, 4, 1048583, 524304, 4, 1048583, 524305, 4, 1048583, 524306, 4, 1048583, 524307, 4, 1048582, -65533, 4, 1048579, -65532, 4, 655363, -65531, 4, 655364, -65530, 4, 7, -65529, 4, 7, -65528, 4, 1441799, -65527, 4, 1441799, -65526, 4, 1441799, -65525, 4, 1441799, -65524, 4, 1441800, -65509, 4, 1048579, -65508, 4, 1441799, -65507, 4, 1441799, -65506, 4, 1441799, -65505, 4, 1441796, -65504, 4, 655363, 11, 5, 1441801, 27, 5, 1048584, 34, 5, 8, 38, 5, 1048584, 65534, 5, 1441800, 65538, 5, 3, 65539, 5, 1048580, 65547, 5, 1441801, 65563, 5, 1048584, 65570, 5, 6, 65571, 5, 7, 65572, 5, 7, 65573, 5, 7, 65574, 5, 1048582, 131070, 5, 1441800, 131074, 5, 2, 131075, 5, 1048585, 131083, 5, 1441797, 131084, 5, 7, 131085, 5, 7, 131086, 5, 7, 131087, 5, 7, 131088, 5, 7, 131089, 5, 7, 131090, 5, 7, 131091, 5, 1441795, 131099, 5, 1048584, 196606, 5, 1441800, 196610, 5, 2, 196611, 5, 1048585, 196627, 5, 1441800, 196635, 5, 1048584, 262142, 5, 1441795, 262146, 5, 2, 262147, 5, 1048585, 262156, 5, 1441806, 262157, 5, 1, 262158, 5, 1, 262159, 5, 1, 262160, 5, 1, 262161, 5, 655361, 262162, 5, 655361, 262170, 5, 1048579, 262171, 5, 1048582, 327678, 5, 1441800, 327680, 5, 1048583, 327682, 5, 6, 327683, 5, 1048581, 327692, 5, 1441798, 327693, 5, 7, 327695, 5, 7, 327696, 5, 7, 327697, 5, 1048583, 327698, 5, 1441795, 327706, 5, 1048584, 393214, 5, 1441800, 393215, 5, 1048579, 393234, 5, 1441794, 393242, 5, 1048584, 458750, 5, 1441800, 458751, 5, 1048584, 458764, 5, 1441806, 458765, 5, 655361, 458766, 5, 655361, 458767, 5, 655361, 458768, 5, 655361, 458769, 5, 655361, 458771, 5, 1048579, 458772, 5, 1048583, 458773, 5, 1048583, 458774, 5, 1048583, 458775, 5, 1048583, 458776, 5, 1048583, 458777, 5, 1048583, 458778, 5, 1048582, 524286, 5, 1441798, 524287, 5, 1048582, 524300, 5, 1441798, 524301, 5, 1441799, 524302, 5, 1441799, 524303, 5, 1441799, 524304, 5, 1441799, 524305, 5, 1441799, 524306, 5, 1441799, 524307, 5, 1048582, -65533, 5, 1048579, -65532, 5, 655364, -65531, 5, 1048579, -65530, 5, 7, -65529, 5, 1048583, -65528, 5, 1441799, -65527, 5, 1441799, -65526, 5, 1441799, -65525, 5, 1441796, -65509, 5, 1048579, -65508, 5, 1441799, -65507, 5, 1441799, -65506, 5, 1441799, -65505, 5, 4, -65504, 5, 8, -65503, 5, 8, 2, 6, 655368, 3, 6, 655368, 11, 6, 1441794, 27, 6, 1048584, 35, 6, 1441800, 38, 6, 1048584, 65534, 6, 1441800, 65537, 6, 1048579, 65538, 6, 655366, 65539, 6, 655366, 65540, 6, 1048582, 65547, 6, 1441794, 65563, 6, 1048584, 65571, 6, 1441798, 65572, 6, 7, 65573, 6, 7, 65574, 6, 1048582, 131070, 6, 1441800, 131073, 6, 1048584, 131083, 6, 1441798, 131084, 6, 7, 131085, 6, 7, 131086, 6, 7, 131087, 6, 7, 131088, 6, 7, 131089, 6, 7, 131090, 6, 7, 131091, 6, 1441795, 131099, 6, 1048584, 196606, 6, 1441800, 196609, 6, 1048584, 196627, 6, 1441800, 196635, 6, 1048584, 262142, 6, 1441795, 262145, 6, 1048584, 262156, 6, 1441806, 262157, 6, 1, 262158, 6, 1, 262159, 6, 1, 262160, 6, 1, 262161, 6, 655361, 262162, 6, 655361, 262170, 6, 1048579, 262171, 6, 1048582, 327678, 6, 1441794, 327680, 6, 1441799, 327681, 6, 1048582, 327692, 6, 1441798, 327693, 6, 7, 327695, 6, 7, 327696, 6, 7, 327697, 6, 1048583, 327698, 6, 1441795, 327706, 6, 1048584, 393214, 6, 1441800, 393215, 6, 1048579, 393234, 6, 1441794, 393242, 6, 1048584, 458750, 6, 1441800, 458751, 6, 1048584, 458764, 6, 1441806, 458765, 6, 655361, 458766, 6, 655361, 458767, 6, 655361, 458768, 6, 655361, 458769, 6, 655361, 458771, 6, 1048579, 458772, 6, 1048583, 458773, 6, 1048583, 458774, 6, 1048583, 458775, 6, 1048583, 458776, 6, 1048583, 458777, 6, 1048583, 458778, 6, 1048582, 524286, 6, 1441798, 524287, 6, 1048582, 524300, 6, 1441798, 524301, 6, 1441799, 524302, 6, 1441799, 524303, 6, 1441799, 524304, 6, 1441799, 524305, 6, 1441799, 524306, 6, 1441799, 524307, 6, 1048582, -65534, 6, 655363, -65533, 6, 655363, -65531, 6, 1048579, -65530, 6, 655367, -65529, 6, 1048583, -65528, 6, 7, -65527, 6, 1441799, -65526, 6, 1441799, -65525, 6, 1441795, -65509, 6, 1048579, -65508, 6, 1441799, -65507, 6, 1441799, -65506, 6, 1441799, -65504, 6, 655375, -65501, 6, 1441795, 4, 7, 1048584, 6, 7, 11, 11, 7, 9, 27, 7, 1048584, 35, 7, 1441800, 39, 7, 655369, 65534, 7, 1441800, 65537, 7, 1048579, 65538, 7, 1441799, 65539, 7, 1441799, 65540, 7, 1048582, 65542, 7, 12, 65547, 7, 9, 65563, 7, 1048584, 65571, 7, 1441798, 65572, 7, 7, 65573, 7, 7, 65574, 7, 7, 65575, 7, 655365, 131070, 7, 1441800, 131073, 7, 1048584, 131078, 7, 1441804, 131083, 7, 5, 131084, 7, 7, 131085, 7, 1441796, 131086, 7, 655363, 131087, 7, 655363, 131088, 7, 655364, 131089, 7, 7, 131090, 7, 7, 131091, 7, 1441795, 131099, 7, 1048584, 196606, 7, 1441800, 196609, 7, 1048584, 196614, 7, 13, 196621, 7, 1441801, 196622, 7, 655362, 196623, 7, 655362, 196624, 7, 655369, 196627, 7, 1441800, 196635, 7, 1048584, 262142, 7, 1441795, 262145, 7, 1048584, 262156, 7, 1441806, 262157, 7, 1441806, 262158, 7, 1, 262159, 7, 1, 262160, 7, 1, 262161, 7, 655361, 262162, 7, 655361, 262170, 7, 1048579, 262171, 7, 1048582, 327678, 7, 1441800, 327680, 7, 1441799, 327681, 7, 1048582, 327692, 7, 1441801, 327693, 7, 655363, 327694, 7, 655363, 327695, 7, 655363, 327696, 7, 655364, 327697, 7, 1048583, 327698, 7, 1441795, 327706, 7, 1048584, 393214, 7, 1441800, 393215, 7, 1048579, 393228, 7, 1441801, 393229, 7, 655368, 393230, 7, 655368, 393231, 7, 655368, 393232, 7, 655369, 393234, 7, 1441794, 393242, 7, 1048584, 458750, 7, 1441800, 458751, 7, 1048584, 458764, 7, 1441806, 458768, 7, 655361, 458769, 7, 655361, 458771, 7, 1048579, 458772, 7, 1048583, 458773, 7, 1048583, 458774, 7, 1048583, 458775, 7, 1048583, 458776, 7, 1048583, 458777, 7, 1048583, 458778, 7, 1048582, 524286, 7, 1441798, 524287, 7, 1048582, 524300, 7, 1441798, 524301, 7, 1441799, 524302, 7, 1441799, 524303, 7, 1441799, 524304, 7, 1441799, 524305, 7, 1441799, 524306, 7, 1441799, 524307, 7, 1048582, -65532, 7, 1048579, -65531, 7, 1048580, -65530, 7, 10, -65529, 7, 1441799, -65528, 7, 1441799, -65527, 7, 1441799, -65526, 7, 1441799, -65525, 7, 4, -65509, 7, 1048579, -65508, 7, 1441799, -65507, 7, 1441799, -65504, 7, 655375, -65501, 7, 1441795, 2, 8, 3, 3, 8, 3, 4, 8, 1048585, 12, 8, 1441800, 27, 8, 1048584, 35, 8, 1441800, 40, 8, 655369, 65534, 8, 1441800, 65537, 8, 1048579, 65538, 8, 6, 65539, 8, 6, 65540, 8, 1048581, 65548, 8, 1441800, 65563, 8, 1048584, 65571, 8, 1441798, 65572, 8, 7, 65573, 8, 7, 65574, 8, 7, 65575, 8, 7, 65576, 8, 655365, 131070, 8, 1441800, 131073, 8, 1048584, 131084, 8, 1441801, 131088, 8, 1048579, 131089, 8, 7, 131090, 8, 7, 131091, 8, 1441795, 131099, 8, 1048584, 196606, 8, 1441800, 196609, 8, 1048584, 196620, 8, 1441801, 196624, 8, 1048584, 196627, 8, 1441800, 196635, 8, 1048584, 262142, 8, 1441800, 262145, 8, 1048584, 262161, 8, 655361, 262162, 8, 655361, 262170, 8, 1048579, 262171, 8, 1048582, 327678, 8, 1441800, 327680, 8, 1441799, 327681, 8, 1048582, 327692, 8, 1441800, 327695, 8, 3, 327696, 8, 1048580, 327697, 8, 1048583, 327698, 8, 1441795, 327706, 8, 1048584, 393214, 8, 1441794, 393215, 8, 1048579, 393228, 8, 1441800, 393231, 8, 8, 393232, 8, 1048585, 393234, 8, 1441794, 393242, 8, 1048584, 458750, 8, 1441800, 458751, 8, 1048584, 458764, 8, 9, 458769, 8, 655361, 458771, 8, 1048579, 458772, 8, 1048583, 458773, 8, 1048583, 458774, 8, 1048583, 458775, 8, 1048583, 458776, 8, 1048583, 458777, 8, 1048583, 458778, 8, 1048582, 524286, 8, 1441798, 524287, 8, 1048582, 524300, 8, 5, 524301, 8, 1441799, 524302, 8, 1441799, 524303, 8, 1441799, 524304, 8, 1441799, 524305, 8, 1441799, 524306, 8, 1441799, 524307, 8, 1048582, -65534, 8, 3, -65533, 8, 3, -65532, 8, 1048580, -65531, 8, 655367, -65530, 8, 655367, -65529, 8, 655367, -65528, 8, 1441799, -65527, 8, 1441799, -65526, 8, 1441799, -65525, 8, 655367, -65524, 8, 1441795, -65509, 8, 1048579, -65508, 8, 1441799, -65507, 8, 1441799, -65506, 8, 1441799, -65505, 8, 1441796, -65504, 8, 655368, -65503, 8, 655368, -65501, 8, 1441795, 1, 9, 1048579, 2, 9, 6, 3, 9, 1048581, 8, 9, 11, 12, 9, 1441800, 27, 9, 1048584, 35, 9, 1441800, 40, 9, 1048584, 65534, 9, 1441800, 65537, 9, 1048578, 65544, 9, 12, 65548, 9, 1441800, 65563, 9, 1048584, 65571, 9, 1441796, 65572, 9, 655363, 65573, 9, 655363, 65574, 9, 655363, 65575, 9, 655363, 65576, 9, 655364, 131070, 9, 1441800, 131073, 9, 1048578, 131080, 9, 1048588, 131084, 9, 1441800, 131088, 9, 1048579, 131089, 9, 7, 131090, 9, 7, 131091, 9, 1441795, 131099, 9, 1048584, 131107, 9, 1441797, 131108, 9, 655366, 131109, 9, 655366, 131110, 9, 655366, 131111, 9, 655366, 131112, 9, 655365, 196606, 9, 1441794, 196609, 9, 1048578, 196616, 9, 1048588, 196620, 9, 1441800, 196624, 9, 1048584, 196627, 9, 1441800, 196635, 9, 1048584, 262142, 9, 1441800, 262145, 9, 1048578, 262152, 9, 1048589, 262156, 9, 1441800, 262161, 9, 655361, 262162, 9, 655361, 262169, 9, 3, 262170, 9, 1048580, 262171, 9, 1048582, 327678, 9, 1441800, 327680, 9, 655363, 327681, 9, 655369, 327682, 9, 1048592, 327692, 9, 1441800, 327694, 9, 1048579, 327695, 9, 1441799, 327696, 9, 1441799, 327697, 9, 1441799, 327698, 9, 1441795, 327705, 9, 8, 327706, 9, 1048585, 393214, 9, 1441800, 393216, 9, 655368, 393217, 9, 655369, 393228, 9, 1441800, 393230, 9, 1048584, 393234, 9, 1441794, 393241, 9, 8, 393242, 9, 1048585, 458750, 9, 1441800, 458752, 9, 655366, 458753, 9, 655365, 458764, 9, 1441798, 458765, 9, 1441795, 458767, 9, 655361, 458768, 9, 655361, 458769, 9, 655361, 458771, 9, 1048579, 458772, 9, 1048583, 458773, 9, 1048583, 458774, 9, 1048583, 458775, 9, 1048583, 458776, 9, 1048583, 458777, 9, 6, 458778, 9, 1048581, 524286, 9, 1441798, 524287, 9, 655367, 524301, 9, 1441798, 524302, 9, 1441799, 524303, 9, 1441799, 524304, 9, 1441799, 524305, 9, 1441799, 524306, 9, 1441799, 524307, 9, 1048582, -65535, 9, 1048584, -65534, 9, 3, -65533, 9, 1048580, -65532, 9, 7, -65531, 9, 7, -65530, 9, 7, -65529, 9, 7, -65528, 9, 10, -65527, 9, 1441799, -65526, 9, 1441799, -65525, 9, 655367, -65524, 9, 1441795, -65509, 9, 1048579, -65508, 9, 1441799, -65507, 9, 1441799, -65506, 9, 1441799, -65505, 9, 4, -65504, 9, 3, -65503, 9, 3, -65502, 9, 3, -65501, 9, 1441795, 1, 10, 1048578, 12, 10, 1441800, 26, 10, 8, 27, 10, 1048585, 35, 10, 1441800, 40, 10, 1048584, 65534, 10, 1441800, 65537, 10, 1048578, 65548, 10, 1441800, 65561, 10, 3, 65562, 10, 3, 65563, 10, 1048585, 65571, 10, 1441800, 65576, 10, 1048584, 131070, 10, 1441800, 131073, 10, 1048578, 131084, 10, 1441800, 131088, 10, 1048580, 131089, 10, 1048583, 131090, 10, 1048583, 131091, 10, 4, 131097, 10, 8, 131098, 10, 8, 131099, 10, 1048585, 131106, 10, 1441809, 131107, 10, 1441801, 131108, 10, 655363, 131109, 10, 655363, 131110, 10, 655363, 131111, 10, 655363, 131112, 10, 655364, 196606, 10, 1441800, 196609, 10, 1048578, 196620, 10, 1441800, 196624, 10, 1048585, 196627, 10, 9, 196633, 10, 8, 196634, 10, 8, 196635, 10, 1048585, 196643, 10, 1441797, 196644, 10, 655366, 196645, 10, 655366, 196646, 10, 655366, 196647, 10, 655366, 196648, 10, 655365, 262142, 10, 1441795, 262145, 10, 1048578, 262156, 10, 1441800, 262161, 10, 1, 262162, 10, 1, 262168, 10, 1048579, 262169, 10, 6, 262170, 10, 6, 262171, 10, 1048581, 327678, 10, 1441800, 327681, 10, 1048578, 327692, 10, 1441800, 327694, 10, 1048579, 327695, 10, 1441799, 327696, 10, 1441796, 327697, 10, 655363, 327704, 10, 1048584, 393214, 10, 1441800, 393217, 10, 1048584, 393228, 10, 1441800, 393230, 10, 1048584, 393232, 10, 1441801, 393233, 10, 655362, 393240, 10, 1048584, 458750, 10, 1441800, 458752, 10, 6, 458753, 10, 1048582, 458764, 10, 1441798, 458765, 10, 4, 458766, 10, 3, 458767, 10, 14, 458768, 10, 14, 458769, 10, 3, 458770, 10, 3, 458771, 10, 1048580, 458772, 10, 1048583, 458773, 10, 1048583, 458774, 10, 1048583, 458775, 10, 1048583, 458776, 10, 1048582, 524286, 10, 1441798, 524287, 10, 655367, 524301, 10, 5, 524302, 10, 6, 524303, 10, 6, 524304, 10, 6, 524305, 10, 6, 524306, 10, 6, 524307, 10, 1048581, -65535, 10, 1048579, -65534, 10, 1048583, -65533, 10, 7, -65532, 10, 7, -65531, 10, 7, -65530, 10, 7, -65529, 10, 7, -65528, 10, 655367, -65527, 10, 655367, -65526, 10, 655367, -65525, 10, 655367, -65524, 10, 1441795, -65511, 10, 3, -65510, 10, 3, -65509, 10, 1048580, -65508, 10, 7, -65507, 10, 7, -65506, 10, 7, -65505, 10, 7, -65504, 10, 7, -65503, 10, 7, -65502, 10, 1441799, -65501, 10, 1441795, 2, 11, 655368, 3, 11, 655368, 4, 11, 655368, 5, 11, 655368, 6, 11, 655368, 7, 11, 655368, 8, 11, 655368, 9, 11, 655368, 10, 11, 655368, 11, 11, 655368, 21, 11, 8, 22, 11, 8, 23, 11, 8, 24, 11, 8, 25, 11, 1441801, 26, 11, 1048584, 35, 11, 1441800, 40, 11, 1048584, 65534, 11, 1441800, 65538, 11, 655368, 65539, 11, 655368, 65540, 11, 655368, 65541, 11, 655368, 65542, 11, 655368, 65543, 11, 655368, 65544, 11, 655368, 65545, 11, 655368, 65546, 11, 655368, 65547, 11, 655368, 65549, 11, 8, 65550, 11, 8, 65551, 11, 8, 65552, 11, 8, 65553, 11, 8, 65554, 11, 8, 65555, 11, 8, 65556, 11, 8, 65557, 11, 8, 65558, 11, 8, 65559, 11, 8, 65560, 11, 1048580, 65561, 11, 655367, 65562, 11, 1048582, 65571, 11, 1441800, 65576, 11, 1048584, 131070, 11, 1441800, 131074, 11, 655368, 131075, 11, 655368, 131076, 11, 655368, 131077, 11, 655368, 131078, 11, 655368, 131079, 11, 655368, 131080, 11, 655368, 131081, 11, 655368, 131082, 11, 655368, 131083, 11, 655368, 131085, 11, 8, 131086, 11, 8, 131087, 11, 1048585, 131088, 11, 6, 131089, 11, 6, 131090, 11, 6, 131091, 11, 6, 131092, 11, 9, 131093, 11, 8, 131094, 11, 8, 131095, 11, 8, 131096, 11, 1048585, 131107, 11, 1441800, 131112, 11, 1048584, 196606, 11, 1441800, 196610, 11, 655368, 196611, 11, 655368, 196612, 11, 655368, 196613, 11, 655368, 196614, 11, 655368, 196615, 11, 655368, 196616, 11, 655368, 196617, 11, 655368, 196618, 11, 655368, 196619, 11, 655368, 196621, 11, 8, 196622, 11, 8, 196623, 11, 1048585, 196628, 11, 9, 196629, 11, 8, 196630, 11, 8, 196631, 11, 8, 196632, 11, 1048585, 196642, 11, 1441809, 196643, 11, 1441801, 196644, 11, 655363, 196645, 11, 655363, 196646, 11, 655363, 196647, 11, 655363, 196648, 11, 655364, 262142, 11, 1441795, 262146, 11, 655368, 262147, 11, 655368, 262148, 11, 655368, 262153, 11, 1441801, 262154, 11, 655368, 262155, 11, 655368, 262157, 11, 8, 262158, 11, 8, 262159, 11, 14, 262160, 11, 14, 262161, 11, 14, 262162, 11, 14, 262163, 11, 14, 262164, 11, 14, 262165, 11, 8, 262166, 11, 8, 262167, 11, 8, 262168, 11, 1048585, 262179, 11, 1441797, 262180, 11, 655366, 262181, 11, 655366, 262182, 11, 655366, 262183, 11, 655366, 262184, 11, 655365, 327678, 11, 1441794, 327682, 11, 655362, 327683, 11, 655362, 327684, 11, 655362, 327685, 11, 655369, 327690, 11, 1441801, 327691, 11, 655368, 327693, 11, 8, 327694, 11, 1048585, 327695, 11, 6, 327696, 11, 9, 327697, 11, 8, 327698, 11, 8, 327699, 11, 8, 327700, 11, 8, 327701, 11, 8, 327702, 11, 8, 327703, 11, 8, 327704, 11, 1048585, 393214, 11, 1441800, 393218, 11, 655362, 393219, 11, 655362, 393220, 11, 655362, 393221, 11, 655369, 393226, 11, 1441797, 393227, 11, 1441801, 393229, 11, 8, 393230, 11, 1048585, 393232, 11, 9, 393233, 11, 2, 393234, 11, 2, 393235, 11, 2, 393236, 11, 2, 393237, 11, 8, 393238, 11, 8, 393239, 11, 8, 393240, 11, 1048585, 458750, 11, 1441800, 458752, 11, 655367, 458753, 11, 655367, 458754, 11, 655366, 458755, 11, 655366, 458756, 11, 655366, 458757, 11, 655365, 458764, 11, 1441799, 458765, 11, 6, 458766, 11, 1048581, 458768, 11, 5, 458769, 11, 6, 458770, 11, 6, 458771, 11, 6, 458772, 11, 6, 458773, 11, 6, 458774, 11, 6, 458775, 11, 6, 458776, 11, 1048581, 524286, 11, 1441798, 524287, 11, 655367, -65534, 11, 655363, -65533, 11, 655363, -65532, 11, 655363, -65531, 11, 655363, -65530, 11, 655363, -65529, 11, 655363, -65528, 11, 655363, -65527, 11, 655363, -65526, 11, 655363, -65525, 11, 655363, -65511, 11, 1441796, -65510, 11, 1048579, -65509, 11, 7, -65508, 11, 7, -65507, 11, 7, -65506, 11, 7, -65505, 11, 7, -65504, 11, 7, -65503, 11, 7, -65502, 11, 7, -65501, 11, 1441795, 21, 12, 15, 23, 12, 1048582, 25, 12, 8, 26, 12, 1048585, 35, 12, 1441800, 40, 12, 1048584, 65534, 12, 1441800, 65548, 12, 1048584, 65549, 12, 15, 65551, 12, 1048583, 65552, 12, 1048583, 65553, 12, 1048583, 65554, 12, 1048583, 65555, 12, 1048583, 65556, 12, 1048583, 65561, 12, 6, 65562, 12, 1048581, 65571, 12, 1441800, 65576, 12, 1048584, 131070, 12, 1441800, 131084, 12, 1048584, 131087, 12, 16, 131092, 12, 17, 131107, 12, 1441800, 131112, 12, 1048584, 196606, 12, 15, 196643, 12, 1441800, 196648, 12, 1048584, 262142, 12, 9, 262156, 12, 1048585, 262178, 12, 1441809, 262179, 12, 1441801, 262180, 12, 655363, 262181, 12, 655363, 262182, 12, 655363, 262183, 12, 655363, 262184, 12, 655364, 327678, 12, 9, 327692, 12, 1048585, 327694, 12, 16, 327696, 12, 17, 327715, 12, 1441797, 327716, 12, 655366, 327717, 12, 655366, 327718, 12, 655366, 327719, 12, 655366, 327720, 12, 655365, 393214, 12, 1441806, 393222, 12, 655374, 393223, 12, 655374, 393224, 12, 655374, 393228, 12, 1048590, 458750, 12, 1441800, 458752, 12, 655367, 458753, 12, 655367, 458754, 12, 655367, 458755, 12, 655367, 458756, 12, 655367, 458757, 12, 655367, 458758, 12, 655366, 458759, 12, 655366, 458760, 12, 655366, 458761, 12, 655366, 458762, 12, 655366, 458763, 12, 1441799, 458764, 12, 1048582, 524286, 12, 1441798, 524287, 12, 655367, -65512, 12, 3, -65511, 12, 3, -65510, 12, 1048580, -65509, 12, 7, -65508, 12, 7, -65507, 12, 7, -65506, 12, 7, -65505, 12, 7, -65504, 12, 7, -65503, 12, 7, -65502, 12, 7, -65501, 12, 1441795, 21, 13, 15, 23, 13, 1048582, 28, 13, 1441801, 29, 13, 655369, 35, 13, 1441800, 38, 13, 8, 39, 13, 8, 40, 13, 1048585, 65534, 13, 1441800, 65548, 13, 1048584, 65549, 13, 15, 65551, 13, 1048583, 65552, 13, 1048583, 65553, 13, 1048583, 65554, 13, 1048583, 65555, 13, 1048583, 65556, 13, 1048583, 65564, 13, 1441801, 65565, 13, 655369, 65571, 13, 1441800, 65574, 13, 8, 65575, 13, 8, 65576, 13, 1048585, 131070, 13, 1441800, 131084, 13, 1048584, 131100, 13, 1441797, 131101, 13, 655365, 131107, 13, 1441800, 131110, 13, 8, 131111, 13, 8, 131112, 13, 1048585, 196606, 13, 1441800, 196643, 13, 1441800, 196646, 13, 8, 196647, 13, 8, 196648, 13, 1048585, 262179, 13, 1441800, 262182, 13, 8, 262183, 13, 8, 262184, 13, 1048585, 327715, 13, 1441798, 327716, 13, 7, 327717, 13, 7, 327718, 13, 6, 327719, 13, 6, 327720, 13, 1048581, 393214, 13, 1441806, 393228, 13, 1048590, 458750, 13, 1441800, 458752, 13, 655367, 458753, 13, 655367, 458754, 13, 655367, 458755, 13, 655367, 458756, 13, 655367, 458757, 13, 655367, 458758, 13, 655367, 458759, 13, 655367, 458760, 13, 655367, 458761, 13, 655367, 458762, 13, 1441799, 458763, 13, 1441799, 458764, 13, 1048582, 524286, 13, 1441798, 524287, 13, 655367, -65513, 13, 1048579, -65512, 13, 7, -65511, 13, 7, -65510, 13, 7, -65509, 13, 7, -65508, 13, 1441796, -65507, 13, 655364, -65506, 13, 7, -65505, 13, 7, -65504, 13, 7, -65503, 13, 7, -65502, 13, 7, -65501, 13, 1441795, 21, 14, 15, 23, 14, 1048582, 28, 14, 9, 29, 14, 1048585, 35, 14, 1441800, 37, 14, 1048584, 65534, 14, 1441800, 65548, 14, 1048584, 65549, 14, 15, 65551, 14, 1048583, 65552, 14, 1048583, 65553, 14, 655373, 65554, 14, 655373, 65555, 14, 1048583, 65556, 14, 1048583, 65564, 14, 9, 65565, 14, 1048585, 65571, 14, 1441800, 65573, 14, 1048584, 131070, 14, 1441800, 131084, 14, 1048584, 131090, 14, 655373, 131100, 14, 5, 131101, 14, 1048581, 131107, 14, 1441800, 131109, 14, 1048584, 196606, 14, 1441800, 196643, 14, 1441800, 196645, 14, 1048584, 262142, 14, 1441801, 262156, 14, 655369, 262179, 14, 1441800, 262181, 14, 1048584, 327678, 14, 1441801, 327692, 14, 655369, 327716, 14, 7, 327717, 14, 1048582, 393214, 14, 1441806, 393228, 14, 1048590, 458750, 14, 1441800, 458752, 14, 655367, 458753, 14, 655367, 458754, 14, 655367, 458755, 14, 655367, 458756, 14, 655367, 458757, 14, 655367, 458758, 14, 655367, 458759, 14, 655367, 458760, 14, 655367, 458761, 14, 655367, 458762, 14, 1441799, 458763, 14, 1441799, 458764, 14, 1048582, 524286, 14, 1441798, 524287, 14, 655367, -65513, 14, 1048579, -65512, 14, 7, -65511, 14, 7, -65510, 14, 7, -65509, 14, 7, -65508, 14, 4, -65507, 14, 1048580, -65506, 14, 7, -65505, 14, 1441796, -65504, 14, 655364, -65502, 14, 7, -65501, 14, 1441795, 21, 15, 655368, 22, 15, 655368, 23, 15, 655368, 24, 15, 655369, 31, 15, 9, 35, 15, 1441800, 37, 15, 1048584, 65534, 15, 1441800, 65548, 15, 1048584, 65549, 15, 655368, 65550, 15, 655368, 65551, 15, 655368, 65552, 15, 655368, 65553, 15, 655368, 65554, 15, 655368, 65555, 15, 655368, 65556, 15, 655368, 65557, 15, 655368, 65558, 15, 655368, 65559, 15, 655368, 65560, 15, 655369, 65567, 15, 9, 65571, 15, 1441800, 65573, 15, 1048584, 131070, 15, 1441800, 131084, 15, 1048584, 131085, 15, 655368, 131086, 15, 655368, 131087, 15, 655368, 131088, 15, 655368, 131089, 15, 655368, 131090, 15, 655368, 131091, 15, 655368, 131092, 15, 655368, 131093, 15, 655368, 131094, 15, 655368, 131095, 15, 655368, 131096, 15, 655369, 131103, 15, 9, 131107, 15, 1441800, 131109, 15, 1048584, 196606, 15, 1441800, 196620, 15, 1048584, 196621, 15, 655368, 196622, 15, 655368, 196623, 15, 655368, 196624, 15, 655368, 196625, 15, 655368, 196626, 15, 655368, 196627, 15, 655368, 196628, 15, 655368, 196629, 15, 655368, 196630, 15, 655368, 196631, 15, 655368, 196632, 15, 655369, 196639, 15, 5, 196640, 15, 1048581, 196643, 15, 1441800, 196645, 15, 1048584, 262142, 15, 1441800, 262156, 15, 1048584, 262157, 15, 655368, 262158, 15, 655368, 262159, 15, 655368, 262160, 15, 655368, 262161, 15, 655368, 262162, 15, 655368, 262163, 15, 655368, 262164, 15, 655368, 262165, 15, 655368, 262166, 15, 655368, 262167, 15, 655368, 262168, 15, 655369, 262179, 15, 1441800, 262181, 15, 1048584, 327678, 15, 1441800, 327692, 15, 1048584, 327693, 15, 655368, 327694, 15, 655368, 327695, 15, 655368, 327696, 15, 655368, 327697, 15, 655368, 327698, 15, 655368, 327699, 15, 1310729, 327700, 15, 655366, 327701, 15, 655366, 327702, 15, 655366, 327703, 15, 655366, 327704, 15, 655365, 327716, 15, 7, 327717, 15, 1048582, 393214, 15, 1441800, 393228, 15, 1048584, 393229, 15, 655368, 393230, 15, 655368, 393231, 15, 655368, 393232, 15, 655368, 393233, 15, 655368, 393234, 15, 655368, 393235, 15, 1310729, 458750, 15, 1441800, 458752, 15, 655367, 458753, 15, 655367, 458754, 15, 655367, 458755, 15, 655367, 458756, 15, 655367, 458757, 15, 655367, 458758, 15, 655367, 458759, 15, 655367, 458760, 15, 655367, 458761, 15, 655367, 458762, 15, 1441799, 458763, 15, 1441799, 458764, 15, 655366, 458765, 15, 655366, 458766, 15, 655366, 458767, 15, 655366, 458768, 15, 655366, 458769, 15, 655366, 458770, 15, 655366, 458771, 15, 655365, 524286, 15, 1441798, 524287, 15, 655367, -65512, 15, 655364, -65511, 15, 7, -65510, 15, 7, -65509, 15, 7, -65508, 15, 7, -65507, 15, 7, -65506, 15, 7, -65505, 15, 4, -65502, 15, 7, -65501, 15, 1441795, 25, 16, 655369, 37, 16, 1048584, 65534, 16, 1441800, 65548, 16, 1048584, 65561, 16, 655369, 65573, 16, 1048584, 131070, 16, 1441800, 131084, 16, 1048584, 131097, 16, 655369, 131109, 16, 1048584, 196606, 16, 1441800, 196620, 16, 1048584, 196633, 16, 655369, 196645, 16, 1048584, 262142, 16, 1441800, 262156, 16, 1048584, 262169, 16, 655369, 262181, 16, 1048584, 327678, 16, 1441800, 327692, 16, 1048584, 327699, 16, 1048579, 327700, 16, 1048583, 327701, 16, 1048583, 327702, 16, 1048583, 327703, 16, 1048583, 327704, 16, 1048583, 327705, 16, 655365, 327716, 16, 7, 327717, 16, 1048582, 393214, 16, 1441800, 393228, 16, 1048584, 393235, 16, 1048584, 458750, 16, 1441800, 458752, 16, 655367, 458753, 16, 655367, 458754, 16, 655367, 458755, 16, 655367, 458756, 16, 655367, 458757, 16, 655367, 458758, 16, 655367, 458759, 16, 655367, 458760, 16, 655367, 458761, 16, 655367, 458762, 16, 1441799, 458763, 16, 1441799, 458764, 16, 655366, 458765, 16, 7, 458766, 16, 7, 458767, 16, 7, 458768, 16, 7, 458769, 16, 7, 458770, 16, 7, 458771, 16, 1048582, 524286, 16, 1441798, 524287, 16, 655367, -65511, 16, 655364, -65510, 16, 7, -65509, 16, 7, -65508, 16, 7, -65507, 16, 7, -65506, 16, 7, 0, 17, 8, 1, 17, 8, 2, 17, 8, 3, 17, 8, 4, 17, 8, 5, 17, 8, 6, 17, 8, 7, 17, 8, 8, 17, 8, 9, 17, 8, 10, 17, 8, 11, 17, 8, 12, 17, 8, 13, 17, 8, 14, 17, 8, 15, 17, 8, 16, 17, 8, 17, 17, 8, 18, 17, 8, 19, 17, 8, 20, 17, 8, 21, 17, 8, 22, 17, 8, 25, 17, 1048584, 37, 17, 1048584, 65534, 17, 9, 65535, 17, 8, 65536, 17, 8, 65537, 17, 8, 65538, 17, 8, 65539, 17, 8, 65540, 17, 8, 65541, 17, 8, 65542, 17, 8, 65543, 17, 8, 65544, 17, 8, 65545, 17, 8, 65546, 17, 8, 65547, 17, 8, 65548, 17, 8, 65549, 17, 8, 65550, 17, 8, 65551, 17, 8, 65552, 17, 8, 65553, 17, 8, 65554, 17, 8, 65555, 17, 8, 65556, 17, 8, 65557, 17, 8, 65558, 17, 8, 65561, 17, 1048584, 65573, 17, 1048584, 131070, 17, 9, 131071, 17, 8, 131072, 17, 8, 131073, 17, 8, 131074, 17, 8, 131075, 17, 8, 131076, 17, 8, 131077, 17, 8, 131078, 17, 8, 131079, 17, 8, 131080, 17, 8, 131081, 17, 8, 131082, 17, 8, 131083, 17, 8, 131084, 17, 8, 131085, 17, 8, 131086, 17, 8, 131087, 17, 8, 131088, 17, 8, 131089, 17, 8, 131090, 17, 8, 131091, 17, 8, 131092, 17, 8, 131093, 17, 8, 131094, 17, 8, 131097, 17, 1048584, 131109, 17, 1048584, 196606, 17, 9, 196607, 17, 8, 196608, 17, 8, 196609, 17, 8, 196610, 17, 8, 196611, 17, 8, 196612, 17, 8, 196613, 17, 8, 196614, 17, 8, 196615, 17, 8, 196616, 17, 8, 196617, 17, 8, 196618, 17, 8, 196619, 17, 8, 196620, 17, 8, 196621, 17, 8, 196622, 17, 8, 196623, 17, 8, 196624, 17, 8, 196625, 17, 8, 196626, 17, 8, 196627, 17, 8, 196628, 17, 8, 196629, 17, 8, 196630, 17, 8, 196633, 17, 1048584, 196645, 17, 1048584, 262142, 17, 9, 262143, 17, 8, 262144, 17, 8, 262145, 17, 8, 262146, 17, 8, 262147, 17, 8, 262148, 17, 8, 262149, 17, 8, 262150, 17, 8, 262151, 17, 8, 262152, 17, 8, 262153, 17, 8, 262154, 17, 8, 262155, 17, 8, 262156, 17, 8, 262157, 17, 8, 262158, 17, 8, 262159, 17, 8, 262160, 17, 8, 262161, 17, 8, 262162, 17, 8, 262163, 17, 8, 262164, 17, 8, 262165, 17, 8, 262166, 17, 8, 262169, 17, 1048584, 262181, 17, 1048584, 327678, 17, 9, 327679, 17, 8, 327680, 17, 8, 327681, 17, 8, 327682, 17, 8, 327683, 17, 8, 327684, 17, 8, 327685, 17, 8, 327686, 17, 8, 327687, 17, 8, 327688, 17, 8, 327689, 17, 8, 327690, 17, 8, 327691, 17, 8, 327692, 17, 8, 327693, 17, 8, 327694, 17, 8, 327695, 17, 8, 327696, 17, 8, 327697, 17, 8, 327698, 17, 8, 327699, 17, 1048580, 327700, 17, 6, 327701, 17, 6, 327702, 17, 6, 327703, 17, 1048583, 327704, 17, 1048583, 327705, 17, 1048582, 327716, 17, 7, 327717, 17, 1048582, 393214, 17, 9, 393215, 17, 8, 393216, 17, 8, 393217, 17, 8, 393218, 17, 8, 393219, 17, 8, 393220, 17, 8, 393221, 17, 8, 393222, 17, 8, 393223, 17, 8, 393224, 17, 8, 393225, 17, 8, 393226, 17, 8, 393227, 17, 8, 393228, 17, 8, 393229, 17, 8, 393230, 17, 8, 393231, 17, 8, 393232, 17, 8, 393233, 17, 8, 393234, 17, 8, 393235, 17, 1048585, 458750, 17, 9, 458751, 17, 8, 458752, 17, 6, 458753, 17, 6, 458754, 17, 6, 458755, 17, 6, 458756, 17, 6, 458757, 17, 6, 458758, 17, 6, 458759, 17, 6, 458760, 17, 6, 458761, 17, 6, 458762, 17, 6, 458763, 17, 6, 458764, 17, 6, 458765, 17, 6, 458766, 17, 6, 458767, 17, 6, 458768, 17, 6, 458769, 17, 6, 458770, 17, 6, 458771, 17, 1048581, 524286, 17, 5, 524287, 17, 6, -65511, 17, 1048579, -65510, 17, 7, -65509, 17, 7, -65508, 17, 7, -65507, 17, 7, -65506, 17, 7, -65505, 17, 7, -65504, 17, 7, -65503, 17, 7, 23, 18, 1441800, 26, 18, 655368, 27, 18, 655368, 28, 18, 655368, 29, 18, 655368, 30, 18, 655368, 31, 18, 655368, 32, 18, 655368, 33, 18, 655368, 37, 18, 1048584, 65559, 18, 1441800, 65562, 18, 655368, 65563, 18, 655368, 65564, 18, 655368, 65565, 18, 655368, 65566, 18, 655368, 65567, 18, 655368, 65568, 18, 655368, 65569, 18, 655368, 65573, 18, 1048584, 131095, 18, 1441800, 131098, 18, 655368, 131099, 18, 655368, 131100, 18, 655368, 131101, 18, 655368, 131102, 18, 655368, 131103, 18, 655368, 131104, 18, 655368, 131105, 18, 655368, 131109, 18, 1048584, 196631, 18, 1441800, 196634, 18, 655368, 196635, 18, 655368, 196636, 18, 655368, 196637, 18, 655368, 196638, 18, 655368, 196639, 18, 655368, 196640, 18, 655368, 196641, 18, 655368, 196645, 18, 1048584, 262167, 18, 1441800, 262170, 18, 655368, 262171, 18, 655368, 262172, 18, 655368, 262173, 18, 655368, 262174, 18, 655368, 262175, 18, 655368, 262176, 18, 655368, 262177, 18, 655368, 262181, 18, 1048584, 327703, 18, 1441798, 327704, 18, 1048583, 327705, 18, 1048583, 327706, 18, 655366, 327707, 18, 655366, 327708, 18, 655366, 327709, 18, 655366, 327710, 18, 655366, 327716, 18, 7, 327717, 18, 1048582, -65510, 18, 655363, -65509, 18, 655363, -65508, 18, 655363, -65507, 18, 655363, -65506, 18, 655363, -65505, 18, 655363, -65504, 18, 655363, -65503, 18, 655363, 23, 19, 9, 24, 19, 8, 25, 19, 8, 26, 19, 8, 27, 19, 8, 28, 19, 8, 29, 19, 8, 30, 19, 8, 31, 19, 8, 32, 19, 8, 33, 19, 8, 34, 19, 8, 35, 19, 8, 36, 19, 8, 37, 19, 1048585, 65559, 19, 9, 65560, 19, 8, 65561, 19, 8, 65562, 19, 8, 65563, 19, 8, 65564, 19, 8, 65565, 19, 8, 65566, 19, 8, 65567, 19, 8, 65568, 19, 8, 65569, 19, 8, 65570, 19, 8, 65571, 19, 8, 65572, 19, 8, 65573, 19, 1048585, 131095, 19, 9, 131096, 19, 8, 131097, 19, 8, 131098, 19, 8, 131099, 19, 8, 131100, 19, 8, 131101, 19, 8, 131102, 19, 8, 131103, 19, 8, 131104, 19, 8, 131105, 19, 8, 131106, 19, 8, 131107, 19, 8, 131108, 19, 8, 131109, 19, 1048585, 196631, 19, 9, 196632, 19, 8, 196633, 19, 8, 196634, 19, 8, 196635, 19, 8, 196638, 19, 8, 196639, 19, 8, 196640, 19, 8, 196641, 19, 8, 196642, 19, 8, 196643, 19, 8, 196644, 19, 8, 196645, 19, 1048585, 262167, 19, 9, 262168, 19, 8, 262169, 19, 8, 262170, 19, 8, 262171, 19, 8, 262172, 19, 8, 262173, 19, 8, 262174, 19, 8, 262175, 19, 8, 262176, 19, 8, 262177, 19, 8, 262178, 19, 8, 262179, 19, 8, 262180, 19, 8, 262181, 19, 1048585, 327703, 19, 5, 327704, 19, 6, 327705, 19, 6, 327706, 19, 6, 327707, 19, 6, 327708, 19, 6, 327709, 19, 6, 327710, 19, 6, 327711, 19, 6, 327712, 19, 6, 327713, 19, 6, 327714, 19, 6, 327715, 19, 6, 327716, 19, 6, 327717, 19, 1048581, 0, 65531, 655368, 1, 65531, 655368, 2, 65531, 655368, 3, 65531, 655368, 4, 65531, 655368, 5, 65531, 655368, 6, 65531, 655368, 7, 65531, 655368, 8, 65531, 655368, 9, 65531, 655368, 10, 65531, 655368, 11, 65531, 655368, 12, 65531, 655368, 13, 65531, 655368, 14, 65531, 655369, 65534, 65531, 1441801, 65535, 65531, 655368, 65536, 65531, 655368, 65537, 65531, 655368, 65538, 65531, 655368, 65539, 65531, 655368, 65540, 65531, 655368, 65541, 65531, 655368, 65542, 65531, 655368, 65543, 65531, 655368, 65544, 65531, 655368, 65545, 65531, 655368, 65546, 65531, 655368, 65547, 65531, 655368, 65548, 65531, 655368, 65549, 65531, 655368, 65550, 65531, 655369, 131070, 65531, 655368, 131071, 65531, 655368, 131072, 65531, 655368, 131073, 65531, 655368, 131074, 65531, 655368, 131075, 65531, 655368, 131076, 65531, 655368, 131077, 65531, 655368, 131078, 65531, 655368, 131079, 65531, 655368, 131080, 65531, 655368, 131081, 65531, 655368, 131082, 65531, 655368, 131083, 65531, 655368, 131084, 65531, 655368, 131085, 65531, 655363, 131086, 65531, 655364, 196606, 65531, 1441801, 196607, 65531, 655368, 196608, 65531, 655363, 196609, 65531, 655363, 196610, 65531, 655363, 196611, 65531, 655364, 196612, 65531, 655367, 196613, 65531, 655367, 196614, 65531, 655367, 196615, 65531, 655367, 196616, 65531, 655367, 196617, 65531, 655367, 196618, 65531, 655367, 196619, 65531, 655367, 196620, 65531, 1441796, 196621, 65531, 655368, 196622, 65531, 655369, 262142, 65531, 1441796, 262143, 65531, 655363, 262144, 65531, 655368, 262145, 65531, 655368, 262146, 65531, 655368, 262147, 65531, 655369, 262156, 65531, 1441801, 262157, 65531, 655362, 262158, 65531, 655369, 327678, 65531, 1441801, 327679, 65531, 655362, 327680, 65531, 655368, 327681, 65531, 655368, 327682, 65531, 655362, 327683, 65531, 655369, 327692, 65531, 1441801, 327693, 65531, 655368, 327694, 65531, 655369, 393214, 65531, 1441801, 393215, 65531, 655368, 393216, 65531, 655368, 393217, 65531, 655368, 393218, 65531, 655368, 393219, 65531, 655369, 393228, 65531, 1441801, 393229, 65531, 655368, 393230, 65531, 655369, 458750, 65531, 1441801, 458751, 65531, 655368, 458752, 65531, 655366, 458753, 65531, 655366, 458754, 65531, 655366, 458755, 65531, 655365, 458764, 65531, 1441801, 458765, 65531, 655368, 458766, 65531, 655369, 524286, 65531, 1441797, 524287, 65531, 655366, 524300, 65531, 1441797, 524301, 65531, 655366, 524302, 65531, 655365, 14, 65532, 1048584, 65534, 65532, 1441800, 65550, 65532, 1048584, 131070, 65532, 1441800, 131086, 65532, 1048579, 196606, 65532, 1441800, 196611, 65532, 1048579, 196612, 65532, 655367, 196613, 65532, 1441799, 196614, 65532, 1441802, 196615, 65532, 1441799, 196616, 65532, 1441799, 196617, 65532, 1441799, 196618, 65532, 1441802, 196619, 65532, 1441799, 196620, 65532, 1441795, 196622, 65532, 1048584, 262142, 65532, 1441795, 262147, 65532, 1048584, 262156, 65532, 1441800, 262158, 65532, 1048584, 327678, 65532, 1441800, 327683, 65532, 1048584, 327692, 65532, 1441800, 327694, 65532, 1048584, 393214, 65532, 1441800, 393219, 65532, 1048584, 393228, 65532, 1441800, 393230, 65532, 1048584, 458750, 65532, 1441800, 458752, 65532, 1441799, 458753, 65532, 1441799, 458754, 65532, 1441799, 458755, 65532, 1048582, 458764, 65532, 1441800, 458766, 65532, 1048584, 524286, 65532, 1441798, 524287, 65532, 1441799, 524300, 65532, 1441798, 524301, 65532, 1048583, 524302, 65532, 1048582, 15, 65533, 655368, 16, 65533, 655368, 17, 65533, 655368, 18, 65533, 655368, 19, 65533, 655369, 65534, 65533, 1441800, 65540, 65533, 3, 65551, 65533, 655368, 65552, 65533, 655368, 65553, 65533, 655368, 65554, 65533, 655363, 65555, 65533, 655364, 131070, 65533, 1441800, 131076, 65533, 2, 131077, 65533, 3, 131087, 65533, 655363, 131088, 65533, 655363, 131089, 65533, 655363, 131090, 65533, 655368, 131091, 65533, 655369, 196606, 65533, 1441800, 196611, 65533, 1048579, 196612, 65533, 6, 196613, 65533, 6, 196614, 65533, 655366, 196615, 65533, 655366, 196616, 65533, 655366, 196617, 65533, 655366, 196618, 65533, 7, 196619, 65533, 655366, 196620, 65533, 1441795, 196623, 65533, 655368, 196624, 65533, 655368, 196625, 65533, 655368, 196626, 65533, 655368, 196627, 65533, 655369, 262142, 65533, 1441795, 262147, 65533, 1048578, 262156, 65533, 1441800, 262159, 65533, 655368, 262160, 65533, 655368, 262161, 65533, 655362, 262162, 65533, 655368, 262163, 65533, 655369, 327678, 65533, 1441794, 327683, 65533, 1048584, 327692, 65533, 1441800, 327695, 65533, 655368, 327696, 65533, 655368, 327697, 65533, 655368, 327698, 65533, 655368, 327699, 65533, 655369, 393214, 65533, 1441800, 393219, 65533, 1048584, 393228, 65533, 1441800, 393231, 65533, 655368, 393232, 65533, 655368, 393233, 65533, 655368, 393234, 65533, 655368, 393235, 65533, 655369, 458750, 65533, 1441800, 458752, 65533, 1441799, 458753, 65533, 1441799, 458754, 65533, 1441799, 458755, 65533, 1048582, 458764, 65533, 1441800, 458767, 65533, 655368, 458768, 65533, 655368, 458769, 65533, 655368, 458770, 65533, 655368, 458771, 65533, 655369, 524286, 65533, 1441798, 524287, 65533, 1441799, 524300, 65533, 1441798, 524301, 65533, 655366, 524302, 65533, 655366, 524303, 65533, 655366, 524304, 65533, 655366, 524305, 65533, 655366, 524306, 65533, 655366, 524307, 65533, 655365, 19, 65534, 1048584, 65534, 65534, 1441800, 65539, 65534, 1048579, 65540, 65534, 1048583, 65541, 65534, 4, 65555, 65534, 1048579, 131070, 65534, 1441800, 131075, 65534, 1048578, 131077, 65534, 5, 131078, 65534, 4, 131091, 65534, 1048584, 196606, 65534, 1441800, 196611, 65534, 1048578, 196614, 65534, 5, 196615, 65534, 7, 196616, 65534, 655370, 196617, 65534, 7, 196618, 65534, 7, 196619, 65534, 7, 196620, 65534, 1441795, 196627, 65534, 1048584, 262142, 65534, 1441795, 262147, 65534, 1048578, 262152, 65534, 655372, 262156, 65534, 1441800, 262163, 65534, 1048584, 327678, 65534, 1441800, 327683, 65534, 1048584, 327688, 65534, 655373, 327692, 65534, 1441794, 327699, 65534, 1048584, 393214, 65534, 1441800, 393219, 65534, 1048584, 393228, 65534, 1441794, 393235, 65534, 1048584, 458750, 65534, 1441800, 458752, 65534, 1441799, 458753, 65534, 1441799, 458754, 65534, 1441799, 458755, 65534, 1048582, 458764, 65534, 1441794, 458771, 65534, 1048584, 524286, 65534, 1441798, 524287, 65534, 1441799, 524300, 65534, 1441798, 524301, 65534, 1048583, 524302, 65534, 1048583, 524303, 65534, 1048583, 524304, 65534, 1048583, 524305, 65534, 1048583, 524306, 65534, 1048583, 524307, 65534, 1048582, 4, 65535, 3, 5, 65535, 3, 6, 65535, 3, 7, 65535, 3, 8, 65535, 3, 9, 65535, 3, 10, 65535, 3, 11, 65535, 3, 19, 65535, 655368, 20, 65535, 655368, 21, 65535, 655368, 22, 65535, 655368, 23, 65535, 655368, 24, 65535, 655368, 25, 65535, 655368, 26, 65535, 655368, 27, 65535, 655368, 28, 65535, 655368, 29, 65535, 655368, 30, 65535, 655368, 31, 65535, 655368, 32, 65535, 655368, 33, 65535, 655368, 34, 65535, 655368, 35, 65535, 655368, 36, 65535, 655368, 37, 65535, 655368, 38, 65535, 655369, 65534, 65535, 1441800, 65539, 65535, 1048579, 65540, 65535, 6, 65541, 65535, 6, 65542, 65535, 9, 65543, 65535, 2, 65544, 65535, 2, 65545, 65535, 2, 65546, 65535, 2, 65547, 65535, 2, 65555, 65535, 1048579, 65558, 65535, 655366, 65559, 65535, 655366, 65560, 65535, 655366, 65561, 65535, 655366, 65562, 65535, 655366, 65563, 65535, 655366, 65564, 65535, 655366, 65565, 65535, 655366, 65566, 65535, 655366, 65567, 65535, 655366, 65568, 65535, 655366, 65569, 65535, 655366, 65570, 65535, 655366, 65571, 65535, 655366, 65572, 65535, 655366, 65573, 65535, 655366, 65574, 65535, 655365, 131070, 65535, 1441800, 131075, 65535, 1048578, 131078, 65535, 5, 131079, 65535, 9, 131080, 65535, 2, 131081, 65535, 2, 131082, 65535, 2, 131083, 65535, 2, 131091, 65535, 1048584, 196606, 65535, 1441800, 196611, 65535, 1048578, 196615, 65535, 5, 196616, 65535, 6, 196617, 65535, 6, 196618, 65535, 6, 196619, 65535, 6, 196620, 65535, 1441795, 196627, 65535, 1048584, 262142, 65535, 1441800, 262147, 65535, 1048578, 262156, 65535, 1441800, 262163, 65535, 1048584, 327678, 65535, 1441795, 327683, 65535, 1048584, 327692, 65535, 1441794, 327699, 65535, 1048584, 393214, 65535, 1441800, 393219, 65535, 1048584, 393228, 65535, 1441794, 393235, 65535, 1048584, 458750, 65535, 1441800, 458752, 65535, 1441799, 458753, 65535, 1441799, 458754, 65535, 1441799, 458755, 65535, 1048582, 458764, 65535, 1441794, 458771, 65535, 1048584, 524286, 65535, 1441798, 524287, 65535, 1441799, 524300, 65535, 1441798, 524301, 65535, 1048583, 524302, 65535, 1048583, 524303, 65535, 1048583, 524304, 65535, 1048583, 524305, 65535, 1048583, 524306, 65535, 1048583, 524307, 65535, 1048582, -65532, 65535, 3, -65531, 65535, 3, -65530, 65535, 3, -65529, 65535, 3, -65528, 65535, 3, -65527, 65535, 3, -65526, 65535, 3, -65525, 65535, 3, 262156, 8, 1441806, 262163, 10, 1, 262160, 10, 1, 65542, 0, 17, 131079, 0, 17, 32, 14, 655369, 65568, 14, 655369, 131104, 14, 655369, 31, 14, 1441801, 65567, 14, 1441801, 131103, 14, 1441801, 196639, 14, 1441797, 196640, 14, 655365, 327684, 4, 1048593, 65560, 12, 5, 24, 12, 9, 24, 13, 17, -65502, 17, 1048583, -65502, 16, 1048583, -65502, 18, 655363, -65501, 17, 1441795, -65501, 16, 1441795, 34, 18, 655368, 35, 17, 1441800, 35, 16, 1441800, 65570, 18, 655368, 65571, 17, 1441800, 65571, 16, 1441800, 131107, 17, 1441800, 131107, 16, 1441800, 131106, 18, 655368, 196643, 17, 1441800, 196643, 16, 1441800, 196642, 18, 655368, 262178, 18, 655368, 262179, 17, 1441800, 262179, 16, 1441800, 327711, 18, 655366, 327712, 18, 655366, 327713, 18, 655366, 327714, 18, 655366, 327715, 14, 1441798, 327715, 15, 1441798, 327715, 16, 1441798, 327715, 17, 1441798, 327715, 18, 7, -65503, 16, 1048583, -65504, 16, 1048583, -65505, 16, 1048583, -65503, 14, 1048583, -65503, 15, 1048583, -65504, 15, 1048580, 32, 15, 1048585, 65568, 15, 1048585, 131104, 15, 1048585, 196636, 19, 8, 196637, 19, 8, 131083, 4, 1441808, 131083, 8, 1441809, 65540, 5, 1048586, 65565, 2, 1048592, 327699, 14, 655377, 458763, 8, 1441808, 327681, 5, 1441798, 34, 6, 655375, 34, 7, 655375, 33, 5, 8, 65569, 5, 6, 65569, 4, 655367, 65568, 5, 6, 65568, 4, 655366, 65567, 5, 5, 65567, 4, 1441797, 65570, 8, 655366, 65569, 8, 655366, 65568, 8, 655366, 65567, 8, 1441797, 65567, 9, 5, 65568, 9, 6, 65569, 9, 6, 65570, 9, 6, 32, 4, 655368, 34, 8, 655368, 33, 8, 655368, 32, 8, 655368, 32, 9, 8, 33, 9, 8, 34, 9, 8, 31, 4, 1441801, 31, 8, 1441801, 31, 5, 9, 31, 9, 9, 32, 5, 8, -65504, 1, 3, 32, 1, 8, -65503, 2, 1441795, 33, 2, 1441800, -65504, 2, 1441799, 33, 4, 1441800, -65506, 7, 1441799, 65557, 65535, 7, 65556, 65535, 7, 65556, 65534, 7, 65557, 65534, 1048582, 65557, 65533, 1048582, 65556, 65533, 7, 65556, 65532, 7, 65557, 65532, 1048582, 65557, 65531, 655365, 65556, 65531, 655366, 65555, 65531, 655366, 65555, 65532, 7, 65554, 65532, 7, 65554, 65531, 655366, 131089, 65532, 1048582, 131089, 65531, 655365, 131088, 65532, 7, 131087, 65532, 7, 131087, 65531, 7, 131088, 65531, 7, 131087, 65530, 7, 131088, 65530, 1048582, 131088, 65529, 655365, 131087, 65529, 655366, 196620, 65530, 7, 196619, 65530, 7, 196619, 65529, 655366, 196618, 65530, 7, 196618, 65529, 655366, 196617, 65530, 7, 196617, 65529, 655366, 196616, 65529, 1441797, 196616, 65530, 7, 196615, 65530, 655366, 196614, 65530, 655366, 196613, 65530, 655366, 196612, 65530, 655366, 196611, 65530, 655366, 196610, 65530, 655366, 196609, 65530, 655366, 196608, 65530, 655366, 262143, 65530, 655366, 262142, 65530, 655366, 262141, 65530, 1441797, 262141, 65531, 1441798, 262141, 65532, 1441798, 262141, 65533, 1441798, 262141, 65534, 1441798, 262141, 5, 1441798, 262141, 6, 1441798, 262141, 7, 5, 262141, 10, 1441797, 262141, 11, 1441798, 262141, 12, 1441798, 262141, 13, 5, 327677, 65535, 1441797, 327677, 0, 5, 327677, 4, 5, 327677, 3, 1441797, 21, 65534, 1048584, 21, 65533, 1048578, 21, 65532, 1048584, 21, 65531, 655369, 20, 65531, 655368, 19, 65531, 655368, 18, 65531, 655368, 65553, 65531, 655369, 65551, 65529, 655368, 131084, 65529, 655368, 131083, 65529, 655368, 131082, 65529, 655368, 131081, 65529, 655368, 131080, 65529, 1441801, 15, 65529, 655368, 16, 65529, 655369, 65552, 65529, 655369, 17, 65531, 655368, 16, 65530, 1048578, 65552, 65530, 1048584, 65553, 65532, 1048579, 131085, 65530, 15, 131079, 65530, 655368, 131078, 65530, 655368, 131077, 65530, 655368, 131076, 65530, 655368, 131075, 65530, 655368, 131074, 65530, 655368, 131073, 65530, 655368, 131072, 65530, 655368, 196607, 65530, 655368, 196606, 65530, 655368, 196605, 65531, 1441800, 196605, 65532, 1441800, 196605, 65533, 1441800, 196605, 65534, 1441800, 262141, 0, 9, 262141, 65535, 1441796, 196605, 65535, 1441800, 196605, 0, 9, 131069, 0, 9, 131069, 65535, 1441800, 131069, 65534, 1441800, 131069, 65533, 1441800, 131069, 65532, 1441800, 131069, 65531, 1441800, 65533, 65531, 1441800, 65533, 65532, 1441800, 65533, 65533, 1441800, 65533, 65534, 1441800, 65533, 65535, 1441800, 65533, 0, 9, 65534, 65530, 655368, 65535, 65530, 655368, 0, 65530, 655368, 1, 65530, 655368, 2, 65530, 655368, 3, 65530, 655368, 4, 65530, 655368, 5, 65530, 655368, 6, 65530, 655368, 7, 65530, 655368, 65543, 65530, 655368, 65542, 65530, 655368, 65541, 65530, 655368, 65540, 65530, 655368, 65539, 65530, 655368, 65538, 65530, 655368, 65537, 65530, 655368, 65536, 65530, 655368, 131071, 65530, 655368, 131070, 65530, 655368, 65544, 65529, 1441801, 65545, 65529, 655368, 65546, 65529, 655368, 65547, 65529, 655368, 65548, 65529, 655368, 12, 65529, 655368, 11, 65529, 655368, 10, 65529, 655368, 9, 65529, 655368, 8, 65529, 1441801, 65533, 3, 1441801, 65533, 4, 1441800, 65533, 5, 1441800, 65533, 6, 1441800, 65533, 7, 9, 131069, 7, 9, 131069, 6, 1441800, 131069, 5, 1441800, 131069, 4, 1441800, 131069, 3, 1441801, 196605, 3, 1441801, 196605, 4, 1441800, 262141, 4, 4, 262141, 3, 1441801, 196605, 5, 1441800, 196605, 6, 1441800, 196605, 7, 9, 196605, 10, 1441801, 196605, 11, 1441800, 196605, 12, 1441800, 196605, 13, 9, 131069, 13, 9, 131069, 12, 1441800, 131069, 11, 1441800, 131069, 10, 1441801, 65533, 10, 1441801, 65533, 11, 1441800, 65533, 12, 1441800, 65533, 13, 9, 196605, 65530, 1441801, 131069, 65530, 1441801, 65533, 65530, 1441801, 262150, 65532, 1441805, 262154, 65532, 1441803, 327690, 65532, 13, 196620, 65529, 655366, 65550, 65528, 655369, 14, 65528, 655369, 13, 65528, 1441801, 65549, 65528, 1441801, 131085, 65528, 1441801, 131086, 65528, 655369, 196622, 65528, 655365, 196621, 65528, 1441797, 196622, 65529, 1048581, 131086, 65529, 1048580, 196621, 65529, 6, 131085, 65529, 8, 65553, 65530, 655377, 262142, 13, 655367, 262143, 13, 655367, 196608, 13, 655367, 196609, 13, 655367, 196610, 13, 655367, 196611, 13, 655367, 196612, 13, 655367, 196613, 13, 655367, 196614, 13, 655367, 196615, 13, 655367, 196616, 13, 655367, 196617, 13, 655367, 196619, 13, 655375, 262143, 14, 655363, 196608, 14, 655363, 196609, 14, 655363, 196610, 14, 655363, 196611, 14, 655363, 196612, 14, 655363, 196613, 14, 655363, 196614, 14, 655363, 196615, 14, 655363, 196616, 14, 655363, 196617, 14, 655363, 196618, 14, 655363, 196619, 14, 655363, 262143, 12, 3, 196608, 12, 3, 196609, 12, 3, 196610, 12, 3, 196611, 12, 3, 196612, 12, 3, 196613, 12, 3, 196614, 12, 3, 196615, 12, 3, 196616, 12, 3, 196617, 12, 3, 196618, 12, 3, 196619, 12, 3, 262156, 13, 1048582, 196620, 12, 1048584, 196620, 13, 1048584, 196620, 14, 1048584, 262157, 14, 1048592, 262157, 12, 1048593, 393227, 13, 1048577, 393226, 13, 1048577, 393225, 13, 1048577, 393224, 13, 1048577, 393223, 13, 1048577, 393222, 13, 1048577, 393221, 13, 1048577, 393220, 13, 1048577, 393219, 13, 1048577, 327694, 6, 1048583, 327694, 5, 1048583, 262141, 14, 1441809, 327679, 14, 655374, 262144, 14, 655374, 262145, 14, 655374, 262155, 14, 655374, 262154, 14, 655374, 262153, 14, 655374, 262152, 14, 655374, 262151, 14, 655374, 262150, 14, 655374, 262149, 14, 655374, 262148, 14, 655374, 262147, 14, 655374, 262146, 14, 655374, 262154, 12, 14, 262153, 12, 9, 262152, 12, 6, 262151, 12, 6, 262150, 12, 6, 262149, 12, 1048585, 262148, 12, 14, 262147, 12, 14, 262146, 12, 14, 262145, 12, 14, 262144, 12, 14, 327679, 12, 14, 393215, 13, 1441793, 327680, 13, 1441793, 327681, 13, 1441793, 327682, 13, 1441793, 327683, 13, 1441793, 327684, 13, 1441793, 327685, 13, 1048590, 262155, 12, 8, 327691, 12, 8, 327690, 12, 8, 327689, 12, 1441801, 327691, 14, 655368, 327690, 14, 655368, 327689, 14, 655368, 327688, 14, 655368, 327687, 14, 655368, 327686, 14, 655368, 262149, 11, 655369, 262153, 10, 655376, 262149, 10, 655377, 262152, 11, 655366, 262151, 11, 655366, 262150, 11, 655366, 262153, 13, 17, 262149, 13, 16, 327685, 12, 1048590, 393225, 12, 655374, 458768, 8, 1048577, 262148, 5, 13, 196612, 5, 11, 131076, 5, 11, 65539, 4, 1048579, 4, 5, 655369, 4, 6, 1048584, -65532, 6, 1048579, 65541, 5, 1048582, 65541, 4, 655365, 65540, 4, 655366, 5, 5, 1048584, 5, 4, 655369, 4, 4, 655363, 65541, 6, 1048582, 65541, 7, 1048581, 5, 7, 1048585, 5, 6, 1048584, 6, 2, 1441799, 6, 3, 5, 7, 2, 1048583, 7, 3, 1048581, 4, 0, 1441799, 4, 1, 1441799, 4, 2, 1441799, 4, 3, 1441799, 5, 1, 1441799, 5, 0, 1441799, 6, 0, 1441799, 6, 1, 1441799, 7, 1, 1441799, 7, 0, 1441799, 8, 1, 1441799, 8, 0, 1441799, 9, 0, 1441799, 9, 1, 1441799, 10, 1, 1441799, 10, 0, 1441799, 11, 0, 1441799, 11, 1, 1441799, -65530, 3, 4, -65529, 3, 1048580, -65531, 3, 1048580, 327689, 11, 1441797, 458763, 11, 1441797, 327690, 10, 655376, 393227, 10, 655376, 393226, 12, 655368, 327689, 13, 1441806, 327690, 13, 1048590, 327691, 7, 1441809, 327691, 4, 1441808) +} +metadata/_editor_floor_ = Vector3(4, 4, 0) [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = ExtResource("3_64uhs") @@ -14,13 +18,17 @@ environment = ExtResource("3_64uhs") [node name="DirectionalLight" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.965926, -0.166366, 0.198267, 1.42109e-14, 0.766044, 0.642788, -0.258819, 0.620886, -0.739941, 0, 0, 0) shadow_enabled = true -directional_shadow_max_distance = 40.0 +shadow_bias = 0.02 +shadow_blur = 1.5 +directional_shadow_mode = 0 +directional_shadow_fade_start = 1.0 +directional_shadow_max_distance = 55.0 [node name="Reflection1" type="ReflectionProbe" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1, -1) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.28208, 1, -1) intensity = 0.5 max_distance = 60.0 -extents = Vector3(15, 10, 22) +extents = Vector3(17.9758, 10, 26.2909) origin_offset = Vector3(0, -1.5, 0) box_projection = true cull_mask = 1048573 @@ -42,6 +50,15 @@ origin_offset = Vector3(0, -0.22168, 0) box_projection = true cull_mask = 1048573 +[node name="Reflection7" type="ReflectionProbe" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.0391, 6.19519, 1.14534) +intensity = 0.5 +max_distance = 18.7 +extents = Vector3(4, 3, 7) +origin_offset = Vector3(0, -0.22168, 0) +box_projection = true +cull_mask = 1048573 + [node name="Reflection4" type="ReflectionProbe" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21, 1, 15) intensity = 0.5 @@ -52,10 +69,18 @@ box_projection = true cull_mask = 1048573 [node name="Reflection5" type="ReflectionProbe" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 1, 8) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 47.5486, 1, 8) intensity = 0.5 max_distance = 60.0 -extents = Vector3(13, 10, 20) +extents = Vector3(18.4972, 10, 22.393) +origin_offset = Vector3(0, -6.5, 0) +cull_mask = 1048573 + +[node name="Reflection6" type="ReflectionProbe" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 25.0962, 0.999998, -15.4268) +intensity = 0.5 +max_distance = 60.0 +extents = Vector3(12, 10, 12) origin_offset = Vector3(0, -6.5, 0) cull_mask = 1048573 @@ -68,3 +93,15 @@ skeleton = NodePath("../GridMap") transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 21, -3, 17) mesh = ExtResource("2_vkxfl") skeleton = NodePath("../GridMap") + +[node name="Label3D" type="Label3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 17.2106, 6, -1.99773) +visibility_range_end = 8.5 +visibility_range_end_margin = 3.0 +visibility_range_fade_mode = 1 +pixel_size = 0.01 +double_sided = false +modulate = Color(0.301961, 0.623529, 0.862745, 1) +text = "You have found +a secret area!" +font_size = 48 diff --git a/3d/platformer/stage/tile_material.tres b/3d/platformer/stage/tile_material.tres index 04bf0536173..0227d276ea8 100644 --- a/3d/platformer/stage/tile_material.tres +++ b/3d/platformer/stage/tile_material.tres @@ -6,5 +6,5 @@ [resource] albedo_texture = ExtResource("1_jnowm") roughness_texture = ExtResource("2_fh1ra") -texture_filter = 0 +texture_filter = 4 texture_repeat = false diff --git a/3d/rigidbody_character/README.md b/3d/rigidbody_character/README.md index cb28b6267a4..65bbcc10efe 100644 --- a/3d/rigidbody_character/README.md +++ b/3d/rigidbody_character/README.md @@ -18,8 +18,11 @@ for the player, and [`StaticBody`](https://docs.godotengine.org/en/latest/classe for the level. Each has colliders, the player moves itself via `apply_central_impulse()` in `_physics_process()`, and collides with the level. -## Screenshots +The [`ShapeCast3D`](https://docs.godotengine.org/en/latest/classes/class_shapecast3d.html) node is used to detect whether the player is able to jump +(i.e. touching the floor). Compared to a [`RayCast3D`](https://docs.godotengine.org/en/latest/classes/class_raycast3d.html) which is infinitely thin, +this allows for more reliable checking if the player is standing over an edge or +corner. -![Screenshot](screenshots/ingame.png) +## Screenshots -![Screenshot](screenshots/editor.png) +![Screenshot](screenshots/rigidbody_character.webp) diff --git a/3d/rigidbody_character/cube_rigidbody.tscn b/3d/rigidbody_character/cube_rigidbody.tscn index fc0dcf40716..46a8ea66d0d 100644 --- a/3d/rigidbody_character/cube_rigidbody.tscn +++ b/3d/rigidbody_character/cube_rigidbody.tscn @@ -1,25 +1,22 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=5 format=3 uid="uid://bftavngs5kq7e"] -[ext_resource path="res://models/white_wood.png" type="Texture2D" id=1] +[ext_resource type="Texture2D" uid="uid://5wiey7d4yffc" path="res://models/white_wood.png" id="1"] +[ext_resource type="ArrayMesh" uid="uid://h65pkfq5sgmy" path="res://models/cube.mesh" id="1_nx6dl"] -[sub_resource type="BoxShape3D" id=1] -extents = Vector3(0.5, 0.5, 0.5) +[sub_resource type="BoxShape3D" id="BoxShape3D_gh4dm"] -[sub_resource type="StandardMaterial3D" id=3] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_y4xt8"] resource_name = "Material" -albedo_color = Color(0.917647, 0.384314, 0.0823529, 1) -albedo_texture = ExtResource( 1 ) +albedo_color = Color(0.92, 0.80822, 0.1748, 1) +albedo_texture = ExtResource("1") roughness = 0.75 +texture_filter = 5 -[sub_resource type="BoxMesh" id=2] -material = SubResource( 3 ) -size = Vector3(1, 1, 1) - -[node name="cube_rigidbody" type="RigidDynamicBody3D"] +[node name="cube_rigidbody" type="RigidBody3D"] [node name="CollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource( 1 ) +shape = SubResource("BoxShape3D_gh4dm") [node name="MeshInstance3D" type="MeshInstance3D" parent="."] -mesh = SubResource( 2 ) -surface_material_override/0 = null +mesh = ExtResource("1_nx6dl") +surface_material_override/0 = SubResource("StandardMaterial3D_y4xt8") diff --git a/3d/rigidbody_character/cubelib.tres b/3d/rigidbody_character/cubelib.tres index 04edee9ddb9..a441fe3c94d 100644 --- a/3d/rigidbody_character/cubelib.tres +++ b/3d/rigidbody_character/cubelib.tres @@ -1,8 +1,8 @@ [gd_resource type="MeshLibrary" load_steps=5 format=3 uid="uid://dxc3y3vtd7ins"] -[ext_resource type="ArrayMesh" path="res://models/cube.mesh" id="1"] +[ext_resource type="ArrayMesh" uid="uid://h65pkfq5sgmy" path="res://models/cube.mesh" id="1"] -[sub_resource type="Image" id="Image_jyk8h"] +[sub_resource type="Image" id="Image_xerih"] data = { "data": PackedByteArray(76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 66, 41, 73, 255, 68, 42, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 32, 61, 255, 62, 36, 68, 255, 70, 43, 77, 255, 72, 45, 78, 255, 67, 43, 73, 255, 63, 41, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 33, 63, 255, 59, 34, 65, 255, 65, 38, 72, 255, 73, 45, 80, 255, 76, 47, 82, 255, 72, 47, 78, 255, 69, 46, 75, 255, 63, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 59, 34, 64, 255, 61, 35, 67, 255, 63, 36, 69, 255, 66, 38, 73, 255, 75, 44, 81, 255, 78, 47, 84, 255, 76, 49, 83, 255, 75, 51, 82, 255, 69, 46, 75, 255, 62, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 54, 32, 59, 255, 60, 35, 65, 255, 62, 36, 68, 255, 63, 37, 70, 255, 62, 36, 69, 255, 69, 40, 76, 255, 80, 48, 87, 255, 82, 50, 89, 255, 81, 52, 88, 255, 80, 54, 87, 255, 75, 51, 81, 255, 68, 46, 75, 255, 63, 42, 68, 255, 55, 35, 61, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 52, 31, 57, 255, 57, 34, 63, 255, 64, 37, 70, 255, 62, 36, 69, 255, 62, 36, 69, 255, 68, 39, 75, 255, 77, 45, 84, 255, 88, 52, 94, 255, 89, 54, 96, 255, 85, 55, 92, 255, 83, 55, 90, 255, 81, 55, 87, 255, 75, 51, 81, 255, 68, 46, 74, 255, 61, 40, 67, 255, 54, 34, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 48, 30, 53, 255, 51, 31, 56, 255, 54, 32, 59, 255, 61, 36, 67, 255, 63, 36, 69, 255, 62, 36, 69, 255, 70, 40, 77, 255, 74, 43, 81, 255, 79, 46, 87, 255, 87, 53, 95, 255, 90, 56, 97, 255, 91, 59, 99, 255, 85, 55, 93, 255, 85, 58, 92, 255, 81, 56, 87, 255, 73, 50, 80, 255, 67, 45, 73, 255, 60, 39, 65, 255, 53, 34, 58, 255, 46, 29, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 28, 51, 255, 50, 30, 55, 255, 54, 32, 59, 255, 59, 36, 65, 255, 64, 37, 70, 255, 65, 37, 72, 255, 72, 42, 80, 255, 76, 44, 84, 255, 76, 44, 84, 255, 82, 49, 90, 255, 94, 58, 103, 255, 97, 61, 105, 255, 95, 61, 103, 255, 91, 59, 98, 255, 88, 60, 96, 255, 86, 60, 93, 255, 79, 54, 85, 255, 72, 48, 78, 255, 67, 45, 73, 255, 60, 39, 65, 255, 52, 33, 57, 255, 45, 29, 50, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 45, 28, 49, 255, 48, 29, 53, 255, 55, 33, 60, 255, 60, 36, 65, 255, 64, 39, 70, 255, 68, 40, 74, 255, 75, 44, 83, 255, 78, 46, 85, 255, 75, 44, 84, 255, 78, 46, 87, 255, 85, 51, 93, 255, 93, 58, 103, 255, 99, 62, 107, 255, 101, 66, 110, 255, 96, 63, 104, 255, 92, 61, 100, 255, 90, 61, 97, 255, 85, 59, 92, 255, 77, 52, 84, 255, 73, 49, 79, 255, 67, 45, 72, 255, 58, 38, 63, 255, 49, 31, 54, 255, 43, 27, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 38, 24, 41, 255, 45, 29, 49, 255, 50, 31, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 63, 38, 69, 255, 68, 41, 74, 255, 75, 44, 82, 255, 77, 45, 85, 255, 76, 44, 84, 255, 80, 47, 88, 255, 80, 47, 89, 255, 86, 51, 95, 255, 98, 60, 106, 255, 102, 64, 110, 255, 105, 69, 114, 255, 101, 67, 110, 255, 95, 62, 103, 255, 93, 62, 100, 255, 90, 61, 97, 255, 82, 56, 89, 255, 76, 50, 82, 255, 72, 49, 78, 255, 64, 42, 69, 255, 53, 33, 58, 255, 46, 28, 50, 255, 41, 26, 45, 255, 38, 24, 42, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 35, 22, 39, 255, 41, 26, 45, 255, 50, 32, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 62, 37, 68, 255, 67, 40, 73, 255, 72, 44, 79, 255, 75, 45, 83, 255, 78, 46, 85, 255, 82, 48, 90, 255, 83, 49, 92, 255, 82, 47, 91, 255, 92, 54, 101, 255, 101, 61, 108, 255, 105, 64, 113, 255, 109, 70, 119, 255, 105, 69, 114, 255, 100, 66, 109, 255, 95, 62, 103, 255, 94, 63, 101, 255, 89, 59, 95, 255, 80, 52, 86, 255, 76, 51, 82, 255, 69, 45, 75, 255, 56, 34, 61, 255, 49, 29, 54, 255, 44, 26, 48, 255, 43, 27, 47, 255, 37, 23, 40, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 29, 18, 32, 255, 34, 21, 37, 255, 37, 22, 41, 255, 44, 27, 48, 255, 51, 32, 56, 255, 57, 35, 62, 255, 61, 38, 68, 255, 66, 40, 72, 255, 71, 43, 78, 255, 73, 45, 81, 255, 77, 46, 85, 255, 82, 49, 90, 255, 88, 53, 96, 255, 85, 50, 95, 255, 86, 49, 96, 255, 94, 55, 104, 255, 102, 60, 111, 255, 104, 63, 114, 255, 112, 71, 122, 255, 110, 72, 119, 255, 104, 69, 113, 255, 99, 64, 107, 255, 93, 60, 101, 255, 92, 60, 99, 255, 87, 55, 94, 255, 81, 53, 87, 255, 73, 48, 80, 255, 62, 38, 67, 255, 53, 32, 59, 255, 48, 28, 53, 255, 46, 28, 50, 255, 43, 27, 46, 255, 35, 21, 38, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 28, 17, 31, 255, 33, 21, 37, 255, 38, 23, 41, 255, 41, 24, 45, 255, 48, 28, 52, 255, 55, 33, 60, 255, 61, 38, 67, 255, 65, 40, 72, 255, 70, 43, 77, 255, 72, 44, 79, 255, 76, 46, 83, 255, 81, 49, 89, 255, 88, 52, 96, 255, 88, 52, 97, 255, 88, 51, 98, 255, 92, 53, 101, 255, 97, 57, 107, 255, 106, 63, 115, 255, 111, 68, 121, 255, 116, 74, 127, 255, 114, 75, 124, 255, 109, 72, 119, 255, 103, 67, 112, 255, 95, 60, 104, 255, 91, 58, 99, 255, 89, 57, 97, 255, 86, 55, 93, 255, 78, 51, 85, 255, 68, 43, 74, 255, 60, 37, 65, 255, 53, 31, 58, 255, 48, 29, 53, 255, 46, 29, 50, 255, 39, 24, 42, 255, 32, 20, 36, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 17, 29, 255, 33, 21, 36, 255, 38, 25, 42, 255, 41, 24, 45, 255, 45, 26, 50, 255, 53, 32, 58, 255, 61, 38, 67, 255, 65, 40, 71, 255, 69, 41, 75, 255, 72, 43, 79, 255, 76, 46, 84, 255, 80, 49, 88, 255, 86, 52, 94, 255, 89, 53, 98, 255, 93, 55, 102, 255, 98, 58, 108, 255, 97, 57, 107, 255, 101, 59, 111, 255, 117, 72, 127, 255, 123, 77, 134, 255, 121, 77, 131, 255, 119, 77, 129, 255, 111, 72, 121, 255, 105, 68, 115, 255, 99, 63, 108, 255, 92, 58, 101, 255, 90, 57, 98, 255, 87, 55, 94, 255, 83, 53, 90, 255, 74, 47, 81, 255, 65, 41, 71, 255, 59, 36, 65, 255, 53, 33, 59, 255, 48, 29, 53, 255, 44, 27, 48, 255, 37, 23, 41, 255, 31, 18, 34, 255, 26, 16, 28, 255, 21, 12, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 20, 13, 22, 255, 26, 17, 28, 255, 32, 21, 35, 255, 39, 26, 42, 255, 42, 27, 46, 255, 44, 26, 49, 255, 51, 31, 56, 255, 58, 36, 64, 255, 63, 39, 69, 255, 68, 41, 75, 255, 73, 44, 80, 255, 76, 47, 84, 255, 79, 48, 87, 255, 85, 52, 94, 255, 90, 55, 99, 255, 96, 58, 105, 255, 102, 62, 112, 255, 102, 61, 112, 255, 100, 59, 110, 255, 107, 64, 117, 255, 120, 74, 130, 255, 128, 81, 139, 255, 123, 78, 134, 255, 122, 78, 133, 255, 114, 73, 124, 255, 105, 66, 115, 255, 101, 64, 110, 255, 95, 60, 104, 255, 90, 56, 98, 255, 87, 55, 95, 255, 85, 54, 92, 255, 79, 49, 85, 255, 70, 44, 77, 255, 63, 39, 69, 255, 58, 36, 64, 255, 53, 33, 58, 255, 47, 29, 52, 255, 41, 25, 45, 255, 35, 21, 39, 255, 29, 17, 31, 255, 24, 14, 26, 255, 20, 11, 21, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 20, 255, 25, 16, 27, 255, 31, 20, 33, 255, 38, 25, 41, 255, 45, 30, 48, 255, 47, 30, 51, 255, 50, 31, 55, 255, 57, 35, 62, 255, 61, 37, 67, 255, 67, 40, 73, 255, 73, 44, 80, 255, 77, 46, 84, 255, 79, 48, 86, 255, 85, 52, 93, 255, 91, 55, 100, 255, 96, 58, 105, 255, 103, 63, 112, 255, 106, 64, 116, 255, 103, 62, 114, 255, 106, 63, 116, 255, 111, 65, 120, 255, 122, 75, 132, 255, 129, 80, 140, 255, 128, 81, 139, 255, 124, 79, 135, 255, 119, 76, 129, 255, 110, 69, 119, 255, 102, 63, 111, 255, 97, 60, 106, 255, 91, 57, 100, 255, 87, 55, 96, 255, 85, 53, 93, 255, 82, 51, 89, 255, 74, 46, 81, 255, 66, 40, 72, 255, 61, 37, 67, 255, 57, 35, 62, 255, 50, 31, 55, 255, 45, 27, 49, 255, 39, 24, 43, 255, 33, 20, 37, 255, 28, 16, 30, 255, 23, 14, 26, 255, 18, 10, 20, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 17, 11, 19, 255, 23, 16, 25, 255, 29, 19, 32, 255, 35, 24, 38, 255, 42, 29, 46, 255, 49, 33, 53, 255, 52, 33, 56, 255, 56, 35, 61, 255, 61, 38, 66, 255, 65, 40, 71, 255, 71, 43, 78, 255, 76, 46, 83, 255, 81, 49, 89, 255, 84, 51, 93, 255, 89, 54, 98, 255, 96, 58, 105, 255, 104, 63, 113, 255, 110, 66, 120, 255, 107, 64, 117, 255, 108, 64, 118, 255, 112, 67, 122, 255, 115, 68, 126, 255, 122, 73, 137, 255, 127, 76, 141, 255, 130, 81, 140, 255, 126, 79, 136, 255, 122, 76, 132, 255, 116, 73, 126, 255, 108, 66, 116, 255, 101, 62, 110, 255, 95, 59, 104, 255, 90, 56, 98, 255, 85, 53, 93, 255, 82, 51, 90, 255, 77, 48, 84, 255, 70, 44, 77, 255, 65, 40, 71, 255, 60, 36, 65, 255, 55, 33, 60, 255, 48, 29, 53, 255, 42, 25, 46, 255, 37, 22, 41, 255, 32, 19, 35, 255, 27, 16, 29, 255, 21, 13, 24, 255, 16, 9, 17, 255, 10, 6, 11, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 10, 6, 11, 255, 16, 10, 17, 255, 22, 15, 23, 255, 28, 19, 30, 255, 33, 23, 36, 255, 40, 27, 43, 255, 46, 30, 50, 255, 53, 35, 58, 255, 57, 36, 62, 255, 61, 38, 67, 255, 64, 40, 70, 255, 69, 42, 75, 255, 73, 44, 80, 255, 80, 49, 88, 255, 84, 51, 92, 255, 88, 53, 96, 255, 94, 57, 103, 255, 105, 64, 114, 255, 111, 68, 122, 255, 110, 66, 120, 255, 110, 65, 120, 255, 112, 67, 123, 255, 115, 69, 127, 255, 118, 70, 131, 255, 129, 78, 143, 255, 131, 79, 144, 255, 130, 80, 140, 255, 129, 80, 139, 255, 123, 77, 133, 255, 121, 75, 130, 255, 112, 68, 120, 255, 107, 65, 116, 255, 101, 62, 110, 255, 94, 58, 102, 255, 89, 55, 97, 255, 83, 52, 91, 255, 79, 49, 86, 255, 73, 45, 80, 255, 69, 42, 75, 255, 64, 39, 70, 255, 59, 35, 64, 255, 52, 32, 57, 255, 47, 28, 51, 255, 41, 24, 45, 255, 35, 21, 38, 255, 29, 17, 32, 255, 24, 14, 26, 255, 19, 11, 21, 255, 14, 8, 15, 255, 9, 5, 10, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 8, 5, 9, 255, 14, 9, 15, 255, 20, 14, 22, 255, 26, 18, 28, 255, 32, 22, 35, 255, 38, 26, 41, 255, 44, 29, 47, 255, 50, 33, 54, 255, 58, 37, 62, 255, 62, 39, 67, 255, 65, 41, 71, 255, 67, 42, 74, 255, 72, 44, 79, 255, 77, 47, 84, 255, 81, 50, 89, 255, 88, 54, 96, 255, 93, 56, 102, 255, 103, 64, 113, 255, 113, 70, 123, 255, 113, 69, 123, 255, 111, 67, 122, 255, 113, 67, 123, 255, 116, 68, 126, 255, 118, 71, 131, 255, 124, 75, 137, 255, 136, 82, 148, 255, 137, 83, 149, 255, 133, 80, 142, 255, 132, 82, 142, 255, 123, 76, 134, 255, 121, 74, 130, 255, 116, 71, 125, 255, 110, 66, 119, 255, 108, 65, 118, 255, 99, 61, 109, 255, 93, 58, 102, 255, 88, 55, 96, 255, 81, 50, 89, 255, 77, 48, 84, 255, 72, 44, 79, 255, 68, 41, 74, 255, 63, 38, 69, 255, 55, 33, 61, 255, 50, 30, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 33, 19, 36, 255, 26, 15, 28, 255, 21, 12, 23, 255, 17, 10, 19, 255, 12, 7, 13, 255, 8, 5, 9, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 18, 12, 19, 255, 24, 16, 26, 255, 31, 21, 33, 255, 37, 26, 40, 255, 43, 30, 47, 255, 49, 32, 53, 255, 56, 35, 60, 255, 61, 39, 66, 255, 65, 41, 70, 255, 68, 42, 74, 255, 71, 44, 78, 255, 74, 46, 82, 255, 78, 48, 86, 255, 84, 52, 92, 255, 92, 56, 101, 255, 103, 63, 112, 255, 110, 68, 120, 255, 115, 71, 125, 255, 114, 69, 125, 255, 115, 69, 126, 255, 117, 69, 127, 255, 119, 71, 130, 255, 122, 73, 134, 255, 129, 78, 141, 255, 138, 83, 151, 255, 137, 82, 150, 255, 133, 81, 143, 255, 132, 80, 141, 255, 127, 77, 136, 255, 123, 75, 132, 255, 118, 72, 127, 255, 113, 69, 122, 255, 109, 66, 119, 255, 105, 63, 114, 255, 96, 58, 105, 255, 88, 54, 97, 255, 83, 52, 91, 255, 78, 49, 86, 255, 74, 45, 81, 255, 71, 43, 78, 255, 66, 39, 72, 255, 59, 36, 65, 255, 52, 32, 57, 255, 47, 28, 51, 255, 43, 26, 47, 255, 39, 23, 43, 255, 32, 18, 35, 255, 24, 14, 27, 255, 19, 11, 21, 255, 15, 9, 17, 255, 11, 7, 12, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 15, 10, 17, 255, 22, 14, 24, 255, 28, 19, 30, 255, 35, 24, 38, 255, 41, 28, 45, 255, 48, 32, 51, 255, 54, 35, 58, 255, 58, 37, 63, 255, 62, 39, 68, 255, 66, 41, 72, 255, 69, 43, 75, 255, 72, 45, 79, 255, 76, 48, 84, 255, 80, 49, 88, 255, 92, 56, 100, 255, 103, 63, 112, 255, 109, 67, 118, 255, 114, 71, 125, 255, 118, 73, 128, 255, 118, 72, 129, 255, 120, 72, 131, 255, 119, 70, 129, 255, 121, 72, 132, 255, 127, 76, 138, 255, 134, 81, 143, 255, 143, 86, 155, 255, 142, 86, 155, 255, 133, 81, 146, 255, 132, 80, 142, 255, 128, 77, 137, 255, 123, 74, 132, 255, 122, 74, 131, 255, 117, 71, 126, 255, 111, 67, 121, 255, 109, 66, 120, 255, 102, 61, 111, 255, 88, 53, 97, 255, 84, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 73, 45, 80, 255, 70, 43, 76, 255, 63, 38, 69, 255, 56, 34, 61, 255, 50, 31, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 36, 21, 40, 255, 30, 17, 33, 255, 23, 13, 25, 255, 18, 10, 19, 255, 14, 8, 15, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 21, 255, 25, 16, 28, 255, 31, 21, 34, 255, 39, 26, 42, 255, 45, 31, 49, 255, 51, 34, 55, 255, 55, 35, 60, 255, 60, 37, 65, 255, 64, 40, 69, 255, 67, 42, 73, 255, 72, 45, 79, 255, 74, 46, 82, 255, 78, 48, 85, 255, 91, 55, 99, 255, 101, 62, 110, 255, 109, 67, 118, 255, 114, 71, 124, 255, 118, 73, 129, 255, 122, 75, 132, 255, 122, 74, 133, 255, 122, 73, 133, 255, 123, 73, 133, 255, 124, 75, 135, 255, 133, 81, 143, 255, 134, 82, 144, 255, 146, 90, 160, 255, 145, 90, 160, 255, 138, 84, 152, 255, 132, 81, 146, 255, 124, 76, 135, 255, 123, 74, 132, 255, 122, 73, 130, 255, 118, 71, 128, 255, 114, 69, 125, 255, 111, 67, 121, 255, 107, 65, 117, 255, 95, 57, 104, 255, 89, 53, 97, 255, 85, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 72, 44, 79, 255, 67, 41, 74, 255, 60, 37, 66, 255, 54, 33, 59, 255, 48, 29, 53, 255, 43, 26, 48, 255, 37, 22, 41, 255, 32, 19, 36, 255, 27, 16, 30, 255, 22, 13, 24, 255, 17, 10, 19, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 23, 15, 25, 255, 29, 19, 32, 255, 35, 23, 38, 255, 42, 28, 46, 255, 48, 31, 52, 255, 52, 33, 57, 255, 57, 36, 62, 255, 61, 38, 67, 255, 65, 40, 71, 255, 71, 44, 78, 255, 75, 46, 82, 255, 76, 46, 84, 255, 87, 52, 94, 255, 97, 60, 106, 255, 106, 65, 115, 255, 113, 70, 123, 255, 118, 73, 129, 255, 122, 75, 133, 255, 123, 76, 134, 255, 124, 75, 135, 255, 127, 76, 137, 255, 125, 75, 135, 255, 131, 80, 141, 255, 133, 81, 143, 255, 133, 81, 144, 255, 142, 84, 155, 255, 140, 84, 154, 255, 140, 85, 154, 255, 140, 85, 154, 255, 125, 77, 138, 255, 122, 74, 133, 255, 121, 73, 131, 255, 120, 72, 130, 255, 117, 71, 129, 255, 112, 68, 124, 255, 109, 66, 120, 255, 102, 61, 111, 255, 94, 56, 103, 255, 92, 55, 100, 255, 88, 54, 96, 255, 82, 50, 90, 255, 75, 46, 82, 255, 71, 43, 78, 255, 65, 39, 71, 255, 59, 36, 65, 255, 53, 32, 58, 255, 47, 28, 52, 255, 41, 25, 46, 255, 35, 20, 39, 255, 29, 17, 33, 255, 25, 15, 28, 255, 21, 13, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 18, 30, 255, 33, 22, 36, 255, 40, 26, 43, 255, 46, 30, 50, 255, 51, 33, 55, 255, 55, 35, 60, 255, 59, 37, 65, 255, 63, 39, 69, 255, 69, 43, 76, 255, 74, 46, 81, 255, 74, 45, 82, 255, 82, 49, 90, 255, 93, 56, 101, 255, 103, 63, 111, 255, 110, 68, 120, 255, 117, 72, 127, 255, 120, 74, 131, 255, 121, 73, 131, 255, 124, 76, 135, 255, 129, 79, 139, 255, 131, 80, 139, 255, 130, 80, 140, 255, 133, 81, 143, 255, 133, 80, 144, 255, 135, 83, 146, 255, 143, 90, 156, 255, 143, 89, 157, 255, 138, 84, 151, 255, 139, 85, 153, 255, 133, 81, 146, 255, 121, 75, 134, 255, 122, 75, 134, 255, 120, 73, 131, 255, 120, 72, 131, 255, 119, 72, 130, 255, 112, 68, 123, 255, 107, 65, 117, 255, 97, 58, 107, 255, 97, 59, 106, 255, 94, 57, 102, 255, 91, 56, 99, 255, 84, 51, 91, 255, 74, 45, 81, 255, 68, 41, 75, 255, 63, 38, 70, 255, 57, 35, 63, 255, 51, 31, 56, 255, 46, 28, 51, 255, 39, 23, 43, 255, 33, 19, 36, 255, 28, 17, 31, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 31, 20, 34, 255, 38, 25, 41, 255, 44, 29, 48, 255, 50, 33, 54, 255, 55, 35, 60, 255, 59, 37, 64, 255, 62, 39, 68, 255, 67, 42, 74, 255, 73, 45, 80, 255, 75, 45, 83, 255, 78, 47, 86, 255, 88, 53, 96, 255, 97, 59, 105, 255, 105, 64, 114, 255, 112, 69, 123, 255, 118, 72, 128, 255, 117, 71, 127, 255, 121, 74, 131, 255, 130, 81, 140, 255, 133, 82, 142, 255, 134, 82, 142, 255, 135, 82, 144, 255, 134, 82, 144, 255, 133, 82, 144, 255, 134, 83, 146, 255, 145, 91, 159, 255, 144, 90, 158, 255, 133, 82, 147, 255, 137, 84, 150, 255, 134, 81, 147, 255, 125, 77, 138, 255, 121, 75, 134, 255, 122, 75, 133, 255, 119, 74, 130, 255, 122, 74, 133, 255, 117, 70, 128, 255, 112, 68, 122, 255, 100, 60, 110, 255, 95, 57, 105, 255, 99, 60, 107, 255, 96, 59, 104, 255, 91, 56, 99, 255, 84, 52, 91, 255, 75, 46, 82, 255, 68, 41, 74, 255, 62, 37, 68, 255, 55, 33, 60, 255, 48, 29, 53, 255, 43, 26, 48, 255, 36, 21, 39, 255, 31, 18, 34, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 36, 23, 39, 255, 42, 28, 46, 255, 48, 32, 52, 255, 54, 36, 59, 255, 58, 37, 64, 255, 61, 38, 66, 255, 66, 41, 72, 255, 73, 45, 80, 255, 78, 47, 85, 255, 81, 48, 89, 255, 83, 50, 91, 255, 90, 54, 98, 255, 96, 58, 106, 255, 106, 65, 116, 255, 112, 68, 122, 255, 117, 71, 128, 255, 119, 73, 129, 255, 125, 79, 136, 255, 131, 83, 143, 255, 136, 84, 145, 255, 137, 83, 145, 255, 134, 82, 144, 255, 133, 82, 144, 255, 138, 85, 149, 255, 138, 85, 150, 255, 136, 87, 151, 255, 132, 84, 147, 255, 138, 85, 152, 255, 137, 84, 150, 255, 134, 82, 147, 255, 130, 80, 143, 255, 123, 76, 136, 255, 123, 76, 135, 255, 123, 77, 134, 255, 118, 74, 129, 255, 119, 73, 130, 255, 114, 69, 125, 255, 107, 65, 117, 255, 95, 57, 106, 255, 100, 61, 109, 255, 100, 61, 109, 255, 96, 60, 105, 255, 90, 55, 98, 255, 83, 51, 90, 255, 76, 47, 82, 255, 68, 41, 74, 255, 60, 36, 66, 255, 53, 32, 58, 255, 44, 26, 49, 255, 38, 22, 43, 255, 34, 20, 37, 255, 31, 19, 34, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 40, 26, 43, 255, 46, 30, 50, 255, 52, 34, 57, 255, 57, 37, 62, 255, 59, 37, 65, 255, 64, 40, 70, 255, 72, 44, 79, 255, 78, 47, 85, 255, 84, 51, 91, 255, 87, 52, 95, 255, 89, 53, 97, 255, 88, 53, 97, 255, 99, 60, 109, 255, 107, 64, 117, 255, 114, 70, 125, 255, 118, 74, 129, 255, 121, 76, 132, 255, 128, 81, 139, 255, 136, 86, 147, 255, 136, 84, 146, 255, 135, 83, 144, 255, 133, 82, 144, 255, 139, 86, 150, 255, 143, 87, 153, 255, 153, 98, 169, 255, 219, 159, 236, 255, 229, 167, 245, 255, 176, 115, 191, 255, 138, 85, 152, 255, 136, 83, 150, 255, 134, 82, 148, 255, 132, 80, 145, 255, 125, 78, 137, 255, 125, 78, 136, 255, 123, 77, 134, 255, 118, 74, 128, 255, 117, 72, 128, 255, 110, 67, 120, 255, 105, 63, 115, 255, 101, 61, 111, 255, 102, 63, 112, 255, 100, 62, 109, 255, 95, 59, 103, 255, 88, 54, 95, 255, 82, 51, 89, 255, 75, 46, 82, 255, 66, 40, 72, 255, 59, 36, 64, 255, 50, 30, 55, 255, 42, 24, 46, 255, 37, 22, 41, 255, 34, 20, 37, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 43, 27, 47, 255, 49, 32, 54, 255, 56, 37, 61, 255, 59, 38, 65, 255, 64, 40, 69, 255, 70, 42, 75, 255, 75, 45, 82, 255, 81, 49, 89, 255, 87, 53, 96, 255, 91, 55, 99, 255, 94, 57, 103, 255, 96, 58, 105, 255, 105, 64, 115, 255, 110, 68, 120, 255, 114, 72, 124, 255, 119, 76, 130, 255, 125, 79, 136, 255, 130, 82, 142, 255, 134, 85, 146, 255, 134, 84, 145, 255, 135, 83, 145, 255, 139, 85, 149, 255, 141, 86, 156, 255, 175, 117, 191, 255, 162, 105, 178, 255, 166, 106, 182, 255, 168, 108, 184, 255, 178, 117, 193, 255, 198, 136, 214, 255, 150, 92, 161, 255, 137, 83, 150, 255, 138, 84, 150, 255, 133, 81, 145, 255, 126, 78, 137, 255, 125, 79, 136, 255, 123, 77, 133, 255, 119, 74, 130, 255, 113, 70, 123, 255, 109, 67, 119, 255, 105, 64, 115, 255, 103, 62, 112, 255, 103, 63, 112, 255, 99, 61, 108, 255, 92, 57, 101, 255, 85, 53, 93, 255, 79, 48, 86, 255, 72, 44, 79, 255, 64, 38, 69, 255, 56, 34, 62, 255, 47, 27, 51, 255, 40, 23, 45, 255, 38, 23, 41, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 29, 50, 255, 54, 35, 59, 255, 60, 39, 65, 255, 64, 40, 70, 255, 69, 43, 74, 255, 73, 44, 79, 255, 77, 46, 84, 255, 84, 50, 92, 255, 88, 53, 97, 255, 95, 57, 104, 255, 99, 60, 109, 255, 103, 63, 112, 255, 106, 66, 116, 255, 109, 69, 119, 255, 117, 74, 127, 255, 128, 82, 138, 255, 126, 79, 138, 255, 130, 83, 142, 255, 134, 85, 147, 255, 136, 84, 147, 255, 139, 85, 149, 255, 152, 93, 167, 255, 185, 122, 201, 255, 160, 98, 175, 255, 157, 98, 173, 255, 157, 98, 173, 255, 157, 98, 173, 255, 152, 94, 168, 255, 156, 96, 171, 255, 189, 124, 200, 255, 156, 95, 167, 255, 139, 84, 152, 255, 136, 83, 149, 255, 131, 81, 142, 255, 126, 78, 136, 255, 122, 76, 133, 255, 115, 71, 125, 255, 113, 70, 123, 255, 110, 68, 119, 255, 107, 66, 117, 255, 105, 64, 114, 255, 102, 63, 112, 255, 101, 62, 110, 255, 96, 59, 105, 255, 89, 55, 97, 255, 81, 50, 88, 255, 74, 45, 80, 255, 66, 40, 72, 255, 59, 35, 64, 255, 51, 30, 56, 255, 44, 26, 49, 255, 40, 24, 44, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 50, 32, 55, 255, 58, 37, 63, 255, 64, 41, 69, 255, 69, 43, 74, 255, 73, 45, 79, 255, 77, 47, 83, 255, 81, 49, 89, 255, 87, 52, 95, 255, 93, 56, 102, 255, 98, 60, 108, 255, 100, 61, 109, 255, 104, 64, 113, 255, 109, 68, 118, 255, 112, 71, 122, 255, 122, 78, 133, 255, 127, 81, 138, 255, 128, 81, 140, 255, 133, 84, 146, 255, 132, 84, 145, 255, 143, 88, 157, 255, 172, 106, 187, 255, 172, 107, 187, 255, 165, 100, 180, 255, 164, 99, 179, 255, 159, 96, 174, 255, 158, 98, 173, 255, 152, 94, 167, 255, 141, 84, 156, 255, 143, 85, 157, 255, 152, 91, 164, 255, 167, 103, 177, 255, 170, 105, 179, 255, 143, 89, 153, 255, 134, 84, 147, 255, 128, 79, 139, 255, 121, 73, 130, 255, 116, 71, 125, 255, 111, 68, 120, 255, 111, 68, 120, 255, 108, 68, 118, 255, 104, 66, 114, 255, 104, 64, 114, 255, 100, 61, 109, 255, 97, 59, 105, 255, 93, 57, 101, 255, 85, 52, 92, 255, 75, 46, 82, 255, 68, 41, 75, 255, 61, 36, 67, 255, 54, 32, 59, 255, 48, 28, 53, 255, 43, 25, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 34, 59, 255, 62, 39, 67, 255, 67, 42, 72, 255, 72, 45, 77, 255, 75, 46, 81, 255, 80, 49, 86, 255, 85, 51, 92, 255, 91, 55, 100, 255, 98, 59, 108, 255, 101, 62, 110, 255, 105, 65, 114, 255, 106, 65, 115, 255, 109, 68, 119, 255, 113, 71, 124, 255, 122, 78, 133, 255, 128, 82, 139, 255, 134, 85, 146, 255, 132, 84, 145, 255, 152, 94, 167, 255, 175, 109, 191, 255, 163, 98, 178, 255, 161, 97, 176, 255, 163, 98, 178, 255, 160, 97, 176, 255, 161, 97, 176, 255, 152, 91, 167, 255, 138, 81, 154, 255, 142, 83, 155, 255, 148, 88, 160, 255, 155, 93, 166, 255, 152, 91, 164, 255, 157, 94, 168, 255, 161, 103, 176, 255, 150, 95, 163, 255, 132, 83, 144, 255, 123, 75, 133, 255, 115, 69, 123, 255, 114, 69, 123, 255, 110, 68, 119, 255, 109, 69, 119, 255, 107, 68, 117, 255, 105, 66, 114, 255, 101, 63, 110, 255, 95, 58, 103, 255, 94, 57, 102, 255, 88, 54, 96, 255, 80, 48, 87, 255, 72, 43, 78, 255, 65, 39, 71, 255, 58, 34, 63, 255, 52, 31, 57, 255, 47, 28, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 58, 36, 63, 255, 65, 41, 70, 255, 70, 43, 75, 255, 73, 45, 79, 255, 78, 48, 84, 255, 83, 50, 89, 255, 86, 52, 94, 255, 94, 57, 103, 255, 97, 60, 106, 255, 102, 64, 111, 255, 103, 64, 112, 255, 104, 64, 112, 255, 110, 68, 119, 255, 115, 73, 125, 255, 125, 80, 137, 255, 135, 87, 147, 255, 137, 87, 150, 255, 160, 98, 176, 255, 168, 103, 184, 255, 159, 96, 175, 255, 154, 91, 170, 255, 158, 94, 173, 255, 164, 98, 179, 255, 164, 99, 180, 255, 149, 88, 165, 255, 138, 80, 154, 255, 143, 84, 159, 255, 150, 89, 165, 255, 152, 91, 164, 255, 146, 86, 158, 255, 142, 85, 156, 255, 141, 86, 156, 255, 147, 91, 162, 255, 159, 101, 174, 255, 148, 93, 162, 255, 128, 79, 138, 255, 118, 71, 126, 255, 114, 68, 122, 255, 114, 69, 123, 255, 110, 69, 120, 255, 111, 71, 121, 255, 110, 70, 119, 255, 103, 65, 112, 255, 99, 62, 107, 255, 95, 58, 103, 255, 90, 55, 98, 255, 83, 50, 91, 255, 76, 45, 82, 255, 68, 40, 75, 255, 63, 38, 69, 255, 56, 33, 61, 255, 52, 31, 57, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 63, 40, 69, 255, 68, 43, 74, 255, 72, 45, 78, 255, 76, 46, 81, 255, 80, 48, 86, 255, 84, 50, 90, 255, 88, 54, 96, 255, 92, 58, 101, 255, 99, 62, 107, 255, 103, 64, 112, 255, 103, 63, 111, 255, 107, 65, 115, 255, 113, 69, 122, 255, 119, 76, 129, 255, 132, 85, 144, 255, 151, 97, 166, 255, 170, 107, 187, 255, 163, 100, 179, 255, 160, 97, 175, 255, 151, 89, 166, 255, 147, 86, 162, 255, 157, 95, 172, 255, 162, 97, 177, 255, 162, 97, 177, 255, 145, 85, 160, 255, 140, 81, 156, 255, 151, 89, 166, 255, 156, 93, 172, 255, 153, 91, 169, 255, 138, 82, 152, 255, 133, 81, 148, 255, 137, 84, 152, 255, 140, 86, 154, 255, 138, 85, 152, 255, 139, 87, 154, 255, 149, 93, 160, 255, 136, 84, 145, 255, 116, 70, 124, 255, 114, 69, 123, 255, 112, 71, 122, 255, 112, 71, 122, 255, 114, 73, 124, 255, 109, 69, 118, 255, 101, 64, 110, 255, 100, 63, 108, 255, 94, 58, 102, 255, 86, 52, 94, 255, 79, 47, 86, 255, 72, 43, 79, 255, 66, 39, 72, 255, 60, 36, 66, 255, 55, 32, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 65, 41, 70, 255, 71, 44, 76, 255, 76, 47, 82, 255, 78, 47, 83, 255, 81, 48, 87, 255, 85, 52, 93, 255, 90, 56, 98, 255, 97, 61, 106, 255, 103, 65, 113, 255, 103, 64, 112, 255, 105, 63, 112, 255, 109, 66, 117, 255, 114, 70, 123, 255, 125, 79, 135, 255, 155, 99, 170, 255, 164, 104, 181, 255, 155, 96, 173, 255, 152, 91, 168, 255, 144, 85, 159, 255, 148, 88, 163, 255, 157, 95, 172, 255, 159, 96, 174, 255, 158, 95, 173, 255, 150, 87, 165, 255, 146, 85, 161, 255, 149, 88, 164, 255, 159, 95, 174, 255, 155, 92, 170, 255, 139, 81, 154, 255, 139, 81, 154, 255, 142, 84, 156, 255, 135, 82, 149, 255, 132, 80, 146, 255, 127, 77, 142, 255, 133, 80, 145, 255, 142, 86, 152, 255, 143, 87, 153, 255, 133, 80, 145, 255, 114, 68, 122, 255, 115, 72, 125, 255, 115, 73, 125, 255, 114, 73, 125, 255, 110, 70, 120, 255, 105, 67, 114, 255, 102, 65, 111, 255, 99, 62, 106, 255, 91, 55, 98, 255, 83, 49, 90, 255, 74, 44, 81, 255, 69, 41, 76, 255, 64, 38, 70, 255, 58, 35, 64, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 67, 40, 71, 255, 73, 45, 79, 255, 78, 47, 83, 255, 79, 48, 85, 255, 83, 50, 90, 255, 87, 54, 96, 255, 93, 58, 101, 255, 99, 62, 108, 255, 103, 64, 112, 255, 103, 62, 110, 255, 104, 62, 111, 255, 110, 66, 117, 255, 117, 73, 130, 255, 157, 100, 173, 255, 157, 99, 174, 255, 150, 91, 167, 255, 148, 89, 166, 255, 142, 84, 162, 255, 152, 93, 169, 255, 161, 99, 176, 255, 160, 98, 175, 255, 158, 95, 172, 255, 152, 89, 166, 255, 149, 87, 163, 255, 154, 91, 168, 255, 157, 94, 172, 255, 152, 90, 166, 255, 138, 80, 152, 255, 141, 83, 155, 255, 144, 85, 159, 255, 139, 81, 153, 255, 137, 80, 151, 255, 129, 77, 143, 255, 128, 75, 142, 255, 132, 77, 145, 255, 132, 77, 145, 255, 135, 80, 146, 255, 135, 80, 146, 255, 134, 79, 145, 255, 132, 84, 144, 255, 120, 77, 131, 255, 119, 76, 129, 255, 111, 71, 121, 255, 106, 67, 116, 255, 106, 67, 114, 255, 102, 64, 109, 255, 96, 58, 101, 255, 86, 52, 92, 255, 78, 46, 85, 255, 72, 43, 79, 255, 67, 40, 74, 255, 61, 37, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 70, 42, 75, 255, 75, 45, 80, 255, 78, 47, 84, 255, 77, 47, 85, 255, 83, 51, 91, 255, 87, 54, 96, 255, 94, 59, 103, 255, 101, 62, 109, 255, 104, 63, 111, 255, 105, 64, 113, 255, 107, 64, 114, 255, 116, 70, 129, 255, 134, 83, 148, 255, 148, 94, 163, 255, 155, 98, 171, 255, 161, 103, 175, 255, 162, 104, 177, 255, 157, 99, 173, 255, 157, 98, 172, 255, 154, 95, 170, 255, 151, 91, 166, 255, 148, 86, 162, 255, 144, 83, 158, 255, 150, 89, 164, 255, 155, 94, 170, 255, 152, 91, 166, 255, 146, 86, 160, 255, 143, 84, 157, 255, 143, 84, 157, 255, 144, 85, 158, 255, 151, 90, 165, 255, 144, 86, 159, 255, 130, 75, 144, 255, 127, 73, 142, 255, 128, 74, 142, 255, 130, 76, 142, 255, 131, 77, 143, 255, 130, 76, 142, 255, 132, 79, 143, 255, 147, 93, 160, 255, 142, 91, 155, 255, 126, 81, 137, 255, 117, 75, 128, 255, 110, 70, 120, 255, 105, 67, 115, 255, 103, 65, 111, 255, 98, 60, 104, 255, 90, 55, 96, 255, 80, 49, 87, 255, 76, 46, 83, 255, 72, 43, 78, 255, 67, 40, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 73, 44, 78, 255, 77, 47, 84, 255, 79, 49, 88, 255, 82, 50, 90, 255, 85, 52, 94, 255, 92, 57, 101, 255, 99, 61, 108, 255, 105, 65, 114, 255, 108, 67, 117, 255, 110, 67, 121, 255, 124, 76, 137, 255, 127, 78, 141, 255, 136, 87, 150, 255, 141, 91, 155, 255, 145, 94, 159, 255, 153, 98, 167, 255, 156, 99, 171, 255, 154, 97, 169, 255, 152, 94, 168, 255, 147, 90, 165, 255, 144, 89, 163, 255, 143, 86, 160, 255, 150, 89, 164, 255, 151, 91, 165, 255, 148, 89, 161, 255, 141, 83, 155, 255, 138, 80, 152, 255, 140, 82, 154, 255, 144, 85, 158, 255, 151, 91, 165, 255, 142, 84, 156, 255, 136, 81, 150, 255, 134, 79, 149, 255, 135, 80, 149, 255, 139, 84, 152, 255, 133, 80, 144, 255, 130, 77, 140, 255, 125, 72, 133, 255, 127, 75, 136, 255, 135, 82, 145, 255, 139, 87, 150, 255, 138, 87, 149, 255, 118, 73, 130, 255, 112, 71, 122, 255, 108, 68, 118, 255, 103, 65, 112, 255, 99, 61, 106, 255, 94, 57, 100, 255, 86, 53, 92, 255, 81, 50, 87, 255, 76, 46, 82, 255, 71, 43, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 74, 45, 81, 255, 81, 49, 89, 255, 86, 52, 95, 255, 86, 53, 94, 255, 91, 55, 100, 255, 100, 61, 109, 255, 104, 64, 113, 255, 108, 68, 118, 255, 127, 79, 139, 255, 138, 84, 151, 255, 134, 85, 148, 255, 140, 91, 154, 255, 133, 83, 146, 255, 125, 76, 139, 255, 126, 76, 139, 255, 134, 81, 148, 255, 141, 84, 156, 255, 142, 87, 159, 255, 145, 89, 162, 255, 150, 92, 165, 255, 147, 90, 163, 255, 149, 92, 165, 255, 147, 87, 161, 255, 146, 87, 160, 255, 138, 81, 152, 255, 139, 82, 154, 255, 145, 87, 159, 255, 140, 82, 153, 255, 142, 84, 155, 255, 139, 83, 153, 255, 137, 82, 151, 255, 141, 86, 155, 255, 140, 85, 154, 255, 143, 87, 157, 255, 144, 89, 158, 255, 138, 84, 152, 255, 132, 79, 143, 255, 129, 77, 138, 255, 129, 77, 138, 255, 126, 74, 135, 255, 124, 73, 133, 255, 131, 80, 143, 255, 130, 78, 147, 255, 120, 73, 133, 255, 107, 68, 117, 255, 104, 65, 113, 255, 99, 61, 106, 255, 94, 58, 101, 255, 89, 54, 96, 255, 83, 51, 90, 255, 79, 48, 85, 255, 74, 45, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 78, 47, 85, 255, 85, 51, 93, 255, 86, 53, 95, 255, 89, 54, 98, 255, 96, 58, 105, 255, 102, 62, 112, 255, 107, 67, 117, 255, 133, 83, 145, 255, 142, 89, 155, 255, 137, 85, 150, 255, 137, 84, 149, 255, 137, 88, 150, 255, 135, 87, 149, 255, 130, 81, 143, 255, 130, 77, 143, 255, 132, 75, 145, 255, 135, 78, 148, 255, 140, 84, 154, 255, 145, 90, 160, 255, 146, 90, 161, 255, 145, 88, 160, 255, 145, 86, 159, 255, 147, 87, 160, 255, 143, 83, 156, 255, 144, 85, 157, 255, 141, 84, 155, 255, 134, 79, 148, 255, 138, 82, 151, 255, 139, 83, 153, 255, 143, 86, 156, 255, 142, 85, 156, 255, 138, 83, 151, 255, 142, 88, 156, 255, 146, 91, 160, 255, 146, 90, 159, 255, 138, 84, 152, 255, 128, 77, 142, 255, 128, 77, 140, 255, 128, 77, 138, 255, 128, 78, 139, 255, 126, 75, 138, 255, 124, 74, 141, 255, 125, 75, 142, 255, 132, 80, 146, 255, 127, 77, 139, 255, 103, 65, 113, 255, 102, 63, 109, 255, 94, 58, 102, 255, 89, 55, 96, 255, 85, 51, 92, 255, 80, 48, 86, 255, 76, 47, 82, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 85, 52, 93, 255, 87, 53, 95, 255, 91, 55, 100, 255, 98, 60, 107, 255, 116, 74, 128, 255, 136, 86, 149, 255, 136, 85, 149, 255, 135, 85, 148, 255, 138, 88, 151, 255, 143, 93, 155, 255, 144, 94, 157, 255, 143, 93, 156, 255, 136, 84, 149, 255, 132, 77, 144, 255, 133, 78, 145, 255, 136, 81, 148, 255, 140, 86, 153, 255, 142, 88, 156, 255, 139, 83, 153, 255, 139, 81, 151, 255, 142, 84, 155, 255, 147, 88, 160, 255, 149, 89, 162, 255, 140, 82, 153, 255, 133, 77, 146, 255, 137, 82, 150, 255, 138, 83, 151, 255, 140, 84, 153, 255, 137, 82, 151, 255, 136, 81, 149, 255, 141, 84, 154, 255, 145, 90, 159, 255, 148, 91, 162, 255, 141, 86, 154, 255, 132, 80, 145, 255, 131, 79, 144, 255, 130, 78, 143, 255, 129, 78, 142, 255, 128, 77, 141, 255, 125, 75, 141, 255, 124, 74, 140, 255, 126, 76, 140, 255, 129, 78, 141, 255, 130, 79, 142, 255, 126, 75, 139, 255, 108, 65, 120, 255, 99, 61, 106, 255, 92, 57, 99, 255, 86, 53, 93, 255, 81, 50, 88, 255, 77, 47, 83, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 81, 49, 88, 255, 83, 51, 92, 255, 90, 55, 98, 255, 94, 57, 103, 255, 119, 76, 133, 255, 136, 88, 149, 255, 134, 87, 147, 255, 134, 86, 147, 255, 136, 88, 148, 255, 139, 90, 151, 255, 145, 98, 157, 255, 150, 103, 162, 255, 149, 102, 162, 255, 144, 94, 156, 255, 135, 82, 147, 255, 136, 84, 149, 255, 137, 85, 150, 255, 140, 87, 153, 255, 141, 87, 154, 255, 135, 82, 148, 255, 136, 81, 149, 255, 140, 83, 153, 255, 141, 84, 154, 255, 137, 80, 150, 255, 137, 82, 150, 255, 141, 87, 154, 255, 135, 84, 148, 255, 131, 79, 144, 255, 132, 79, 145, 255, 133, 79, 146, 255, 135, 81, 148, 255, 142, 88, 155, 255, 145, 92, 158, 255, 142, 89, 155, 255, 138, 85, 151, 255, 133, 81, 146, 255, 128, 77, 141, 255, 128, 77, 140, 255, 128, 75, 137, 255, 129, 75, 138, 255, 127, 76, 139, 255, 122, 73, 137, 255, 125, 75, 138, 255, 126, 76, 138, 255, 126, 77, 138, 255, 125, 75, 136, 255, 127, 77, 139, 255, 118, 73, 129, 255, 97, 60, 104, 255, 91, 56, 98, 255, 84, 52, 91, 255, 80, 49, 86, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 87, 54, 96, 255, 95, 59, 103, 255, 120, 77, 135, 255, 127, 82, 144, 255, 129, 84, 143, 255, 134, 88, 144, 255, 135, 89, 146, 255, 136, 90, 148, 255, 140, 93, 152, 255, 143, 96, 154, 255, 146, 101, 158, 255, 145, 99, 157, 255, 144, 96, 156, 255, 141, 91, 154, 255, 138, 88, 151, 255, 138, 86, 150, 255, 141, 87, 153, 255, 137, 84, 150, 255, 132, 80, 145, 255, 135, 83, 148, 255, 132, 80, 144, 255, 127, 74, 139, 255, 134, 81, 146, 255, 134, 83, 147, 255, 125, 77, 138, 255, 128, 79, 141, 255, 135, 84, 148, 255, 127, 77, 139, 255, 132, 80, 145, 255, 138, 86, 150, 255, 139, 87, 152, 255, 139, 87, 152, 255, 139, 87, 151, 255, 136, 85, 149, 255, 131, 80, 143, 255, 128, 77, 140, 255, 130, 77, 141, 255, 130, 77, 141, 255, 126, 74, 135, 255, 121, 69, 128, 255, 121, 70, 130, 255, 120, 72, 133, 255, 122, 73, 134, 255, 124, 76, 135, 255, 123, 75, 134, 255, 122, 75, 133, 255, 124, 76, 135, 255, 110, 63, 121, 255, 99, 62, 108, 255, 88, 54, 95, 255, 80, 49, 87, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 82, 51, 90, 255, 101, 63, 108, 255, 120, 75, 127, 255, 121, 77, 132, 255, 122, 79, 138, 255, 126, 82, 140, 255, 129, 85, 141, 255, 130, 85, 142, 255, 132, 88, 144, 255, 133, 86, 145, 255, 135, 88, 146, 255, 136, 89, 148, 255, 139, 92, 150, 255, 139, 92, 151, 255, 143, 98, 156, 255, 141, 92, 153, 255, 140, 89, 152, 255, 138, 86, 151, 255, 136, 84, 148, 255, 133, 82, 145, 255, 127, 77, 140, 255, 124, 75, 136, 255, 127, 80, 139, 255, 125, 78, 137, 255, 118, 72, 130, 255, 127, 79, 140, 255, 127, 79, 140, 255, 118, 72, 130, 255, 127, 78, 138, 255, 136, 84, 147, 255, 137, 85, 149, 255, 136, 85, 148, 255, 136, 85, 148, 255, 136, 85, 148, 255, 135, 84, 146, 255, 134, 82, 144, 255, 132, 80, 142, 255, 130, 78, 142, 255, 127, 76, 138, 255, 125, 74, 134, 255, 123, 73, 133, 255, 119, 71, 129, 255, 111, 66, 122, 255, 120, 73, 131, 255, 122, 76, 133, 255, 118, 70, 128, 255, 116, 69, 127, 255, 114, 67, 125, 255, 113, 69, 124, 255, 111, 70, 122, 255, 95, 60, 105, 255, 82, 51, 90, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 102, 62, 108, 255, 116, 73, 124, 255, 116, 73, 124, 255, 119, 76, 127, 255, 123, 80, 133, 255, 127, 83, 136, 255, 130, 86, 138, 255, 130, 88, 141, 255, 133, 92, 143, 255, 134, 93, 145, 255, 134, 92, 145, 255, 134, 91, 145, 255, 135, 89, 146, 255, 134, 87, 146, 255, 136, 88, 147, 255, 139, 90, 150, 255, 138, 89, 149, 255, 136, 88, 148, 255, 133, 84, 145, 255, 129, 79, 141, 255, 123, 76, 134, 255, 121, 76, 131, 255, 117, 72, 126, 255, 119, 74, 130, 255, 122, 77, 134, 255, 112, 69, 123, 255, 112, 68, 123, 255, 127, 78, 138, 255, 133, 82, 144, 255, 136, 84, 148, 255, 136, 84, 148, 255, 134, 84, 146, 255, 134, 84, 145, 255, 133, 83, 145, 255, 131, 80, 142, 255, 132, 81, 143, 255, 130, 80, 141, 255, 125, 75, 134, 255, 124, 74, 134, 255, 125, 75, 136, 255, 122, 74, 132, 255, 117, 71, 127, 255, 117, 72, 127, 255, 118, 73, 129, 255, 116, 71, 126, 255, 114, 68, 125, 255, 111, 66, 121, 255, 108, 67, 118, 255, 106, 67, 116, 255, 101, 63, 111, 255, 109, 69, 120, 255, 90, 57, 100, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 111, 69, 118, 255, 113, 71, 120, 255, 117, 75, 126, 255, 121, 79, 130, 255, 126, 83, 136, 255, 126, 85, 137, 255, 127, 87, 138, 255, 129, 90, 140, 255, 130, 91, 141, 255, 131, 92, 142, 255, 132, 92, 143, 255, 135, 91, 144, 255, 135, 89, 145, 255, 133, 87, 144, 255, 131, 85, 143, 255, 130, 83, 141, 255, 127, 80, 138, 255, 125, 78, 136, 255, 122, 76, 133, 255, 118, 74, 129, 255, 116, 72, 126, 255, 118, 74, 129, 255, 117, 73, 127, 255, 108, 66, 115, 255, 111, 67, 118, 255, 120, 73, 128, 255, 124, 76, 133, 255, 128, 78, 138, 255, 130, 80, 141, 255, 132, 82, 144, 255, 132, 81, 143, 255, 131, 81, 143, 255, 131, 81, 143, 255, 130, 80, 141, 255, 126, 77, 136, 255, 124, 75, 133, 255, 122, 74, 131, 255, 124, 76, 133, 255, 124, 77, 133, 255, 121, 75, 131, 255, 117, 72, 127, 255, 115, 71, 124, 255, 114, 70, 123, 255, 112, 69, 122, 255, 108, 68, 118, 255, 104, 66, 114, 255, 103, 65, 113, 255, 104, 66, 114, 255, 106, 67, 116, 255, 97, 61, 107, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 64, 40, 70, 255, 110, 69, 117, 255, 113, 73, 123, 255, 120, 79, 130, 255, 121, 80, 131, 255, 122, 81, 132, 255, 124, 86, 134, 255, 126, 86, 136, 255, 127, 86, 136, 255, 131, 89, 138, 255, 133, 89, 139, 255, 130, 85, 137, 255, 126, 81, 136, 255, 123, 78, 134, 255, 121, 76, 132, 255, 120, 75, 131, 255, 118, 73, 127, 255, 115, 71, 123, 255, 115, 71, 124, 255, 116, 73, 127, 255, 114, 71, 124, 255, 107, 65, 116, 255, 105, 63, 115, 255, 111, 66, 120, 255, 119, 72, 126, 255, 121, 73, 128, 255, 121, 74, 129, 255, 123, 76, 132, 255, 124, 76, 135, 255, 126, 78, 137, 255, 126, 78, 137, 255, 126, 78, 137, 255, 122, 74, 132, 255, 117, 70, 125, 255, 115, 68, 121, 255, 118, 72, 125, 255, 121, 75, 129, 255, 118, 73, 126, 255, 118, 73, 126, 255, 114, 71, 123, 255, 112, 69, 121, 255, 110, 68, 119, 255, 105, 66, 115, 255, 101, 64, 111, 255, 100, 64, 110, 255, 103, 65, 113, 255, 105, 65, 114, 255, 61, 36, 67, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 106, 67, 115, 255, 111, 72, 121, 255, 112, 72, 121, 255, 113, 73, 123, 255, 115, 75, 125, 255, 118, 78, 127, 255, 123, 81, 130, 255, 123, 81, 131, 255, 123, 80, 131, 255, 117, 74, 127, 255, 117, 73, 127, 255, 115, 72, 126, 255, 112, 70, 121, 255, 112, 70, 121, 255, 108, 67, 115, 255, 111, 68, 118, 255, 113, 70, 122, 255, 114, 70, 122, 255, 110, 67, 119, 255, 100, 60, 111, 255, 101, 61, 112, 255, 106, 63, 115, 255, 110, 66, 118, 255, 114, 68, 121, 255, 117, 71, 124, 255, 116, 71, 125, 255, 117, 72, 128, 255, 117, 72, 128, 255, 115, 70, 126, 255, 114, 68, 124, 255, 116, 71, 127, 255, 114, 70, 123, 255, 114, 70, 121, 255, 112, 69, 120, 255, 110, 68, 119, 255, 114, 71, 122, 255, 117, 73, 123, 255, 113, 70, 120, 255, 107, 67, 116, 255, 101, 64, 111, 255, 100, 63, 110, 255, 97, 62, 107, 255, 99, 63, 109, 255, 101, 63, 110, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 99, 62, 108, 255, 108, 69, 117, 255, 111, 73, 121, 255, 111, 73, 119, 255, 110, 72, 117, 255, 110, 71, 118, 255, 112, 72, 122, 255, 113, 72, 122, 255, 114, 72, 123, 255, 112, 71, 122, 255, 107, 70, 117, 255, 107, 70, 117, 255, 110, 70, 120, 255, 108, 67, 116, 255, 108, 67, 116, 255, 106, 65, 113, 255, 108, 66, 116, 255, 109, 66, 119, 255, 108, 65, 118, 255, 105, 63, 114, 255, 102, 61, 111, 255, 96, 58, 107, 255, 99, 60, 109, 255, 96, 58, 106, 255, 102, 63, 113, 255, 107, 65, 117, 255, 106, 63, 116, 255, 106, 63, 116, 255, 111, 68, 121, 255, 111, 69, 120, 255, 110, 70, 117, 255, 106, 67, 114, 255, 105, 65, 114, 255, 109, 68, 117, 255, 109, 68, 117, 255, 107, 66, 115, 255, 105, 66, 114, 255, 103, 65, 113, 255, 104, 65, 114, 255, 100, 63, 110, 255, 98, 62, 107, 255, 97, 61, 106, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 102, 65, 108, 255, 106, 70, 114, 255, 109, 72, 117, 255, 110, 74, 119, 255, 110, 73, 118, 255, 111, 72, 119, 255, 111, 72, 120, 255, 111, 73, 120, 255, 110, 72, 120, 255, 106, 69, 116, 255, 100, 65, 110, 255, 101, 64, 110, 255, 104, 64, 112, 255, 107, 66, 116, 255, 108, 66, 118, 255, 108, 66, 117, 255, 108, 66, 118, 255, 107, 65, 117, 255, 108, 65, 115, 255, 107, 65, 115, 255, 104, 64, 114, 255, 96, 59, 107, 255, 91, 56, 101, 255, 100, 62, 111, 255, 105, 64, 115, 255, 108, 66, 118, 255, 103, 64, 112, 255, 100, 63, 109, 255, 100, 63, 109, 255, 105, 67, 112, 255, 110, 70, 116, 255, 104, 65, 112, 255, 98, 61, 107, 255, 98, 62, 108, 255, 101, 64, 111, 255, 102, 64, 112, 255, 97, 62, 107, 255, 94, 59, 103, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 101, 66, 108, 255, 104, 69, 112, 255, 106, 71, 114, 255, 106, 70, 114, 255, 106, 68, 115, 255, 108, 70, 117, 255, 111, 73, 120, 255, 102, 67, 112, 255, 96, 63, 105, 255, 96, 63, 105, 255, 98, 62, 107, 255, 101, 62, 110, 255, 101, 61, 110, 255, 101, 61, 111, 255, 104, 64, 114, 255, 104, 64, 114, 255, 103, 63, 112, 255, 101, 62, 112, 255, 102, 62, 113, 255, 105, 65, 115, 255, 103, 64, 113, 255, 103, 64, 112, 255, 97, 60, 107, 255, 98, 61, 107, 255, 94, 59, 104, 255, 98, 62, 107, 255, 100, 63, 107, 255, 99, 63, 106, 255, 101, 64, 108, 255, 101, 64, 108, 255, 99, 64, 106, 255, 95, 62, 102, 255, 98, 62, 107, 255, 99, 62, 108, 255, 92, 59, 101, 255, 93, 59, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 25, 16, 28, 255, 100, 65, 108, 255, 104, 66, 113, 255, 102, 65, 111, 255, 105, 67, 114, 255, 106, 68, 114, 255, 101, 66, 110, 255, 96, 62, 105, 255, 95, 60, 104, 255, 97, 60, 106, 255, 96, 59, 104, 255, 96, 59, 104, 255, 96, 58, 104, 255, 95, 57, 104, 255, 97, 59, 107, 255, 96, 58, 107, 255, 94, 57, 106, 255, 96, 58, 107, 255, 95, 58, 106, 255, 98, 60, 108, 255, 93, 57, 102, 255, 93, 57, 102, 255, 93, 58, 102, 255, 93, 58, 102, 255, 95, 58, 103, 255, 93, 58, 101, 255, 89, 55, 97, 255, 89, 56, 97, 255, 91, 59, 98, 255, 94, 61, 102, 255, 96, 62, 103, 255, 95, 62, 103, 255, 96, 61, 104, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 93, 59, 102, 255, 96, 61, 105, 255, 100, 64, 109, 255, 102, 65, 110, 255, 101, 65, 110, 255, 99, 64, 108, 255, 99, 63, 107, 255, 99, 63, 108, 255, 98, 62, 106, 255, 95, 59, 103, 255, 95, 59, 103, 255, 94, 59, 103, 255, 93, 57, 102, 255, 94, 57, 103, 255, 96, 58, 105, 255, 96, 58, 105, 255, 96, 58, 105, 255, 95, 58, 104, 255, 94, 58, 102, 255, 95, 58, 104, 255, 92, 57, 101, 255, 84, 53, 93, 255, 80, 52, 88, 255, 82, 52, 90, 255, 85, 53, 93, 255, 84, 53, 90, 255, 83, 54, 89, 255, 86, 56, 92, 255, 89, 58, 96, 255, 94, 61, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 71, 45, 78, 255, 96, 60, 103, 255, 96, 61, 104, 255, 95, 61, 104, 255, 96, 61, 104, 255, 94, 59, 102, 255, 92, 58, 100, 255, 90, 57, 98, 255, 88, 55, 96, 255, 87, 54, 96, 255, 88, 55, 97, 255, 86, 53, 96, 255, 84, 52, 95, 255, 83, 51, 94, 255, 89, 54, 98, 255, 87, 54, 96, 255, 85, 54, 93, 255, 86, 54, 94, 255, 86, 54, 95, 255, 84, 53, 93, 255, 80, 51, 88, 255, 80, 51, 88, 255, 81, 50, 88, 255, 82, 50, 89, 255, 80, 49, 88, 255, 78, 49, 85, 255, 79, 51, 84, 255, 70, 43, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 88, 55, 96, 255, 88, 54, 96, 255, 90, 56, 97, 255, 89, 55, 96, 255, 89, 55, 96, 255, 83, 51, 92, 255, 80, 50, 90, 255, 85, 54, 94, 255, 85, 54, 93, 255, 82, 50, 91, 255, 80, 49, 90, 255, 80, 49, 89, 255, 79, 50, 88, 255, 80, 51, 88, 255, 85, 53, 93, 255, 84, 53, 92, 255, 84, 53, 92, 255, 82, 52, 89, 255, 78, 49, 86, 255, 77, 47, 84, 255, 74, 45, 82, 255, 73, 44, 81, 255, 75, 46, 83, 255, 73, 44, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 87, 56, 94, 255, 85, 54, 93, 255, 86, 54, 93, 255, 85, 53, 93, 255, 83, 51, 91, 255, 82, 50, 90, 255, 78, 49, 87, 255, 76, 47, 85, 255, 75, 46, 85, 255, 75, 46, 85, 255, 76, 47, 84, 255, 76, 47, 84, 255, 77, 48, 84, 255, 79, 49, 86, 255, 78, 49, 85, 255, 76, 48, 83, 255, 77, 48, 84, 255, 76, 46, 83, 255, 71, 43, 78, 255, 70, 42, 77, 255, 72, 43, 79, 255, 70, 42, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 77, 47, 84, 255, 78, 48, 85, 255, 79, 48, 85, 255, 79, 48, 86, 255, 78, 48, 85, 255, 76, 47, 83, 255, 71, 44, 78, 255, 73, 45, 80, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 69, 44, 77, 255, 72, 44, 78, 255, 74, 45, 81, 255, 75, 46, 81, 255, 73, 45, 80, 255, 73, 45, 79, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 72, 44, 79, 255, 74, 45, 80, 255, 72, 44, 79, 255, 71, 43, 78, 255, 67, 41, 74, 255, 65, 41, 72, 255, 65, 40, 72, 255, 65, 41, 72, 255, 65, 40, 72, 255, 64, 40, 71, 255, 68, 41, 75, 255, 70, 42, 76, 255, 72, 44, 78, 255, 72, 45, 79, 255, 70, 44, 77, 255, 71, 44, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 30, 18, 33, 255, 66, 41, 73, 255, 66, 41, 73, 255, 68, 42, 77, 255, 68, 42, 77, 255, 68, 42, 77, 255, 65, 40, 72, 255, 63, 39, 69, 255, 64, 39, 71, 255, 66, 40, 72, 255, 68, 42, 74, 255, 66, 40, 73, 255, 65, 39, 71, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 62, 39, 70, 255, 64, 40, 72, 255, 64, 40, 73, 255, 62, 38, 69, 255, 61, 37, 67, 255, 61, 37, 67, 255, 61, 36, 67, 255, 61, 37, 67, 255, 62, 37, 68, 255, 62, 38, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 36, 64, 255, 56, 35, 62, 255, 58, 36, 64, 255, 58, 36, 64, 255, 56, 35, 62, 255, 57, 35, 63, 255, 57, 34, 63, 255, 57, 34, 62, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 51, 32, 57, 255, 50, 30, 55, 255, 54, 33, 59, 255, 54, 33, 59, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 49, 31, 54, 255, 48, 30, 53, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0), "format": "RGBA8", @@ -12,15 +12,14 @@ data = { } [sub_resource type="ImageTexture" id="2"] -image = SubResource( "Image_jyk8h" ) -size = Vector2(64, 64) +image = SubResource("Image_xerih") [sub_resource type="BoxShape3D" id="3"] [resource] item/0/name = "cube" -item/0/mesh = ExtResource( "1" ) +item/0/mesh = ExtResource("1") item/0/mesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/0/shapes = [SubResource( "3" ), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)] +item/0/shapes = [SubResource("3"), Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0)] item/0/navmesh_transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0) -item/0/preview = SubResource( "2" ) +item/0/preview = SubResource("2") diff --git a/3d/rigidbody_character/default_env.tres b/3d/rigidbody_character/default_env.tres index 5cd11c4aa5e..d80bf6c02bc 100644 --- a/3d/rigidbody_character/default_env.tres +++ b/3d/rigidbody_character/default_env.tres @@ -1,21 +1,22 @@ [gd_resource type="Environment" load_steps=3 format=3 uid="uid://bupmwdx23k178"] [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_fiix7"] -sky_top_color = Color(0.219608, 0.192157, 0.364706, 1) -sky_horizon_color = Color(0.341176, 0.0666667, 0.560784, 1) +sky_top_color = Color(0.36, 0.20772, 0.1908, 1) +sky_horizon_color = Color(0.56, 0.16688, 0.1232, 1) ground_bottom_color = Color(0.0352941, 0.0352941, 0.0313726, 1) -ground_horizon_color = Color(0.14902, 0.137255, 0.12549, 1) +ground_horizon_color = Color(0.42, 0.042, 0, 1) ground_curve = 0.25 [sub_resource type="Sky" id="1"] -sky_material = SubResource( "ProceduralSkyMaterial_fiix7" ) -radiance_size = 1 +sky_material = SubResource("ProceduralSkyMaterial_fiix7") +radiance_size = 0 [resource] background_mode = 2 -sky = SubResource( "1" ) -ambient_light_energy = 5.0 -tonemap_mode = 2 +sky = SubResource("1") +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_sky_contribution = 0.5 +tonemap_mode = 3 tonemap_white = 6.0 glow_levels/7 = 1.0 glow_strength = 0.79 diff --git a/3d/rigidbody_character/gi_probe_data.res b/3d/rigidbody_character/gi_probe_data.res deleted file mode 100644 index ebd9273f275..00000000000 Binary files a/3d/rigidbody_character/gi_probe_data.res and /dev/null differ diff --git a/3d/rigidbody_character/icon.png b/3d/rigidbody_character/icon.png index d425588979f..7c2be58f333 100644 Binary files a/3d/rigidbody_character/icon.png and b/3d/rigidbody_character/icon.png differ diff --git a/3d/rigidbody_character/icon.png.import b/3d/rigidbody_character/icon.png.import index 7660c11e206..a9b6a6a2756 100644 --- a/3d/rigidbody_character/icon.png.import +++ b/3d/rigidbody_character/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/rigidbody_character/level.tscn b/3d/rigidbody_character/level.tscn index 535d2d76d51..052b2419765 100644 --- a/3d/rigidbody_character/level.tscn +++ b/3d/rigidbody_character/level.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=12 format=3 uid="uid://y0rsox5qdoci"] +[gd_scene load_steps=14 format=3 uid="uid://y0rsox5qdoci"] [ext_resource type="MeshLibrary" uid="uid://dxc3y3vtd7ins" path="res://cubelib.tres" id="1"] [ext_resource type="PackedScene" uid="uid://cbvuesb1ptdh4" path="res://player/cubio.tscn" id="2"] @@ -6,7 +6,7 @@ [ext_resource type="Environment" uid="uid://bupmwdx23k178" path="res://default_env.tres" id="3_scanf"] [ext_resource type="PackedScene" uid="uid://bonauusmt0ss" path="res://models/mushroom.glb" id="5"] [ext_resource type="Script" path="res://level.gd" id="6"] -[ext_resource type="PackedScene" path="res://cube_rigidbody.tscn" id="7"] +[ext_resource type="PackedScene" uid="uid://bftavngs5kq7e" path="res://cube_rigidbody.tscn" id="7"] [sub_resource type="BoxShape3D" id="1"] margin = 0.001 @@ -27,6 +27,11 @@ tracks/0/keys = { "values": [Vector3(0.5, 4.5, -2.5), Vector3(0.5, 4.5, -2.5), Vector3(0.5, 8.5, -2.5), Vector3(0.5, 8.5, -2.5), Vector3(0.5, 4.5, -2.5), Vector3(0.5, 4.5, -2.5)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_64cvx"] +_data = { +"updown1": SubResource("2") +} + [sub_resource type="Animation" id="3"] length = 10.0 loop_mode = 1 @@ -43,86 +48,89 @@ tracks/0/keys = { "values": [Vector3(-3.5, 8.5, 4.5), Vector3(-3.5, 8.5, 4.5), Vector3(3.5, 8.5, 4.5), Vector3(3.5, 8.5, 4.5), Vector3(-3.5, 8.5, 4.5)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_4vwp8"] +_data = { +"side": SubResource("3"), +"updown1": SubResource("2") +} + [sub_resource type="BoxShape3D" id="4"] [node name="World3D" type="Node3D"] -script = ExtResource( "6" ) -__meta__ = { -"__editor_plugin_screen__": "3D" -} +script = ExtResource("6") [node name="GridMap" type="GridMap" parent="."] -mesh_library = ExtResource( "1" ) +mesh_library = ExtResource("1") cell_size = Vector3(1, 1, 1) data = { "cells": PackedInt32Array(0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 65530, 0, 0, 65531, 0, 0, 65532, 0, 0, 65533, 0, 0, 65534, 0, 0, 65535, 0, 0, 196603, 0, 0, 196604, 0, 0, 524292, 0, 0, 589820, 0, 0, 786432, 0, 0, 851967, 0, 0, 0, 1, 0, 1, 1, 0, 2, 1, 0, 3, 1, 0, 4, 1, 0, 65530, 1, 0, 65531, 1, 0, 65532, 1, 0, 65533, 1, 0, 65534, 1, 0, 65535, 1, 0, 131075, 1, 0, 196603, 1, 0, 196604, 1, 0, 524292, 1, 0, 589820, 1, 0, 786432, 1, 0, 851967, 1, 0, 0, 2, 0, 1, 2, 0, 2, 2, 0, 3, 2, 0, 4, 2, 0, 65530, 2, 0, 65531, 2, 0, 65532, 2, 0, 65533, 2, 0, 65534, 2, 0, 65535, 2, 0, 131075, 2, 0, 196603, 2, 0, 196604, 2, 0, 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, 0, 5, 0, 1, 5, 0, 2, 5, 0, 3, 5, 0, 4, 5, 0, 65530, 5, 0, 65531, 5, 0, 65532, 5, 0, 65533, 5, 0, 65534, 5, 0, 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, 0, 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, 0, 65532, 7, 0, 65533, 7, 0, 65534, 7, 0, 65535, 7, 0, 131075, 7, 0, 196603, 7, 0, 0, 8, 0, 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, 0, 131075, 8, 0, 196603, 8, 0, 196604, 8, 0, 0, 9, 0, 1, 9, 0, 2, 9, 0, 3, 9, 0, 4, 9, 0, 65530, 9, 0, 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, 0, 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, 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, 0, 65534, 65533, 0, 65535, 65533, 0, 262145, 65533, 0, 262146, 65533, 0, 262147, 65533, 0, 589822, 65533, 0, 589823, 65533, 0, 655363, 65533, 0, 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, 0, 65532, 65534, 0, 65533, 65534, 0, 65534, 65534, 0, 65535, 65534, 0, 65536, 65534, 0, 131071, 65534, 0, 196603, 65534, 0, 196604, 65534, 0, 196605, 65534, 0, 196606, 65534, 0, 196607, 65534, 0, 589822, 65534, 0, 589828, 65534, 0, 786432, 65534, 0, 851967, 65534, 0, 0, 65535, 0, 1, 65535, 0, 2, 65535, 0, 3, 65535, 0, 4, 65535, 0, 65530, 65535, 0, 65531, 65535, 0, 65532, 65535, 0, 65533, 65535, 0, 65534, 65535, 0, 65535, 65535, 0, 196603, 65535, 0, 196604, 65535, 0, 196611, 65535, 0, 589820, 65535, 0, 589821, 65535, 0, 589822, 65535, 0, 589828, 65535, 0, 786432, 65535, 0, 851967, 65535, 0) } -__meta__ = { -"_editor_clip_": 0, -"_editor_floor_": Vector3(0, 12, 0) -} [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource( "3_scanf" ) +environment = ExtResource("3_scanf") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] -transform = Transform3D(-0.173649, 0.806707, -0.564863, 0, 0.573576, 0.819152, 0.984808, 0.142244, -0.0996007, 0, 0, 0) +transform = Transform3D(-0.766044, 0.45452, -0.454519, 0, 0.707107, 0.707107, 0.642788, 0.541675, -0.541675, 0, 5, 1) light_energy = 1.3 shadow_enabled = true -shadow_reverse_cull_face = true +shadow_bias = 0.032 +directional_shadow_mode = 0 directional_shadow_split_1 = 0.05 directional_shadow_split_2 = 0.1 directional_shadow_split_3 = 0.2 -directional_shadow_fade_start = 0.25 -directional_shadow_max_distance = 50.0 +directional_shadow_fade_start = 1.0 +directional_shadow_max_distance = 24.0 -[node name="Cubio" parent="." instance=ExtResource( "2" )] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 2, 4) +[node name="Cubio" parent="." instance=ExtResource("2")] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.5, 2.3, 4) [node name="Elevator1" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.5, 4.5, -2.5) input_capture_on_drag = true [node name="Mesh" type="MeshInstance3D" parent="Elevator1"] -mesh = ExtResource( "3" ) +mesh = ExtResource("3") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator1"] -shape = SubResource( "1" ) +shape = SubResource("1") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator1"] autoplay = "updown1" playback_process_mode = 0 -anims/updown1 = SubResource( "2" ) +libraries = { +"": SubResource("AnimationLibrary_64cvx") +} [node name="Elevator2" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 8.5, 4.5) [node name="Mesh" type="MeshInstance3D" parent="Elevator2"] -mesh = ExtResource( "3" ) +mesh = ExtResource("3") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator2"] -shape = SubResource( "1" ) +shape = SubResource("1") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator2"] autoplay = "side" playback_process_mode = 0 -anims/side = SubResource( "3" ) -anims/updown1 = SubResource( "2" ) +libraries = { +"": SubResource("AnimationLibrary_4vwp8") +} [node name="Princess" type="Area3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13.25, 3) -[node name="Mushroom" parent="Princess" instance=ExtResource( "5" )] +[node name="Mushroom" parent="Princess" instance=ExtResource("5")] [node name="CollisionShape3D" type="CollisionShape3D" parent="Princess"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0) -shape = SubResource( "4" ) +shape = SubResource("4") [node name="SpawnTimer" type="Timer" parent="."] wait_time = 2.0 autostart = true -[node name="cube_rigidbody" parent="." instance=ExtResource( "7" )] +[node name="cube_rigidbody" parent="." instance=ExtResource("7")] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.416964, 3.3565, 2.6332) [connection signal="body_entered" from="Princess" to="Cubio" method="_on_tcube_body_entered"] diff --git a/3d/rigidbody_character/models/cube.glb.import b/3d/rigidbody_character/models/cube.glb.import index 72f07b1d34b..94dcb33dc18 100644 --- a/3d/rigidbody_character/models/cube.glb.import +++ b/3d/rigidbody_character/models/cube.glb.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/cube.glb-c6bf6ebacd621473d1ca4ff4a368b9dc.scn nodes/root_type="Node3D" nodes/root_name="Cube" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true diff --git a/3d/rigidbody_character/models/cube.mesh b/3d/rigidbody_character/models/cube.mesh index 7d075bc3114..09730c5fa72 100644 Binary files a/3d/rigidbody_character/models/cube.mesh and b/3d/rigidbody_character/models/cube.mesh differ diff --git a/3d/rigidbody_character/models/cube_material.tres b/3d/rigidbody_character/models/cube_material.tres index 04dce8c56b0..008b635e2f1 100644 --- a/3d/rigidbody_character/models/cube_material.tres +++ b/3d/rigidbody_character/models/cube_material.tres @@ -1,9 +1,10 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://4mtsbgdd4f8d"] -[ext_resource path="res://models/white_wood.png" type="Texture2D" id=1] +[ext_resource type="Texture2D" uid="uid://5wiey7d4yffc" path="res://models/white_wood.png" id="1"] [resource] resource_name = "Material" -albedo_color = Color( 0.5, 0.25, 1, 1 ) -albedo_texture = ExtResource( 1 ) +albedo_color = Color(1, 0.45, 0.4, 1) +albedo_texture = ExtResource("1") roughness = 0.75 +texture_filter = 5 diff --git a/3d/rigidbody_character/models/mushroom.glb.import b/3d/rigidbody_character/models/mushroom.glb.import index 9a26347facf..db9a30926fc 100644 --- a/3d/rigidbody_character/models/mushroom.glb.import +++ b/3d/rigidbody_character/models/mushroom.glb.import @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/mushroom.glb-32cf35844b7be6455c0c736b26eb7163 nodes/root_type="Node3D" nodes/root_name="Mushroom" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true diff --git a/3d/rigidbody_character/models/white_cube_material.tres b/3d/rigidbody_character/models/white_cube_material.tres index b2b2405bbf8..ebff19b5052 100644 --- a/3d/rigidbody_character/models/white_cube_material.tres +++ b/3d/rigidbody_character/models/white_cube_material.tres @@ -1,8 +1,9 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=2] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://6m447vojdbos"] -[ext_resource path="res://models/white_wood.png" type="Texture2D" id=1] +[ext_resource type="Texture2D" uid="uid://5wiey7d4yffc" path="res://models/white_wood.png" id="1"] [resource] resource_name = "Material" -albedo_texture = ExtResource( 1 ) +albedo_texture = ExtResource("1") roughness = 0.75 +texture_filter = 5 diff --git a/3d/rigidbody_character/models/white_wood.png.import b/3d/rigidbody_character/models/white_wood.png.import index a489954d69c..aad45fc5ffa 100644 --- a/3d/rigidbody_character/models/white_wood.png.import +++ b/3d/rigidbody_character/models/white_wood.png.import @@ -31,5 +31,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/rigidbody_character/player/cubio.gd b/3d/rigidbody_character/player/cubio.gd index b5cab315d89..279a359ee30 100644 --- a/3d/rigidbody_character/player/cubio.gd +++ b/3d/rigidbody_character/player/cubio.gd @@ -1,15 +1,16 @@ -extends RigidDynamicBody3D +extends RigidBody3D -@onready var raycast = $RayCast3D +@onready var shape_cast = $ShapeCast3D @onready var camera = $Target/Camera3D @onready var start_position = position func _physics_process(_delta): if Input.is_action_just_pressed(&"exit"): get_tree().quit() - if Input.is_action_just_pressed(&"reset_position"): + if Input.is_action_just_pressed(&"reset_position") or global_position.y < - 6: + # Pressed the reset key or fell off the ground. position = start_position - return + linear_velocity = Vector3.ZERO var dir = Vector3() dir.x = Input.get_axis(&"move_left", &"move_right") @@ -21,17 +22,24 @@ func _physics_process(_delta): cam_basis = cam_basis.rotated(cam_basis.x, -cam_basis.get_euler().x) dir = cam_basis * dir - apply_central_impulse(dir.normalized() / 20) + # Air movement. + apply_central_impulse(dir.normalized() * 0.04) + if on_ground(): - apply_central_impulse(dir.normalized() / 6) + # Ground movement (higher acceleration). + apply_central_impulse(dir.normalized() * 0.08) + # Jumping code. + # It's acceptable to set `linear_velocity` here as it's only set once, rather than continuously. + # Vertical speed is set (rather than added) to prevent jumping higher than intended + # if the ShapeCast3D collides for multiple frames. if Input.is_action_pressed(&"jump"): - apply_central_impulse(Vector3.UP * 2) + linear_velocity.y = 7 # Test if there is a body below the player. func on_ground(): - if raycast.is_colliding(): + if shape_cast.is_colliding(): return true diff --git a/3d/rigidbody_character/player/cubio.tscn b/3d/rigidbody_character/player/cubio.tscn index 5039477e0bf..1c716142a70 100644 --- a/3d/rigidbody_character/player/cubio.tscn +++ b/3d/rigidbody_character/player/cubio.tscn @@ -1,8 +1,11 @@ -[gd_scene load_steps=6 format=3 uid="uid://cbvuesb1ptdh4"] +[gd_scene load_steps=8 format=3 uid="uid://cbvuesb1ptdh4"] [ext_resource type="Script" path="res://player/cubio.gd" id="1"] [ext_resource type="Script" path="res://player/follow_camera.gd" id="3"] -[ext_resource type="Material" path="res://models/white_cube_material.tres" id="4"] +[ext_resource type="Material" uid="uid://6m447vojdbos" path="res://models/white_cube_material.tres" id="4"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_5bo75"] +friction = 0.5 [sub_resource type="CapsuleMesh" id="6"] height = 1.7 @@ -10,24 +13,29 @@ height = 1.7 [sub_resource type="CapsuleShape3D" id="5"] height = 1.7 -[node name="RigidDynamicBody3D" type="RigidDynamicBody3D"] +[sub_resource type="CylinderShape3D" id="CylinderShape3D_vn0tg"] +height = 0.5 +radius = 0.48 + +[node name="RigidDynamicBody3D" type="RigidBody3D"] axis_lock_angular_x = true axis_lock_angular_y = true axis_lock_angular_z = true center_of_mass_mode = 1 +physics_material_override = SubResource("PhysicsMaterial_5bo75") can_sleep = false linear_damp_mode = 1 linear_damp = 0.5 -script = ExtResource( "1" ) +script = ExtResource("1") -[node name="BoxMesh" type="MeshInstance3D" parent="."] +[node name="CapsuleMesh" type="MeshInstance3D" parent="."] _import_path = NodePath("cube-col") -mesh = SubResource( "6" ) +mesh = SubResource("6") skeleton = NodePath("") -surface_material_override/0 = ExtResource( "4" ) +surface_material_override/0 = ExtResource("4") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] -shape = SubResource( "5" ) +shape = SubResource("5") [node name="Target" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.8, 0) @@ -37,20 +45,20 @@ transform = Transform3D(0.34202, -0.321394, 0.883022, 0, 0.939693, 0.34202, -0.9 fov = 74.0 near = 0.1 far = 50.0 -script = ExtResource( "3" ) +script = ExtResource("3") [node name="WinText" type="CenterContainer" parent="."] visible = false +anchors_preset = 10 anchor_right = 1.0 offset_bottom = 100.0 +grow_horizontal = 2 [node name="Holder" type="Control" parent="WinText"] -offset_left = 512.0 -offset_top = 50.0 -offset_right = 512.0 -offset_bottom = 50.0 +layout_mode = 2 [node name="TextLabel" type="Label" parent="WinText/Holder"] +layout_mode = 0 offset_left = -354.0 offset_right = 354.0 offset_bottom = 50.0 @@ -59,4 +67,6 @@ text = "Thank You, Cubio! But the Princess is in Another Demo!" horizontal_alignment = 1 vertical_alignment = 1 -[node name="RayCast3D" type="RayCast3D" parent="."] +[node name="ShapeCast3D" type="ShapeCast3D" parent="."] +shape = SubResource("CylinderShape3D_vn0tg") +target_position = Vector3(0, -0.61, 0) diff --git a/3d/rigidbody_character/player/follow_camera.gd b/3d/rigidbody_character/player/follow_camera.gd index 0b69230ca93..9d24c51e00a 100644 --- a/3d/rigidbody_character/player/follow_camera.gd +++ b/3d/rigidbody_character/player/follow_camera.gd @@ -37,5 +37,5 @@ func _physics_process(_delta): # Turn a little up or down var t = transform - t.basis = Basis(t.basis[0], deg2rad(angle_v_adjust)) * t.basis + t.basis = Basis(t.basis[0], deg_to_rad(angle_v_adjust)) * t.basis transform = t diff --git a/3d/rigidbody_character/project.godot b/3d/rigidbody_character/project.godot index d143c79f4c1..78d658ee3be 100644 --- a/3d/rigidbody_character/project.godot +++ b/3d/rigidbody_character/project.godot @@ -14,69 +14,71 @@ config/name="RigidBody Character 3D" config/description="Rigidbody character demo for 3D using a capsule for the character. " run/main_scene="res://level.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" -[gdnative] +[display] -singletons=[] +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [input] jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } reset_position={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) ] } [physics] -common/physics_fps=120 +common/physics_ticks_per_second=120 +3d/default_gravity=13.0 [rasterizer] @@ -84,11 +86,6 @@ shadow_filter=3 [rendering] -quality/driver/fallback_to_gles2=true -vram_compression/import_etc=true -quality/shadows/filter_mode=2 -quality/filters/anisotropic_filter_level=16 -quality/filters/msaa=2 +textures/default_filters/anisotropic_filtering_level=4 +anti_aliasing/quality/msaa_3d=2 environment/default_environment="res://default_env.tres" -quality/filters/msaa.mobile=0 -quality/filters/anisotropic_filter_level.mobile=4 diff --git a/3d/rigidbody_character/screenshots/editor.png b/3d/rigidbody_character/screenshots/editor.png deleted file mode 100644 index 0b66c679d0b..00000000000 Binary files a/3d/rigidbody_character/screenshots/editor.png and /dev/null differ diff --git a/3d/rigidbody_character/screenshots/ingame.png b/3d/rigidbody_character/screenshots/ingame.png deleted file mode 100644 index ad0335617ad..00000000000 Binary files a/3d/rigidbody_character/screenshots/ingame.png and /dev/null differ diff --git a/3d/rigidbody_character/screenshots/rigidbody_character.webp b/3d/rigidbody_character/screenshots/rigidbody_character.webp new file mode 100644 index 00000000000..86cbf9c00ec Binary files /dev/null and b/3d/rigidbody_character/screenshots/rigidbody_character.webp differ diff --git a/3d/truck_town/README.md b/3d/truck_town/README.md index 0ca72c043de..81bfbbe0f79 100644 --- a/3d/truck_town/README.md +++ b/3d/truck_town/README.md @@ -22,4 +22,4 @@ nodes which are pinned together using ## Screenshots -![Screenshot](screenshots/tow.png) +![Screenshot](screenshots/truck_town.webp) diff --git a/3d/truck_town/car_select/car_select.gd b/3d/truck_town/car_select/car_select.gd index 34a1a15a2da..cf10e91d267 100644 --- a/3d/truck_town/car_select/car_select.gd +++ b/3d/truck_town/car_select/car_select.gd @@ -2,18 +2,22 @@ extends Control var town: Node3D = null +func _ready(): + # Automatically focus the first item for gamepad accessibility. + $HBoxContainer/MiniVan.call_deferred("grab_focus") + func _process(_delta: float): if Input.is_action_just_pressed(&"back"): _on_back_pressed() -func _load_scene(car_path: String): - var car: Node3D = load(car_path).instantiate() - car.name = &"car" - town = load("res://town/town_scene.tscn").instantiate() +func _load_scene(car_scene: PackedScene): + var car: Node3D = car_scene.instantiate() + car.name = "car" + town = preload("res://town/town_scene.tscn").instantiate() town.get_node(^"InstancePos").add_child(car) town.get_node(^"Spedometer").car_body = car.get_child(0) - town.get_node(^"Back").pressed.connect(_on_back_pressed) + town.get_node(^"Back").pressed.connect(self._on_back_pressed) get_parent().add_child(town) hide() @@ -24,18 +28,20 @@ func _on_back_pressed(): # Currently in the town, go back to main menu. town.queue_free() show() + # Automatically focus the first item for gamepad accessibility. + $HBoxContainer/MiniVan.call_deferred("grab_focus") else: # In main menu, exit the game. get_tree().quit() func _on_mini_van_pressed(): - _load_scene("res://vehicles/car_base.tscn") + _load_scene(preload("res://vehicles/car_base.tscn")) func _on_trailer_truck_pressed(): - _load_scene("res://vehicles/trailer_truck.tscn") + _load_scene(preload("res://vehicles/trailer_truck.tscn")) func _on_tow_truck_pressed(): - _load_scene("res://vehicles/tow_truck.tscn") + _load_scene(preload("res://vehicles/tow_truck.tscn")) diff --git a/3d/truck_town/car_select/car_select.tscn b/3d/truck_town/car_select/car_select.tscn index 1d207626a57..a3e180f2c71 100644 --- a/3d/truck_town/car_select/car_select.tscn +++ b/3d/truck_town/car_select/car_select.tscn @@ -1,10 +1,16 @@ -[gd_scene load_steps=5 format=3] +[gd_scene load_steps=6 format=3 uid="uid://ckvqraq6j1okh"] [ext_resource type="Script" path="res://car_select/car_select.gd" id="1"] [ext_resource type="Texture2D" uid="uid://bh7b4n4lg1uqt" path="res://car_select/choose_van.png" id="2"] [ext_resource type="Texture2D" uid="uid://hvkcmpdq1t0k" path="res://car_select/choose_trailer.png" id="3"] [ext_resource type="Texture2D" uid="uid://de7itkxhl0u28" path="res://car_select/choose_tow.png" id="4"] +[sub_resource type="FontVariation" id="FontVariation_hqcvw"] +variation_embolden = 1.0 +variation_transform = Transform2D(1, 0.2, 0, 1, 0, 0) +spacing_glyph = -1 +spacing_space = 4 + [node name="CarSelect" type="Control"] layout_mode = 3 anchors_preset = 8 @@ -32,29 +38,36 @@ grow_vertical = 2 alignment = 1 [node name="MiniVan" type="Button" parent="HBoxContainer"] -offset_left = 5.0 -offset_right = 333.0 -offset_bottom = 243.0 size_flags_horizontal = 6 size_flags_vertical = 4 icon = ExtResource("2") [node name="TrailerTruck" type="Button" parent="HBoxContainer"] -offset_left = 347.0 -offset_right = 675.0 -offset_bottom = 243.0 size_flags_horizontal = 6 size_flags_vertical = 4 icon = ExtResource("3") [node name="TowTruck" type="Button" parent="HBoxContainer"] -offset_left = 690.0 -offset_right = 1018.0 -offset_bottom = 243.0 size_flags_horizontal = 6 size_flags_vertical = 4 icon = ExtResource("4") +[node name="Label" type="Label" parent="."] +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -180.0 +offset_top = 32.0 +offset_right = 180.0 +offset_bottom = 123.0 +grow_horizontal = 2 +theme_override_colors/font_color = Color(0.494118, 0.858824, 0.960784, 1) +theme_override_colors/font_outline_color = Color(0.105882, 0.278431, 0.47451, 1) +theme_override_constants/outline_size = 38 +theme_override_fonts/font = SubResource("FontVariation_hqcvw") +theme_override_font_sizes/font_size = 64 +text = "Truck Town" + [connection signal="pressed" from="HBoxContainer/MiniVan" to="." method="_on_mini_van_pressed"] [connection signal="pressed" from="HBoxContainer/TrailerTruck" to="." method="_on_trailer_truck_pressed"] [connection signal="pressed" from="HBoxContainer/TowTruck" to="." method="_on_tow_truck_pressed"] diff --git a/3d/truck_town/default_env.tres b/3d/truck_town/default_env.tres index 8dfb39e41d7..c04bc1cbbf5 100644 --- a/3d/truck_town/default_env.tres +++ b/3d/truck_town/default_env.tres @@ -11,6 +11,10 @@ sky_material = SubResource("ProceduralSkyMaterial_2k12y") background_mode = 2 sky = SubResource("Sky_1gf0c") tonemap_mode = 2 -glow_enabled = true +tonemap_white = 6.0 glow_intensity = 0.5 glow_blend_mode = 1 +fog_enabled = true +fog_light_color = Color(0.62, 0.6014, 0.6014, 1) +fog_density = 0.0015 +fog_sky_affect = 0.0 diff --git a/3d/truck_town/project.godot b/3d/truck_town/project.godot index 5e1add436a6..46589cc741f 100644 --- a/3d/truck_town/project.godot +++ b/3d/truck_town/project.godot @@ -19,59 +19,138 @@ config/icon="res://icon.png" [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [input] -accelerate={ +ui_accept={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } -reverse={ +ui_select={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } -turn_left={ +ui_cancel={ +"deadzone": 0.5, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) +] +} +ui_focus_next={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"unicode":0,"echo":false,"script":null) +] +} +ui_focus_prev={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"unicode":0,"echo":false,"script":null) +] +} +ui_left={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) +] +} +ui_right={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) +] +} +ui_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null) +] +} +ui_down={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) +] +} +ui_page_up={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194323,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +ui_page_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194324,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} +accelerate={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":5,"axis_value":1.0,"script":null) +] +} +reverse={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":4,"axis_value":1.0,"script":null) +] +} +turn_left={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) ] } turn_right={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) +] +} +cycle_speedometer_unit={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":85,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":4,"pressure":0.0,"pressed":false,"script":null) ] } back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } +[physics] + +common/physics_ticks_per_second=120 + [rasterizer] shadow_filter=3 [rendering] -anti_aliasing/quality/screen_space_aa=1 -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=3 -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/shadows/filter_mode=2 -quality/filters/anisotropic_filter_level=16 -quality/filters/msaa=2 +lights_and_shadows/directional_shadow/size=8192 +lights_and_shadows/directional_shadow/soft_shadow_filter_quality=3 +textures/default_filters/anisotropic_filtering_level=4 +textures/default_filters/texture_mipmap_bias=-0.5 +textures/decals/filter=1 +environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1) +anti_aliasing/quality/msaa_3d=2 +anti_aliasing/quality/use_debanding=true environment/default_environment="res://default_env.tres" -quality/filters/anisotropic_filter_level.mobile=4 diff --git a/3d/truck_town/screenshots/truck_town.webp b/3d/truck_town/screenshots/truck_town.webp new file mode 100644 index 00000000000..39e003f33e4 Binary files /dev/null and b/3d/truck_town/screenshots/truck_town.webp differ diff --git a/3d/truck_town/spedometer.gd b/3d/truck_town/spedometer.gd index 7e146b8b698..7b77e84513c 100644 --- a/3d/truck_town/spedometer.gd +++ b/3d/truck_town/spedometer.gd @@ -8,9 +8,18 @@ enum SpeedUnit { @export var speed_unit: SpeedUnit = SpeedUnit.METERS_PER_SECOND +var gradient := Gradient.new() var car_body: VehicleBody3D +func _ready(): + # The start and end points (offset 0.0 and 1.0) are already defined in a Gradient + # resource on creation. Override their colors and only create one new point. + gradient.set_color(0, Color(0.7, 0.9, 1.0)) + gradient.set_color(1, Color(1.0, 0.3, 0.1)) + gradient.add_point(0.2, Color(1.0, 1.0, 1.0)) + + func _process(_delta): var speed := car_body.linear_velocity.length() if speed_unit == SpeedUnit.METERS_PER_SECOND: @@ -22,6 +31,9 @@ func _process(_delta): speed *= 2.23694 text = "Speed: " + ("%.0f" % speed) + " mph" + # Change speedometer color depending on speed in m/s (regardless of unit). + add_theme_color_override("font_color", gradient.sample(remap(car_body.linear_velocity.length(), 0.0, 30.0, 0.0, 1.0))) + func _on_spedometer_pressed(): speed_unit = ((speed_unit + 1) % SpeedUnit.size()) as SpeedUnit diff --git a/3d/truck_town/town/materials/cement.png b/3d/truck_town/town/materials/cement.png deleted file mode 100644 index 1d6aa98f2ce..00000000000 Binary files a/3d/truck_town/town/materials/cement.png and /dev/null differ diff --git a/3d/truck_town/town/materials/cement.png.import b/3d/truck_town/town/materials/cement.png.import deleted file mode 100644 index a9d8b4052fe..00000000000 --- a/3d/truck_town/town/materials/cement.png.import +++ /dev/null @@ -1,36 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://deeixbwehify0" -path.s3tc="res://.godot/imported/cement.png-48bbf8b709926144ff58f879dc65e769.s3tc.ctex" -path.etc2="res://.godot/imported/cement.png-48bbf8b709926144ff58f879dc65e769.etc2.ctex" -metadata={ -"imported_formats": ["s3tc", "etc2"], -"vram_texture": true -} - -[deps] - -source_file="res://town/materials/cement.png" -dest_files=["res://.godot/imported/cement.png-48bbf8b709926144ff58f879dc65e769.s3tc.ctex", "res://.godot/imported/cement.png-48bbf8b709926144ff58f879dc65e769.etc2.ctex"] - -[params] - -compress/mode=2 -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/bptc_ldr=0 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/3d/truck_town/town/materials/cement.tres b/3d/truck_town/town/materials/cement.tres index 5161dbb5ee8..b7c62f39f2c 100644 --- a/3d/truck_town/town/materials/cement.tres +++ b/3d/truck_town/town/materials/cement.tres @@ -1,9 +1,10 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=3] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://bdjiubscxkdn6"] -[ext_resource type="Texture2D" path="res://town/materials/cement.png" id="1"] +[ext_resource type="Texture2D" uid="uid://dkv00eeo3yu2w" path="res://town/materials/cement.webp" id="1_but66"] [resource] resource_name = "Cement" -albedo_texture = ExtResource("1") +albedo_texture = ExtResource("1_but66") roughness = 0.8 uv1_scale = Vector3(2, 2, 2) +texture_filter = 5 diff --git a/3d/truck_town/town/materials/cement.webp b/3d/truck_town/town/materials/cement.webp new file mode 100644 index 00000000000..cd70e219706 Binary files /dev/null and b/3d/truck_town/town/materials/cement.webp differ diff --git a/3d/truck_town/town/materials/cement.webp.import b/3d/truck_town/town/materials/cement.webp.import new file mode 100644 index 00000000000..cc51e96f7aa --- /dev/null +++ b/3d/truck_town/town/materials/cement.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://dkv00eeo3yu2w" +path="res://.godot/imported/cement.webp-a59028ca151ccfb7e6020be6c141b163.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://town/materials/cement.webp" +dest_files=["res://.godot/imported/cement.webp-a59028ca151ccfb7e6020be6c141b163.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/3d/truck_town/town/materials/grass.png b/3d/truck_town/town/materials/grass.png deleted file mode 100644 index 7cef9d065b7..00000000000 Binary files a/3d/truck_town/town/materials/grass.png and /dev/null differ diff --git a/3d/truck_town/town/materials/grass.png.import b/3d/truck_town/town/materials/grass.png.import deleted file mode 100644 index 06d6a670d14..00000000000 --- a/3d/truck_town/town/materials/grass.png.import +++ /dev/null @@ -1,36 +0,0 @@ -[remap] - -importer="texture" -type="CompressedTexture2D" -uid="uid://cltpie6eq33br" -path.s3tc="res://.godot/imported/grass.png-70a5ea3cb24fafd3dc2248b5302d522c.s3tc.ctex" -path.etc2="res://.godot/imported/grass.png-70a5ea3cb24fafd3dc2248b5302d522c.etc2.ctex" -metadata={ -"imported_formats": ["s3tc", "etc2"], -"vram_texture": true -} - -[deps] - -source_file="res://town/materials/grass.png" -dest_files=["res://.godot/imported/grass.png-70a5ea3cb24fafd3dc2248b5302d522c.s3tc.ctex", "res://.godot/imported/grass.png-70a5ea3cb24fafd3dc2248b5302d522c.etc2.ctex"] - -[params] - -compress/mode=2 -compress/lossy_quality=0.7 -compress/hdr_compression=1 -compress/bptc_ldr=0 -compress/normal_map=0 -compress/channel_pack=0 -mipmaps/generate=true -mipmaps/limit=-1 -roughness/mode=0 -roughness/src_normal="" -process/fix_alpha_border=true -process/premult_alpha=false -process/normal_map_invert_y=false -process/hdr_as_srgb=false -process/hdr_clamp_exposure=false -process/size_limit=0 -detect_3d/compress_to=0 diff --git a/3d/truck_town/town/materials/grass.tres b/3d/truck_town/town/materials/grass.tres index f03f1624457..8cafd3796ad 100644 --- a/3d/truck_town/town/materials/grass.tres +++ b/3d/truck_town/town/materials/grass.tres @@ -1,9 +1,10 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=3] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://c71ovlrgdfif5"] -[ext_resource type="Texture2D" path="res://town/materials/grass.png" id="1"] +[ext_resource type="Texture2D" uid="uid://b2g4dq0w72e68" path="res://town/materials/grass.webp" id="1_5bi3i"] [resource] resource_name = "Grass" -albedo_texture = ExtResource("1") +albedo_texture = ExtResource("1_5bi3i") roughness = 0.8 uv1_scale = Vector3(2, 2, 2) +texture_filter = 5 diff --git a/3d/truck_town/town/materials/grass.webp b/3d/truck_town/town/materials/grass.webp new file mode 100644 index 00000000000..cb693927671 Binary files /dev/null and b/3d/truck_town/town/materials/grass.webp differ diff --git a/3d/truck_town/town/materials/grass.webp.import b/3d/truck_town/town/materials/grass.webp.import new file mode 100644 index 00000000000..246e99755de --- /dev/null +++ b/3d/truck_town/town/materials/grass.webp.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b2g4dq0w72e68" +path="res://.godot/imported/grass.webp-0ccf2a619a3f121234da585c8abbfdba.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://town/materials/grass.webp" +dest_files=["res://.godot/imported/grass.webp-0ccf2a619a3f121234da585c8abbfdba.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/3d/truck_town/town/town_scene.tscn b/3d/truck_town/town/town_scene.tscn index 182aeadfdf6..4a41e56008f 100644 --- a/3d/truck_town/town/town_scene.tscn +++ b/3d/truck_town/town/town_scene.tscn @@ -1,8 +1,101 @@ -[gd_scene load_steps=4 format=3 uid="uid://d0ygmqpylq0wy"] +[gd_scene load_steps=32 format=3 uid="uid://d0ygmqpylq0wy"] [ext_resource type="PackedScene" uid="uid://dfdgytsvtqxwv" path="res://town/truck_town.glb" id="1_x0dmm"] [ext_resource type="Script" path="res://spedometer.gd" id="2"] [ext_resource type="Environment" uid="uid://cuvs67826w51u" path="res://default_env.tres" id="3_t0mbp"] +[ext_resource type="Texture2D" uid="uid://b2g4dq0w72e68" path="res://town/materials/grass.webp" id="4_cymw0"] +[ext_resource type="Material" uid="uid://bdjiubscxkdn6" path="res://town/materials/cement.tres" id="5_83ty7"] + +[sub_resource type="InputEventAction" id="InputEventAction_ulcw2"] +action = &"cycle_speedometer_unit" + +[sub_resource type="Shortcut" id="Shortcut_r8gsr"] +events = [SubResource("InputEventAction_ulcw2")] + +[sub_resource type="BoxMesh" id="BoxMesh_ds7l2"] +size = Vector3(4096, 1, 4096) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_w8yqu"] +albedo_texture = ExtResource("4_cymw0") +roughness = 0.8 +uv1_scale = Vector3(128, 64, 1) +texture_filter = 5 + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_mi6nf"] +data = PackedVector3Array(-2048, 0.5, 2048, 2048, 0.5, 2048, -2048, -0.5, 2048, 2048, 0.5, 2048, 2048, -0.5, 2048, -2048, -0.5, 2048, 2048, 0.5, -2048, -2048, 0.5, -2048, 2048, -0.5, -2048, -2048, 0.5, -2048, -2048, -0.5, -2048, 2048, -0.5, -2048, 2048, 0.5, 2048, 2048, 0.5, -2048, 2048, -0.5, 2048, 2048, 0.5, -2048, 2048, -0.5, -2048, 2048, -0.5, 2048, -2048, 0.5, -2048, -2048, 0.5, 2048, -2048, -0.5, -2048, -2048, 0.5, 2048, -2048, -0.5, 2048, -2048, -0.5, -2048, 2048, 0.5, 2048, -2048, 0.5, 2048, 2048, 0.5, -2048, -2048, 0.5, 2048, -2048, 0.5, -2048, 2048, 0.5, -2048, -2048, -0.5, 2048, 2048, -0.5, 2048, -2048, -0.5, -2048, 2048, -0.5, 2048, 2048, -0.5, -2048, -2048, -0.5, -2048) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_uw685"] +data = PackedVector3Array(-2048, 0.5, 2048, 2048, 0.5, 2048, -2048, -0.5, 2048, 2048, 0.5, 2048, 2048, -0.5, 2048, -2048, -0.5, 2048, 2048, 0.5, -2048, -2048, 0.5, -2048, 2048, -0.5, -2048, -2048, 0.5, -2048, -2048, -0.5, -2048, 2048, -0.5, -2048, 2048, 0.5, 2048, 2048, 0.5, -2048, 2048, -0.5, 2048, 2048, 0.5, -2048, 2048, -0.5, -2048, 2048, -0.5, 2048, -2048, 0.5, -2048, -2048, 0.5, 2048, -2048, -0.5, -2048, -2048, 0.5, 2048, -2048, -0.5, 2048, -2048, -0.5, -2048, 2048, 0.5, 2048, -2048, 0.5, 2048, 2048, 0.5, -2048, -2048, 0.5, 2048, -2048, 0.5, -2048, 2048, 0.5, -2048, -2048, -0.5, 2048, 2048, -0.5, 2048, -2048, -0.5, -2048, 2048, -0.5, 2048, 2048, -0.5, -2048, -2048, -0.5, -2048) + +[sub_resource type="BoxMesh" id="BoxMesh_47rhw"] +size = Vector3(1990, 1, 93.75) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_jp38k"] +albedo_texture = ExtResource("4_cymw0") +roughness = 0.8 +uv1_scale = Vector3(128, 2, 1) +texture_filter = 5 + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_va4bq"] +data = PackedVector3Array(-995, 0.5, 47.017, 995, 0.5, 47.017, -995, -0.5, 47.017, 995, 0.5, 47.017, 995, -0.5, 47.017, -995, -0.5, 47.017, 995, 0.5, -47.017, -995, 0.5, -47.017, 995, -0.5, -47.017, -995, 0.5, -47.017, -995, -0.5, -47.017, 995, -0.5, -47.017, 995, 0.5, 47.017, 995, 0.5, -47.017, 995, -0.5, 47.017, 995, 0.5, -47.017, 995, -0.5, -47.017, 995, -0.5, 47.017, -995, 0.5, -47.017, -995, 0.5, 47.017, -995, -0.5, -47.017, -995, 0.5, 47.017, -995, -0.5, 47.017, -995, -0.5, -47.017, 995, 0.5, 47.017, -995, 0.5, 47.017, 995, 0.5, -47.017, -995, 0.5, 47.017, -995, 0.5, -47.017, 995, 0.5, -47.017, -995, -0.5, 47.017, 995, -0.5, 47.017, -995, -0.5, -47.017, 995, -0.5, 47.017, 995, -0.5, -47.017, -995, -0.5, -47.017) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_ibj2n"] +data = PackedVector3Array(-995, 0.5, 47.017, 995, 0.5, 47.017, -995, -0.5, 47.017, 995, 0.5, 47.017, 995, -0.5, 47.017, -995, -0.5, 47.017, 995, 0.5, -47.017, -995, 0.5, -47.017, 995, -0.5, -47.017, -995, 0.5, -47.017, -995, -0.5, -47.017, 995, -0.5, -47.017, 995, 0.5, 47.017, 995, 0.5, -47.017, 995, -0.5, 47.017, 995, 0.5, -47.017, 995, -0.5, -47.017, 995, -0.5, 47.017, -995, 0.5, -47.017, -995, 0.5, 47.017, -995, -0.5, -47.017, -995, 0.5, 47.017, -995, -0.5, 47.017, -995, -0.5, -47.017, 995, 0.5, 47.017, -995, 0.5, 47.017, 995, 0.5, -47.017, -995, 0.5, 47.017, -995, 0.5, -47.017, 995, 0.5, -47.017, -995, -0.5, 47.017, 995, -0.5, 47.017, -995, -0.5, -47.017, 995, -0.5, 47.017, 995, -0.5, -47.017, -995, -0.5, -47.017) + +[sub_resource type="Curve3D" id="Curve3D_qvxke"] +_data = { +"points": PackedVector3Array(0.543398, -0.103395, 1.65241, -0.543398, 0.103395, -1.65241, 3.28336, 5.28308, -55.2298, -0.833012, -0.217682, 2.2701, 0.833012, 0.217682, -2.2701, 3.56751, 6.35417, -60.6377, -0.0791855, 0.892603, 1.8625, 0.0791855, -0.892603, -1.8625, 5.02051, 4.0616, -66.9724, -0.149003, 0.23034, 1.52293, 0.149003, -0.23034, -1.52293, 5.94106, 1.27618, -73.7061, 0.152164, 0.0198116, 0.82222, -0.152164, -0.0198116, -0.82222, 6.24068, 1.29284, -81.1135, 0.709167, -0.00765228, 0.797897, -0.709167, 0.00765228, -0.797897, 1.66464, 0.49591, -92.5504, 1.86497, 0.492211, 1.35976, -1.86497, -0.492211, -1.35976, -5.43053, -0.176876, -98.7249, 3.65234, 0.403153, 0.595093, -3.65234, -0.403153, -0.595093, -14.2107, -2.83686, -102.669, 2.41666, 0.162499, -0.433556, -2.41666, -0.162499, 0.433556, -23.5045, -3.81825, -104.349, 2.69847, 0.0319109, -1.39461, -2.69847, -0.0319109, 1.39461, -32.5873, -4.93983, -102.986, 0, 0, 0, 0, 0, 0, -41.6334, -4.712, -100.865, 0, 0, 0, 0, 0, 0, -46.381, -4.47723, -99.9369, 1.76731, -0.395488, -0.332947, -1.76731, 0.395488, 0.332947, -48.5051, -4.01378, -99.6217, 1.47411, -0.793471, -0.42971, -1.47411, 0.793471, 0.42971, -52.9601, -1.59774, -98.743, 1.40203, -0.0544708, -0.311745, -1.40203, 0.0544708, 0.311745, -57.3469, -0.190034, -97.9515, 1.23469, 0.514086, -0.296593, -1.23469, -0.514086, 0.296593, -61.54, -0.983026, -97.2347, 1.78854, 0.324845, -0.419327, -1.78854, -0.324845, 0.419327, -65.8922, -3.47315, -96.0933, 4.19576, 0.234449, -0.89743, -4.19576, -0.234449, 0.89743, -72.3135, -4.084, -94.5145, 1.25638, 0.000484467, 10.8308, -1.25638, -0.000484467, -10.8308, -85.2469, -4.12423, -100.301, -2.00005, 0.315476, 0.567215, 2.00005, -0.315476, -0.567215, -79.6224, -4.49219, -111.463, -7.05647, 0.0288595, -2.48302, 6.90189, -0.0282273, 2.42863, -62.2289, -4.22628, -112.062, 0.259935, -0.461171, -3.92209, -0.738754, 1.31068, 11.1469, -57.1626, -4.54992, -98.6082, 2.09652, -0.278773, -0.0627518, -2.09652, 0.278773, 0.0627518, -73.0278, -2.4152, -85.6188, 2.88116, -0.17606, -0.0584183, -2.88116, 0.17606, 0.0584183, -83.2919, -2.37169, -84.7517, 3.23965, -0.202814, -1.03859, -3.23965, 0.202814, 1.03859, -101.697, -1.14444, -83.4727, 2.30534, -0.119607, -2.03248, -2.30534, 0.119607, 2.03248, -117.54, 0.480612, -77.5978, 1.62395, -0.460591, -1.66295, -1.62395, 0.460591, 1.66295, -128.78, 2.73801, -72.081, 0.623291, -0.0807109, -1.60843, -0.623291, 0.0807109, 1.60843, -142.737, 4.67136, -61.0967, -0.62944, -0.367424, -3.50014, 0.62944, 0.367424, 3.50014, -144.324, 4.46733, -50.0448, -1.81136, -0.102165, -1.03172, 1.81136, 0.102165, 1.03172, -137.273, 4.46672, -42.9261, -0.912231, -0.160881, -0.155205, 0.912231, 0.160881, 0.155205, -130.732, 4.37322, -42.3592, -1.12225, 0.309475, -0.159954, 1.12225, -0.309475, 0.159954, -127.167, 4.13784, -41.615, -1.44321, 0.289954, -0.16938, 1.44321, -0.289954, 0.16938, -123.841, 2.59092, -41.3764, -1.71183, 0.232457, -0.163383, 1.71183, -0.232457, 0.163383, -119.037, 2.92625, -40.5647, -1.65579, 0.0589757, -0.114311, 1.65579, -0.0589757, 0.114311, -115.158, 1.3437, -40.4409, -1.32726, 0.0452385, -0.0909462, 1.32726, -0.0452385, 0.0909462, -109.915, 2.63164, -39.7556, -1.40851, 0.0955319, -0.112408, 1.40851, -0.0955319, 0.112408, -106.253, 0.993988, -39.5967, -1.74428, 0.116143, -0.0901184, 1.74428, -0.116143, 0.0901184, -98.305, -0.669029, -38.2801, -1.98921, -1.76747, 0.459106, 1.98921, 1.76747, -0.459106, -87.2684, 1.03817, -38.1925, 0, 0, 0, 0, 0, 0, -80.2635, 2.10998, -38.466), +"tilts": PackedFloat32Array(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) +} +point_count = 40 + +[sub_resource type="TorusMesh" id="TorusMesh_sk6m6"] +inner_radius = 3.5 +outer_radius = 7.0 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_rbi6m"] +albedo_color = Color(0.215902, 0.215902, 0.215902, 1) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_gf7tp"] +data = PackedVector3Array(-1.3394, 0, -3.2336, 0, 1.2374, -4.0126, 0, 0, -3.5, -1.3394, 0, -3.2336, -1.5355, 1.2374, -3.7071, 0, 1.2374, -4.0126, -1.5355, 1.2374, -3.7071, 0, 1.75, -5.25, 0, 1.2374, -4.0126, -1.5355, 1.2374, -3.7071, -2.0091, 1.75, -4.8504, 0, 1.75, -5.25, -2.0091, 1.75, -4.8504, 0, 1.2374, -6.4874, 0, 1.75, -5.25, -2.0091, 1.75, -4.8504, -2.4826, 1.2374, -5.9936, 0, 1.2374, -6.4874, -2.4826, 1.2374, -5.9936, 0, 0, -7, 0, 1.2374, -6.4874, -2.4826, 1.2374, -5.9936, -2.6788, 0, -6.4672, 0, 0, -7, -2.6788, 0, -6.4672, 0, -1.2374, -6.4874, 0, 0, -7, -2.6788, 0, -6.4672, -2.4826, -1.2374, -5.9936, 0, -1.2374, -6.4874, -2.4826, -1.2374, -5.9936, 0, -1.75, -5.25, 0, -1.2374, -6.4874, -2.4826, -1.2374, -5.9936, -2.0091, -1.75, -4.8504, 0, -1.75, -5.25, -2.0091, -1.75, -4.8504, 0, -1.2374, -4.0126, 0, -1.75, -5.25, -2.0091, -1.75, -4.8504, -1.5355, -1.2374, -3.7071, 0, -1.2374, -4.0126, -1.5355, -1.2374, -3.7071, 0, 0, -3.5, 0, -1.2374, -4.0126, -1.5355, -1.2374, -3.7071, -1.3394, 0, -3.2336, 0, 0, -3.5, -2.4749, 0, -2.4749, -1.5355, 1.2374, -3.7071, -1.3394, 0, -3.2336, -2.4749, 0, -2.4749, -2.8373, 1.2374, -2.8373, -1.5355, 1.2374, -3.7071, -2.8373, 1.2374, -2.8373, -2.0091, 1.75, -4.8504, -1.5355, 1.2374, -3.7071, -2.8373, 1.2374, -2.8373, -3.7123, 1.75, -3.7123, -2.0091, 1.75, -4.8504, -3.7123, 1.75, -3.7123, -2.4826, 1.2374, -5.9936, -2.0091, 1.75, -4.8504, -3.7123, 1.75, -3.7123, -4.5873, 1.2374, -4.5873, -2.4826, 1.2374, -5.9936, -4.5873, 1.2374, -4.5873, -2.6788, 0, -6.4672, -2.4826, 1.2374, -5.9936, -4.5873, 1.2374, -4.5873, -4.9497, 0, -4.9497, -2.6788, 0, -6.4672, -4.9497, 0, -4.9497, -2.4826, -1.2374, -5.9936, -2.6788, 0, -6.4672, -4.9497, 0, -4.9497, -4.5873, -1.2374, -4.5873, -2.4826, -1.2374, -5.9936, -4.5873, -1.2374, -4.5873, -2.0091, -1.75, -4.8504, -2.4826, -1.2374, -5.9936, -4.5873, -1.2374, -4.5873, -3.7123, -1.75, -3.7123, -2.0091, -1.75, -4.8504, -3.7123, -1.75, -3.7123, -1.5355, -1.2374, -3.7071, -2.0091, -1.75, -4.8504, -3.7123, -1.75, -3.7123, -2.8373, -1.2374, -2.8373, -1.5355, -1.2374, -3.7071, -2.8373, -1.2374, -2.8373, -1.3394, 0, -3.2336, -1.5355, -1.2374, -3.7071, -2.8373, -1.2374, -2.8373, -2.4749, 0, -2.4749, -1.3394, 0, -3.2336, -3.2336, 0, -1.3394, -2.8373, 1.2374, -2.8373, -2.4749, 0, -2.4749, -3.2336, 0, -1.3394, -3.7071, 1.2374, -1.5355, -2.8373, 1.2374, -2.8373, -3.7071, 1.2374, -1.5355, -3.7123, 1.75, -3.7123, -2.8373, 1.2374, -2.8373, -3.7071, 1.2374, -1.5355, -4.8504, 1.75, -2.0091, -3.7123, 1.75, -3.7123, -4.8504, 1.75, -2.0091, -4.5873, 1.2374, -4.5873, -3.7123, 1.75, -3.7123, -4.8504, 1.75, -2.0091, -5.9936, 1.2374, -2.4826, -4.5873, 1.2374, -4.5873, -5.9936, 1.2374, -2.4826, -4.9497, 0, -4.9497, -4.5873, 1.2374, -4.5873, -5.9936, 1.2374, -2.4826, -6.4672, 0, -2.6788, -4.9497, 0, -4.9497, -6.4672, 0, -2.6788, -4.5873, -1.2374, -4.5873, -4.9497, 0, -4.9497, -6.4672, 0, -2.6788, -5.9936, -1.2374, -2.4826, -4.5873, -1.2374, -4.5873, -5.9936, -1.2374, -2.4826, -3.7123, -1.75, -3.7123, -4.5873, -1.2374, -4.5873, -5.9936, -1.2374, -2.4826, -4.8504, -1.75, -2.0091, -3.7123, -1.75, -3.7123, -4.8504, -1.75, -2.0091, -2.8373, -1.2374, -2.8373, -3.7123, -1.75, -3.7123, -4.8504, -1.75, -2.0091, -3.7071, -1.2374, -1.5355, -2.8373, -1.2374, -2.8373, -3.7071, -1.2374, -1.5355, -2.4749, 0, -2.4749, -2.8373, -1.2374, -2.8373, -3.7071, -1.2374, -1.5355, -3.2336, 0, -1.3394, -2.4749, 0, -2.4749, -3.5, 0, 0, -3.7071, 1.2374, -1.5355, -3.2336, 0, -1.3394, -3.5, 0, 0, -4.0126, 1.2374, 0, -3.7071, 1.2374, -1.5355, -4.0126, 1.2374, 0, -4.8504, 1.75, -2.0091, -3.7071, 1.2374, -1.5355, -4.0126, 1.2374, 0, -5.25, 1.75, 0, -4.8504, 1.75, -2.0091, -5.25, 1.75, 0, -5.9936, 1.2374, -2.4826, -4.8504, 1.75, -2.0091, -5.25, 1.75, 0, -6.4874, 1.2374, 0, -5.9936, 1.2374, -2.4826, -6.4874, 1.2374, 0, -6.4672, 0, -2.6788, -5.9936, 1.2374, -2.4826, -6.4874, 1.2374, 0, -7, 0, 0, -6.4672, 0, -2.6788, -7, 0, 0, -5.9936, -1.2374, -2.4826, -6.4672, 0, -2.6788, -7, 0, 0, -6.4874, -1.2374, 0, -5.9936, -1.2374, -2.4826, -6.4874, -1.2374, 0, -4.8504, -1.75, -2.0091, -5.9936, -1.2374, -2.4826, -6.4874, -1.2374, 0, -5.25, -1.75, 0, -4.8504, -1.75, -2.0091, -5.25, -1.75, 0, -3.7071, -1.2374, -1.5355, -4.8504, -1.75, -2.0091, -5.25, -1.75, 0, -4.0126, -1.2374, 0, -3.7071, -1.2374, -1.5355, -4.0126, -1.2374, 0, -3.2336, 0, -1.3394, -3.7071, -1.2374, -1.5355, -4.0126, -1.2374, 0, -3.5, 0, 0, -3.2336, 0, -1.3394, -3.2336, 0, 1.3394, -4.0126, 1.2374, 0, -3.5, 0, 0, -3.2336, 0, 1.3394, -3.7071, 1.2374, 1.5355, -4.0126, 1.2374, 0, -3.7071, 1.2374, 1.5355, -5.25, 1.75, 0, -4.0126, 1.2374, 0, -3.7071, 1.2374, 1.5355, -4.8504, 1.75, 2.0091, -5.25, 1.75, 0, -4.8504, 1.75, 2.0091, -6.4874, 1.2374, 0, -5.25, 1.75, 0, -4.8504, 1.75, 2.0091, -5.9936, 1.2374, 2.4826, -6.4874, 1.2374, 0, -5.9936, 1.2374, 2.4826, -7, 0, 0, -6.4874, 1.2374, 0, -5.9936, 1.2374, 2.4826, -6.4672, 0, 2.6788, -7, 0, 0, -6.4672, 0, 2.6788, -6.4874, -1.2374, 0, -7, 0, 0, -6.4672, 0, 2.6788, -5.9936, -1.2374, 2.4826, -6.4874, -1.2374, 0, -5.9936, -1.2374, 2.4826, -5.25, -1.75, 0, -6.4874, -1.2374, 0, -5.9936, -1.2374, 2.4826, -4.8504, -1.75, 2.0091, -5.25, -1.75, 0, -4.8504, -1.75, 2.0091, -4.0126, -1.2374, 0, -5.25, -1.75, 0, -4.8504, -1.75, 2.0091, -3.7071, -1.2374, 1.5355, -4.0126, -1.2374, 0, -3.7071, -1.2374, 1.5355, -3.5, 0, 0, -4.0126, -1.2374, 0, -3.7071, -1.2374, 1.5355, -3.2336, 0, 1.3394, -3.5, 0, 0, -2.4749, 0, 2.4749, -3.7071, 1.2374, 1.5355, -3.2336, 0, 1.3394, -2.4749, 0, 2.4749, -2.8373, 1.2374, 2.8373, -3.7071, 1.2374, 1.5355, -2.8373, 1.2374, 2.8373, -4.8504, 1.75, 2.0091, -3.7071, 1.2374, 1.5355, -2.8373, 1.2374, 2.8373, -3.7123, 1.75, 3.7123, -4.8504, 1.75, 2.0091, -3.7123, 1.75, 3.7123, -5.9936, 1.2374, 2.4826, -4.8504, 1.75, 2.0091, -3.7123, 1.75, 3.7123, -4.5873, 1.2374, 4.5873, -5.9936, 1.2374, 2.4826, -4.5873, 1.2374, 4.5873, -6.4672, 0, 2.6788, -5.9936, 1.2374, 2.4826, -4.5873, 1.2374, 4.5873, -4.9497, 0, 4.9497, -6.4672, 0, 2.6788, -4.9497, 0, 4.9497, -5.9936, -1.2374, 2.4826, -6.4672, 0, 2.6788, -4.9497, 0, 4.9497, -4.5873, -1.2374, 4.5873, -5.9936, -1.2374, 2.4826, -4.5873, -1.2374, 4.5873, -4.8504, -1.75, 2.0091, -5.9936, -1.2374, 2.4826, -4.5873, -1.2374, 4.5873, -3.7123, -1.75, 3.7123, -4.8504, -1.75, 2.0091, -3.7123, -1.75, 3.7123, -3.7071, -1.2374, 1.5355, -4.8504, -1.75, 2.0091, -3.7123, -1.75, 3.7123, -2.8373, -1.2374, 2.8373, -3.7071, -1.2374, 1.5355, -2.8373, -1.2374, 2.8373, -3.2336, 0, 1.3394, -3.7071, -1.2374, 1.5355, -2.8373, -1.2374, 2.8373, -2.4749, 0, 2.4749, -3.2336, 0, 1.3394, -1.3394, 0, 3.2336, -2.8373, 1.2374, 2.8373, -2.4749, 0, 2.4749, -1.3394, 0, 3.2336, -1.5355, 1.2374, 3.7071, -2.8373, 1.2374, 2.8373, -1.5355, 1.2374, 3.7071, -3.7123, 1.75, 3.7123, -2.8373, 1.2374, 2.8373, -1.5355, 1.2374, 3.7071, -2.0091, 1.75, 4.8504, -3.7123, 1.75, 3.7123, -2.0091, 1.75, 4.8504, -4.5873, 1.2374, 4.5873, -3.7123, 1.75, 3.7123, -2.0091, 1.75, 4.8504, -2.4826, 1.2374, 5.9936, -4.5873, 1.2374, 4.5873, -2.4826, 1.2374, 5.9936, -4.9497, 0, 4.9497, -4.5873, 1.2374, 4.5873, -2.4826, 1.2374, 5.9936, -2.6788, 0, 6.4672, -4.9497, 0, 4.9497, -2.6788, 0, 6.4672, -4.5873, -1.2374, 4.5873, -4.9497, 0, 4.9497, -2.6788, 0, 6.4672, -2.4826, -1.2374, 5.9936, -4.5873, -1.2374, 4.5873, -2.4826, -1.2374, 5.9936, -3.7123, -1.75, 3.7123, -4.5873, -1.2374, 4.5873, -2.4826, -1.2374, 5.9936, -2.0091, -1.75, 4.8504, -3.7123, -1.75, 3.7123, -2.0091, -1.75, 4.8504, -2.8373, -1.2374, 2.8373, -3.7123, -1.75, 3.7123, -2.0091, -1.75, 4.8504, -1.5355, -1.2374, 3.7071, -2.8373, -1.2374, 2.8373, -1.5355, -1.2374, 3.7071, -2.4749, 0, 2.4749, -2.8373, -1.2374, 2.8373, -1.5355, -1.2374, 3.7071, -1.3394, 0, 3.2336, -2.4749, 0, 2.4749, 0, 0, 3.5, -1.5355, 1.2374, 3.7071, -1.3394, 0, 3.2336, 0, 0, 3.5, 0, 1.2374, 4.0126, -1.5355, 1.2374, 3.7071, 0, 1.2374, 4.0126, -2.0091, 1.75, 4.8504, -1.5355, 1.2374, 3.7071, 0, 1.2374, 4.0126, 0, 1.75, 5.25, -2.0091, 1.75, 4.8504, 0, 1.75, 5.25, -2.4826, 1.2374, 5.9936, -2.0091, 1.75, 4.8504, 0, 1.75, 5.25, 0, 1.2374, 6.4874, -2.4826, 1.2374, 5.9936, 0, 1.2374, 6.4874, -2.6788, 0, 6.4672, -2.4826, 1.2374, 5.9936, 0, 1.2374, 6.4874, 0, 0, 7, -2.6788, 0, 6.4672, 0, 0, 7, -2.4826, -1.2374, 5.9936, -2.6788, 0, 6.4672, 0, 0, 7, 0, -1.2374, 6.4874, -2.4826, -1.2374, 5.9936, 0, -1.2374, 6.4874, -2.0091, -1.75, 4.8504, -2.4826, -1.2374, 5.9936, 0, -1.2374, 6.4874, 0, -1.75, 5.25, -2.0091, -1.75, 4.8504, 0, -1.75, 5.25, -1.5355, -1.2374, 3.7071, -2.0091, -1.75, 4.8504, 0, -1.75, 5.25, 0, -1.2374, 4.0126, -1.5355, -1.2374, 3.7071, 0, -1.2374, 4.0126, -1.3394, 0, 3.2336, -1.5355, -1.2374, 3.7071, 0, -1.2374, 4.0126, 0, 0, 3.5, -1.3394, 0, 3.2336, 1.3394, 0, 3.2336, 0, 1.2374, 4.0126, 0, 0, 3.5, 1.3394, 0, 3.2336, 1.5355, 1.2374, 3.7071, 0, 1.2374, 4.0126, 1.5355, 1.2374, 3.7071, 0, 1.75, 5.25, 0, 1.2374, 4.0126, 1.5355, 1.2374, 3.7071, 2.0091, 1.75, 4.8504, 0, 1.75, 5.25, 2.0091, 1.75, 4.8504, 0, 1.2374, 6.4874, 0, 1.75, 5.25, 2.0091, 1.75, 4.8504, 2.4826, 1.2374, 5.9936, 0, 1.2374, 6.4874, 2.4826, 1.2374, 5.9936, 0, 0, 7, 0, 1.2374, 6.4874, 2.4826, 1.2374, 5.9936, 2.6788, 0, 6.4672, 0, 0, 7, 2.6788, 0, 6.4672, 0, -1.2374, 6.4874, 0, 0, 7, 2.6788, 0, 6.4672, 2.4826, -1.2374, 5.9936, 0, -1.2374, 6.4874, 2.4826, -1.2374, 5.9936, 0, -1.75, 5.25, 0, -1.2374, 6.4874, 2.4826, -1.2374, 5.9936, 2.0091, -1.75, 4.8504, 0, -1.75, 5.25, 2.0091, -1.75, 4.8504, 0, -1.2374, 4.0126, 0, -1.75, 5.25, 2.0091, -1.75, 4.8504, 1.5355, -1.2374, 3.7071, 0, -1.2374, 4.0126, 1.5355, -1.2374, 3.7071, 0, 0, 3.5, 0, -1.2374, 4.0126, 1.5355, -1.2374, 3.7071, 1.3394, 0, 3.2336, 0, 0, 3.5, 2.4749, 0, 2.4749, 1.5355, 1.2374, 3.7071, 1.3394, 0, 3.2336, 2.4749, 0, 2.4749, 2.8373, 1.2374, 2.8373, 1.5355, 1.2374, 3.7071, 2.8373, 1.2374, 2.8373, 2.0091, 1.75, 4.8504, 1.5355, 1.2374, 3.7071, 2.8373, 1.2374, 2.8373, 3.7123, 1.75, 3.7123, 2.0091, 1.75, 4.8504, 3.7123, 1.75, 3.7123, 2.4826, 1.2374, 5.9936, 2.0091, 1.75, 4.8504, 3.7123, 1.75, 3.7123, 4.5873, 1.2374, 4.5873, 2.4826, 1.2374, 5.9936, 4.5873, 1.2374, 4.5873, 2.6788, 0, 6.4672, 2.4826, 1.2374, 5.9936, 4.5873, 1.2374, 4.5873, 4.9497, 0, 4.9497, 2.6788, 0, 6.4672, 4.9497, 0, 4.9497, 2.4826, -1.2374, 5.9936, 2.6788, 0, 6.4672, 4.9497, 0, 4.9497, 4.5873, -1.2374, 4.5873, 2.4826, -1.2374, 5.9936, 4.5873, -1.2374, 4.5873, 2.0091, -1.75, 4.8504, 2.4826, -1.2374, 5.9936, 4.5873, -1.2374, 4.5873, 3.7123, -1.75, 3.7123, 2.0091, -1.75, 4.8504, 3.7123, -1.75, 3.7123, 1.5355, -1.2374, 3.7071, 2.0091, -1.75, 4.8504, 3.7123, -1.75, 3.7123, 2.8373, -1.2374, 2.8373, 1.5355, -1.2374, 3.7071, 2.8373, -1.2374, 2.8373, 1.3394, 0, 3.2336, 1.5355, -1.2374, 3.7071, 2.8373, -1.2374, 2.8373, 2.4749, 0, 2.4749, 1.3394, 0, 3.2336, 3.2336, 0, 1.3394, 2.8373, 1.2374, 2.8373, 2.4749, 0, 2.4749, 3.2336, 0, 1.3394, 3.7071, 1.2374, 1.5355, 2.8373, 1.2374, 2.8373, 3.7071, 1.2374, 1.5355, 3.7123, 1.75, 3.7123, 2.8373, 1.2374, 2.8373, 3.7071, 1.2374, 1.5355, 4.8504, 1.75, 2.0091, 3.7123, 1.75, 3.7123, 4.8504, 1.75, 2.0091, 4.5873, 1.2374, 4.5873, 3.7123, 1.75, 3.7123, 4.8504, 1.75, 2.0091, 5.9936, 1.2374, 2.4826, 4.5873, 1.2374, 4.5873, 5.9936, 1.2374, 2.4826, 4.9497, 0, 4.9497, 4.5873, 1.2374, 4.5873, 5.9936, 1.2374, 2.4826, 6.4672, 0, 2.6788, 4.9497, 0, 4.9497, 6.4672, 0, 2.6788, 4.5873, -1.2374, 4.5873, 4.9497, 0, 4.9497, 6.4672, 0, 2.6788, 5.9936, -1.2374, 2.4826, 4.5873, -1.2374, 4.5873, 5.9936, -1.2374, 2.4826, 3.7123, -1.75, 3.7123, 4.5873, -1.2374, 4.5873, 5.9936, -1.2374, 2.4826, 4.8504, -1.75, 2.0091, 3.7123, -1.75, 3.7123, 4.8504, -1.75, 2.0091, 2.8373, -1.2374, 2.8373, 3.7123, -1.75, 3.7123, 4.8504, -1.75, 2.0091, 3.7071, -1.2374, 1.5355, 2.8373, -1.2374, 2.8373, 3.7071, -1.2374, 1.5355, 2.4749, 0, 2.4749, 2.8373, -1.2374, 2.8373, 3.7071, -1.2374, 1.5355, 3.2336, 0, 1.3394, 2.4749, 0, 2.4749, 3.5, 0, 0, 3.7071, 1.2374, 1.5355, 3.2336, 0, 1.3394, 3.5, 0, 0, 4.0126, 1.2374, 0, 3.7071, 1.2374, 1.5355, 4.0126, 1.2374, 0, 4.8504, 1.75, 2.0091, 3.7071, 1.2374, 1.5355, 4.0126, 1.2374, 0, 5.25, 1.75, 0, 4.8504, 1.75, 2.0091, 5.25, 1.75, 0, 5.9936, 1.2374, 2.4826, 4.8504, 1.75, 2.0091, 5.25, 1.75, 0, 6.4874, 1.2374, 0, 5.9936, 1.2374, 2.4826, 6.4874, 1.2374, 0, 6.4672, 0, 2.6788, 5.9936, 1.2374, 2.4826, 6.4874, 1.2374, 0, 7, 0, 0, 6.4672, 0, 2.6788, 7, 0, 0, 5.9936, -1.2374, 2.4826, 6.4672, 0, 2.6788, 7, 0, 0, 6.4874, -1.2374, 0, 5.9936, -1.2374, 2.4826, 6.4874, -1.2374, 0, 4.8504, -1.75, 2.0091, 5.9936, -1.2374, 2.4826, 6.4874, -1.2374, 0, 5.25, -1.75, 0, 4.8504, -1.75, 2.0091, 5.25, -1.75, 0, 3.7071, -1.2374, 1.5355, 4.8504, -1.75, 2.0091, 5.25, -1.75, 0, 4.0126, -1.2374, 0, 3.7071, -1.2374, 1.5355, 4.0126, -1.2374, 0, 3.2336, 0, 1.3394, 3.7071, -1.2374, 1.5355, 4.0126, -1.2374, 0, 3.5, 0, 0, 3.2336, 0, 1.3394, 3.2336, 0, -1.3394, 4.0126, 1.2374, 0, 3.5, 0, 0, 3.2336, 0, -1.3394, 3.7071, 1.2374, -1.5355, 4.0126, 1.2374, 0, 3.7071, 1.2374, -1.5355, 5.25, 1.75, 0, 4.0126, 1.2374, 0, 3.7071, 1.2374, -1.5355, 4.8504, 1.75, -2.0091, 5.25, 1.75, 0, 4.8504, 1.75, -2.0091, 6.4874, 1.2374, 0, 5.25, 1.75, 0, 4.8504, 1.75, -2.0091, 5.9936, 1.2374, -2.4826, 6.4874, 1.2374, 0, 5.9936, 1.2374, -2.4826, 7, 0, 0, 6.4874, 1.2374, 0, 5.9936, 1.2374, -2.4826, 6.4672, 0, -2.6788, 7, 0, 0, 6.4672, 0, -2.6788, 6.4874, -1.2374, 0, 7, 0, 0, 6.4672, 0, -2.6788, 5.9936, -1.2374, -2.4826, 6.4874, -1.2374, 0, 5.9936, -1.2374, -2.4826, 5.25, -1.75, 0, 6.4874, -1.2374, 0, 5.9936, -1.2374, -2.4826, 4.8504, -1.75, -2.0091, 5.25, -1.75, 0, 4.8504, -1.75, -2.0091, 4.0126, -1.2374, 0, 5.25, -1.75, 0, 4.8504, -1.75, -2.0091, 3.7071, -1.2374, -1.5355, 4.0126, -1.2374, 0, 3.7071, -1.2374, -1.5355, 3.5, 0, 0, 4.0126, -1.2374, 0, 3.7071, -1.2374, -1.5355, 3.2336, 0, -1.3394, 3.5, 0, 0, 2.4749, 0, -2.4749, 3.7071, 1.2374, -1.5355, 3.2336, 0, -1.3394, 2.4749, 0, -2.4749, 2.8373, 1.2374, -2.8373, 3.7071, 1.2374, -1.5355, 2.8373, 1.2374, -2.8373, 4.8504, 1.75, -2.0091, 3.7071, 1.2374, -1.5355, 2.8373, 1.2374, -2.8373, 3.7123, 1.75, -3.7123, 4.8504, 1.75, -2.0091, 3.7123, 1.75, -3.7123, 5.9936, 1.2374, -2.4826, 4.8504, 1.75, -2.0091, 3.7123, 1.75, -3.7123, 4.5873, 1.2374, -4.5873, 5.9936, 1.2374, -2.4826, 4.5873, 1.2374, -4.5873, 6.4672, 0, -2.6788, 5.9936, 1.2374, -2.4826, 4.5873, 1.2374, -4.5873, 4.9497, 0, -4.9497, 6.4672, 0, -2.6788, 4.9497, 0, -4.9497, 5.9936, -1.2374, -2.4826, 6.4672, 0, -2.6788, 4.9497, 0, -4.9497, 4.5873, -1.2374, -4.5873, 5.9936, -1.2374, -2.4826, 4.5873, -1.2374, -4.5873, 4.8504, -1.75, -2.0091, 5.9936, -1.2374, -2.4826, 4.5873, -1.2374, -4.5873, 3.7123, -1.75, -3.7123, 4.8504, -1.75, -2.0091, 3.7123, -1.75, -3.7123, 3.7071, -1.2374, -1.5355, 4.8504, -1.75, -2.0091, 3.7123, -1.75, -3.7123, 2.8373, -1.2374, -2.8373, 3.7071, -1.2374, -1.5355, 2.8373, -1.2374, -2.8373, 3.2336, 0, -1.3394, 3.7071, -1.2374, -1.5355, 2.8373, -1.2374, -2.8373, 2.4749, 0, -2.4749, 3.2336, 0, -1.3394, 1.3394, 0, -3.2336, 2.8373, 1.2374, -2.8373, 2.4749, 0, -2.4749, 1.3394, 0, -3.2336, 1.5355, 1.2374, -3.7071, 2.8373, 1.2374, -2.8373, 1.5355, 1.2374, -3.7071, 3.7123, 1.75, -3.7123, 2.8373, 1.2374, -2.8373, 1.5355, 1.2374, -3.7071, 2.0091, 1.75, -4.8504, 3.7123, 1.75, -3.7123, 2.0091, 1.75, -4.8504, 4.5873, 1.2374, -4.5873, 3.7123, 1.75, -3.7123, 2.0091, 1.75, -4.8504, 2.4826, 1.2374, -5.9936, 4.5873, 1.2374, -4.5873, 2.4826, 1.2374, -5.9936, 4.9497, 0, -4.9497, 4.5873, 1.2374, -4.5873, 2.4826, 1.2374, -5.9936, 2.6788, 0, -6.4672, 4.9497, 0, -4.9497, 2.6788, 0, -6.4672, 4.5873, -1.2374, -4.5873, 4.9497, 0, -4.9497, 2.6788, 0, -6.4672, 2.4826, -1.2374, -5.9936, 4.5873, -1.2374, -4.5873, 2.4826, -1.2374, -5.9936, 3.7123, -1.75, -3.7123, 4.5873, -1.2374, -4.5873, 2.4826, -1.2374, -5.9936, 2.0091, -1.75, -4.8504, 3.7123, -1.75, -3.7123, 2.0091, -1.75, -4.8504, 2.8373, -1.2374, -2.8373, 3.7123, -1.75, -3.7123, 2.0091, -1.75, -4.8504, 1.5355, -1.2374, -3.7071, 2.8373, -1.2374, -2.8373, 1.5355, -1.2374, -3.7071, 2.4749, 0, -2.4749, 2.8373, -1.2374, -2.8373, 1.5355, -1.2374, -3.7071, 1.3394, 0, -3.2336, 2.4749, 0, -2.4749, 0, 0, -3.5, 1.5355, 1.2374, -3.7071, 1.3394, 0, -3.2336, 0, 0, -3.5, 0, 1.2374, -4.0126, 1.5355, 1.2374, -3.7071, 0, 1.2374, -4.0126, 2.0091, 1.75, -4.8504, 1.5355, 1.2374, -3.7071, 0, 1.2374, -4.0126, 0, 1.75, -5.25, 2.0091, 1.75, -4.8504, 0, 1.75, -5.25, 2.4826, 1.2374, -5.9936, 2.0091, 1.75, -4.8504, 0, 1.75, -5.25, 0, 1.2374, -6.4874, 2.4826, 1.2374, -5.9936, 0, 1.2374, -6.4874, 2.6788, 0, -6.4672, 2.4826, 1.2374, -5.9936, 0, 1.2374, -6.4874, 0, 0, -7, 2.6788, 0, -6.4672, 0, 0, -7, 2.4826, -1.2374, -5.9936, 2.6788, 0, -6.4672, 0, 0, -7, 0, -1.2374, -6.4874, 2.4826, -1.2374, -5.9936, 0, -1.2374, -6.4874, 2.0091, -1.75, -4.8504, 2.4826, -1.2374, -5.9936, 0, -1.2374, -6.4874, 0, -1.75, -5.25, 2.0091, -1.75, -4.8504, 0, -1.75, -5.25, 1.5355, -1.2374, -3.7071, 2.0091, -1.75, -4.8504, 0, -1.75, -5.25, 0, -1.2374, -4.0126, 1.5355, -1.2374, -3.7071, 0, -1.2374, -4.0126, 1.3394, 0, -3.2336, 1.5355, -1.2374, -3.7071, 0, -1.2374, -4.0126, 0, 0, -3.5, 1.3394, 0, -3.2336) + +[sub_resource type="PrismMesh" id="PrismMesh_blya6"] +left_to_right = 0.0 +size = Vector3(4, 2, 4) + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_oax4w"] +albedo_color = Color(1, 0.666667, 0.176471, 1) + +[sub_resource type="PrismMesh" id="PrismMesh_tj1wu"] +left_to_right = 0.0 +size = Vector3(4, 1, 4) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_xghv0"] +data = PackedVector3Array(-2, 1, 2, 2, -1, 2, -2, -1, 2, -2, 1, -2, -2, -1, -2, 2, -1, -2, -2, 1, 2, -2, 1, -2, 2, -1, 2, -2, 1, -2, 2, -1, -2, 2, -1, 2, -2, 1, -2, -2, 1, 2, -2, -1, -2, -2, 1, 2, -2, -1, 2, -2, -1, -2, -2, -1, 2, 2, -1, 2, -2, -1, -2, 2, -1, 2, 2, -1, -2, -2, -1, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_b33qc"] +data = PackedVector3Array(-2, 0.5, 2, 2, -0.5, 2, -2, -0.5, 2, -2, 0.5, -2, -2, -0.5, -2, 2, -0.5, -2, -2, 0.5, 2, -2, 0.5, -2, 2, -0.5, 2, -2, 0.5, -2, 2, -0.5, -2, 2, -0.5, 2, -2, 0.5, -2, -2, 0.5, 2, -2, -0.5, -2, -2, 0.5, 2, -2, -0.5, 2, -2, -0.5, -2, -2, -0.5, 2, 2, -0.5, 2, -2, -0.5, -2, 2, -0.5, 2, 2, -0.5, -2, -2, -0.5, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_2ho56"] +data = PackedVector3Array(-2, 1, 2, 2, -1, 2, -2, -1, 2, -2, 1, -2, -2, -1, -2, 2, -1, -2, -2, 1, 2, -2, 1, -2, 2, -1, 2, -2, 1, -2, 2, -1, -2, 2, -1, 2, -2, 1, -2, -2, 1, 2, -2, -1, -2, -2, 1, 2, -2, -1, 2, -2, -1, -2, -2, -1, 2, 2, -1, 2, -2, -1, -2, 2, -1, 2, 2, -1, -2, -2, -1, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_b100k"] +data = PackedVector3Array(-2, 0.5, 2, 2, -0.5, 2, -2, -0.5, 2, -2, 0.5, -2, -2, -0.5, -2, 2, -0.5, -2, -2, 0.5, 2, -2, 0.5, -2, 2, -0.5, 2, -2, 0.5, -2, 2, -0.5, -2, 2, -0.5, 2, -2, 0.5, -2, -2, 0.5, 2, -2, -0.5, -2, -2, 0.5, 2, -2, -0.5, 2, -2, -0.5, -2, -2, -0.5, 2, 2, -0.5, 2, -2, -0.5, -2, 2, -0.5, 2, 2, -0.5, -2, -2, -0.5, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_0ayl4"] +data = PackedVector3Array(-2, 1, 2, 2, -1, 2, -2, -1, 2, -2, 1, -2, -2, -1, -2, 2, -1, -2, -2, 1, 2, -2, 1, -2, 2, -1, 2, -2, 1, -2, 2, -1, -2, 2, -1, 2, -2, 1, -2, -2, 1, 2, -2, -1, -2, -2, 1, 2, -2, -1, 2, -2, -1, -2, -2, -1, 2, 2, -1, 2, -2, -1, -2, 2, -1, 2, 2, -1, -2, -2, -1, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_15i73"] +data = PackedVector3Array(-2, 0.5, 2, 2, -0.5, 2, -2, -0.5, 2, -2, 0.5, -2, -2, -0.5, -2, 2, -0.5, -2, -2, 0.5, 2, -2, 0.5, -2, 2, -0.5, 2, -2, 0.5, -2, 2, -0.5, -2, 2, -0.5, 2, -2, 0.5, -2, -2, 0.5, 2, -2, -0.5, -2, -2, 0.5, 2, -2, -0.5, 2, -2, -0.5, -2, -2, -0.5, 2, 2, -0.5, 2, -2, -0.5, -2, 2, -0.5, 2, 2, -0.5, -2, -2, -0.5, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_vadk1"] +data = PackedVector3Array(-2, 1, 2, 2, -1, 2, -2, -1, 2, -2, 1, -2, -2, -1, -2, 2, -1, -2, -2, 1, 2, -2, 1, -2, 2, -1, 2, -2, 1, -2, 2, -1, -2, 2, -1, 2, -2, 1, -2, -2, 1, 2, -2, -1, -2, -2, 1, 2, -2, -1, 2, -2, -1, -2, -2, -1, 2, 2, -1, 2, -2, -1, -2, 2, -1, 2, 2, -1, -2, -2, -1, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_fd8rp"] +data = PackedVector3Array(-2, 0.5, 2, 2, -0.5, 2, -2, -0.5, 2, -2, 0.5, -2, -2, -0.5, -2, 2, -0.5, -2, -2, 0.5, 2, -2, 0.5, -2, 2, -0.5, 2, -2, 0.5, -2, 2, -0.5, -2, 2, -0.5, 2, -2, 0.5, -2, -2, 0.5, 2, -2, -0.5, -2, -2, 0.5, 2, -2, -0.5, 2, -2, -0.5, -2, -2, -0.5, 2, 2, -0.5, 2, -2, -0.5, -2, 2, -0.5, 2, 2, -0.5, -2, -2, -0.5, -2) + +[sub_resource type="ConcavePolygonShape3D" id="ConcavePolygonShape3D_0v26t"] +data = PackedVector3Array(-2, 1, 2, 2, -1, 2, -2, -1, 2, -2, 1, -2, -2, -1, -2, 2, -1, -2, -2, 1, 2, -2, 1, -2, 2, -1, 2, -2, 1, -2, 2, -1, -2, 2, -1, 2, -2, 1, -2, -2, 1, 2, -2, -1, -2, -2, 1, 2, -2, -1, 2, -2, -1, -2, -2, -1, 2, 2, -1, 2, -2, -1, -2, 2, -1, 2, 2, -1, -2, -2, -1, -2) [node name="TownScene" type="Node3D"] @@ -12,28 +105,226 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 6, -40) [node name="Spedometer" type="Button" parent="."] -custom_minimum_size = Vector2(150, 40) -anchors_preset = 1 +custom_minimum_size = Vector2(140, 40) +anchors_preset = 3 anchor_left = 1.0 +anchor_top = 1.0 anchor_right = 1.0 -offset_left = -150.0 -offset_bottom = 40.0 +anchor_bottom = 1.0 +offset_left = -164.0 +offset_top = -64.0 +offset_right = -24.0 +offset_bottom = -24.0 grow_horizontal = 0 +grow_vertical = 0 +focus_mode = 0 +shortcut_in_tooltip = false +action_mode = 0 +shortcut = SubResource("Shortcut_r8gsr") +shortcut_feedback = false text = "Speed: ???" script = ExtResource("2") [node name="Back" type="Button" parent="."] -offset_left = 17.0 -offset_top = 9.0 -offset_right = 85.0 -offset_bottom = 41.0 -text = "<- Back!" +offset_left = 24.0 +offset_top = 24.0 +offset_right = 92.0 +offset_bottom = 56.0 +text = "« Back" [node name="Environment" type="WorldEnvironment" parent="."] environment = ExtResource("3_t0mbp") [node name="Sun" type="DirectionalLight3D" parent="."] -transform = Transform3D(0.939693, -0.280167, -0.196175, -5.01437e-08, -0.573577, 0.819152, -0.34202, -0.769751, -0.538986, 0, 24.4076, 0) +transform = Transform3D(0.506501, -0.706305, -0.494561, -4.63342e-08, -0.573577, 0.819152, -0.86224, -0.414901, -0.290517, 11.0084, 12.3453, -31.3148) +light_energy = 1.45 shadow_enabled = true +shadow_bias = 0.015 +shadow_blur = 1.5 +directional_shadow_mode = 0 +directional_shadow_max_distance = 80.0 + +[node name="Ground" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29, -5.86, 2064.6) +cast_shadow = 0 +mesh = SubResource("BoxMesh_ds7l2") +surface_material_override/0 = SubResource("StandardMaterial3D_w8yqu") + +[node name="StaticBody3D" type="StaticBody3D" parent="Ground"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_mi6nf") + +[node name="Ground2" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29, -5.86, -2125.13) +cast_shadow = 0 +mesh = SubResource("BoxMesh_ds7l2") +surface_material_override/0 = SubResource("StandardMaterial3D_w8yqu") + +[node name="StaticBody3D" type="StaticBody3D" parent="Ground2"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground2/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_uw685") + +[node name="Ground3" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1082.19, -5.86, -30.267) +cast_shadow = 0 +mesh = SubResource("BoxMesh_47rhw") +surface_material_override/0 = SubResource("StandardMaterial3D_jp38k") + +[node name="StaticBody3D" type="StaticBody3D" parent="Ground3"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground3/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_va4bq") + +[node name="Ground4" type="MeshInstance3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1027.31, -5.86, -30.248) +cast_shadow = 0 +mesh = SubResource("BoxMesh_47rhw") +surface_material_override/0 = SubResource("StandardMaterial3D_jp38k") + +[node name="StaticBody3D" type="StaticBody3D" parent="Ground4"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Ground4/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_ibj2n") + +[node name="Racetrack" type="CSGPolygon3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.225899, 0) +calculate_tangents = false +use_collision = true +polygon = PackedVector2Array(-1.5, 1, -1.4, 1, -1.3, 0.9, -1.2, 0.9, 2.2, 0.9, 2.3, 0.9, 2.4, 1, 2.5, 1, 2.4, 0.9, 2, 0.1, 2, 0, 1.9, -0.1, -0.9, -0.1, -1, 0, -1, 0.1, -1.4, 0.9) +mode = 2 +path_node = NodePath("Path3D") +path_interval_type = 0 +path_interval = 0.5 +path_simplify_angle = 2.0 +path_rotation = 1 +path_local = true +path_continuous_u = true +path_u_distance = 20.0 +path_joined = false +smooth_faces = true +material = ExtResource("5_83ty7") + +[node name="Path3D" type="Path3D" parent="Racetrack"] +curve = SubResource("Curve3D_qvxke") + +[node name="HugeTire" type="MeshInstance3D" parent="Racetrack"] +transform = Transform3D(-4.29291e-08, 0.982104, 0.188341, -1, -4.37114e-08, -6.16922e-16, 8.23266e-09, -0.188341, 0.982104, -43, -2.7741, -101.158) +mesh = SubResource("TorusMesh_sk6m6") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_rbi6m") +metadata/_edit_group_ = true + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/HugeTire"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/HugeTire/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_gf7tp") + +[node name="Ramp" type="MeshInstance3D" parent="Racetrack"] +transform = Transform3D(0.984808, 0, 0.173648, 0, 1, 0, -0.173648, 0, 0.984808, -36, -4.13, -106.8) +mesh = SubResource("PrismMesh_blya6") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") +metadata/_edit_group_ = true + +[node name="RampStart" type="MeshInstance3D" parent="Racetrack/Ramp"] +transform = Transform3D(1, 0, 1.49012e-08, 0, 1, 0, -1.49012e-08, 0, 1, 1, -0.5, 7.62939e-06) +mesh = SubResource("PrismMesh_tj1wu") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_xghv0") + +[node name="Ramp2" type="MeshInstance3D" parent="Racetrack"] +transform = Transform3D(0.984808, 0, 0.173648, 0, 1, 0, -0.173648, 0, 0.984808, -34.366, -4.13, -98.138) +mesh = SubResource("PrismMesh_blya6") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") +metadata/_edit_group_ = true + +[node name="RampStart" type="MeshInstance3D" parent="Racetrack/Ramp2"] +transform = Transform3D(1, 0, 1.49012e-08, 0, 1, 0, -1.49012e-08, 0, 1, 1, -0.5, 7.62939e-06) +mesh = SubResource("PrismMesh_tj1wu") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp2/RampStart"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp2/RampStart/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_b33qc") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp2"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp2/StaticBody3D"] +transform = Transform3D(1, 0, 1.49012e-08, 0, 1, 0, -1.49012e-08, 0, 1, 0, 0, 0) +shape = SubResource("ConcavePolygonShape3D_2ho56") + +[node name="Ramp3" type="MeshInstance3D" parent="Racetrack"] +transform = Transform3D(0.984808, 0, 0.173648, 0, 1, 0, -0.173648, 0, 0.984808, -80.4018, -4.13, -101.536) +mesh = SubResource("PrismMesh_blya6") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") +metadata/_edit_group_ = true + +[node name="RampStart" type="MeshInstance3D" parent="Racetrack/Ramp3"] +transform = Transform3D(1, 0, 1.49012e-08, 0, 1, 0, -1.49012e-08, 0, 1, 1, -0.5, 7.62939e-06) +mesh = SubResource("PrismMesh_tj1wu") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp3/RampStart"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp3/RampStart/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_b100k") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp3"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp3/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_0ayl4") + +[node name="Ramp4" type="MeshInstance3D" parent="Racetrack"] +transform = Transform3D(-0.984808, 0, -0.173648, 0, 1, 0, 0.173648, 0, -0.984808, -62.2203, -4.13, -104.798) +mesh = SubResource("PrismMesh_blya6") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") +metadata/_edit_group_ = true + +[node name="RampStart" type="MeshInstance3D" parent="Racetrack/Ramp4"] +transform = Transform3D(1, 0, 1.49012e-08, 0, 1, 0, -1.49012e-08, 0, 1, 1, -0.5, 7.62939e-06) +mesh = SubResource("PrismMesh_tj1wu") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp4/RampStart"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp4/RampStart/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_15i73") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp4"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp4/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_vadk1") + +[node name="Ramp5" type="MeshInstance3D" parent="Racetrack"] +transform = Transform3D(-0.984808, 0, -0.173648, 0, 1, 0, 0.173648, 0, -0.984808, -89.0271, -4.13, -100.015) +mesh = SubResource("PrismMesh_blya6") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") +metadata/_edit_group_ = true + +[node name="RampStart" type="MeshInstance3D" parent="Racetrack/Ramp5"] +transform = Transform3D(1, 0, 1.49012e-08, 0, 1, 0, -1.49012e-08, 0, 1, 1, -0.5, 7.62939e-06) +mesh = SubResource("PrismMesh_tj1wu") +skeleton = NodePath("../..") +surface_material_override/0 = SubResource("StandardMaterial3D_oax4w") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp5/RampStart"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp5/RampStart/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_fd8rp") + +[node name="StaticBody3D" type="StaticBody3D" parent="Racetrack/Ramp5"] + +[node name="CollisionShape3D" type="CollisionShape3D" parent="Racetrack/Ramp5/StaticBody3D"] +shape = SubResource("ConcavePolygonShape3D_0v26t") [connection signal="pressed" from="Spedometer" to="Spedometer" method="_on_spedometer_pressed"] diff --git a/3d/truck_town/town/truck_town.glb b/3d/truck_town/town/truck_town.glb index 8c08def13c7..fa1045dfe18 100644 Binary files a/3d/truck_town/town/truck_town.glb and b/3d/truck_town/town/truck_town.glb differ diff --git a/3d/truck_town/town/truck_town.glb.import b/3d/truck_town/town/truck_town.glb.import index 97c0414b8a3..c1b18e099a0 100644 --- a/3d/truck_town/town/truck_town.glb.import +++ b/3d/truck_town/town/truck_town.glb.import @@ -15,15 +15,17 @@ dest_files=["res://.godot/imported/truck_town.glb-49b71606091d50bf5665443ce42e43 nodes/root_type="Node3D" nodes/root_name="TruckTown" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true -meshes/generate_lods=true +meshes/generate_lods=false meshes/create_shadow_meshes=true meshes/light_baking=1 meshes/lightmap_texel_size=0.2 skins/use_named_skins=false animation/import=false animation/fps=30 +animation/trimming=false import_script/path="" _subresources={ "materials": { diff --git a/3d/truck_town/vehicles/blob_shadow.png b/3d/truck_town/vehicles/blob_shadow.png new file mode 100644 index 00000000000..b10f97795eb Binary files /dev/null and b/3d/truck_town/vehicles/blob_shadow.png differ diff --git a/3d/truck_town/vehicles/blob_shadow.png.import b/3d/truck_town/vehicles/blob_shadow.png.import new file mode 100644 index 00000000000..4acec43d797 --- /dev/null +++ b/3d/truck_town/vehicles/blob_shadow.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://bju75l2w3r7vq" +path="res://.godot/imported/blob_shadow.png-543236f87c8fdb7d06671b1460d3917a.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://vehicles/blob_shadow.png" +dest_files=["res://.godot/imported/blob_shadow.png-543236f87c8fdb7d06671b1460d3917a.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/3d/truck_town/vehicles/car_base.tscn b/3d/truck_town/vehicles/car_base.tscn index 93bf64572f1..82e5b89173a 100644 --- a/3d/truck_town/vehicles/car_base.tscn +++ b/3d/truck_town/vehicles/car_base.tscn @@ -1,22 +1,61 @@ -[gd_scene load_steps=7 format=3 uid="uid://c1uai3rvx8hul"] +[gd_scene load_steps=18 format=3 uid="uid://c1uai3rvx8hul"] [ext_resource type="Script" path="res://vehicles/vehicle.gd" id="1_r806m"] -[ext_resource type="ArrayMesh" uid="uid://s3nm456cy46b" path="res://vehicles/meshes/wheel.res" id="2_0cso8"] -[ext_resource type="ArrayMesh" uid="uid://d3ogs0rwex0kc" path="res://vehicles/meshes/minivan.res" id="3_tkg08"] +[ext_resource type="Texture2D" uid="uid://d4ostmqwgytk" path="res://vehicles/particle_smoke.png" id="2_1gkvk"] +[ext_resource type="ArrayMesh" uid="uid://bqrwin8ccgptt" path="res://vehicles/meshes/wheel.res" id="2_3cqaw"] +[ext_resource type="ArrayMesh" uid="uid://b2xi556mwp7ue" path="res://vehicles/meshes/minivan.res" id="3_cqia8"] [ext_resource type="Script" path="res://vehicles/follow_camera.gd" id="4_6igu8"] - -[sub_resource type="PhysicsMaterial" id="1"] +[ext_resource type="AudioStream" uid="uid://cb7wvsd6vygd3" path="res://vehicles/engine.wav" id="5_m8g7o"] +[ext_resource type="AudioStream" uid="uid://sy2li7u35867" path="res://vehicles/impact_1.wav" id="6_kq567"] +[ext_resource type="AudioStream" uid="uid://bf0h7s81yr8nj" path="res://vehicles/impact_2.wav" id="7_e8n8v"] +[ext_resource type="AudioStream" uid="uid://sun2n8a4xapl" path="res://vehicles/impact_3.wav" id="8_mh5uv"] +[ext_resource type="AudioStream" uid="uid://dpbayeeufya21" path="res://vehicles/impact_4.wav" id="9_bomp1"] +[ext_resource type="Texture2D" uid="uid://bju75l2w3r7vq" path="res://vehicles/blob_shadow.png" id="11_3ryw5"] + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_snohs"] friction = 0.5 -[sub_resource type="BoxShape3D" id="7"] +[sub_resource type="BoxShape3D" id="BoxShape3D_nldm2"] size = Vector3(0.954078, 1, 2.32662) +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_r6uy4"] +streams_count = 4 +random_pitch = 1.05 +random_volume_offset_db = 2.0 +stream_0/stream = ExtResource("6_kq567") +stream_0/weight = 1.0 +stream_1/stream = ExtResource("7_e8n8v") +stream_1/weight = 1.0 +stream_2/stream = ExtResource("8_mh5uv") +stream_2/weight = 1.0 +stream_3/stream = ExtResource("9_bomp1") +stream_3/weight = 1.0 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qgr8p"] +transparency = 1 +shading_mode = 0 +albedo_color = Color(0.462745, 0.462745, 0.462745, 0.501961) +albedo_texture = ExtResource("2_1gkvk") +billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +proximity_fade_enabled = true +proximity_fade_distance = 0.5 + +[sub_resource type="QuadMesh" id="QuadMesh_xaqv0"] +material = SubResource("StandardMaterial3D_qgr8p") + +[sub_resource type="Curve" id="Curve_eeu5s"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + [node name="CarBase" type="Node3D"] [node name="Body" type="VehicleBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00169557, 0.222867, -0.0955184) center_of_mass_mode = 1 -physics_material_override = SubResource("1") +physics_material_override = SubResource("PhysicsMaterial_snohs") script = ExtResource("1_r806m") [node name="Wheel1" type="VehicleWheel3D" parent="Body"] @@ -31,8 +70,9 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel1" type="MeshInstance3D" parent="Body/Wheel1"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_0cso8") +mesh = ExtResource("2_3cqaw") [node name="Wheel2" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573678, 0.115169, -0.783403) @@ -45,8 +85,9 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel2" type="MeshInstance3D" parent="Body/Wheel2"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_0cso8") +mesh = ExtResource("2_3cqaw") [node name="Wheel3" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.115169, 1.10416) @@ -60,8 +101,9 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel3" type="MeshInstance3D" parent="Body/Wheel3"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_0cso8") +mesh = ExtResource("2_3cqaw") [node name="Wheel4" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.115169, -0.783403) @@ -74,16 +116,18 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel4" type="MeshInstance3D" parent="Body/Wheel4"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_0cso8") +mesh = ExtResource("2_3cqaw") [node name="Body" type="MeshInstance3D" parent="Body"] +layers = 2 gi_mode = 2 -mesh = ExtResource("3_tkg08") +mesh = ExtResource("3_cqia8") [node name="CollisionShape3D" type="CollisionShape3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.588269, 0.0774262) -shape = SubResource("7") +shape = SubResource("BoxShape3D_nldm2") [node name="CameraBase" type="Node3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97449, 0) @@ -94,5 +138,39 @@ current = true fov = 74.0 near = 0.1 script = ExtResource("4_6igu8") -min_distance = 3.0 +min_distance = 4.0 +max_distance = 5.0 height = 1.25 + +[node name="EngineSound" type="AudioStreamPlayer3D" parent="Body"] +stream = ExtResource("5_m8g7o") +pitch_scale = 0.05 +autoplay = true +attenuation_filter_cutoff_hz = 20500.0 + +[node name="ImpactSound" type="AudioStreamPlayer3D" parent="Body"] +stream = SubResource("AudioStreamRandomizer_r6uy4") +volume_db = -9.0 +max_polyphony = 3 +attenuation_filter_cutoff_hz = 20500.0 + +[node name="CPUParticles3D" type="CPUParticles3D" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.201696, -0.022867, -1.10448) +amount = 100 +mesh = SubResource("QuadMesh_xaqv0") +direction = Vector3(0, 1, -0.5) +gravity = Vector3(0, 0, 0) +initial_velocity_min = 1.0 +initial_velocity_max = 1.0 +damping_min = 0.05 +damping_max = 0.05 +angle_max = 360.0 +scale_amount_curve = SubResource("Curve_eeu5s") + +[node name="BlobShadow" type="Decal" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0.05) +extents = Vector3(0.8, 2, 1.5) +texture_albedo = ExtResource("11_3ryw5") +upper_fade = 2.0 +lower_fade = 1.0 +cull_mask = 1048573 diff --git a/3d/truck_town/vehicles/engine.wav b/3d/truck_town/vehicles/engine.wav new file mode 100644 index 00000000000..cad6a1a34ab Binary files /dev/null and b/3d/truck_town/vehicles/engine.wav differ diff --git a/3d/truck_town/vehicles/engine.wav.import b/3d/truck_town/vehicles/engine.wav.import new file mode 100644 index 00000000000..9570a827913 --- /dev/null +++ b/3d/truck_town/vehicles/engine.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://cb7wvsd6vygd3" +path="res://.godot/imported/engine.wav-d6b28d3271a4c3acd03d9445eeff7cb3.sample" + +[deps] + +source_file="res://vehicles/engine.wav" +dest_files=["res://.godot/imported/engine.wav-d6b28d3271a4c3acd03d9445eeff7cb3.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=2 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/3d/truck_town/vehicles/follow_camera.gd b/3d/truck_town/vehicles/follow_camera.gd index c44cd3afb3f..d8335664213 100644 --- a/3d/truck_town/vehicles/follow_camera.gd +++ b/3d/truck_town/vehicles/follow_camera.gd @@ -1,10 +1,27 @@ extends Camera3D +# Higher values cause the field of view to increase more at high speeds. +const FOV_SPEED_FACTOR = 60 + +# Higher values cause the field of view to adapt to speed changes faster. +const FOV_SMOOTH_FACTOR = 0.2 + +# Don't change FOV if moving below this speed. This prevents shadows from flickering when driving slowly. +const FOV_CHANGE_MIN_SPEED = 0.05 + @export var min_distance := 2.0 @export var max_distance := 4.0 @export var angle_v_adjust := 0.0 @export var height := 1.5 +var base_fov := fov + +# The field of view to smoothly interpolate to. +var desired_fov := fov + +# Position on the last physics frame (used to measure speed). +var previous_position := global_position + func _ready(): # This detaches the camera transform from the parent spatial node. set_as_top_level(true) @@ -28,5 +45,11 @@ func _physics_process(_delta): look_at_from_position(pos, target, Vector3.UP) + # Dynamic field of view based on car speed, with smoothing to prevent sudden changes on impact. + desired_fov = clamp(base_fov + (abs(global_position.length() - previous_position.length()) - FOV_CHANGE_MIN_SPEED) * FOV_SPEED_FACTOR, base_fov, 100) + fov = lerpf(fov, desired_fov, FOV_SMOOTH_FACTOR) + # Turn a little up or down transform.basis = Basis(transform.basis[0], deg_to_rad(angle_v_adjust)) * transform.basis + + previous_position = global_position diff --git a/3d/truck_town/vehicles/impact.wav.import b/3d/truck_town/vehicles/impact.wav.import new file mode 100644 index 00000000000..bf6771cfe85 --- /dev/null +++ b/3d/truck_town/vehicles/impact.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://biwk66ryub3f1" +path="res://.godot/imported/impact.wav-0e789bd7903e20aed8bed8918b465ad1.sample" + +[deps] + +source_file="res://vehicles/impact.wav" +dest_files=["res://.godot/imported/impact.wav-0e789bd7903e20aed8bed8918b465ad1.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/3d/truck_town/vehicles/impact_1.wav b/3d/truck_town/vehicles/impact_1.wav new file mode 100644 index 00000000000..7985683ecd1 Binary files /dev/null and b/3d/truck_town/vehicles/impact_1.wav differ diff --git a/3d/truck_town/vehicles/impact_1.wav.import b/3d/truck_town/vehicles/impact_1.wav.import new file mode 100644 index 00000000000..7a7e330b1d6 --- /dev/null +++ b/3d/truck_town/vehicles/impact_1.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://sy2li7u35867" +path="res://.godot/imported/impact_1.wav-b48c755a0f8f9c75d26b0f9cb15d1f4a.sample" + +[deps] + +source_file="res://vehicles/impact_1.wav" +dest_files=["res://.godot/imported/impact_1.wav-b48c755a0f8f9c75d26b0f9cb15d1f4a.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/3d/truck_town/vehicles/impact_2.wav b/3d/truck_town/vehicles/impact_2.wav new file mode 100644 index 00000000000..2437de539db Binary files /dev/null and b/3d/truck_town/vehicles/impact_2.wav differ diff --git a/3d/truck_town/vehicles/impact_2.wav.import b/3d/truck_town/vehicles/impact_2.wav.import new file mode 100644 index 00000000000..a4bdef8fbf9 --- /dev/null +++ b/3d/truck_town/vehicles/impact_2.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://bf0h7s81yr8nj" +path="res://.godot/imported/impact_2.wav-89ae4713c6333e6bda6389fc5bf000d9.sample" + +[deps] + +source_file="res://vehicles/impact_2.wav" +dest_files=["res://.godot/imported/impact_2.wav-89ae4713c6333e6bda6389fc5bf000d9.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/3d/truck_town/vehicles/impact_3.wav b/3d/truck_town/vehicles/impact_3.wav new file mode 100644 index 00000000000..0e83aa71fa8 Binary files /dev/null and b/3d/truck_town/vehicles/impact_3.wav differ diff --git a/3d/truck_town/vehicles/impact_3.wav.import b/3d/truck_town/vehicles/impact_3.wav.import new file mode 100644 index 00000000000..3a4926f7c4f --- /dev/null +++ b/3d/truck_town/vehicles/impact_3.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://sun2n8a4xapl" +path="res://.godot/imported/impact_3.wav-42b62d7e38b905503470ffc8bf41b3bd.sample" + +[deps] + +source_file="res://vehicles/impact_3.wav" +dest_files=["res://.godot/imported/impact_3.wav-42b62d7e38b905503470ffc8bf41b3bd.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/3d/truck_town/vehicles/impact_4.wav b/3d/truck_town/vehicles/impact_4.wav new file mode 100644 index 00000000000..4a120737e7b Binary files /dev/null and b/3d/truck_town/vehicles/impact_4.wav differ diff --git a/3d/truck_town/vehicles/impact_4.wav.import b/3d/truck_town/vehicles/impact_4.wav.import new file mode 100644 index 00000000000..f5cf3fb6a6e --- /dev/null +++ b/3d/truck_town/vehicles/impact_4.wav.import @@ -0,0 +1,24 @@ +[remap] + +importer="wav" +type="AudioStreamWAV" +uid="uid://dpbayeeufya21" +path="res://.godot/imported/impact_4.wav-eeff21d9a916250609ae682428d6f122.sample" + +[deps] + +source_file="res://vehicles/impact_4.wav" +dest_files=["res://.godot/imported/impact_4.wav-eeff21d9a916250609ae682428d6f122.sample"] + +[params] + +force/8_bit=false +force/mono=false +force/max_rate=false +force/max_rate_hz=44100 +edit/trim=false +edit/normalize=false +edit/loop_mode=0 +edit/loop_begin=0 +edit/loop_end=-1 +compress/mode=0 diff --git a/3d/truck_town/vehicles/meshes/.gitignore b/3d/truck_town/vehicles/meshes/.gitignore deleted file mode 100644 index f89f4eb87ec..00000000000 --- a/3d/truck_town/vehicles/meshes/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.res diff --git a/3d/truck_town/vehicles/meshes/meshes.glb.import b/3d/truck_town/vehicles/meshes/meshes.glb.import index b83660f3e69..e6229bd535f 100644 --- a/3d/truck_town/vehicles/meshes/meshes.glb.import +++ b/3d/truck_town/vehicles/meshes/meshes.glb.import @@ -3,7 +3,7 @@ importer="scene" importer_version=1 type="PackedScene" -uid="uid://c4g2vx7lboxkr" +uid="uid://e8iojcfvf11q" path="res://.godot/imported/meshes.glb-030ff425937f3e98d423cb5cef7ede3d.scn" [deps] @@ -15,6 +15,7 @@ dest_files=["res://.godot/imported/meshes.glb-030ff425937f3e98d423cb5cef7ede3d.s nodes/root_type="Node3D" nodes/root_name="Scene Root" +nodes/apply_root_scale=true nodes/root_scale=1.0 meshes/ensure_tangents=true meshes/generate_lods=true @@ -24,6 +25,7 @@ meshes/lightmap_texel_size=0.2 skins/use_named_skins=true animation/import=true animation/fps=30 +animation/trimming=false import_script/path="" _subresources={ "materials": { diff --git a/3d/truck_town/vehicles/meshes/minivan.res b/3d/truck_town/vehicles/meshes/minivan.res new file mode 100644 index 00000000000..9daa5c56243 Binary files /dev/null and b/3d/truck_town/vehicles/meshes/minivan.res differ diff --git a/3d/truck_town/vehicles/meshes/tow_truck.res b/3d/truck_town/vehicles/meshes/tow_truck.res new file mode 100644 index 00000000000..0be33afae45 Binary files /dev/null and b/3d/truck_town/vehicles/meshes/tow_truck.res differ diff --git a/3d/truck_town/vehicles/meshes/truck_cab.res b/3d/truck_town/vehicles/meshes/truck_cab.res new file mode 100644 index 00000000000..3274455cd18 Binary files /dev/null and b/3d/truck_town/vehicles/meshes/truck_cab.res differ diff --git a/3d/truck_town/vehicles/meshes/truck_trailer.res b/3d/truck_town/vehicles/meshes/truck_trailer.res new file mode 100644 index 00000000000..d3633469755 Binary files /dev/null and b/3d/truck_town/vehicles/meshes/truck_trailer.res differ diff --git a/3d/truck_town/vehicles/meshes/wheel.res b/3d/truck_town/vehicles/meshes/wheel.res new file mode 100644 index 00000000000..319f5e92e4d Binary files /dev/null and b/3d/truck_town/vehicles/meshes/wheel.res differ diff --git a/3d/truck_town/vehicles/particle_smoke.png b/3d/truck_town/vehicles/particle_smoke.png new file mode 100644 index 00000000000..34cad392310 Binary files /dev/null and b/3d/truck_town/vehicles/particle_smoke.png differ diff --git a/3d/truck_town/vehicles/particle_smoke.png.import b/3d/truck_town/vehicles/particle_smoke.png.import new file mode 100644 index 00000000000..4df3e0558d8 --- /dev/null +++ b/3d/truck_town/vehicles/particle_smoke.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d4ostmqwgytk" +path="res://.godot/imported/particle_smoke.png-740721ed7d039c3c932866a66d9413f2.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://vehicles/particle_smoke.png" +dest_files=["res://.godot/imported/particle_smoke.png-740721ed7d039c3c932866a66d9413f2.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/3d/truck_town/vehicles/tow_truck.tscn b/3d/truck_town/vehicles/tow_truck.tscn index 169e94868ae..f198221d6d2 100644 --- a/3d/truck_town/vehicles/tow_truck.tscn +++ b/3d/truck_town/vehicles/tow_truck.tscn @@ -1,26 +1,92 @@ -[gd_scene load_steps=11 format=3 uid="uid://bh7765vrq5muf"] +[gd_scene load_steps=27 format=3 uid="uid://bh7765vrq5muf"] [ext_resource type="Script" path="res://vehicles/vehicle.gd" id="1_qhfnb"] -[ext_resource type="ArrayMesh" uid="uid://s3nm456cy46b" path="res://vehicles/meshes/wheel.res" id="2_b8qij"] -[ext_resource type="ArrayMesh" uid="uid://dd70tx11n3531" path="res://vehicles/meshes/tow_truck.res" id="3_7c8iv"] +[ext_resource type="ArrayMesh" uid="uid://bqrwin8ccgptt" path="res://vehicles/meshes/wheel.res" id="2_uwuq1"] +[ext_resource type="ArrayMesh" uid="uid://cbpqxxd14g8un" path="res://vehicles/meshes/tow_truck.res" id="3_tv0o3"] [ext_resource type="Script" path="res://vehicles/follow_camera.gd" id="4_wddne"] -[ext_resource type="ArrayMesh" uid="uid://d3ogs0rwex0kc" path="res://vehicles/meshes/minivan.res" id="5_ukw0p"] - -[sub_resource type="BoxShape3D" id="6"] +[ext_resource type="ArrayMesh" uid="uid://ctglc27jx8xe2" path="res://vehicles/meshes/truck_cab.res" id="5_04cnp"] +[ext_resource type="AudioStream" uid="uid://cb7wvsd6vygd3" path="res://vehicles/engine.wav" id="5_fwfew"] +[ext_resource type="AudioStream" uid="uid://sy2li7u35867" path="res://vehicles/impact_1.wav" id="6_i7k5m"] +[ext_resource type="AudioStream" uid="uid://bf0h7s81yr8nj" path="res://vehicles/impact_2.wav" id="7_hc8k7"] +[ext_resource type="AudioStream" uid="uid://sun2n8a4xapl" path="res://vehicles/impact_3.wav" id="8_cbgcu"] +[ext_resource type="AudioStream" uid="uid://dpbayeeufya21" path="res://vehicles/impact_4.wav" id="9_y8ei3"] +[ext_resource type="Texture2D" uid="uid://d4ostmqwgytk" path="res://vehicles/particle_smoke.png" id="10_lfosv"] +[ext_resource type="Texture2D" uid="uid://bju75l2w3r7vq" path="res://vehicles/blob_shadow.png" id="11_5ul8v"] + +[sub_resource type="BoxShape3D" id="BoxShape3D_mndia"] size = Vector3(1.17624, 0.6963, 2.23996) -[sub_resource type="CapsuleMesh" id="CapsuleMesh_u8rp0"] +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_4grku"] +streams_count = 4 +random_pitch = 1.05 +random_volume_offset_db = 2.0 +stream_0/stream = ExtResource("6_i7k5m") +stream_0/weight = 1.0 +stream_1/stream = ExtResource("7_hc8k7") +stream_1/weight = 1.0 +stream_2/stream = ExtResource("8_cbgcu") +stream_2/weight = 1.0 +stream_3/stream = ExtResource("9_y8ei3") +stream_3/weight = 1.0 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_yisei"] +transparency = 1 +shading_mode = 0 +albedo_color = Color(0.462745, 0.462745, 0.462745, 0.501961) +albedo_texture = ExtResource("10_lfosv") +billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +proximity_fade_enabled = true +proximity_fade_distance = 0.5 + +[sub_resource type="QuadMesh" id="QuadMesh_n707q"] +material = SubResource("StandardMaterial3D_yisei") + +[sub_resource type="Curve" id="Curve_wki0f"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="CapsuleMesh" id="CapsuleMesh_opure"] radius = 0.05 -height = 0.325 +height = 0.42 +radial_segments = 12 +rings = 3 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_qdagn"] +albedo_color = Color(0.635294, 0.635294, 0.635294, 1) +metallic = 1.0 +roughness = 0.5 -[sub_resource type="CapsuleShape3D" id="8"] +[sub_resource type="CapsuleShape3D" id="CapsuleShape3D_7j1n4"] radius = 0.05 height = 0.3 -[sub_resource type="PhysicsMaterial" id="9"] +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_fxjgk"] +albedo_color = Color(0.635294, 0.635294, 0.635294, 1) +metallic = 1.0 +roughness = 0.5 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_8aiwr"] +albedo_color = Color(0.635294, 0.635294, 0.635294, 1) +metallic = 1.0 +roughness = 0.5 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_0rxuy"] +albedo_color = Color(0.635294, 0.635294, 0.635294, 1) +metallic = 1.0 +roughness = 0.5 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_d1sy5"] +albedo_color = Color(0.635294, 0.635294, 0.635294, 1) +metallic = 1.0 +roughness = 0.5 + +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_rt64b"] friction = 0.5 -[sub_resource type="BoxShape3D" id="17"] +[sub_resource type="BoxShape3D" id="BoxShape3D_xe02x"] size = Vector3(0.954078, 1, 2.32662) [node name="TowTruck" type="Node3D"] @@ -41,8 +107,9 @@ suspension_stiffness = 30.0 damping_compression = 0.88 [node name="Wheel1" type="MeshInstance3D" parent="Body/Wheel1"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Wheel2" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573678, 0.000773743, -0.783403) @@ -54,8 +121,9 @@ suspension_stiffness = 30.0 damping_compression = 0.88 [node name="Wheel2" type="MeshInstance3D" parent="Body/Wheel2"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Wheel3" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.000773743, 1.10416) @@ -68,8 +136,9 @@ suspension_stiffness = 30.0 damping_compression = 0.88 [node name="Wheel3" type="MeshInstance3D" parent="Body/Wheel3"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Wheel4" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.000773743, -0.783403) @@ -81,12 +150,14 @@ suspension_stiffness = 30.0 damping_compression = 0.88 [node name="Wheel4" type="MeshInstance3D" parent="Body/Wheel4"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Body" type="MeshInstance3D" parent="Body"] +layers = 2 gi_mode = 2 -mesh = ExtResource("3_7c8iv") +mesh = ExtResource("3_tv0o3") [node name="CameraBase" type="Node3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97449, 0) @@ -103,57 +174,101 @@ height = 1.75 [node name="CollisionShape3D" type="CollisionShape3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.391365, 0.158069) -shape = SubResource("6") +shape = SubResource("BoxShape3D_mndia") + +[node name="EngineSound" type="AudioStreamPlayer3D" parent="Body"] +stream = ExtResource("5_fwfew") +pitch_scale = 0.05 +autoplay = true +attenuation_filter_cutoff_hz = 20500.0 + +[node name="ImpactSound" type="AudioStreamPlayer3D" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.391365, 0.158069) +stream = SubResource("AudioStreamRandomizer_4grku") +volume_db = -9.0 +max_polyphony = 3 +attenuation_filter_cutoff_hz = 20500.0 + +[node name="CPUParticles3D" type="CPUParticles3D" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.201696, -0.022867, -1.10448) +amount = 100 +mesh = SubResource("QuadMesh_n707q") +direction = Vector3(0, 1, -0.5) +gravity = Vector3(0, 0, 0) +initial_velocity_min = 1.0 +initial_velocity_max = 1.0 +damping_min = 0.05 +damping_max = 0.05 +angle_max = 360.0 +scale_amount_curve = SubResource("Curve_wki0f") + +[node name="BlobShadow" type="Decal" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00169557, -0.222867, 0.145518) +extents = Vector3(0.8, 2, 1.5) +texture_albedo = ExtResource("11_5ul8v") +upper_fade = 2.0 +lower_fade = 1.0 +cull_mask = 1048573 [node name="ChainB1" type="RigidBody3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 0.846248, -0.53279, 0, 0.53279, 0.846248, 0, 1.12554, -1.54623) +transform = Transform3D(1, 0, 0, 0, 0.846248, -0.53279, 0, 0.53279, 0.846248, 0, 1.10846, -1.55698) [node name="Chain1" type="MeshInstance3D" parent="ChainB1"] +layers = 2 gi_mode = 2 -mesh = SubResource("CapsuleMesh_u8rp0") +mesh = SubResource("CapsuleMesh_opure") +surface_material_override/0 = SubResource("StandardMaterial3D_qdagn") [node name="CollisionShape3D" type="CollisionShape3D" parent="ChainB1"] -shape = SubResource("8") +shape = SubResource("CapsuleShape3D_7j1n4") [node name="ChainB2" type="RigidBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.846248, -0.53279, 0, 0.53279, 0.846248, 0, 0.803378, -1.75806) [node name="Chain1" type="MeshInstance3D" parent="ChainB2"] +layers = 2 gi_mode = 2 -mesh = SubResource("CapsuleMesh_u8rp0") +mesh = SubResource("CapsuleMesh_opure") +surface_material_override/0 = SubResource("StandardMaterial3D_fxjgk") [node name="CollisionShape3D" type="CollisionShape3D" parent="ChainB2"] -shape = SubResource("8") +shape = SubResource("CapsuleShape3D_7j1n4") [node name="ChainB3" type="RigidBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.846248, -0.53279, 0, 0.53279, 0.846248, 0, 0.490045, -1.96106) [node name="Chain1" type="MeshInstance3D" parent="ChainB3"] +layers = 2 gi_mode = 2 -mesh = SubResource("CapsuleMesh_u8rp0") +mesh = SubResource("CapsuleMesh_opure") +surface_material_override/0 = SubResource("StandardMaterial3D_8aiwr") [node name="CollisionShape3D" type="CollisionShape3D" parent="ChainB3"] -shape = SubResource("8") +shape = SubResource("CapsuleShape3D_7j1n4") [node name="ChainB4" type="RigidBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.447167, -0.894451, 0, 0.894451, 0.447167, 0, 0.290326, -2.19413) [node name="Chain1" type="MeshInstance3D" parent="ChainB4"] +layers = 2 gi_mode = 2 -mesh = SubResource("CapsuleMesh_u8rp0") +mesh = SubResource("CapsuleMesh_opure") +surface_material_override/0 = SubResource("StandardMaterial3D_0rxuy") [node name="CollisionShape3D" type="CollisionShape3D" parent="ChainB4"] -shape = SubResource("8") +shape = SubResource("CapsuleShape3D_7j1n4") [node name="ChainB5" type="RigidBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 0.0993884, -0.995049, 0, 0.995049, 0.0993884, 0, 0.205717, -2.50193) [node name="Chain1" type="MeshInstance3D" parent="ChainB5"] +layers = 2 gi_mode = 2 -mesh = SubResource("CapsuleMesh_u8rp0") +mesh = SubResource("CapsuleMesh_opure") +surface_material_override/0 = SubResource("StandardMaterial3D_d1sy5") [node name="CollisionShape3D" type="CollisionShape3D" parent="ChainB5"] -shape = SubResource("8") +shape = SubResource("CapsuleShape3D_7j1n4") [node name="PinJoint1" type="PinJoint3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.28044, -1.4153) @@ -187,7 +302,7 @@ params/bias = 0.5 transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00169557, 0.222867, -3.97518) mass = 10.0 center_of_mass_mode = 1 -physics_material_override = SubResource("9") +physics_material_override = SubResource("PhysicsMaterial_rt64b") [node name="Wheel1" type="VehicleWheel3D" parent="Body2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573678, 0.115169, 1.10416) @@ -201,8 +316,9 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel1" type="MeshInstance3D" parent="Body2/Wheel1"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Wheel2" type="VehicleWheel3D" parent="Body2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573678, 0.115169, -0.783403) @@ -215,8 +331,9 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel2" type="MeshInstance3D" parent="Body2/Wheel2"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Wheel3" type="VehicleWheel3D" parent="Body2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.115169, 1.10416) @@ -230,8 +347,9 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel3" type="MeshInstance3D" parent="Body2/Wheel3"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Wheel4" type="VehicleWheel3D" parent="Body2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.115169, -0.783403) @@ -244,16 +362,26 @@ suspension_stiffness = 40.0 damping_compression = 0.88 [node name="Wheel4" type="MeshInstance3D" parent="Body2/Wheel4"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_b8qij") +mesh = ExtResource("2_uwuq1") [node name="Body" type="MeshInstance3D" parent="Body2"] +layers = 2 gi_mode = 2 -mesh = ExtResource("5_ukw0p") +mesh = ExtResource("5_04cnp") [node name="CollisionShape3D" type="CollisionShape3D" parent="Body2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.588269, 0.0774262) -shape = SubResource("17") +shape = SubResource("BoxShape3D_xe02x") + +[node name="BlobShadow" type="Decal" parent="Body2"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00169557, -0.122867, 0.0251799) +extents = Vector3(0.8, 2, 1.5) +texture_albedo = ExtResource("11_5ul8v") +upper_fade = 2.0 +lower_fade = 1.0 +cull_mask = 1048573 [node name="PinJoint6" type="PinJoint3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.148269, -2.64894) diff --git a/3d/truck_town/vehicles/trailer_truck.tscn b/3d/truck_town/vehicles/trailer_truck.tscn index f5c6efa6cc7..2d35094bee5 100644 --- a/3d/truck_town/vehicles/trailer_truck.tscn +++ b/3d/truck_town/vehicles/trailer_truck.tscn @@ -1,15 +1,54 @@ -[gd_scene load_steps=8 format=3 uid="uid://drinprblemj5u"] +[gd_scene load_steps=19 format=3 uid="uid://drinprblemj5u"] [ext_resource type="Script" path="res://vehicles/vehicle.gd" id="1_wetfm"] -[ext_resource type="ArrayMesh" uid="uid://s3nm456cy46b" path="res://vehicles/meshes/wheel.res" id="2_2mkj4"] -[ext_resource type="ArrayMesh" uid="uid://bjqn7crf4tlke" path="res://vehicles/meshes/truck_cab.res" id="3_8j276"] +[ext_resource type="ArrayMesh" uid="uid://bqrwin8ccgptt" path="res://vehicles/meshes/wheel.res" id="2_q28iu"] +[ext_resource type="ArrayMesh" uid="uid://ctglc27jx8xe2" path="res://vehicles/meshes/truck_cab.res" id="3_t1je7"] [ext_resource type="Script" path="res://vehicles/follow_camera.gd" id="4_4yhuf"] -[ext_resource type="ArrayMesh" uid="uid://c01p2iyko2mx7" path="res://vehicles/meshes/truck_trailer.res" id="5_cgx5y"] +[ext_resource type="ArrayMesh" uid="uid://d0n61oj27qnya" path="res://vehicles/meshes/truck_trailer.res" id="5_13c4b"] +[ext_resource type="AudioStream" uid="uid://sy2li7u35867" path="res://vehicles/impact_1.wav" id="6_n54jl"] +[ext_resource type="AudioStream" uid="uid://cb7wvsd6vygd3" path="res://vehicles/engine.wav" id="6_r21ue"] +[ext_resource type="AudioStream" uid="uid://bf0h7s81yr8nj" path="res://vehicles/impact_2.wav" id="7_i1avs"] +[ext_resource type="AudioStream" uid="uid://sun2n8a4xapl" path="res://vehicles/impact_3.wav" id="8_nmphs"] +[ext_resource type="AudioStream" uid="uid://dpbayeeufya21" path="res://vehicles/impact_4.wav" id="9_11toc"] +[ext_resource type="Texture2D" uid="uid://d4ostmqwgytk" path="res://vehicles/particle_smoke.png" id="10_5qary"] +[ext_resource type="Texture2D" uid="uid://bju75l2w3r7vq" path="res://vehicles/blob_shadow.png" id="11_ifj1h"] -[sub_resource type="BoxShape3D" id="14"] +[sub_resource type="BoxShape3D" id="BoxShape3D_vr27e"] size = Vector3(1.3392, 1.04159, 2.3947) -[sub_resource type="BoxShape3D" id="6"] +[sub_resource type="AudioStreamRandomizer" id="AudioStreamRandomizer_c1muu"] +streams_count = 4 +random_pitch = 1.05 +random_volume_offset_db = 2.0 +stream_0/stream = ExtResource("6_n54jl") +stream_0/weight = 1.0 +stream_1/stream = ExtResource("7_i1avs") +stream_1/weight = 1.0 +stream_2/stream = ExtResource("8_nmphs") +stream_2/weight = 1.0 +stream_3/stream = ExtResource("9_11toc") +stream_3/weight = 1.0 + +[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_mkmb8"] +transparency = 1 +shading_mode = 0 +albedo_color = Color(0.462745, 0.462745, 0.462745, 0.501961) +albedo_texture = ExtResource("10_5qary") +billboard_mode = 3 +particles_anim_h_frames = 1 +particles_anim_v_frames = 1 +particles_anim_loop = false +proximity_fade_enabled = true +proximity_fade_distance = 0.5 + +[sub_resource type="QuadMesh" id="QuadMesh_2ejxv"] +material = SubResource("StandardMaterial3D_mkmb8") + +[sub_resource type="Curve" id="Curve_vul88"] +_data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 2 + +[sub_resource type="BoxShape3D" id="BoxShape3D_yi2o3"] size = Vector3(1.49783, 1.38835, 3.94168) [node name="TrailerTruck" type="Node3D"] @@ -30,8 +69,9 @@ suspension_stiffness = 28.0 damping_compression = 0.88 [node name="Wheel1" type="MeshInstance3D" parent="Body/Wheel1"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="Wheel2" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.573678, 0.000773743, -0.783403) @@ -43,8 +83,9 @@ suspension_stiffness = 28.0 damping_compression = 0.88 [node name="Wheel2" type="MeshInstance3D" parent="Body/Wheel2"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="Wheel3" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.000773743, 1.10416) @@ -57,8 +98,9 @@ suspension_stiffness = 28.0 damping_compression = 0.88 [node name="Wheel3" type="MeshInstance3D" parent="Body/Wheel3"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="Wheel4" type="VehicleWheel3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.573678, 0.000773743, -0.783403) @@ -70,16 +112,18 @@ suspension_stiffness = 28.0 damping_compression = 0.88 [node name="Wheel4" type="MeshInstance3D" parent="Body/Wheel4"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="Body" type="MeshInstance3D" parent="Body"] +layers = 2 gi_mode = 2 -mesh = ExtResource("3_8j276") +mesh = ExtResource("3_t1je7") [node name="CollisionShape3D" type="CollisionShape3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.571059, 0.132248) -shape = SubResource("14") +shape = SubResource("BoxShape3D_vr27e") [node name="CameraBase" type="Node3D" parent="Body"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.97449, 0) @@ -94,6 +138,41 @@ min_distance = 5.0 max_distance = 7.0 height = 2.5 +[node name="EngineSound" type="AudioStreamPlayer3D" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00169557, -0.222867, 0.0955184) +stream = ExtResource("6_r21ue") +pitch_scale = 0.05 +autoplay = true +attenuation_filter_cutoff_hz = 20500.0 + +[node name="ImpactSound" type="AudioStreamPlayer3D" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00169557, -0.222867, 0.0955184) +stream = SubResource("AudioStreamRandomizer_c1muu") +volume_db = -9.0 +max_polyphony = 3 +attenuation_filter_cutoff_hz = 20500.0 + +[node name="CPUParticles3D" type="CPUParticles3D" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.201696, -0.022867, -1.10448) +amount = 100 +mesh = SubResource("QuadMesh_2ejxv") +direction = Vector3(0, 1, -0.5) +gravity = Vector3(0, 0, 0) +initial_velocity_min = 1.0 +initial_velocity_max = 1.0 +damping_min = 0.05 +damping_max = 0.05 +angle_max = 360.0 +scale_amount_curve = SubResource("Curve_vul88") + +[node name="BlobShadow" type="Decal" parent="Body"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00169557, -0.222867, 0.145518) +extents = Vector3(0.8, 2, 1.5) +texture_albedo = ExtResource("11_ifj1h") +upper_fade = 2.0 +lower_fade = 1.0 +cull_mask = 1048573 + [node name="Trailer" type="VehicleBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.00169557, 0.637902, -2.78118) center_of_mass_mode = 1 @@ -107,8 +186,9 @@ suspension_stiffness = 28.0 damping_compression = 0.88 [node name="TWheel1" type="MeshInstance3D" parent="Trailer/TWheel1"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="TWheel2" type="VehicleWheel3D" parent="Trailer"] transform = Transform3D(1, 0, 0, 0, 1, -1.49012e-08, 0, 0, 1, 0.573678, -0.402732, -0.600809) @@ -119,8 +199,9 @@ suspension_stiffness = 28.0 damping_compression = 0.88 [node name="TWheel2" type="MeshInstance3D" parent="Trailer/TWheel2"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="TWheel3" type="VehicleWheel3D" parent="Trailer"] transform = Transform3D(1, 0, 0, 0, 1, -1.49012e-08, 0, 0, 1, -0.573678, -0.402732, -1.53277) @@ -131,8 +212,9 @@ suspension_stiffness = 28.0 damping_compression = 0.88 [node name="TWheel3" type="MeshInstance3D" parent="Trailer/TWheel3"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="TWheel4" type="VehicleWheel3D" parent="Trailer"] transform = Transform3D(1, 0, 0, 0, 1, -1.49012e-08, 0, 0, 1, -0.573678, -0.402732, -0.600809) @@ -143,16 +225,34 @@ suspension_stiffness = 20.0 damping_compression = 0.88 [node name="TWheel4" type="MeshInstance3D" parent="Trailer/TWheel4"] +layers = 2 gi_mode = 2 -mesh = ExtResource("2_2mkj4") +mesh = ExtResource("2_q28iu") [node name="Trailer" type="MeshInstance3D" parent="Trailer"] +layers = 2 gi_mode = 2 -mesh = ExtResource("5_cgx5y") +mesh = ExtResource("5_13c4b") + +[node name="BlobShadow" type="Decal" parent="Trailer/Trailer"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.00339114, -0.160769, 0.0766983) +extents = Vector3(0.6, 2, 2.1) +texture_albedo = ExtResource("11_ifj1h") +upper_fade = 2.0 +lower_fade = 1.0 +cull_mask = 1048573 [node name="CollisionShape3D" type="CollisionShape3D" parent="Trailer"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.383046, -0.0335202) -shape = SubResource("6") +shape = SubResource("BoxShape3D_yi2o3") + +[node name="BlobShadow" type="Decal" parent="Trailer"] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.003, -0.661, -1.05) +extents = Vector3(0.8, 2, 0.9) +texture_albedo = ExtResource("11_ifj1h") +upper_fade = 2.0 +lower_fade = 1.0 +cull_mask = 1048573 [node name="PinJoint3D" type="ConeTwistJoint3D" parent="."] transform = Transform3D(-4.37114e-08, -1, 0, 1, -4.37114e-08, 0, 0, 0, 1, 0, 0.704587, -0.960112) diff --git a/3d/truck_town/vehicles/truck_trailer.png b/3d/truck_town/vehicles/truck_trailer.png index b6a09a967cf..7aa994cfb7b 100644 Binary files a/3d/truck_town/vehicles/truck_trailer.png and b/3d/truck_town/vehicles/truck_trailer.png differ diff --git a/3d/truck_town/vehicles/truck_trailer.png.import b/3d/truck_town/vehicles/truck_trailer.png.import index a26cbd2322e..4d02eadef10 100644 --- a/3d/truck_town/vehicles/truck_trailer.png.import +++ b/3d/truck_town/vehicles/truck_trailer.png.import @@ -3,21 +3,19 @@ importer="texture" type="CompressedTexture2D" uid="uid://q7uvsiqefkwr" -path.s3tc="res://.godot/imported/truck_trailer.png-37383ff0a7e2053e450f6ec8ff2bdcae.s3tc.ctex" -path.etc2="res://.godot/imported/truck_trailer.png-37383ff0a7e2053e450f6ec8ff2bdcae.etc2.ctex" +path="res://.godot/imported/truck_trailer.png-37383ff0a7e2053e450f6ec8ff2bdcae.ctex" metadata={ -"imported_formats": ["s3tc", "etc2"], -"vram_texture": true +"vram_texture": false } [deps] source_file="res://vehicles/truck_trailer.png" -dest_files=["res://.godot/imported/truck_trailer.png-37383ff0a7e2053e450f6ec8ff2bdcae.s3tc.ctex", "res://.godot/imported/truck_trailer.png-37383ff0a7e2053e450f6ec8ff2bdcae.etc2.ctex"] +dest_files=["res://.godot/imported/truck_trailer.png-37383ff0a7e2053e450f6ec8ff2bdcae.ctex"] [params] -compress/mode=2 +compress/mode=0 compress/lossy_quality=0.7 compress/hdr_compression=1 compress/bptc_ldr=0 diff --git a/3d/truck_town/vehicles/truck_trailer.tres b/3d/truck_town/vehicles/truck_trailer.tres index 8cba5af3101..dd8f432c510 100644 --- a/3d/truck_town/vehicles/truck_trailer.tres +++ b/3d/truck_town/vehicles/truck_trailer.tres @@ -1,7 +1,8 @@ -[gd_resource type="StandardMaterial3D" load_steps=2 format=3] +[gd_resource type="StandardMaterial3D" load_steps=2 format=3 uid="uid://dyg750wqca86r"] -[ext_resource type="Texture2D" path="res://vehicles/truck_trailer.png" id="1_jkh55"] +[ext_resource type="Texture2D" uid="uid://q7uvsiqefkwr" path="res://vehicles/truck_trailer.png" id="1_jkh55"] [resource] albedo_texture = ExtResource("1_jkh55") roughness = 0.6 +texture_filter = 5 diff --git a/3d/truck_town/vehicles/vehicle.gd b/3d/truck_town/vehicles/vehicle.gd index 67685307477..c5223e93d75 100644 --- a/3d/truck_town/vehicles/vehicle.gd +++ b/3d/truck_town/vehicles/vehicle.gd @@ -5,14 +5,31 @@ const STEER_LIMIT = 0.4 @export var engine_force_value := 40.0 +var previous_speed := linear_velocity.length() var _steer_target := 0.0 +@onready var desired_engine_pitch: float = $EngineSound.pitch_scale + + func _physics_process(delta: float): var fwd_mps := (linear_velocity * transform.basis).x _steer_target = Input.get_axis(&"turn_right", &"turn_left") _steer_target *= STEER_LIMIT + # Engine sound simulation (not realistic, as this car script has no notion of gear or engine RPM). + desired_engine_pitch = 0.05 + linear_velocity.length() / (engine_force_value * 0.5) + # Change pitch smoothly to avoid abrupt change on collision. + $EngineSound.pitch_scale = lerpf($EngineSound.pitch_scale, desired_engine_pitch, 0.2) + + if abs(linear_velocity.length() - previous_speed) > 1.0: + # Sudden velocity change, likely due to a collision. Play an impact sound to give audible feedback, + # and vibrate for haptic feedback. + $ImpactSound.play() + Input.vibrate_handheld(100) + for joypad in Input.get_connected_joypads(): + Input.start_joy_vibration(joypad, 0.0, 0.5, 0.1) + if Input.is_action_pressed(&"accelerate"): # Increase engine force at low speeds to make the initial acceleration faster. var speed := linear_velocity.length() @@ -20,6 +37,9 @@ func _physics_process(delta: float): engine_force = clampf(engine_force_value * 5.0 / speed, 0.0, 100.0) else: engine_force = engine_force_value + + # Apply analog throttle factor for more subtle acceleration if not fully holding down the trigger. + engine_force *= Input.get_action_strength(&"accelerate") else: engine_force = 0.0 @@ -31,9 +51,14 @@ func _physics_process(delta: float): engine_force = -clampf(engine_force_value * 5.0 / speed, 0.0, 100.0) else: engine_force = -engine_force_value + + # Apply analog brake factor for more subtle braking if not fully holding down the trigger. + engine_force *= Input.get_action_strength(&"reverse") else: - brake = 1.0 + brake = 0.0 else: brake = 0.0 steering = move_toward(steering, _steer_target, STEER_SPEED * delta) + + previous_speed = linear_velocity.length() diff --git a/3d/volumetric_fog/camera.gd b/3d/volumetric_fog/camera.gd index e10f3fddc25..524ad199a75 100644 --- a/3d/volumetric_fog/camera.gd +++ b/3d/volumetric_fog/camera.gd @@ -49,10 +49,10 @@ func _input(event): get_world_3d().environment.volumetric_fog_temporal_reprojection_enabled = not get_world_3d().environment.volumetric_fog_temporal_reprojection_enabled update_label() elif event.is_action_pressed("increase_temporal_reprojection"): - get_world_3d().environment.volumetric_fog_temporal_reprojection_amount = clamp(get_world_3d().environment.volumetric_fog_temporal_reprojection_amount + 0.01, 0.0, 0.99) + get_world_3d().environment.volumetric_fog_temporal_reprojection_amount = clamp(get_world_3d().environment.volumetric_fog_temporal_reprojection_amount + 0.01, 0.5, 0.99) update_label() elif event.is_action_pressed("decrease_temporal_reprojection"): - get_world_3d().environment.volumetric_fog_temporal_reprojection_amount = clamp(get_world_3d().environment.volumetric_fog_temporal_reprojection_amount - 0.01, 0.0, 0.99) + get_world_3d().environment.volumetric_fog_temporal_reprojection_amount = clamp(get_world_3d().environment.volumetric_fog_temporal_reprojection_amount - 0.01, 0.5, 0.99) update_label() elif event.is_action_pressed("increase_fog_density"): get_world_3d().environment.volumetric_fog_density = clamp(get_world_3d().environment.volumetric_fog_density + 0.01, 0.0, 1.0) @@ -64,6 +64,6 @@ func _input(event): func update_label(): if get_world_3d().environment.volumetric_fog_temporal_reprojection_enabled: - label.text = "Fog density: %.2f\nTemporal reprojection: Enabled\nTemporal reprojection strength: %.3f" % [get_world_3d().environment.volumetric_fog_density, get_world_3d().environment.volumetric_fog_temporal_reprojection_amount] + label.text = "Fog density: %.2f\nTemporal reprojection: Enabled\nTemporal reprojection strength: %.2f" % [get_world_3d().environment.volumetric_fog_density, get_world_3d().environment.volumetric_fog_temporal_reprojection_amount] else: label.text = "Fog density: %.2f\nTemporal reprojection: Disabled" % get_world_3d().environment.volumetric_fog_density diff --git a/3d/volumetric_fog/project.godot b/3d/volumetric_fog/project.godot index 4b12cf87ffe..56562ea87ae 100644 --- a/3d/volumetric_fog/project.godot +++ b/3d/volumetric_fog/project.godot @@ -23,58 +23,59 @@ window/stretch/aspect="expand" toggle_temporal_reprojection={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"unicode":0,"echo":false,"script":null) ] } increase_temporal_reprojection={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"pressed":false,"double_click":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777232,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } decrease_temporal_reprojection={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777234,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } increase_fog_density={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777233,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } decrease_fog_density={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777231,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) ] } move_back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) ] } toggle_mouse_capture={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777217,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194341,"unicode":0,"echo":false,"script":null) ] } [rendering] -anti_aliasing/quality/screen_space_aa=1 +anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true diff --git a/3d/volumetric_fog/volumetric_fog.tscn b/3d/volumetric_fog/volumetric_fog.tscn index 364f6a4f794..cd15bbe6f82 100644 --- a/3d/volumetric_fog/volumetric_fog.tscn +++ b/3d/volumetric_fog/volumetric_fog.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=17 format=3 uid="uid://d1d6jy84lcpg7"] +[gd_scene load_steps=19 format=3 uid="uid://d1d6jy84lcpg7"] [ext_resource type="Script" path="res://camera.gd" id="1_mfjvp"] [ext_resource type="CompressedTexture3D" uid="uid://bpvy0e34otmhk" path="res://icon_outlined.png" id="2_8fjmj"] @@ -10,15 +10,14 @@ ground_bottom_color = Color(0.121569, 0.121569, 0.129412, 1) ground_horizon_color = Color(0.672549, 0.704902, 0.734314, 1) [sub_resource type="Sky" id="Sky_5gwha"] -sky_material = SubResource( "ProceduralSkyMaterial_fefkn" ) +sky_material = SubResource("ProceduralSkyMaterial_fefkn") [sub_resource type="Environment" id="Environment_gsgar"] background_mode = 2 -sky = SubResource( "Sky_5gwha" ) +sky = SubResource("Sky_5gwha") tonemap_mode = 2 glow_enabled = true volumetric_fog_enabled = true -volumetric_fog_density = 0.1 [sub_resource type="FogMaterial" id="FogMaterial_sfd8y"] density = -1.6842 @@ -28,6 +27,11 @@ density = 0.2 emission = Color(0, 1, 0.501961, 1) edge_fade = 2.2779e-05 +[sub_resource type="FogMaterial" id="FogMaterial_16tep"] +density = 0.2 +emission = Color(0.980392, 0.164706, 1, 1) +edge_fade = 2.2779e-05 + [sub_resource type="FogMaterial" id="FogMaterial_blauf"] density = 0.2 emission = Color(0, 1, 0.501961, 1) @@ -89,6 +93,7 @@ tracks/2/keys = { [sub_resource type="Animation" id="Animation_axnf8"] resource_name = "move_fog_volume" length = 10.0 +loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -126,6 +131,12 @@ tracks/2/keys = { "values": [Vector3(1, 1, 1), Vector3(1, 1, 1), Vector3(3, 3, 3)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_avffy"] +_data = { +"RESET": SubResource("Animation_jg7qq"), +"move_fog_volume": SubResource("Animation_axnf8") +} + [sub_resource type="BoxMesh" id="BoxMesh_fi43t"] [sub_resource type="FogMaterial" id="FogMaterial_ktn3i"] @@ -136,59 +147,52 @@ edge_fade = 0.0 density = 2.0 emission = Color(0, 0.501961, 1, 1) edge_fade = 0.0 -density_texture = ExtResource( "2_8fjmj" ) +density_texture = ExtResource("2_8fjmj") [node name="Node3D" type="Node3D"] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( "Environment_gsgar" ) +environment = SubResource("Environment_gsgar") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.592126, -0.697883, 0.402923, -1.19487e-09, 0.5, 0.866026, -0.805846, 0.512796, -0.296063, 0, 0, 0) shadow_enabled = true -shadow_bias = 0.12 -directional_shadow_max_distance = 250.0 +shadow_bias = 0.04 +shadow_blur = 1.5 +directional_shadow_max_distance = 60.0 [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 6, 18) -script = ExtResource( "1_mfjvp" ) +fov = 74.0 +script = ExtResource("1_mfjvp") [node name="Label" type="Label" parent="Camera3D"] offset_left = 16.0 offset_top = 16.0 offset_right = 812.0 offset_bottom = 299.0 -theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.501961) -theme_override_constants/shadow_offset_x = 2 -theme_override_constants/shadow_offset_y = 2 -theme_override_constants/shadow_outline_size = 0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 4 text = "Temporal reprojection: Disabled" -__meta__ = { -"_edit_use_anchors_": false -} [node name="HelpLabel" type="Label" parent="Camera3D"] +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 16.0 -offset_top = -369.0 +offset_top = -120.0 offset_right = 909.0 offset_bottom = -16.0 grow_vertical = 0 -theme_override_colors/font_shadow_color = Color(0, 0, 0, 0.501961) -theme_override_constants/shadow_offset_x = 2 -theme_override_constants/shadow_offset_y = 2 -theme_override_constants/shadow_outline_size = 0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 4 text = "W/A/S/D/Mouse: Move Left/Right arrows: Adjust global fog density Space: Toggle temporal reprojection Up/Down arrows or mouse wheel: Adjust temporal reprojection intensity" -__meta__ = { -"_edit_use_anchors_": false -} [node name="Ground" type="CSGBox3D" parent="."] -size = Vector3(150, 2, 150) +size = Vector3(1024, 1.99, 1024) [node name="Ground2" type="CSGBox3D" parent="Ground"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -10.282, 0, 5.62229) @@ -212,29 +216,41 @@ size = Vector3(7.5, 7.5, 7.5) [node name="FogVolumeNegativeDensity" type="FogVolume" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5, 0) extents = Vector3(4, 4, 4) -material = SubResource( "FogMaterial_sfd8y" ) +material = SubResource("FogMaterial_sfd8y") [node name="FogVolumeEllipsoid" type="FogVolume" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13, 6, 6) extents = Vector3(2, 2, 2) shape = 0 -material = SubResource( "FogMaterial_v1f5u" ) +material = SubResource("FogMaterial_v1f5u") + +[node name="FogVolumeCone" type="FogVolume" parent="."] +transform = Transform3D(-1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0, 1, -12, 2, 12) +extents = Vector3(2, 2, 2) +shape = 1 +material = SubResource("FogMaterial_16tep") + +[node name="FogVolumeCylinder" type="FogVolume" parent="."] +transform = Transform3D(-1, 8.74228e-08, 0, -8.74228e-08, -1, 0, 0, 0, 1, -12, 3, 17) +extents = Vector3(2, 2, 2) +shape = 2 +material = SubResource("FogMaterial_16tep") [node name="FogVolumeEllipsoidHeightFalloff" type="FogVolume" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -13, 6, 2) extents = Vector3(2, 2, 2) shape = 0 -material = SubResource( "FogMaterial_blauf" ) +material = SubResource("FogMaterial_blauf") [node name="FogVolumeBox" type="FogVolume" parent="."] transform = Transform3D(0.707107, 0.5, -0.5, 0, 0.707107, 0.707107, 0.707107, -0.5, 0.5, -7.5189, 4.42465, -2.97368) extents = Vector3(2, 2, 2) -material = SubResource( "FogMaterial_yvnd5" ) +material = SubResource("FogMaterial_yvnd5") [node name="FogVolumeBoxHeightFalloff" type="FogVolume" parent="."] transform = Transform3D(0.707107, 0.5, -0.5, 0, 0.707107, 0.707107, 0.707107, -0.5, 0.5, -7.5189, 4.42465, -7.97368) extents = Vector3(2, 2, 2) -material = SubResource( "FogMaterial_gcgmm" ) +material = SubResource("FogMaterial_gcgmm") [node name="OmniLight3D" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.823152, 1.836, 4.31818) @@ -242,6 +258,13 @@ light_color = Color(1, 0.929412, 0, 1) light_energy = 2.0 omni_range = 6.0 +[node name="OmniLight3DHighVolumetricEnergy" type="OmniLight3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.67463, 1.836, -4.89264) +light_color = Color(1, 0.337255, 0, 1) +light_energy = 0.1 +light_volumetric_fog_energy = 500.0 +omni_range = 3.0 + [node name="OmniLight3DShadow" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5.82315, 1.836, 4.31818) light_color = Color(1, 0.929412, 0, 1) @@ -257,22 +280,23 @@ light_energy = 4.0 [node name="FogVolumeAlbedoTweak" type="FogVolume" parent="."] transform = Transform3D(-0.89393, -0.0897075, -0.439138, 0, 0.979766, -0.200148, 0.448207, -0.178918, -0.875842, -15.8913, -15.118, 8.26876) extents = Vector3(4, 4, 4) -material = SubResource( "FogMaterial_8xcc6" ) +material = SubResource("FogMaterial_8xcc6") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "move_fog_volume" -anims/RESET = SubResource( "Animation_jg7qq" ) -anims/move_fog_volume = SubResource( "Animation_axnf8" ) +libraries = { +"": SubResource("AnimationLibrary_avffy") +} [node name="MovingBox" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 10) -mesh = SubResource( "BoxMesh_fi43t" ) +mesh = SubResource("BoxMesh_fi43t") [node name="FogVolumeBlue" type="FogVolume" parent="MovingBox"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 2, 0) -material = SubResource( "FogMaterial_ktn3i" ) +material = SubResource("FogMaterial_ktn3i") [node name="FogVolumeTexture3D" type="FogVolume" parent="."] transform = Transform3D(-2.98023e-08, 4.82913e-08, -1, -4.2222e-08, -1, -4.82913e-08, -1, 4.2222e-08, -1.49012e-08, 17, 17, 12) extents = Vector3(16, 16, 2) -material = SubResource( "FogMaterial_yomn8" ) +material = SubResource("FogMaterial_yomn8") diff --git a/3d/voxel/default_bus_layout.tres b/3d/voxel/default_bus_layout.tres index a93324b8a0f..5124d8a2ed5 100644 --- a/3d/voxel/default_bus_layout.tres +++ b/3d/voxel/default_bus_layout.tres @@ -4,5 +4,5 @@ resource_name = "PitchShift" [resource] -bus/0/effect/0/effect = SubResource( "1" ) +bus/0/effect/0/effect = SubResource("1") bus/0/effect/0/enabled = true diff --git a/3d/voxel/icon.png.import b/3d/voxel/icon.png.import index 64a05c897dc..f0ab82d4c02 100644 --- a/3d/voxel/icon.png.import +++ b/3d/voxel/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/voxel/menu/button.png.import b/3d/voxel/menu/button.png.import index fbe25279d76..bcb1e63dba4 100644 --- a/3d/voxel/menu/button.png.import +++ b/3d/voxel/menu/button.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/voxel/menu/button_focus.png b/3d/voxel/menu/button_focus.png new file mode 100644 index 00000000000..617f2741776 Binary files /dev/null and b/3d/voxel/menu/button_focus.png differ diff --git a/3d/voxel/menu/button_focus.png.import b/3d/voxel/menu/button_focus.png.import new file mode 100644 index 00000000000..313caff3d3c --- /dev/null +++ b/3d/voxel/menu/button_focus.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://h208mfx7dyy2" +path="res://.godot/imported/button_focus.png-ab1bb8cac03c67d70abe367eb75ac245.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://menu/button_focus.png" +dest_files=["res://.godot/imported/button_focus.png-ab1bb8cac03c67d70abe367eb75ac245.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/3d/voxel/menu/button_hover.png b/3d/voxel/menu/button_hover.png new file mode 100644 index 00000000000..bff33c2e842 Binary files /dev/null and b/3d/voxel/menu/button_hover.png differ diff --git a/3d/voxel/menu/button_hover.png.import b/3d/voxel/menu/button_hover.png.import new file mode 100644 index 00000000000..b0c7872868a --- /dev/null +++ b/3d/voxel/menu/button_hover.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cfh73c8wnvgol" +path="res://.godot/imported/button_hover.png-cc3a5a29d50cd231bbad40ad55236c16.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://menu/button_hover.png" +dest_files=["res://.godot/imported/button_hover.png-cc3a5a29d50cd231bbad40ad55236c16.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/3d/voxel/menu/button_pressed.png b/3d/voxel/menu/button_pressed.png new file mode 100644 index 00000000000..de725cd7e1b Binary files /dev/null and b/3d/voxel/menu/button_pressed.png differ diff --git a/3d/voxel/menu/button_pressed.png.import b/3d/voxel/menu/button_pressed.png.import new file mode 100644 index 00000000000..fc32f7ee689 --- /dev/null +++ b/3d/voxel/menu/button_pressed.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://blcjvv0p0a6v8" +path="res://.godot/imported/button_pressed.png-1a7de8cb7b9d369c3113c6cd6f245a7d.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://menu/button_pressed.png" +dest_files=["res://.godot/imported/button_pressed.png-1a7de8cb7b9d369c3113c6cd6f245a7d.ctex"] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/bptc_ldr=0 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/3d/voxel/menu/ingame/pause_menu.gd b/3d/voxel/menu/ingame/pause_menu.gd index f4e6c566e19..2746d9bf744 100644 --- a/3d/voxel/menu/ingame/pause_menu.gd +++ b/3d/voxel/menu/ingame/pause_menu.gd @@ -33,7 +33,7 @@ func _on_Options_pressed(): func _on_MainMenu_pressed(): voxel_world.clean_up() - tree.change_scene("res://menu/main/main_menu.tscn") + tree.change_scene_to_packed(load("res://menu/main/main_menu.tscn")) func _on_Exit_pressed(): diff --git a/3d/voxel/menu/ingame/pause_menu.tscn b/3d/voxel/menu/ingame/pause_menu.tscn index e7aac660e3e..db94d3149f8 100644 --- a/3d/voxel/menu/ingame/pause_menu.tscn +++ b/3d/voxel/menu/ingame/pause_menu.tscn @@ -1,32 +1,46 @@ -[gd_scene load_steps=6 format=3 uid="uid://dk8arl1if3lyr"] +[gd_scene load_steps=9 format=3 uid="uid://dk8arl1if3lyr"] [ext_resource type="Texture2D" uid="uid://cgv7xgoy43rbc" path="res://player/crosshair.svg" id="1"] -[ext_resource type="Theme" path="res://menu/theme/theme.tres" id="2"] +[ext_resource type="Theme" uid="uid://ckax6htygmelo" path="res://menu/theme/theme.tres" id="2"] [ext_resource type="PackedScene" uid="uid://e22n700qhxqr" path="res://menu/options/options.tscn" id="3"] [ext_resource type="Script" path="res://menu/ingame/pause_menu.gd" id="4"] [ext_resource type="Texture2D" uid="uid://ej6lqf2fptv8" path="res://menu/button.png" id="5"] +[ext_resource type="Texture2D" uid="uid://blcjvv0p0a6v8" path="res://menu/button_pressed.png" id="5_sc8eq"] +[ext_resource type="Texture2D" uid="uid://cfh73c8wnvgol" path="res://menu/button_hover.png" id="6_xrlxa"] +[ext_resource type="Texture2D" uid="uid://h208mfx7dyy2" path="res://menu/button_focus.png" id="7_elacb"] [node name="PauseMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -theme = ExtResource( "2" ) -script = ExtResource( "4" ) +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("2") +script = ExtResource("4") [node name="Crosshair" type="CenterContainer" parent="."] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 [node name="TextureRect" type="TextureRect" parent="Crosshair"] -offset_left = 496.0 -offset_top = 284.0 -offset_right = 528.0 -offset_bottom = 316.0 -texture = ExtResource( "1" ) +modulate = Color(1, 1, 1, 0.501961) +offset_left = 784.0 +offset_top = 434.0 +offset_right = 816.0 +offset_bottom = 466.0 +texture = ExtResource("1") [node name="Pause" type="VBoxContainer" parent="."] visible = false +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 [node name="ButtonHolder" type="HBoxContainer" parent="Pause"] offset_right = 1024.0 @@ -45,13 +59,19 @@ alignment = 1 offset_top = 142.0 offset_right = 384.0 offset_bottom = 206.0 -texture_normal = ExtResource( "5" ) +texture_normal = ExtResource("5") +texture_pressed = ExtResource("5_sc8eq") +texture_hover = ExtResource("6_xrlxa") +texture_focused = ExtResource("7_elacb") [node name="Label" type="Label" parent="Pause/ButtonHolder/MainButtons/Resume"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Resume Game" horizontal_alignment = 1 @@ -61,60 +81,69 @@ vertical_alignment = 1 offset_top = 226.0 offset_right = 384.0 offset_bottom = 290.0 -texture_normal = ExtResource( "5" ) +texture_normal = ExtResource("5") +texture_pressed = ExtResource("5_sc8eq") +texture_hover = ExtResource("6_xrlxa") +texture_focused = ExtResource("7_elacb") [node name="Label" type="Label" parent="Pause/ButtonHolder/MainButtons/Options"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Options" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="MainMenu" type="TextureButton" parent="Pause/ButtonHolder/MainButtons"] offset_top = 310.0 offset_right = 384.0 offset_bottom = 374.0 -texture_normal = ExtResource( "5" ) +texture_normal = ExtResource("5") +texture_pressed = ExtResource("5_sc8eq") +texture_hover = ExtResource("6_xrlxa") +texture_focused = ExtResource("7_elacb") [node name="Label" type="Label" parent="Pause/ButtonHolder/MainButtons/MainMenu"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Main Menu" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Exit" type="TextureButton" parent="Pause/ButtonHolder/MainButtons"] offset_top = 394.0 offset_right = 384.0 offset_bottom = 458.0 -texture_normal = ExtResource( "5" ) +texture_normal = ExtResource("5") +texture_pressed = ExtResource("5_sc8eq") +texture_hover = ExtResource("6_xrlxa") +texture_focused = ExtResource("7_elacb") [node name="Label" type="Label" parent="Pause/ButtonHolder/MainButtons/Exit"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Exit Game" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} -[node name="Options" parent="." instance=ExtResource( "3" )] +[node name="Options" parent="." instance=ExtResource("3")] [connection signal="pressed" from="Pause/ButtonHolder/MainButtons/Resume" to="." method="_on_Resume_pressed"] [connection signal="pressed" from="Pause/ButtonHolder/MainButtons/Options" to="." method="_on_Options_pressed"] diff --git a/3d/voxel/menu/main/dark_dirt.png.import b/3d/voxel/menu/main/dark_dirt.png.import index eefc27b5eee..4cfa6497805 100644 --- a/3d/voxel/menu/main/dark_dirt.png.import +++ b/3d/voxel/menu/main/dark_dirt.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/voxel/menu/main/main_menu.gd b/3d/voxel/menu/main/main_menu.gd index 2958733f4e7..c35bccb57bd 100644 --- a/3d/voxel/menu/main/main_menu.gd +++ b/3d/voxel/menu/main/main_menu.gd @@ -24,12 +24,12 @@ func _on_Exit_pressed(): func _on_RandomBlocks_pressed(): Settings.world_type = 0 - tree.change_scene("res://world/world.tscn") + tree.change_scene_to_packed(preload("res://world/world.tscn")) func _on_FlatGrass_pressed(): Settings.world_type = 1 - tree.change_scene("res://world/world.tscn") + tree.change_scene_to_packed(preload("res://world/world.tscn")) func _on_BackToTitle_pressed(): diff --git a/3d/voxel/menu/main/main_menu.tscn b/3d/voxel/menu/main/main_menu.tscn index a73fc236be0..554c66d815f 100644 --- a/3d/voxel/menu/main/main_menu.tscn +++ b/3d/voxel/menu/main/main_menu.tscn @@ -1,54 +1,72 @@ -[gd_scene load_steps=8 format=3 uid="uid://csdy1t6j24awl"] +[gd_scene load_steps=11 format=3 uid="uid://csdy1t6j24awl"] [ext_resource type="Texture2D" uid="uid://c2eorasvxyf5u" path="res://menu/main/title.png" id="1"] [ext_resource type="Script" path="res://menu/main/splash_text.gd" id="2"] [ext_resource type="Script" path="res://menu/main/main_menu.gd" id="3"] [ext_resource type="Texture2D" uid="uid://c514noc8ngc4x" path="res://menu/main/dark_dirt.png" id="4"] [ext_resource type="PackedScene" uid="uid://e22n700qhxqr" path="res://menu/options/options.tscn" id="5"] -[ext_resource type="Theme" path="res://menu/theme/theme.tres" id="6"] +[ext_resource type="Theme" uid="uid://ckax6htygmelo" path="res://menu/theme/theme.tres" id="6"] [ext_resource type="Texture2D" uid="uid://ej6lqf2fptv8" path="res://menu/button.png" id="7"] +[ext_resource type="Texture2D" uid="uid://blcjvv0p0a6v8" path="res://menu/button_pressed.png" id="7_hsmm5"] +[ext_resource type="Texture2D" uid="uid://cfh73c8wnvgol" path="res://menu/button_hover.png" id="8_tutt7"] +[ext_resource type="Texture2D" uid="uid://h208mfx7dyy2" path="res://menu/button_focus.png" id="9_d3hm1"] [node name="MainMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -theme = ExtResource( "6" ) -script = ExtResource( "3" ) +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("6") +script = ExtResource("3") [node name="Background" type="TextureRect" parent="."] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -texture = ExtResource( "4" ) +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4") stretch_mode = 1 [node name="TitleScreen" type="VBoxContainer" parent="."] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 [node name="Logo" type="CenterContainer" parent="TitleScreen"] texture_repeat = 2 -minimum_size = Vector2(0, 240) -offset_right = 1024.0 -offset_bottom = 240.0 +custom_minimum_size = Vector2(0, 350) +offset_right = 1600.0 +offset_bottom = 350.0 [node name="Logo" type="TextureRect" parent="TitleScreen/Logo"] -offset_left = 144.0 -offset_top = 80.0 -offset_right = 880.0 -offset_bottom = 160.0 -texture = ExtResource( "1" ) +offset_left = 432.0 +offset_top = 135.0 +offset_right = 1168.0 +offset_bottom = 215.0 +texture = ExtResource("1") [node name="SplashHolder" type="Control" parent="TitleScreen/Logo/Logo"] +layout_mode = 3 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = -36.0 offset_right = -36.0 -script = ExtResource( "2" ) +grow_horizontal = 0 +grow_vertical = 0 +script = ExtResource("2") [node name="SplashText" type="Label" parent="TitleScreen/Logo/Logo/SplashHolder"] modulate = Color(1, 1, 0, 1) texture_filter = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 @@ -61,22 +79,17 @@ grow_vertical = 0 rotation = -0.261799 theme_override_font_sizes/font_size = 61 text = "Made in Godot!" -__meta__ = { -"_edit_layout_mode": 1, -"_edit_use_anchors_": false, -"_edit_use_custom_anchors": false -} [node name="ButtonHolder" type="HBoxContainer" parent="TitleScreen"] -offset_top = 244.0 -offset_right = 1024.0 -offset_bottom = 476.0 -size_flags_vertical = 3 +offset_top = 354.0 +offset_right = 1600.0 +offset_bottom = 586.0 +size_flags_vertical = 2 alignment = 1 [node name="MainButtons" type="VBoxContainer" parent="TitleScreen/ButtonHolder"] -offset_left = 320.0 -offset_right = 704.0 +offset_left = 608.0 +offset_right = 992.0 offset_bottom = 232.0 theme_override_constants/separation = 20 alignment = 1 @@ -84,34 +97,43 @@ alignment = 1 [node name="Start" type="TextureButton" parent="TitleScreen/ButtonHolder/MainButtons"] offset_right = 384.0 offset_bottom = 64.0 -texture_normal = ExtResource( "7" ) +texture_normal = ExtResource("7") +texture_pressed = ExtResource("7_hsmm5") +texture_hover = ExtResource("8_tutt7") +texture_focused = ExtResource("9_d3hm1") [node name="Label" type="Label" parent="TitleScreen/ButtonHolder/MainButtons/Start"] texture_filter = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Start Game" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Options" type="TextureButton" parent="TitleScreen/ButtonHolder/MainButtons"] offset_top = 84.0 offset_right = 384.0 offset_bottom = 148.0 -texture_normal = ExtResource( "7" ) +texture_normal = ExtResource("7") +texture_pressed = ExtResource("7_hsmm5") +texture_hover = ExtResource("8_tutt7") +texture_focused = ExtResource("9_d3hm1") [node name="Label" type="Label" parent="TitleScreen/ButtonHolder/MainButtons/Options"] texture_filter = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Options" horizontal_alignment = 1 @@ -121,107 +143,107 @@ vertical_alignment = 1 offset_top = 168.0 offset_right = 384.0 offset_bottom = 232.0 -texture_normal = ExtResource( "7" ) +texture_normal = ExtResource("7") +texture_pressed = ExtResource("7_hsmm5") +texture_hover = ExtResource("8_tutt7") +texture_focused = ExtResource("9_d3hm1") [node name="Label" type="Label" parent="TitleScreen/ButtonHolder/MainButtons/Exit"] texture_filter = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Exit Game" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Spacer" type="Control" parent="TitleScreen"] -minimum_size = Vector2(0, 120) -offset_top = 480.0 -offset_right = 1024.0 -offset_bottom = 600.0 +layout_mode = 3 +anchors_preset = 0 +offset_top = 900.0 +offset_right = 1600.0 +offset_bottom = 900.0 [node name="StartGame" type="HBoxContainer" parent="."] visible = false +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="StartButtons" type="VBoxContainer" parent="StartGame"] -offset_left = 320.0 -offset_right = 704.0 -offset_bottom = 600.0 theme_override_constants/separation = 20 alignment = 1 [node name="Spacer" type="Control" parent="StartGame/StartButtons"] -offset_top = 198.0 -offset_right = 384.0 -offset_bottom = 198.0 +layout_mode = 3 +anchors_preset = 0 [node name="RandomBlocks" type="TextureButton" parent="StartGame/StartButtons"] -offset_top = 202.0 -offset_right = 384.0 -offset_bottom = 266.0 -texture_normal = ExtResource( "7" ) +texture_normal = ExtResource("7") +texture_pressed = ExtResource("7_hsmm5") +texture_hover = ExtResource("8_tutt7") +texture_focused = ExtResource("9_d3hm1") [node name="Label" type="Label" parent="StartGame/StartButtons/RandomBlocks"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Random Blocks" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="FlatGrass" type="TextureButton" parent="StartGame/StartButtons"] -offset_top = 270.0 -offset_right = 384.0 -offset_bottom = 334.0 -texture_normal = ExtResource( "7" ) +texture_normal = ExtResource("7") +texture_pressed = ExtResource("7_hsmm5") +texture_hover = ExtResource("8_tutt7") +texture_focused = ExtResource("9_d3hm1") [node name="Label" type="Label" parent="StartGame/StartButtons/FlatGrass"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Flat Grass" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="BackToTitle" type="TextureButton" parent="StartGame/StartButtons"] -offset_top = 338.0 -offset_right = 384.0 -offset_bottom = 402.0 -texture_normal = ExtResource( "7" ) +texture_normal = ExtResource("7") +texture_pressed = ExtResource("7_hsmm5") +texture_hover = ExtResource("8_tutt7") +texture_focused = ExtResource("9_d3hm1") [node name="Label" type="Label" parent="StartGame/StartButtons/BackToTitle"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Back" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} -[node name="Options" parent="." instance=ExtResource( "5" )] +[node name="Options" parent="." instance=ExtResource("5")] [connection signal="pressed" from="TitleScreen/ButtonHolder/MainButtons/Start" to="." method="_on_Start_pressed"] [connection signal="pressed" from="TitleScreen/ButtonHolder/MainButtons/Options" to="." method="_on_Options_pressed"] diff --git a/3d/voxel/menu/main/title.png.import b/3d/voxel/menu/main/title.png.import index 94d43780cba..6ad3955cacf 100644 --- a/3d/voxel/menu/main/title.png.import +++ b/3d/voxel/menu/main/title.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=false process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/voxel/menu/options/options.tscn b/3d/voxel/menu/options/options.tscn index 7fd70b4caea..044c96704e2 100644 --- a/3d/voxel/menu/options/options.tscn +++ b/3d/voxel/menu/options/options.tscn @@ -1,37 +1,35 @@ -[gd_scene load_steps=5 format=3 uid="uid://e22n700qhxqr"] +[gd_scene load_steps=8 format=3 uid="uid://e22n700qhxqr"] [ext_resource type="Script" path="res://menu/options/options.gd" id="1"] -[ext_resource type="Theme" path="res://menu/theme/theme.tres" id="1_1y7gy"] +[ext_resource type="Theme" uid="uid://ckax6htygmelo" path="res://menu/theme/theme.tres" id="1_1y7gy"] [ext_resource type="Script" path="res://menu/options/option_buttons.gd" id="2"] [ext_resource type="Texture2D" uid="uid://ej6lqf2fptv8" path="res://menu/button.png" id="3"] +[ext_resource type="Texture2D" uid="uid://blcjvv0p0a6v8" path="res://menu/button_pressed.png" id="5_g68rn"] +[ext_resource type="Texture2D" uid="uid://cfh73c8wnvgol" path="res://menu/button_hover.png" id="6_idu7c"] +[ext_resource type="Texture2D" uid="uid://h208mfx7dyy2" path="res://menu/button_focus.png" id="7_gmbws"] [node name="Options" type="HBoxContainer"] visible = false +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -theme = ExtResource( "1_1y7gy" ) +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("1_1y7gy") alignment = 1 -script = ExtResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("1") [node name="VBoxContainer" type="VBoxContainer" parent="."] -offset_left = 87.0 -offset_right = 937.0 -offset_bottom = 600.0 theme_override_constants/separation = 20 alignment = 1 -[node name="OptionsBackground" type="TextureRect" parent="VBoxContainer"] -minimum_size = Vector2(850, 150) -offset_top = 183.0 -offset_right = 850.0 -offset_bottom = 333.0 -texture = ExtResource( "3" ) -stretch_mode = 1 +[node name="OptionsBackground" type="ColorRect" parent="VBoxContainer"] +self_modulate = Color(0.45098, 0.45098, 0.45098, 1) +custom_minimum_size = Vector2(1000, 250) +color = Color(0.25098, 0.25098, 0.25098, 0.627451) [node name="OptionButtons" type="GridContainer" parent="VBoxContainer/OptionsBackground"] +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -40,25 +38,19 @@ offset_left = -400.0 offset_top = -66.0 offset_right = 400.0 offset_bottom = 66.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/h_separation = 20 columns = 2 -script = ExtResource( "2" ) +script = ExtResource("2") [node name="RenderDistanceLabel" type="Label" parent="VBoxContainer/OptionsBackground/OptionButtons"] -minimum_size = Vector2(320, 0) -offset_right = 320.0 -offset_bottom = 64.0 size_flags_vertical = 5 theme_override_font_sizes/font_size = 60 text = "Render distance: 3" horizontal_alignment = 2 -__meta__ = { -"_edit_use_anchors_": false -} [node name="RenderDistanceSlider" type="HSlider" parent="VBoxContainer/OptionsBackground/OptionButtons"] -offset_left = 324.0 -offset_right = 800.0 -offset_bottom = 64.0 size_flags_horizontal = 3 size_flags_vertical = 3 min_value = 3.0 @@ -66,39 +58,32 @@ max_value = 10.0 value = 7.0 [node name="FogLabel" type="Label" parent="VBoxContainer/OptionsBackground/OptionButtons"] -offset_top = 68.0 -offset_right = 320.0 -offset_bottom = 132.0 size_flags_vertical = 5 theme_override_font_sizes/font_size = 60 text = "Fog Enabled" horizontal_alignment = 2 [node name="FogCheckBox" type="CheckBox" parent="VBoxContainer/OptionsBackground/OptionButtons"] -offset_left = 324.0 -offset_top = 68.0 -offset_right = 800.0 -offset_bottom = 132.0 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="HBoxContainer" type="HBoxContainer" parent="VBoxContainer"] -offset_top = 353.0 -offset_right = 850.0 -offset_bottom = 417.0 alignment = 1 [node name="Back" type="TextureButton" parent="VBoxContainer/HBoxContainer"] -offset_left = 233.0 -offset_right = 617.0 -offset_bottom = 64.0 -texture_normal = ExtResource( "3" ) +texture_normal = ExtResource("3") +texture_pressed = ExtResource("5_g68rn") +texture_hover = ExtResource("6_idu7c") +texture_focused = ExtResource("7_gmbws") [node name="Label" type="Label" parent="VBoxContainer/HBoxContainer/Back"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_top = -1.0 offset_bottom = -18.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_font_sizes/font_size = 60 text = "Back" horizontal_alignment = 1 diff --git a/3d/voxel/menu/theme/TinyUnicode.tres b/3d/voxel/menu/theme/TinyUnicode.tres deleted file mode 100644 index 886f2c8adb1..00000000000 --- a/3d/voxel/menu/theme/TinyUnicode.tres +++ /dev/null @@ -1,6 +0,0 @@ -[gd_resource type="Font" load_steps=2 format=3 uid="uid://65p88jvybwaw"] - -[ext_resource type="FontData" uid="uid://d223lt6j1fyie" path="res://menu/theme/TinyUnicode.ttf" id="1"] - -[resource] -data/0 = ExtResource( "1" ) diff --git a/3d/voxel/menu/theme/TinyUnicode.ttf.import b/3d/voxel/menu/theme/TinyUnicode.ttf.import index 7164edd8cd3..3bb8749473b 100644 --- a/3d/voxel/menu/theme/TinyUnicode.ttf.import +++ b/3d/voxel/menu/theme/TinyUnicode.ttf.import @@ -1,8 +1,8 @@ [remap] importer="font_data_dynamic" -type="FontData" -uid="uid://d223lt6j1fyie" +type="FontFile" +uid="uid://cyd3f8x03dspo" path="res://.godot/imported/TinyUnicode.ttf-eba88eb6541afc571b283cb8123beb7f.fontdata" [deps] @@ -12,22 +12,27 @@ dest_files=["res://.godot/imported/TinyUnicode.ttf-eba88eb6541afc571b283cb8123be [params] -antialiased=true +Rendering=null +antialiasing=0 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[{ +"chars": [], +"glyphs": [], +"name": "New Configuration", +"variation_embolden": 0.0 +}] +language_support={} +script_support={} +opentype_features={} diff --git a/3d/voxel/menu/theme/theme.tres b/3d/voxel/menu/theme/theme.tres index c710251a165..9690046f6bb 100644 --- a/3d/voxel/menu/theme/theme.tres +++ b/3d/voxel/menu/theme/theme.tres @@ -1,6 +1,6 @@ -[gd_resource type="Theme" load_steps=2 format=2] +[gd_resource type="Theme" load_steps=2 format=3 uid="uid://ckax6htygmelo"] -[ext_resource path="res://menu/theme/TinyUnicode.tres" type="Font" id=1] +[ext_resource type="FontFile" uid="uid://cyd3f8x03dspo" path="res://menu/theme/TinyUnicode.ttf" id="1_bshmy"] [resource] -default_font = ExtResource( 1 ) +default_font = ExtResource("1_bshmy") diff --git a/3d/voxel/player/crosshair.svg.import b/3d/voxel/player/crosshair.svg.import index 1c40a5d7d01..9fac552bcf3 100644 --- a/3d/voxel/player/crosshair.svg.import +++ b/3d/voxel/player/crosshair.svg.import @@ -29,6 +29,9 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/3d/voxel/player/player.gd b/3d/voxel/player/player.gd index 07e39c9c86e..e37b666e13e 100644 --- a/3d/voxel/player/player.gd +++ b/3d/voxel/player/player.gd @@ -1,5 +1,14 @@ extends CharacterBody3D +const EYE_HEIGHT_STAND = 1.6 +const EYE_HEIGHT_CROUCH = 1.4 + +const MOVEMENT_SPEED_GROUND = 0.6 +const MOVEMENT_SPEED_AIR = 0.11 +const MOVEMENT_SPEED_CROUCH_MODIFIER = 0.5 +const MOVEMENT_FRICTION_GROUND = 0.9 +const MOVEMENT_FRICTION_AIR = 0.98 + var _mouse_motion = Vector2() var _selected_block = 6 @@ -7,7 +16,7 @@ var _selected_block = 6 @onready var head = $Head @onready var raycast = $Head/RayCast3D -@onready var camera_effects = $Head/Camera3D.effects +@onready var camera_attributes = $Head/Camera3D.attributes @onready var selected_block_texture = $SelectedBlock @onready var voxel_world = $"../VoxelWorld" @onready var crosshair = $"../PauseMenu/Crosshair" @@ -19,7 +28,7 @@ func _ready(): func _process(_delta): # Mouse movement. - _mouse_motion.y = clamp(_mouse_motion.y, -1550, 1550) + _mouse_motion.y = clamp(_mouse_motion.y, -1560, 1560) transform.basis = Basis.from_euler(Vector3(0, _mouse_motion.x * -0.001, 0)) head.transform.basis = Basis.from_euler(Vector3(_mouse_motion.y * -0.001, 0, 0)) @@ -58,32 +67,37 @@ func _process(_delta): func _physics_process(delta): - camera_effects.dof_blur_far_enabled = Settings.fog_enabled - camera_effects.dof_blur_far_distance = Settings.fog_distance * 1.5 - camera_effects.dof_blur_far_transition = Settings.fog_distance / 8 + camera_attributes.dof_blur_far_enabled = Settings.fog_enabled + camera_attributes.dof_blur_far_distance = Settings.fog_distance * 1.5 + camera_attributes.dof_blur_far_transition = Settings.fog_distance * 0.125 # Crouching. var crouching = Input.is_action_pressed(&"crouch") - if crouching: - head.transform.origin = Vector3(0, 1.2, 0) - else: - head.transform.origin = Vector3(0, 1.6, 0) + head.transform.origin.y = lerpf(head.transform.origin.y, EYE_HEIGHT_CROUCH if crouching else EYE_HEIGHT_STAND, 16 * delta) # Keyboard movement. var movement_vec2 = Input.get_vector("move_left", "move_right", "move_forward", "move_back") var movement = transform.basis * (Vector3(movement_vec2.x, 0, movement_vec2.y)) - if not crouching: - movement *= 5 + + if is_on_floor(): + movement *= MOVEMENT_SPEED_GROUND + else: + movement *= MOVEMENT_SPEED_AIR + + if crouching: + movement *= MOVEMENT_SPEED_CROUCH_MODIFIER # Gravity. velocity.y -= gravity * delta - #warning-ignore:return_value_discarded - velocity = Vector3(movement.x, velocity.y, movement.z) + velocity += Vector3(movement.x, 0, movement.z) + # Apply horizontal friction. + velocity.x *= MOVEMENT_FRICTION_GROUND if is_on_floor() else MOVEMENT_FRICTION_AIR + velocity.z *= MOVEMENT_FRICTION_GROUND if is_on_floor() else MOVEMENT_FRICTION_AIR move_and_slide() # Jumping, applied next frame. if is_on_floor() and Input.is_action_pressed(&"jump"): - velocity.y = 5 + velocity.y = 7.5 func _input(event): diff --git a/3d/voxel/player/player.tscn b/3d/voxel/player/player.tscn index 7dc9f50e38b..7b865c997a6 100644 --- a/3d/voxel/player/player.tscn +++ b/3d/voxel/player/player.tscn @@ -4,32 +4,29 @@ [ext_resource type="Texture2D" uid="uid://d3f34krqfgdjd" path="res://world/textures/texture_sheet.png" id="2"] [sub_resource type="CylinderShape3D" id="1"] -radius = 0.375 height = 1.75 +radius = 0.375 -[sub_resource type="CameraEffects" id="CameraEffects_hnscx"] -dof_blur_far_enabled = true -dof_blur_far_distance = 100.0 -dof_blur_far_transition = 16.0 -dof_blur_amount = 0.25 +[sub_resource type="CameraAttributesPractical" id="CameraAttributesPractical_jyixh"] [sub_resource type="AtlasTexture" id="2"] -atlas = ExtResource( "2" ) +atlas = ExtResource("2") region = Rect2(0, 0, 64, 64) [node name="Player" type="CharacterBody3D"] collision_layer = 0 -script = ExtResource( "1" ) +script = ExtResource("1") [node name="CollisionShape3D" type="CollisionShape3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0) -shape = SubResource( "1" ) +shape = SubResource("1") [node name="Head" type="Node3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.6, 0) [node name="Camera3D" type="Camera3D" parent="Head"] -effects = SubResource( "CameraEffects_hnscx" ) +attributes = SubResource("CameraAttributesPractical_jyixh") +fov = 74.0 near = 0.02 far = 1000.0 @@ -38,11 +35,16 @@ target_position = Vector3(0, 0, -4) [node name="SelectedBlock" type="TextureRect" parent="."] texture_filter = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -128.0 -offset_top = -128.0 -texture = SubResource( "2" ) +offset_left = -127.0 +offset_top = -127.0 +offset_right = 1.0 +offset_bottom = 1.0 +grow_horizontal = 0 +grow_vertical = 0 +texture = SubResource("2") ignore_texture_size = true diff --git a/3d/voxel/project.godot b/3d/voxel/project.godot index 18c1c55dcd4..eb28474c51d 100644 --- a/3d/voxel/project.godot +++ b/3d/voxel/project.godot @@ -33,8 +33,8 @@ Sticking to GDScript and the built-in Godot tools, as this demo does, is quite limiting. If you are making your own voxel game, you should probably use Zylann's voxel module instead: https://github.com/Zylann/godot_voxel" run/main_scene="res://menu/main/main_menu.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [autoload] @@ -42,69 +42,70 @@ Settings="*res://settings.gd" [display] -window/stretch/mode="2d" +window/size/viewport_width=1600 +window/size/viewport_height=900 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/size/width=1600 -window/size/height=900 [input] move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } move_back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +"events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } crouch={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"unicode":0,"echo":false,"script":null) ] } pause={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194313,"unicode":0,"echo":false,"script":null) ] } break={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":7,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } place={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":6,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] @@ -131,38 +132,39 @@ look_right={ } debug={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777246,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194334,"unicode":0,"echo":false,"script":null) ] } prev_block={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":123,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"pressed":false,"double_click":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":91,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":45,"unicode":0,"echo":false,"script":null) ] } next_block={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":125,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":93,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"pressed":false,"double_click":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":61,"unicode":0,"echo":false,"script":null) ] } pick_block={ "deadzone": 0.5, -"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":3,"pressed":false,"double_click":false,"script":null) +"events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":3,"pressed":false,"double_click":false,"script":null) ] } [physics] +common/physics_ticks_per_second=120 3d/physics_engine="Bullet" -common/physics_fps=120 +3d/default_gravity=20.0 [rendering] -anti_aliasing/quality/msaa=3 -anti_aliasing/quality/screen_space_aa=1 +anti_aliasing/quality/msaa_3d=2 +anti_aliasing/quality/use_debanding=true textures/canvas_textures/default_texture_filter=0 quality/driver/driver_name="GLES2" vram_compression/import_etc=true diff --git a/3d/voxel/settings.gd b/3d/voxel/settings.gd index d250536aedb..c7298526aaa 100644 --- a/3d/voxel/settings.gd +++ b/3d/voxel/settings.gd @@ -18,9 +18,8 @@ func _enter_tree(): else: Settings._loaded = true - var file = File.new() - if file.file_exists(_save_path): - file.open(_save_path, File.READ) + if FileAccess.file_exists(_save_path): + var file = FileAccess.open(_save_path, FileAccess.READ) while file.get_position() < file.get_length(): # Get the saved dictionary from the next line in the save file var json = JSON.new() @@ -28,17 +27,14 @@ func _enter_tree(): var data = json.get_data() render_distance = data["render_distance"] fog_enabled = data["fog_enabled"] - file.close() else: save_settings() func save_settings(): - var file = File.new() - file.open(_save_path, File.WRITE) + var file = FileAccess.open(_save_path, FileAccess.WRITE) var data = { "render_distance": render_distance, "fog_enabled": fog_enabled, } file.store_line(JSON.new().stringify(data)) - file.close() diff --git a/3d/voxel/world/terrain_generator.gd b/3d/voxel/world/terrain_generator.gd index bfab6b55732..7c9c2b0187a 100644 --- a/3d/voxel/world/terrain_generator.gd +++ b/3d/voxel/world/terrain_generator.gd @@ -5,6 +5,8 @@ extends Resource # https://github.com/godotengine/godot/issues/21461 const CHUNK_SIZE = 16 +const RANDOM_BLOCK_PROBABILITY = 0.015 + static func empty(): return {} @@ -16,7 +18,7 @@ static func random_blocks(): for y in range(CHUNK_SIZE): for z in range(CHUNK_SIZE): var vec = Vector3i(x, y, z) - if randf() < 0.01: + if randf() < RANDOM_BLOCK_PROBABILITY: random_data[vec] = randi() % 29 + 1 return random_data diff --git a/3d/voxel/world/textures/material.tres b/3d/voxel/world/textures/material.tres index f6d46b9fb72..8d173a160aa 100644 --- a/3d/voxel/world/textures/material.tres +++ b/3d/voxel/world/textures/material.tres @@ -4,6 +4,6 @@ [resource] transparency = 4 -albedo_texture = ExtResource( "1" ) -texture_filter = 0 +albedo_texture = ExtResource("1") +texture_filter = 4 texture_repeat = false diff --git a/3d/voxel/world/textures/texture_sheet.png b/3d/voxel/world/textures/texture_sheet.png index 5a316c5a315..72e5969f567 100644 Binary files a/3d/voxel/world/textures/texture_sheet.png and b/3d/voxel/world/textures/texture_sheet.png differ diff --git a/3d/voxel/world/textures/texture_sheet.png.import b/3d/voxel/world/textures/texture_sheet.png.import index 2b9f54b353d..98ad6051f00 100644 --- a/3d/voxel/world/textures/texture_sheet.png.import +++ b/3d/voxel/world/textures/texture_sheet.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=false process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=0 diff --git a/3d/voxel/world/world.tscn b/3d/voxel/world/world.tscn index f289a1b96d3..9394179e891 100644 --- a/3d/voxel/world/world.tscn +++ b/3d/voxel/world/world.tscn @@ -5,53 +5,53 @@ [ext_resource type="Script" path="res://world/environment.gd" id="4"] [ext_resource type="PackedScene" uid="uid://dk8arl1if3lyr" path="res://menu/ingame/pause_menu.tscn" id="5"] [ext_resource type="Script" path="res://menu/debug.gd" id="6"] -[ext_resource type="Theme" path="res://menu/theme/theme.tres" id="7"] +[ext_resource type="Theme" uid="uid://ckax6htygmelo" path="res://menu/theme/theme.tres" id="7"] -[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_rhfg5"] +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_culy1"] sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) -[sub_resource type="Sky" id="Sky_iri27"] -sky_material = SubResource( "ProceduralSkyMaterial_rhfg5" ) +[sub_resource type="Sky" id="Sky_heg3k"] +sky_material = SubResource("ProceduralSkyMaterial_culy1") -[sub_resource type="Environment" id="Environment_cs0j5"] +[sub_resource type="Environment" id="Environment_lwytn"] background_mode = 2 -sky = SubResource( "Sky_iri27" ) +sky = SubResource("Sky_heg3k") tonemap_mode = 2 -glow_enabled = true fog_enabled = true -fog_aerial_perspective = 0.5 +fog_sun_scatter = 0.3 +fog_sky_affect = 0.5 [node name="World3D" type="Node3D"] -[node name="Player" parent="." instance=ExtResource( "1" )] +[node name="Player" parent="." instance=ExtResource("1")] [node name="Debug" type="Label" parent="."] visible = false +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 20.0 offset_right = -20.0 offset_bottom = -20.0 -theme = ExtResource( "7" ) +grow_horizontal = 2 +grow_vertical = 2 +theme = ExtResource("7") theme_override_font_sizes/font_size = 48 -script = ExtResource( "6" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("6") -[node name="PauseMenu" parent="." instance=ExtResource( "5" )] +[node name="PauseMenu" parent="." instance=ExtResource("5")] [node name="VoxelWorld" type="Node" parent="."] -script = ExtResource( "2" ) +script = ExtResource("2") [node name="Environment" type="WorldEnvironment" parent="."] -environment = SubResource( "Environment_cs0j5" ) -script = ExtResource( "4" ) +environment = SubResource("Environment_lwytn") +script = ExtResource("4") [node name="Sun" type="DirectionalLight3D" parent="Environment"] transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866026, -0.5, 0.75, -0.433013, 0, 0, 0) shadow_enabled = true -directional_shadow_max_distance = 250.0 +shadow_bias = 0.04 [node name="MeshInstance3D" type="MeshInstance3D" parent="."] diff --git a/3d/waypoints/icon.png.import b/3d/waypoints/icon.png.import index 409505962c8..e8e6c7a9a01 100644 --- a/3d/waypoints/icon.png.import +++ b/3d/waypoints/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/3d/waypoints/main.tscn b/3d/waypoints/main.tscn index 3483019cc7b..2cbdff32c05 100644 --- a/3d/waypoints/main.tscn +++ b/3d/waypoints/main.tscn @@ -7,38 +7,38 @@ albedo_color = Color(0.25098, 0.470588, 0.996078, 1) [sub_resource type="BoxMesh" id="6"] -material = SubResource( "5" ) +material = SubResource("5") [sub_resource type="StandardMaterial3D" id="7"] albedo_color = Color(0.435294, 0.917647, 0.380392, 1) [sub_resource type="BoxMesh" id="8"] -material = SubResource( "7" ) +material = SubResource("7") [sub_resource type="StandardMaterial3D" id="9"] albedo_color = Color(0.862745, 0.764706, 0.12549, 1) [sub_resource type="BoxMesh" id="10"] -material = SubResource( "9" ) +material = SubResource("9") [sub_resource type="StandardMaterial3D" id="11"] albedo_color = Color(0.996078, 0.266667, 0.25098, 1) [sub_resource type="BoxMesh" id="12"] -material = SubResource( "11" ) +material = SubResource("11") [sub_resource type="StandardMaterial3D" id="1"] albedo_color = Color(0.6, 0.564706, 0.423529, 1) [sub_resource type="BoxMesh" id="2"] -material = SubResource( "1" ) +material = SubResource("1") size = Vector3(16, 2, 16) [sub_resource type="StandardMaterial3D" id="3"] albedo_color = Color(0.788235, 0.788235, 0.788235, 1) [sub_resource type="BoxMesh" id="4"] -material = SubResource( "3" ) +material = SubResource("3") size = Vector3(4, 1.5, 4) [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_1hqbf"] @@ -46,83 +46,88 @@ sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) [sub_resource type="Sky" id="Sky_47fsp"] -sky_material = SubResource( "ProceduralSkyMaterial_1hqbf" ) +sky_material = SubResource("ProceduralSkyMaterial_1hqbf") [sub_resource type="Environment" id="Environment_ob0ys"] background_mode = 2 -sky = SubResource( "Sky_47fsp" ) -tonemap_mode = 2 -glow_enabled = true +sky = SubResource("Sky_47fsp") +tonemap_mode = 3 +tonemap_white = 6.0 [node name="Main" type="Node3D"] [node name="BlueCube" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, -5) -mesh = SubResource( "6" ) +mesh = SubResource("6") -[node name="WaypointAnchor" type="Position3D" parent="BlueCube"] +[node name="WaypointAnchor" type="Marker3D" parent="BlueCube"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) -[node name="Waypoint" parent="BlueCube/WaypointAnchor" instance=ExtResource( "2" )] +[node name="Waypoint" parent="BlueCube/WaypointAnchor" instance=ExtResource("2")] modulate = Color(0.501961, 0.764706, 1, 1) text = "Blue Waypoint" [node name="GreenCube" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 5, 0, 5) -mesh = SubResource( "8" ) +mesh = SubResource("8") -[node name="WaypointAnchor" type="Position3D" parent="GreenCube"] +[node name="WaypointAnchor" type="Marker3D" parent="GreenCube"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) -[node name="Waypoint" parent="GreenCube/WaypointAnchor" instance=ExtResource( "2" )] +[node name="Waypoint" parent="GreenCube/WaypointAnchor" instance=ExtResource("2")] modulate = Color(0.419608, 1, 0.427451, 1) text = "Green Waypoint" [node name="YellowCube" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, 5) -mesh = SubResource( "10" ) +mesh = SubResource("10") -[node name="WaypointAnchor" type="Position3D" parent="YellowCube"] +[node name="WaypointAnchor" type="Marker3D" parent="YellowCube"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) -[node name="Waypoint" parent="YellowCube/WaypointAnchor" instance=ExtResource( "2" )] +[node name="Waypoint" parent="YellowCube/WaypointAnchor" instance=ExtResource("2")] modulate = Color(1, 0.992157, 0.419608, 1) text = "Yellow Waypoint (non-sticky)" sticky = false [node name="RedCube" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -5, 0, -5) -mesh = SubResource( "12" ) +mesh = SubResource("12") -[node name="WaypointAnchor" type="Position3D" parent="RedCube"] +[node name="WaypointAnchor" type="Marker3D" parent="RedCube"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) -[node name="Waypoint" parent="RedCube/WaypointAnchor" instance=ExtResource( "2" )] +[node name="Waypoint" parent="RedCube/WaypointAnchor" instance=ExtResource("2")] modulate = Color(1, 0.466667, 0.427451, 1) text = "Red Waypoint" [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 8) -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Label" type="Label" parent="."] offset_left = 10.0 offset_top = 10.0 offset_right = 325.0 offset_bottom = 36.0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 3 +theme_override_font_sizes/font_size = 18 text = "Press Esc or F10 to toggle mouse capture" [node name="Ground" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -1.5, 0) -mesh = SubResource( "2" ) +mesh = SubResource("2") [node name="WhiteCube" type="MeshInstance3D" parent="."] -mesh = SubResource( "4" ) +mesh = SubResource("4") [node name="Environment" type="WorldEnvironment" parent="."] -environment = SubResource( "Environment_ob0ys" ) +environment = SubResource("Environment_ob0ys") [node name="Sun" type="DirectionalLight3D" parent="Environment"] transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866026, -0.5, 0.75, -0.433013, 0, 0, 0) shadow_enabled = true -directional_shadow_max_distance = 250.0 +shadow_bias = 0.04 +shadow_blur = 1.5 +directional_shadow_max_distance = 40.0 diff --git a/3d/waypoints/noto_sans_regular.ttf.import b/3d/waypoints/noto_sans_regular.ttf.import index 7ee4283e287..c99183d99d3 100644 --- a/3d/waypoints/noto_sans_regular.ttf.import +++ b/3d/waypoints/noto_sans_regular.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://bvthc4p0nqt1r" path="res://.godot/imported/noto_sans_regular.ttf-e8bec33260ad1aa067149f43e3e4ab21.fontdata" @@ -12,22 +12,21 @@ dest_files=["res://.godot/imported/noto_sans_regular.ttf-e8bec33260ad1aa067149f4 [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/3d/waypoints/project.godot b/3d/waypoints/project.godot index d150f0a9f08..efa34eb3db9 100644 --- a/3d/waypoints/project.godot +++ b/3d/waypoints/project.godot @@ -13,61 +13,60 @@ config_version=5 config/name="3D Waypoints" config/description="This is an example of displaying GUI elements such as Labels in a 3D world, without relying on viewports. This results in better readability and performance for use cases such as showing player names." run/main_scene="res://main.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [input] move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } move_back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.51, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } toggle_mouse_capture={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777253,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194341,"unicode":0,"echo":false,"script":null) ] } [rendering] +anti_aliasing/quality/msaa_3d=2 +anti_aliasing/quality/use_debanding=true quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false -quality/filters/msaa=2 environment/default_environment="res://default_env.tres" diff --git a/3d/waypoints/waypoint.gd b/3d/waypoints/waypoint.gd index b0c584cad8e..ca579be5f33 100644 --- a/3d/waypoints/waypoint.gd +++ b/3d/waypoints/waypoint.gd @@ -41,7 +41,7 @@ func _process(_delta): # Fade the waypoint when the camera gets close. var distance = camera_position.distance_to(parent_position) - modulate.a = clamp(range_lerp(distance, 0, 2, 0, 1), 0, 1 ) + modulate.a = clamp(remap(distance, 0, 2, 0, 1), 0, 1 ) var unprojected_position = camera.unproject_position(parent_position) # `get_size_override()` will return a valid size only if the stretch mode is `2d`. @@ -77,7 +77,7 @@ func _process(_delta): unprojected_position.x > viewport_base_size.x - MARGIN: var look = camera_transform.looking_at(parent_position, Vector3.UP) var diff = angle_diff(look.basis.get_euler().x, camera_transform.basis.get_euler().x) - unprojected_position.y = viewport_base_size.y * (0.5 + (diff / deg2rad(camera.fov))) + unprojected_position.y = viewport_base_size.y * (0.5 + (diff / deg_to_rad(camera.fov))) position = Vector2( clamp(unprojected_position.x, MARGIN, viewport_base_size.x - MARGIN), diff --git a/3d/waypoints/waypoint.svg.import b/3d/waypoints/waypoint.svg.import index 8dbb3a9da76..cd6f42089c0 100644 --- a/3d/waypoints/waypoint.svg.import +++ b/3d/waypoints/waypoint.svg.import @@ -29,6 +29,9 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/3d/waypoints/waypoint.tscn b/3d/waypoints/waypoint.tscn index 3554be17e96..dc11fff0a22 100644 --- a/3d/waypoints/waypoint.tscn +++ b/3d/waypoints/waypoint.tscn @@ -4,29 +4,25 @@ [ext_resource type="Texture2D" uid="uid://cgow8dqpnhb4h" path="res://waypoint.svg" id="2"] [node name="Waypoint" type="Control"] -script = ExtResource( "1" ) +layout_mode = 3 +anchors_preset = 0 +script = ExtResource("1") [node name="Label" type="Label" parent="."] offset_left = -200.0 -offset_top = -40.0 +offset_top = -44.0 offset_right = 200.0 -offset_bottom = -17.0 +offset_bottom = -15.0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 3 +theme_override_font_sizes/font_size = 18 text = "Waypoint" horizontal_alignment = 1 vertical_alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Marker" type="TextureRect" parent="."] offset_left = -8.0 offset_top = -16.0 offset_right = 8.0 -texture = ExtResource( "2" ) +texture = ExtResource("2") ignore_texture_size = true -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_anchors_": false, -"_edit_use_custom_anchors": false, -"_editor_description_": "An high-resolution texture is used and scaled down so the demo looks good at higher resolutions." -} diff --git a/README.md b/README.md index 04a4106456b..9c3807a03f1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,8 @@ be used with [Godot Engine](https://godotengine.org), the open source ## Godot versions -- The [`master`](https://github.com/godotengine/godot-demo-projects) branch is compatible with the latest Godot version (currently 4.0 alpha). +- The [`master`](https://github.com/godotengine/godot-demo-projects) branch is compatible with Godot's `3.x` branch. +- The [`4.0-dev`](https://github.com/godotengine/godot-demo-projects/tree/4.0-dev) branch is compatible with Godot's `master` branch (currently 4.0-beta). - If you are using an older version of Godot, use the appropriate branch for your Godot version: - [`3.4`](https://github.com/godotengine/godot-demo-projects/tree/3.4) diff --git a/audio/device_changer/Changer.tscn b/audio/device_changer/Changer.tscn index 4a352e81453..be2355687ef 100644 --- a/audio/device_changer/Changer.tscn +++ b/audio/device_changer/Changer.tscn @@ -4,32 +4,36 @@ [ext_resource type="AudioStream" uid="uid://k0y5fyud50c1" path="res://Intro.ogg" id="2"] [node name="Changer" type="Control"] -offset_right = 1023.0 -offset_bottom = 598.0 -script = ExtResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +layout_mode = 3 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -511.5 +offset_top = -299.0 +offset_right = 511.5 +offset_bottom = 299.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1") [node name="ItemList" type="ItemList" parent="."] +layout_mode = 0 offset_left = 57.0 offset_top = 33.0 offset_right = 960.0 offset_bottom = 228.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="DeviceInfo" type="Label" parent="."] +layout_mode = 0 offset_left = 321.0 offset_top = 248.0 offset_right = 660.0 offset_bottom = 284.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="SetDevice" type="Button" parent="."] +layout_mode = 0 offset_left = 425.723 offset_top = 309.733 offset_right = 556.723 @@ -37,6 +41,7 @@ offset_bottom = 354.733 text = "Set Device" [node name="PlayAudio" type="Button" parent="."] +layout_mode = 0 offset_left = 424.0 offset_top = 373.0 offset_right = 557.0 @@ -44,7 +49,7 @@ offset_bottom = 414.0 text = "Play Audio" [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] -stream = ExtResource( "2" ) +stream = ExtResource("2") volume_db = -6.0 [connection signal="button_down" from="SetDevice" to="." method="_on_Button_button_down"] diff --git a/audio/device_changer/Intro.ogg.import b/audio/device_changer/Intro.ogg.import index 28ebf64db41..ec3f18464c5 100644 --- a/audio/device_changer/Intro.ogg.import +++ b/audio/device_changer/Intro.ogg.import @@ -1,7 +1,7 @@ [remap] importer="oggvorbisstr" -type="AudioStreamOGGVorbis" +type="AudioStreamOggVorbis" uid="uid://k0y5fyud50c1" path="res://.godot/imported/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.oggvorbisstr" @@ -14,3 +14,6 @@ dest_files=["res://.godot/imported/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.og loop=true loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/audio/device_changer/icon.png.import b/audio/device_changer/icon.png.import index 9ae370f083f..9c894689bba 100644 --- a/audio/device_changer/icon.png.import +++ b/audio/device_changer/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/audio/device_changer/project.godot b/audio/device_changer/project.godot index 5c1cff0fa1e..67a188a6264 100644 --- a/audio/device_changer/project.godot +++ b/audio/device_changer/project.godot @@ -13,88 +13,96 @@ config_version=5 config/name="Audio Device Changer Demo" config/description="This is a demo showing how the audio output device can be changed from Godot." run/main_scene="res://Changer.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +run/low_processor_mode=true +config/icon="res://icon.png" + +[display] + +window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [input] ui_accept={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777221,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777222,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777221,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777222,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } ui_select={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } ui_cancel={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } ui_focus_next={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } ui_focus_prev={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } ui_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } ui_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } ui_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } ui_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } ui_page_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777235,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777235,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } ui_page_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777236,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777236,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } ui_home={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777229,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777229,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } ui_end={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777230,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777230,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } [rendering] +environment/defaults/default_clear_color=Color(0.2, 0.2, 0.2, 1) quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false diff --git a/audio/generator/generator.tscn b/audio/generator/generator.tscn index ce9998ffadf..68d3df89458 100644 --- a/audio/generator/generator.tscn +++ b/audio/generator/generator.tscn @@ -5,8 +5,79 @@ [sub_resource type="AudioStreamGenerator" id="AudioStreamGenerator_8tsrq"] [node name="Generator" type="Node"] -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Player" type="AudioStreamPlayer" parent="."] -stream = SubResource( "AudioStreamGenerator_8tsrq" ) +stream = SubResource("AudioStreamGenerator_8tsrq") +volume_db = -12.041 autoplay = true + +[node name="CenterContainer" type="VBoxContainer" parent="."] +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -200.0 +offset_top = -118.0 +offset_right = 200.0 +offset_bottom = 118.0 +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 15 + +[node name="FrequencyTitle" type="Label" parent="CenterContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.466667, 0.882353, 1, 1) +theme_override_font_sizes/font_size = 24 +text = "Generated Audio Frequency" + +[node name="Frequency" type="HBoxContainer" parent="CenterContainer"] +custom_minimum_size = Vector2(400, 0) +layout_mode = 2 +theme_override_constants/separation = 20 + +[node name="FrequencyLabel" type="Label" parent="CenterContainer/Frequency"] +unique_name_in_owner = true +layout_mode = 2 +text = "440 Hz" + +[node name="FrequencyHSlider" type="HSlider" parent="CenterContainer/Frequency"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +min_value = 100.0 +max_value = 1000.0 +value = 440.0 + +[node name="HSeparator" type="HSeparator" parent="CenterContainer"] +custom_minimum_size = Vector2(0, 20) +layout_mode = 2 + +[node name="VolumeTitle" type="Label" parent="CenterContainer"] +layout_mode = 2 +theme_override_colors/font_color = Color(0.466667, 0.882353, 1, 1) +theme_override_font_sizes/font_size = 24 +text = "Playback Volume" + +[node name="Volume" type="HBoxContainer" parent="CenterContainer"] +custom_minimum_size = Vector2(400, 0) +layout_mode = 2 +theme_override_constants/separation = 20 + +[node name="VolumeLabel" type="Label" parent="CenterContainer/Volume"] +unique_name_in_owner = true +layout_mode = 2 +text = "-12.04 dB" + +[node name="VolumeHSlider" type="HSlider" parent="CenterContainer/Volume"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +min_value = 0.001 +max_value = 1.0 +step = 0.001 +value = 0.25 + +[connection signal="value_changed" from="CenterContainer/Frequency/FrequencyHSlider" to="." method="_on_frequency_h_slider_value_changed"] +[connection signal="value_changed" from="CenterContainer/Volume/VolumeHSlider" to="." method="_on_volume_h_slider_value_changed"] diff --git a/audio/generator/generator_demo.gd b/audio/generator/generator_demo.gd index 68679e29eb1..0d7f9e72527 100644 --- a/audio/generator/generator_demo.gd +++ b/audio/generator/generator_demo.gd @@ -21,7 +21,21 @@ func _process(_delta): func _ready(): - $Player.stream.mix_rate = sample_hz # Setting mix rate is only possible before play(). - playback = $Player.get_stream_playback() - _fill_buffer() # Prefill, do before play() to avoid delay. + # Setting mix rate is only possible before play(). + $Player.stream.mix_rate = sample_hz $Player.play() + playback = $Player.get_stream_playback() + # `_fill_buffer` must be called *after* setting `playback`, + # as `fill_buffer` uses the `playback` member variable. + _fill_buffer() + + +func _on_frequency_h_slider_value_changed(value): + %FrequencyLabel.text = "%d Hz" % value + pulse_hz = value + + +func _on_volume_h_slider_value_changed(value): + # Use `linear_to_db()` to get a volume slider that matches perceptual human hearing. + %VolumeLabel.text = "%.2f dB" % linear_to_db(value) + $Player.volume_db = linear_to_db(value) diff --git a/audio/generator/project.godot b/audio/generator/project.godot index 8921044eeba..d23ea274d1c 100644 --- a/audio/generator/project.godot +++ b/audio/generator/project.godot @@ -16,9 +16,16 @@ play audio samples from GDScript. It plays a simple 440 Hz sine wave at 22050 Hz." run/main_scene="res://generator.tscn" config/features=PackedStringArray("4.0") +run/low_processor_mode=true + +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [rendering] +environment/defaults/default_clear_color=Color(0.12549, 0.12549, 0.12549, 1) quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false diff --git a/audio/mic_record/Intro.ogg.import b/audio/mic_record/Intro.ogg.import index ab05bf7bc04..0b738f73fca 100644 --- a/audio/mic_record/Intro.ogg.import +++ b/audio/mic_record/Intro.ogg.import @@ -1,7 +1,7 @@ [remap] importer="oggvorbisstr" -type="AudioStreamOGGVorbis" +type="AudioStreamOggVorbis" uid="uid://c2re52petqrvx" path="res://.godot/imported/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.oggvorbisstr" @@ -14,3 +14,6 @@ dest_files=["res://.godot/imported/Intro.ogg-dfe75727d0e47692e220adf97ddb7ad9.og loop=true loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/audio/mic_record/MicRecord.gd b/audio/mic_record/MicRecord.gd index 5b681bcba3e..d788c5cbfaf 100644 --- a/audio/mic_record/MicRecord.gd +++ b/audio/mic_record/MicRecord.gd @@ -33,12 +33,12 @@ func _on_RecordButton_pressed(): func _on_PlayButton_pressed(): - print("Recording: %s" % recording) - print("Format: %s" % recording.format) - print("Mix rate: %s" % recording.mix_rate) - print("Stereo: %s" % recording.stereo) + print_rich("\n[b]Playing recording:[/b] %s" % recording) + print_rich("[b]Format:[/b] %s" % ("8-bit uncompressed" if recording.format == 0 else "16-bit uncompressed" if recording.format == 1 else "IMA ADPCM compressed")) + print_rich("[b]Mix rate:[/b] %s Hz" % recording.mix_rate) + print_rich("[b]Stereo:[/b] %s" % ("Yes" if recording.stereo else "No")) var data = recording.get_data() - print("Size: %s" % data.size()) + print_rich("[b]Size:[/b] %s bytes" % data.size()) $AudioStreamPlayer.stream = recording $AudioStreamPlayer.play() @@ -77,11 +77,11 @@ func _on_MixRateOptionButton_item_selected(index: int) -> void: func _on_FormatOptionButton_item_selected(index: int) -> void: if index == 0: - format = AudioStreamSample.FORMAT_8_BITS + format = AudioStreamWAV.FORMAT_8_BITS elif index == 1: - format = AudioStreamSample.FORMAT_16_BITS + format = AudioStreamWAV.FORMAT_16_BITS elif index == 2: - format = AudioStreamSample.FORMAT_IMA_ADPCM + format = AudioStreamWAV.FORMAT_IMA_ADPCM if recording != null: recording.set_format(format) @@ -90,3 +90,7 @@ func _on_StereoCheckButton_toggled(button_pressed: bool) -> void: stereo = button_pressed if recording != null: recording.set_stereo(stereo) + + +func _on_open_user_folder_button_pressed(): + OS.shell_open(ProjectSettings.globalize_path("user://")) diff --git a/audio/mic_record/MicRecord.tscn b/audio/mic_record/MicRecord.tscn index 524e3231608..1881a3204b5 100644 --- a/audio/mic_record/MicRecord.tscn +++ b/audio/mic_record/MicRecord.tscn @@ -6,6 +6,8 @@ [sub_resource type="AudioStreamMicrophone" id="1"] [node name="MicRecord" type="Control"] +layout_mode = 3 +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -14,10 +16,10 @@ offset_left = -278.0 offset_top = -224.0 offset_right = 296.0 offset_bottom = 226.0 -script = ExtResource( "1" ) +script = ExtResource("1") [node name="AudioStreamRecord" type="AudioStreamPlayer" parent="."] -stream = SubResource( "1" ) +stream = SubResource("1") autoplay = true bus = &"Record" @@ -25,166 +27,134 @@ bus = &"Record" autoplay = true [node name="AudioStreamPlayer2" type="AudioStreamPlayer" parent="."] -stream = ExtResource( "2" ) +stream = ExtResource("2") volume_db = -6.0 [node name="Status" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 10 anchor_right = 1.0 offset_bottom = 26.0 text = "Status: " horizontal_alignment = 1 -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="RecordButton" type="Button" parent="."] -minimum_size = Vector2(130, 40) +layout_mode = 0 offset_left = 29.0 offset_top = 77.0 offset_right = 159.0 offset_bottom = 117.0 text = "Record" -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="PlayButton" type="Button" parent="."] -minimum_size = Vector2(130, 40) +layout_mode = 0 offset_left = 209.0 offset_top = 77.0 offset_right = 339.0 offset_bottom = 117.0 disabled = true text = "Play" -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="PlayMusic" type="Button" parent="."] -minimum_size = Vector2(130, 40) +layout_mode = 0 offset_left = 30.0 offset_top = 395.0 offset_right = 160.0 offset_bottom = 435.0 text = "Play Music" -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="FormatLabel" type="Label" parent="."] +layout_mode = 0 offset_left = 33.0 offset_top = 153.0 offset_right = 102.0 offset_bottom = 179.0 text = "Format:" -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="FormatOptionButton" type="OptionButton" parent="."] +layout_mode = 0 offset_left = 131.0 offset_top = 150.0 offset_right = 315.0 offset_bottom = 181.0 item_count = 3 selected = 1 -popup/item_0/text = "8 Bit audio codec" +popup/item_0/text = "8-bit Uncompressed" popup/item_0/id = 0 -popup/item_1/text = "16 Bit audio codec" +popup/item_1/text = "16-bit Uncompressed" popup/item_1/id = 1 popup/item_2/text = "IMA ADPCM Compression" popup/item_2/id = 2 -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="MixRateLabel" type="Label" parent="."] +layout_mode = 0 offset_left = 33.0 offset_top = 192.0 offset_right = 102.0 offset_bottom = 218.0 text = "Mix rate:" -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="MixRateOptionButton" type="OptionButton" parent="."] +layout_mode = 0 offset_left = 131.0 offset_top = 189.0 offset_right = 220.0 offset_bottom = 220.0 item_count = 6 selected = 4 -popup/item_0/text = "11025" +popup/item_0/text = "11025 Hz" popup/item_0/id = 0 -popup/item_1/text = "16000" +popup/item_1/text = "16000 Hz" popup/item_1/id = 1 -popup/item_2/text = "22050" +popup/item_2/text = "22050 Hz" popup/item_2/id = 2 -popup/item_3/text = "32000" +popup/item_3/text = "32000 Hz" popup/item_3/id = 3 -popup/item_4/text = "44100" +popup/item_4/text = "44100 Hz" popup/item_4/id = 4 -popup/item_5/text = "48000" +popup/item_5/text = "48000 Hz" popup/item_5/id = 5 -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="StereoLabel" type="Label" parent="."] +layout_mode = 0 offset_left = 33.0 offset_top = 233.0 offset_right = 102.0 offset_bottom = 259.0 text = "Stereo:" -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="StereoCheckButton" type="CheckButton" parent="."] +layout_mode = 0 offset_left = 126.0 offset_top = 233.0 offset_right = 170.0 offset_bottom = 264.0 button_pressed = true -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="SaveButton" type="Button" parent="."] -minimum_size = Vector2(130, 40) +layout_mode = 0 offset_left = 29.0 offset_top = 284.0 offset_right = 159.0 offset_bottom = 324.0 disabled = true text = "Save WAV To:" -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} [node name="Filename" type="LineEdit" parent="SaveButton"] +layout_mode = 0 offset_left = 180.0 offset_right = 507.0 offset_bottom = 40.0 text = "user://record.wav" caret_blink = true -caret_blink_speed = 0.5 -__meta__ = { -"_edit_layout_mode": 0, -"_edit_use_custom_anchors": false -} + +[node name="OpenUserFolderButton" type="Button" parent="."] +layout_mode = 1 +offset_left = 209.0 +offset_top = 334.0 +offset_right = 372.0 +offset_bottom = 374.0 +text = "Open User Folder" [connection signal="pressed" from="RecordButton" to="." method="_on_RecordButton_pressed"] [connection signal="pressed" from="PlayButton" to="." method="_on_PlayButton_pressed"] @@ -193,3 +163,4 @@ __meta__ = { [connection signal="item_selected" from="MixRateOptionButton" to="." method="_on_MixRateOptionButton_item_selected"] [connection signal="toggled" from="StereoCheckButton" to="." method="_on_StereoCheckButton_toggled"] [connection signal="pressed" from="SaveButton" to="." method="_on_SaveButton_pressed"] +[connection signal="pressed" from="OpenUserFolderButton" to="." method="_on_open_user_folder_button_pressed"] diff --git a/audio/mic_record/default_bus_layout.tres b/audio/mic_record/default_bus_layout.tres index c0dde17f963..b90cd5639ef 100644 --- a/audio/mic_record/default_bus_layout.tres +++ b/audio/mic_record/default_bus_layout.tres @@ -10,5 +10,5 @@ bus/1/mute = true bus/1/bypass_fx = false bus/1/volume_db = 0.0 bus/1/send = &"Master" -bus/1/effect/0/effect = SubResource( "AudioEffectRecord_fo272" ) +bus/1/effect/0/effect = SubResource("AudioEffectRecord_fo272") bus/1/effect/0/enabled = true diff --git a/audio/mic_record/icon.png.import b/audio/mic_record/icon.png.import index 2cdd7432dff..273c7dd94cc 100644 --- a/audio/mic_record/icon.png.import +++ b/audio/mic_record/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/audio/mic_record/project.godot b/audio/mic_record/project.godot index a8182056846..2f7aa8b90ba 100644 --- a/audio/mic_record/project.godot +++ b/audio/mic_record/project.godot @@ -14,8 +14,9 @@ config/name="Audio Mic Record Demo" config/description="This is an example showing how one can record audio from the microphone and later play it back or save it to a file." run/main_scene="res://MicRecord.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +run/low_processor_mode=true +config/icon="res://icon.png" [audio] @@ -26,6 +27,7 @@ enable_audio_input=true window/size/viewport_width=640 window/size/viewport_height=480 +window/vsync/vsync_mode=0 window/stretch/mode="canvas_items" window/stretch/aspect="expand" diff --git a/audio/midi_piano/project.godot b/audio/midi_piano/project.godot index 1a86e483011..56b0fb1909c 100644 --- a/audio/midi_piano/project.godot +++ b/audio/midi_piano/project.godot @@ -27,8 +27,8 @@ config/features=PackedStringArray("4.0") [display] -window/size/width=1280 -window/size/height=200 +window/size/viewport_width=1280 +window/size/viewport_height=200 [network] diff --git a/audio/spectrum/default_bus_layout.tres b/audio/spectrum/default_bus_layout.tres index 3a3213ea774..7da246c6ff0 100644 --- a/audio/spectrum/default_bus_layout.tres +++ b/audio/spectrum/default_bus_layout.tres @@ -1,8 +1,8 @@ [gd_resource type="AudioBusLayout" load_steps=2 format=3 uid="uid://byxtiup0hs2og"] -[sub_resource type="AudioEffectSpectrumAnalyzer" id="AudioEffectSpectrumAnalyzer_m7e3v"] +[sub_resource type="AudioEffectSpectrumAnalyzer" id="AudioEffectSpectrumAnalyzer_ihlsb"] resource_name = "SpectrumAnalyzer" [resource] -bus/0/effect/0/effect = SubResource( "AudioEffectSpectrumAnalyzer_m7e3v" ) +bus/0/effect/0/effect = SubResource("AudioEffectSpectrumAnalyzer_ihlsb") bus/0/effect/0/enabled = true diff --git a/audio/spectrum/icon.png.import b/audio/spectrum/icon.png.import index fcd4859479f..3ad0760a68d 100644 --- a/audio/spectrum/icon.png.import +++ b/audio/spectrum/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/audio/spectrum/maldita.ogg.import b/audio/spectrum/maldita.ogg.import index 27ea4fa27de..ea03df927be 100644 --- a/audio/spectrum/maldita.ogg.import +++ b/audio/spectrum/maldita.ogg.import @@ -1,7 +1,7 @@ [remap] importer="oggvorbisstr" -type="AudioStreamOGGVorbis" +type="AudioStreamOggVorbis" uid="uid://dl3ppges2sw77" path="res://.godot/imported/maldita.ogg-16f33b83786e8d938ac9e0b887e47ec6.oggvorbisstr" @@ -14,3 +14,6 @@ dest_files=["res://.godot/imported/maldita.ogg-16f33b83786e8d938ac9e0b887e47ec6. loop=true loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/audio/spectrum/project.godot b/audio/spectrum/project.godot index 1b63c21697a..dd3cd57f6d6 100644 --- a/audio/spectrum/project.godot +++ b/audio/spectrum/project.godot @@ -13,11 +13,19 @@ config_version=5 config/name="Audio Spectrum Demo" config/description="This is a demo showing how a spectrum analyzer can be built using Godot." run/main_scene="res://show_spectrum.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +run/low_processor_mode=true +config/icon="res://icon.png" + +[display] + +window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [rendering] +environment/defaults/default_clear_color=Color(0.12549, 0.12549, 0.12549, 1) quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false diff --git a/audio/spectrum/show_spectrum.gd b/audio/spectrum/show_spectrum.gd index 03d5da6a320..d52f0e82692 100644 --- a/audio/spectrum/show_spectrum.gd +++ b/audio/spectrum/show_spectrum.gd @@ -3,8 +3,8 @@ extends Node2D const VU_COUNT = 16 const FREQ_MAX = 11050.0 -const WIDTH = 400 -const HEIGHT = 100 +const WIDTH = 800 +const HEIGHT = 200 const MIN_DB = 60 @@ -14,17 +14,28 @@ func _draw(): @warning_ignore(integer_division) var w = WIDTH / VU_COUNT var prev_hz = 0 - for i in range(1, VU_COUNT+1): - var hz = i * FREQ_MAX / VU_COUNT; - var magnitude: float = spectrum.get_magnitude_for_frequency_range(prev_hz, hz).length() - var energy = clamp((MIN_DB + linear2db(magnitude)) / MIN_DB, 0, 1) + for i in range(1, VU_COUNT + 1): + var hz = i * FREQ_MAX / VU_COUNT + var magnitude = spectrum.get_magnitude_for_frequency_range(prev_hz, hz).length() + var energy = clampf((MIN_DB + linear_to_db(magnitude)) / MIN_DB, 0, 1) var height = energy * HEIGHT - draw_rect(Rect2(w * i, HEIGHT - height, w, height), Color.WHITE) + draw_rect( + Rect2(w * i, HEIGHT - height, w - 2, height), + Color.from_hsv(float(VU_COUNT * 0.6 + i * 0.5) / VU_COUNT, 0.5, 0.6) + ) + draw_line( + Vector2(w * i, HEIGHT - height), + Vector2(w * i + w - 2, HEIGHT - height), + Color.from_hsv(float(VU_COUNT * 0.6 + i * 0.5) / VU_COUNT, 0.5, 1.0), + 2.0, + true + ) prev_hz = hz func _process(_delta): - update() + # Sound plays back continuously, so the graph needs to be updated every frame. + queue_redraw() func _ready(): diff --git a/audio/spectrum/show_spectrum.tscn b/audio/spectrum/show_spectrum.tscn index ff4334dce22..2a86ec55d47 100644 --- a/audio/spectrum/show_spectrum.tscn +++ b/audio/spectrum/show_spectrum.tscn @@ -4,8 +4,13 @@ [ext_resource type="AudioStream" uid="uid://dl3ppges2sw77" path="res://maldita.ogg" id="2"] [node name="ShowSpectrum" type="Node2D"] -script = ExtResource( "1" ) +position = Vector2(136, 224) +script = ExtResource("1") [node name="Player" type="AudioStreamPlayer" parent="."] -stream = ExtResource( "2" ) +stream = ExtResource("2") autoplay = true + +[node name="Camera2D" type="Camera2D" parent="."] +offset = Vector2(440, 100) +current = true diff --git a/gui/drag_and_drop/project.godot b/gui/drag_and_drop/project.godot index df80ade9fcf..1d174f8867c 100644 --- a/gui/drag_and_drop/project.godot +++ b/gui/drag_and_drop/project.godot @@ -20,16 +20,5 @@ config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/gui/gd_paint/tools_panel.gd b/gui/gd_paint/tools_panel.gd index b7989665a44..9d3701433f6 100644 --- a/gui/gd_paint/tools_panel.gd +++ b/gui/gd_paint/tools_panel.gd @@ -11,27 +11,26 @@ extends Panel @onready var paint_control = _parent.get_node(^"PaintControl") func _ready(): - # warning-ignore-all:return_value_discarded # Assign all of the needed signals for the oppersation buttons. - $ButtonUndo.connect(&"pressed", self.button_pressed, ["undo_stroke"]) - $ButtonSave.connect(&"pressed", self.button_pressed, ["save_picture"]) - $ButtonClear.connect(&"pressed", self.button_pressed, ["clear_picture"]) + $ButtonUndo.pressed.connect(self.button_pressed.bind("undo_stroke")) + $ButtonSave.pressed.connect(self.button_pressed.bind("save_picture")) + $ButtonClear.pressed.connect(self.button_pressed.bind("clear_picture")) # Assign all of the needed signals for the brush buttons. - $ButtonToolPencil.connect(&"pressed", self.button_pressed, ["mode_pencil"]) - $ButtonToolEraser.connect(&"pressed", self.button_pressed, ["mode_eraser"]) - $ButtonToolRectangle.connect(&"pressed", self.button_pressed, ["mode_rectangle"]) - $ButtonToolCircle.connect(&"pressed", self.button_pressed, ["mode_circle"]) - $BrushSettings/ButtonShapeBox.connect(&"pressed", self.button_pressed, ["shape_rectangle"]) - $BrushSettings/ButtonShapeCircle.connect(&"pressed", self.button_pressed, ["shape_circle"]) + $ButtonToolPencil.pressed.connect(self.button_pressed.bind("mode_pencil")) + $ButtonToolEraser.pressed.connect(self.button_pressed.bind("mode_eraser")) + $ButtonToolRectangle.pressed.connect(self.button_pressed.bind("mode_rectangle")) + $ButtonToolCircle.pressed.connect(self.button_pressed.bind("mode_circle")) + $BrushSettings/ButtonShapeBox.pressed.connect(self.button_pressed.bind("shape_rectangle")) + $BrushSettings/ButtonShapeCircle.pressed.connect(self.button_pressed.bind("shape_circle")) # Assign all of the needed signals for the other brush settings (and ColorPickerBackground). - $ColorPickerBrush.connect(&"color_changed", self.brush_color_changed) - $ColorPickerBackground.connect(&"color_changed", self.background_color_changed) - $BrushSettings/HScrollBarBrushSize.connect(&"value_changed", self.brush_size_changed) + $ColorPickerBrush.color_changed.connect(self.brush_color_changed) + $ColorPickerBackground.color_changed.connect(self.background_color_changed) + $BrushSettings/HScrollBarBrushSize.value_changed.connect(self.brush_size_changed) # Assign the "file_selected" signal in SaveFileDialog. - save_dialog.connect(&"file_selected", self.save_file_selected) + save_dialog.file_selected.connect(self.save_file_selected) # Set physics process so we can update the status label. set_physics_process(true) diff --git a/gui/input_mapping/project.godot b/gui/input_mapping/project.godot index 330d9caf4f1..6658ffe7964 100644 --- a/gui/input_mapping/project.godot +++ b/gui/input_mapping/project.godot @@ -31,10 +31,6 @@ window/size/viewport_height=480 window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - [input] move_right={ diff --git a/gui/msdf_font/README.md b/gui/msdf_font/README.md new file mode 100644 index 00000000000..c8e550d3f63 --- /dev/null +++ b/gui/msdf_font/README.md @@ -0,0 +1,18 @@ +# Multi-channel Signed Distance Field Font Demo + +This is a demo of Multi-channel Signed Distance Field fonts in Godot. +The technique used allows the text to remain clear under arbitrary zooms and rotations. + +The *multi-channel* part refers to the font texture being generated in a way that allows +for higher precision when rendering the font. This allows MSDF fonts to be more readable +at small font sizes compared to single-channel signed distance field fonts. + +Language: This demo contains no code. + +Renderer: Forward Mobile + +Check out this demo on the asset library: https://godotengine.org/asset-library/asset/521 + +## Screenshots + +![Screenshot](screenshots/sdf.webp) diff --git a/gui/sdf_font/icon.png b/gui/msdf_font/icon.png similarity index 100% rename from gui/sdf_font/icon.png rename to gui/msdf_font/icon.png diff --git a/2d/hdr/icon.png.import b/gui/msdf_font/icon.png.import similarity index 56% rename from 2d/hdr/icon.png.import rename to gui/msdf_font/icon.png.import index 889af9df580..a44356af019 100644 --- a/2d/hdr/icon.png.import +++ b/gui/msdf_font/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://ce2yhmi8xvw3u" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/gui/msdf_font/montserrat_semibold.ttf b/gui/msdf_font/montserrat_semibold.ttf new file mode 100644 index 00000000000..0ecc66708ec Binary files /dev/null and b/gui/msdf_font/montserrat_semibold.ttf differ diff --git a/gui/msdf_font/montserrat_semibold.ttf.import b/gui/msdf_font/montserrat_semibold.ttf.import new file mode 100644 index 00000000000..f60d2302e23 --- /dev/null +++ b/gui/msdf_font/montserrat_semibold.ttf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://bq4xy4dnuucra" +path="res://.godot/imported/montserrat_semibold.ttf-82447902655912d350b40072a5c89861.fontdata" + +[deps] + +source_file="res://montserrat_semibold.ttf" +dest_files=["res://.godot/imported/montserrat_semibold.ttf-82447902655912d350b40072a5c89861.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=false +msdf_pixel_range=8 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/msdf_font/montserrat_semibold_msdf.ttf b/gui/msdf_font/montserrat_semibold_msdf.ttf new file mode 100644 index 00000000000..0ecc66708ec Binary files /dev/null and b/gui/msdf_font/montserrat_semibold_msdf.ttf differ diff --git a/gui/msdf_font/montserrat_semibold_msdf.ttf.import b/gui/msdf_font/montserrat_semibold_msdf.ttf.import new file mode 100644 index 00000000000..76029a3a53e --- /dev/null +++ b/gui/msdf_font/montserrat_semibold_msdf.ttf.import @@ -0,0 +1,33 @@ +[remap] + +importer="font_data_dynamic" +type="FontFile" +uid="uid://j0vum3eyhewy" +path="res://.godot/imported/montserrat_semibold_msdf.ttf-3d4d7c8ca9f6b67f9698cf3e8bf1519e.fontdata" + +[deps] + +source_file="res://montserrat_semibold_msdf.ttf" +dest_files=["res://.godot/imported/montserrat_semibold_msdf.ttf-3d4d7c8ca9f6b67f9698cf3e8bf1519e.fontdata"] + +[params] + +Rendering=null +antialiasing=1 +generate_mipmaps=false +multichannel_signed_distance_field=true +msdf_pixel_range=10 +msdf_size=48 +allow_system_fallback=true +force_autohinter=false +hinting=1 +subpixel_positioning=1 +oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null +compress=true +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/msdf_font/project.godot b/gui/msdf_font/project.godot new file mode 100644 index 00000000000..fb01d61e159 --- /dev/null +++ b/gui/msdf_font/project.godot @@ -0,0 +1,40 @@ +; Engine configuration file. +; It's best edited using the editor UI and not directly, +; since the parameters that go here are not all obvious. +; +; Format: +; [section] ; section goes between [] +; param=value ; assign values to parameters + +config_version=5 + +[application] + +config/name="Multi-channel Signed Distance Field Font Demo" +config/description="This is a demo of Signed Distance Field fonts in Godot. +The technique used allows the text to remain clear under arbitrary zooms and rotations. + +The multi-channel part refers to the font texture being generated in a way that allows +for higher precision when rendering the font. This allows MSDF fonts to be more readable +at small font sizes compared to single-channel signed distance field fonts." +run/main_scene="res://sdf_font_demo.tscn" +config/features=PackedStringArray("4.0") +config/icon="res://icon.png" + +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + +[input] + +toggle_msdf_font={ +"deadzone": 0.5, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +] +} + +[rendering] + +renderer/rendering_method="mobile" +environment/defaults/default_clear_color=Color(0.180392, 0.117647, 0.152941, 1) diff --git a/gui/sdf_font/screenshots/.gdignore b/gui/msdf_font/screenshots/.gdignore similarity index 100% rename from gui/sdf_font/screenshots/.gdignore rename to gui/msdf_font/screenshots/.gdignore diff --git a/gui/msdf_font/screenshots/sdf.webp b/gui/msdf_font/screenshots/sdf.webp new file mode 100644 index 00000000000..75ea662fd41 Binary files /dev/null and b/gui/msdf_font/screenshots/sdf.webp differ diff --git a/gui/msdf_font/sdf_font_demo.gd b/gui/msdf_font/sdf_font_demo.gd new file mode 100644 index 00000000000..3da88d462b9 --- /dev/null +++ b/gui/msdf_font/sdf_font_demo.gd @@ -0,0 +1,21 @@ +extends Control + + + +func _input(event): + if event.is_action_pressed("toggle_msdf_font"): + if %FontLabel.get_theme_font("font").multichannel_signed_distance_field: + %FontLabel.add_theme_font_override("font", preload("res://montserrat_semibold.ttf")) + else: + %FontLabel.add_theme_font_override("font", preload("res://montserrat_semibold_msdf.ttf")) + + update_label() + + +func update_label(): + %FontMode.text = "Font rendering: %s" % ("MSDF" if %FontLabel.get_theme_font("font").multichannel_signed_distance_field else "Traditional") + + +func _on_outline_size_value_changed(value): + %FontLabel.add_theme_constant_override("outline_size", int(value)) + %Value.text = str(value) diff --git a/gui/msdf_font/sdf_font_demo.tscn b/gui/msdf_font/sdf_font_demo.tscn new file mode 100644 index 00000000000..d973304d35f --- /dev/null +++ b/gui/msdf_font/sdf_font_demo.tscn @@ -0,0 +1,149 @@ +[gd_scene load_steps=7 format=3 uid="uid://c50snxy83byec"] + +[ext_resource type="Script" path="res://sdf_font_demo.gd" id="1_05k3u"] +[ext_resource type="FontFile" uid="uid://j0vum3eyhewy" path="res://montserrat_semibold_msdf.ttf" id="1_eart1"] + +[sub_resource type="Animation" id="1"] +length = 15.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:rotation") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 15), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [0.0, -6.28319] +} + +[sub_resource type="Animation" id="2"] +length = 10.0 +loop_mode = 1 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:scale") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 5), +"transitions": PackedFloat32Array(-2, -2), +"update": 0, +"values": [Vector2(1, 1), Vector2(7, 7)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_88vp7"] +_data = { +"rotate": SubResource("1"), +"zoomin_zoomout": SubResource("2") +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_j5dlp"] +_data = { +"zoomin_zoomout": SubResource("2") +} + +[node name="SDFFontDemo" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_05k3u") + +[node name="Panel" type="Panel" parent="."] +layout_mode = 0 +offset_right = 285.0 +offset_bottom = 107.0 + +[node name="FontMode" type="Label" parent="."] +unique_name_in_owner = true +layout_mode = 1 +offset_left = 16.0 +offset_top = 16.0 +offset_right = 218.0 +offset_bottom = 68.0 +text = "Font rendering: MSDF" + +[node name="OutlineSize" type="HBoxContainer" parent="."] +layout_mode = 0 +offset_left = 16.0 +offset_top = 56.0 +offset_right = 286.0 +offset_bottom = 96.0 +theme_override_constants/separation = 8 + +[node name="Label" type="Label" parent="OutlineSize"] +layout_mode = 2 +text = "Outline size:" + +[node name="HSlider" type="HSlider" parent="OutlineSize"] +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_vertical = 1 +max_value = 20.0 +value = 5.0 + +[node name="Value" type="Label" parent="OutlineSize"] +unique_name_in_owner = true +layout_mode = 2 +size_flags_horizontal = 3 +size_flags_stretch_ratio = 0.23 +text = "5" + +[node name="Help" type="Label" parent="."] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_left = 16.0 +offset_top = -42.0 +offset_right = 439.0 +offset_bottom = -16.0 +grow_vertical = 0 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 4 +text = "S: Toggle between traditional and MSDF font rendering" + +[node name="CenterContainer" type="CenterContainer" parent="."] +layout_mode = 0 +offset_left = 576.0 +offset_top = 324.0 +offset_right = 576.0 +offset_bottom = 324.0 + +[node name="Base" type="Control" parent="CenterContainer"] +layout_mode = 2 + +[node name="Rotate" type="AnimationPlayer" parent="CenterContainer/Base"] +autoplay = "rotate" +libraries = { +"": SubResource("AnimationLibrary_88vp7") +} + +[node name="Zoom" type="AnimationPlayer" parent="CenterContainer/Base"] +autoplay = "zoomin_zoomout" +libraries = { +"": SubResource("AnimationLibrary_j5dlp") +} + +[node name="FontLabel" type="Label" parent="CenterContainer/Base"] +unique_name_in_owner = true +z_index = -1 +layout_mode = 0 +offset_left = -128.0 +offset_top = -50.0 +offset_right = 128.0 +offset_bottom = 51.0 +theme_override_colors/font_outline_color = Color(0.831373, 0.384314, 0.109804, 1) +theme_override_constants/outline_size = 5 +theme_override_fonts/font = ExtResource("1_eart1") +text = "Font rendering example +0123456789 +!@#$%^&*()_+-=" + +[connection signal="value_changed" from="OutlineSize/HSlider" to="." method="_on_outline_size_value_changed"] diff --git a/gui/multiple_resolutions/main.gd b/gui/multiple_resolutions/main.gd index a53cbc791ee..3cf9b734345 100644 --- a/gui/multiple_resolutions/main.gd +++ b/gui/multiple_resolutions/main.gd @@ -23,8 +23,7 @@ func _ready(): # The `resized` signal will be emitted when the window size changes, as the root Control node # is resized whenever the window size changes. This is because the root Control node # uses a Full Rect anchor, so its size will always be equal to the window size. - # warning-ignore:return_value_discarded - connect("resized", self._on_resized) + resized.connect(self._on_resized) update_container() diff --git a/gui/multiple_resolutions/project.godot b/gui/multiple_resolutions/project.godot index 6cda88a0f96..c6865f127ca 100644 --- a/gui/multiple_resolutions/project.godot +++ b/gui/multiple_resolutions/project.godot @@ -37,8 +37,8 @@ config/features=PackedStringArray("4.0") window/handheld/orientation="sensor" window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/size/width=648 -window/size/height=648 +window/size/viewport_width=648 +window/size/viewport_height=648 window/size/test_width=1152 window/size/test_height=648 diff --git a/gui/regex/project.godot b/gui/regex/project.godot index 3126bcc8a2a..40838940437 100644 --- a/gui/regex/project.godot +++ b/gui/regex/project.godot @@ -18,16 +18,5 @@ config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/gui/rich_text_bbcode/project.godot b/gui/rich_text_bbcode/project.godot index 2b62e54f982..0cc69cc1cf9 100644 --- a/gui/rich_text_bbcode/project.godot +++ b/gui/rich_text_bbcode/project.godot @@ -17,21 +17,13 @@ config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - [memory] multithread/thread_rid_pool_prealloc=60 [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.145098, 0.145098, 0.164706, 1) +environment/defaults/default_clear_color=Color(0.145098, 0.145098, 0.164706, 1) diff --git a/gui/sdf_font/README.md b/gui/sdf_font/README.md deleted file mode 100644 index c8541ed74ba..00000000000 --- a/gui/sdf_font/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# SDF Font - -This is a demo of Signed Distance Field fonts in Godot. -The technique used allows the text to remain clear -under arbitrary zooms and rotations. - -Language: This demo contains no code. - -Renderer: GLES 3 (this effect is not available in GLES 2) - -Check out this demo on the asset library: https://godotengine.org/asset-library/asset/521 - -## Screenshots - -![Screenshot](screenshots/sdf.png) diff --git a/gui/sdf_font/font.font b/gui/sdf_font/font.font deleted file mode 100644 index 5650d7201e9..00000000000 Binary files a/gui/sdf_font/font.font and /dev/null differ diff --git a/gui/sdf_font/project.godot b/gui/sdf_font/project.godot deleted file mode 100644 index 6fb5c1f018d..00000000000 --- a/gui/sdf_font/project.godot +++ /dev/null @@ -1,32 +0,0 @@ -; Engine configuration file. -; It's best edited using the editor UI and not directly, -; since the parameters that go here are not all obvious. -; -; Format: -; [section] ; section goes between [] -; param=value ; assign values to parameters - -config_version=4 - -[application] - -config/name="Signed Distance Field Font Demo" -config/description="This is a demo of Signed Distance Field fonts in Godot. -The technique used allows the text to remain clear -under arbitrary zooms and rotations." -run/main_scene="res://sdf_font_demo.tscn" -config/icon="res://icon.png" - -[display] - -window/dpi/allow_hidpi=true -window/stretch/mode="2d" -window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -environment/default_clear_color=Color(0.18, 0.1188, 0.15348, 1) diff --git a/gui/sdf_font/screenshots/sdf.png b/gui/sdf_font/screenshots/sdf.png deleted file mode 100644 index 76d5a031a64..00000000000 Binary files a/gui/sdf_font/screenshots/sdf.png and /dev/null differ diff --git a/gui/sdf_font/sdf_font_demo.tscn b/gui/sdf_font/sdf_font_demo.tscn deleted file mode 100644 index 184de5dcb93..00000000000 --- a/gui/sdf_font/sdf_font_demo.tscn +++ /dev/null @@ -1,72 +0,0 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://font.font" type="Font" id=1] - -[sub_resource type="Animation" id=1] -length = 15.0 -loop = true -tracks/0/type = "value" -tracks/0/path = NodePath(".:rotation") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 15), -"transitions": PackedFloat32Array(1, 1), -"update": 0, -"values": [0.0, -360.0] -} - -[sub_resource type="Animation" id=2] -length = 10.0 -loop = true -tracks/0/type = "value" -tracks/0/path = NodePath(".:rect_scale") -tracks/0/interp = 1 -tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true -tracks/0/keys = { -"times": PackedFloat32Array(0, 5), -"transitions": PackedFloat32Array(-2, -2), -"update": 0, -"values": [Vector2(1, 1), Vector2(7, 7)] -} - -[node name="SDFFontDemo" type="CenterContainer"] -anchor_right = 1.0 -anchor_bottom = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="Base" type="Control" parent="."] -offset_left = 512.0 -offset_top = 300.0 -offset_right = 512.0 -offset_bottom = 300.0 - -[node name="Rotate" type="AnimationPlayer" parent="Base"] -autoplay = "rotate" -anims/rotate = SubResource( 1 ) -anims/zoomin_zoomout = SubResource( 2 ) - -[node name="Zoom" type="AnimationPlayer" parent="Base"] -autoplay = "zoomin_zoomout" -anims/zoomin_zoomout = SubResource( 2 ) - -[node name="TextLabel" type="Label" parent="Base"] -offset_left = -128.0 -offset_top = -50.0 -offset_right = 128.0 -offset_bottom = 51.0 -custom_colors/font_color = Color(0.853858, 0.771714, 0.753746, 1) -custom_colors/font_color_shadow = Color(0.56592, 0.454525, 0.518426, 1) -custom_fonts/font = ExtResource( 1 ) -text = "Signed Distance -Field Font!!" -align = 1 -__meta__ = { -"_edit_use_anchors_": false -} diff --git a/gui/theming_override/project.godot b/gui/theming_override/project.godot index 923a2e6bedc..f9d8880e374 100644 --- a/gui/theming_override/project.godot +++ b/gui/theming_override/project.godot @@ -17,14 +17,10 @@ config/icon="res://icon.png" [display] -window/size/height=576 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_height=576 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1) +environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1) diff --git a/gui/translation/project.godot b/gui/translation/project.godot index 5d44a76da09..c4a15e53ff5 100644 --- a/gui/translation/project.godot +++ b/gui/translation/project.godot @@ -22,10 +22,6 @@ config/features=PackedStringArray("4.0") window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - [internationalization] locale/translations=PackedStringArray("res://text.en.translation", "res://text.es.translation", "res://text.ja.translation") diff --git a/loading/autoload/project.godot b/loading/autoload/project.godot index 342d7601892..f61a47f741a 100644 --- a/loading/autoload/project.godot +++ b/loading/autoload/project.godot @@ -23,6 +23,8 @@ global="*res://global.gd" [display] window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [rendering] diff --git a/loading/autoload/scene_a.tscn b/loading/autoload/scene_a.tscn index 902afa35d25..7670cc89925 100644 --- a/loading/autoload/scene_a.tscn +++ b/loading/autoload/scene_a.tscn @@ -25,10 +25,12 @@ text = "This is scene A." layout_mode = 0 offset_left = 64.0 offset_top = 128.0 -offset_right = 192.0 -offset_bottom = 160.0 +offset_right = 277.0 +offset_bottom = 182.0 size_flags_horizontal = 2 size_flags_vertical = 2 +theme_override_colors/font_color = Color(0.945098, 1, 0.556863, 1) +theme_override_font_sizes/font_size = 24 text = "Go to Scene B" [connection signal="pressed" from="GoToSceneB" to="." method="_on_goto_scene_pressed"] diff --git a/loading/autoload/scene_b.tscn b/loading/autoload/scene_b.tscn index 62c1f2a99c5..3894a326069 100644 --- a/loading/autoload/scene_b.tscn +++ b/loading/autoload/scene_b.tscn @@ -13,7 +13,6 @@ size_flags_vertical = 2 script = ExtResource("1") [node name="Label" type="Label" parent="."] -layout_mode = 0 offset_left = 64.0 offset_top = 48.0 offset_right = 164.0 @@ -22,13 +21,14 @@ size_flags_vertical = 0 text = "This is scene B." [node name="GoToSceneA" type="Button" parent="."] -layout_mode = 0 offset_left = 64.0 offset_top = 128.0 -offset_right = 192.0 -offset_bottom = 160.0 +offset_right = 277.0 +offset_bottom = 182.0 size_flags_horizontal = 2 size_flags_vertical = 2 +theme_override_colors/font_color = Color(0.458824, 0.776471, 1, 1) +theme_override_font_sizes/font_size = 24 text = "Go to Scene A" [connection signal="pressed" from="GoToSceneA" to="." method="_on_goto_scene_pressed"] diff --git a/loading/load_threaded/load_threaded.tscn b/loading/load_threaded/load_threaded.tscn index 975566bd41d..d871add33e1 100644 --- a/loading/load_threaded/load_threaded.tscn +++ b/loading/load_threaded/load_threaded.tscn @@ -15,36 +15,42 @@ layout_mode = 2 size_flags_vertical = 3 [node name="Babel" type="TextureRect" parent="Paintings"] +texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 ignore_texture_size = true stretch_mode = 5 [node name="LasMeninas" type="TextureRect" parent="Paintings"] +texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 ignore_texture_size = true stretch_mode = 5 [node name="MonaLisa" type="TextureRect" parent="Paintings"] +texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 ignore_texture_size = true stretch_mode = 5 [node name="OldGuitarist" type="TextureRect" parent="Paintings"] +texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 ignore_texture_size = true stretch_mode = 5 [node name="Parasol" type="TextureRect" parent="Paintings"] +texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 ignore_texture_size = true stretch_mode = 5 [node name="Swing" type="TextureRect" parent="Paintings"] +texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 ignore_texture_size = true diff --git a/loading/load_threaded/paintings/painting_babel.jpg.import b/loading/load_threaded/paintings/painting_babel.jpg.import index f195b42baa6..df4668d4810 100644 --- a/loading/load_threaded/paintings/painting_babel.jpg.import +++ b/loading/load_threaded/paintings/painting_babel.jpg.import @@ -21,7 +21,7 @@ compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" diff --git a/loading/load_threaded/paintings/painting_las_meninas.png.import b/loading/load_threaded/paintings/painting_las_meninas.png.import index fdc660d6b7f..7f65e7d380b 100644 --- a/loading/load_threaded/paintings/painting_las_meninas.png.import +++ b/loading/load_threaded/paintings/painting_las_meninas.png.import @@ -21,7 +21,7 @@ compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" diff --git a/loading/load_threaded/paintings/painting_mona_lisa.jpg.import b/loading/load_threaded/paintings/painting_mona_lisa.jpg.import index a59de2652d2..2628cbf6d95 100644 --- a/loading/load_threaded/paintings/painting_mona_lisa.jpg.import +++ b/loading/load_threaded/paintings/painting_mona_lisa.jpg.import @@ -21,7 +21,7 @@ compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" diff --git a/loading/load_threaded/paintings/painting_old_guitarist.jpg.import b/loading/load_threaded/paintings/painting_old_guitarist.jpg.import index fee40f46bd0..c74ad9b2579 100644 --- a/loading/load_threaded/paintings/painting_old_guitarist.jpg.import +++ b/loading/load_threaded/paintings/painting_old_guitarist.jpg.import @@ -21,7 +21,7 @@ compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" diff --git a/loading/load_threaded/paintings/painting_parasol.jpg.import b/loading/load_threaded/paintings/painting_parasol.jpg.import index b5a33b510b8..1e66ba976a1 100644 --- a/loading/load_threaded/paintings/painting_parasol.jpg.import +++ b/loading/load_threaded/paintings/painting_parasol.jpg.import @@ -21,7 +21,7 @@ compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" diff --git a/loading/load_threaded/paintings/painting_the_swing.jpg.import b/loading/load_threaded/paintings/painting_the_swing.jpg.import index 23877d59392..f3b78b7885e 100644 --- a/loading/load_threaded/paintings/painting_the_swing.jpg.import +++ b/loading/load_threaded/paintings/painting_the_swing.jpg.import @@ -21,7 +21,7 @@ compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -mipmaps/generate=false +mipmaps/generate=true mipmaps/limit=-1 roughness/mode=0 roughness/src_normal="" diff --git a/loading/scene_changer/project.godot b/loading/scene_changer/project.godot index 1bffa3d1b91..1bcc395374f 100644 --- a/loading/scene_changer/project.godot +++ b/loading/scene_changer/project.godot @@ -17,13 +17,11 @@ config/features=PackedStringArray("4.0") run/low_processor_mode=true config/icon="res://icon.svg" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [rendering] diff --git a/loading/scene_changer/scene_a.tscn b/loading/scene_changer/scene_a.tscn index 5f56ef168ff..0e075d97433 100644 --- a/loading/scene_changer/scene_a.tscn +++ b/loading/scene_changer/scene_a.tscn @@ -13,7 +13,6 @@ size_flags_vertical = 2 script = ExtResource("1") [node name="Label" type="Label" parent="."] -layout_mode = 0 offset_left = 64.0 offset_top = 48.0 offset_right = 104.0 @@ -22,13 +21,14 @@ size_flags_vertical = 0 text = "This is scene A." [node name="GoToScene" type="Button" parent="."] -layout_mode = 0 offset_left = 64.0 offset_top = 128.0 -offset_right = 192.0 -offset_bottom = 160.0 +offset_right = 277.0 +offset_bottom = 182.0 size_flags_horizontal = 2 size_flags_vertical = 2 +theme_override_colors/font_color = Color(0.639216, 1, 0.639216, 1) +theme_override_font_sizes/font_size = 24 text = "Go to Scene B" [connection signal="pressed" from="GoToScene" to="." method="_on_goto_scene_pressed"] diff --git a/loading/scene_changer/scene_b.tscn b/loading/scene_changer/scene_b.tscn index e3b4110f93d..57784b6aa32 100644 --- a/loading/scene_changer/scene_b.tscn +++ b/loading/scene_changer/scene_b.tscn @@ -25,10 +25,12 @@ text = "This is scene B." layout_mode = 0 offset_left = 64.0 offset_top = 128.0 -offset_right = 192.0 -offset_bottom = 160.0 +offset_right = 277.0 +offset_bottom = 182.0 size_flags_horizontal = 2 size_flags_vertical = 2 +theme_override_colors/font_color = Color(0.905882, 0.627451, 0.984314, 1) +theme_override_font_sizes/font_size = 24 text = "Go to Scene A" [connection signal="pressed" from="GoToScene" to="." method="_on_goto_scene_pressed"] diff --git a/loading/serialization/project.godot b/loading/serialization/project.godot index bd6c1109349..ad1adc18c26 100644 --- a/loading/serialization/project.godot +++ b/loading/serialization/project.godot @@ -44,38 +44,38 @@ window/stretch/mode="canvas_items" move_up={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194446,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194446,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } move_down={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194440,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194440,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194442,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194442,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.2, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194444,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194444,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } diff --git a/loading/serialization/save_load.tscn b/loading/serialization/save_load.tscn index 50d6d700291..5ae3b955b45 100644 --- a/loading/serialization/save_load.tscn +++ b/loading/serialization/save_load.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=8 format=3 uid="uid://w7nl5fe4vheb"] +[gd_scene load_steps=10 format=3 uid="uid://w7nl5fe4vheb"] [ext_resource type="PackedScene" path="res://enemy.tscn" id="1"] [ext_resource type="Script" path="res://gui.gd" id="2"] @@ -10,6 +10,20 @@ [sub_resource type="RectangleShape2D" id="1"] size = Vector2(64, 64) +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_lkphp"] +bg_color = Color(0.152941, 0.152941, 0.152941, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_smouc"] +bg_color = Color(0.458824, 0.631373, 0.262745, 1) +corner_radius_top_left = 2 +corner_radius_top_right = 2 +corner_radius_bottom_right = 2 +corner_radius_bottom_left = 2 + [node name="Node" type="Node"] [node name="Game" type="Node2D" parent="."] @@ -30,11 +44,15 @@ texture = ExtResource("2_g2wd8") [node name="ProgressBar" type="ProgressBar" parent="Game/Player"] offset_left = -32.0 -offset_top = -48.0 +offset_top = -50.0 offset_right = 32.0 -offset_bottom = -32.0 +offset_bottom = -33.0 +theme_override_colors/font_outline_color = Color(0.152941, 0.152941, 0.152941, 1) +theme_override_constants/outline_size = 6 +theme_override_font_sizes/font_size = 13 +theme_override_styles/background = SubResource("StyleBoxFlat_lkphp") +theme_override_styles/fill = SubResource("StyleBoxFlat_smouc") value = 100.0 -show_percentage = false [node name="Enemy" parent="Game" instance=ExtResource("1")] @@ -107,7 +125,7 @@ text = "Open User Data Folder" layout_mode = 2 size_flags_vertical = 3 bbcode_enabled = true -text = "Use the arrow keys or controller to move the player. +text = "Use WASD, arrow keys or controller to move the player. Use the save and load buttons to save/load the game with the respective format (each format is its own savegame)." diff --git a/loading/threads/project.godot b/loading/threads/project.godot index 08ad356b071..18b4ef4d92d 100644 --- a/loading/threads/project.godot +++ b/loading/threads/project.godot @@ -16,10 +16,14 @@ run/main_scene="res://thread.tscn" config/features=PackedStringArray("4.0") run/low_processor_mode=true config/icon="res://icon.png" +run/stretch/aspect="expand" +run/stretch/mode="canvas_items" [display] window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [rendering] diff --git a/loading/threads/thread.tscn b/loading/threads/thread.tscn index be538aa19ef..689eefc56c8 100644 --- a/loading/threads/thread.tscn +++ b/loading/threads/thread.tscn @@ -13,15 +13,26 @@ script = ExtResource("1") [node name="Load" type="Button" parent="."] layout_mode = 1 -anchors_preset = -1 -anchor_left = 0.4 -anchor_top = 0.15 -anchor_right = 0.6 -anchor_bottom = 0.2 +anchors_preset = 5 +anchor_left = 0.5 +anchor_right = 0.5 +offset_left = -115.0 +offset_top = 96.0 +offset_right = 115.0 +offset_bottom = 151.0 +grow_horizontal = 2 size_flags_horizontal = 2 size_flags_vertical = 2 +theme_override_font_sizes/font_size = 24 text = "Load in Thread" +[node name="ColorRect" type="Panel" parent="."] +layout_mode = 0 +offset_left = 461.0 +offset_top = 160.0 +offset_right = 692.0 +offset_bottom = 489.0 + [node name="TextureRect" type="TextureRect" parent="."] layout_mode = 1 anchors_preset = 8 diff --git a/misc/2.5d/addons/node25d/icons/kinematic_body_25d.png.import b/misc/2.5d/addons/node25d/icons/kinematic_body_25d.png.import index bcf18cab7f6..8a102f57f6c 100644 --- a/misc/2.5d/addons/node25d/icons/kinematic_body_25d.png.import +++ b/misc/2.5d/addons/node25d/icons/kinematic_body_25d.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/kinematic_body_25d.png-c455d5ccb8ec7543b62fff6e803eee7c.stex" +type="CompressedTexture2D" +uid="uid://yd54wnhsauqc" +path="res://.godot/imported/kinematic_body_25d.png-c455d5ccb8ec7543b62fff6e803eee7c.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/node25d/icons/kinematic_body_25d.png" -dest_files=["res://.godot/imported/kinematic_body_25d.png-c455d5ccb8ec7543b62fff6e803eee7c.stex"] +dest_files=["res://.godot/imported/kinematic_body_25d.png-c455d5ccb8ec7543b62fff6e803eee7c.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/addons/node25d/icons/node_25d.png.import b/misc/2.5d/addons/node25d/icons/node_25d.png.import index a44798170c5..c7997e41b13 100644 --- a/misc/2.5d/addons/node25d/icons/node_25d.png.import +++ b/misc/2.5d/addons/node25d/icons/node_25d.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/node_25d.png-72e45d8600ccbde01c6d9ad51f5fc530.stex" +type="CompressedTexture2D" +uid="uid://08ig4p1m5wtn" +path="res://.godot/imported/node_25d.png-72e45d8600ccbde01c6d9ad51f5fc530.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/node25d/icons/node_25d.png" -dest_files=["res://.godot/imported/node_25d.png-72e45d8600ccbde01c6d9ad51f5fc530.stex"] +dest_files=["res://.godot/imported/node_25d.png-72e45d8600ccbde01c6d9ad51f5fc530.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/addons/node25d/icons/node_25d_icon.png.import b/misc/2.5d/addons/node25d/icons/node_25d_icon.png.import index 71c33f4793f..a3ac79c01d2 100644 --- a/misc/2.5d/addons/node25d/icons/node_25d_icon.png.import +++ b/misc/2.5d/addons/node25d/icons/node_25d_icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/node_25d_icon.png-2ad780313818706789bbb15408797db2.stex" +type="CompressedTexture2D" +uid="uid://t7isjmhdc8sk" +path="res://.godot/imported/node_25d_icon.png-2ad780313818706789bbb15408797db2.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/node25d/icons/node_25d_icon.png" -dest_files=["res://.godot/imported/node_25d_icon.png-2ad780313818706789bbb15408797db2.stex"] +dest_files=["res://.godot/imported/node_25d_icon.png-2ad780313818706789bbb15408797db2.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/addons/node25d/icons/shadow_math_25d.png.import b/misc/2.5d/addons/node25d/icons/shadow_math_25d.png.import index 52cf621a3b5..df63bdb9f45 100644 --- a/misc/2.5d/addons/node25d/icons/shadow_math_25d.png.import +++ b/misc/2.5d/addons/node25d/icons/shadow_math_25d.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/shadow_math_25d.png-333790a3285ee4c26792088985815eba.stex" +type="CompressedTexture2D" +uid="uid://djw76ak7rjvd7" +path="res://.godot/imported/shadow_math_25d.png-333790a3285ee4c26792088985815eba.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/node25d/icons/shadow_math_25d.png" -dest_files=["res://.godot/imported/shadow_math_25d.png-333790a3285ee4c26792088985815eba.stex"] +dest_files=["res://.godot/imported/shadow_math_25d.png-333790a3285ee4c26792088985815eba.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/addons/node25d/icons/shadow_math_25d_icon.png.import b/misc/2.5d/addons/node25d/icons/shadow_math_25d_icon.png.import index 6a0673b6b1e..f536ef74e3a 100644 --- a/misc/2.5d/addons/node25d/icons/shadow_math_25d_icon.png.import +++ b/misc/2.5d/addons/node25d/icons/shadow_math_25d_icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/shadow_math_25d_icon.png-f286bd905218b9a04121a430c1fdd042.stex" +type="CompressedTexture2D" +uid="uid://dunp4dxxpftxb" +path="res://.godot/imported/shadow_math_25d_icon.png-f286bd905218b9a04121a430c1fdd042.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/node25d/icons/shadow_math_25d_icon.png" -dest_files=["res://.godot/imported/shadow_math_25d_icon.png-f286bd905218b9a04121a430c1fdd042.stex"] +dest_files=["res://.godot/imported/shadow_math_25d_icon.png-f286bd905218b9a04121a430c1fdd042.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/addons/node25d/icons/viewport_25d.svg.import b/misc/2.5d/addons/node25d/icons/viewport_25d.svg.import index f743cc992b0..99ce98d8282 100644 --- a/misc/2.5d/addons/node25d/icons/viewport_25d.svg.import +++ b/misc/2.5d/addons/node25d/icons/viewport_25d.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/viewport_25d.svg-5df077fb699779f821141e20086cbf11.stex" +type="CompressedTexture2D" +uid="uid://fonwii5cw6yo" +path="res://.godot/imported/viewport_25d.svg-5df077fb699779f821141e20086cbf11.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://addons/node25d/icons/viewport_25d.svg" -dest_files=["res://.godot/imported/viewport_25d.svg-5df077fb699779f821141e20086cbf11.stex"] +dest_files=["res://.godot/imported/viewport_25d.svg-5df077fb699779f821141e20086cbf11.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/misc/2.5d/addons/node25d/icons/y_sort_25d.png.import b/misc/2.5d/addons/node25d/icons/y_sort_25d.png.import index 2ab3f679ade..67947c3b2d6 100644 --- a/misc/2.5d/addons/node25d/icons/y_sort_25d.png.import +++ b/misc/2.5d/addons/node25d/icons/y_sort_25d.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/y_sort_25d.png-2e15f3765afd8b0136201cb9dea4049b.stex" +type="CompressedTexture2D" +uid="uid://clt6t2d0tgjqn" +path="res://.godot/imported/y_sort_25d.png-2e15f3765afd8b0136201cb9dea4049b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/node25d/icons/y_sort_25d.png" -dest_files=["res://.godot/imported/y_sort_25d.png-2e15f3765afd8b0136201cb9dea4049b.stex"] +dest_files=["res://.godot/imported/y_sort_25d.png-2e15f3765afd8b0136201cb9dea4049b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/addons/node25d/icons/y_sort_25d_icon.png.import b/misc/2.5d/addons/node25d/icons/y_sort_25d_icon.png.import index 5715973fe2b..22f33d24e06 100644 --- a/misc/2.5d/addons/node25d/icons/y_sort_25d_icon.png.import +++ b/misc/2.5d/addons/node25d/icons/y_sort_25d_icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/y_sort_25d_icon.png-48050bfa8b299992a68b4f1e12bd5d44.stex" +type="CompressedTexture2D" +uid="uid://4ncvr78gnj20" +path="res://.godot/imported/y_sort_25d_icon.png-48050bfa8b299992a68b4f1e12bd5d44.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/node25d/icons/y_sort_25d_icon.png" -dest_files=["res://.godot/imported/y_sort_25d_icon.png-48050bfa8b299992a68b4f1e12bd5d44.stex"] +dest_files=["res://.godot/imported/y_sort_25d_icon.png-48050bfa8b299992a68b4f1e12bd5d44.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/addons/node25d/node_25d.gd b/misc/2.5d/addons/node25d/node_25d.gd index df51dead9f2..50ae8e81c0f 100644 --- a/misc/2.5d/addons/node25d/node_25d.gd +++ b/misc/2.5d/addons/node25d/node_25d.gd @@ -2,7 +2,8 @@ # The transformation of its 2D form is controlled by its 3D child. @tool extends Node2D -class_name Node25D, "res://addons/node25d/icons/node_25d_icon.png" +class_name Node25D +@icon("res://addons/node25d/icons/node_25d_icon.png") # SCALE is the number of 2D units in one 3D unit. Ideally, but not necessarily, an integer. const SCALE = 32 @@ -112,7 +113,7 @@ func set_view_mode(view_mode_index): # Check if anyone presses the view mode buttons and change the basis accordingly. # This can be changed or removed in actual games where you only need one view mode. func _check_view_mode(): - if not Engine.editor_hint: + if not Engine.is_editor_hint(): if Input.is_action_just_pressed(&"forty_five_mode"): set_view_mode(0) elif Input.is_action_just_pressed(&"isometric_mode"): diff --git a/misc/2.5d/addons/node25d/shadow_math_25d.gd b/misc/2.5d/addons/node25d/shadow_math_25d.gd index 9098ef05e05..38fe526dd5b 100644 --- a/misc/2.5d/addons/node25d/shadow_math_25d.gd +++ b/misc/2.5d/addons/node25d/shadow_math_25d.gd @@ -3,7 +3,8 @@ # is below the target object in the scene tree (not as a child). @tool extends CharacterBody3D -class_name ShadowMath25D, "res://addons/node25d/icons/shadow_math_25d_icon.png" +class_name ShadowMath25D +@icon("res://addons/node25d/icons/shadow_math_25d_icon.png") # The maximum distance below objects that shadows will appear (in 3D units). var shadow_length = 1000.0 diff --git a/misc/2.5d/addons/node25d/y_sort_25d.gd b/misc/2.5d/addons/node25d/y_sort_25d.gd index 0999a7b5eb0..7d1c8cf6ab6 100644 --- a/misc/2.5d/addons/node25d/y_sort_25d.gd +++ b/misc/2.5d/addons/node25d/y_sort_25d.gd @@ -4,7 +4,8 @@ # sorting is delayed by one frame. @tool extends Node # Note: NOT Node2D, Node25D, or Node2D -class_name YSort25D, "res://addons/node25d/icons/y_sort_25d_icon.png" +class_name YSort25D +@icon("res://addons/node25d/icons/y_sort_25d_icon.png") # Whether or not to automatically call sort() in _process(). @export var sort_enabled := true diff --git a/misc/2.5d/assets/cube/cube_math.gd b/misc/2.5d/assets/cube/cube_math.gd index 207281d4379..e66e8f0ea0d 100644 --- a/misc/2.5d/assets/cube/cube_math.gd +++ b/misc/2.5d/assets/cube/cube_math.gd @@ -28,8 +28,7 @@ func _process(delta): get_tree().quit() if Input.is_action_just_pressed(&"view_cube_demo"): - # warning-ignore:return_value_discarded - get_tree().change_scene("res://assets/demo_scene.tscn") + get_tree().change_scene_to_file("res://assets/demo_scene.tscn") return if _is_parent_ready: diff --git a/misc/2.5d/assets/cube/godot.png.import b/misc/2.5d/assets/cube/godot.png.import index 94a0ec2f477..8828081ed59 100644 --- a/misc/2.5d/assets/cube/godot.png.import +++ b/misc/2.5d/assets/cube/godot.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/godot.png-a942b208c71d1b44958f34d302d011ec.stex" +type="CompressedTexture2D" +uid="uid://c5d2c7nxf1wbo" +path="res://.godot/imported/godot.png-a942b208c71d1b44958f34d302d011ec.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/cube/godot.png" -dest_files=["res://.godot/imported/godot.png-a942b208c71d1b44958f34d302d011ec.stex"] +dest_files=["res://.godot/imported/godot.png-a942b208c71d1b44958f34d302d011ec.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/demo_scene.tscn b/misc/2.5d/assets/demo_scene.tscn index 03c7ee3ab18..21045f4da90 100644 --- a/misc/2.5d/assets/demo_scene.tscn +++ b/misc/2.5d/assets/demo_scene.tscn @@ -1,46 +1,41 @@ -[gd_scene load_steps=14 format=2] +[gd_scene load_steps=13 format=3 uid="uid://bc8akj25hcmiy"] -[ext_resource path="res://assets/ui/overlay.tscn" type="PackedScene" id=1] -[ext_resource path="res://assets/player/player_25d.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/shadow/shadow_25d.tscn" type="PackedScene" id=3] -[ext_resource path="res://addons/node25d/node_25d.gd" type="Script" id=4] -[ext_resource path="res://addons/node25d/icons/node_25d_icon.png" type="Texture2D" id=5] -[ext_resource path="res://assets/platform/textures/forty_five.png" type="Texture2D" id=6] -[ext_resource path="res://assets/platform/platform_sprite.gd" type="Script" id=7] -[ext_resource path="res://addons/node25d/y_sort_25d.gd" type="Script" id=8] -[ext_resource path="res://addons/node25d/icons/y_sort_25d_icon.png" type="Texture2D" id=9] -[ext_resource path="res://assets/mr_mrs_robot.ogg" type="AudioStream" id=10] +[ext_resource type="PackedScene" uid="uid://6o8sm5bti8d1" path="res://assets/ui/overlay.tscn" id="1"] +[ext_resource type="PackedScene" path="res://assets/player/player_25d.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://ivolxaqaaddk" path="res://assets/shadow/shadow_25d.tscn" id="3"] +[ext_resource type="Script" path="res://addons/node25d/node_25d.gd" id="4"] +[ext_resource type="Texture2D" uid="uid://cocwocceljq4g" path="res://assets/platform/textures/forty_five.png" id="6"] +[ext_resource type="Script" path="res://assets/platform/platform_sprite.gd" id="7"] +[ext_resource type="Script" path="res://addons/node25d/y_sort_25d.gd" id="8"] +[ext_resource type="Texture2D" uid="uid://4ncvr78gnj20" path="res://addons/node25d/icons/y_sort_25d_icon.png" id="9"] +[ext_resource type="AudioStream" uid="uid://c2su2nuhi1rof" path="res://assets/mr_mrs_robot.ogg" id="10"] -[sub_resource type="BoxShape3D" id=1] -extents = Vector3(5, 0.5, 5) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(10, 1, 10) -[sub_resource type="BoxShape3D" id=2] -extents = Vector3(5, 0.5, 5) +[sub_resource type="BoxShape3D" id="2"] +size = Vector3(10, 1, 10) -[sub_resource type="BoxShape3D" id=3] -extents = Vector3(5, 0.5, 5) +[sub_resource type="BoxShape3D" id="3"] +size = Vector3(10, 1, 10) [node name="DemoScene" type="Node2D"] -[node name="Overlay" parent="." instance=ExtResource( 1 )] +[node name="Overlay" parent="." instance=ExtResource("1")] -[node name="Player25D" parent="." instance=ExtResource( 2 )] +[node name="Player25D" parent="." instance=ExtResource("2")] position = Vector2(0, -226.274) z_index = -3952 -[node name="Shadow25D" parent="." instance=ExtResource( 3 )] +[node name="Shadow25D" parent="." instance=ExtResource("3")] visible = true -position = Vector2(0, 11.2685) +position = Vector2(0, 22401.1) z_index = -3958 -spatial_position = Vector3(0, -0.498, 0) [node name="Platform0" type="Node2D" parent="."] position = Vector2(-256, -113.137) z_index = -3954 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-8, 5, 0) [node name="PlatformMath" type="StaticBody3D" parent="Platform0"] @@ -49,23 +44,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform0/PlatformMath"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlatformSprite" type="Sprite2D" parent="Platform0"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform1" type="Node2D" parent="."] position = Vector2(-256, -339.411) z_index = -3956 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-8, 5, -10) [node name="PlatformMath" type="StaticBody3D" parent="Platform1"] @@ -74,23 +63,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform1/PlatformMath"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlatformSprite" type="Sprite2D" parent="Platform1"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform2" type="Node2D" parent="."] position = Vector2(0, 22.6274) z_index = -3962 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(0, -1, 0) [node name="PlatformMath" type="StaticBody3D" parent="Platform2"] @@ -99,23 +82,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform2/PlatformMath"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlatformSprite" type="Sprite2D" parent="Platform2"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform3" type="Node2D" parent="."] position = Vector2(320, 22.6274) z_index = -3960 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(10, -1, 0) [node name="PlatformMath" type="StaticBody3D" parent="Platform3"] @@ -124,23 +101,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform3/PlatformMath"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlatformSprite" type="Sprite2D" parent="Platform3"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform4" type="Node2D" parent="."] position = Vector2(0, -203.647) z_index = -3966 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(0, -1, -10) [node name="PlatformMath" type="StaticBody3D" parent="Platform4"] @@ -149,23 +120,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform4/PlatformMath"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlatformSprite" type="Sprite2D" parent="Platform4"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform5" type="Node2D" parent="."] position = Vector2(320, -113.137) z_index = -3984 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(10, -5, -10) [node name="PlatformMath" type="StaticBody3D" parent="Platform5"] @@ -174,23 +139,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform5/PlatformMath"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlatformSprite" type="Sprite2D" parent="Platform5"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform6" type="Node2D" parent="."] position = Vector2(320, 113.137) z_index = -3982 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(10, -5, 0) [node name="PlatformMath" type="StaticBody3D" parent="Platform6"] @@ -199,23 +158,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform6/PlatformMath"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlatformSprite" type="Sprite2D" parent="Platform6"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform7" type="Node2D" parent="."] position = Vector2(320, 339.411) z_index = -3978 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(10, -5, 10) [node name="PlatformMath" type="StaticBody3D" parent="Platform7"] @@ -224,23 +177,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform7/PlatformMath"] -shape = SubResource( 2 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("2") [node name="PlatformSprite" type="Sprite2D" parent="Platform7"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform20" type="Node2D" parent="."] position = Vector2(320, 565.685) z_index = -3976 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(10, -5, 20) [node name="PlatformMath" type="StaticBody3D" parent="Platform20"] @@ -249,23 +196,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform20/PlatformMath"] -shape = SubResource( 2 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("2") [node name="PlatformSprite" type="Sprite2D" parent="Platform20"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform21" type="Node2D" parent="."] position = Vector2(320, 791.96) z_index = -3972 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(10, -5, 30) [node name="PlatformMath" type="StaticBody3D" parent="Platform21"] @@ -274,23 +215,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform21/PlatformMath"] -shape = SubResource( 2 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("2") [node name="PlatformSprite" type="Sprite2D" parent="Platform21"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform22" type="Node2D" parent="."] position = Vector2(320, 1018.23) z_index = -3970 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(10, -5, 40) [node name="PlatformMath" type="StaticBody3D" parent="Platform22"] @@ -299,23 +234,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform22/PlatformMath"] -shape = SubResource( 2 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("2") [node name="PlatformSprite" type="Sprite2D" parent="Platform22"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform9" type="Node2D" parent="."] position = Vector2(640, 339.411) z_index = -3974 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(20, -5, 10) [node name="PlatformMath" type="StaticBody3D" parent="Platform9"] @@ -324,23 +253,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform9/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform9"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform10" type="Node2D" parent="."] position = Vector2(896, 294.156) z_index = -3994 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(28, -10, 3) [node name="PlatformMath" type="StaticBody3D" parent="Platform10"] @@ -349,23 +272,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform10/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform10"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform11" type="Node2D" parent="."] position = Vector2(896, 520.431) z_index = -3992 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(28, -10, 13) [node name="PlatformMath" type="StaticBody3D" parent="Platform11"] @@ -374,23 +291,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform11/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform11"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform12" type="Node2D" parent="."] position = Vector2(896, 746.705) z_index = -3988 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(28, -10, 23) [node name="PlatformMath" type="StaticBody3D" parent="Platform12"] @@ -399,23 +310,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform12/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform12"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform13" type="Node2D" parent="."] position = Vector2(576, 746.705) z_index = -3990 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(18, -10, 23) [node name="PlatformMath" type="StaticBody3D" parent="Platform13"] @@ -424,23 +329,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform13/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform13"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform14" type="Node2D" parent="."] position = Vector2(256, 746.705) z_index = -3996 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(8, -10, 23) [node name="PlatformMath" type="StaticBody3D" parent="Platform14"] @@ -449,23 +348,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform14/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform14"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform15" type="Node2D" parent="."] position = Vector2(-64, 746.705) z_index = -3998 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-2, -10, 23) [node name="PlatformMath" type="StaticBody3D" parent="Platform15"] @@ -474,23 +367,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform15/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform15"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform23" type="Node2D" parent="."] position = Vector2(-384, 746.705) z_index = -4000 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-12, -10, 23) [node name="PlatformMath" type="StaticBody3D" parent="Platform23"] @@ -499,23 +386,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform23/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform23"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform16" type="Node2D" parent="."] position = Vector2(-320, 565.685) z_index = -3980 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-10, -5, 20) [node name="PlatformMath" type="StaticBody3D" parent="Platform16"] @@ -524,23 +405,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform16/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform16"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform19" type="Node2D" parent="."] position = Vector2(-320, 339.411) z_index = -3986 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-10, -5, 10) [node name="PlatformMath" type="StaticBody3D" parent="Platform19"] @@ -549,23 +424,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform19/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform19"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform17" type="Node2D" parent="."] position = Vector2(-480, 248.902) z_index = -3964 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-15, -1, 10) [node name="PlatformMath" type="StaticBody3D" parent="Platform17"] @@ -574,23 +443,17 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform17/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform17"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="Platform18" type="Node2D" parent="."] position = Vector2(-480, 22.6274) z_index = -3968 -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 5 ) -} +script = ExtResource("4") spatial_position = Vector3(-15, -1, 0) [node name="PlatformMath" type="StaticBody3D" parent="Platform18"] @@ -599,23 +462,20 @@ collision_layer = 1048575 collision_mask = 1048575 [node name="CollisionShape3D" type="CollisionShape3D" parent="Platform18/PlatformMath"] -shape = SubResource( 3 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("3") [node name="PlatformSprite" type="Sprite2D" parent="Platform18"] scale = Vector2(0.5, 0.5) -texture = ExtResource( 6 ) -script = ExtResource( 7 ) +texture = ExtResource("6") +script = ExtResource("7") [node name="YSort25D" type="Node" parent="."] -script = ExtResource( 8 ) +script = ExtResource("8") __meta__ = { -"_editor_icon": ExtResource( 9 ) +"_editor_icon": ExtResource("9") } [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] -stream = ExtResource( 10 ) +stream = ExtResource("10") volume_db = -20.0 autoplay = true diff --git a/misc/2.5d/assets/mr_mrs_robot.ogg.import b/misc/2.5d/assets/mr_mrs_robot.ogg.import index 8fcbcfa257b..33194e2249b 100644 --- a/misc/2.5d/assets/mr_mrs_robot.ogg.import +++ b/misc/2.5d/assets/mr_mrs_robot.ogg.import @@ -1,15 +1,19 @@ [remap] -importer="ogg_vorbis" -type="AudioStreamOGGVorbis" -path="res://.godot/imported/mr_mrs_robot.ogg-04d8a930124c76b878f30fed4f47903c.oggstr" +importer="oggvorbisstr" +type="AudioStreamOggVorbis" +uid="uid://c2su2nuhi1rof" +path="res://.godot/imported/mr_mrs_robot.ogg-04d8a930124c76b878f30fed4f47903c.oggvorbisstr" [deps] source_file="res://assets/mr_mrs_robot.ogg" -dest_files=["res://.godot/imported/mr_mrs_robot.ogg-04d8a930124c76b878f30fed4f47903c.oggstr"] +dest_files=["res://.godot/imported/mr_mrs_robot.ogg-04d8a930124c76b878f30fed4f47903c.oggvorbisstr"] [params] loop=true loop_offset=0 +bpm=0 +beat_count=0 +bar_beats=4 diff --git a/misc/2.5d/assets/platform/platform_sprite.gd b/misc/2.5d/assets/platform/platform_sprite.gd index 0326156f062..a722eaa411d 100644 --- a/misc/2.5d/assets/platform/platform_sprite.gd +++ b/misc/2.5d/assets/platform/platform_sprite.gd @@ -9,7 +9,7 @@ extends Sprite2D @onready var _oblique_z = preload("res://assets/platform/textures/oblique_z.png") func _process(_delta): - if not Engine.editor_hint: + if not Engine.is_editor_hint(): if Input.is_action_pressed(&"forty_five_mode"): set_view_mode(0) elif Input.is_action_pressed(&"isometric_mode"): diff --git a/misc/2.5d/assets/platform/textures/forty_five.png.import b/misc/2.5d/assets/platform/textures/forty_five.png.import index 389994e902e..873a047de63 100644 --- a/misc/2.5d/assets/platform/textures/forty_five.png.import +++ b/misc/2.5d/assets/platform/textures/forty_five.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/forty_five.png-d90cd8ed1241c4a5270d87a83aafe24d.stex" +type="CompressedTexture2D" +uid="uid://cocwocceljq4g" +path="res://.godot/imported/forty_five.png-d90cd8ed1241c4a5270d87a83aafe24d.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/platform/textures/forty_five.png" -dest_files=["res://.godot/imported/forty_five.png-d90cd8ed1241c4a5270d87a83aafe24d.stex"] +dest_files=["res://.godot/imported/forty_five.png-d90cd8ed1241c4a5270d87a83aafe24d.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/platform/textures/front_side.png.import b/misc/2.5d/assets/platform/textures/front_side.png.import index de3ef1f95b9..959749234c8 100644 --- a/misc/2.5d/assets/platform/textures/front_side.png.import +++ b/misc/2.5d/assets/platform/textures/front_side.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/front_side.png-057b43bb7270572907c729580068368b.stex" +type="CompressedTexture2D" +uid="uid://kk6kolbu8shy" +path="res://.godot/imported/front_side.png-057b43bb7270572907c729580068368b.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/platform/textures/front_side.png" -dest_files=["res://.godot/imported/front_side.png-057b43bb7270572907c729580068368b.stex"] +dest_files=["res://.godot/imported/front_side.png-057b43bb7270572907c729580068368b.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/platform/textures/isometric.png.import b/misc/2.5d/assets/platform/textures/isometric.png.import index ca1c86fb36e..f7e3f41d6d3 100644 --- a/misc/2.5d/assets/platform/textures/isometric.png.import +++ b/misc/2.5d/assets/platform/textures/isometric.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/isometric.png-364f65b60f600b10cfb048c20ea82124.stex" +type="CompressedTexture2D" +uid="uid://bnvj5auif086p" +path="res://.godot/imported/isometric.png-364f65b60f600b10cfb048c20ea82124.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/platform/textures/isometric.png" -dest_files=["res://.godot/imported/isometric.png-364f65b60f600b10cfb048c20ea82124.stex"] +dest_files=["res://.godot/imported/isometric.png-364f65b60f600b10cfb048c20ea82124.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/platform/textures/oblique_y.png.import b/misc/2.5d/assets/platform/textures/oblique_y.png.import index c52d0d98280..b7797ed6a17 100644 --- a/misc/2.5d/assets/platform/textures/oblique_y.png.import +++ b/misc/2.5d/assets/platform/textures/oblique_y.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/oblique_y.png-ed89b3ef35707993300443a84f7ebbd1.stex" +type="CompressedTexture2D" +uid="uid://cktpkhnrccnmb" +path="res://.godot/imported/oblique_y.png-ed89b3ef35707993300443a84f7ebbd1.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/platform/textures/oblique_y.png" -dest_files=["res://.godot/imported/oblique_y.png-ed89b3ef35707993300443a84f7ebbd1.stex"] +dest_files=["res://.godot/imported/oblique_y.png-ed89b3ef35707993300443a84f7ebbd1.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/platform/textures/oblique_z.png.import b/misc/2.5d/assets/platform/textures/oblique_z.png.import index 4c9cf0fdf35..0b932f16559 100644 --- a/misc/2.5d/assets/platform/textures/oblique_z.png.import +++ b/misc/2.5d/assets/platform/textures/oblique_z.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/oblique_z.png-270f041a55370c5ba68850a072597e97.stex" +type="CompressedTexture2D" +uid="uid://tmnx5fth8l42" +path="res://.godot/imported/oblique_z.png-270f041a55370c5ba68850a072597e97.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/platform/textures/oblique_z.png" -dest_files=["res://.godot/imported/oblique_z.png-270f041a55370c5ba68850a072597e97.stex"] +dest_files=["res://.godot/imported/oblique_z.png-270f041a55370c5ba68850a072597e97.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/platform/textures/top_down.png.import b/misc/2.5d/assets/platform/textures/top_down.png.import index 3ac950872f0..385b1416c42 100644 --- a/misc/2.5d/assets/platform/textures/top_down.png.import +++ b/misc/2.5d/assets/platform/textures/top_down.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/top_down.png-3df3f4c204d6337fdc9aa208196ed940.stex" +type="CompressedTexture2D" +uid="uid://d0laophko784y" +path="res://.godot/imported/top_down.png-3df3f4c204d6337fdc9aa208196ed940.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/platform/textures/top_down.png" -dest_files=["res://.godot/imported/top_down.png-3df3f4c204d6337fdc9aa208196ed940.stex"] +dest_files=["res://.godot/imported/top_down.png-3df3f4c204d6337fdc9aa208196ed940.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/player/player_math_25d.gd b/misc/2.5d/assets/player/player_math_25d.gd index 8f52f4f039c..30e68bfd863 100644 --- a/misc/2.5d/assets/player/player_math_25d.gd +++ b/misc/2.5d/assets/player/player_math_25d.gd @@ -11,8 +11,7 @@ func _process(delta): get_tree().quit() if Input.is_action_just_pressed(&"view_cube_demo"): - #warning-ignore:return_value_discarded - get_tree().change_scene("res://assets/cube/cube.tscn") + get_tree().change_scene_to_file("res://assets/cube/cube.tscn") return if Input.is_action_just_pressed(&"toggle_isometric_controls"): @@ -38,12 +37,11 @@ func _horizontal_movement(delta): var movement_vec2 = Input.get_vector(&"move_left", &"move_right", &"move_forward", &"move_back") var move_dir = localX * movement_vec2.x + localZ * movement_vec2.y - move_dir = move_dir * delta * 600 + velocity = move_dir * delta * 600 if Input.is_action_pressed(&"movement_modifier"): - move_dir /= 2 + velocity /= 2 - #warning-ignore:return_value_discarded - move_and_slide(move_dir) + move_and_slide() # Checks Jump and applies gravity and vertical speed via move_and_collide. diff --git a/misc/2.5d/assets/player/player_sprite.gd b/misc/2.5d/assets/player/player_sprite.gd index 949efd16f1d..b4448674920 100644 --- a/misc/2.5d/assets/player/player_sprite.gd +++ b/misc/2.5d/assets/player/player_sprite.gd @@ -71,7 +71,7 @@ func set_view_mode(view_mode_index): # Change the 2D basis of the sprite to try and make it "fit" multiple view modes. func _sprite_basis(): - if not Engine.editor_hint: + if not Engine.is_editor_hint(): if Input.is_action_pressed(&"forty_five_mode"): set_view_mode(0) elif Input.is_action_pressed(&"isometric_mode"): diff --git a/misc/2.5d/assets/player/textures/jump.png.import b/misc/2.5d/assets/player/textures/jump.png.import index c1e4b442976..4d0033ba453 100644 --- a/misc/2.5d/assets/player/textures/jump.png.import +++ b/misc/2.5d/assets/player/textures/jump.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/jump.png-ee91d86ec39d8c1dde239a382e843e86.stex" +type="CompressedTexture2D" +uid="uid://bfdfertqyhf1u" +path="res://.godot/imported/jump.png-ee91d86ec39d8c1dde239a382e843e86.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/player/textures/jump.png" -dest_files=["res://.godot/imported/jump.png-ee91d86ec39d8c1dde239a382e843e86.stex"] +dest_files=["res://.godot/imported/jump.png-ee91d86ec39d8c1dde239a382e843e86.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/player/textures/run.png.import b/misc/2.5d/assets/player/textures/run.png.import index 478746b5bca..ce574cde53a 100644 --- a/misc/2.5d/assets/player/textures/run.png.import +++ b/misc/2.5d/assets/player/textures/run.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/run.png-6110949046e0632be1a9b1c8ac504217.stex" +type="CompressedTexture2D" +uid="uid://deecsjngevnl4" +path="res://.godot/imported/run.png-6110949046e0632be1a9b1c8ac504217.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/player/textures/run.png" -dest_files=["res://.godot/imported/run.png-6110949046e0632be1a9b1c8ac504217.stex"] +dest_files=["res://.godot/imported/run.png-6110949046e0632be1a9b1c8ac504217.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/player/textures/stand.png.import b/misc/2.5d/assets/player/textures/stand.png.import index 89edd6e221d..7f891edd465 100644 --- a/misc/2.5d/assets/player/textures/stand.png.import +++ b/misc/2.5d/assets/player/textures/stand.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/stand.png-4d65e60dbd5f40d1f70da6aa2507ebe3.stex" +type="CompressedTexture2D" +uid="uid://dnfxb5j0blseh" +path="res://.godot/imported/stand.png-4d65e60dbd5f40d1f70da6aa2507ebe3.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/player/textures/stand.png" -dest_files=["res://.godot/imported/stand.png-4d65e60dbd5f40d1f70da6aa2507ebe3.stex"] +dest_files=["res://.godot/imported/stand.png-4d65e60dbd5f40d1f70da6aa2507ebe3.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/shadow/shadow_25d.tscn b/misc/2.5d/assets/shadow/shadow_25d.tscn index 2acab07909c..db6fdbb6620 100644 --- a/misc/2.5d/assets/shadow/shadow_25d.tscn +++ b/misc/2.5d/assets/shadow/shadow_25d.tscn @@ -1,40 +1,34 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=7 format=3 uid="uid://ivolxaqaaddk"] -[ext_resource path="res://addons/node25d/node_25d.gd" type="Script" id=1] -[ext_resource path="res://addons/node25d/icons/node_25d_icon.png" type="Texture2D" id=2] -[ext_resource path="res://addons/node25d/shadow_math_25d.gd" type="Script" id=3] -[ext_resource path="res://addons/node25d/icons/shadow_math_25d_icon.png" type="Texture2D" id=4] -[ext_resource path="res://assets/shadow/textures/forty_five.png" type="Texture2D" id=5] -[ext_resource path="res://assets/shadow/shadow_sprite.gd" type="Script" id=6] +[ext_resource type="Script" path="res://addons/node25d/node_25d.gd" id="1"] +[ext_resource type="Script" path="res://addons/node25d/shadow_math_25d.gd" id="3"] +[ext_resource type="Texture2D" uid="uid://dunp4dxxpftxb" path="res://addons/node25d/icons/shadow_math_25d_icon.png" id="4"] +[ext_resource type="Texture2D" uid="uid://4fvxohv2aowy" path="res://assets/shadow/textures/forty_five.png" id="5"] +[ext_resource type="Script" path="res://assets/shadow/shadow_sprite.gd" id="6"] -[sub_resource type="BoxShape3D" id=1] -extents = Vector3(0.5, 0.001, 0.5) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(1, 0.002, 1) [node name="Shadow25D" type="Node2D"] visible = false position = Vector2(0, 22401.1) -script = ExtResource( 1 ) -__meta__ = { -"_editor_icon": ExtResource( 2 ) -} +script = ExtResource("1") spatial_position = Vector3(0, -990, 0) [node name="ShadowMath25D" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -990, 0) collision_layer = 16 collision_mask = 16 -script = ExtResource( 3 ) +script = ExtResource("3") __meta__ = { -"_editor_icon": ExtResource( 4 ) +"_editor_icon": ExtResource("4") } [node name="CollisionShape3D" type="CollisionShape3D" parent="ShadowMath25D"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="ShadowSprite" type="Sprite2D" parent="."] +texture_filter = 2 scale = Vector2(0.5, 0.5) -texture = ExtResource( 5 ) -script = ExtResource( 6 ) +texture = ExtResource("5") +script = ExtResource("6") diff --git a/misc/2.5d/assets/shadow/shadow_sprite.gd b/misc/2.5d/assets/shadow/shadow_sprite.gd index 4704da8c94e..c7c37873776 100644 --- a/misc/2.5d/assets/shadow/shadow_sprite.gd +++ b/misc/2.5d/assets/shadow/shadow_sprite.gd @@ -9,7 +9,7 @@ extends Sprite2D @onready var _oblique_z = preload("res://assets/shadow/textures/oblique_z.png") func _process(_delta): - if not Engine.editor_hint: + if not Engine.is_editor_hint(): if Input.is_action_pressed(&"forty_five_mode"): set_view_mode(0) elif Input.is_action_pressed(&"isometric_mode"): diff --git a/misc/2.5d/assets/shadow/textures/forty_five.png.import b/misc/2.5d/assets/shadow/textures/forty_five.png.import index cf4939e552e..e46586b3740 100644 --- a/misc/2.5d/assets/shadow/textures/forty_five.png.import +++ b/misc/2.5d/assets/shadow/textures/forty_five.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/forty_five.png-22dcfa54db51531b3612f686997a3fbe.stex" +type="CompressedTexture2D" +uid="uid://4fvxohv2aowy" +path="res://.godot/imported/forty_five.png-22dcfa54db51531b3612f686997a3fbe.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/shadow/textures/forty_five.png" -dest_files=["res://.godot/imported/forty_five.png-22dcfa54db51531b3612f686997a3fbe.stex"] +dest_files=["res://.godot/imported/forty_five.png-22dcfa54db51531b3612f686997a3fbe.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/shadow/textures/front_side.png.import b/misc/2.5d/assets/shadow/textures/front_side.png.import index 7e5cb55fe9e..a0fa8badaab 100644 --- a/misc/2.5d/assets/shadow/textures/front_side.png.import +++ b/misc/2.5d/assets/shadow/textures/front_side.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/front_side.png-1470842d27848ecf4de63924b0b98f42.stex" +type="CompressedTexture2D" +uid="uid://wr6eslhkbhat" +path="res://.godot/imported/front_side.png-1470842d27848ecf4de63924b0b98f42.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/shadow/textures/front_side.png" -dest_files=["res://.godot/imported/front_side.png-1470842d27848ecf4de63924b0b98f42.stex"] +dest_files=["res://.godot/imported/front_side.png-1470842d27848ecf4de63924b0b98f42.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/shadow/textures/isometric.png.import b/misc/2.5d/assets/shadow/textures/isometric.png.import index 5734a795281..2ed74de4678 100644 --- a/misc/2.5d/assets/shadow/textures/isometric.png.import +++ b/misc/2.5d/assets/shadow/textures/isometric.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/isometric.png-1a91c869806816b66a8fb886d4801f31.stex" +type="CompressedTexture2D" +uid="uid://c4tjsu5k5ihy" +path="res://.godot/imported/isometric.png-1a91c869806816b66a8fb886d4801f31.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/shadow/textures/isometric.png" -dest_files=["res://.godot/imported/isometric.png-1a91c869806816b66a8fb886d4801f31.stex"] +dest_files=["res://.godot/imported/isometric.png-1a91c869806816b66a8fb886d4801f31.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/shadow/textures/oblique_y.png.import b/misc/2.5d/assets/shadow/textures/oblique_y.png.import index d07c0d6598e..4f252734f92 100644 --- a/misc/2.5d/assets/shadow/textures/oblique_y.png.import +++ b/misc/2.5d/assets/shadow/textures/oblique_y.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/oblique_y.png-47d60a179a2cdeff15364f0e389e6008.stex" +type="CompressedTexture2D" +uid="uid://3xwsdvvawwe1" +path="res://.godot/imported/oblique_y.png-47d60a179a2cdeff15364f0e389e6008.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/shadow/textures/oblique_y.png" -dest_files=["res://.godot/imported/oblique_y.png-47d60a179a2cdeff15364f0e389e6008.stex"] +dest_files=["res://.godot/imported/oblique_y.png-47d60a179a2cdeff15364f0e389e6008.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/shadow/textures/oblique_z.png.import b/misc/2.5d/assets/shadow/textures/oblique_z.png.import index 98a6004f33e..83ee3052478 100644 --- a/misc/2.5d/assets/shadow/textures/oblique_z.png.import +++ b/misc/2.5d/assets/shadow/textures/oblique_z.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/oblique_z.png-d8378bf8b95f890e76162d62a82022de.stex" +type="CompressedTexture2D" +uid="uid://0gldsaonotko" +path="res://.godot/imported/oblique_z.png-d8378bf8b95f890e76162d62a82022de.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/shadow/textures/oblique_z.png" -dest_files=["res://.godot/imported/oblique_z.png-d8378bf8b95f890e76162d62a82022de.stex"] +dest_files=["res://.godot/imported/oblique_z.png-d8378bf8b95f890e76162d62a82022de.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/shadow/textures/top_down.png.import b/misc/2.5d/assets/shadow/textures/top_down.png.import index b0211c0ae4b..8983185f4ce 100644 --- a/misc/2.5d/assets/shadow/textures/top_down.png.import +++ b/misc/2.5d/assets/shadow/textures/top_down.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/top_down.png-a3a98721249636eff54d8113d6075229.stex" +type="CompressedTexture2D" +uid="uid://ccy2ybbg64pn8" +path="res://.godot/imported/top_down.png-a3a98721249636eff54d8113d6075229.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://assets/shadow/textures/top_down.png" -dest_files=["res://.godot/imported/top_down.png-a3a98721249636eff54d8113d6075229.stex"] +dest_files=["res://.godot/imported/top_down.png-a3a98721249636eff54d8113d6075229.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/assets/ui/overlay.tscn b/misc/2.5d/assets/ui/overlay.tscn index a9d773ee1c8..41c1fd53660 100644 --- a/misc/2.5d/assets/ui/overlay.tscn +++ b/misc/2.5d/assets/ui/overlay.tscn @@ -1,22 +1,21 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://6o8sm5bti8d1"] -[ext_resource path="res://assets/ui/control_hints.gd" type="Script" id=1] +[ext_resource type="Script" path="res://assets/ui/control_hints.gd" id="1"] [node name="Overlay" type="CanvasLayer"] [node name="ControlHints" type="CenterContainer" parent="."] +anchors_preset = 10 anchor_right = 1.0 offset_bottom = 200.0 -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Label" type="Label" parent="ControlHints"] -offset_left = 348.0 -offset_top = 25.0 -offset_right = 1251.0 -offset_bottom = 175.0 -rect_min_size = Vector2(500, 50) -text = " -Controls: WASD to move, Space to jump, R to reset, Shift to walk, T to toggle isometric controls, C to view cube demo, Tab to toggle hints. +offset_left = 262.0 +offset_top = 9.0 +offset_right = 1337.0 +offset_bottom = 191.0 +text = "Controls: WASD to move, Space to jump, R to reset, Shift to walk, T to toggle isometric controls, C to view cube demo, Tab to toggle hints. UIOJKL to change view mode. U = Forty Five deg, I = Isometric, O = Top Down, J = Front Side, K = Oblique Y, L = Oblique Z @@ -24,5 +23,3 @@ O = Top Down, J = Front Side, K = Oblique Y, L = Oblique Z Not every view mode is meant to be good, it's just to showcase what the system can do. In actual games, shadows, resizing, parallax, and other hints of depth could be added to make the world seem more 3D. " -align = 1 -valign = 1 diff --git a/misc/2.5d/icon.png.import b/misc/2.5d/icon.png.import index 889af9df580..aac3e49e50f 100644 --- a/misc/2.5d/icon.png.import +++ b/misc/2.5d/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://dhv0nrnhb40ep" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/2.5d/project.godot b/misc/2.5d/project.godot index 7d64b7522ed..e42d1314447 100644 --- a/misc/2.5d/project.godot +++ b/misc/2.5d/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 _global_script_classes=[{ "base": "Node2D", @@ -43,12 +43,15 @@ config/description="This demo project shows a way to create a 2.5D game in Godot by mixing 2D and 3D nodes. It also adds a 2.5D editor viewport for easily editing 2.5D levels." run/main_scene="res://assets/demo_scene.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [display] -window/size/width=1600 -window/size/height=900 +window/size/viewport_width=1600 +window/size/viewport_height=900 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [editor_plugins] @@ -58,134 +61,120 @@ enabled=PackedStringArray("node25d") move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } move_back={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } movement_modifier={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777348,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"unicode":0,"echo":false,"script":null) ] } jump={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } reset_position={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777222,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } forty_five_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":85,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777354,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":85,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } isometric_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":73,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777355,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":73,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } top_down_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":79,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777356,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":79,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } front_side_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":74,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777351,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":74,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } oblique_y_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":75,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777352,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":75,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":4,"pressure":0.0,"pressed":false,"script":null) ] } oblique_z_mode={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777353,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":5,"pressure":0.0,"pressed":false,"script":null) ] } toggle_isometric_controls={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":84,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":84,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":8,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777349,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_control_hints={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777347,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":10,"pressure":0.0,"pressed":false,"script":null) ] } move_clockwise={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":69,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777359,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":69,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } move_counterclockwise={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777357,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } view_cube_demo={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777358,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"unicode":0,"echo":false,"script":null) ] } @@ -195,6 +184,8 @@ exit={ [rendering] +environment/defaults/default_clear_color=Color(0.0823529, 0.109804, 0.219608, 1) +textures/canvas_textures/default_texture_filter=0 quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false diff --git a/misc/joypads/diagram.png.import b/misc/joypads/diagram.png.import index ceb5d89789e..1ac9159988f 100644 --- a/misc/joypads/diagram.png.import +++ b/misc/joypads/diagram.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/diagram.png-1621ff3c0b6dad34000ac99354b64701.stex" +type="CompressedTexture2D" +uid="uid://durej2jra617x" +path="res://.godot/imported/diagram.png-1621ff3c0b6dad34000ac99354b64701.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://diagram.png" -dest_files=["res://.godot/imported/diagram.png-1621ff3c0b6dad34000ac99354b64701.stex"] +dest_files=["res://.godot/imported/diagram.png-1621ff3c0b6dad34000ac99354b64701.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/joypads/icon.png.import b/misc/joypads/icon.png.import index 889af9df580..e2b97f285ca 100644 --- a/misc/joypads/icon.png.import +++ b/misc/joypads/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://lprw38vlvuhm" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/joypads/indicators.png.import b/misc/joypads/indicators.png.import index 1e7f71b1aab..45734c708b2 100644 --- a/misc/joypads/indicators.png.import +++ b/misc/joypads/indicators.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/indicators.png-b2d98522e44d4529354ba542a9970360.stex" +type="CompressedTexture2D" +uid="uid://bcnnujtpgtr62" +path="res://.godot/imported/indicators.png-b2d98522e44d4529354ba542a9970360.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://indicators.png" -dest_files=["res://.godot/imported/indicators.png-b2d98522e44d4529354ba542a9970360.stex"] +dest_files=["res://.godot/imported/indicators.png-b2d98522e44d4529354ba542a9970360.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/joypads/joypad_diagram.tscn b/misc/joypads/joypad_diagram.tscn index 0e6774d6124..1cc0c745ddc 100644 --- a/misc/joypads/joypad_diagram.tscn +++ b/misc/joypads/joypad_diagram.tscn @@ -1,61 +1,61 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://bsrktfrmtkqvo"] -[ext_resource path="res://diagram.png" type="Texture2D" id=1] -[ext_resource path="res://indicators.png" type="Texture2D" id=2] +[ext_resource type="Texture2D" uid="uid://durej2jra617x" path="res://diagram.png" id="1"] +[ext_resource type="Texture2D" uid="uid://bcnnujtpgtr62" path="res://indicators.png" id="2"] [node name="JoypadDiagram" type="Sprite2D"] position = Vector2(368.635, 155.289) scale = Vector2(0.432859, 0.446287) -texture = ExtResource( 1 ) +texture = ExtResource("1") [node name="Buttons" type="Node2D" parent="."] [node name="0" type="Sprite2D" parent="Buttons"] position = Vector2(147.73, 120.925) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="1" type="Sprite2D" parent="Buttons"] position = Vector2(185.769, 82.4874) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="2" type="Sprite2D" parent="Buttons"] position = Vector2(112.377, 82.4874) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="3" type="Sprite2D" parent="Buttons"] position = Vector2(149.073, 47.3293) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="4" type="Sprite2D" parent="Buttons"] position = Vector2(-161.038, -158.037) scale = Vector2(5.3348, 3.35512) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(10, 10, 10, 10) [node name="5" type="Sprite2D" parent="Buttons"] position = Vector2(159.362, -156.977) scale = Vector2(5.3348, 3.35512) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(10, 10, 10, 10) [node name="6" type="Sprite2D" parent="Buttons"] position = Vector2(-159.349, -221.878) scale = Vector2(1.0458, 2.16952) -texture = ExtResource( 2 ) +texture = ExtResource("2") flip_h = true region_enabled = true region_rect = Rect2(0, 0, 45, 22) @@ -63,49 +63,49 @@ region_rect = Rect2(0, 0, 45, 22) [node name="7" type="Sprite2D" parent="Buttons"] position = Vector2(156.677, -220.11) scale = Vector2(1.0458, 2.16952) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 22) [node name="8" type="Sprite2D" parent="Buttons"] position = Vector2(-67.5308, 164.422) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="9" type="Sprite2D" parent="Buttons"] position = Vector2(75.8825, 167.363) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="10" type="Sprite2D" parent="Buttons"] position = Vector2(-46.6707, 52.702) scale = Vector2(0.810497, 0.57205) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="11" type="Sprite2D" parent="Buttons"] position = Vector2(56.2581, 54.4382) scale = Vector2(0.810497, 0.57205) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) [node name="12" type="Sprite2D" parent="Buttons"] position = Vector2(-139.402, 46.8295) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(50, 0, 54, 14) [node name="13" type="Sprite2D" parent="Buttons"] position = Vector2(-139.838, 115.789) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") flip_v = true region_enabled = true region_rect = Rect2(50, 0, 54, 14) @@ -113,14 +113,14 @@ region_rect = Rect2(50, 0, 54, 14) [node name="14" type="Sprite2D" parent="Buttons"] position = Vector2(-172.262, 81.8793) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(50, 0, 14, 54) [node name="15" type="Sprite2D" parent="Buttons"] position = Vector2(-105.085, 81.0326) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") flip_h = true region_enabled = true region_rect = Rect2(50, 0, 14, 54) @@ -128,7 +128,7 @@ region_rect = Rect2(50, 0, 14, 54) [node name="16" type="Sprite2D" parent="Buttons"] position = Vector2(4, 64) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(0, 0, 45, 45) @@ -137,14 +137,14 @@ region_rect = Rect2(0, 0, 45, 45) [node name="0-" type="Sprite2D" parent="Axes"] position = Vector2(-94.4295, 164.932) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(50, 0, 14, 54) [node name="0+" type="Sprite2D" parent="Axes"] position = Vector2(-40.3475, 164.509) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") flip_h = true region_enabled = true region_rect = Rect2(50, 0, 14, 54) @@ -152,14 +152,14 @@ region_rect = Rect2(50, 0, 14, 54) [node name="1-" type="Sprite2D" parent="Axes"] position = Vector2(-67.6802, 137.926) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(50, 0, 54, 14) [node name="1+" type="Sprite2D" parent="Axes"] position = Vector2(-67.4618, 192.915) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") flip_v = true region_enabled = true region_rect = Rect2(50, 0, 54, 14) @@ -167,14 +167,14 @@ region_rect = Rect2(50, 0, 54, 14) [node name="2-" type="Sprite2D" parent="Axes"] position = Vector2(48.8152, 167.145) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(50, 0, 14, 54) [node name="2+" type="Sprite2D" parent="Axes"] position = Vector2(102.899, 167.857) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") flip_h = true region_enabled = true region_rect = Rect2(50, 0, 14, 54) @@ -182,14 +182,14 @@ region_rect = Rect2(50, 0, 14, 54) [node name="3-" type="Sprite2D" parent="Axes"] position = Vector2(76.6557, 140.986) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") region_enabled = true region_rect = Rect2(50, 0, 54, 14) [node name="3+" type="Sprite2D" parent="Axes"] position = Vector2(76.0009, 195.339) scale = Vector2(0.9, 0.9) -texture = ExtResource( 2 ) +texture = ExtResource("2") flip_v = true region_enabled = true region_rect = Rect2(50, 0, 54, 14) diff --git a/misc/joypads/joypads.gd b/misc/joypads/joypads.gd index 000f2c37556..ed826244c61 100644 --- a/misc/joypads/joypads.gd +++ b/misc/joypads/joypads.gd @@ -24,9 +24,7 @@ var axis_value func _ready(): set_physics_process(true) - Input.connect(&"joy_connection_changed", self._on_joy_connection_changed) - # Guide button, not supported <= 3.2.3, so manually hide to account for that case. - joypad_buttons.get_child(16).hide() + Input.joy_connection_changed.connect(self._on_joy_connection_changed) func _process(_delta): @@ -41,12 +39,12 @@ func _process(_delta): # Loop through the axes and show their current values. for axis in range(int(min(JOY_AXIS_MAX, 11))): axis_value = Input.get_joy_axis(joy_num, axis) - axes.get_node(^"Axis" + str(axis) + "/ProgressBar").set_value(100 * axis_value) - axes.get_node(^"Axis" + str(axis) + "/ProgressBar/Value").set_text(str(axis_value)) + axes.get_node("Axis" + str(axis) + "/ProgressBar").set_value(100 * axis_value) + axes.get_node("Axis" + str(axis) + "/ProgressBar/Value").set_text(str(axis_value)) # Scaled value used for alpha channel using valid range rather than including unusable deadzone values. var scaled_alpha_value = (abs(axis_value) - DEADZONE) / (1.0 - DEADZONE) # Show joypad direction indicators - if axis <= JOY_ANALOG_RY: + if axis <= JOY_AXIS_RIGHT_Y: if abs(axis_value) < DEADZONE: joypad_axes.get_node(str(axis) + "+").hide() joypad_axes.get_node(str(axis) + "-").hide() @@ -60,36 +58,36 @@ func _process(_delta): joypad_axes.get_node(str(axis) + "-").show() # Transparent white modulate, non-alpha color channels are not changed here. joypad_axes.get_node(str(axis) + "-").self_modulate.a = scaled_alpha_value - elif axis == JOY_ANALOG_L2: + elif axis == JOY_AXIS_TRIGGER_LEFT: if axis_value <= DEADZONE: - joypad_buttons.get_child(JOY_ANALOG_L2).hide() + joypad_buttons.get_child(JOY_AXIS_TRIGGER_LEFT).hide() else: - joypad_buttons.get_child(JOY_ANALOG_L2).show() + joypad_buttons.get_child(JOY_AXIS_TRIGGER_LEFT).show() # Transparent white modulate, non-alpha color channels are not changed here. - joypad_buttons.get_child(JOY_ANALOG_L2).self_modulate.a = scaled_alpha_value - elif axis == JOY_ANALOG_R2: + joypad_buttons.get_child(JOY_AXIS_TRIGGER_LEFT).self_modulate.a = scaled_alpha_value + elif axis == JOY_AXIS_TRIGGER_RIGHT: if axis_value <= DEADZONE: - joypad_buttons.get_child(JOY_ANALOG_R2).hide() + joypad_buttons.get_child(JOY_AXIS_TRIGGER_RIGHT).hide() else: - joypad_buttons.get_child(JOY_ANALOG_R2).show() + joypad_buttons.get_child(JOY_AXIS_TRIGGER_RIGHT).show() # Transparent white modulate, non-alpha color channels are not changed here. - joypad_buttons.get_child(JOY_ANALOG_R2).self_modulate.a = scaled_alpha_value + joypad_buttons.get_child(JOY_AXIS_TRIGGER_RIGHT).self_modulate.a = scaled_alpha_value # Highlight axis labels that are within the "active" value range. Simular to the button highlighting for loop below. - axes.get_node(^"Axis" + str(axis) + "/Label").add_color_override("font_color", FONT_COLOR_DEFAULT) + axes.get_node("Axis" + str(axis) + "/Label").add_theme_color_override("font_color", FONT_COLOR_DEFAULT) if abs(axis_value) >= DEADZONE: - axes.get_node(^"Axis" + str(axis) + "/Label").add_color_override("font_color", FONT_COLOR_ACTIVE) + axes.get_node("Axis" + str(axis) + "/Label").add_theme_color_override("font_color", FONT_COLOR_ACTIVE) # Loop through the buttons and highlight the ones that are pressed. - for btn in range(JOY_BUTTON_0, int(min(JOY_BUTTON_MAX, 24))): - if Input.is_joy_button_pressed(joy_num, btn): - button_grid.get_child(btn).add_color_override("font_color", FONT_COLOR_ACTIVE) - if btn < 17 and btn != JOY_ANALOG_L2 and btn != JOY_ANALOG_R2: - joypad_buttons.get_child(btn).show() + for button in range(int(min(JOY_BUTTON_MAX, 24))): + if Input.is_joy_button_pressed(joy_num, button): + button_grid.get_child(button).add_theme_color_override("font_color", FONT_COLOR_ACTIVE) + if button < 17 and button != JOY_AXIS_TRIGGER_LEFT and button != JOY_AXIS_TRIGGER_RIGHT: + joypad_buttons.get_child(button).show() else: - button_grid.get_child(btn).add_color_override("font_color", FONT_COLOR_DEFAULT) - if btn < 17 and btn != JOY_ANALOG_L2 and btn != JOY_ANALOG_R2: - joypad_buttons.get_child(btn).hide() + button_grid.get_child(button).add_theme_color_override("font_color", FONT_COLOR_DEFAULT) + if button < 17 and button != JOY_AXIS_TRIGGER_LEFT and button != JOY_AXIS_TRIGGER_RIGHT: + joypad_buttons.get_child(button).hide() # Called whenever a joypad has been connected or disconnected. @@ -119,7 +117,7 @@ func _on_Remap_pressed(): func _on_Clear_pressed(): var guid = Input.get_joy_guid(cur_joy) if guid.is_empty(): - printerr("No gamepad selected") + push_error("No gamepad selected.") return Input.remove_joy_mapping(guid) diff --git a/misc/joypads/joypads.tscn b/misc/joypads/joypads.tscn index 9fb3a607975..585f78e9264 100644 --- a/misc/joypads/joypads.tscn +++ b/misc/joypads/joypads.tscn @@ -1,10 +1,52 @@ -[gd_scene load_steps=4 format=2] - -[ext_resource path="res://joypads.gd" type="Script" id=1] -[ext_resource path="res://joypad_diagram.tscn" type="PackedScene" id=2] -[ext_resource path="res://remap/remap_wizard.tscn" type="PackedScene" id=3] +[gd_scene load_steps=8 format=3 uid="uid://b2dl5qw1jss2w"] + +[ext_resource type="Script" path="res://joypads.gd" id="1"] +[ext_resource type="PackedScene" uid="uid://bsrktfrmtkqvo" path="res://joypad_diagram.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://na4hexkywup6" path="res://remap/remap_wizard.tscn" id="3"] + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_g3l3j"] +content_margin_top = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0.2, 0.2, 0.2, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_do8y5"] +content_margin_top = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(1, 1, 1, 0.4) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ehk82"] +content_margin_top = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(0.2, 0.2, 0.2, 1) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 + +[sub_resource type="StyleBoxFlat" id="StyleBoxFlat_ujhcf"] +content_margin_top = 10.0 +content_margin_bottom = 10.0 +bg_color = Color(1, 1, 1, 0.4) +corner_radius_top_left = 3 +corner_radius_top_right = 3 +corner_radius_bottom_right = 3 +corner_radius_bottom_left = 3 +corner_detail = 3 [node name="joypads" type="Control"] +layout_mode = 3 +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -13,1153 +55,812 @@ offset_left = -270.0 offset_top = -240.0 offset_right = 270.0 offset_bottom = 240.0 -script = ExtResource( 1 ) +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1") -[node name="JoypadDiagram" parent="." instance=ExtResource( 2 )] +[node name="JoypadDiagram" parent="." instance=ExtResource("2")] position = Vector2(415, 170) scale = Vector2(0.5, 0.5) [node name="DeviceInfo" type="HBoxContainer" parent="."] +anchors_preset = 10 anchor_right = 1.0 offset_bottom = 30.0 -rect_min_size = Vector2(500, 30) -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 [node name="Label" type="Label" parent="DeviceInfo"] -offset_right = 50.0 -offset_bottom = 30.0 -rect_min_size = Vector2(50, 0) +offset_right = 52.0 +offset_bottom = 31.0 size_flags_vertical = 1 text = "Device" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="JoyNumber" type="SpinBox" parent="DeviceInfo"] -offset_left = 54.0 -offset_right = 134.0 -offset_bottom = 30.0 -rect_min_size = Vector2(80, 0) -size_flags_vertical = 3 +offset_left = 56.0 +offset_right = 139.0 +offset_bottom = 31.0 +size_flags_vertical = 0 max_value = 16.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="VSeparator" type="VSeparator" parent="DeviceInfo"] modulate = Color(1, 1, 1, 0) -offset_left = 138.0 -offset_right = 148.0 -offset_bottom = 30.0 -rect_min_size = Vector2(10, 0) +offset_left = 143.0 +offset_right = 147.0 +offset_bottom = 31.0 [node name="JoyName" type="Label" parent="DeviceInfo"] -offset_left = 152.0 +offset_left = 151.0 offset_right = 540.0 -offset_bottom = 30.0 +offset_bottom = 31.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(0.229156, 1, 0.239205, 1) text = "Controller Name Here" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Axes" type="VBoxContainer" parent="."] offset_top = 50.0 offset_right = 255.0 offset_bottom = 310.0 +theme_override_constants/separation = -2 [node name="Axis0" type="HBoxContainer" parent="Axes"] -offset_right = 260.0 -offset_bottom = 20.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 26.0 [node name="Label" type="Label" parent="Axes/Axis0"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 0" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis0"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_g3l3j") +theme_override_styles/fill = SubResource("StyleBoxFlat_do8y5") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis0/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis1" type="HBoxContainer" parent="Axes"] offset_top = 24.0 -offset_right = 260.0 -offset_bottom = 44.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 50.0 [node name="Label" type="Label" parent="Axes/Axis1"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 1" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis1"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis1/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis2" type="HBoxContainer" parent="Axes"] offset_top = 48.0 -offset_right = 260.0 -offset_bottom = 68.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 74.0 [node name="Label" type="Label" parent="Axes/Axis2"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 2" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis2"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis2/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis3" type="HBoxContainer" parent="Axes"] offset_top = 72.0 -offset_right = 260.0 -offset_bottom = 92.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 98.0 [node name="Label" type="Label" parent="Axes/Axis3"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 3" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis3"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis3/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis4" type="HBoxContainer" parent="Axes"] offset_top = 96.0 -offset_right = 260.0 -offset_bottom = 116.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 122.0 [node name="Label" type="Label" parent="Axes/Axis4"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 4" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis4"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis4/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis5" type="HBoxContainer" parent="Axes"] offset_top = 120.0 -offset_right = 260.0 -offset_bottom = 140.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 146.0 [node name="Label" type="Label" parent="Axes/Axis5"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 5" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis5"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis5/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis6" type="HBoxContainer" parent="Axes"] offset_top = 144.0 -offset_right = 260.0 -offset_bottom = 164.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 170.0 [node name="Label" type="Label" parent="Axes/Axis6"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 6" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis6"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis6/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis7" type="HBoxContainer" parent="Axes"] offset_top = 168.0 -offset_right = 260.0 -offset_bottom = 188.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 194.0 [node name="Label" type="Label" parent="Axes/Axis7"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 7" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis7"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis7/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis8" type="HBoxContainer" parent="Axes"] offset_top = 192.0 -offset_right = 260.0 -offset_bottom = 212.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 218.0 [node name="Label" type="Label" parent="Axes/Axis8"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 8" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis8"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis8/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis9" type="HBoxContainer" parent="Axes"] offset_top = 216.0 -offset_right = 260.0 -offset_bottom = 236.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 242.0 [node name="Label" type="Label" parent="Axes/Axis9"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 9" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis9"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis9/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Axis10" type="HBoxContainer" parent="Axes"] offset_top = 240.0 -offset_right = 260.0 -offset_bottom = 260.0 -rect_min_size = Vector2(260, 20) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 255.0 +offset_bottom = 266.0 [node name="Label" type="Label" parent="Axes/Axis10"] -offset_right = 50.0 -offset_bottom = 20.0 -rect_min_size = Vector2(50, 0) +offset_right = 57.0 +offset_bottom = 26.0 +size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) +size_flags_stretch_ratio = 0.3 text = "Axis 10" -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="ProgressBar" type="ProgressBar" parent="Axes/Axis10"] -offset_left = 54.0 -offset_right = 260.0 -offset_bottom = 20.0 +offset_left = 61.0 +offset_top = 3.0 +offset_right = 255.0 +offset_bottom = 23.0 size_flags_horizontal = 3 -size_flags_vertical = 1 +size_flags_vertical = 4 +theme_override_styles/background = SubResource("StyleBoxFlat_ehk82") +theme_override_styles/fill = SubResource("StyleBoxFlat_ujhcf") min_value = -100.0 step = 0.0001 -percent_visible = false -__meta__ = { -"_edit_use_anchors_": false -} +show_percentage = false [node name="Value" type="Label" parent="Axes/Axis10/ProgressBar"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 1 text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="Buttons" type="VBoxContainer" parent="."] +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = -250.0 offset_top = -150.0 -__meta__ = { -"_edit_use_anchors_": false -} +offset_bottom = -34.0 +grow_horizontal = 0 +grow_vertical = 0 [node name="Label" type="Label" parent="Buttons"] -offset_right = 54.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_right = 66.0 +offset_bottom = 26.0 size_flags_horizontal = 2 size_flags_vertical = 0 text = "Buttons:" -__meta__ = { -"_edit_use_anchors_": false -} [node name="ButtonGrid" type="GridContainer" parent="Buttons"] -offset_top = 24.0 +offset_top = 30.0 offset_right = 250.0 -offset_bottom = 92.0 -rect_min_size = Vector2(200, 0) +offset_bottom = 116.0 columns = 8 -__meta__ = { -"_edit_use_anchors_": false -} [node name="0" type="Label" parent="Buttons/ButtonGrid"] -offset_right = 27.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_right = 28.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "0" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="1" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 31.0 -offset_right = 58.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_left = 32.0 +offset_right = 60.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "1" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="2" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 62.0 -offset_right = 89.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_left = 64.0 +offset_right = 92.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "2" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="3" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 93.0 -offset_right = 120.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_left = 96.0 +offset_right = 124.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "3" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="4" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 124.0 -offset_right = 151.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_left = 128.0 +offset_right = 156.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "4" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="5" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 155.0 -offset_right = 182.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_left = 160.0 +offset_right = 188.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "5" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="6" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 186.0 -offset_right = 213.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_left = 192.0 +offset_right = 219.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "6" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="7" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 217.0 -offset_right = 244.0 -offset_bottom = 20.0 -rect_min_size = Vector2(0, 20) +offset_left = 223.0 +offset_right = 250.0 +offset_bottom = 26.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "7" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="8" type="Label" parent="Buttons/ButtonGrid"] -offset_top = 24.0 -offset_right = 27.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_top = 30.0 +offset_right = 28.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "8" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="9" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 31.0 -offset_top = 24.0 -offset_right = 58.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_left = 32.0 +offset_top = 30.0 +offset_right = 60.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "9" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="10" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 62.0 -offset_top = 24.0 -offset_right = 89.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_left = 64.0 +offset_top = 30.0 +offset_right = 92.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "10" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="11" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 93.0 -offset_top = 24.0 -offset_right = 120.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_left = 96.0 +offset_top = 30.0 +offset_right = 124.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "11" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="12" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 124.0 -offset_top = 24.0 -offset_right = 151.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_left = 128.0 +offset_top = 30.0 +offset_right = 156.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "12" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="13" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 155.0 -offset_top = 24.0 -offset_right = 182.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_left = 160.0 +offset_top = 30.0 +offset_right = 188.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "13" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="14" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 186.0 -offset_top = 24.0 -offset_right = 213.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_left = 192.0 +offset_top = 30.0 +offset_right = 219.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "14" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="15" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 217.0 -offset_top = 24.0 -offset_right = 244.0 -offset_bottom = 44.0 -rect_min_size = Vector2(0, 20) +offset_left = 223.0 +offset_top = 30.0 +offset_right = 250.0 +offset_bottom = 56.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "15" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="16" type="Label" parent="Buttons/ButtonGrid"] -offset_top = 48.0 -offset_right = 27.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_top = 60.0 +offset_right = 28.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "16" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="17" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 31.0 -offset_top = 48.0 -offset_right = 58.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_left = 32.0 +offset_top = 60.0 +offset_right = 60.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "17" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="18" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 62.0 -offset_top = 48.0 -offset_right = 89.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_left = 64.0 +offset_top = 60.0 +offset_right = 92.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "18" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="19" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 93.0 -offset_top = 48.0 -offset_right = 120.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_left = 96.0 +offset_top = 60.0 +offset_right = 124.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "19" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="20" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 124.0 -offset_top = 48.0 -offset_right = 151.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_left = 128.0 +offset_top = 60.0 +offset_right = 156.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "20" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="21" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 155.0 -offset_top = 48.0 -offset_right = 182.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_left = 160.0 +offset_top = 60.0 +offset_right = 188.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "21" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="22" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 186.0 -offset_top = 48.0 -offset_right = 213.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_left = 192.0 +offset_top = 60.0 +offset_right = 219.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "22" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="23" type="Label" parent="Buttons/ButtonGrid"] -offset_left = 217.0 -offset_top = 48.0 -offset_right = 244.0 -offset_bottom = 68.0 -rect_min_size = Vector2(0, 20) +offset_left = 223.0 +offset_top = 60.0 +offset_right = 250.0 +offset_bottom = 86.0 size_flags_horizontal = 3 size_flags_vertical = 1 -custom_colors/font_color = Color(1, 1, 1, 0.501961) text = "23" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Vibration" type="VBoxContainer" parent="."] +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_top = -140.0 offset_right = 260.0 -__meta__ = { -"_edit_use_anchors_": false -} +grow_vertical = 0 [node name="Weak" type="HBoxContainer" parent="Vibration"] -offset_right = 260.0 -offset_bottom = 24.0 -rect_min_size = Vector2(260, 0) -__meta__ = { -"_edit_use_anchors_": false -} +offset_right = 270.0 +offset_bottom = 31.0 [node name="Label" type="Label" parent="Vibration/Weak"] -offset_right = 182.0 -offset_bottom = 24.0 +offset_right = 183.0 +offset_bottom = 31.0 size_flags_horizontal = 3 size_flags_vertical = 1 text = "Vibration Weak Motor:" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Value" type="SpinBox" parent="Vibration/Weak"] -offset_left = 186.0 -offset_right = 260.0 -offset_bottom = 24.0 +offset_left = 187.0 +offset_right = 270.0 +offset_bottom = 31.0 size_flags_vertical = 3 max_value = 1.0 step = 0.05 value = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Strong" type="HBoxContainer" parent="Vibration"] -offset_top = 28.0 -offset_right = 260.0 -offset_bottom = 52.0 -rect_min_size = Vector2(260, 0) -__meta__ = { -"_edit_use_anchors_": false -} +offset_top = 35.0 +offset_right = 270.0 +offset_bottom = 66.0 [node name="Label" type="Label" parent="Vibration/Strong"] -offset_right = 182.0 -offset_bottom = 24.0 +offset_right = 183.0 +offset_bottom = 31.0 size_flags_horizontal = 3 size_flags_vertical = 1 text = "Vibration Strong Motor:" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Value" type="SpinBox" parent="Vibration/Strong"] -offset_left = 186.0 -offset_right = 260.0 -offset_bottom = 24.0 +offset_left = 187.0 +offset_right = 270.0 +offset_bottom = 31.0 size_flags_vertical = 3 max_value = 1.0 step = 0.05 value = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Duration" type="HBoxContainer" parent="Vibration"] -offset_top = 56.0 -offset_right = 260.0 -offset_bottom = 80.0 -rect_min_size = Vector2(260, 0) -__meta__ = { -"_edit_use_anchors_": false -} +offset_top = 70.0 +offset_right = 270.0 +offset_bottom = 101.0 [node name="Label" type="Label" parent="Vibration/Duration"] -offset_right = 182.0 -offset_bottom = 24.0 +offset_right = 183.0 +offset_bottom = 31.0 size_flags_horizontal = 3 size_flags_vertical = 1 text = "Vibration Duration:" -align = 1 -valign = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Value" type="SpinBox" parent="Vibration/Duration"] -offset_left = 186.0 -offset_right = 260.0 -offset_bottom = 24.0 +offset_left = 187.0 +offset_right = 270.0 +offset_bottom = 31.0 size_flags_vertical = 3 max_value = 10.0 step = 0.1 value = 1.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="HSeparator" type="HSeparator" parent="Vibration"] modulate = Color(1, 1, 1, 0) -offset_top = 84.0 -offset_right = 260.0 -offset_bottom = 94.0 -rect_min_size = Vector2(0, 10) +offset_top = 105.0 +offset_right = 270.0 +offset_bottom = 109.0 [node name="Buttons" type="HBoxContainer" parent="Vibration"] -offset_top = 98.0 -offset_right = 260.0 -offset_bottom = 128.0 -rect_min_size = Vector2(260, 30) -__meta__ = { -"_edit_use_anchors_": false -} +offset_top = 113.0 +offset_right = 270.0 +offset_bottom = 144.0 [node name="Start" type="Button" parent="Vibration/Buttons"] -offset_right = 116.0 -offset_bottom = 30.0 -focus_mode = 0 +offset_right = 129.0 +offset_bottom = 31.0 size_flags_horizontal = 3 size_flags_vertical = 3 +focus_mode = 0 text = "Start Vibration" -__meta__ = { -"_edit_use_anchors_": false -} [node name="VSeparator" type="VSeparator" parent="Vibration/Buttons"] modulate = Color(1, 1, 1, 0) -offset_left = 120.0 -offset_right = 140.0 -offset_bottom = 30.0 -rect_min_size = Vector2(20, 0) -__meta__ = { -"_edit_use_anchors_": false -} +offset_left = 133.0 +offset_right = 137.0 +offset_bottom = 31.0 [node name="Stop" type="Button" parent="Vibration/Buttons"] -offset_left = 144.0 -offset_right = 260.0 -offset_bottom = 30.0 +offset_left = 141.0 +offset_right = 270.0 +offset_bottom = 31.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Stop Vibration" -__meta__ = { -"_edit_use_anchors_": false -} [node name="VBoxContainer" type="HBoxContainer" parent="."] +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -250.0 -offset_top = -42.0 -offset_bottom = -12.0 +offset_left = -261.0 +offset_top = -30.0 +offset_bottom = 1.0 +grow_horizontal = 0 +grow_vertical = 0 alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Clear" type="Button" parent="VBoxContainer"] -offset_left = 11.0 -offset_right = 130.0 -offset_bottom = 30.0 +offset_right = 141.0 +offset_bottom = 31.0 text = "Set Raw Mapping" [node name="Remap" type="Button" parent="VBoxContainer"] -offset_left = 134.0 -offset_right = 190.0 -offset_bottom = 30.0 +offset_left = 145.0 +offset_right = 207.0 +offset_bottom = 31.0 text = "Remap" [node name="Show" type="Button" parent="VBoxContainer"] -offset_left = 194.0 -offset_right = 239.0 -offset_bottom = 30.0 +offset_left = 211.0 +offset_right = 261.0 +offset_bottom = 31.0 text = "Show" -[node name="RemapWizard" parent="." instance=ExtResource( 3 )] +[node name="RemapWizard" parent="." instance=ExtResource("3")] [connection signal="pressed" from="Vibration/Buttons/Start" to="." method="_on_start_vibration_pressed"] [connection signal="pressed" from="Vibration/Buttons/Stop" to="." method="_on_stop_vibration_pressed"] diff --git a/misc/joypads/project.godot b/misc/joypads/project.godot index 77b2a5dbe7e..6836ebc6b78 100644 --- a/misc/joypads/project.godot +++ b/misc/joypads/project.godot @@ -6,10 +6,10 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 _global_script_classes=[{ -"base": "Reference", +"base": "RefCounted", "class": &"JoyMapping", "language": &"GDScript", "path": "res://remap/joy_mapping.gd" @@ -23,26 +23,14 @@ _global_script_class_icons={ config/name="Joypads" config/description="A tool for testing joypad input." run/main_scene="res://joypads.tscn" +config/features=PackedStringArray("4.0") +run/low_processor_mode=true config/icon="res://icon.png" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] -window/size/width=600 -window/size/height=540 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=600 +window/size/viewport_height=540 +window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/misc/joypads/remap/joy_mapping.gd b/misc/joypads/remap/joy_mapping.gd index 31040c575ec..5173920969d 100644 --- a/misc/joypads/remap/joy_mapping.gd +++ b/misc/joypads/remap/joy_mapping.gd @@ -25,28 +25,28 @@ const PLATFORMS = { const BASE = { # Buttons - "a": JOY_XBOX_A, - "b": JOY_XBOX_B, - "y": JOY_XBOX_Y, - "x": JOY_XBOX_X, - "start": JOY_START, - "back": JOY_SELECT, - "leftstick": JOY_BUTTON_8, - "rightstick": JOY_BUTTON_9, - "leftshoulder": JOY_L, - "rightshoulder": JOY_R, - "dpup": JOY_DPAD_UP, - "dpleft": JOY_DPAD_LEFT, - "dpdown": JOY_DPAD_DOWN, - "dpright": JOY_DPAD_RIGHT, + "a": JOY_BUTTON_A, + "b": JOY_BUTTON_B, + "y": JOY_BUTTON_Y, + "x": JOY_BUTTON_X, + "start": JOY_BUTTON_START, + "back": JOY_BUTTON_BACK, + "leftstick": JOY_BUTTON_LEFT_STICK, + "rightstick": JOY_BUTTON_RIGHT_STICK, + "leftshoulder": JOY_BUTTON_LEFT_SHOULDER, + "rightshoulder": JOY_BUTTON_RIGHT_SHOULDER, + "dpup": JOY_BUTTON_DPAD_UP, + "dpleft": JOY_BUTTON_DPAD_LEFT, + "dpdown": JOY_BUTTON_DPAD_DOWN, + "dpright": JOY_BUTTON_DPAD_RIGHT, # Axis - "leftx": JOY_AXIS_0, - "lefty": JOY_AXIS_1, - "rightx": JOY_AXIS_2, - "righty": JOY_AXIS_3, - "lefttrigger": JOY_ANALOG_L2, - "righttrigger": JOY_ANALOG_R2, + "leftx": JOY_AXIS_LEFT_X, + "lefty": JOY_AXIS_LEFT_Y, + "rightx": JOY_AXIS_RIGHT_X, + "righty": JOY_AXIS_RIGHT_Y, + "lefttrigger": JOY_AXIS_TRIGGER_LEFT, + "righttrigger": JOY_AXIS_TRIGGER_RIGHT, } const XBOX = { diff --git a/misc/joypads/remap/remap_wizard.gd b/misc/joypads/remap/remap_wizard.gd index bab06a203e6..9aa8619c499 100644 --- a/misc/joypads/remap/remap_wizard.gd +++ b/misc/joypads/remap/remap_wizard.gd @@ -22,7 +22,7 @@ func _input(event): if cur_step == -1: return if event is InputEventJoypadMotion: - get_tree().set_input_as_handled() + get_viewport().set_input_as_handled() var motion = event as InputEventJoypadMotion if abs(motion.axis_value) > DEADZONE: var idx = motion.axis @@ -37,7 +37,7 @@ func _input(event): joy_mapping_text.text = map.to_human_string() cur_mapping[steps[cur_step]] = map elif event is InputEventJoypadButton and event.pressed: - get_tree().set_input_as_handled() + get_viewport().set_input_as_handled() var btn = event as InputEventJoypadButton var map = JoyMapping.new(JoyMapping.TYPE.BTN, btn.button_index) joy_mapping_text.text = map.to_human_string() @@ -89,7 +89,7 @@ func reset(): func step_next(): - $Mapping.window_title = "Step: %d/%d" % [cur_step + 1, steps.size()] + $Mapping.title = "Step: %d/%d" % [cur_step + 1, steps.size()] joy_mapping_text.text = "" if cur_step >= steps.size(): remap_and_close(cur_mapping) @@ -98,8 +98,8 @@ func step_next(): func show_map(): - if OS.get_name() == "HTML5": - JavaScript.eval("window.prompt('This is the resulting remap string', '" + last_mapping + "')") + if OS.get_name() == "Web": + JavaScriptBridge.eval("window.prompt('This is the resulting remap string', '%s')" % last_mapping) else: $MapWindow/Margin/VBoxContainer/TextEdit.text = last_mapping $MapWindow.popup_centered() @@ -119,8 +119,8 @@ func _update_step(): else: joy_buttons.get_node(str(idx)).show() - joy_mapping_full_axis.pressed = key in ["leftx", "lefty", "rightx", "righty", "righttrigger", "lefttrigger"] - joy_mapping_axis_invert.pressed = false + joy_mapping_full_axis.button_pressed = key in ["leftx", "lefty", "rightx", "righty", "righttrigger", "lefttrigger"] + joy_mapping_axis_invert.button_pressed = false if cur_mapping.has(key): var cur = cur_mapping[steps[cur_step]] joy_mapping_text.text = cur.to_human_string() @@ -188,3 +188,15 @@ func _on_InvertAxis_toggled(button_pressed): if cur_mapping.has(key) and cur_mapping[key].type == JoyMapping.TYPE.AXIS: cur_mapping[key].inverted = button_pressed joy_mapping_text.text = cur_mapping[key].to_human_string() + + +func _on_start_close_requested(): + $Start.hide() + + +func _on_mapping_close_requested(): + $Mapping.hide() + + +func _on_map_window_close_requested(): + $MapWindow.hide() diff --git a/misc/joypads/remap/remap_wizard.tscn b/misc/joypads/remap/remap_wizard.tscn index 3ab5ff26fae..108e62657ed 100644 --- a/misc/joypads/remap/remap_wizard.tscn +++ b/misc/joypads/remap/remap_wizard.tscn @@ -1,276 +1,256 @@ -[gd_scene load_steps=3 format=2] +[gd_scene load_steps=3 format=3 uid="uid://na4hexkywup6"] -[ext_resource path="res://remap/remap_wizard.gd" type="Script" id=1] -[ext_resource path="res://joypad_diagram.tscn" type="PackedScene" id=2] +[ext_resource type="Script" path="res://remap/remap_wizard.gd" id="1"] +[ext_resource type="PackedScene" uid="uid://bsrktfrmtkqvo" path="res://joypad_diagram.tscn" id="2"] [node name="RemapWizard" type="Node"] -script = ExtResource( 1 ) - -[node name="Start" type="WindowDialog" parent="."] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -128.0 -offset_top = -96.0 -offset_right = 128.0 -offset_bottom = 96.0 -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("1") + +[node name="Start" type="Window" parent="."] +position = Vector2i(100, 80) +size = Vector2i(400, 333) +visible = false +min_size = Vector2i(400, 333) [node name="Margin" type="MarginContainer" parent="Start"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -custom_constants/offset_right = 12 -custom_constants/offset_top = 12 -custom_constants/offset_left = 12 -custom_constants/offset_bottom = 12 -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 +grow_vertical = 2 [node name="Layout" type="VBoxContainer" parent="Start/Margin"] -offset_left = 12.0 -offset_top = 12.0 -offset_right = 244.0 -offset_bottom = 180.0 -custom_constants/separation = 20 +layout_mode = 2 +offset_right = 600.0 +offset_bottom = 540.0 alignment = 1 -__meta__ = { -"_edit_use_anchors_": false -} [node name="HTML5" type="VBoxContainer" parent="Start/Margin/Layout"] -offset_top = 28.0 -offset_right = 232.0 -offset_bottom = 66.0 +layout_mode = 2 +offset_top = 207.0 +offset_right = 600.0 +offset_bottom = 268.0 [node name="Label" type="Label" parent="Start/Margin/Layout/HTML5"] -offset_right = 232.0 -offset_bottom = 14.0 +layout_mode = 2 +offset_right = 600.0 +offset_bottom = 26.0 text = "Try a common mapping:" [node name="known" type="HBoxContainer" parent="Start/Margin/Layout/HTML5"] -offset_top = 18.0 -offset_right = 232.0 -offset_bottom = 38.0 -custom_constants/separation = 20 +layout_mode = 2 +offset_top = 30.0 +offset_right = 600.0 +offset_bottom = 61.0 alignment = 1 [node name="Xbox" type="Button" parent="Start/Margin/Layout/HTML5/known"] -offset_left = 44.0 -offset_right = 87.0 -offset_bottom = 20.0 +layout_mode = 2 +offset_left = 228.0 +offset_right = 275.0 +offset_bottom = 31.0 text = "Xbox" [node name="XboxOSX" type="Button" parent="Start/Margin/Layout/HTML5/known"] -offset_left = 107.0 -offset_right = 188.0 -offset_bottom = 20.0 +layout_mode = 2 +offset_left = 279.0 +offset_right = 372.0 +offset_bottom = 31.0 text = "Xbox (OSX)" [node name="Label" type="Label" parent="Start/Margin/Layout"] -offset_top = 86.0 -offset_right = 232.0 -offset_bottom = 100.0 +layout_mode = 2 +offset_top = 272.0 +offset_right = 600.0 +offset_bottom = 298.0 text = "Or start the wizard" [node name="Buttons" type="HBoxContainer" parent="Start/Margin/Layout"] -offset_top = 120.0 -offset_right = 232.0 -offset_bottom = 140.0 +layout_mode = 2 +offset_top = 302.0 +offset_right = 600.0 +offset_bottom = 333.0 [node name="Cancel" type="Button" parent="Start/Margin/Layout/Buttons"] -offset_right = 54.0 -offset_bottom = 20.0 +layout_mode = 2 +offset_right = 60.0 +offset_bottom = 31.0 text = "Cancel" -__meta__ = { -"_edit_use_anchors_": false -} [node name="Control" type="Control" parent="Start/Margin/Layout/Buttons"] -offset_left = 58.0 -offset_right = 172.0 -offset_bottom = 20.0 +layout_mode = 2 +anchors_preset = 0 +offset_left = 64.0 +offset_right = 534.0 +offset_bottom = 31.0 size_flags_horizontal = 3 [node name="Wizard" type="Button" parent="Start/Margin/Layout/Buttons"] -offset_left = 176.0 -offset_right = 232.0 -offset_bottom = 20.0 +layout_mode = 2 +offset_left = 538.0 +offset_right = 600.0 +offset_bottom = 31.0 text = "Wizard" -[node name="Mapping" type="WindowDialog" parent="."] -offset_right = 305.0 -offset_bottom = 437.0 -rect_min_size = Vector2(330, 440) -popup_exclusive = true -__meta__ = { -"_edit_use_anchors_": false -} +[node name="Mapping" type="Window" parent="."] +position = Vector2i(130, 200) +size = Vector2i(340, 100) +visible = false +min_size = Vector2i(340, 100) [node name="Margin" type="MarginContainer" parent="Mapping"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -custom_constants/offset_right = 12 -custom_constants/offset_top = 12 -custom_constants/offset_left = 12 -custom_constants/offset_bottom = 12 -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 +grow_vertical = 2 [node name="VBox" type="VBoxContainer" parent="Mapping/Margin"] -offset_left = 12.0 -offset_top = 12.0 -offset_right = 318.0 -offset_bottom = 428.0 -custom_constants/separation = 5 +layout_mode = 2 +offset_right = 600.0 +offset_bottom = 540.0 [node name="SubViewportContainer" type="SubViewportContainer" parent="Mapping/Margin/VBox"] -offset_right = 306.0 -offset_bottom = 305.0 -rect_min_size = Vector2(305, 305) +layout_mode = 2 +offset_right = 600.0 stretch = true -__meta__ = { -"_edit_use_anchors_": false -} [node name="SubViewport" type="SubViewport" parent="Mapping/Margin/VBox/SubViewportContainer"] -size = Vector2(306, 305) handle_input_locally = false +size = Vector2i(600, 0) render_target_update_mode = 0 -[node name="JoypadDiagram" parent="Mapping/Margin/VBox/SubViewportContainer/SubViewport" instance=ExtResource( 2 )] +[node name="JoypadDiagram" parent="Mapping/Margin/VBox/SubViewportContainer/SubViewport" instance=ExtResource("2")] position = Vector2(0, 0) [node name="Camera2D" type="Camera2D" parent="Mapping/Margin/VBox/SubViewportContainer/SubViewport"] current = true [node name="Info" type="VBoxContainer" parent="Mapping/Margin/VBox"] -offset_top = 310.0 -offset_right = 306.0 -offset_bottom = 408.0 -custom_constants/separation = 20 -__meta__ = { -"_edit_use_anchors_": false -} +layout_mode = 2 +offset_top = 4.0 +offset_right = 600.0 +offset_bottom = 100.0 [node name="Text" type="HBoxContainer" parent="Mapping/Margin/VBox/Info"] -offset_right = 306.0 -offset_bottom = 14.0 +layout_mode = 2 +offset_right = 600.0 +offset_bottom = 26.0 [node name="Text" type="Label" parent="Mapping/Margin/VBox/Info/Text"] -offset_right = 125.0 -offset_bottom = 14.0 +layout_mode = 2 +offset_right = 150.0 +offset_bottom = 26.0 text = "Currently selected: " [node name="Value" type="Label" parent="Mapping/Margin/VBox/Info/Text"] -offset_left = 129.0 -offset_right = 129.0 -offset_bottom = 14.0 +layout_mode = 2 +offset_left = 154.0 +offset_top = 1.0 +offset_right = 155.0 +offset_bottom = 24.0 [node name="Extra" type="HBoxContainer" parent="Mapping/Margin/VBox/Info"] -offset_top = 34.0 -offset_right = 306.0 -offset_bottom = 58.0 +layout_mode = 2 +offset_top = 30.0 +offset_right = 600.0 +offset_bottom = 61.0 [node name="FullAxis" type="CheckBox" parent="Mapping/Margin/VBox/Info/Extra"] -offset_right = 80.0 -offset_bottom = 24.0 -hint_tooltip = "Check this if the sign of the axis keep changing from + to - when pressing and releasing. -Do not check it otherwise" +layout_mode = 2 +offset_right = 91.0 +offset_bottom = 31.0 text = "Full axis" [node name="InvertAxis" type="CheckBox" parent="Mapping/Margin/VBox/Info/Extra"] -offset_left = 84.0 -offset_right = 181.0 -offset_bottom = 24.0 -hint_tooltip = "Check this if you think the axis should be inverted" +layout_mode = 2 +offset_left = 95.0 +offset_right = 205.0 +offset_bottom = 31.0 text = "Invert Axis" [node name="Buttons" type="HBoxContainer" parent="Mapping/Margin/VBox/Info"] -offset_top = 78.0 -offset_right = 306.0 -offset_bottom = 98.0 +layout_mode = 2 +offset_top = 65.0 +offset_right = 600.0 +offset_bottom = 96.0 [node name="Prev" type="Button" parent="Mapping/Margin/VBox/Info/Buttons"] -offset_right = 67.0 -offset_bottom = 20.0 +layout_mode = 2 +offset_right = 75.0 +offset_bottom = 31.0 text = "Previous" [node name="Control" type="Control" parent="Mapping/Margin/VBox/Info/Buttons"] -offset_left = 71.0 -offset_right = 142.0 -offset_bottom = 20.0 +layout_mode = 2 +anchors_preset = 0 +offset_left = 79.0 +offset_right = 290.0 +offset_bottom = 31.0 size_flags_horizontal = 3 [node name="Skip" type="Button" parent="Mapping/Margin/VBox/Info/Buttons"] -offset_left = 146.0 -offset_right = 184.0 -offset_bottom = 20.0 +layout_mode = 2 +offset_left = 294.0 +offset_right = 335.0 +offset_bottom = 31.0 text = "Skip" -__meta__ = { -"_edit_use_anchors_": false -} [node name="Control2" type="Control" parent="Mapping/Margin/VBox/Info/Buttons"] -offset_left = 188.0 -offset_right = 260.0 -offset_bottom = 20.0 +layout_mode = 2 +anchors_preset = 0 +offset_left = 339.0 +offset_right = 551.0 +offset_bottom = 31.0 size_flags_horizontal = 3 [node name="Next" type="Button" parent="Mapping/Margin/VBox/Info/Buttons"] -offset_left = 264.0 -offset_right = 306.0 -offset_bottom = 20.0 +layout_mode = 2 +offset_left = 555.0 +offset_right = 600.0 +offset_bottom = 31.0 text = "Next" -[node name="MapWindow" type="WindowDialog" parent="."] -offset_right = 400.0 -offset_bottom = 200.0 -popup_exclusive = true -__meta__ = { -"_edit_use_anchors_": false -} +[node name="MapWindow" type="Window" parent="."] +position = Vector2i(100, 80) +size = Vector2i(400, 400) +visible = false +min_size = Vector2i(400, 400) [node name="Margin" type="MarginContainer" parent="MapWindow"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -custom_constants/offset_right = 12 -custom_constants/offset_top = 12 -custom_constants/offset_left = 12 -custom_constants/offset_bottom = 12 +grow_horizontal = 2 +grow_vertical = 2 [node name="VBoxContainer" type="VBoxContainer" parent="MapWindow/Margin"] -offset_left = 12.0 -offset_top = 12.0 -offset_right = 388.0 -offset_bottom = 188.0 -__meta__ = { -"_edit_use_anchors_": false -} +layout_mode = 2 +offset_right = 600.0 +offset_bottom = 540.0 [node name="Label" type="Label" parent="MapWindow/Margin/VBoxContainer"] -offset_right = 376.0 -offset_bottom = 14.0 +layout_mode = 2 +offset_right = 600.0 +offset_bottom = 26.0 text = "This is the resulting remap string:" [node name="TextEdit" type="TextEdit" parent="MapWindow/Margin/VBoxContainer"] -offset_top = 18.0 -offset_right = 376.0 -offset_bottom = 176.0 +layout_mode = 2 +offset_top = 30.0 +offset_right = 600.0 +offset_bottom = 540.0 size_flags_vertical = 3 -readonly = true -wrap_enabled = true + +[connection signal="close_requested" from="Start" to="." method="_on_start_close_requested"] [connection signal="pressed" from="Start/Margin/Layout/HTML5/known/Xbox" to="." method="_on_xbox_pressed"] [connection signal="pressed" from="Start/Margin/Layout/HTML5/known/XboxOSX" to="." method="_on_xboxosx_pressed"] [connection signal="pressed" from="Start/Margin/Layout/Buttons/Cancel" to="." method="_on_Cancel_pressed"] [connection signal="pressed" from="Start/Margin/Layout/Buttons/Wizard" to="." method="_on_Wizard_pressed"] -[connection signal="popup_hide" from="Mapping" to="." method="_on_Mapping_popup_hide"] +[connection signal="close_requested" from="Mapping" to="." method="_on_mapping_close_requested"] [connection signal="toggled" from="Mapping/Margin/VBox/Info/Extra/FullAxis" to="." method="_on_FullAxis_toggled"] [connection signal="toggled" from="Mapping/Margin/VBox/Info/Extra/InvertAxis" to="." method="_on_InvertAxis_toggled"] [connection signal="pressed" from="Mapping/Margin/VBox/Info/Buttons/Prev" to="." method="_on_Prev_pressed"] [connection signal="pressed" from="Mapping/Margin/VBox/Info/Buttons/Skip" to="." method="_on_Skip_pressed"] [connection signal="pressed" from="Mapping/Margin/VBox/Info/Buttons/Next" to="." method="_on_Next_pressed"] +[connection signal="close_requested" from="MapWindow" to="." method="_on_map_window_close_requested"] diff --git a/misc/matrix_transform/3D.tscn b/misc/matrix_transform/3D.tscn index 35d5c1e4953..2bca0656e7e 100644 --- a/misc/matrix_transform/3D.tscn +++ b/misc/matrix_transform/3D.tscn @@ -1,10 +1,10 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://dh1yenn4jvxrf"] -[ext_resource path="res://marker/AxisMarker3D.tscn" type="PackedScene" id=1] +[ext_resource type="PackedScene" path="res://marker/AxisMarker3D.tscn" id="1"] [node name="3D" type="Node3D"] -[node name="AxisMarker" parent="." instance=ExtResource( 1 )] +[node name="AxisMarker" parent="." instance=ExtResource("1")] -[node name="AxisMarker" parent="AxisMarker" instance=ExtResource( 1 )] +[node name="AxisMarker" parent="AxisMarker" instance=ExtResource("1")] transform = Transform3D(0.921381, -0.293412, 0.254887, 0.254887, 0.951251, 0.173648, -0.293412, -0.0950286, 0.951251, 1, 1, -1) diff --git a/misc/matrix_transform/icon.png.import b/misc/matrix_transform/icon.png.import index 889af9df580..f93481807d5 100644 --- a/misc/matrix_transform/icon.png.import +++ b/misc/matrix_transform/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://bdpvb7t2av1mk" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/matrix_transform/marker/AxisMarker2D.svg.import b/misc/matrix_transform/marker/AxisMarker2D.svg.import index 26834b468a7..af49f1aeecb 100644 --- a/misc/matrix_transform/marker/AxisMarker2D.svg.import +++ b/misc/matrix_transform/marker/AxisMarker2D.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/AxisMarker2D.svg-a52a23070c2ca9dcdd860a47183ce756.stex" +type="CompressedTexture2D" +uid="uid://dlbq375n1808o" +path="res://.godot/imported/AxisMarker2D.svg-a52a23070c2ca9dcdd860a47183ce756.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://marker/AxisMarker2D.svg" -dest_files=["res://.godot/imported/AxisMarker2D.svg-a52a23070c2ca9dcdd860a47183ce756.stex"] +dest_files=["res://.godot/imported/AxisMarker2D.svg-a52a23070c2ca9dcdd860a47183ce756.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/misc/matrix_transform/marker/AxisMarker3D.gd b/misc/matrix_transform/marker/AxisMarker3D.gd index 25d74718872..653d624f981 100644 --- a/misc/matrix_transform/marker/AxisMarker3D.gd +++ b/misc/matrix_transform/marker/AxisMarker3D.gd @@ -1,6 +1,8 @@ @tool -class_name AxisMarker3D, "res://marker/AxisMarker3D.svg" extends Node3D +class_name AxisMarker3D +@icon("res://marker/AxisMarker3D.svg") + func _process(_delta): var holder: Node3D = get_child(0).get_child(0) diff --git a/misc/matrix_transform/marker/AxisMarker3D.svg.import b/misc/matrix_transform/marker/AxisMarker3D.svg.import index 09281d37e30..23570b98fb1 100644 --- a/misc/matrix_transform/marker/AxisMarker3D.svg.import +++ b/misc/matrix_transform/marker/AxisMarker3D.svg.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/AxisMarker3D.svg-613a31ba426aca266949d27353333ae4.stex" +type="CompressedTexture2D" +uid="uid://c5pw5vmdnwr15" +path="res://.godot/imported/AxisMarker3D.svg-613a31ba426aca266949d27353333ae4.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,27 @@ metadata={ [deps] source_file="res://marker/AxisMarker3D.svg" -dest_files=["res://.godot/imported/AxisMarker3D.svg-613a31ba426aca266949d27353333ae4.stex"] +dest_files=["res://.godot/imported/AxisMarker3D.svg-613a31ba426aca266949d27353333ae4.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 svg/scale=1.0 +editor/scale_with_editor_scale=false +editor/convert_colors_with_editor_theme=false diff --git a/misc/matrix_transform/project.godot b/misc/matrix_transform/project.godot index 4584bac5366..79add264ef7 100644 --- a/misc/matrix_transform/project.godot +++ b/misc/matrix_transform/project.godot @@ -6,21 +6,15 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 _global_script_classes=[{ -"base": "Node2D", -"class": &"AxisMarker2D", -"language": &"GDScript", -"path": "res://marker/AxisMarker2D.gd" -}, { "base": "Node3D", "class": &"AxisMarker3D", "language": &"GDScript", "path": "res://marker/AxisMarker3D.gd" }] _global_script_class_icons={ -"AxisMarker2D": "res://marker/AxisMarker2D.svg", "AxisMarker3D": "res://marker/AxisMarker3D.svg" } @@ -33,10 +27,12 @@ Do not 'run' this project. You are only meant to use it within the Godot editor. For more information, see the Matrices and Transforms article." run/main_scene="res://3D.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [rendering] +anti_aliasing/quality/msaa_3d=2 quality/driver/driver_name="GLES2" vram_compression/import_etc=true vram_compression/import_etc2=false diff --git a/misc/noise_viewer/README.md b/misc/noise_viewer/README.md new file mode 100644 index 00000000000..db350e38af7 --- /dev/null +++ b/misc/noise_viewer/README.md @@ -0,0 +1,14 @@ +# Noise Viewer + +This is a sample project which allows the user to tweak different parameters of +a FastNoiseLite texture. + +Language: GDScript + +Renderer: GLES 2 + +Check out this demo on the asset library: https://godotengine.org/asset-library/asset/533 + +## Screenshots + +![Screenshot](screenshots/noise_viewer.png) diff --git a/misc/opensimplexnoise/icon.png b/misc/noise_viewer/icon.png similarity index 100% rename from misc/opensimplexnoise/icon.png rename to misc/noise_viewer/icon.png diff --git a/gui/sdf_font/icon.png.import b/misc/noise_viewer/icon.png.import similarity index 56% rename from gui/sdf_font/icon.png.import rename to misc/noise_viewer/icon.png.import index 889af9df580..4ee761eedbb 100644 --- a/gui/sdf_font/icon.png.import +++ b/misc/noise_viewer/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://bd5eoe47hb6gs" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/misc/noise_viewer/noise_viewer.gd b/misc/noise_viewer/noise_viewer.gd new file mode 100644 index 00000000000..de61c70f8f4 --- /dev/null +++ b/misc/noise_viewer/noise_viewer.gd @@ -0,0 +1,68 @@ +extends Control + +## The FastNoiseLite object. +@onready var noise: FastNoiseLite = $SeamlessNoiseTexture.texture.noise + +# Various noise parameters. +var min_noise = -1 +var max_noise = 1 + + +# Called when the node enters the scene tree for the first time. +func _ready(): + # Set up noise with basic info. + $ParameterContainer/SeedSpinBox.value = noise.seed + $ParameterContainer/FrequencySpinBox.value = noise.frequency + $ParameterContainer/FractalOctavesSpinBox.value = noise.fractal_octaves + $ParameterContainer/FractalGainSpinBox.value = noise.fractal_gain + $ParameterContainer/FractalLacunaritySpinBox.value = noise.fractal_lacunarity + + # Render the noise. + _refresh_shader_params() + + +func _refresh_shader_params(): + # Adjust min/max for shader. + var _min = (min_noise + 1) / 2 + var _max = (max_noise + 1) / 2 + var _material = $SeamlessNoiseTexture.material + _material.set_shader_parameter("min_value", _min) + _material.set_shader_parameter("max_value", _max) + + +func _on_documentation_button_pressed(): + OS.shell_open("https://docs.godotengine.org/en/latest/classes/class_fastnoiselite.html") + + +func _on_random_seed_button_pressed(): + $ParameterContainer/SeedSpinBox.value = floor(randf_range(-2147483648, 2147483648)) + + +func _on_seed_spin_box_value_changed(value): + noise.seed = value + + +func _on_frequency_spin_box_value_changed(value): + noise.frequency = value + + +func _on_fractal_octaves_spin_box_value_changed(value): + noise.fractal_octaves = value + + +func _on_fractal_gain_spin_box_value_changed(value): + noise.fractal_gain = value + + +func _on_fractal_lacunarity_spin_box_value_changed(value): + noise.fractal_lacunarity = value + + +func _on_min_clip_spin_box_value_changed(value): + min_noise = value + _refresh_shader_params() + + +func _on_max_clip_spin_box_value_changed(value): + max_noise = value + _refresh_shader_params() diff --git a/misc/opensimplexnoise/OpenSimplexNoise_Viewer.gdshader b/misc/noise_viewer/noise_viewer.gdshader similarity index 100% rename from misc/opensimplexnoise/OpenSimplexNoise_Viewer.gdshader rename to misc/noise_viewer/noise_viewer.gdshader diff --git a/misc/noise_viewer/noise_viewer.tscn b/misc/noise_viewer/noise_viewer.tscn new file mode 100644 index 00000000000..73953a4e5a6 --- /dev/null +++ b/misc/noise_viewer/noise_viewer.tscn @@ -0,0 +1,158 @@ +[gd_scene load_steps=5 format=3 uid="uid://835hb2c3ckoi"] + +[ext_resource type="Script" path="res://noise_viewer.gd" id="1_a6h72"] +[ext_resource type="Material" path="res://noise_viewer_material.tres" id="2_lywnk"] + +[sub_resource type="FastNoiseLite" id="1"] + +[sub_resource type="NoiseTexture2D" id="2"] +noise = SubResource("1") + +[node name="NoiseViewer" type="Control"] +layout_mode = 3 +anchors_preset = 15 +anchor_right = 1.0 +anchor_bottom = 1.0 +offset_left = 24.0 +offset_top = 24.0 +offset_right = -24.0 +offset_bottom = -24.0 +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1_a6h72") + +[node name="SeamlessNoiseTexture" type="TextureRect" parent="."] +material = ExtResource("2_lywnk") +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -196.0 +offset_top = -256.0 +offset_right = 316.0 +offset_bottom = 256.0 +grow_horizontal = 2 +grow_vertical = 2 +texture = SubResource("2") + +[node name="ButtonsContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 1 +anchor_left = 1.0 +anchor_right = 1.0 +offset_left = -137.0 +offset_bottom = 44.0 +grow_horizontal = 0 + +[node name="DocumentationButton" type="Button" parent="ButtonsContainer"] +layout_mode = 2 +offset_right = 159.0 +offset_bottom = 31.0 +grow_horizontal = 0 +text = "API Documentation" + +[node name="RandomSeedButton" type="Button" parent="ButtonsContainer"] +layout_mode = 2 +offset_top = 35.0 +offset_right = 159.0 +offset_bottom = 66.0 +grow_horizontal = 0 +text = "Random Seed" + +[node name="ParameterContainer" type="VBoxContainer" parent="."] +layout_mode = 0 +offset_right = 280.0 +offset_bottom = 136.0 + +[node name="SeedSpinBox" type="SpinBox" parent="ParameterContainer"] +layout_mode = 2 +offset_right = 280.0 +offset_bottom = 31.0 +min_value = -2.14748e+09 +max_value = 2.14748e+09 +allow_greater = true +allow_lesser = true +prefix = "Seed:" + +[node name="FrequencySpinBox" type="SpinBox" parent="ParameterContainer"] +layout_mode = 2 +offset_top = 35.0 +offset_right = 280.0 +offset_bottom = 66.0 +min_value = -100000.0 +max_value = 100000.0 +step = 0.005 +value = 0.01 +allow_greater = true +prefix = "Frequency:" + +[node name="FractalOctavesSpinBox" type="SpinBox" parent="ParameterContainer"] +layout_mode = 2 +offset_top = 70.0 +offset_right = 280.0 +offset_bottom = 101.0 +min_value = 1.0 +max_value = 9.0 +value = 1.0 +prefix = "Fractal Octaves:" + +[node name="FractalGainSpinBox" type="SpinBox" parent="ParameterContainer"] +layout_mode = 2 +offset_top = 105.0 +offset_right = 280.0 +offset_bottom = 136.0 +max_value = 1000.0 +step = 0.05 +allow_greater = true +prefix = "Fractal Gain:" + +[node name="FractalLacunaritySpinBox" type="SpinBox" parent="ParameterContainer"] +layout_mode = 2 +offset_top = 140.0 +offset_right = 280.0 +offset_bottom = 171.0 +step = 0.05 +allow_greater = true +prefix = "Fractal Lacunarity:" + +[node name="ClipContainer" type="VBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 2 +anchor_top = 1.0 +anchor_bottom = 1.0 +offset_top = -52.0 +offset_right = 280.0 +grow_vertical = 0 + +[node name="MinClipSpinBox" type="SpinBox" parent="ClipContainer"] +layout_mode = 2 +offset_right = 280.0 +offset_bottom = 31.0 +min_value = -1.0 +max_value = 1.0 +step = 0.01 +value = -1.0 +prefix = "Clip Min:" + +[node name="MaxClipSpinBox" type="SpinBox" parent="ClipContainer"] +layout_mode = 2 +offset_top = 35.0 +offset_right = 280.0 +offset_bottom = 66.0 +min_value = -1.0 +max_value = 1.0 +step = 0.01 +value = 1.0 +prefix = "Clip Max:" + +[connection signal="pressed" from="ButtonsContainer/DocumentationButton" to="." method="_on_documentation_button_pressed"] +[connection signal="pressed" from="ButtonsContainer/RandomSeedButton" to="." method="_on_random_seed_button_pressed"] +[connection signal="value_changed" from="ParameterContainer/SeedSpinBox" to="." method="_on_seed_spin_box_value_changed"] +[connection signal="value_changed" from="ParameterContainer/FrequencySpinBox" to="." method="_on_frequency_spin_box_value_changed"] +[connection signal="value_changed" from="ParameterContainer/FractalOctavesSpinBox" to="." method="_on_fractal_octaves_spin_box_value_changed"] +[connection signal="value_changed" from="ParameterContainer/FractalGainSpinBox" to="." method="_on_fractal_gain_spin_box_value_changed"] +[connection signal="value_changed" from="ParameterContainer/FractalLacunaritySpinBox" to="." method="_on_fractal_lacunarity_spin_box_value_changed"] +[connection signal="value_changed" from="ClipContainer/MinClipSpinBox" to="." method="_on_min_clip_spin_box_value_changed"] +[connection signal="value_changed" from="ClipContainer/MaxClipSpinBox" to="." method="_on_max_clip_spin_box_value_changed"] diff --git a/misc/noise_viewer/noise_viewer_material.tres b/misc/noise_viewer/noise_viewer_material.tres new file mode 100644 index 00000000000..e9b2af0b908 --- /dev/null +++ b/misc/noise_viewer/noise_viewer_material.tres @@ -0,0 +1,8 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3] + +[ext_resource type="Shader" path="res://noise_viewer.gdshader" id="1"] + +[resource] +shader = ExtResource( 1 ) +shader_param/min_value = -1.0 +shader_param/max_value = 1.0 diff --git a/misc/opensimplexnoise/project.godot b/misc/noise_viewer/project.godot similarity index 64% rename from misc/opensimplexnoise/project.godot rename to misc/noise_viewer/project.godot index e315bbc64e3..5deb5a685a1 100644 --- a/misc/opensimplexnoise/project.godot +++ b/misc/noise_viewer/project.godot @@ -6,20 +6,21 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] -config/name="OpenSimplexNoise Viewer" -config/description="This is a sample project which allows the user to tweak -different parameters of an OpenSimplex noise texture." -run/main_scene="res://OpenSimplexNoise_Viewer.tscn" +config/name="Noise Viewer" +config/description="This is a sample project which allows the user to tweak different parameters of a FastNoiseLite texture." +run/main_scene="res://noise_viewer.tscn" +config/features=PackedStringArray("4.0") +run/low_processor_mode=true config/icon="res://icon.png" [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [rendering] diff --git a/misc/opensimplexnoise/screenshots/.gdignore b/misc/noise_viewer/screenshots/.gdignore similarity index 100% rename from misc/opensimplexnoise/screenshots/.gdignore rename to misc/noise_viewer/screenshots/.gdignore diff --git a/misc/opensimplexnoise/screenshots/opensimplex.png b/misc/noise_viewer/screenshots/noise_viewer.png similarity index 100% rename from misc/opensimplexnoise/screenshots/opensimplex.png rename to misc/noise_viewer/screenshots/noise_viewer.png diff --git a/misc/opensimplexnoise/OpenSimplexNoise Viewer.pck b/misc/opensimplexnoise/OpenSimplexNoise Viewer.pck deleted file mode 100644 index 73e2bf759cf..00000000000 Binary files a/misc/opensimplexnoise/OpenSimplexNoise Viewer.pck and /dev/null differ diff --git a/misc/opensimplexnoise/OpenSimplexNoise_Viewer.gd b/misc/opensimplexnoise/OpenSimplexNoise_Viewer.gd deleted file mode 100644 index 7519f1ea7ce..00000000000 --- a/misc/opensimplexnoise/OpenSimplexNoise_Viewer.gd +++ /dev/null @@ -1,68 +0,0 @@ -extends Control - -# The OpenSimplexNoise object. -@onready var noise: OpenSimplexNoise = $SeamlessNoiseTexture.texture.noise - -# Various noise parameters. -var min_noise = -1 -var max_noise = 1 - -# Called when the node enters the scene tree for the first time. -func _ready(): - # Set up noise with basic info. - $ParameterContainer/SeedSpinBox.value = noise.seed - $ParameterContainer/LacunaritySpinBox.value = noise.lacunarity - $ParameterContainer/PeriodSpinBox.value = noise.period - $ParameterContainer/PersistenceSpinBox.value = noise.persistence - $ParameterContainer/OctavesSpinBox.value = noise.octaves - - # Render the noise. - _refresh_shader_params() - - -func _refresh_shader_params(): - # Adjust min/max for shader. - var _min = (min_noise + 1) / 2 - var _max = (max_noise + 1) / 2 - var _material = $SeamlessNoiseTexture.material - _material.set_shader_param("min_value", _min) - _material.set_shader_param("max_value", _max) - - -func _on_DocumentationButton_pressed(): - #warning-ignore:return_value_discarded - OS.shell_open("https://docs.godotengine.org/en/latest/classes/class_opensimplexnoise.html") - - -func _on_RandomSeedButton_pressed(): - $ParameterContainer/SeedSpinBox.value = floor(randf_range(-2147483648, 2147483648)) - - -func _on_SeedSpinBox_value_changed(value): - noise.seed = value - - -func _on_LacunaritySpinBox_value_changed(value): - noise.lacunarity = value - - -func _on_PeriodSpinBox_value_changed(value): - noise.period = value - - -func _on_PersistenceSpinBox_value_changed(value): - noise.persistence = value - - -func _on_OctavesSpinBox_value_changed(value): - noise.octaves = value - - -func _on_MinClipSpinBox_value_changed(value): - min_noise = value - _refresh_shader_params() - - -func _on_MaxClipSpinBox_value_changed(value): - max_noise = value - _refresh_shader_params() diff --git a/misc/opensimplexnoise/OpenSimplexNoise_Viewer.tres b/misc/opensimplexnoise/OpenSimplexNoise_Viewer.tres deleted file mode 100644 index 9a8c5cfd257..00000000000 --- a/misc/opensimplexnoise/OpenSimplexNoise_Viewer.tres +++ /dev/null @@ -1,8 +0,0 @@ -[gd_resource type="ShaderMaterial" load_steps=2 format=2] - -[ext_resource path="res://OpenSimplexNoise_Viewer.gdshader" type="Shader" id=1] - -[resource] -shader = ExtResource( 1 ) -shader_param/min_value = -1.0 -shader_param/max_value = 1.0 diff --git a/misc/opensimplexnoise/OpenSimplexNoise_Viewer.tscn b/misc/opensimplexnoise/OpenSimplexNoise_Viewer.tscn deleted file mode 100644 index ce6db7177c0..00000000000 --- a/misc/opensimplexnoise/OpenSimplexNoise_Viewer.tscn +++ /dev/null @@ -1,155 +0,0 @@ -[gd_scene load_steps=5 format=2] - -[ext_resource path="res://OpenSimplexNoise_Viewer.gd" type="Script" id=1] -[ext_resource path="res://OpenSimplexNoise_Viewer.tres" type="Material" id=2] - -[sub_resource type="OpenSimplexNoise" id=1] - -[sub_resource type="NoiseTexture" id=2] -noise = SubResource( 1 ) - -[node name="OpenSimplexNoise Viewer" type="Control"] -anchor_right = 1.0 -anchor_bottom = 1.0 -offset_left = 24.0 -offset_top = 24.0 -offset_right = -24.0 -offset_bottom = -24.0 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="SeamlessNoiseTexture" type="TextureRect" parent="."] -material = ExtResource( 2 ) -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = -196.0 -offset_top = -256.0 -offset_right = 316.0 -offset_bottom = 256.0 -grow_horizontal = 2 -grow_vertical = 2 -texture = SubResource( 2 ) -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ButtonsContainer" type="VBoxContainer" parent="."] -anchor_left = 1.0 -anchor_right = 1.0 -offset_left = -137.0 -offset_bottom = 44.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="DocumentationButton" type="Button" parent="ButtonsContainer"] -offset_right = 137.0 -offset_bottom = 20.0 -grow_horizontal = 0 -text = "API Documentation" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="RandomSeedButton" type="Button" parent="ButtonsContainer"] -offset_top = 24.0 -offset_right = 137.0 -offset_bottom = 44.0 -grow_horizontal = 0 -text = "Random Seed" -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="ParameterContainer" type="VBoxContainer" parent="."] -offset_right = 280.0 -offset_bottom = 136.0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="SeedSpinBox" type="SpinBox" parent="ParameterContainer"] -offset_right = 280.0 -offset_bottom = 24.0 -min_value = -2.14748e+09 -max_value = 2.14748e+09 -allow_greater = true -allow_lesser = true -prefix = "Seed:" - -[node name="LacunaritySpinBox" type="SpinBox" parent="ParameterContainer"] -offset_top = 28.0 -offset_right = 280.0 -offset_bottom = 52.0 -step = 0.1 -allow_greater = true -prefix = "Lacunarity:" - -[node name="PeriodSpinBox" type="SpinBox" parent="ParameterContainer"] -offset_top = 56.0 -offset_right = 280.0 -offset_bottom = 80.0 -min_value = -100000.0 -max_value = 100000.0 -allow_greater = true -prefix = "Period:" - -[node name="PersistenceSpinBox" type="SpinBox" parent="ParameterContainer"] -offset_top = 84.0 -offset_right = 280.0 -offset_bottom = 108.0 -max_value = 1000.0 -allow_greater = true -prefix = "Persistance:" - -[node name="OctavesSpinBox" type="SpinBox" parent="ParameterContainer"] -offset_top = 112.0 -offset_right = 280.0 -offset_bottom = 136.0 -min_value = 1.0 -max_value = 9.0 -value = 1.0 -prefix = "Octaves:" - -[node name="ClipContainer" type="VBoxContainer" parent="."] -anchor_top = 1.0 -anchor_bottom = 1.0 -offset_top = -52.0 -offset_right = 280.0 -grow_vertical = 0 -__meta__ = { -"_edit_use_anchors_": false -} - -[node name="MinClipSpinBox" type="SpinBox" parent="ClipContainer"] -offset_right = 280.0 -offset_bottom = 24.0 -min_value = -1.0 -max_value = 1.0 -step = 0.01 -value = -1.0 -prefix = "Min:" - -[node name="MaxClipSpinBox" type="SpinBox" parent="ClipContainer"] -offset_top = 28.0 -offset_right = 280.0 -offset_bottom = 52.0 -min_value = -1.0 -max_value = 1.0 -step = 0.01 -value = 1.0 -prefix = "Max:" - -[connection signal="pressed" from="ButtonsContainer/DocumentationButton" to="." method="_on_DocumentationButton_pressed"] -[connection signal="pressed" from="ButtonsContainer/RandomSeedButton" to="." method="_on_RandomSeedButton_pressed"] -[connection signal="value_changed" from="ParameterContainer/SeedSpinBox" to="." method="_on_SeedSpinBox_value_changed"] -[connection signal="value_changed" from="ParameterContainer/LacunaritySpinBox" to="." method="_on_LacunaritySpinBox_value_changed"] -[connection signal="value_changed" from="ParameterContainer/PeriodSpinBox" to="." method="_on_PeriodSpinBox_value_changed"] -[connection signal="value_changed" from="ParameterContainer/PersistenceSpinBox" to="." method="_on_PersistenceSpinBox_value_changed"] -[connection signal="value_changed" from="ParameterContainer/OctavesSpinBox" to="." method="_on_OctavesSpinBox_value_changed"] -[connection signal="value_changed" from="ClipContainer/MinClipSpinBox" to="." method="_on_MinClipSpinBox_value_changed"] -[connection signal="value_changed" from="ClipContainer/MaxClipSpinBox" to="." method="_on_MaxClipSpinBox_value_changed"] diff --git a/misc/opensimplexnoise/README.md b/misc/opensimplexnoise/README.md deleted file mode 100644 index 43df4cee5cd..00000000000 --- a/misc/opensimplexnoise/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# OpenSimplex Noise - -This is a sample project which allows the user to tweak -different parameters of an OpenSimplex noise texture. - -Language: GDScript - -Renderer: GLES 2 - -Check out this demo on the asset library: https://godotengine.org/asset-library/asset/533 - -## Screenshots - -![Screenshot](screenshots/opensimplex.png) diff --git a/misc/os_test/MonoTest.cs b/misc/os_test/CSharpTest.cs similarity index 95% rename from misc/os_test/MonoTest.cs rename to misc/os_test/CSharpTest.cs index 6cb7f0d7373..8119904188e 100644 --- a/misc/os_test/MonoTest.cs +++ b/misc/os_test/CSharpTest.cs @@ -1,6 +1,6 @@ using Godot; -public partial class MonoTest : Node +public partial class CSharpTest : Node { public string OperatingSystem() { diff --git a/misc/os_test/actions.gd b/misc/os_test/actions.gd index a8a8f695575..4fe2dd91c21 100644 --- a/misc/os_test/actions.gd +++ b/misc/os_test/actions.gd @@ -15,30 +15,29 @@ func _on_OpenShellFolder_pressed(): func _on_ChangeWindowTitle_pressed(): - OS.set_window_title("Modified window title. Unicode characters for testing: é € × Ù ¨") + DisplayServer.window_set_title("Modified window title. Unicode characters for testing: é € × Ù ¨") func _on_ChangeWindowIcon_pressed(): - var image = preload("res://icon.png").get_data() - # Use an operation that will cause the icon to change in a visible manner. - image.bumpmap_to_normalmap() - OS.set_icon(image) + var image = Image.create(128, 128, false, Image.FORMAT_RGB8) + image.fill(Color(1, 0.6, 0.3)) + DisplayServer.set_icon(image) func _on_MoveWindowToForeground_pressed(): - OS.set_window_title("Will move window to foreground in 5 seconds, try unfocusing the window...") + DisplayServer.window_set_title("Will move window to foreground in 5 seconds, try unfocusing the window...") await get_tree().create_timer(5).timeout - OS.move_window_to_foreground() + DisplayServer.window_move_to_foreground() # Restore the previous window title. - OS.set_window_title(ProjectSettings.get_setting("application/config/name")) + DisplayServer.window_set_title(ProjectSettings.get_setting("application/config/name")) func _on_RequestAttention_pressed(): - OS.set_window_title("Will request attention in 5 seconds, try unfocusing the window...") + DisplayServer.window_set_title("Will request attention in 5 seconds, try unfocusing the window...") await get_tree().create_timer(5).timeout - OS.request_attention() + DisplayServer.window_request_attention() # Restore the previous window title. - OS.set_window_title(ProjectSettings.get_setting("application/config/name")) + DisplayServer.window_set_title(ProjectSettings.get_setting("application/config/name")) func _on_VibrateDeviceShort_pressed(): @@ -50,21 +49,21 @@ func _on_VibrateDeviceLong_pressed(): func _on_AddGlobalMenuItems_pressed(): - OS.global_menu_add_item("Hello", "World3D", 0, null) - OS.global_menu_add_separator("Hello") - OS.global_menu_add_item("Hello2", "World2", 0, null) + DisplayServer.global_menu_add_item("Hello", "World", func(): print("Clicked"), func(): print("Clicked Key")) + DisplayServer.global_menu_add_separator("Example Separator") + DisplayServer.global_menu_add_item("Hello2", "World2", func(): print("Clicked 2"), func(): print("Clicked Key 2")) func _on_RemoveGlobalMenuItem_pressed(): - OS.global_menu_remove_item("Hello", 0) + DisplayServer.global_menu_remove_item("Hello", 0) func _on_GetClipboard_pressed(): - OS.alert("Clipboard contents:\n\n%s" % OS.clipboard) + OS.alert("Clipboard contents:\n\n%s" % DisplayServer.clipboard_get()) func _on_SetClipboard_pressed(): - OS.clipboard = "Modified clipboard contents. Unicode characters for testing: é € × Ù ¨" + DisplayServer.clipboard_set("Modified clipboard contents. Unicode characters for testing: é € × Ù ¨") func _on_DisplayAlert_pressed(): diff --git a/misc/os_test/icon.png.import b/misc/os_test/icon.png.import index 73a74b7de43..d9474a8bd09 100644 --- a/misc/os_test/icon.png.import +++ b/misc/os_test/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://bqd3f7woyguhi" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,7 +11,7 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] @@ -20,7 +21,6 @@ compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 -compress/streamed=false mipmaps/generate=false mipmaps/limit=-1 roughness/mode=0 @@ -28,7 +28,7 @@ roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false -process/HDR_as_SRGB=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 -svg/scale=1.0 diff --git a/misc/os_test/noto_sans_ui_bold.ttf b/misc/os_test/noto_sans_ui_bold.ttf deleted file mode 100644 index 810450aa81b..00000000000 Binary files a/misc/os_test/noto_sans_ui_bold.ttf and /dev/null differ diff --git a/misc/os_test/noto_sans_ui_regular.ttf b/misc/os_test/noto_sans_ui_regular.ttf deleted file mode 100644 index 65b29fcff16..00000000000 Binary files a/misc/os_test/noto_sans_ui_regular.ttf and /dev/null differ diff --git a/misc/os_test/os_test.gd b/misc/os_test/os_test.gd index 67b61feebf0..b400cab9d23 100644 --- a/misc/os_test/os_test.gd +++ b/misc/os_test/os_test.gd @@ -1,7 +1,7 @@ extends Node @onready var rtl = $HBoxContainer/Features -@onready var mono_test = $MonoTest +@onready var csharp_test = $CSharpTest # Returns a human-readable string from a date and time, date, or time dictionary. @@ -41,49 +41,50 @@ func datetime_to_string(date): func scan_midi_devices(): OS.open_midi_inputs() - var devices = OS.get_connected_midi_inputs().join(", ") + var devices = ", ".join(OS.get_connected_midi_inputs()) OS.close_midi_inputs() return devices func add_header(header): - rtl.append_bbcode("\n[b][u][color=#6df]{header}[/color][/u][/b]\n".format({ + rtl.append_text("\n[font_size=24][color=#6df]{header}[/color][/font_size]\n\n".format({ header = header, })) func add_line(key, value): - rtl.append_bbcode("[b]{key}:[/b] {value}\n".format({ + rtl.append_text("[color=#adf]{key}:[/color] {value}\n".format({ key = key, - value = value if str(value) != "" else "[color=#8fff](empty)[/color]", + value = value if str(value) != "" else "[color=#fff8](empty)[/color]", })) func _ready(): add_header("Audio") - var audio_drivers = PackedStringArray() - for i in OS.get_audio_driver_count(): - audio_drivers.push_back(OS.get_audio_driver_name(i)) - add_line("Available drivers", audio_drivers.join(", ")) + add_line("Mix rate", "%d Hz" % AudioServer.get_mix_rate()) + add_line("Output latency", "%f ms" % (AudioServer.get_output_latency() * 1000)) + add_line("Output device list", ", ".join(AudioServer.get_device_list())) + add_line("Capture device list", ", ".join(AudioServer.capture_get_device_list())) add_header("Date") - add_line("Date and time (local)", datetime_to_string(OS.get_datetime())) - add_line("Date and time (UTC)", datetime_to_string(OS.get_datetime(true))) - add_line("Date (local)", datetime_to_string(OS.get_date())) - add_line("Date (UTC)", datetime_to_string(OS.get_date(true))) - add_line("Time (local)", datetime_to_string(OS.get_time())) - add_line("Time (UTC)", datetime_to_string(OS.get_time(true))) - add_line("Timezone", OS.get_time_zone_info()) - add_line("System time (milliseconds)", OS.get_system_time_msecs()) - add_line("System time (seconds)", OS.get_system_time_secs()) - add_line("UNIX time", OS.get_unix_time()) + add_line("Date and time (local)", Time.get_datetime_string_from_system(false, true)) + add_line("Date and time (UTC)", Time.get_datetime_string_from_system(true, true)) + add_line("Date (local)", Time.get_date_string_from_system(false)) + add_line("Date (UTC)", Time.get_date_string_from_system(true)) + add_line("Time (local)", Time.get_time_string_from_system(false)) + add_line("Time (UTC)", Time.get_time_string_from_system(true)) + add_line("Timezone", Time.get_time_zone_from_system()) + add_line("UNIX time", Time.get_unix_time_from_system()) add_header("Display") - add_line("Screen count", OS.get_screen_count()) - add_line("DPI", OS.get_screen_dpi()) - add_line("Startup screen position", OS.get_screen_position()) - add_line("Startup screen size", OS.get_screen_size()) - add_line("Safe area rectangle", OS.get_window_safe_area()) + add_line("Screen count", DisplayServer.get_screen_count()) + add_line("DPI", DisplayServer.screen_get_dpi()) + add_line("Scale factor", DisplayServer.screen_get_scale()) + add_line("Maximum scale factor", DisplayServer.screen_get_max_scale()) + add_line("Startup screen position", DisplayServer.screen_get_position()) + add_line("Startup screen size", DisplayServer.screen_get_size()) + add_line("Startup screen refresh rate", ("%f Hz" % DisplayServer.screen_get_refresh_rate()) if DisplayServer.screen_get_refresh_rate() > 0.0 else "") + add_line("Usable (safe) area rectangle", DisplayServer.get_display_safe_area()) add_line("Screen orientation", [ "Landscape", "Portrait", @@ -92,7 +93,7 @@ func _ready(): "Landscape (defined by sensor)", "Portrait (defined by sensor)", "Defined by sensor", - ][OS.screen_orientation]) + ][DisplayServer.screen_get_orientation()]) add_header("Engine") add_line("Version", Engine.get_version_info()["string"]) @@ -108,16 +109,14 @@ func _ready(): add_header("Hardware") add_line("Model name", OS.get_model_name()) + add_line("Processor name", OS.get_processor_name()) add_line("Processor count", OS.get_processor_count()) add_line("Device unique ID", OS.get_unique_id()) - add_line("Video adapter name", RenderingServer.get_video_adapter_name()) - add_line("Video adapter vendor", RenderingServer.get_video_adapter_vendor()) add_header("Input") - add_line("Latin keyboard variant", OS.get_latin_keyboard_variant()) - add_line("Device has touch screen", OS.has_touchscreen_ui_hint()) - add_line("Device has virtual keyboard", OS.has_virtual_keyboard()) - add_line("Virtual keyboard height", OS.get_virtual_keyboard_height()) + add_line("Device has touch screen", DisplayServer.screen_is_touchscreen()) + add_line("Device has virtual keyboard", DisplayServer.has_feature(DisplayServer.FEATURE_VIRTUAL_KEYBOARD)) + add_line("Virtual keyboard height", DisplayServer.virtual_keyboard_get_height()) add_header("Localization") add_line("Locale", OS.get_locale()) @@ -125,17 +124,20 @@ func _ready(): add_header("Mobile") add_line("Granted permissions", OS.get_granted_permissions()) - add_header("Mono (C#)") - var mono_enabled = ResourceLoader.exists("res://MonoTest.cs") - add_line("Mono module enabled", "Yes" if mono_enabled else "No") - if mono_enabled: - mono_test.set_script(load("res://MonoTest.cs")) - add_line("Operating System", mono_test.OperatingSystem()) - add_line("Platform Type", mono_test.PlatformType()) + add_header(".NET (C#)") + var csharp_enabled = ResourceLoader.exists("res://CSharpTest.cs") + add_line("Mono module enabled", "Yes" if csharp_enabled else "No") + if csharp_enabled: + csharp_test.set_script(load("res://CSharpTest.cs")) + add_line("Operating System", csharp_test.OperatingSystem()) + add_line("Platform Type", csharp_test.PlatformType()) add_header("Software") add_line("OS name", OS.get_name()) add_line("Process ID", OS.get_process_id()) + add_line("System dark mode supported", DisplayServer.is_dark_mode_supported()) + add_line("System dark mode enabled", DisplayServer.is_dark_mode()) + add_line("System accent color", "#%s" % DisplayServer.get_accent_color().to_html()) add_header("System directories") add_line("Desktop", OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP)) @@ -148,8 +150,15 @@ func _ready(): add_line("Ringtones", OS.get_system_dir(OS.SYSTEM_DIR_RINGTONES)) add_header("Video") - var video_drivers = PackedStringArray() - for i in OS.get_video_driver_count(): - video_drivers.push_back(OS.get_video_driver_name(i)) - add_line("Available drivers", video_drivers.join(", ")) - add_line("Current driver", OS.get_video_driver_name(OS.get_current_video_driver())) + add_line("Adapter name", RenderingServer.get_video_adapter_name()) + add_line("Adapter vendor", RenderingServer.get_video_adapter_vendor()) + add_line("Adapter type", [ + "Other (Unknown)", + "Integrated", + "Discrete", + "Virtual", + "CPU", + ][RenderingServer.get_video_adapter_type()]) + add_line("Adapter graphics API version", RenderingServer.get_video_adapter_api_version()) + add_line("Adapter driver name", OS.get_video_adapter_driver_info()[0]) + add_line("Adapter driver version", OS.get_video_adapter_driver_info()[1]) diff --git a/misc/os_test/os_test.tscn b/misc/os_test/os_test.tscn index 20f3977ce08..e621d696474 100644 --- a/misc/os_test/os_test.tscn +++ b/misc/os_test/os_test.tscn @@ -1,203 +1,195 @@ -[gd_scene load_steps=8 format=2] +[gd_scene load_steps=3 format=3 uid="uid://ds1y65r8ld026"] -[ext_resource path="res://os_test.gd" type="Script" id=1] -[ext_resource path="res://noto_sans_ui_bold.ttf" type="FontData" id=2] -[ext_resource path="res://noto_sans_ui_regular.ttf" type="FontData" id=3] -[ext_resource path="res://actions.gd" type="Script" id=4] - -[sub_resource type="Font" id=1] -size = 14 -font_data = ExtResource( 3 ) - -[sub_resource type="Theme" id=2] -default_font = SubResource( 1 ) - -[sub_resource type="Font" id=3] -size = 14 -font_data = ExtResource( 2 ) +[ext_resource type="Script" path="res://os_test.gd" id="1"] +[ext_resource type="Script" path="res://actions.gd" id="4"] [node name="OSTest" type="Panel"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -theme = SubResource( 2 ) -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 +grow_vertical = 2 +script = ExtResource("1") [node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 20.0 offset_top = 20.0 offset_right = -20.0 offset_bottom = -20.0 -custom_constants/separation = 20 -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 +grow_vertical = 2 +theme_override_constants/separation = 10 [node name="Features" type="RichTextLabel" parent="HBoxContainer"] -offset_right = 482.0 -offset_bottom = 560.0 +layout_mode = 2 +offset_right = 551.0 +offset_bottom = 608.0 size_flags_horizontal = 3 size_flags_vertical = 3 -custom_constants/line_separation = 4 -custom_fonts/bold_font = SubResource( 3 ) -custom_fonts/normal_font = SubResource( 1 ) bbcode_enabled = true -__meta__ = { -"_edit_use_anchors_": false -} [node name="Actions" type="VBoxContainer" parent="HBoxContainer"] -offset_left = 502.0 -offset_right = 984.0 -offset_bottom = 560.0 +layout_mode = 2 +offset_left = 561.0 +offset_right = 1112.0 +offset_bottom = 608.0 size_flags_horizontal = 3 size_flags_vertical = 3 -custom_constants/separation = 20 -script = ExtResource( 4 ) +script = ExtResource("4") [node name="Label" type="Label" parent="HBoxContainer/Actions"] -offset_right = 482.0 -offset_bottom = 20.0 -custom_fonts/font = SubResource( 3 ) +layout_mode = 2 +offset_right = 551.0 +offset_bottom = 37.0 +theme_override_font_sizes/font_size = 24 text = "Actions" -align = 1 -__meta__ = { -"_edit_use_anchors_": false -} +horizontal_alignment = 1 [node name="GridContainer" type="GridContainer" parent="HBoxContainer/Actions"] -offset_top = 40.0 -offset_right = 482.0 -offset_bottom = 560.0 +layout_mode = 2 +offset_top = 41.0 +offset_right = 551.0 +offset_bottom = 608.0 size_flags_horizontal = 3 size_flags_vertical = 3 columns = 2 -__meta__ = { -"_edit_use_anchors_": false -} [node name="OpenShellWeb" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_right = 239.0 -offset_bottom = 70.0 +layout_mode = 2 +offset_right = 274.0 +offset_bottom = 78.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Open Shell (web)" [node name="OpenShellFolder" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_left = 243.0 -offset_right = 482.0 -offset_bottom = 70.0 +layout_mode = 2 +offset_left = 278.0 +offset_right = 551.0 +offset_bottom = 78.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Open Shell (folder)" [node name="ChangeWindowTitle" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_top = 74.0 -offset_right = 239.0 -offset_bottom = 144.0 +layout_mode = 2 +offset_top = 82.0 +offset_right = 274.0 +offset_bottom = 160.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Change Window Title" [node name="ChangeWindowIcon" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_left = 243.0 -offset_top = 74.0 -offset_right = 482.0 -offset_bottom = 144.0 +layout_mode = 2 +offset_left = 278.0 +offset_top = 82.0 +offset_right = 551.0 +offset_bottom = 160.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Change Window Icon" [node name="MoveWindowToForeground" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_top = 148.0 -offset_right = 239.0 -offset_bottom = 218.0 +layout_mode = 2 +offset_top = 164.0 +offset_right = 274.0 +offset_bottom = 242.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Move Window to Foreground" [node name="RequestAttention" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_left = 243.0 -offset_top = 148.0 -offset_right = 482.0 -offset_bottom = 218.0 +layout_mode = 2 +offset_left = 278.0 +offset_top = 164.0 +offset_right = 551.0 +offset_bottom = 242.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Request Attention" [node name="VibrateDeviceShort" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_top = 222.0 -offset_right = 239.0 -offset_bottom = 292.0 +layout_mode = 2 +offset_top = 246.0 +offset_right = 274.0 +offset_bottom = 324.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Vibrate Device (200 ms)" [node name="VibrateDeviceLong" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_left = 243.0 -offset_top = 222.0 -offset_right = 482.0 -offset_bottom = 292.0 +layout_mode = 2 +offset_left = 278.0 +offset_top = 246.0 +offset_right = 551.0 +offset_bottom = 324.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Vibrate Device (1000 ms)" [node name="AddGlobalMenuItems" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_top = 296.0 -offset_right = 239.0 -offset_bottom = 366.0 +layout_mode = 2 +offset_top = 328.0 +offset_right = 274.0 +offset_bottom = 405.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Add Global Menu Items" [node name="RemoveGlobalMenuItem" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_left = 243.0 -offset_top = 296.0 -offset_right = 482.0 -offset_bottom = 366.0 +layout_mode = 2 +offset_left = 278.0 +offset_top = 328.0 +offset_right = 551.0 +offset_bottom = 405.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Remove Global Menu Item" [node name="GetClipboard" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_top = 370.0 -offset_right = 239.0 -offset_bottom = 440.0 +layout_mode = 2 +offset_top = 409.0 +offset_right = 274.0 +offset_bottom = 486.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Get Clipboard Contents" [node name="SetClipboard" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_left = 243.0 -offset_top = 370.0 -offset_right = 482.0 -offset_bottom = 440.0 +layout_mode = 2 +offset_left = 278.0 +offset_top = 409.0 +offset_right = 551.0 +offset_bottom = 486.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Set Clipboard Contents" [node name="DisplayAlert" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_top = 444.0 -offset_right = 239.0 -offset_bottom = 514.0 +layout_mode = 2 +offset_top = 490.0 +offset_right = 274.0 +offset_bottom = 567.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Display Alert" [node name="KillCurrentProcess" type="Button" parent="HBoxContainer/Actions/GridContainer"] -offset_left = 243.0 -offset_top = 444.0 -offset_right = 482.0 -offset_bottom = 514.0 +layout_mode = 2 +offset_left = 278.0 +offset_top = 490.0 +offset_right = 551.0 +offset_bottom = 567.0 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Kill Current Process" -[node name="MonoTest" type="Node" parent="."] +[node name="CSharpTest" type="Node" parent="."] [connection signal="pressed" from="HBoxContainer/Actions/GridContainer/OpenShellWeb" to="HBoxContainer/Actions" method="_on_OpenShellWeb_pressed"] [connection signal="pressed" from="HBoxContainer/Actions/GridContainer/OpenShellFolder" to="HBoxContainer/Actions" method="_on_OpenShellFolder_pressed"] diff --git a/misc/os_test/project.godot b/misc/os_test/project.godot index 356aadf06e6..f1b34cd17f3 100644 --- a/misc/os_test/project.godot +++ b/misc/os_test/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -18,17 +18,14 @@ new platform or to check for regressions. In a nutshell, this demo shows how you can get information from the operating system, or interact with the operating system." run/main_scene="res://os_test.tscn" +config/features=PackedStringArray("4.0") run/low_processor_mode=true config/icon="res://icon.png" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/vsync/vsync_mode=0 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [rendering] diff --git a/misc/pause/icon.png.import b/misc/pause/icon.png.import index 23d6821fe45..9d43240bb9d 100644 --- a/misc/pause/icon.png.import +++ b/misc/pause/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/misc/pause/project.godot b/misc/pause/project.godot index 744acda06ed..756a8141121 100644 --- a/misc/pause/project.godot +++ b/misc/pause/project.godot @@ -13,23 +13,17 @@ config_version=5 config/name="Pause" config/description="A demo showing how a game made in Godot can be paused." run/main_scene="res://spinpause.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] window/stretch/mode="viewport" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - [rendering] -vulkan/rendering/back_end=1 environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1) -quality/intended_usage/framebuffer_allocation=3 -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/filters/msaa=2 +anti_aliasing/quality/msaa_3d=2 +anti_aliasing/quality/use_debanding=true +vulkan/rendering/back_end=1 diff --git a/misc/pause/spinpause.tscn b/misc/pause/spinpause.tscn index e8e99210dc9..93975ffaebb 100644 --- a/misc/pause/spinpause.tscn +++ b/misc/pause/spinpause.tscn @@ -1,12 +1,14 @@ -[gd_scene load_steps=5 format=3 uid="uid://cwa8rglnrg4yb"] +[gd_scene load_steps=6 format=3 uid="uid://cwa8rglnrg4yb"] [ext_resource type="Script" path="res://pause_button.gd" id="1"] [ext_resource type="Script" path="res://process_mode.gd" id="2_0dpmq"] [sub_resource type="BoxMesh" id="1"] +size = Vector3(1.5, 1.5, 1.5) [sub_resource type="Animation" id="2"] length = 10.0 +loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -20,10 +22,15 @@ tracks/0/keys = { "values": [Vector3(0, 0, 0), Vector3(0, -6.28319, 0)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_5vmwp"] +_data = { +"spin": SubResource("2") +} + [node name="PauseScene" type="Node3D"] [node name="Cube" type="MeshInstance3D" parent="."] -mesh = SubResource( "1" ) +mesh = SubResource("1") [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(0.707107, -0.241845, 0.664463, 0, 0.939693, 0.34202, -0.707107, -0.241845, 0.664463, 2, 1, 2) @@ -32,7 +39,9 @@ near = 0.1 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] autoplay = "spin" -anims/spin = SubResource( "2" ) +libraries = { +"": SubResource("AnimationLibrary_5vmwp") +} [node name="SpotLight3D" type="SpotLight3D" parent="."] transform = Transform3D(0.707107, -0.353554, 0.612373, 0, 0.866026, 0.5, -0.707107, -0.353554, 0.612373, 2, 2, 2) @@ -40,6 +49,7 @@ spot_range = 6.0 [node name="PauseButton" type="Button" parent="."] process_mode = 3 +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -48,11 +58,14 @@ offset_left = -125.0 offset_top = 150.0 offset_right = 125.0 offset_bottom = 200.0 +grow_horizontal = 2 +grow_vertical = 2 toggle_mode = true text = "Pause" -script = ExtResource( "1" ) +script = ExtResource("1") [node name="ProcessMode" type="HBoxContainer" parent="."] +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -61,18 +74,21 @@ offset_left = -185.502 offset_top = -250.0 offset_right = 185.503 offset_bottom = -210.0 +grow_horizontal = 2 +grow_vertical = 2 theme_override_constants/separation = 12 [node name="Label" type="Label" parent="ProcessMode"] +layout_mode = 2 offset_top = 7.0 offset_right = 151.0 offset_bottom = 33.0 text = "Cube Process Mode" [node name="OptionButton" type="OptionButton" parent="ProcessMode"] -minimum_size = Vector2(200, 0) +layout_mode = 2 offset_left = 163.0 -offset_right = 363.0 +offset_right = 334.0 offset_bottom = 40.0 item_count = 5 selected = 0 @@ -86,9 +102,6 @@ popup/item_3/text = "Always" popup/item_3/id = 3 popup/item_4/text = "Disabled (Never)" popup/item_4/id = 4 -script = ExtResource( "2_0dpmq" ) -__meta__ = { -"_edit_use_custom_anchors": false -} +script = ExtResource("2_0dpmq") [connection signal="item_selected" from="ProcessMode/OptionButton" to="ProcessMode/OptionButton" method="_on_option_button_item_selected"] diff --git a/misc/window_management/control.gd b/misc/window_management/control.gd index 2c1942e0844..e02b4e499b3 100644 --- a/misc/window_management/control.gd +++ b/misc/window_management/control.gd @@ -63,7 +63,7 @@ func _physics_process(_delta): $Buttons/Button_MouseModeCaptured.set_pressed(Input.get_mouse_mode() == Input.MOUSE_MODE_CAPTURED) -func _unhandled_input(event): +func _input(event): if event is InputEventMouseMotion: mousepos = event.position diff --git a/misc/window_management/project.godot b/misc/window_management/project.godot index 179aa2118e6..6f52a6e935c 100644 --- a/misc/window_management/project.godot +++ b/misc/window_management/project.godot @@ -13,68 +13,61 @@ config_version=5 config/name="Window Management" config/description="A demo showing the various window management features available through OS." run/main_scene="res://window_management.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +run/low_processor_mode=true +config/icon="res://icon.png" [display] +window/vsync/vsync_mode=0 window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/size/width=800 window/fullscreen=false window/resizable=true -[gdnative] - -singletons=[] - [input] -mouse_mode_captured={ +mouse_mode_visible={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777246,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194332,"unicode":0,"echo":false,"script":null) ] } mouse_mode_hidden={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777245,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194333,"unicode":0,"echo":false,"script":null) ] } -mouse_mode_visible={ +mouse_mode_captured={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777244,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194334,"unicode":0,"echo":false,"script":null) ] } -move_backwards={ +move_forward={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) ] } -move_forward={ +move_backwards={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) ] } move_left={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) ] } move_right={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) ] } [rendering] +anti_aliasing/quality/msaa_3d=2 vulkan/rendering/back_end=1 -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=3 -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/filters/msaa=2 diff --git a/misc/window_management/window_management.tscn b/misc/window_management/window_management.tscn index 74695416037..4ee5be6ae11 100644 --- a/misc/window_management/window_management.tscn +++ b/misc/window_management/window_management.tscn @@ -7,35 +7,43 @@ albedo_color = Color(0.835294, 0.133333, 0.133333, 1) [sub_resource type="BoxMesh" id="2"] -material = SubResource( "1" ) +material = SubResource("1") size = Vector3(5, 5, 5) [node name="WindowManagement" type="Node3D"] -[node name="Observer" parent="." instance=ExtResource( "1" )] +[node name="Observer" parent="." instance=ExtResource("1")] transform = Transform3D(0.910685, 0, -0.4131, 0, 1, 0, 0.4131, 0, 0.910685, -4.81287, -0.152566, 9.90641) [node name="TestCube" type="MeshInstance3D" parent="."] -mesh = SubResource( "2" ) +mesh = SubResource("2") [node name="Control" type="Control" parent="."] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -script = ExtResource( "2" ) +script = ExtResource("2") [node name="Buttons" type="VBoxContainer" parent="Control"] +layout_mode = 1 +anchors_preset = 9 anchor_bottom = 1.0 offset_left = 10.0 offset_top = 10.0 offset_right = 335.0 offset_bottom = -2.0 +grow_vertical = 2 theme_override_constants/separation = 5 metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_Fullscreen" type="Button" parent="Control/Buttons"] +layout_mode = 2 offset_right = 87.0 offset_bottom = 31.0 size_flags_horizontal = 2 @@ -46,9 +54,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_FixedSize" type="Button" parent="Control/Buttons"] -offset_top = 36.0 +layout_mode = 2 +offset_top = 40.0 offset_right = 80.0 -offset_bottom = 67.0 +offset_bottom = 71.0 size_flags_horizontal = 2 size_flags_vertical = 2 toggle_mode = true @@ -57,9 +66,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_Minimized" type="Button" parent="Control/Buttons"] -offset_top = 72.0 +layout_mode = 2 +offset_top = 80.0 offset_right = 89.0 -offset_bottom = 103.0 +offset_bottom = 111.0 size_flags_horizontal = 2 size_flags_vertical = 2 toggle_mode = true @@ -68,9 +78,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_Maximized" type="Button" parent="Control/Buttons"] -offset_top = 108.0 +layout_mode = 2 +offset_top = 121.0 offset_right = 92.0 -offset_bottom = 139.0 +offset_bottom = 152.0 size_flags_horizontal = 2 size_flags_vertical = 2 toggle_mode = true @@ -79,9 +90,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_MoveTo" type="Button" parent="Control/Buttons"] -offset_top = 144.0 +layout_mode = 2 +offset_top = 161.0 offset_right = 70.0 -offset_bottom = 175.0 +offset_bottom = 192.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "MoveTo" @@ -89,9 +101,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_Resize" type="Button" parent="Control/Buttons"] -offset_top = 180.0 +layout_mode = 2 +offset_top = 201.0 offset_right = 57.0 -offset_bottom = 211.0 +offset_bottom = 232.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "Resize" @@ -99,9 +112,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_Screen0" type="Button" parent="Control/Buttons"] -offset_top = 216.0 +layout_mode = 2 +offset_top = 242.0 offset_right = 70.0 -offset_bottom = 247.0 +offset_bottom = 273.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "Screen0" @@ -109,9 +123,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_Screen1" type="Button" parent="Control/Buttons"] -offset_top = 252.0 +layout_mode = 2 +offset_top = 282.0 offset_right = 70.0 -offset_bottom = 283.0 +offset_bottom = 313.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "Screen1" @@ -119,9 +134,10 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="Button_MouseModeVisible" type="Button" parent="Control/Buttons"] -offset_top = 288.0 +layout_mode = 2 +offset_top = 322.0 offset_right = 216.0 -offset_bottom = 319.0 +offset_bottom = 353.0 grow_vertical = 0 size_flags_horizontal = 2 size_flags_vertical = 2 @@ -131,9 +147,10 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Button_MouseModeHidden" type="Button" parent="Control/Buttons"] -offset_top = 324.0 +layout_mode = 2 +offset_top = 363.0 offset_right = 222.0 -offset_bottom = 355.0 +offset_bottom = 394.0 grow_vertical = 0 size_flags_horizontal = 2 size_flags_vertical = 2 @@ -143,9 +160,10 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Button_MouseModeCaptured" type="Button" parent="Control/Buttons"] -offset_top = 360.0 +layout_mode = 2 +offset_top = 403.0 offset_right = 242.0 -offset_bottom = 391.0 +offset_bottom = 434.0 grow_vertical = 0 size_flags_horizontal = 2 size_flags_vertical = 2 @@ -155,9 +173,10 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_KeyInfo" type="Label" parent="Control/Buttons"] -offset_top = 396.0 +layout_mode = 2 +offset_top = 443.0 offset_right = 295.0 -offset_bottom = 474.0 +offset_bottom = 521.0 grow_vertical = 0 size_flags_horizontal = 2 size_flags_vertical = 0 @@ -168,9 +187,10 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_MouseModeCaptured_KeyInfo" type="Label" parent="Control/Buttons"] -offset_top = 479.0 +layout_mode = 2 +offset_top = 526.0 offset_right = 325.0 -offset_bottom = 557.0 +offset_bottom = 604.0 grow_vertical = 0 size_flags_horizontal = 2 size_flags_vertical = 0 @@ -181,9 +201,10 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_MouseModes" type="Label" parent="Control/Buttons"] -offset_top = 562.0 +layout_mode = 2 +offset_top = 609.0 offset_right = 108.0 -offset_bottom = 588.0 +offset_bottom = 635.0 grow_vertical = 0 size_flags_horizontal = 2 size_flags_vertical = 0 @@ -192,6 +213,8 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Labels" type="VBoxContainer" parent="Control"] +layout_mode = 1 +anchors_preset = 11 anchor_left = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 @@ -206,8 +229,8 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Mode" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) -offset_right = 190.0 +layout_mode = 2 +offset_right = 49.0 offset_bottom = 26.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -217,9 +240,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Position" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 36.0 -offset_right = 190.0 +offset_right = 67.0 offset_bottom = 62.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -229,9 +252,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Size" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 72.0 -offset_right = 190.0 +offset_right = 35.0 offset_bottom = 98.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -241,9 +264,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_MousePosition" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 108.0 -offset_right = 190.0 +offset_right = 123.0 offset_bottom = 134.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -253,9 +276,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen_Count" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 144.0 -offset_right = 190.0 +offset_right = 111.0 offset_bottom = 170.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -265,9 +288,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen_Current" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 180.0 -offset_right = 190.0 +offset_right = 57.0 offset_bottom = 206.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -277,9 +300,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen0_Resolution" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 216.0 -offset_right = 190.0 +offset_right = 157.0 offset_bottom = 242.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -289,9 +312,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen0_Position" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 252.0 -offset_right = 190.0 +offset_right = 137.0 offset_bottom = 278.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -301,9 +324,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen0_DPI" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 288.0 -offset_right = 190.0 +offset_right = 97.0 offset_bottom = 314.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -313,9 +336,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen1_Resolution" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 324.0 -offset_right = 190.0 +offset_right = 157.0 offset_bottom = 350.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -325,9 +348,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen1_Position" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 360.0 -offset_right = 190.0 +offset_right = 137.0 offset_bottom = 386.0 grow_horizontal = 0 size_flags_horizontal = 2 @@ -337,9 +360,9 @@ metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="Label_Screen1_DPI" type="Label" parent="Control/Labels"] -minimum_size = Vector2(190, 0) +layout_mode = 2 offset_top = 396.0 -offset_right = 190.0 +offset_right = 97.0 offset_bottom = 422.0 grow_horizontal = 0 size_flags_horizontal = 2 diff --git a/mobile/android_iap/iap_demo.gd b/mobile/android_iap/iap_demo.gd index 6d99fb4b27a..1fc59d47a51 100644 --- a/mobile/android_iap/iap_demo.gd +++ b/mobile/android_iap/iap_demo.gd @@ -14,29 +14,29 @@ func _ready(): payment = Engine.get_singleton("GodotGooglePlayBilling") # No params. - payment.connect(&"connected", self._on_connected) + payment.connected.connect(self._on_connected) # No params. - payment.connect(&"disconnected", self._on_disconnected) + payment.disconnected.connect(self._on_disconnected) # Response ID (int), Debug message (string). - payment.connect(&"connect_error", self._on_connect_error) + payment.connect_error.connect(self._on_connect_error) # Purchases (Dictionary[]). - payment.connect(&"purchases_updated", self._on_purchases_updated) + payment.purchases_updated.connect(self._on_purchases_updated) # Response ID (int), Debug message (string). - payment.connect(&"purchase_error", self._on_purchase_error) + payment.purchase_error.connect(self._on_purchase_error) # SKUs (Dictionary[]). - payment.connect(&"sku_details_query_completed", self._on_sku_details_query_completed) + payment.sku_details_query_completed.connect(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) + payment.sku_details_query_error.connect(self._on_sku_details_query_error) # Purchase token (string). - payment.connect(&"purchase_acknowledged", self._on_purchase_acknowledged) + payment.purchase_acknowledged.connect(self._on_purchase_acknowledged) # Response ID (int), Debug message (string), Purchase token (string). - payment.connect(&"purchase_acknowledgement_error", self._on_purchase_acknowledgement_error) + payment.purchase_acknowledgement_error.connect(self._on_purchase_acknowledgement_error) # Purchase token (string). - payment.connect(&"purchase_consumed", self._on_purchase_consumed) + payment.purchase_consumed.connect(self._on_purchase_consumed) # Response ID (int), Debug message (string), Purchase token (string). - payment.connect(&"purchase_consumption_error", self._on_purchase_consumption_error) + payment.purchase_consumption_error.connect(self._on_purchase_consumption_error) # Purchases (Dictionary[]) - payment.connect(&"query_purchases_response", self._on_query_purchases_response) + payment.query_purchases_response.connect(self._on_query_purchases_response) 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.") diff --git a/mobile/android_iap/project.godot b/mobile/android_iap/project.godot index b27d59484a7..c0112cb8b0e 100644 --- a/mobile/android_iap/project.godot +++ b/mobile/android_iap/project.godot @@ -21,22 +21,7 @@ Note: Running the demo requires exporting and uploading the game to Google Play. run/main_scene="res://main.tscn" config/icon="res://icon.png" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/mobile/multitouch_cubes/project.godot b/mobile/multitouch_cubes/project.godot index c1e5a899e3f..591a19c0880 100644 --- a/mobile/multitouch_cubes/project.godot +++ b/mobile/multitouch_cubes/project.godot @@ -15,20 +15,11 @@ config/description="Demo of multitouch input and different gestures using the to run/main_scene="res://Main.tscn" config/icon="res://icon.png" -[gdnative] - -singletons=[] - [input_devices] pointing/emulate_touch_from_mouse=true [rendering] -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=0 -quality/intended_usage/framebuffer_allocation.mobile=0 -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1) +environment/defaults/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1) environment/default_environment="res://default_env.tres" diff --git a/mobile/multitouch_view/project.godot b/mobile/multitouch_view/project.godot index b917b5dffbc..329dbfc8d6a 100644 --- a/mobile/multitouch_view/project.godot +++ b/mobile/multitouch_view/project.godot @@ -19,17 +19,10 @@ config/icon="res://icon.png" TouchHelper="*res://TouchHelper.gd" -[gdnative] - -singletons=[] - [input_devices] pointing/emulate_touch_from_mouse=true [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1) +environment/defaults/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1) diff --git a/mobile/sensors/project.godot b/mobile/sensors/project.godot index 0226ba29383..1f1dcab313f 100644 --- a/mobile/sensors/project.godot +++ b/mobile/sensors/project.godot @@ -20,13 +20,6 @@ These sensors are typically found on mobile devices, so don't expect this to wor run/main_scene="res://main.tscn" config/icon="res://icon.png" -[gdnative] - -singletons=[] - [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false environment/default_environment="res://default_env.tres" diff --git a/mono/2.5d/project.godot b/mono/2.5d/project.godot index f3990de69f0..a984a33f1d7 100644 --- a/mono/2.5d/project.godot +++ b/mono/2.5d/project.godot @@ -19,8 +19,8 @@ config/icon="res://icon.png" [display] -window/size/width=1600 -window/size/height=900 +window/size/viewport_width=1600 +window/size/viewport_height=900 [editor_plugins] diff --git a/mono/android_iap/project.godot b/mono/android_iap/project.godot index 3fdbbf82a14..c80b77d8ee5 100644 --- a/mono/android_iap/project.godot +++ b/mono/android_iap/project.godot @@ -17,22 +17,7 @@ Note: Running the demo requires exporting and uploading the game to Google Play. run/main_scene="res://main.tscn" config/icon="res://icon.png" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/mono/dodge_the_creeps/project.godot b/mono/dodge_the_creeps/project.godot index 13785e84a3f..2e91bbb4d5b 100644 --- a/mono/dodge_the_creeps/project.godot +++ b/mono/dodge_the_creeps/project.godot @@ -22,8 +22,8 @@ config/icon="res://icon.png" [display] -window/size/width=480 -window/size/height=720 +window/size/viewport_width=480 +window/size/viewport_height=720 [input] diff --git a/mono/multiplayer_pong/project.godot b/mono/multiplayer_pong/project.godot index f622b680903..0c3d3c6c1ee 100644 --- a/mono/multiplayer_pong/project.godot +++ b/mono/multiplayer_pong/project.godot @@ -19,9 +19,9 @@ config/icon="res://icon.png" [display] -window/size/width=640 -window/size/height=400 -window/stretch/mode="2d" +window/size/viewport_width=640 +window/size/viewport_height=400 +window/stretch/mode="canvas_items" window/stretch/aspect="expand" [input] diff --git a/mono/pong/project.godot b/mono/pong/project.godot index 4b5de4965f6..025572a0f7c 100644 --- a/mono/pong/project.godot +++ b/mono/pong/project.godot @@ -18,16 +18,11 @@ config/icon="res://icon.png" [display] -window/size/width=640 -window/size/height=400 -window/dpi/allow_hidpi=true -window/stretch/mode="2d" +window/size/viewport_width=640 +window/size/viewport_height=400 +window/stretch/mode="canvas_items" window/stretch/aspect="keep" -[gdnative] - -singletons=[] - [input] left_move_down={ @@ -63,7 +58,4 @@ right_move_up={ [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false viewport/default_clear_color=Color(0, 0, 0, 1) diff --git a/networking/multiplayer_bomber/gamestate.gd b/networking/multiplayer_bomber/gamestate.gd index 29ac3da49f0..c5593694873 100644 --- a/networking/multiplayer_bomber/gamestate.gd +++ b/networking/multiplayer_bomber/gamestate.gd @@ -142,8 +142,8 @@ func end_game(): func _ready(): - multiplayer.peer_connected.connect(_player_connected) - multiplayer.peer_disconnected.connect(_player_disconnected) - multiplayer.connected_to_server.connect(_connected_ok) - multiplayer.connection_failed.connect(_connected_fail) - multiplayer.server_disconnected.connect(_server_disconnected) + multiplayer.peer_connected.connect(self._player_connected) + multiplayer.peer_disconnected.connect(self._player_disconnected) + multiplayer.connected_to_server.connect(self._connected_ok) + multiplayer.connection_failed.connect(self._connected_fail) + multiplayer.server_disconnected.connect(self._server_disconnected) diff --git a/networking/multiplayer_bomber/lobby.gd b/networking/multiplayer_bomber/lobby.gd index 90ed898f4c5..37f3d1639c4 100644 --- a/networking/multiplayer_bomber/lobby.gd +++ b/networking/multiplayer_bomber/lobby.gd @@ -2,11 +2,11 @@ extends Control func _ready(): # Called every time the node is added to the scene. - gamestate.connection_failed.connect(_on_connection_failed) - gamestate.connection_succeeded.connect(_on_connection_success) - gamestate.player_list_changed.connect(refresh_lobby) - gamestate.game_ended.connect(_on_game_ended) - gamestate.game_error.connect(_on_game_error) + gamestate.connection_failed.connect(self._on_connection_failed) + gamestate.connection_succeeded.connect(self._on_connection_success) + gamestate.player_list_changed.connect(self.refresh_lobby) + gamestate.game_ended.connect(self._on_game_ended) + gamestate.game_error.connect(self._on_game_error) # Set the player name according to the system username. Fallback to the path. if OS.has_environment("USERNAME"): $Connect/Name.text = OS.get_environment("USERNAME") diff --git a/networking/multiplayer_bomber/project.godot b/networking/multiplayer_bomber/project.godot index 6999bc90438..3b75ed9ebcd 100644 --- a/networking/multiplayer_bomber/project.godot +++ b/networking/multiplayer_bomber/project.godot @@ -22,28 +22,10 @@ config/icon="res://icon.png" gamestate="*res://gamestate.gd" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/vsync/use_vsync=false - -[editor_plugins] - -enabled=PackedStringArray() - -[gdnative] - -singletons=[] - -[image_loader] - -filter=false -gen_mipmaps=false [input] @@ -88,10 +70,6 @@ set_bomb={ ] } -[rendering] - -quality/driver/driver_name="GLES2" - [replication] config={ diff --git a/networking/multiplayer_pong/logic/lobby.gd b/networking/multiplayer_pong/logic/lobby.gd index a4a439d96af..b893cd9a41b 100644 --- a/networking/multiplayer_pong/logic/lobby.gd +++ b/networking/multiplayer_pong/logic/lobby.gd @@ -1,7 +1,7 @@ extends Control # Default game server port. Can be any number between 1024 and 49151. -# Not checked the list of registered or common ports as of November 2020: +# Not present on the list of registered or common ports as of December 2022: # https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers const DEFAULT_PORT = 8910 @@ -17,11 +17,11 @@ var peer = null func _ready(): # Connect all the callbacks related to networking. - multiplayer.connect(&"peer_connected", self._player_connected) - multiplayer.connect(&"peer_disconnected", self._player_disconnected) - multiplayer.connect(&"connected_to_server", self._connected_ok) - multiplayer.connect(&"connection_failed", self._connected_fail) - multiplayer.connect(&"server_disconnected", self._server_disconnected) + multiplayer.peer_connected.connect(self._player_connected) + multiplayer.peer_disconnected.connect(self._player_disconnected) + multiplayer.connected_to_server.connect(self._connected_ok) + multiplayer.connection_failed.connect(self._connected_fail) + multiplayer.server_disconnected.connect(self._server_disconnected) #### Network callbacks from SceneTree #### @@ -30,7 +30,7 @@ func _player_connected(_id): # Someone connected, start the game! var pong = load("res://pong.tscn").instantiate() # Connect deferred so we can safely erase it from the callback. - pong.connect(&"game_finished",Callable(self._end_game).bind(CONNECT_DEFERRED)) + pong.game_finished.connect(self._end_game.bind, CONNECT_DEFERRED) get_tree().get_root().add_child(pong) hide() @@ -50,7 +50,7 @@ func _connected_ok(): # Callback from SceneTree, only for clients (not server). func _connected_fail(): - _set_status("Couldn't connect", false) + _set_status("Couldn't connect.", false) multiplayer.set_multiplayer_peer(null) # Remove peer. host_button.set_disabled(false) @@ -58,7 +58,7 @@ func _connected_fail(): func _server_disconnected(): - _end_game("Server disconnected") + _end_game("Server disconnected.") ##### Game creation functions ###### @@ -108,7 +108,7 @@ func _on_host_pressed(): func _on_join_pressed(): var ip = address.get_text() if not ip.is_valid_ip_address(): - _set_status("IP address is invalid", false) + _set_status("IP address is invalid.", false) return peer = ENetMultiplayerPeer.new() diff --git a/networking/multiplayer_pong/project.godot b/networking/multiplayer_pong/project.godot index 546ad1b8aa0..81144225947 100644 --- a/networking/multiplayer_pong/project.godot +++ b/networking/multiplayer_pong/project.godot @@ -18,23 +18,12 @@ run/main_scene="res://lobby.tscn" config/features=PackedStringArray("4.0") config/icon="res://icon.png" -[debug] - -gdscript/warnings/return_value_discarded=false - [display] window/size/viewport_width=640 window/size/viewport_height=400 -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/size/width=640 -window/size/height=400 -stretch_2d=true - -[gdnative] - -singletons=[] [input] @@ -56,11 +45,3 @@ move_up={ , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } - -[rendering] - -quality/driver/driver_name="GLES2" -2d/snapping/use_gpu_pixel_snap=true -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/2d/use_pixel_snap=true diff --git a/networking/webrtc_minimal/chat.gd b/networking/webrtc_minimal/chat.gd index 032f8daee86..d18c635fedb 100644 --- a/networking/webrtc_minimal/chat.gd +++ b/networking/webrtc_minimal/chat.gd @@ -8,8 +8,8 @@ var channel = peer.create_data_channel("chat", {"negotiated": true, "id": 1}) func _ready(): # Connect all functions. - peer.ice_candidate_created.connect(_on_ice_candidate) - peer.session_description_created.connect(_on_session) + peer.ice_candidate_created.connect(self._on_ice_candidate) + peer.session_description_created.connect(self._on_session) # Register to the local signaling server (see below for the implementation). Signaling.register(String(get_path())) diff --git a/networking/webrtc_minimal/project.godot b/networking/webrtc_minimal/project.godot index e48ebed375c..ffdcb0712e3 100644 --- a/networking/webrtc_minimal/project.godot +++ b/networking/webrtc_minimal/project.godot @@ -21,15 +21,5 @@ Signaling="*res://Signaling.gd" [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/networking/webrtc_signaling/client/multiplayer_client.gd b/networking/webrtc_signaling/client/multiplayer_client.gd index 2fe7c9a1f4e..f3adbdc87b0 100644 --- a/networking/webrtc_signaling/client/multiplayer_client.gd +++ b/networking/webrtc_signaling/client/multiplayer_client.gd @@ -4,17 +4,17 @@ var rtc_mp: WebRTCMultiplayerPeer = WebRTCMultiplayerPeer.new() var sealed := false func _init(): - connected.connect(_connected) - disconnected.connect(_disconnected) + connected.connect(self._connected) + disconnected.connect(self._disconnected) - offer_received.connect(_offer_received) - answer_received.connect(_answer_received) - candidate_received.connect(_candidate_received) + offer_received.connect(self._offer_received) + answer_received.connect(self._answer_received) + candidate_received.connect(self._candidate_received) - lobby_joined.connect(_lobby_joined) - lobby_sealed.connect(_lobby_sealed) - peer_connected.connect(_peer_connected) - peer_disconnected.connect(_peer_disconnected) + lobby_joined.connect(self._lobby_joined) + lobby_sealed.connect(self._lobby_sealed) + peer_connected.connect(self._peer_connected) + peer_disconnected.connect(self._peer_disconnected) func start(url, lobby = "", mesh:=true): @@ -36,8 +36,8 @@ func _create_peer(id): peer.initialize({ "iceServers": [ { "urls": ["stun:stun.l.google.com:19302"] } ] }) - peer.session_description_created.connect(_offer_created.bind(id)) - peer.ice_candidate_created.connect(_new_ice_candidate.bind(id)) + peer.session_description_created.connect(self._offer_created.bind(id)) + peer.ice_candidate_created.connect(self._new_ice_candidate.bind(id)) rtc_mp.add_peer(peer, id) if id < rtc_mp.get_unique_id(): # So lobby creator never creates offers. peer.create_offer() diff --git a/networking/webrtc_signaling/demo/client_ui.gd b/networking/webrtc_signaling/demo/client_ui.gd index b887862704f..045ea551365 100644 --- a/networking/webrtc_signaling/demo/client_ui.gd +++ b/networking/webrtc_signaling/demo/client_ui.gd @@ -6,16 +6,16 @@ extends Control @onready var mesh = $VBoxContainer/Connect/Mesh func _ready(): - client.lobby_joined.connect(_lobby_joined) - client.lobby_sealed.connect(_lobby_sealed) - client.connected.connect(_connected) - client.disconnected.connect(_disconnected) - - multiplayer.connected_to_server.connect(_mp_server_connected) - multiplayer.connection_failed.connect(_mp_server_disconnect) - multiplayer.server_disconnected.connect(_mp_server_disconnect) - multiplayer.peer_connected.connect(_mp_peer_connected) - multiplayer.peer_disconnected.connect(_mp_peer_disconnected) + client.lobby_joined.connect(self._lobby_joined) + client.lobby_sealed.connect(self._lobby_sealed) + client.connected.connect(self._connected) + client.disconnected.connect(self._disconnected) + + multiplayer.connected_to_server.connect(self._mp_server_connected) + multiplayer.connection_failed.connect(self._mp_server_disconnect) + multiplayer.server_disconnected.connect(self._mp_server_disconnect) + multiplayer.peer_connected.connect(self._mp_peer_connected) + multiplayer.peer_disconnected.connect(self._mp_peer_disconnected) @rpc(any_peer, call_local) diff --git a/networking/webrtc_signaling/project.godot b/networking/webrtc_signaling/project.godot index e3c8c1d7d1e..64ba334a67d 100644 --- a/networking/webrtc_signaling/project.godot +++ b/networking/webrtc_signaling/project.godot @@ -21,25 +21,13 @@ config/features=PackedStringArray("4.0") [debug] gdscript/warnings/shadowed_variable=false -gdscript/warnings/return_value_discarded=false gdscript/warnings/unused_argument=false [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] -singletons_disabled=[] - [network] modules/webrtc_gdnative_script="res://demo/webrtc/webrtc.gdns" - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/networking/websocket_chat/project.godot b/networking/websocket_chat/project.godot index 3fa45e5f14e..3c0a580a154 100644 --- a/networking/websocket_chat/project.godot +++ b/networking/websocket_chat/project.godot @@ -31,13 +31,3 @@ config/description="This is a demo of a simple chat implemented using WebSockets run/main_scene="res://combo.tscn" config/features=PackedStringArray("4.0") config/icon="res://icon.png" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/networking/websocket_minimal/client.gd b/networking/websocket_minimal/client.gd index 9bea56cb52b..2ea6fc0b26e 100644 --- a/networking/websocket_minimal/client.gd +++ b/networking/websocket_minimal/client.gd @@ -8,18 +8,18 @@ var _client = WebSocketClient.new() func _ready(): # Connect base signals to get notified of connection open, close, and errors. - _client.connect(&"connection_closed", _closed) - _client.connect(&"connection_error", _closed) - _client.connect(&"connection_established", _connected) + _client.connection_closed.connect(self._closed) + _client.connection_error.connect(self._closed) + _client.connection_established.connect(self._connected) # This signal is emitted when not using the Multiplayer API every time # a full packet is received. # Alternatively, you could check get_peer(1).get_available_packets() in a loop. - _client.connect(&"data_received", _on_data) + _client.data_received.connect(self._on_data) # Initiate connection to the given URL. var err = _client.connect_to_url(websocket_url) if err != OK: - print("Unable to connect") + push_error("Unable to connect.") set_process(false) diff --git a/networking/websocket_minimal/server.gd b/networking/websocket_minimal/server.gd index 2d24acd1352..10615ad41ab 100644 --- a/networking/websocket_minimal/server.gd +++ b/networking/websocket_minimal/server.gd @@ -8,45 +8,45 @@ var _server = WebSocketServer.new() func _ready(): # Connect base signals to get notified of new client connections, # disconnections, and disconnect requests. - _server.connect(&"client_connected", _connected) - _server.connect(&"client_disconnected", _disconnected) - _server.connect(&"client_close_request", _close_request) + _server.client_connected.connect(self._connected) + _server.client_disconnected.connect(self._disconnected) + _server.client_close_request.connect(self._close_request) # This signal is emitted when not using the Multiplayer API every time a # full packet is received. # Alternatively, you could check get_peer(PEER_ID).get_available_packets() # in a loop for each connected peer. - _server.connect(&"data_received", _on_data) + _server.data_received.connect(self._on_data) # Start listening on the given port. var err = _server.listen(PORT) if err != OK: - print("Unable to start server") + push_error("Unable to start server.") set_process(false) func _connected(id, proto, rname): # This is called when a new peer connects, "id" will be the assigned peer id, # "proto" will be the selected WebSocket sub-protocol (which is optional) - print("Client %d connected with protocol %s and resource name %s" % [id, proto, rname]) + print_rich("Client [b]%d[/b] [color=green]connected[/color] with protocol [b]%s[/b] and resource name [b]%s[/b]" % [id, proto, rname]) func _close_request(id, code, reason): # This is called when a client notifies that it wishes to close the connection, # providing a reason string and close code. - print("Client %d disconnecting with code: %d, reason: %s" % [id, code, reason]) + print_rich("Client [b]%d[/b] [color=yellow]disconnecting[/color] with code: [b]%d[/b], reason: [b]%s[/b]" % [id, code, reason]) func _disconnected(id, was_clean = false): # This is called when a client disconnects, "id" will be the one of the # disconnecting client, "was_clean" will tell you if the disconnection # was correctly notified by the remote peer before closing the socket. - print("Client %d disconnected, clean: %s" % [id, str(was_clean)]) + print_rich("Client [b]%d[/b] [color=red]disconnected[/color], clean: [b]%s[/b]" % [id, str(was_clean)]) func _on_data(id): # Print the received packet, you MUST always use get_peer(id).get_packet to receive data, # and not get_packet directly when not using the MultiplayerAPI. var pkt = _server.get_peer(id).get_packet() - print("Got data from client %d: %s ... echoing" % [id, pkt.get_string_from_utf8()]) + print("Got data from client [b]%d[/b]: [b]%s[/b] ... echoing" % [id, pkt.get_string_from_utf8()]) _server.get_peer(id).put_packet(pkt) diff --git a/networking/websocket_multiplayer/script/main.gd b/networking/websocket_multiplayer/script/main.gd index 001808d49c6..50a83193ecd 100644 --- a/networking/websocket_multiplayer/script/main.gd +++ b/networking/websocket_multiplayer/script/main.gd @@ -18,11 +18,11 @@ func _init(): func _ready(): - multiplayer.peer_connected.connect(_peer_connected) - multiplayer.peer_disconnected.connect(_peer_disconnected) - multiplayer.server_disconnected.connect(_close_network) - multiplayer.connection_failed.connect(_close_network) - multiplayer.connected_to_server.connect(_connected) + multiplayer.peer_connected.connect(self._peer_connected) + multiplayer.peer_disconnected.connect(self._peer_disconnected) + multiplayer.server_disconnected.connect(self._close_network) + multiplayer.connection_failed.connect(self._close_network) + multiplayer.connected_to_server.connect(self._connected) $AcceptDialog.get_label().horizontal_alignment = HORIZONTAL_ALIGNMENT_CENTER $AcceptDialog.get_label().vertical_alignment = VERTICAL_ALIGNMENT_CENTER diff --git a/plugins/addons/custom_node/heart.png.import b/plugins/addons/custom_node/heart.png.import index 4efcf2080e2..47fe803dc71 100644 --- a/plugins/addons/custom_node/heart.png.import +++ b/plugins/addons/custom_node/heart.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/heart.png-53d6538480df02caf4bbbee10b65a623.stex" +type="CompressedTexture2D" +uid="uid://bs4k1qi5vdken" +path="res://.godot/imported/heart.png-53d6538480df02caf4bbbee10b65a623.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/custom_node/heart.png" -dest_files=["res://.godot/imported/heart.png-53d6538480df02caf4bbbee10b65a623.stex"] +dest_files=["res://.godot/imported/heart.png-53d6538480df02caf4bbbee10b65a623.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/plugins/addons/custom_node/heart_icon.png.import b/plugins/addons/custom_node/heart_icon.png.import index 5cacd341f5e..6387c02627a 100644 --- a/plugins/addons/custom_node/heart_icon.png.import +++ b/plugins/addons/custom_node/heart_icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/heart_icon.png-8f04adf78b3bd1a5c39f790588a1fa78.stex" +type="CompressedTexture2D" +uid="uid://bjgimovw2g5qv" +path="res://.godot/imported/heart_icon.png-8f04adf78b3bd1a5c39f790588a1fa78.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://addons/custom_node/heart_icon.png" -dest_files=["res://.godot/imported/heart_icon.png-8f04adf78b3bd1a5c39f790588a1fa78.stex"] +dest_files=["res://.godot/imported/heart_icon.png-8f04adf78b3bd1a5c39f790588a1fa78.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/plugins/addons/main_screen/main_panel.tscn b/plugins/addons/main_screen/main_panel.tscn index caac623787b..f3abc1f621c 100644 --- a/plugins/addons/main_screen/main_panel.tscn +++ b/plugins/addons/main_screen/main_panel.tscn @@ -1,24 +1,23 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://b8623u0gk1acu"] -[ext_resource path="res://addons/main_screen/print_hello.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/main_screen/print_hello.gd" id="1"] [node name="MainPanel" type="CenterContainer"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_vertical = 3 -__meta__ = { -"_edit_use_anchors_": false -} [node name="PrintHello" type="Button" parent="."] -offset_left = 472.0 -offset_top = 290.0 -offset_right = 552.0 -offset_bottom = 310.0 -text = "Print Hello" -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} +layout_mode = 2 +offset_left = 460.0 +offset_top = 297.0 +offset_right = 691.0 +offset_bottom = 351.0 +text = "Print Hello +(check Output bottom panel)" +script = ExtResource("1") [connection signal="pressed" from="PrintHello" to="PrintHello" method="_on_PrintHello_pressed"] diff --git a/plugins/addons/main_screen/main_screen_plugin.gd b/plugins/addons/main_screen/main_screen_plugin.gd index d44c24d1363..074dac3d01c 100644 --- a/plugins/addons/main_screen/main_screen_plugin.gd +++ b/plugins/addons/main_screen/main_screen_plugin.gd @@ -8,9 +8,9 @@ var main_panel_instance func _enter_tree(): main_panel_instance = MainPanel.instantiate() # Add the main panel to the editor's main viewport. - get_editor_interface().get_editor_viewport().add_child(main_panel_instance) + get_editor_interface().get_editor_main_screen().add_child(main_panel_instance) # Hide the main panel. Very much required. - make_visible(false) + _make_visible(false) func _exit_tree(): @@ -18,24 +18,24 @@ func _exit_tree(): main_panel_instance.queue_free() -func has_main_screen(): +func _has_main_screen(): return true -func make_visible(visible): +func _make_visible(visible): if main_panel_instance: main_panel_instance.visible = visible # If your plugin doesn't handle any node types, you can remove this method. -func handles(obj): - return obj is preload("res://addons/main_screen/handled_by_main_screen.gd") +func _handles(object): + return object is preload("res://addons/main_screen/handled_by_main_screen.gd") -func get_plugin_name(): +func _get_plugin_name(): return "Main Screen Plugin" -func get_plugin_icon(): +func _get_plugin_icon(): # Must return some kind of Texture2D for the icon. - return get_editor_interface().get_base_control().get_icon("Node", "EditorIcons") + return get_editor_interface().get_base_control().get_theme_icon("Node", "EditorIcons") diff --git a/plugins/addons/material_creator/material_creator.gd b/plugins/addons/material_creator/material_creator.gd index 56dfebc3475..2ed94128e4c 100644 --- a/plugins/addons/material_creator/material_creator.gd +++ b/plugins/addons/material_creator/material_creator.gd @@ -6,12 +6,12 @@ var silly_material_resource = preload("res://addons/material_creator/material_re var editor_interface func _ready(): - # Connect all of the signals we'll need to save and load silly materials - get_node(^"VBoxContainer/ApplyButton").connect(&"pressed", self.apply_pressed) - get_node(^"VBoxContainer/SaveButton").connect(&"pressed", self.save_pressed) - get_node(^"VBoxContainer/LoadButton").connect(&"pressed", self.load_pressed) - get_node(^"SaveMaterialDialog").connect(&"file_selected", self.save_file_selected) - get_node(^"LoadMaterialDialog").connect(&"file_selected", self.load_file_selected) + # Connect all of the signals we'll need to save and load silly materials. + get_node(^"VBoxContainer/ApplyButton").pressed.connect(self.apply_pressed) + get_node(^"VBoxContainer/SaveButton").pressed.connect(self.save_pressed) + get_node(^"VBoxContainer/LoadButton").pressed.connect(self.load_pressed) + get_node(^"SaveMaterialDialog").file_selected.connect(self.save_file_selected) + get_node(^"LoadMaterialDialog").file_selected.connect(self.load_file_selected) RenderingServer.canvas_item_set_clip(get_canvas_item(), true) @@ -24,7 +24,7 @@ func load_pressed(): func apply_pressed(): - # Using the passed in editor interface, get the selected nodes in the editor + # Using the passed in editor interface, get the selected nodes in the editor. var editor_selection = editor_interface.get_selection() var selected_nodes = editor_selection.get_selected_nodes() if selected_nodes.size() == 0: @@ -41,58 +41,53 @@ func apply_pressed(): func save_file_selected(path): var silly_resource = _silly_resource_from_values() - # Make a file, store the silly material as a json string, then close the file. - var file = File.new() - file.open(path, File.WRITE) + # Make a file, store the silly material as a JSON string. + var file = FileAccess.open(path, FileAccess.WRITE) file.store_string(silly_resource.make_json()) - file.close() return true func load_file_selected(path): - var file = File.new() var SpatialMaterial_Silly = null # Make a new silly resource (which in this case actually is a node) - # and initialize it + # and initialize it. var silly_resource = silly_material_resource.new() silly_resource.init() - # If the file exists, then open it - if file.file_exists(path): - file.open(path, File.READ) + # If the file exists, then open it. + if FileAccess.file_exists(path): + var file = FileAccess.open(path, FileAccess.READ) # Get the JSON string and convert it into a silly material. var json_dict_as_string = file.get_line() if json_dict_as_string != null: silly_resource.from_json(json_dict_as_string) else: - file.close() return false get_node(^"VBoxContainer/AlbedoColorPicker").color = silly_resource.albedo_color get_node(^"VBoxContainer/MetallicSlider").value = silly_resource.metallic_strength get_node(^"VBoxContainer/RoughnessSlider").value = silly_resource.roughness_strength - # Close the file and return true (success!) - file.close() + # Return `true` to indicate success. return true - #else: If the file does not exist, then return false (failure) + # If the file does not exist, then return `false` to indicate failure. return false func _silly_resource_from_values(): - # Get the values from the sliders and color picker + # Get the values from the sliders and color picker. var color = get_node(^"VBoxContainer/AlbedoColorPicker").color var metallic = get_node(^"VBoxContainer/MetallicSlider").value var roughness = get_node(^"VBoxContainer/RoughnessSlider").value - # Make a new silly resource (which in this case actually is a node) and initialize it + # Make a new silly resource (which in this case actually is a node) and initialize it. var silly_resource = silly_material_resource.new() silly_resource.init() - # Assign the values + # Assign the values. silly_resource.albedo_color = color silly_resource.metallic_strength = metallic silly_resource.roughness_strength = roughness diff --git a/plugins/addons/material_creator/material_dock.tscn b/plugins/addons/material_creator/material_dock.tscn index 2c328501491..f8c4c839313 100644 --- a/plugins/addons/material_creator/material_dock.tscn +++ b/plugins/addons/material_creator/material_dock.tscn @@ -1,139 +1,106 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://n44d53us24uu"] -[ext_resource path="res://addons/material_creator/material_creator.gd" type="Script" id=1] +[ext_resource type="Script" path="res://addons/material_creator/material_creator.gd" id="1"] [node name="Material Creator Plugin" type="Panel"] offset_right = 220.0 offset_bottom = 340.0 -rect_min_size = Vector2(210, 410) -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("1") [node name="VBoxContainer" type="VBoxContainer" parent="."] +anchors_preset = 13 anchor_left = 0.5 anchor_right = 0.5 anchor_bottom = 1.0 offset_left = -100.0 offset_right = 100.0 -rect_min_size = Vector2(0, 400) +grow_horizontal = 2 +grow_vertical = 2 [node name="DockName" type="Label" parent="VBoxContainer"] offset_right = 200.0 -offset_bottom = 30.0 -rect_min_size = Vector2(200, 30) -custom_constants/shadow_as_outline = 1 +offset_bottom = 26.0 text = "Material creator" -align = 1 -valign = 2 [node name="AlbedoLabel" type="Label" parent="VBoxContainer"] -offset_top = 34.0 +offset_top = 30.0 offset_right = 200.0 -offset_bottom = 64.0 -rect_min_size = Vector2(200, 30) +offset_bottom = 56.0 text = "Albedo color" -align = 1 -valign = 2 [node name="AlbedoColorPicker" type="ColorPickerButton" parent="VBoxContainer"] -offset_top = 68.0 +offset_top = 60.0 offset_right = 200.0 -offset_bottom = 98.0 -rect_min_size = Vector2(200, 30) +offset_bottom = 68.0 color = Color(1, 1, 1, 1) [node name="MetallicLabel" type="Label" parent="VBoxContainer"] -offset_top = 102.0 +offset_top = 72.0 offset_right = 200.0 -offset_bottom = 132.0 -rect_min_size = Vector2(200, 30) +offset_bottom = 98.0 text = "Metallic strength" -align = 1 -valign = 2 [node name="MetallicSlider" type="HSlider" parent="VBoxContainer"] -offset_top = 136.0 +offset_top = 102.0 offset_right = 200.0 -offset_bottom = 166.0 -rect_min_size = Vector2(200, 30) +offset_bottom = 118.0 max_value = 1.0 step = 0.05 [node name="RoughnessLabel" type="Label" parent="VBoxContainer"] -offset_top = 170.0 +offset_top = 122.0 offset_right = 200.0 -offset_bottom = 200.0 -rect_min_size = Vector2(200, 30) +offset_bottom = 148.0 text = "Roughness strength" -align = 1 -valign = 2 [node name="RoughnessSlider" type="HSlider" parent="VBoxContainer"] -offset_top = 204.0 +offset_top = 152.0 offset_right = 200.0 -offset_bottom = 234.0 -rect_min_size = Vector2(200, 30) +offset_bottom = 168.0 max_value = 1.0 step = 0.05 ticks_on_borders = true [node name="HSeparator" type="HSeparator" parent="VBoxContainer"] -offset_top = 238.0 +offset_top = 172.0 offset_right = 200.0 -offset_bottom = 258.0 -rect_min_size = Vector2(200, 20) +offset_bottom = 176.0 [node name="ApplyButton" type="Button" parent="VBoxContainer"] -offset_top = 262.0 +offset_top = 180.0 offset_right = 200.0 -offset_bottom = 312.0 -rect_min_size = Vector2(200, 50) +offset_bottom = 211.0 text = "Apply material" [node name="SaveButton" type="Button" parent="VBoxContainer"] -offset_top = 316.0 +offset_top = 215.0 offset_right = 200.0 -offset_bottom = 366.0 -rect_min_size = Vector2(200, 50) +offset_bottom = 246.0 text = "Save material" [node name="LoadButton" type="Button" parent="VBoxContainer"] -offset_top = 370.0 +offset_top = 250.0 offset_right = 200.0 -offset_bottom = 420.0 -rect_min_size = Vector2(200, 50) +offset_bottom = 281.0 text = "Load material" clip_text = true [node name="Label" type="Label" parent="VBoxContainer/LoadButton"] visible = false +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_bottom = -10.0 -rect_min_size = Vector2(0, 50) +grow_horizontal = 2 +grow_vertical = 2 text = "Load silly material and apply to selected node(s)" -align = 1 -valign = 1 -autowrap = true [node name="SaveMaterialDialog" type="FileDialog" parent="."] -offset_left = 150.0 -offset_top = 20.0 -offset_right = 600.0 -offset_bottom = 360.0 -resizable = true filters = PackedStringArray("*.silly_mat") [node name="LoadMaterialDialog" type="FileDialog" parent="."] -offset_left = 150.0 -offset_top = 20.0 -offset_right = 600.0 -offset_bottom = 360.0 -rect_min_size = Vector2(200, 100) -window_title = "Open a File" -resizable = true -mode = 0 +title = "Open a File" +ok_button_text = "Open" +file_mode = 0 filters = PackedStringArray("*.silly_mat") diff --git a/plugins/addons/material_import_plugin/import.gd b/plugins/addons/material_import_plugin/import.gd index e33179f4d08..a1a0d3181c3 100644 --- a/plugins/addons/material_import_plugin/import.gd +++ b/plugins/addons/material_import_plugin/import.gd @@ -3,37 +3,37 @@ extends EditorImportPlugin enum Presets { PRESET_DEFAULT } -func get_importer_name(): +func _get_importer_name(): return "demos.sillymaterial" -func get_visible_name(): +func _get_visible_name(): return "Silly Material" -func get_recognized_extensions(): +func _get_recognized_extensions(): return ["mtxt"] -func get_save_extension(): +func _get_save_extension(): return "res" -func get_resource_type(): +func _get_resource_type(): return "Material" -func get_preset_count(): +func _get_preset_count(): return Presets.size() -func get_preset_name(preset): +func _get_preset_name(preset): match preset: Presets.PRESET_DEFAULT: return "Default" _: return "Unknown" -func get_import_options(preset): +func _get_import_options(_path, preset): match preset: Presets.PRESET_DEFAULT: return [{ @@ -43,20 +43,18 @@ func get_import_options(preset): _: return [] -func get_option_visibility(option, options): - return true +func _get_import_order(): + return ResourceImporter.IMPORT_ORDER_DEFAULT + +func _get_option_visibility(path, option, options): + return true -func import(source_file, save_path, options, r_platform_variants, r_gen_files): - var file = File.new() - var err = file.open(source_file, File.READ) - if err != OK: - return err +func _import(source_file, save_path, options, r_platform_variants, r_gen_files): + var file = FileAccess.open(source_file, FileAccess.READ) var line = file.get_line() - file.close() - var channels = line.split(",") if channels.size() != 3: return ERR_PARSE_ERROR @@ -69,4 +67,4 @@ func import(source_file, save_path, options, r_platform_variants, r_gen_files): material.albedo_color = color - return ResourceSaver.save("%s.%s" % [save_path, get_save_extension()], material) + return ResourceSaver.save(material ,"%s.%s" % [save_path, _get_save_extension()]) diff --git a/plugins/addons/material_import_plugin/test.mtxt.import b/plugins/addons/material_import_plugin/test.mtxt.import index eeace7c1463..c2217b30afb 100644 --- a/plugins/addons/material_import_plugin/test.mtxt.import +++ b/plugins/addons/material_import_plugin/test.mtxt.import @@ -2,6 +2,7 @@ importer="demos.sillymaterial" type="Material" +uid="uid://0kxvpjo37ehr" path="res://.godot/imported/test.mtxt-32ce4469df24b9f725d1e3476ff3b332.res" [deps] diff --git a/plugins/icon.png.import b/plugins/icon.png.import index 889af9df580..ff6ad79b2c7 100644 --- a/plugins/icon.png.import +++ b/plugins/icon.png.import @@ -1,8 +1,9 @@ [remap] importer="texture" -type="StreamTexture2D" -path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" +type="CompressedTexture2D" +uid="uid://cmi7w2ar1c7cb" +path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" metadata={ "vram_texture": false } @@ -10,26 +11,24 @@ metadata={ [deps] source_file="res://icon.png" -dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.stex"] +dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] [params] compress/mode=0 compress/lossy_quality=0.7 -compress/hdr_mode=0 +compress/hdr_compression=1 compress/bptc_ldr=0 compress/normal_map=0 -flags/repeat=0 -flags/filter=true -flags/mipmaps=false -flags/anisotropic=false -flags/srgb=2 +compress/channel_pack=0 +mipmaps/generate=false +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" process/fix_alpha_border=true process/premult_alpha=false -process/HDR_as_SRGB=false -process/invert_color=false process/normal_map_invert_y=false -stream=false -size_limit=0 -detect_3d=true -svg/scale=1.0 +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=1 diff --git a/plugins/project.godot b/plugins/project.godot index 7f008a76aa0..66eb5ec28af 100644 --- a/plugins/project.godot +++ b/plugins/project.godot @@ -6,7 +6,7 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=4 +config_version=5 [application] @@ -21,6 +21,7 @@ This project contains 4 plugins: * The material creator plugin shows how to add a custom dock with some simple functionality. * The main screen plugin is a minimal example of how to create a plugin with a main screen." run/main_scene="res://test_scene.tscn" +config/features=PackedStringArray("4.0") config/icon="res://icon.png" [editor_plugins] diff --git a/plugins/test_scene.tscn b/plugins/test_scene.tscn index b5d65ffbb98..10608e80a47 100644 --- a/plugins/test_scene.tscn +++ b/plugins/test_scene.tscn @@ -1,22 +1,21 @@ -[gd_scene load_steps=4 format=2] +[gd_scene load_steps=4 format=3 uid="uid://dlap00bmh07ai"] -[ext_resource path="res://addons/main_screen/handled_by_main_screen.gd" type="Script" id=1] -[ext_resource path="res://addons/custom_node/heart.gd" type="Script" id=2] +[ext_resource type="Script" path="res://addons/main_screen/handled_by_main_screen.gd" id="1"] +[ext_resource type="Script" path="res://addons/custom_node/heart.gd" id="2"] -[sub_resource type="BoxMesh" id=1] +[sub_resource type="BoxMesh" id="1"] [node name="TestScene" type="Node"] [node name="Heart" type="Node2D" parent="."] -script = ExtResource( 2 ) +script = ExtResource("2") [node name="MeshInstance3D" type="MeshInstance3D" parent="."] -mesh = SubResource( 1 ) +mesh = SubResource("1") skeleton = NodePath("") -surface_material_override/0 = null [node name="HandledByMainScreen" type="Node" parent="."] -script = ExtResource( 1 ) +script = ExtResource("1") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, -0.75, 0.433013, 0, 0, 0) diff --git a/viewport/2d_in_3d/2D_in_3D.tscn b/viewport/2d_in_3d/2D_in_3D.tscn index 30adf3a0a72..e43a3381b0d 100644 --- a/viewport/2d_in_3d/2D_in_3D.tscn +++ b/viewport/2d_in_3d/2D_in_3D.tscn @@ -29,16 +29,16 @@ sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) [sub_resource type="Sky" id="Sky_7gemw"] -sky_material = SubResource( "ProceduralSkyMaterial_cvh5i" ) +sky_material = SubResource("ProceduralSkyMaterial_cvh5i") [sub_resource type="Environment" id="Environment_fvsgw"] background_mode = 2 -sky = SubResource( "Sky_7gemw" ) +sky = SubResource("Sky_7gemw") tonemap_mode = 2 glow_enabled = true [node name="2Din3D" type="Node3D"] -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.1, 0) @@ -47,15 +47,15 @@ near = 0.1 [node name="ViewportQuad" type="MeshInstance3D" parent="."] transform = Transform3D(2, 0, 0, 0, 0, -1.333, 0, 1, 0, 0, 1.2, -4.25) -material_override = SubResource( "6" ) -mesh = SubResource( "1" ) +material_override = SubResource("6") +mesh = SubResource("1") [node name="SubViewport" type="SubViewport" parent="."] size = Vector2i(600, 400) render_target_update_mode = 4 [node name="Pong" type="Node2D" parent="SubViewport"] -script = ExtResource( "2" ) +script = ExtResource("2") [node name="Background" type="Panel" parent="SubViewport/Pong"] offset_right = 600.0 @@ -63,72 +63,72 @@ offset_bottom = 400.0 [node name="Ball" type="Sprite2D" parent="SubViewport/Pong"] position = Vector2(300, 200) -texture = ExtResource( "3" ) +texture = ExtResource("3") [node name="LeftPaddle" type="Sprite2D" parent="SubViewport/Pong"] position = Vector2(20, 200) -texture = ExtResource( "4" ) +texture = ExtResource("4") [node name="RightPaddle" type="Sprite2D" parent="SubViewport/Pong"] position = Vector2(580, 200) -texture = ExtResource( "5" ) +texture = ExtResource("5") [node name="Separator" type="Sprite2D" parent="SubViewport/Pong"] position = Vector2(298, 200) -texture = ExtResource( "6" ) +texture = ExtResource("6") [node name="Environment" type="Node3D" parent="."] [node name="Floor" type="MeshInstance3D" parent="Environment"] transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, -1, -2) -mesh = SubResource( "1" ) +mesh = SubResource("1") skeleton = NodePath("../..") -surface_material_override/0 = SubResource( "2" ) +surface_material_override/0 = SubResource("2") [node name="Pillar1" type="Node3D" parent="Environment"] transform = Transform3D(0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, -3, -0.2, -4) [node name="PillarBottom" type="MeshInstance3D" parent="Environment/Pillar1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") [node name="PillarTop" type="MeshInstance3D" parent="Environment/Pillar1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") [node name="PillarMiddle" type="MeshInstance3D" parent="Environment/Pillar1"] transform = Transform3D(0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") [node name="Pillar2" type="Node3D" parent="Environment"] transform = Transform3D(0.6, 0, 0, 0, 0.6, 0, 0, 0, 0.6, 3, -0.2, -4) [node name="PillarBottom" type="MeshInstance3D" parent="Environment/Pillar2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.5, 0) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") [node name="PillarTop" type="MeshInstance3D" parent="Environment/Pillar2"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 5.5, 0) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") [node name="PillarMiddle" type="MeshInstance3D" parent="Environment/Pillar2"] transform = Transform3D(0.7, 0, 0, 0, 2, 0, 0, 0, 0.7, 0, 2.5, 0) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") [node name="PillarBack" type="MeshInstance3D" parent="Environment"] transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 0, 1.2, -4.5) -mesh = SubResource( "5" ) +mesh = SubResource("5") skeleton = NodePath("../..") -surface_material_override/0 = SubResource( "4" ) +surface_material_override/0 = SubResource("4") [node name="WorldEnvironment" type="WorldEnvironment" parent="Environment"] -environment = SubResource( "Environment_fvsgw" ) +environment = SubResource("Environment_fvsgw") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] transform = Transform3D(0.623013, -0.733525, 0.271653, 0.321394, 0.55667, 0.766045, -0.713134, -0.389948, 0.582563, 0, 10, 0) diff --git a/viewport/2d_in_3d/ball.png.import b/viewport/2d_in_3d/ball.png.import index 484ba69fcea..9820846ef82 100644 --- a/viewport/2d_in_3d/ball.png.import +++ b/viewport/2d_in_3d/ball.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/2d_in_3d/icon.png.import b/viewport/2d_in_3d/icon.png.import index cbbf8a7ee8a..691f5781be8 100644 --- a/viewport/2d_in_3d/icon.png.import +++ b/viewport/2d_in_3d/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/2d_in_3d/left_pallete.png.import b/viewport/2d_in_3d/left_pallete.png.import index 945d02a271c..0fd4bdf3d56 100644 --- a/viewport/2d_in_3d/left_pallete.png.import +++ b/viewport/2d_in_3d/left_pallete.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/2d_in_3d/project.godot b/viewport/2d_in_3d/project.godot index 59f5f225db1..044afdba5d6 100644 --- a/viewport/2d_in_3d/project.godot +++ b/viewport/2d_in_3d/project.godot @@ -13,39 +13,32 @@ config_version=5 config/name="2D in 3D" config/description="A demo showing how a 2D scene can be shown within a 3D one using viewports." run/main_scene="res://2D_in_3D.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") - -[gdnative] - -singletons=[] +config/icon="res://icon.png" [input] left_move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } left_move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } right_move_up={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } right_move_down={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false environment/default_environment="res://default_env.tres" diff --git a/viewport/2d_in_3d/right_pallete.png.import b/viewport/2d_in_3d/right_pallete.png.import index c470b0e1182..09b896cabe6 100644 --- a/viewport/2d_in_3d/right_pallete.png.import +++ b/viewport/2d_in_3d/right_pallete.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/2d_in_3d/separator.png.import b/viewport/2d_in_3d/separator.png.import index 766d8f9f7e9..a9ce05b3487 100644 --- a/viewport/2d_in_3d/separator.png.import +++ b/viewport/2d_in_3d/separator.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/3d_in_2d/3d_in_2d.gd b/viewport/3d_in_2d/3d_in_2d.gd index 4e270ca775f..252c82863d9 100644 --- a/viewport/3d_in_2d/3d_in_2d.gd +++ b/viewport/3d_in_2d/3d_in_2d.gd @@ -7,8 +7,7 @@ var viewport_initial_size = Vector2() func _ready(): $AnimatedSprite2D.play() - #warning-ignore:return_value_discarded - get_viewport().connect(&"size_changed", self._root_viewport_size_changed) + get_viewport().size_changed.connect(self._root_viewport_size_changed) viewport_initial_size = viewport.size @@ -18,4 +17,4 @@ func _root_viewport_size_changed(): # The viewport is resized depending on the window height. # To compensate for the larger resolution, the viewport sprite is scaled down. viewport.size = Vector2.ONE * get_viewport().size.y - viewport_sprite.scale = Vector2(1, -1) * viewport_initial_size.y / get_viewport().size.y + viewport_sprite.scale = Vector2.ONE * viewport_initial_size.y / get_viewport().size.y diff --git a/viewport/3d_in_2d/3d_in_2d.tscn b/viewport/3d_in_2d/3d_in_2d.tscn index 7128c377ce0..bd8a4bcd184 100644 --- a/viewport/3d_in_2d/3d_in_2d.tscn +++ b/viewport/3d_in_2d/3d_in_2d.tscn @@ -8,51 +8,52 @@ viewport_path = NodePath("SubViewport") [sub_resource type="AtlasTexture" id="2"] -atlas = ExtResource( "2" ) +atlas = ExtResource("2") region = Rect2(0, 0, 64, 64) [sub_resource type="AtlasTexture" id="3"] -atlas = ExtResource( "2" ) +atlas = ExtResource("2") region = Rect2(64, 0, 64, 64) [sub_resource type="AtlasTexture" id="4"] -atlas = ExtResource( "2" ) +atlas = ExtResource("2") region = Rect2(128, 0, 64, 64) [sub_resource type="AtlasTexture" id="5"] -atlas = ExtResource( "2" ) +atlas = ExtResource("2") region = Rect2(192, 0, 64, 64) [sub_resource type="AtlasTexture" id="6"] -atlas = ExtResource( "2" ) +atlas = ExtResource("2") region = Rect2(256, 0, 64, 64) [sub_resource type="SpriteFrames" id="7"] animations = [{ -"frames": [SubResource( "2" ), SubResource( "3" ), SubResource( "4" ), SubResource( "5" ), SubResource( "6" )], +"frames": [SubResource("2"), SubResource("3"), SubResource("4"), SubResource("5"), SubResource("6")], "loop": true, "name": &"default", "speed": 5.0 }] [node name="3Din2D" type="Node2D"] -script = ExtResource( "1" ) +script = ExtResource("1") [node name="SubViewport" type="SubViewport" parent="."] -msaa = 2 +transparent_bg = true +msaa_3d = 2 size = Vector2i(300, 300) render_target_update_mode = 4 -[node name="Robot3D" parent="SubViewport" instance=ExtResource( "3" )] +[node name="Robot3D" parent="SubViewport" instance=ExtResource("3")] [node name="ViewportSprite" type="Sprite2D" parent="."] position = Vector2(650, 300) -texture = SubResource( "ViewportTexture_2squv" ) +texture = SubResource("ViewportTexture_2squv") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] position = Vector2(350, 300) scale = Vector2(3, 3) -frames = SubResource( "7" ) +frames = SubResource("7") [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(512, 300) diff --git a/viewport/3d_in_2d/icon.png.import b/viewport/3d_in_2d/icon.png.import index 7723f8004e6..72d69d32673 100644 --- a/viewport/3d_in_2d/icon.png.import +++ b/viewport/3d_in_2d/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/3d_in_2d/project.godot b/viewport/3d_in_2d/project.godot index 6d6c76000cb..de70b099eb1 100644 --- a/viewport/3d_in_2d/project.godot +++ b/viewport/3d_in_2d/project.godot @@ -13,19 +13,10 @@ config_version=5 config/name="3D in 2D" config/description="A demo showing how a 3D scene can be shown within a 2D one using viewports." run/main_scene="res://3d_in_2d.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] -window/stretch/mode="2d" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/fallback_to_gles2=true -vram_compression/import_etc=true diff --git a/viewport/3d_in_2d/robot_demo.png.import b/viewport/3d_in_2d/robot_demo.png.import index 8877ff4fd46..70a59d34273 100644 --- a/viewport/3d_in_2d/robot_demo.png.import +++ b/viewport/3d_in_2d/robot_demo.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/3d_scaling/cubes.tscn b/viewport/3d_scaling/cubes.tscn index 39fe8e33cb7..b1c3d431a63 100644 --- a/viewport/3d_scaling/cubes.tscn +++ b/viewport/3d_scaling/cubes.tscn @@ -1,15 +1,16 @@ [gd_scene load_steps=2 format=3 uid="uid://bbnebk7xoaoto"] [sub_resource type="BoxMesh" id="1"] +size = Vector3(2, 2, 2) [node name="Cubes" type="Node3D"] [node name="MeshInstance1" type="MeshInstance3D" parent="."] -mesh = SubResource( "1" ) +mesh = SubResource("1") [node name="MeshInstance2" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1, 1, -1) -mesh = SubResource( "1" ) +mesh = SubResource("1") [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(0.877582, 0.229849, -0.420736, 0, 0.877582, 0.479426, 0.479426, -0.420736, 0.770151, -1.68294, 2.25571, 3.0806) diff --git a/viewport/3d_scaling/default_env.tres b/viewport/3d_scaling/default_env.tres index f88d3f9981d..38c88068671 100644 --- a/viewport/3d_scaling/default_env.tres +++ b/viewport/3d_scaling/default_env.tres @@ -1,9 +1,10 @@ -[gd_resource type="Environment" load_steps=2 format=2] +[gd_resource type="Environment" load_steps=3 format=3 uid="uid://gvgtl0xxtewa"] -[sub_resource type="Sky" id=1] -sky_top_color = Color( 0.207843, 0.239216, 0.254902, 1 ) -sky_horizon_color = Color( 0.466667, 0.478431, 0.490196, 1 ) +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_fikmw"] + +[sub_resource type="Sky" id="1"] +sky_material = SubResource("ProceduralSkyMaterial_fikmw") [resource] background_mode = 2 -background_sky = SubResource( 1 ) +sky = SubResource("1") diff --git a/viewport/3d_scaling/hud.gd b/viewport/3d_scaling/hud.gd index 226a30960fb..a6b4bc177bb 100644 --- a/viewport/3d_scaling/hud.gd +++ b/viewport/3d_scaling/hud.gd @@ -15,8 +15,7 @@ func _ready(): viewport_container.texture_filter = CanvasItem.TEXTURE_FILTER_LINEAR # Required to change the 3D viewport's size when the window is resized. - # warning-ignore:return_value_discarded - viewport.connect(&"size_changed", self._root_viewport_size_changed) + viewport.size_changed.connect(self._root_viewport_size_changed) func _unhandled_input(event): diff --git a/viewport/3d_scaling/hud.tscn b/viewport/3d_scaling/hud.tscn index df7fe22e846..ebbdaa6f9dd 100644 --- a/viewport/3d_scaling/hud.tscn +++ b/viewport/3d_scaling/hud.tscn @@ -1,36 +1,34 @@ -[gd_scene load_steps=6 format=3 uid="uid://c5uc5vwuqvck5"] +[gd_scene load_steps=4 format=3 uid="uid://c5uc5vwuqvck5"] -[ext_resource type="FontData" uid="uid://dj5xxi41l3y1r" path="res://noto_sans_ui_regular.ttf" id="1"] [ext_resource type="PackedScene" uid="uid://bbnebk7xoaoto" path="res://cubes.tscn" id="2"] [ext_resource type="Script" path="res://hud.gd" id="3"] -[sub_resource type="Font" id="1"] -data/0 = ExtResource( "1" ) - [sub_resource type="Theme" id="2"] -default_font = SubResource( "1" ) [node name="HUD" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -theme = SubResource( "2" ) -script = ExtResource( "3" ) +theme = SubResource("2") +script = ExtResource("3") [node name="SubViewportContainer" type="SubViewportContainer" parent="."] texture_filter = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 stretch = true [node name="SubViewport" type="SubViewport" parent="SubViewportContainer"] handle_input_locally = false -shadow_atlas_size = 4096 -size = Vector2i(1024, 600) +size = Vector2i(1152, 648) render_target_update_mode = 4 -[node name="Cubes" parent="SubViewportContainer/SubViewport" instance=ExtResource( "2" )] +[node name="Cubes" parent="SubViewportContainer/SubViewport" instance=ExtResource("2")] [node name="Help" type="Label" parent="."] +anchors_preset = 2 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 16.0 @@ -40,32 +38,20 @@ offset_bottom = -16.0 text = "This text will always render at the native resolution. Press Space to adjust the 3D viewport's resolution scaling. Press Enter to toggle filtering." -__meta__ = { -"_edit_use_anchors_": false -} [node name="VBoxContainer" type="VBoxContainer" parent="."] offset_left = 16.0 offset_top = 16.0 offset_right = 124.0 offset_bottom = 76.0 -__meta__ = { -"_edit_use_anchors_": false -} [node name="Scale" type="Label" parent="VBoxContainer"] -offset_right = 108.0 +offset_right = 111.0 offset_bottom = 26.0 text = "Scale: 100%" -__meta__ = { -"_edit_use_anchors_": false -} [node name="Filter" type="Label" parent="VBoxContainer"] offset_top = 30.0 -offset_right = 108.0 +offset_right = 111.0 offset_bottom = 56.0 text = "Filter: Enabled" -__meta__ = { -"_edit_use_anchors_": false -} diff --git a/viewport/3d_scaling/icon.png.import b/viewport/3d_scaling/icon.png.import index 8bb3516ffe1..705fec72c20 100644 --- a/viewport/3d_scaling/icon.png.import +++ b/viewport/3d_scaling/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/3d_scaling/noto_sans_ui_regular.ttf.import b/viewport/3d_scaling/noto_sans_ui_regular.ttf.import index ab8a85763c1..c796179ed08 100644 --- a/viewport/3d_scaling/noto_sans_ui_regular.ttf.import +++ b/viewport/3d_scaling/noto_sans_ui_regular.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://dj5xxi41l3y1r" path="res://.godot/imported/noto_sans_ui_regular.ttf-37da988dfa3a55ebf3ea2c9fc7b383a8.fontdata" @@ -12,22 +12,21 @@ dest_files=["res://.godot/imported/noto_sans_ui_regular.ttf-37da988dfa3a55ebf3ea [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/viewport/3d_scaling/project.godot b/viewport/3d_scaling/project.godot index ff134368f34..f699d081310 100644 --- a/viewport/3d_scaling/project.godot +++ b/viewport/3d_scaling/project.godot @@ -17,8 +17,8 @@ viewport. This technique can be useful in 2D games as well. For instance, it can be used to have a \"pixel art\" viewport for the main game area and a non-pixel-art viewport for HUD elements." run/main_scene="res://hud.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [display] @@ -29,19 +29,15 @@ window/stretch/aspect="expand" cycle_viewport_resolution={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } toggle_filtering={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777221,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"unicode":0,"echo":false,"script":null) ] } [rendering] -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=3 -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_environment="res://default_env.tres" +environment/defaults/default_environment="res://default_env.tres" diff --git a/viewport/dynamic_split_screen/camera_controller.gd b/viewport/dynamic_split_screen/camera_controller.gd index 6229226e7d8..da5c2a4aa18 100644 --- a/viewport/dynamic_split_screen/camera_controller.gd +++ b/viewport/dynamic_split_screen/camera_controller.gd @@ -37,10 +37,10 @@ func _ready(): _on_size_changed() _update_splitscreen() - get_viewport().connect(&"size_changed", self._on_size_changed) + get_viewport().size_changed.connect(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_parameter("viewport1", viewport1.get_texture()) + view.material.set_shader_parameter("viewport2", viewport2.get_texture()) func _process(_delta): @@ -71,16 +71,16 @@ func _update_splitscreen(): if adaptive_split_line_thickness: var position_difference = _compute_position_difference_in_world() var distance = _compute_horizontal_length(position_difference) - thickness = lerp(0, split_line_thickness, (distance - max_separation) / max_separation) - thickness = clamp(thickness, 0, split_line_thickness) + thickness = lerpf(0, split_line_thickness, (distance - max_separation) / max_separation) + thickness = clampf(thickness, 0, split_line_thickness) 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_parameter("split_active", _get_split_state()) + view.material.set_shader_parameter("player1_position", player1_position) + view.material.set_shader_parameter("player2_position", player2_position) + view.material.set_shader_parameter("split_line_thickness", thickness) + view.material.set_shader_parameter("split_line_color", split_line_color) # Split screen is active if players are too far apart from each other. @@ -97,7 +97,7 @@ func _on_size_changed(): $Viewport1.size = screen_size $Viewport2.size = screen_size - view.material.set_shader_param("viewport_size", screen_size) + view.material.set_shader_parameter("viewport_size", screen_size) func _compute_position_difference_in_world(): diff --git a/viewport/dynamic_split_screen/icon.png.import b/viewport/dynamic_split_screen/icon.png.import index 299df8ef839..bf0b5d95483 100644 --- a/viewport/dynamic_split_screen/icon.png.import +++ b/viewport/dynamic_split_screen/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/dynamic_split_screen/player.gd b/viewport/dynamic_split_screen/player.gd index b3d6da08f09..d2b091d67c7 100644 --- a/viewport/dynamic_split_screen/player.gd +++ b/viewport/dynamic_split_screen/player.gd @@ -3,14 +3,20 @@ extends CharacterBody3D # Moves the player @export_range(1, 2) var player_id: int = 1 -@export var walk_speed: float = 20.0 +@export var walk_speed: float = 2.5 func _physics_process(_delta): - #var velocity = Vector3.ZERO - velocity.x = Input.get_action_strength("move_right_player" + str(player_id)) - velocity.x -= Input.get_action_strength("move_left_player" + str(player_id)) - velocity.z = Input.get_action_strength("move_down_player" + str(player_id)) - velocity.z -= Input.get_action_strength("move_up_player" + str(player_id)) - velocity = velocity.normalized() * walk_speed + var move_direction = Input.get_vector( + "move_left_player" + str(player_id), + "move_right_player" + str(player_id), + "move_up_player" + str(player_id), + "move_down_player" + str(player_id), + ) + velocity.x += move_direction.x * walk_speed + velocity.z += move_direction.y * walk_speed + + # Apply friction. + velocity *= 0.9 + move_and_slide() diff --git a/viewport/dynamic_split_screen/project.godot b/viewport/dynamic_split_screen/project.godot index e7d12fb9fcf..f95aa66021e 100644 --- a/viewport/dynamic_split_screen/project.godot +++ b/viewport/dynamic_split_screen/project.godot @@ -14,80 +14,74 @@ 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://split_screen.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") - -[debug] - -gdscript/warnings/return_value_discarded=false +config/icon="res://icon.png" [input] move_up_player1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) ] } move_down_player1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } move_left_player1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right_player1={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } move_up_player2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":73,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":-1.0,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":-1.0,"script":null) ] } move_down_player2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":75,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":75,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":1.0,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":1.0,"script":null) ] } move_left_player2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":74,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":74,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":-1.0,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":-1.0,"script":null) ] } move_right_player2={ "deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"store_command":true,"alt_pressed":false,"shift_pressed":false,"meta_pressed":false,"command_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"unicode":0,"echo":false,"script":null) +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":76,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":1.0,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":1.0,"script":null) ] } +[physics] + +common/physics_ticks_per_second=120 + [rendering] -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=3 -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/shadows/filter_mode=2 -environment/default_clear_color=Color(1, 1, 1, 1) +anti_aliasing/quality/msaa_3d=2 +environment/defaults/default_clear_color=Color(1, 1, 1, 1) environment/default_environment="res://default_env.tres" diff --git a/viewport/dynamic_split_screen/split_screen.gdshader b/viewport/dynamic_split_screen/split_screen.gdshader index 0bb5cecbfc9..f0c69c0b56f 100644 --- a/viewport/dynamic_split_screen/split_screen.gdshader +++ b/viewport/dynamic_split_screen/split_screen.gdshader @@ -2,8 +2,8 @@ shader_type canvas_item; render_mode unshaded; uniform vec2 viewport_size; // size in pixels of the viewport. Cannot be access from the shader in GLES2 -uniform sampler2D viewport1 : hint_albedo; -uniform sampler2D viewport2 : hint_albedo; +uniform sampler2D viewport1 : source_color; +uniform sampler2D viewport2 : source_color; uniform bool split_active; // true: split screen, false: use view1 uniform vec2 player1_position; // position of player 1 un UV coordinates uniform vec2 player2_position; // position of player 2 un UV coordinates diff --git a/viewport/dynamic_split_screen/split_screen.tscn b/viewport/dynamic_split_screen/split_screen.tscn index 03a16bd2fa7..9f7c6f9229c 100644 --- a/viewport/dynamic_split_screen/split_screen.tscn +++ b/viewport/dynamic_split_screen/split_screen.tscn @@ -10,22 +10,22 @@ sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) [sub_resource type="Sky" id="Sky_i64ko"] -sky_material = SubResource( "ProceduralSkyMaterial_16la2" ) +sky_material = SubResource("ProceduralSkyMaterial_16la2") [sub_resource type="Environment" id="Environment_vdrvu"] background_mode = 2 -sky = SubResource( "Sky_i64ko" ) +sky = SubResource("Sky_i64ko") tonemap_mode = 2 glow_enabled = true [sub_resource type="ShaderMaterial" id="1"] -shader = ExtResource( "3" ) -shader_param/viewport_size = null -shader_param/split_active = null -shader_param/player1_position = null -shader_param/player2_position = null -shader_param/split_line_thickness = null -shader_param/split_line_color = null +shader = ExtResource("3") +shader_parameter/player1_position = null +shader_parameter/player2_position = null +shader_parameter/split_active = null +shader_parameter/split_line_color = null +shader_parameter/split_line_thickness = null +shader_parameter/viewport_size = null [sub_resource type="CapsuleMesh" id="2"] radius = 0.375 @@ -44,7 +44,7 @@ albedo_color = Color(0.0784314, 0.411765, 0.933333, 1) [sub_resource type="StandardMaterial3D" id="6"] [sub_resource type="PlaneMesh" id="7"] -material = SubResource( "6" ) +material = SubResource("6") size = Vector2(200, 200) [sub_resource type="BoxShape3D" id="8"] @@ -184,28 +184,30 @@ albedo_color = Color(0.791675, 0.946163, 0.317723, 1) [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0) shadow_enabled = true +directional_shadow_mode = 0 directional_shadow_split_3 = 0.25 directional_shadow_blend_splits = true -directional_shadow_max_distance = 50.0 +directional_shadow_fade_start = 1.0 +directional_shadow_max_distance = 25.0 [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( "Environment_vdrvu" ) +environment = SubResource("Environment_vdrvu") [node name="Cameras" type="Node3D" parent="."] -script = ExtResource( "2" ) +script = ExtResource("2") max_separation = 10.0 [node name="View" type="TextureRect" parent="Cameras"] -material = SubResource( "1" ) +material = SubResource("1") +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -texture = ExtResource( "4" ) -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 +grow_vertical = 2 +texture = ExtResource("4") [node name="Viewport1" type="SubViewport" parent="Cameras"] -msaa = 2 +msaa_3d = 2 size = Vector2i(100, 100) render_target_update_mode = 3 @@ -214,7 +216,7 @@ transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0, 10, current = true [node name="Viewport2" type="SubViewport" parent="Cameras"] -msaa = 2 +msaa_3d = 2 size = Vector2i(100, 100) render_target_update_mode = 3 @@ -224,36 +226,36 @@ current = true [node name="Player1" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.875, 0) -script = ExtResource( "5" ) +script = ExtResource("5") [node name="Mesh" type="MeshInstance3D" parent="Player1"] -mesh = SubResource( "2" ) -surface_material_override/0 = SubResource( "3" ) +mesh = SubResource("2") +surface_material_override/0 = SubResource("3") [node name="CollisionShape3D" type="CollisionShape3D" parent="Player1"] -shape = SubResource( "4" ) +shape = SubResource("4") [node name="Player2" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.184, 0.875, 3.019) -script = ExtResource( "5" ) +script = ExtResource("5") player_id = 2 [node name="Mesh" type="MeshInstance3D" parent="Player2"] -mesh = SubResource( "2" ) -surface_material_override/0 = SubResource( "5" ) +mesh = SubResource("2") +surface_material_override/0 = SubResource("5") [node name="CollisionShape3D" type="CollisionShape3D" parent="Player2"] -shape = SubResource( "4" ) +shape = SubResource("4") [node name="Ground" type="StaticBody3D" parent="."] [node name="Mesh" type="MeshInstance3D" parent="Ground"] transform = Transform3D(20, 0, 0, 0, 1, 0, 0, 0, 20, 0, 0, 0) -mesh = SubResource( "7" ) +mesh = SubResource("7") [node name="CollisionShape3D" type="CollisionShape3D" parent="Ground"] transform = Transform3D(200, 0, 0, 0, 1, 0, 0, 0, 200, 0, -1, 0) -shape = SubResource( "8" ) +shape = SubResource("8") [node name="Walls" type="Node3D" parent="."] @@ -263,61 +265,61 @@ shape = SubResource( "8" ) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2.04192, 0.5, -2.95078) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall1"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall1" groups=["walls"]] -material_override = SubResource( "10" ) -mesh = SubResource( "11" ) +material_override = SubResource("10") +mesh = SubResource("11") [node name="Wall2" type="StaticBody3D" parent="Walls/Group1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 6.1906, 0.5, -1.34368) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall2"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall2" groups=["walls"]] -material_override = SubResource( "12" ) -mesh = SubResource( "11" ) +material_override = SubResource("12") +mesh = SubResource("11") [node name="Wall3" type="StaticBody3D" parent="Walls/Group1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4.49545, 0.5, -6.6514) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall3"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall3" groups=["walls"]] -material_override = SubResource( "13" ) -mesh = SubResource( "11" ) +material_override = SubResource("13") +mesh = SubResource("11") [node name="Wall4" type="StaticBody3D" parent="Walls/Group1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.55082, 0.5, 2.19531) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall4"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall4" groups=["walls"]] -material_override = SubResource( "14" ) -mesh = SubResource( "11" ) +material_override = SubResource("14") +mesh = SubResource("11") [node name="Wall5" type="StaticBody3D" parent="Walls/Group1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.06483, 0.5, -4.54868) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall5"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall5" groups=["walls"]] -material_override = SubResource( "15" ) -mesh = SubResource( "11" ) +material_override = SubResource("15") +mesh = SubResource("11") [node name="Wall6" type="StaticBody3D" parent="Walls/Group1"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.49651, 0.5, 0.88507) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group1/Wall6"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group1/Wall6" groups=["walls"]] -material_override = SubResource( "16" ) -mesh = SubResource( "11" ) +material_override = SubResource("16") +mesh = SubResource("11") [node name="Group2" type="Node3D" parent="Walls"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 0, -2) @@ -326,61 +328,61 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 0, -2) transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -0.858015, 0.5, -2.8199) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall1"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall1" groups=["walls"]] -material_override = SubResource( "17" ) -mesh = SubResource( "11" ) +material_override = SubResource("17") +mesh = SubResource("11") [node name="Wall2" type="StaticBody3D" parent="Walls/Group2"] transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, 7.02869, 0.5, 0.0361555) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall2"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall2" groups=["walls"]] -material_override = SubResource( "18" ) -mesh = SubResource( "11" ) +material_override = SubResource("18") +mesh = SubResource("11") [node name="Wall3" type="StaticBody3D" parent="Walls/Group2"] transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -2.71223, 0.5, -6.85429) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall3"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall3" groups=["walls"]] -material_override = SubResource( "19" ) -mesh = SubResource( "11" ) +material_override = SubResource("19") +mesh = SubResource("11") [node name="Wall4" type="StaticBody3D" parent="Walls/Group2"] transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -0.177408, 0.5, 2.49446) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall4"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall4" groups=["walls"]] -material_override = SubResource( "20" ) -mesh = SubResource( "11" ) +material_override = SubResource("20") +mesh = SubResource("11") [node name="Wall5" type="StaticBody3D" parent="Walls/Group2"] transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, 3.44585, 0.5, -3.76612) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall5"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall5" groups=["walls"]] -material_override = SubResource( "21" ) -mesh = SubResource( "11" ) +material_override = SubResource("21") +mesh = SubResource("11") [node name="Wall6" type="StaticBody3D" parent="Walls/Group2"] transform = Transform3D(0.988065, 0, -0.154039, 0, 1, 0, 0.154039, 0, 0.988065, -2.88611, 0.5, 0.746109) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group2/Wall6"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group2/Wall6" groups=["walls"]] -material_override = SubResource( "22" ) -mesh = SubResource( "11" ) +material_override = SubResource("22") +mesh = SubResource("11") [node name="Group3" type="Node3D" parent="Walls"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 9) @@ -389,61 +391,61 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -6, 0, 9) transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -3.48748, 0.5, -1.93005) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall1"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall1" groups=["walls"]] -material_override = SubResource( "23" ) -mesh = SubResource( "11" ) +material_override = SubResource("23") +mesh = SubResource("11") [node name="Wall2" type="StaticBody3D" parent="Walls/Group3"] transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, 4.6471, 0.5, -3.97599) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall2"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall2" groups=["walls"]] -material_override = SubResource( "24" ) -mesh = SubResource( "11" ) +material_override = SubResource("24") +mesh = SubResource("11") [node name="Wall3" type="StaticBody3D" parent="Walls/Group3"] transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -7.28169, 0.5, -4.23621) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall3"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall3" groups=["walls"]] -material_override = SubResource( "25" ) -mesh = SubResource( "11" ) +material_override = SubResource("25") +mesh = SubResource("11") [node name="Wall4" type="StaticBody3D" parent="Walls/Group3"] transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, 0.0502639, 0.5, 2.09362) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall4"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall4" groups=["walls"]] -material_override = SubResource( "26" ) -mesh = SubResource( "11" ) +material_override = SubResource("26") +mesh = SubResource("11") [node name="Wall5" type="StaticBody3D" parent="Walls/Group3"] transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -0.449914, 0.5, -5.12252) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall5"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall5" groups=["walls"]] -material_override = SubResource( "27" ) -mesh = SubResource( "11" ) +material_override = SubResource("27") +mesh = SubResource("11") [node name="Wall6" type="StaticBody3D" parent="Walls/Group3"] transform = Transform3D(0.905096, 0, 0.425207, 0, 1, 0, -0.425207, 0, 0.905096, -3.17299, 0.5, 2.16026) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group3/Wall6"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group3/Wall6" groups=["walls"]] -material_override = SubResource( "28" ) -mesh = SubResource( "11" ) +material_override = SubResource("28") +mesh = SubResource("11") [node name="Group4" type="Node3D" parent="Walls"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 0, 6) @@ -452,61 +454,61 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7, 0, 6) transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 2.61556, 0.5, -2.40266) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall1"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall1" groups=["walls"]] -material_override = SubResource( "29" ) -mesh = SubResource( "11" ) +material_override = SubResource("29") +mesh = SubResource("11") [node name="Wall2" type="StaticBody3D" parent="Walls/Group4"] transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 2.30988, 0.5, 5.97969) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall2"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall2" groups=["walls"]] -material_override = SubResource( "30" ) -mesh = SubResource( "11" ) +material_override = SubResource("30") +mesh = SubResource("11") [node name="Wall3" type="StaticBody3D" parent="Walls/Group4"] transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 5.88903, 0.5, -5.40246) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall3"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall3" groups=["walls"]] -material_override = SubResource( "31" ) -mesh = SubResource( "11" ) +material_override = SubResource("31") +mesh = SubResource("11") [node name="Wall4" type="StaticBody3D" parent="Walls/Group4"] transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, -2.23559, 0.5, -0.128489) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall4"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall4" groups=["walls"]] -material_override = SubResource( "32" ) -mesh = SubResource( "11" ) +material_override = SubResource("32") +mesh = SubResource("11") [node name="Wall5" type="StaticBody3D" parent="Walls/Group4"] transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, 4.8334, 0.5, 1.4052) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall5"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall5" groups=["walls"]] -material_override = SubResource( "33" ) -mesh = SubResource( "11" ) +material_override = SubResource("33") +mesh = SubResource("11") [node name="Wall6" type="StaticBody3D" parent="Walls/Group4"] transform = Transform3D(0.155702, 0, -0.987804, 0, 1, 0, 0.987804, 0, 0.155702, -1.39999, 0.5, -3.24225) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group4/Wall6"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group4/Wall6" groups=["walls"]] -material_override = SubResource( "34" ) -mesh = SubResource( "11" ) +material_override = SubResource("34") +mesh = SubResource("11") [node name="Group5" type="Node3D" parent="Walls"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 14) @@ -515,61 +517,61 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 14) transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -1.87929, 0.5, -3.04373) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall1"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall1" groups=["walls"]] -material_override = SubResource( "35" ) -mesh = SubResource( "11" ) +material_override = SubResource("35") +mesh = SubResource("11") [node name="Wall2" type="StaticBody3D" parent="Walls/Group5"] transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, 6.39778, 0.5, -1.68458) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall2"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall2" groups=["walls"]] -material_override = SubResource( "36" ) -mesh = SubResource( "11" ) +material_override = SubResource("36") +mesh = SubResource("11") [node name="Wall3" type="StaticBody3D" parent="Walls/Group5"] transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -4.44285, 0.5, -6.669) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall3"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall3" groups=["walls"]] -material_override = SubResource( "37" ) -mesh = SubResource( "11" ) +material_override = SubResource("37") +mesh = SubResource("11") [node name="Wall4" type="StaticBody3D" parent="Walls/Group5"] transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -0.234326, 0.5, 2.05526) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall4"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall4" groups=["walls"]] -material_override = SubResource( "38" ) -mesh = SubResource( "11" ) +material_override = SubResource("38") +mesh = SubResource("11") [node name="Wall5" type="StaticBody3D" parent="Walls/Group5"] transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, 2.17761, 0.5, -4.76423) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall5"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall5" groups=["walls"]] -material_override = SubResource( "39" ) -mesh = SubResource( "11" ) +material_override = SubResource("39") +mesh = SubResource("11") [node name="Wall6" type="StaticBody3D" parent="Walls/Group5"] transform = Transform3D(0.999549, 0, 0.0300306, 0, 1, 0, -0.0300306, 0, 0.999549, -3.21803, 0.5, 0.834073) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group5/Wall6"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group5/Wall6" groups=["walls"]] -material_override = SubResource( "40" ) -mesh = SubResource( "11" ) +material_override = SubResource("40") +mesh = SubResource("11") [node name="Group6" type="Node3D" parent="Walls"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -7) @@ -578,61 +580,61 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 10, 0, -7) transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 1.70841, 0.5, -3.54429) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall1"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall1" groups=["walls"]] -material_override = SubResource( "41" ) -mesh = SubResource( "11" ) +material_override = SubResource("41") +mesh = SubResource("11") [node name="Wall2" type="StaticBody3D" parent="Walls/Group6"] transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 5.48642, 0.5, 3.94462) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall2"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall2" groups=["walls"]] -material_override = SubResource( "42" ) -mesh = SubResource( "11" ) +material_override = SubResource("42") +mesh = SubResource("11") [node name="Wall3" type="StaticBody3D" parent="Walls/Group6"] transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 3.1275, 0.5, -7.7515) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall3"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall3" groups=["walls"]] -material_override = SubResource( "43" ) -mesh = SubResource( "11" ) +material_override = SubResource("43") +mesh = SubResource("11") [node name="Wall4" type="StaticBody3D" parent="Walls/Group6"] transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, -1.44268, 0.5, 0.788867) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall4"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall4" groups=["walls"]] -material_override = SubResource( "44" ) -mesh = SubResource( "11" ) +material_override = SubResource("44") +mesh = SubResource("11") [node name="Wall5" type="StaticBody3D" parent="Walls/Group6"] transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, 5.48868, 0.5, -1.27975) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall5"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall5" groups=["walls"]] -material_override = SubResource( "45" ) -mesh = SubResource( "11" ) +material_override = SubResource("45") +mesh = SubResource("11") [node name="Wall6" type="StaticBody3D" parent="Walls/Group6"] transform = Transform3D(0.613129, 0, -0.789983, 0, 1, 0, 0.789983, 0, 0.613129, -2.2137, 0.5, -2.34152) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group6/Wall6"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group6/Wall6" groups=["walls"]] -material_override = SubResource( "46" ) -mesh = SubResource( "11" ) +material_override = SubResource("46") +mesh = SubResource("11") [node name="Group7" type="Node3D" parent="Walls"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0, -16) @@ -641,58 +643,58 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -4, 0, -16) transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 1.73055, 0.5, 2.47421) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall1"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall1" groups=["walls"]] -material_override = SubResource( "47" ) -mesh = SubResource( "11" ) +material_override = SubResource("47") +mesh = SubResource("11") [node name="Wall2" type="StaticBody3D" parent="Walls/Group7"] transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, -6.55531, 0.5, 1.16971) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall2"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall2" groups=["walls"]] -material_override = SubResource( "48" ) -mesh = SubResource( "11" ) +material_override = SubResource("48") +mesh = SubResource("11") [node name="Wall3" type="StaticBody3D" parent="Walls/Group7"] transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 4.31798, 0.5, 6.08249) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall3"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall3" groups=["walls"]] -material_override = SubResource( "49" ) -mesh = SubResource( "11" ) +material_override = SubResource("49") +mesh = SubResource("11") [node name="Wall4" type="StaticBody3D" parent="Walls/Group7"] transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 0.0519707, 0.5, -2.61381) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall4"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall4" groups=["walls"]] -material_override = SubResource( "50" ) -mesh = SubResource( "11" ) +material_override = SubResource("50") +mesh = SubResource("11") [node name="Wall5" type="StaticBody3D" parent="Walls/Group7"] transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, -2.31492, 0.5, 4.22145) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall5"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall5" groups=["walls"]] -material_override = SubResource( "51" ) -mesh = SubResource( "11" ) +material_override = SubResource("51") +mesh = SubResource("11") [node name="Wall6" type="StaticBody3D" parent="Walls/Group7"] transform = Transform3D(-0.999329, 0, -0.0366257, 0, 1, 0, 0.0366257, 0, -0.999329, 3.04367, 0.5, -1.41234) [node name="CollisionShape3D" type="CollisionShape3D" parent="Walls/Group7/Wall6"] -shape = SubResource( "9" ) +shape = SubResource("9") [node name="MeshInstance3D" type="MeshInstance3D" parent="Walls/Group7/Wall6" groups=["walls"]] -material_override = SubResource( "52" ) -mesh = SubResource( "11" ) +material_override = SubResource("52") +mesh = SubResource("11") diff --git a/viewport/gui_in_3d/gui_3d.gd b/viewport/gui_in_3d/gui_3d.gd index 89baed1625d..47f2aabf50e 100644 --- a/viewport/gui_in_3d/gui_3d.gd +++ b/viewport/gui_in_3d/gui_3d.gd @@ -16,7 +16,7 @@ var last_mouse_pos2D = null @onready var node_area = $Quad/Area3D func _ready(): - node_area.connect(&"mouse_entered", self._mouse_entered_area) + node_area.mouse_entered.connect(self._mouse_entered_area) # If the material is NOT set to use billboard settings, then avoid running billboard specific code if node_quad.get_surface_override_material(0).billboard_mode == BaseMaterial3D.BillboardMode.BILLBOARD_DISABLED: diff --git a/viewport/gui_in_3d/gui_in_3d.tscn b/viewport/gui_in_3d/gui_in_3d.tscn index e0ee99f4755..9f9fccc44e6 100644 --- a/viewport/gui_in_3d/gui_in_3d.tscn +++ b/viewport/gui_in_3d/gui_in_3d.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=9 format=3 uid="uid://0iek6ri88gkb"] +[gd_scene load_steps=10 format=3 uid="uid://0iek6ri88gkb"] [ext_resource type="PackedScene" uid="uid://dvl383ispakmn" path="res://gui_panel_3d.tscn" id="1"] @@ -7,16 +7,17 @@ sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) [sub_resource type="Sky" id="Sky_pq42j"] -sky_material = SubResource( "ProceduralSkyMaterial_1lgdv" ) +sky_material = SubResource("ProceduralSkyMaterial_1lgdv") [sub_resource type="Environment" id="Environment_niyks"] background_mode = 2 -sky = SubResource( "Sky_pq42j" ) +sky = SubResource("Sky_pq42j") tonemap_mode = 2 glow_enabled = true [sub_resource type="Animation" id="1"] length = 6.0 +loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -25,11 +26,16 @@ tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0, 2, 4, 6), -"transitions": PackedFloat32Array(1, 1, 1, 1), +"transitions": PackedFloat32Array(-2, -2, -2, -2), "update": 0, "values": [Transform3D(0.994592, 0, 0.103856, 0, 1, 0, -0.103856, 0, 0.994592, 0.465682, 0, 1.78523), Transform3D(0.962984, 0, -0.269557, 0, 1, 0, 0.269557, 0, 0.962984, -0.462237, 0, 2.41934), Transform3D(0.806599, 0, -0.591098, 0, 1, 0, 0.591098, 0, 0.806599, -1.59502, 0, 2.05358), Transform3D(0.994592, 0, 0.103856, 0, 1, 0, -0.103856, 0, 0.994592, 0.465682, 0, 1.78523)] } +[sub_resource type="AnimationLibrary" id="AnimationLibrary_uw4n0"] +_data = { +"Move_camera": SubResource("1") +} + [sub_resource type="PlaneMesh" id="2"] [sub_resource type="BoxMesh" id="3"] @@ -41,9 +47,9 @@ roughness = 0.0 [node name="GUIin3D" type="Node3D"] [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = SubResource( "Environment_niyks" ) +environment = SubResource("Environment_niyks") -[node name="GUIPanel3D" parent="." instance=ExtResource( "1" )] +[node name="GUIPanel3D" parent="." instance=ExtResource("1")] [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 0.999999, 0, 0, 3) @@ -53,41 +59,44 @@ near = 0.1 [node name="OmniLight3D" type="OmniLight3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.38866, 1.2413, 2.72141) shadow_enabled = true +shadow_blur = 3.0 omni_range = 10.0 [node name="Camera_Move" type="AnimationPlayer" parent="."] autoplay = "Move_camera" playback_speed = 0.25 -anims/Move_camera = SubResource( "1" ) +libraries = { +"": SubResource("AnimationLibrary_uw4n0") +} [node name="Background" type="Node3D" parent="."] [node name="Wall" type="MeshInstance3D" parent="Background"] transform = Transform3D(4, 0, 0, 0, -1.74846e-07, -4, 0, 4, -1.74846e-07, -2.60819, 0.589247, -2.08943) -mesh = SubResource( "2" ) +mesh = SubResource("2") [node name="Wall2" type="MeshInstance3D" parent="Background"] transform = Transform3D(4, 0, 0, 0, -1.74846e-07, -4, 0, 4, -1.74846e-07, 5.08055, 0.589247, -2.08943) -mesh = SubResource( "2" ) +mesh = SubResource("2") [node name="Wall3" type="MeshInstance3D" parent="Background"] transform = Transform3D(-1.74846e-07, -4, 0, -1.74846e-07, 7.64274e-15, -4, 4, -1.74846e-07, -1.74846e-07, 9.04446, 0.589247, 1.62058) -mesh = SubResource( "2" ) +mesh = SubResource("2") [node name="Floor" type="MeshInstance3D" parent="Background"] transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, -2.60819, -2.68765, 1.46502) -mesh = SubResource( "2" ) +mesh = SubResource("2") [node name="Floor2" type="MeshInstance3D" parent="Background"] transform = Transform3D(4, 0, 0, 0, 4, 0, 0, 0, 4, 5.08055, -2.68765, 1.46502) -mesh = SubResource( "2" ) +mesh = SubResource("2") [node name="Cube" type="MeshInstance3D" parent="Background"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 4.25901, -0.598608, 0.374871) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") [node name="Cube2" type="MeshInstance3D" parent="Background"] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2.88761, 2.01326, 0.374871) -mesh = SubResource( "3" ) -surface_material_override/0 = SubResource( "4" ) +mesh = SubResource("3") +surface_material_override/0 = SubResource("4") diff --git a/viewport/gui_in_3d/icon.png.import b/viewport/gui_in_3d/icon.png.import index e7a04b7e666..ebdf968fc39 100644 --- a/viewport/gui_in_3d/icon.png.import +++ b/viewport/gui_in_3d/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/gui_in_3d/project.godot b/viewport/gui_in_3d/project.godot index 3ed74ab9466..89410f75720 100644 --- a/viewport/gui_in_3d/project.godot +++ b/viewport/gui_in_3d/project.godot @@ -14,8 +14,8 @@ config/name="GUI in 3D" config/description="A demo showing a GUI instanced within a 3D scene using viewports, as well as forwarding mouse and keyboard input to the GUI." run/main_scene="res://gui_in_3d.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") +config/icon="res://icon.png" [gdnative] @@ -27,11 +27,6 @@ singletons=[] [rendering] -quality/driver/fallback_to_gles2=true -quality/intended_usage/framebuffer_allocation=3 -vram_compression/import_etc=true -quality/shadow_atlas/size=2048 -quality/shadow_atlas/size.mobile=1024 -quality/shadows/filter_mode=2 -quality/filters/msaa=2 +anti_aliasing/quality/msaa_3d=2 +anti_aliasing/quality/use_debanding=true environment/default_environment="res://default_env.tres" diff --git a/viewport/screen_capture/icon.png.import b/viewport/screen_capture/icon.png.import index 06981762b61..381006f1808 100644 --- a/viewport/screen_capture/icon.png.import +++ b/viewport/screen_capture/icon.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/screen_capture/mountains.png.import b/viewport/screen_capture/mountains.png.import index d3115dcc0a2..ead717a961b 100644 --- a/viewport/screen_capture/mountains.png.import +++ b/viewport/screen_capture/mountains.png.import @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/viewport/screen_capture/project.godot b/viewport/screen_capture/project.godot index 4dbe4a12988..6f6a6506d2b 100644 --- a/viewport/screen_capture/project.godot +++ b/viewport/screen_capture/project.godot @@ -13,23 +13,9 @@ config_version=5 config/name="Screen Capture" config/description="An example showing how to take screenshots of the screen." run/main_scene="res://screen_capture.tscn" -config/icon="res://icon.png" config/features=PackedStringArray("4.0") - -[debug] - -gdscript/warnings/return_value_discarded=false +config/icon="res://icon.png" [display] -window/stretch/mode="2d" - -[gdnative] - -singletons=[] - -[rendering] - -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +window/stretch/mode="canvas_items" diff --git a/viewport/screen_capture/screen_capture.gd b/viewport/screen_capture/screen_capture.gd index dd9ac59db8d..0d768a01dad 100644 --- a/viewport/screen_capture/screen_capture.gd +++ b/viewport/screen_capture/screen_capture.gd @@ -7,8 +7,7 @@ func _on_CaptureButton_pressed(): var img = get_viewport().get_texture().get_image() # Create a texture for it. - var tex = ImageTexture.new() - tex.create_from_image(img) + var tex = ImageTexture.create_from_image(img) # Set the texture to the captured image node. captured_image.set_texture(tex) diff --git a/viewport/screen_capture/screen_capture.tscn b/viewport/screen_capture/screen_capture.tscn index f4dcddda6f3..ecc59adceb2 100644 --- a/viewport/screen_capture/screen_capture.tscn +++ b/viewport/screen_capture/screen_capture.tscn @@ -4,18 +4,24 @@ [ext_resource type="Texture2D" uid="uid://tgwx64g0plcn" path="res://mountains.png" id="2"] [node name="ScreenCapture" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -script = ExtResource( "1" ) +script = ExtResource("1") [node name="Background" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 0 grow_vertical = 0 -texture = ExtResource( "2" ) +texture = ExtResource("2") [node name="CapturedImage" type="TextureRect" parent="."] +layout_mode = 1 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 128.0 @@ -26,12 +32,9 @@ grow_horizontal = 2 grow_vertical = 2 ignore_texture_size = true stretch_mode = 4 -__meta__ = { -"_edit_layout_mode": 1, -"_edit_use_custom_anchors": false -} [node name="CaptureButton" type="Button" parent="."] +layout_mode = 0 offset_left = 50.0 offset_top = 50.0 offset_right = 190.0