diff --git a/2d/dodge_the_creeps/HUD.tscn b/2d/dodge_the_creeps/HUD.tscn index 42171efc..104f9dc4 100644 --- a/2d/dodge_the_creeps/HUD.tscn +++ b/2d/dodge_the_creeps/HUD.tscn @@ -4,63 +4,31 @@ [ext_resource path="res://fonts/Xolonium-Regular.ttf" type="DynamicFontData" id=2] [sub_resource type="DynamicFont" id=1] - size = 64 -use_mipmaps = false -use_filter = false font_data = ExtResource( 2 ) -_sections_unfolded = [ "Font", "Settings" ] [sub_resource type="DynamicFont" id=2] - size = 72 -use_mipmaps = false -use_filter = false font_data = ExtResource( 2 ) -_sections_unfolded = [ "Font", "Settings" ] [sub_resource type="DynamicFont" id=3] - size = 48 -use_mipmaps = false -use_filter = false font_data = ExtResource( 2 ) -_sections_unfolded = [ "Font", "Settings" ] [node name="HUD" type="CanvasLayer"] - -layer = 1 -offset = Vector2( 0, 0 ) -rotation = 0.0 -scale = Vector2( 1, 1 ) -transform = Transform2D( 1, 0, 0, 1, 0, 0 ) script = ExtResource( 1 ) -[node name="ScoreLabel" type="Label" parent="." index="0"] - +[node name="ScoreLabel" type="Label" parent="."] anchor_left = 0.5 -anchor_top = 0.0 anchor_right = 0.5 -anchor_bottom = 0.0 margin_left = -25.0 margin_right = 25.0 margin_bottom = 100.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = SubResource( 1 ) text = "0" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Anchor", "Margin", "custom_fonts" ] - -[node name="MessageLabel" type="Label" parent="." index="1"] +[node name="MessageLabel" type="Label" parent="."] anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -69,31 +37,17 @@ margin_left = -200.0 margin_top = -150.0 margin_right = 200.0 margin_bottom = 50.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = SubResource( 2 ) text = "Dodge the Creeps!" align = 1 valign = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "Anchor", "Margin", "custom_fonts" ] -[node name="MessageTimer" type="Timer" parent="." index="2"] - -process_mode = 1 +[node name="MessageTimer" type="Timer" parent="."] wait_time = 2.0 one_shot = true -autostart = false - -[node name="StartButton" type="Button" parent="." index="3"] +[node name="StartButton" type="Button" parent="."] anchor_left = 0.5 anchor_top = 1.0 anchor_right = 0.5 @@ -102,25 +56,8 @@ margin_left = -100.0 margin_top = -200.0 margin_right = 100.0 margin_bottom = -100.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -focus_mode = 2 -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 custom_fonts/font = SubResource( 3 ) -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null text = "Start" -flat = false -align = 1 -_sections_unfolded = [ "Anchor", "Margin", "Visibility", "custom_fonts" ] [connection signal="timeout" from="MessageTimer" to="." method="_on_MessageTimer_timeout"] - [connection signal="pressed" from="StartButton" to="." method="_on_StartButton_pressed"] - - diff --git a/2d/dodge_the_creeps/Main.tscn b/2d/dodge_the_creeps/Main.tscn index 03c63d00..eb8aea46 100644 --- a/2d/dodge_the_creeps/Main.tscn +++ b/2d/dodge_the_creeps/Main.tscn @@ -8,105 +8,52 @@ [ext_resource path="res://art/gameover.wav" type="AudioStream" id=6] [sub_resource type="Curve2D" id=1] - -bake_interval = 5.0 _data = { "points": PoolVector2Array( 0, 0, 0, 0, 1.70602, 3.56798, 0, 0, 0, 0, 482.263, 3.26522, 0, 0, 0, 0, 480.489, 729.458, 0, 0, 0, 0, 0.794434, 732.118, 0, 0, 0, 0, 1.97066, 3.83263 ) } -[node name="Main" type="Node" index="0"] - +[node name="Main" type="Node"] script = ExtResource( 1 ) Mob = ExtResource( 2 ) -[node name="ColorRect" type="ColorRect" parent="." index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="ColorRect" type="ColorRect" parent="."] margin_right = 486.0 margin_bottom = 734.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 color = Color( 0.253451, 0.425288, 0.429412, 1 ) -[node name="Player" parent="." index="1" instance=ExtResource( 3 )] +[node name="Player" parent="." instance=ExtResource( 3 )] -[node name="MobTimer" type="Timer" parent="." index="2"] - -process_mode = 1 +[node name="MobTimer" type="Timer" parent="."] wait_time = 0.5 -one_shot = false -autostart = false -[node name="ScoreTimer" type="Timer" parent="." index="3"] +[node name="ScoreTimer" type="Timer" parent="."] -process_mode = 1 -wait_time = 1.0 -one_shot = false -autostart = false - -[node name="StartTimer" type="Timer" parent="." index="4"] - -process_mode = 1 +[node name="StartTimer" type="Timer" parent="."] wait_time = 2.0 one_shot = true -autostart = false - -[node name="StartPosition" type="Position2D" parent="." index="5"] +[node name="StartPosition" type="Position2D" parent="."] position = Vector2( 240, 450 ) -_sections_unfolded = [ "Transform" ] -[node name="HUD" parent="." index="6" instance=ExtResource( 4 )] - -transform = Transform2D( 1, 0, 0, 1, 0, 0 ) - -[node name="Music" type="AudioStreamPlayer" parent="." index="7"] +[node name="HUD" parent="." instance=ExtResource( 4 )] +[node name="Music" type="AudioStreamPlayer" parent="."] stream = ExtResource( 5 ) volume_db = -8.0 -autoplay = false -mix_target = 0 -bus = "Master" - -[node name="DeathSound" type="AudioStreamPlayer" parent="." index="8"] +[node name="DeathSound" type="AudioStreamPlayer" parent="."] stream = ExtResource( 6 ) volume_db = -5.0 -autoplay = false -mix_target = 0 -bus = "Master" - -[node name="MobPath" type="Path2D" parent="." index="9"] +[node name="MobPath" type="Path2D" parent="."] curve = SubResource( 1 ) -[node name="MobSpawnLocation" type="PathFollow2D" parent="MobPath" index="0"] - +[node name="MobSpawnLocation" type="PathFollow2D" parent="MobPath"] position = Vector2( 1.70602, 3.56798 ) rotation = -0.000630111 -offset = 0.0 -h_offset = 0.0 -v_offset = 0.0 -rotate = true -cubic_interp = true -loop = true -lookahead = 4.0 [connection signal="hit" from="Player" to="." method="game_over"] - [connection signal="timeout" from="MobTimer" to="." method="_on_MobTimer_timeout"] - [connection signal="timeout" from="ScoreTimer" to="." method="_on_ScoreTimer_timeout"] - [connection signal="timeout" from="StartTimer" to="." method="_on_StartTimer_timeout"] - [connection signal="start_game" from="HUD" to="." method="new_game"] - - diff --git a/2d/dodge_the_creeps/Mob.tscn b/2d/dodge_the_creeps/Mob.tscn index 05b0da2a..9e0d2c59 100644 --- a/2d/dodge_the_creeps/Mob.tscn +++ b/2d/dodge_the_creeps/Mob.tscn @@ -9,7 +9,6 @@ [ext_resource path="res://art/enemySwimming_2.png" type="Texture" id=7] [sub_resource type="SpriteFrames" id=1] - animations = [ { "frames": [ ExtResource( 2 ), ExtResource( 3 ) ], "loop": true, @@ -28,55 +27,32 @@ animations = [ { } ] [sub_resource type="CapsuleShape2D" id=2] - -custom_solver_bias = 0.0 radius = 34.8222 height = 28.8308 [node name="Mob" type="RigidBody2D"] - input_pickable = true -collision_layer = 1 collision_mask = 0 -mode = 0 -mass = 1.0 -friction = 1.0 -bounce = 0.0 gravity_scale = 0.0 -custom_integrator = false -continuous_cd = 0 -contacts_reported = 0 -contact_monitor = false -sleeping = false -can_sleep = true -linear_velocity = Vector2( 0, 0 ) linear_damp = 0.1 -angular_velocity = 0.0 angular_damp = 1.0 script = ExtResource( 1 ) -_sections_unfolded = [ "Angular", "Collision", "Transform" ] __meta__ = { "_edit_group_": true } MIN_SPEED = 150 MAX_SPEED = 250 -[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"] - +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] scale = Vector2( 0.75, 0.75 ) frames = SubResource( 1 ) animation = "swim" +frame = 1 playing = true -_sections_unfolded = [ "Transform" ] - -[node name="Collision" type="CollisionShape2D" parent="." index="1"] +[node name="Collision" type="CollisionShape2D" parent="."] rotation = 1.5708 shape = SubResource( 2 ) -_sections_unfolded = [ "Transform", "Visibility" ] - -[node name="Visibility" type="VisibilityNotifier2D" parent="." index="2"] - -rect = Rect2( -10, -10, 20, 20 ) +[node name="Visibility" type="VisibilityNotifier2D" parent="."] diff --git a/2d/dodge_the_creeps/Player.gd b/2d/dodge_the_creeps/Player.gd index 875bb505..17345ffd 100644 --- a/2d/dodge_the_creeps/Player.gd +++ b/2d/dodge_the_creeps/Player.gd @@ -13,7 +13,8 @@ func _ready(): func start(pos): position = pos show() - $Collision.disabled = false + # Must be deferred as we can't change physics properties on a physics callback + $Collision.set_deferred("disabled", false) func _process(delta): velocity = Vector2() @@ -45,10 +46,8 @@ func _process(delta): $AnimatedSprite.animation = "up" $AnimatedSprite.flip_v = velocity.y > 0 -func _on_Player_body_entered( body ): - $Collision.disabled = true +func _on_Player_body_entered(_body): + # Must be deferred as we can't change physics properties on a physics callback + $Collision.set_deferred("disabled", true) hide() emit_signal("hit") - - - diff --git a/2d/dodge_the_creeps/Player.tscn b/2d/dodge_the_creeps/Player.tscn index eb678536..004d1af2 100644 --- a/2d/dodge_the_creeps/Player.tscn +++ b/2d/dodge_the_creeps/Player.tscn @@ -7,7 +7,6 @@ [ext_resource path="res://art/playerGrey_up2.png" type="Texture" id=5] [sub_resource type="SpriteFrames" id=1] - animations = [ { "frames": [ ExtResource( 2 ), ExtResource( 3 ) ], "loop": true, @@ -21,125 +20,52 @@ animations = [ { } ] [sub_resource type="CapsuleShape2D" id=2] - -custom_solver_bias = 0.0 radius = 26.5155 height = 13.8847 [sub_resource type="Gradient" id=3] - -offsets = PoolRealArray( 0, 1 ) colors = PoolColorArray( 1, 1, 1, 0.523804, 1, 1, 1, 0 ) [sub_resource type="GradientTexture" id=4] - -flags = 4 gradient = SubResource( 3 ) -width = 2048 [sub_resource type="Curve" id=5] - -min_value = 0.0 -max_value = 1.0 -bake_resolution = 100 _data = [ Vector2( 0, 0.446289 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.306641 ), 0.0, 0.0, 0, 0 ] [sub_resource type="CurveTexture" id=6] - -flags = 4 -width = 2048 curve = SubResource( 5 ) [sub_resource type="ParticlesMaterial" id=7] - -render_priority = 0 -trail_divisor = 1 -emission_shape = 0 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 0, 0 ) initial_velocity = 1.0 -initial_velocity_random = 0.0 angular_velocity = 1.56945e-43 -angular_velocity_random = 0.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 -scale = 1.0 -scale_random = 0.0 scale_curve = SubResource( 6 ) color_ramp = SubResource( 4 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -_sections_unfolded = [ "Color", "Gravity", "Scale" ] [node name="Player" type="Area2D"] - -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 1 ) -_sections_unfolded = [ "Transform" ] __meta__ = { "_edit_group_": true } SPEED = 400 -[node name="AnimatedSprite" type="AnimatedSprite" parent="." index="0"] - +[node name="AnimatedSprite" type="AnimatedSprite" parent="."] scale = Vector2( 0.5, 0.5 ) frames = SubResource( 1 ) animation = "right" -_sections_unfolded = [ "Region", "Transform", "Z" ] - -[node name="Collision" type="CollisionShape2D" parent="." index="1"] +[node name="Collision" type="CollisionShape2D" parent="."] shape = SubResource( 2 ) -[node name="Trail" type="Particles2D" parent="." index="2"] - +[node name="Trail" type="Particles2D" parent="."] show_behind_parent = true -emitting = true amount = 10 -lifetime = 1.0 -one_shot = false -preprocess = 0.0 speed_scale = 2.0 -explosiveness = 0.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) local_coords = false -draw_order = 0 process_material = SubResource( 7 ) texture = ExtResource( 4 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Drawing", "Process Material", "Textures", "Time", "Transform", "Visibility" ] [connection signal="body_entered" from="." to="." method="_on_Player_body_entered"] - - diff --git a/2d/dodge_the_creeps/default_env.tres b/2d/dodge_the_creeps/default_env.tres index 3f3eb245..a79a1bea 100644 --- a/2d/dodge_the_creeps/default_env.tres +++ b/2d/dodge_the_creeps/default_env.tres @@ -1,102 +1,16 @@ [gd_resource type="Environment" load_steps=2 format=2] [sub_resource type="ProceduralSky" id=1] - -radiance_size = 4 sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) sky_curve = 0.25 -sky_energy = 1.0 ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 ) ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) ground_curve = 0.01 -ground_energy = 1.0 -sun_color = Color( 1, 1, 1, 1 ) -sun_latitude = 35.0 -sun_longitude = 0.0 -sun_angle_min = 1.0 -sun_angle_max = 100.0 -sun_curve = 0.05 -sun_energy = 16.0 -texture_size = 2 [resource] - background_mode = 2 background_sky = SubResource( 1 ) -background_sky_custom_fov = 0.0 -background_color = Color( 0, 0, 0, 1 ) -background_energy = 1.0 -background_canvas_max_layer = 0 -ambient_light_color = Color( 0, 0, 0, 1 ) -ambient_light_energy = 1.0 ambient_light_sky_contribution = 0.0 -fog_enabled = false -fog_color = Color( 0.5, 0.6, 0.7, 1 ) -fog_sun_color = Color( 1, 0.9, 0.7, 1 ) -fog_sun_amount = 0.0 -fog_depth_enabled = true -fog_depth_begin = 10.0 -fog_depth_curve = 1.0 -fog_transmit_enabled = false -fog_transmit_curve = 1.0 -fog_height_enabled = false -fog_height_min = 0.0 -fog_height_max = 100.0 -fog_height_curve = 1.0 -tonemap_mode = 0 -tonemap_exposure = 1.0 -tonemap_white = 1.0 -auto_exposure_enabled = false -auto_exposure_scale = 0.4 -auto_exposure_min_luma = 0.05 -auto_exposure_max_luma = 8.0 -auto_exposure_speed = 0.5 -ss_reflections_enabled = false -ss_reflections_max_steps = 64 -ss_reflections_fade_in = 0.15 -ss_reflections_fade_out = 2.0 -ss_reflections_depth_tolerance = 0.2 -ss_reflections_roughness = true -ssao_enabled = false -ssao_radius = 1.0 -ssao_intensity = 1.0 -ssao_radius2 = 0.0 -ssao_intensity2 = 1.0 -ssao_bias = 0.01 -ssao_light_affect = 0.0 -ssao_color = Color( 0, 0, 0, 1 ) -ssao_quality = 0 ssao_blur = 1 -ssao_edge_sharpness = 4.0 -dof_blur_far_enabled = false -dof_blur_far_distance = 10.0 -dof_blur_far_transition = 5.0 -dof_blur_far_amount = 0.1 -dof_blur_far_quality = 1 -dof_blur_near_enabled = false -dof_blur_near_distance = 2.0 -dof_blur_near_transition = 1.0 -dof_blur_near_amount = 0.1 -dof_blur_near_quality = 1 -glow_enabled = false -glow_levels/1 = false -glow_levels/2 = false -glow_levels/3 = true -glow_levels/4 = false -glow_levels/5 = true -glow_levels/6 = false -glow_levels/7 = false -glow_intensity = 0.8 -glow_strength = 1.0 -glow_bloom = 0.0 -glow_blend_mode = 2 -glow_hdr_threshold = 1.0 -glow_hdr_scale = 2.0 -glow_bicubic_upscale = false -adjustment_enabled = false -adjustment_brightness = 1.0 -adjustment_contrast = 1.0 -adjustment_saturation = 1.0 -_sections_unfolded = [ "Background" ] diff --git a/2d/dodge_the_creeps/project.godot b/2d/dodge_the_creeps/project.godot index 5073e1c4..4c0b43b0 100644 --- a/2d/dodge_the_creeps/project.godot +++ b/2d/dodge_the_creeps/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/finite_state_machine/Demo.tscn b/2d/finite_state_machine/Demo.tscn index b15caad4..747ac651 100644 --- a/2d/finite_state_machine/Demo.tscn +++ b/2d/finite_state_machine/Demo.tscn @@ -7,15 +7,14 @@ [node name="Demo" type="Node"] -[node name="Player" parent="." index="0" instance=ExtResource( 1 )] - +[node name="Player" parent="." instance=ExtResource( 1 )] editor/display_folded = true -[node name="StatesStackDiplayer" parent="." index="1" instance=ExtResource( 2 )] +[node name="StatesStackDiplayer" parent="." instance=ExtResource( 2 )] -[node name="ControlsPanel" parent="." index="2" instance=ExtResource( 3 )] +[node name="ControlsPanel" parent="." instance=ExtResource( 3 )] -[node name="Explanations" parent="." index="3" instance=ExtResource( 4 )] +[node name="Explanations" parent="." instance=ExtResource( 4 )] [editable path="Player"] diff --git a/2d/finite_state_machine/debug/ControlsPanel.tscn b/2d/finite_state_machine/debug/ControlsPanel.tscn index 4b55cac4..ea78586c 100644 --- a/2d/finite_state_machine/debug/ControlsPanel.tscn +++ b/2d/finite_state_machine/debug/ControlsPanel.tscn @@ -3,65 +3,34 @@ [ext_resource path="res://debug/top_level_ui.gd" type="Script" id=1] [ext_resource path="res://fonts/source_code_pro_explanations.tres" type="DynamicFont" id=2] -[node name="ControlsPanel" type="Panel" index="0"] - +[node name="ControlsPanel" type="Panel"] anchor_left = 1.0 -anchor_top = 0.0 anchor_right = 1.0 -anchor_bottom = 0.0 margin_left = -220.0 margin_bottom = 170.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 script = ExtResource( 1 ) -[node name="Keys" type="Label" parent="." index="0"] - -anchor_left = 0.0 -anchor_top = 0.0 +[node name="Keys" type="Label" parent="."] anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 10.0 margin_top = 10.0 margin_right = -10.0 margin_bottom = -10.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = ExtResource( 2 ) text = "Shoot: Attack: Stagger: Jump: Sprint:" -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "BBCode", "custom_fonts" ] -[node name="Keys2" type="Label" parent="." index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 +[node name="Keys2" type="Label" parent="."] anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 10.0 margin_top = 10.0 margin_right = -10.0 margin_bottom = -10.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = ExtResource( 2 ) text = "R F @@ -69,9 +38,4 @@ X Space Shift" align = 2 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "BBCode", "custom_fonts" ] - diff --git a/2d/finite_state_machine/debug/Explanations.tscn b/2d/finite_state_machine/debug/Explanations.tscn index f37b6a3a..bd174c0b 100644 --- a/2d/finite_state_machine/debug/Explanations.tscn +++ b/2d/finite_state_machine/debug/Explanations.tscn @@ -4,22 +4,15 @@ [ext_resource path="res://fonts/source_code_pro_explanations.tres" type="DynamicFont" id=2] [ext_resource path="res://debug/top_level_ui.gd" type="Script" id=3] - [node name="Explanations" type="RichTextLabel"] - -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_left = 10.0 margin_top = -370.0 margin_right = -10.0 margin_bottom = -730.0 -rect_pivot_offset = Vector2( 0, 0 ) rect_clip_content = false mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 size_flags_vertical = 4 custom_fonts/bold_font = ExtResource( 1 ) custom_fonts/normal_font = ExtResource( 2 ) @@ -33,10 +26,6 @@ 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 [url=http://gameprogrammingpatterns.com/state.html]Game Programming Patterns ebook[/url]." -visible_characters = -1 -percent_visible = 1.0 -meta_underlined = true -tab_size = 4 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: @@ -46,14 +35,8 @@ 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." -scroll_active = true -scroll_following = false -selection_enabled = false -override_selected_font_color = false script = ExtResource( 3 ) -_sections_unfolded = [ "BBCode", "custom_fonts" ] __meta__ = { "_edit_lock_": true } - diff --git a/2d/finite_state_machine/debug/StatesStackDiplayer.tscn b/2d/finite_state_machine/debug/StatesStackDiplayer.tscn index 859ae2c8..27b82c20 100644 --- a/2d/finite_state_machine/debug/StatesStackDiplayer.tscn +++ b/2d/finite_state_machine/debug/StatesStackDiplayer.tscn @@ -3,106 +3,47 @@ [ext_resource path="res://debug/states_stack_displayer.gd" type="Script" id=1] [ext_resource path="res://fonts/SourceCodePro-Bold.ttf" type="DynamicFontData" id=2] - [sub_resource type="DynamicFont" id=1] - size = 20 -use_mipmaps = false use_filter = true font_data = ExtResource( 2 ) -_sections_unfolded = [ "Font", "Settings" ] [node name="StatesStackDiplayer" type="Panel"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 210.0 margin_bottom = 170.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 1 script = ExtResource( 1 ) __meta__ = { "_edit_group_": true } -[node name="Title" type="Label" parent="." index="0"] - +[node name="Title" type="Label" parent="."] anchor_left = 0.5 -anchor_top = 0.0 anchor_right = 0.5 -anchor_bottom = 0.0 margin_left = -105.0 margin_right = 105.0 margin_bottom = 40.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = SubResource( 1 ) text = "Pushown" align = 1 valign = 1 uppercase = true -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "custom_fonts" ] -[node name="States" type="Label" parent="." index="1"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="States" type="Label" parent="."] margin_left = 20.0 margin_top = 50.0 margin_right = 190.0 margin_bottom = 170.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = SubResource( 1 ) text = "Jump Test" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "custom_fonts" ] -[node name="Numbers" type="Label" parent="." index="2"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 +[node name="Numbers" type="Label" parent="."] margin_left = 20.0 margin_top = 50.0 margin_right = 190.0 margin_bottom = 170.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = SubResource( 1 ) text = "1. 2." -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "custom_fonts" ] - diff --git a/2d/finite_state_machine/default_env.tres b/2d/finite_state_machine/default_env.tres index ad86b722..4b7cb0ac 100644 --- a/2d/finite_state_machine/default_env.tres +++ b/2d/finite_state_machine/default_env.tres @@ -1,101 +1,14 @@ [gd_resource type="Environment" load_steps=2 format=2] [sub_resource type="ProceduralSky" id=1] - -radiance_size = 4 sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) sky_curve = 0.25 -sky_energy = 1.0 ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 ) ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) ground_curve = 0.01 -ground_energy = 1.0 -sun_color = Color( 1, 1, 1, 1 ) -sun_latitude = 35.0 -sun_longitude = 0.0 -sun_angle_min = 1.0 -sun_angle_max = 100.0 -sun_curve = 0.05 -sun_energy = 16.0 -texture_size = 2 [resource] - background_mode = 2 background_sky = SubResource( 1 ) -background_sky_custom_fov = 0.0 -background_color = Color( 0, 0, 0, 1 ) -background_energy = 1.0 -background_canvas_max_layer = 0 -ambient_light_color = Color( 0, 0, 0, 1 ) -ambient_light_energy = 1.0 -ambient_light_sky_contribution = 1.0 -fog_enabled = false -fog_color = Color( 0.5, 0.6, 0.7, 1 ) -fog_sun_color = Color( 1, 0.9, 0.7, 1 ) -fog_sun_amount = 0.0 -fog_depth_enabled = true -fog_depth_begin = 10.0 -fog_depth_curve = 1.0 -fog_transmit_enabled = false -fog_transmit_curve = 1.0 -fog_height_enabled = false -fog_height_min = 0.0 -fog_height_max = 100.0 -fog_height_curve = 1.0 -tonemap_mode = 0 -tonemap_exposure = 1.0 -tonemap_white = 1.0 -auto_exposure_enabled = false -auto_exposure_scale = 0.4 -auto_exposure_min_luma = 0.05 -auto_exposure_max_luma = 8.0 -auto_exposure_speed = 0.5 -ss_reflections_enabled = false -ss_reflections_max_steps = 64 -ss_reflections_fade_in = 0.15 -ss_reflections_fade_out = 2.0 -ss_reflections_depth_tolerance = 0.2 -ss_reflections_roughness = true -ssao_enabled = false -ssao_radius = 1.0 -ssao_intensity = 1.0 -ssao_radius2 = 0.0 -ssao_intensity2 = 1.0 -ssao_bias = 0.01 -ssao_light_affect = 0.0 -ssao_color = Color( 0, 0, 0, 1 ) -ssao_quality = 0 -ssao_blur = 3 -ssao_edge_sharpness = 4.0 -dof_blur_far_enabled = false -dof_blur_far_distance = 10.0 -dof_blur_far_transition = 5.0 -dof_blur_far_amount = 0.1 -dof_blur_far_quality = 1 -dof_blur_near_enabled = false -dof_blur_near_distance = 2.0 -dof_blur_near_transition = 1.0 -dof_blur_near_amount = 0.1 -dof_blur_near_quality = 1 -glow_enabled = false -glow_levels/1 = false -glow_levels/2 = false -glow_levels/3 = true -glow_levels/4 = false -glow_levels/5 = true -glow_levels/6 = false -glow_levels/7 = false -glow_intensity = 0.8 -glow_strength = 1.0 -glow_bloom = 0.0 -glow_blend_mode = 2 -glow_hdr_threshold = 1.0 -glow_hdr_scale = 2.0 -glow_bicubic_upscale = false -adjustment_enabled = false -adjustment_brightness = 1.0 -adjustment_contrast = 1.0 -adjustment_saturation = 1.0 diff --git a/2d/finite_state_machine/player/Player.tscn b/2d/finite_state_machine/player/Player.tscn index 5a873867..9ffb5006 100644 --- a/2d/finite_state_machine/player/Player.tscn +++ b/2d/finite_state_machine/player/Player.tscn @@ -18,15 +18,8 @@ [sub_resource type="Animation" id=1] -length = 1.0 -loop = false -step = 0.1 - [sub_resource type="Animation" id=2] - length = 0.6 -loop = false -step = 0.1 tracks/0/type = "value" tracks/0/path = NodePath("BodyPivot/Body:modulate") tracks/0/interp = 1 @@ -42,159 +35,91 @@ tracks/0/keys = { [sub_resource type="Animation" id=3] -length = 1.0 -loop = false -step = 0.1 - [sub_resource type="DynamicFont" id=4] - size = 20 -use_mipmaps = false use_filter = true font_data = ExtResource( 14 ) -_sections_unfolded = [ "Font", "Settings" ] - -[node name="Player" type="KinematicBody2D" index="0"] +[node name="Player" type="KinematicBody2D"] position = Vector2( 628.826, 391.266 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 script = ExtResource( 1 ) -_sections_unfolded = [ "Visibility" ] __meta__ = { "_edit_horizontal_guides_": [ ] } -[node name="StateMachine" type="Node" parent="." index="0"] - +[node name="StateMachine" type="Node" parent="."] script = ExtResource( 2 ) START_STATE = NodePath("Idle") -[node name="Idle" type="Node" parent="StateMachine" index="0"] - +[node name="Idle" type="Node" parent="StateMachine"] script = ExtResource( 3 ) -[node name="Move" type="Node" parent="StateMachine" index="1"] - +[node name="Move" type="Node" parent="StateMachine"] script = ExtResource( 4 ) -MAX_WALK_SPEED = 450 -MAX_RUN_SPEED = 700 - -[node name="Jump" type="Node" parent="StateMachine" index="2"] +[node name="Jump" type="Node" parent="StateMachine"] script = ExtResource( 5 ) -BASE_MAX_HORIZONTAL_SPEED = 400.0 -AIR_ACCELERATION = 1000.0 -AIR_DECCELERATION = 2000.0 -AIR_STEERING_POWER = 50.0 -JUMP_HEIGHT = 120.0 -JUMP_DURATION = 0.8 -GRAVITY = 1600.0 - -[node name="Stagger" type="Node" parent="StateMachine" index="3"] +[node name="Stagger" type="Node" parent="StateMachine"] script = ExtResource( 6 ) -[node name="Attack" type="Node" parent="StateMachine" index="4"] - +[node name="Attack" type="Node" parent="StateMachine"] script = ExtResource( 7 ) -[node name="Die" type="Node" parent="StateMachine" index="5"] - +[node name="Die" type="Node" parent="StateMachine"] script = ExtResource( 8 ) -[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="1"] - -root_node = NodePath("..") -autoplay = "" -playback_process_mode = 1 -playback_default_blend_time = 0.0 -playback_speed = 1.0 +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/idle = SubResource( 1 ) anims/stagger = SubResource( 2 ) anims/walk = SubResource( 3 ) -blend_times = [ ] - -[node name="Shadow" type="Sprite" parent="." index="2"] +[node name="Shadow" type="Sprite" parent="."] self_modulate = Color( 1, 1, 1, 0.361098 ) position = Vector2( 0, -4 ) texture = ExtResource( 9 ) -_sections_unfolded = [ "Visibility" ] -[node name="BodyPivot" type="Position2D" parent="." index="3"] - -[node name="Body" type="Sprite" parent="BodyPivot" index="0"] +[node name="BodyPivot" type="Position2D" parent="."] +[node name="Body" type="Sprite" parent="BodyPivot"] position = Vector2( 0, -58.8242 ) texture = ExtResource( 10 ) -[node name="BulletSpawn" type="Node2D" parent="BodyPivot" index="1"] - +[node name="BulletSpawn" type="Node2D" parent="BodyPivot"] editor/display_folded = true position = Vector2( 1.17401, -61.266 ) script = ExtResource( 11 ) -_sections_unfolded = [ "Transform" ] -[node name="CooldownTimer" type="Timer" parent="BodyPivot/BulletSpawn" index="0"] - -process_mode = 1 +[node name="CooldownTimer" type="Timer" parent="BodyPivot/BulletSpawn"] wait_time = 0.2 one_shot = true -autostart = false - -[node name="WeaponPivot" type="Position2D" parent="BodyPivot" index="2"] +[node name="WeaponPivot" type="Position2D" parent="BodyPivot"] position = Vector2( 1.17401, -61.266 ) script = ExtResource( 12 ) -[node name="Offset" type="Position2D" parent="BodyPivot/WeaponPivot" index="0"] - +[node name="Offset" type="Position2D" parent="BodyPivot/WeaponPivot"] position = Vector2( 110, 0 ) -[node name="Sword" parent="BodyPivot/WeaponPivot/Offset" index="0" instance=ExtResource( 13 )] +[node name="Sword" parent="BodyPivot/WeaponPivot/Offset" instance=ExtResource( 13 )] -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="." index="4"] - -build_mode = 0 +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] polygon = PoolVector2Array( -20, 0, -20, -20, 20, -20, 20, 0 ) -[node name="StateNameDisplayer" type="Label" parent="." index="5"] - +[node name="StateNameDisplayer" type="Label" parent="."] editor/display_folded = true -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_left = -109.0 margin_top = -172.0 margin_right = 110.0 margin_bottom = -138.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -mouse_default_cursor_shape = 0 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = SubResource( 4 ) text = "Test" align = 1 valign = 1 uppercase = true -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 script = ExtResource( 15 ) -_sections_unfolded = [ "Rect", "custom_fonts" ] [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"] - [connection signal="animation_finished" from="AnimationPlayer" to="StateMachine" method="_on_animation_finished"] - [connection signal="attack_finished" from="BodyPivot/WeaponPivot/Offset/Sword" to="StateMachine/Attack" method="_on_Sword_attack_finished"] - - diff --git a/2d/finite_state_machine/player/bullet/Bullet.tscn b/2d/finite_state_machine/player/bullet/Bullet.tscn index 17532e5a..b10f1096 100644 --- a/2d/finite_state_machine/player/bullet/Bullet.tscn +++ b/2d/finite_state_machine/player/bullet/Bullet.tscn @@ -2,24 +2,14 @@ [ext_resource path="res://player/bullet/bullet.gd" type="Script" id=1] - [sub_resource type="CircleShape2D" id=1] - -custom_solver_bias = 0.0 radius = 12.0 [node name="Bullet" type="KinematicBody2D"] - -input_pickable = false collision_layer = 2 collision_mask = 2 -collision/safe_margin = 0.08 script = ExtResource( 1 ) -_sections_unfolded = [ "Collision", "collision" ] -SPEED = 1000.0 - -[node name="CollisionShape2D" type="CollisionShape2D" parent="." index="0"] +[node name="CollisionShape2D" type="CollisionShape2D" parent="."] shape = SubResource( 1 ) - diff --git a/2d/finite_state_machine/player/weapon/Sword.tscn b/2d/finite_state_machine/player/weapon/Sword.tscn index afd6118a..c0d4534b 100644 --- a/2d/finite_state_machine/player/weapon/Sword.tscn +++ b/2d/finite_state_machine/player/weapon/Sword.tscn @@ -4,11 +4,7 @@ [ext_resource path="res://player/weapon/sword.png" type="Texture" id=2] [sub_resource type="Animation" id=1] - resource_name = "SETUP" -length = 1.0 -loop = false -step = 0.1 tracks/0/type = "value" tracks/0/path = NodePath(".:rotation_degrees") tracks/0/interp = 1 @@ -71,10 +67,8 @@ tracks/4/keys = { } [sub_resource type="Animation" id=2] - resource_name = "attack_circular" length = 0.3 -loop = false step = 0.05 tracks/0/type = "value" tracks/0/path = NodePath(".:rotation_degrees") @@ -114,9 +108,7 @@ tracks/2/keys = { } [sub_resource type="Animation" id=3] - length = 0.45 -loop = false step = 0.05 tracks/0/type = "value" tracks/0/path = NodePath(".:rotation_degrees") @@ -173,10 +165,8 @@ tracks/3/keys = { } [sub_resource type="Animation" id=4] - resource_name = "attack_medium" length = 0.5 -loop = false step = 0.05 tracks/0/type = "value" tracks/0/path = NodePath(".:rotation_degrees") @@ -216,10 +206,7 @@ tracks/2/keys = { } [sub_resource type="Animation" id=5] - length = 0.01 -loop = false -step = 0.1 tracks/0/type = "value" tracks/0/path = NodePath(".:visible") tracks/0/interp = 1 @@ -234,45 +221,24 @@ tracks/0/keys = { } [node name="Sword" type="Area2D"] - input_pickable = false -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 monitorable = false collision_layer = 16 collision_mask = 3 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 1 ) -_sections_unfolded = [ "Transform" ] -[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="0"] - -root_node = NodePath("..") -autoplay = "" -playback_process_mode = 1 -playback_default_blend_time = 0.0 -playback_speed = 1.0 +[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 ) -blend_times = [ ] -_sections_unfolded = [ "Playback Options" ] - -[node name="sword" type="Sprite" parent="." index="1"] +[node name="sword" type="Sprite" parent="."] position = Vector2( 4, 0 ) texture = ExtResource( 2 ) offset = Vector2( 67, 0 ) -_sections_unfolded = [ "Offset", "Transform" ] -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="." index="2"] - -build_mode = 0 +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="."] polygon = PoolVector2Array( 28.0001, -15.9999, 136, -15.9995, 160, 0, 136, 16.0005, 27.9999, 16.0001 ) - diff --git a/2d/finite_state_machine/project.godot b/2d/finite_state_machine/project.godot index 210f5bed..7a24a60a 100644 --- a/2d/finite_state_machine/project.godot +++ b/2d/finite_state_machine/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -29,35 +34,62 @@ singletons=[ ] [input] -move_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":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_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +} +move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":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_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":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_down=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +} +move_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":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) ] -fire=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"unicode":0,"echo":false,"script":null) +} +fire={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":82,"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) ] -run=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"unicode":0,"echo":false,"script":null) +} +run={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777237,"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) ] -jump=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) +} +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] -simulate_damage=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":88,"unicode":0,"echo":false,"script":null) +} +simulate_damage={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":88,"unicode":0,"echo":false,"script":null) ] -attack=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":70,"unicode":0,"echo":false,"script":null) +} +attack={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":70,"unicode":0,"echo":false,"script":null) ] +} [rendering] diff --git a/2d/grid_based_movement/Game.tscn b/2d/grid_based_movement/Game.tscn index 08de47ed..e5d23c70 100644 --- a/2d/grid_based_movement/Game.tscn +++ b/2d/grid_based_movement/Game.tscn @@ -10,89 +10,46 @@ [node name="Game" type="Node"] -[node name="GridLines" type="TileMap" parent="." index="0"] - +[node name="GridLines" type="TileMap" parent="."] modulate = Color( 1, 1, 1, 0.271059 ) z_index = -1 z_as_relative = false -mode = 0 tile_set = ExtResource( 1 ) -cell_size = Vector2( 64, 64 ) -cell_quadrant_size = 16 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -cell_half_offset = 2 -cell_tile_origin = 0 -cell_y_sort = false -cell_clip_uv = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 format = 1 tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 131072, 0, 0, 131073, 0, 0, 131074, 0, 0, 131075, 0, 0, 131076, 0, 0, 131077, 0, 0, 131078, 0, 0, 131079, 0, 0, 131080, 0, 0, 131081, 0, 0, 131082, 0, 0, 131083, 0, 0, 131084, 0, 0, 131085, 0, 0, 131086, 0, 0, 131087, 0, 0, 131088, 0, 0, 196608, 0, 0, 196609, 0, 0, 196610, 0, 0, 196611, 0, 0, 196612, 0, 0, 196613, 0, 0, 196614, 0, 0, 196615, 0, 0, 196616, 0, 0, 196617, 0, 0, 196618, 0, 0, 196619, 0, 0, 196620, 0, 0, 196621, 0, 0, 196622, 0, 0, 196623, 0, 0, 196624, 0, 0, 262144, 0, 0, 262145, 0, 0, 262146, 0, 0, 262147, 0, 0, 262148, 0, 0, 262149, 0, 0, 262150, 0, 0, 262151, 0, 0, 262152, 0, 0, 262153, 0, 0, 262154, 0, 0, 262155, 0, 0, 262156, 0, 0, 262157, 0, 0, 262158, 0, 0, 262159, 0, 0, 262160, 0, 0, 327680, 0, 0, 327681, 0, 0, 327682, 0, 0, 327683, 0, 0, 327684, 0, 0, 327685, 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, 327695, 0, 0, 327696, 0, 0, 393216, 0, 0, 393217, 0, 0, 393218, 0, 0, 393219, 0, 0, 393220, 0, 0, 393221, 0, 0, 393222, 0, 0, 393223, 0, 0, 393224, 0, 0, 393225, 0, 0, 393226, 0, 0, 393227, 0, 0, 393228, 0, 0, 393229, 0, 0, 393230, 0, 0, 393231, 0, 0, 393232, 0, 0, 458752, 0, 0, 458753, 0, 0, 458754, 0, 0, 458755, 0, 0, 458756, 0, 0, 458757, 0, 0, 458758, 0, 0, 458759, 0, 0, 458760, 0, 0, 458761, 0, 0, 458762, 0, 0, 458763, 0, 0, 458764, 0, 0, 458765, 0, 0, 458766, 0, 0, 458767, 0, 0, 458768, 0, 0, 524288, 0, 0, 524289, 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, 524298, 0, 0, 524299, 0, 0, 524300, 0, 0, 524301, 0, 0, 524302, 0, 0, 524303, 0, 0, 524304, 0, 0, 589824, 0, 0, 589825, 0, 0, 589826, 0, 0, 589827, 0, 0, 589828, 0, 0, 589829, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589835, 0, 0, 589836, 0, 0, 589837, 0, 0, 589838, 0, 0, 589839, 0, 0, 589840, 0, 0 ) -_sections_unfolded = [ "Visibility", "Z Index" ] __meta__ = { "_edit_lock_": true } -[node name="Grid" type="TileMap" parent="." index="1"] - -mode = 0 +[node name="Grid" type="TileMap" parent="."] tile_set = ExtResource( 2 ) -cell_size = Vector2( 64, 64 ) -cell_quadrant_size = 16 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -cell_half_offset = 2 -cell_tile_origin = 0 -cell_y_sort = false -cell_clip_uv = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 format = 1 tile_data = PoolIntArray( 18, 1, 0, 19, 1, 0, 65554, 1, 0, 65555, 1, 0, 131090, 1, 0, 131091, 1, 0, 196615, 1, 0, 196616, 1, 0, 196617, 1, 0, 196626, 1, 0, 196627, 1, 0, 262151, 1, 0, 262162, 1, 0, 262163, 1, 0, 327687, 1, 0, 327688, 1, 0, 327689, 1, 0, 327698, 1, 0, 327699, 1, 0, 393234, 1, 0, 393235, 1, 0, 458753, 1, 0, 458754, 1, 0, 458770, 1, 0, 458771, 1, 0, 524289, 1, 0, 524290, 1, 0, 524306, 1, 0, 524307, 1, 0, 589825, 1, 0, 589826, 1, 0, 589827, 1, 0, 589828, 1, 0, 589829, 1, 0, 589830, 1, 0, 589831, 1, 0, 589842, 1, 0, 589843, 1, 0, 655360, 1, 0, 655361, 1, 0, 655362, 1, 0, 655363, 1, 0, 655364, 1, 0, 655365, 1, 0, 655366, 1, 0, 655367, 1, 0, 655368, 1, 0, 655369, 1, 0, 655370, 1, 0, 655371, 1, 0, 655372, 1, 0, 655373, 1, 0, 655374, 1, 0, 655375, 1, 0, 655376, 1, 0, 655377, 1, 0, 655378, 1, 0, 655379, 1, 0, 720896, 1, 0, 720897, 1, 0, 720898, 1, 0, 720899, 1, 0, 720900, 1, 0, 720901, 1, 0, 720902, 1, 0, 720903, 1, 0, 720904, 1, 0, 720905, 1, 0, 720906, 1, 0, 720907, 1, 0, 720908, 1, 0, 720909, 1, 0, 720910, 1, 0, 720911, 1, 0, 720912, 1, 0, 720913, 1, 0, 720914, 1, 0, 720915, 1, 0 ) script = ExtResource( 3 ) -_sections_unfolded = [ "Visibility" ] __meta__ = { "_edit_lock_": true } -[node name="Actor" parent="Grid" index="0" instance=ExtResource( 4 )] - +[node name="Actor" parent="Grid" instance=ExtResource( 4 )] editor/display_folded = true position = Vector2( 416, 288 ) -[node name="Sprite" parent="Grid/Actor/Pivot" index="0"] - -position = Vector2( 1.43051e-06, -1.90735e-06 ) - -[node name="Actor2" type="Node2D" parent="Grid" index="1"] - +[node name="Actor2" type="Node2D" parent="Grid"] editor/display_folded = true position = Vector2( 480, 480 ) z_index = 1 script = ExtResource( 5 ) -_sections_unfolded = [ "Offset" ] -type = 0 - -[node name="Sprite" type="Sprite" parent="Grid/Actor2" index="0"] +[node name="Sprite" type="Sprite" parent="Grid/Actor2"] texture = ExtResource( 6 ) -[node name="Object" type="Node2D" parent="Grid" index="2"] - +[node name="Object" type="Node2D" parent="Grid"] editor/display_folded = true position = Vector2( 544, 288 ) script = ExtResource( 5 ) type = 2 -[node name="Sprite" type="Sprite" parent="Grid/Object" index="0"] - +[node name="Sprite" type="Sprite" parent="Grid/Object"] texture = ExtResource( 7 ) diff --git a/2d/grid_based_movement/default_env.tres b/2d/grid_based_movement/default_env.tres index ad86b722..4b7cb0ac 100644 --- a/2d/grid_based_movement/default_env.tres +++ b/2d/grid_based_movement/default_env.tres @@ -1,101 +1,14 @@ [gd_resource type="Environment" load_steps=2 format=2] [sub_resource type="ProceduralSky" id=1] - -radiance_size = 4 sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) sky_curve = 0.25 -sky_energy = 1.0 ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 ) ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) ground_curve = 0.01 -ground_energy = 1.0 -sun_color = Color( 1, 1, 1, 1 ) -sun_latitude = 35.0 -sun_longitude = 0.0 -sun_angle_min = 1.0 -sun_angle_max = 100.0 -sun_curve = 0.05 -sun_energy = 16.0 -texture_size = 2 [resource] - background_mode = 2 background_sky = SubResource( 1 ) -background_sky_custom_fov = 0.0 -background_color = Color( 0, 0, 0, 1 ) -background_energy = 1.0 -background_canvas_max_layer = 0 -ambient_light_color = Color( 0, 0, 0, 1 ) -ambient_light_energy = 1.0 -ambient_light_sky_contribution = 1.0 -fog_enabled = false -fog_color = Color( 0.5, 0.6, 0.7, 1 ) -fog_sun_color = Color( 1, 0.9, 0.7, 1 ) -fog_sun_amount = 0.0 -fog_depth_enabled = true -fog_depth_begin = 10.0 -fog_depth_curve = 1.0 -fog_transmit_enabled = false -fog_transmit_curve = 1.0 -fog_height_enabled = false -fog_height_min = 0.0 -fog_height_max = 100.0 -fog_height_curve = 1.0 -tonemap_mode = 0 -tonemap_exposure = 1.0 -tonemap_white = 1.0 -auto_exposure_enabled = false -auto_exposure_scale = 0.4 -auto_exposure_min_luma = 0.05 -auto_exposure_max_luma = 8.0 -auto_exposure_speed = 0.5 -ss_reflections_enabled = false -ss_reflections_max_steps = 64 -ss_reflections_fade_in = 0.15 -ss_reflections_fade_out = 2.0 -ss_reflections_depth_tolerance = 0.2 -ss_reflections_roughness = true -ssao_enabled = false -ssao_radius = 1.0 -ssao_intensity = 1.0 -ssao_radius2 = 0.0 -ssao_intensity2 = 1.0 -ssao_bias = 0.01 -ssao_light_affect = 0.0 -ssao_color = Color( 0, 0, 0, 1 ) -ssao_quality = 0 -ssao_blur = 3 -ssao_edge_sharpness = 4.0 -dof_blur_far_enabled = false -dof_blur_far_distance = 10.0 -dof_blur_far_transition = 5.0 -dof_blur_far_amount = 0.1 -dof_blur_far_quality = 1 -dof_blur_near_enabled = false -dof_blur_near_distance = 2.0 -dof_blur_near_transition = 1.0 -dof_blur_near_amount = 0.1 -dof_blur_near_quality = 1 -glow_enabled = false -glow_levels/1 = false -glow_levels/2 = false -glow_levels/3 = true -glow_levels/4 = false -glow_levels/5 = true -glow_levels/6 = false -glow_levels/7 = false -glow_intensity = 0.8 -glow_strength = 1.0 -glow_bloom = 0.0 -glow_blend_mode = 2 -glow_hdr_threshold = 1.0 -glow_hdr_scale = 2.0 -glow_bicubic_upscale = false -adjustment_enabled = false -adjustment_brightness = 1.0 -adjustment_contrast = 1.0 -adjustment_saturation = 1.0 diff --git a/2d/grid_based_movement/grid/grid.gd b/2d/grid_based_movement/grid/grid.gd index f89833b8..2f4ea0fe 100644 --- a/2d/grid_based_movement/grid/grid.gd +++ b/2d/grid_based_movement/grid/grid.gd @@ -1,6 +1,6 @@ extends TileMap -enum CELL_TYPES { EMPTY = -1, ACTOR, OBSTACLE, OBJECT} +enum CellType { EMPTY = -1, ACTOR, OBSTACLE, OBJECT} func _ready(): for child in get_children(): @@ -19,18 +19,18 @@ func request_move(pawn, direction): var cell_target_type = get_cellv(cell_target) match cell_target_type: - EMPTY: + CellType.EMPTY: return update_pawn_position(pawn, cell_start, cell_target) - OBJECT: + CellType.OBJECT: var object_pawn = get_cell_pawn(cell_target) object_pawn.queue_free() return update_pawn_position(pawn, cell_start, cell_target) - ACTOR: + CellType.ACTOR: var pawn_name = get_cell_pawn(cell_target).name print("Cell %s contains %s" % [cell_target, pawn_name]) func update_pawn_position(pawn, cell_start, cell_target): set_cellv(cell_target, pawn.type) - set_cellv(cell_start, EMPTY) + set_cellv(cell_start, CellType.EMPTY) return map_to_world(cell_target) + cell_size / 2 diff --git a/2d/grid_based_movement/icon.png.import b/2d/grid_based_movement/icon.png.import index c3f9d606..45ee6af7 100644 --- a/2d/grid_based_movement/icon.png.import +++ b/2d/grid_based_movement/icon.png.import @@ -7,16 +7,14 @@ path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" [deps] source_file="res://icon.png" -source_md5="3280104cdf8f7a9be38f70f9ff95cf50" - dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] -dest_md5="df9a76b96b1fde8b55778a269d647ca3" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/grid_based_movement/pawns/Actor.tscn b/2d/grid_based_movement/pawns/Actor.tscn index b7b44e2b..9e4dee9b 100644 --- a/2d/grid_based_movement/pawns/Actor.tscn +++ b/2d/grid_based_movement/pawns/Actor.tscn @@ -4,10 +4,8 @@ [ext_resource path="res://pawns/sprites/character.png" type="Texture" id=2] [sub_resource type="Animation" id=1] - resource_name = "bump" length = 0.1 -loop = false step = 0.01 tracks/0/type = "value" tracks/0/path = NodePath("Pivot/Sprite:position") @@ -23,10 +21,8 @@ tracks/0/keys = { } [sub_resource type="Animation" id=2] - resource_name = "walk" length = 0.25 -loop = false step = 0.05 tracks/0/type = "value" tracks/0/path = NodePath("Pivot/Sprite:self_modulate") @@ -65,47 +61,25 @@ tracks/2/keys = { "values": [ Vector2( 1, 1 ), Vector2( 1.20007, 0.917384 ), Vector2( 0.916712, 1.13495 ), Vector2( 1, 1 ) ] } -[node name="Actor" type="Node2D" index="0"] - +[node name="Actor" type="Node2D"] position = Vector2( 32, 32 ) z_index = 1 script = ExtResource( 1 ) -_sections_unfolded = [ "Offset", "Transform", "Z Index" ] __meta__ = { "_edit_group_": true } -type = 0 -[node name="AnimationPlayer" type="AnimationPlayer" parent="." index="0"] - -root_node = NodePath("..") -autoplay = "" -playback_process_mode = 1 -playback_default_blend_time = 0.0 -playback_speed = 1.0 +[node name="AnimationPlayer" type="AnimationPlayer" parent="."] anims/bump = SubResource( 1 ) anims/walk = SubResource( 2 ) -blend_times = [ ] -[node name="Tween" type="Tween" parent="." index="1"] +[node name="Tween" type="Tween" parent="."] -repeat = false -playback_process_mode = 1 -playback_speed = 1.0 -playback/active = false -playback/repeat = false -playback/speed = 1.0 - -[node name="Pivot" type="Position2D" parent="." index="2"] - -_sections_unfolded = [ "Transform" ] - -[node name="Sprite" type="Sprite" parent="Pivot" index="0"] +[node name="Pivot" type="Position2D" parent="."] +[node name="Sprite" type="Sprite" parent="Pivot"] position = Vector2( 1.43051e-06, -1.90735e-06 ) texture = ExtResource( 2 ) centered = false offset = Vector2( -32, -32 ) -_sections_unfolded = [ "Transform", "Visibility" ] - diff --git a/2d/grid_based_movement/pawns/actor.gd b/2d/grid_based_movement/pawns/actor.gd index c4bb024c..f522da51 100644 --- a/2d/grid_based_movement/pawns/actor.gd +++ b/2d/grid_based_movement/pawns/actor.gd @@ -6,7 +6,7 @@ func _ready(): update_look_direction(Vector2(1, 0)) -func _process(delta): +func _process(_delta): var input_direction = get_input_direction() if not input_direction: return diff --git a/2d/grid_based_movement/pawns/pawn.gd b/2d/grid_based_movement/pawns/pawn.gd index 746e9ede..aa7b556f 100644 --- a/2d/grid_based_movement/pawns/pawn.gd +++ b/2d/grid_based_movement/pawns/pawn.gd @@ -1,4 +1,4 @@ extends Node2D -enum CELL_TYPES { ACTOR, OBSTACLE, OBJECT } -export(CELL_TYPES) var type = ACTOR +enum CellType { ACTOR, OBSTACLE, OBJECT } +export(CellType) var type = CellType.ACTOR diff --git a/2d/grid_based_movement/pawns/sprites/character.png.import b/2d/grid_based_movement/pawns/sprites/character.png.import index 94e1dcd4..e2bf1b3a 100644 --- a/2d/grid_based_movement/pawns/sprites/character.png.import +++ b/2d/grid_based_movement/pawns/sprites/character.png.import @@ -7,16 +7,14 @@ path="res://.import/character.png-98ed16816c5b464731c4fa68fe5b8613.stex" [deps] source_file="res://pawns/sprites/character.png" -source_md5="03a1bf4fdd91e5a89e323e1a956b8b2e" - dest_files=[ "res://.import/character.png-98ed16816c5b464731c4fa68fe5b8613.stex" ] -dest_md5="dc0e808a19cb41bd3e4b8af9a1a2878e" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/grid_based_movement/pawns/sprites/character_grey.png.import b/2d/grid_based_movement/pawns/sprites/character_grey.png.import index c2fee889..eb26026c 100644 --- a/2d/grid_based_movement/pawns/sprites/character_grey.png.import +++ b/2d/grid_based_movement/pawns/sprites/character_grey.png.import @@ -7,16 +7,14 @@ path="res://.import/character_grey.png-a95d64c2e947e85f04dd1c6474e46965.stex" [deps] source_file="res://pawns/sprites/character_grey.png" -source_md5="b2fc93bb6418bd5a1aeb9d4b23281b7d" - dest_files=[ "res://.import/character_grey.png-a95d64c2e947e85f04dd1c6474e46965.stex" ] -dest_md5="119083c34b0b039b9f6742e1aa84bcd1" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/grid_based_movement/pawns/sprites/star.png.import b/2d/grid_based_movement/pawns/sprites/star.png.import index f1132f7b..53215549 100644 --- a/2d/grid_based_movement/pawns/sprites/star.png.import +++ b/2d/grid_based_movement/pawns/sprites/star.png.import @@ -7,16 +7,14 @@ path="res://.import/star.png-4f164f82cf41ace82182660f1be8e68d.stex" [deps] source_file="res://pawns/sprites/star.png" -source_md5="c9eed33ac490155814b63a96281718bc" - dest_files=[ "res://.import/star.png-4f164f82cf41ace82182660f1be8e68d.stex" ] -dest_md5="b5e67be995733c89f151fdfd57ade882" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/grid_based_movement/project.godot b/2d/grid_based_movement/project.godot index 009ac8d7..28c4ef87 100644 --- a/2d/grid_based_movement/project.godot +++ b/2d/grid_based_movement/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/grid_based_movement/tilesets/grid/GridTiles.tscn b/2d/grid_based_movement/tilesets/grid/GridTiles.tscn index 6dba99d0..8d3bed4d 100644 --- a/2d/grid_based_movement/tilesets/grid/GridTiles.tscn +++ b/2d/grid_based_movement/tilesets/grid/GridTiles.tscn @@ -6,22 +6,15 @@ [node name="Node2D" type="Node2D"] -[node name="Actor" type="Sprite" parent="." index="0"] - +[node name="Actor" type="Sprite" parent="."] position = Vector2( 32, 32 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Visibility" ] - -[node name="Obstacle" type="Sprite" parent="." index="1"] +[node name="Obstacle" type="Sprite" parent="."] position = Vector2( 96, 32 ) texture = ExtResource( 2 ) -_sections_unfolded = [ "Visibility" ] - -[node name="Object" type="Sprite" parent="." index="2"] +[node name="Object" type="Sprite" parent="."] position = Vector2( 160, 32 ) texture = ExtResource( 3 ) -_sections_unfolded = [ "Visibility" ] - diff --git a/2d/grid_based_movement/tilesets/grid/actor.png.import b/2d/grid_based_movement/tilesets/grid/actor.png.import index 47932482..f336d1c5 100644 --- a/2d/grid_based_movement/tilesets/grid/actor.png.import +++ b/2d/grid_based_movement/tilesets/grid/actor.png.import @@ -7,16 +7,14 @@ path="res://.import/actor.png-6a88af8a7bcb079732153877dfb0db8b.stex" [deps] source_file="res://tilesets/grid/actor.png" -source_md5="1a3d788099e6d0431c41627de71ee5f9" - dest_files=[ "res://.import/actor.png-6a88af8a7bcb079732153877dfb0db8b.stex" ] -dest_md5="ca104a9f5ec006ce67b9996d27f4efa2" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/grid_based_movement/tilesets/grid/object.png.import b/2d/grid_based_movement/tilesets/grid/object.png.import index 9c32a9a8..82d963a8 100644 --- a/2d/grid_based_movement/tilesets/grid/object.png.import +++ b/2d/grid_based_movement/tilesets/grid/object.png.import @@ -7,16 +7,14 @@ path="res://.import/object.png-3e89ebfb3424e8759914732b2b0130c1.stex" [deps] source_file="res://tilesets/grid/object.png" -source_md5="53b421d6eb9175f4b3900f7d48ad814e" - dest_files=[ "res://.import/object.png-3e89ebfb3424e8759914732b2b0130c1.stex" ] -dest_md5="1351b2d127dc461bda55bfde616cbdd6" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/grid_based_movement/tilesets/grid/obstacle.png.import b/2d/grid_based_movement/tilesets/grid/obstacle.png.import index 9dd68cbd..bb162d76 100644 --- a/2d/grid_based_movement/tilesets/grid/obstacle.png.import +++ b/2d/grid_based_movement/tilesets/grid/obstacle.png.import @@ -7,16 +7,14 @@ path="res://.import/obstacle.png-9f01dd1d06d7b99515918b65b46bd6c1.stex" [deps] source_file="res://tilesets/grid/obstacle.png" -source_md5="49a4f8eb121c949de35502481ec7e96a" - dest_files=[ "res://.import/obstacle.png-9f01dd1d06d7b99515918b65b46bd6c1.stex" ] -dest_md5="432d869b849ac70d4f76935622b2e37b" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/grid_based_movement/tilesets/grid_lines/GridLinesTiles.tscn b/2d/grid_based_movement/tilesets/grid_lines/GridLinesTiles.tscn index 2caada62..26097a60 100644 --- a/2d/grid_based_movement/tilesets/grid_lines/GridLinesTiles.tscn +++ b/2d/grid_based_movement/tilesets/grid_lines/GridLinesTiles.tscn @@ -2,11 +2,9 @@ [ext_resource path="res://tilesets/grid_lines/grid_lines.png" type="Texture" id=1] -[node name="TileSet" type="Node2D" index="0"] - -[node name="Grass" type="Sprite" parent="." index="0"] +[node name="TileSet" type="Node2D"] +[node name="Grass" type="Sprite" parent="."] position = Vector2( 32, 32 ) texture = ExtResource( 1 ) - diff --git a/2d/grid_based_movement/tilesets/grid_lines/grid_lines.png.import b/2d/grid_based_movement/tilesets/grid_lines/grid_lines.png.import index 0e93cdd3..f8e9d82a 100644 --- a/2d/grid_based_movement/tilesets/grid_lines/grid_lines.png.import +++ b/2d/grid_based_movement/tilesets/grid_lines/grid_lines.png.import @@ -7,16 +7,14 @@ path="res://.import/grid_lines.png-beef853b47aa830c8383e5f6cc4d03ce.stex" [deps] source_file="res://tilesets/grid_lines/grid_lines.png" -source_md5="9c6f3c1506ccfc666a4988a3b9655b1c" - dest_files=[ "res://.import/grid_lines.png-beef853b47aa830c8383e5f6cc4d03ce.stex" ] -dest_md5="411604865dd58a1618832442af953934" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/hdr/beach_cave.tscn b/2d/hdr/beach_cave.tscn index 754d9b85..d16d4a0f 100644 --- a/2d/hdr/beach_cave.tscn +++ b/2d/hdr/beach_cave.tscn @@ -5,122 +5,43 @@ [ext_resource path="res://ocean_cave.png" type="Texture" id=3] [sub_resource type="Environment" id=1] - background_mode = 4 -background_sky_custom_fov = 0.0 -background_color = Color( 0, 0, 0, 1 ) -background_energy = 1.0 -background_canvas_max_layer = 0 -ambient_light_color = Color( 0, 0, 0, 1 ) -ambient_light_energy = 1.0 ambient_light_sky_contribution = 0.0 -fog_enabled = false -fog_color = Color( 0.5, 0.6, 0.7, 1 ) -fog_sun_color = Color( 1, 0.9, 0.7, 1 ) -fog_sun_amount = 0.0 -fog_depth_enabled = true -fog_depth_begin = 10.0 -fog_depth_curve = 1.0 -fog_transmit_enabled = false -fog_transmit_curve = 1.0 -fog_height_enabled = false -fog_height_min = 0.0 -fog_height_max = 100.0 -fog_height_curve = 1.0 -tonemap_mode = 0 -tonemap_exposure = 1.0 -tonemap_white = 1.0 auto_exposure_enabled = true auto_exposure_scale = 0.51 -auto_exposure_min_luma = 0.05 -auto_exposure_max_luma = 8.0 auto_exposure_speed = 4.0 -ss_reflections_enabled = false -ss_reflections_max_steps = 64 -ss_reflections_fade_in = 0.15 -ss_reflections_fade_out = 2.0 -ss_reflections_depth_tolerance = 0.2 -ss_reflections_roughness = true -ssao_enabled = false -ssao_radius = 1.0 -ssao_intensity = 1.0 -ssao_radius2 = 0.0 -ssao_intensity2 = 1.0 -ssao_bias = 0.01 -ssao_light_affect = 0.0 -ssao_color = Color( 0, 0, 0, 1 ) -ssao_quality = 0 ssao_blur = 1 -ssao_edge_sharpness = 4.0 -dof_blur_far_enabled = false -dof_blur_far_distance = 10.0 -dof_blur_far_transition = 5.0 -dof_blur_far_amount = 0.1 -dof_blur_far_quality = 1 -dof_blur_near_enabled = false -dof_blur_near_distance = 2.0 -dof_blur_near_transition = 1.0 -dof_blur_near_amount = 0.1 -dof_blur_near_quality = 1 glow_enabled = true -glow_levels/1 = false -glow_levels/2 = false glow_levels/3 = false glow_levels/4 = true -glow_levels/5 = true -glow_levels/6 = false glow_levels/7 = true -glow_intensity = 0.8 glow_strength = 0.88 -glow_bloom = 0.0 glow_blend_mode = 0 -glow_hdr_threshold = 1.0 -glow_hdr_scale = 2.0 glow_bicubic_upscale = true -adjustment_enabled = false -adjustment_brightness = 1.0 -adjustment_contrast = 1.0 -adjustment_saturation = 1.0 [node name="hdr" type="Node2D"] - script = ExtResource( 1 ) [node name="beach" type="Sprite" parent="."] - modulate = Color( 2, 2, 2, 1 ) self_modulate = Color( 2, 2, 2, 1 ) texture = ExtResource( 2 ) centered = false [node name="cave" type="Sprite" parent="."] - self_modulate = Color( 0.233166, 0.221219, 0.23582, 1 ) scale = Vector2( 1.2, 1 ) texture = ExtResource( 3 ) centered = false [node name="environment" type="WorldEnvironment" parent="."] - environment = SubResource( 1 ) [node name="Label" type="Label" parent="."] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 40.0 margin_bottom = 13.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 size_flags_horizontal = 2 size_flags_vertical = 0 custom_colors/font_color = Color( 0.213955, 0.205626, 0.20313, 1 ) text = "Drag Left and Right" -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 - diff --git a/2d/hdr/icon.png.import b/2d/hdr/icon.png.import index 96929d36..45ee6af7 100644 --- a/2d/hdr/icon.png.import +++ b/2d/hdr/icon.png.import @@ -7,16 +7,14 @@ path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" [deps] source_file="res://icon.png" -source_md5="63a944507088a2392d7d6870fc91dc51" - dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] -dest_md5="79b94abe93da2df9d5e610a249860b02" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/hdr/ocean_beach.png.import b/2d/hdr/ocean_beach.png.import index 05e096ac..974aa9fb 100644 --- a/2d/hdr/ocean_beach.png.import +++ b/2d/hdr/ocean_beach.png.import @@ -7,16 +7,14 @@ path="res://.import/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.stex" [deps] source_file="res://ocean_beach.png" -source_md5="fdfc24e858f07a1ac31c82fd8f357c3a" - dest_files=[ "res://.import/ocean_beach.png-b571ab5468cc775a520aaa47efbed607.stex" ] -dest_md5="3ae80bb89ba8c0cd67fa2402bb80f230" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/hdr/ocean_cave.png.import b/2d/hdr/ocean_cave.png.import index adcbb6b7..942f8e5f 100644 --- a/2d/hdr/ocean_cave.png.import +++ b/2d/hdr/ocean_cave.png.import @@ -7,16 +7,14 @@ path="res://.import/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.stex" [deps] source_file="res://ocean_cave.png" -source_md5="acabe48e11037e9929f2d5aade9419a4" - dest_files=[ "res://.import/ocean_cave.png-2a86f381e3092b4cb698b627d778e19b.stex" ] -dest_md5="0f5fe12eb87a48058850e3c6c5c9a347" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/hdr/project.godot b/2d/hdr/project.godot index 0c76e2fc..0f574a53 100644 --- a/2d/hdr/project.godot +++ b/2d/hdr/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/hexagonal_map/map.tscn b/2d/hexagonal_map/map.tscn index 14e502b6..1ee6da29 100644 --- a/2d/hexagonal_map/map.tscn +++ b/2d/hexagonal_map/map.tscn @@ -3,31 +3,16 @@ [ext_resource path="res://tileset.tres" type="TileSet" id=1] [ext_resource path="res://troll.tscn" type="PackedScene" id=2] -[node name="Node2D" type="Node2D" index="0"] +[node name="Node2D" type="Node2D"] -[node name="TileMap" type="TileMap" parent="." index="0"] - -mode = 0 +[node name="TileMap" type="TileMap" parent="."] tile_set = ExtResource( 1 ) cell_size = Vector2( 82, 94 ) -cell_quadrant_size = 16 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) cell_half_offset = 1 cell_tile_origin = 1 -cell_y_sort = false -cell_clip_uv = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 format = 1 tile_data = PoolIntArray( -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 ) -_sections_unfolded = [ "Cell" ] - -[node name="troll" parent="." index="1" 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 81ce9854..e45713ad 100644 --- a/2d/hexagonal_map/project.godot +++ b/2d/hexagonal_map/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -21,11 +26,23 @@ singletons=[ ] [input] -move_bottom=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +move_bottom={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) ] -move_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) ] -move_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) ] -move_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +} +move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) ] +} diff --git a/2d/hexagonal_map/tileset_edit.tscn b/2d/hexagonal_map/tileset_edit.tscn index 92d24281..9d69ebf8 100644 --- a/2d/hexagonal_map/tileset_edit.tscn +++ b/2d/hexagonal_map/tileset_edit.tscn @@ -30,158 +30,131 @@ [node name="Node2D" type="Node2D"] [node name="Tile 1" type="Sprite" parent="."] - texture = ExtResource( 1 ) centered = false [node name="Tile 2" type="Sprite" parent="."] - position = Vector2( 128, 0 ) texture = ExtResource( 2 ) centered = false [node name="Tile 3" type="Sprite" parent="."] - position = Vector2( 256, 0 ) texture = ExtResource( 3 ) centered = false [node name="Tile 4" type="Sprite" parent="."] - position = Vector2( 384, 0 ) texture = ExtResource( 4 ) centered = false [node name="Tile 5" type="Sprite" parent="."] - position = Vector2( 512, 0 ) texture = ExtResource( 5 ) centered = false [node name="Tile 6" type="Sprite" parent="."] - position = Vector2( 640, 0 ) texture = ExtResource( 6 ) centered = false [node name="Tile 7" type="Sprite" parent="."] - position = Vector2( 768, 0 ) texture = ExtResource( 7 ) centered = false [node name="Tile 8" type="Sprite" parent="."] - position = Vector2( 896, 0 ) texture = ExtResource( 8 ) centered = false [node name="Tile 9" type="Sprite" parent="."] - position = Vector2( 1024, 0 ) texture = ExtResource( 9 ) centered = false [node name="Tile 10" type="Sprite" parent="."] - position = Vector2( 0, 128 ) texture = ExtResource( 10 ) centered = false [node name="Tile 11" type="Sprite" parent="."] - position = Vector2( 128, 128 ) texture = ExtResource( 11 ) centered = false [node name="Tile 12" type="Sprite" parent="."] - position = Vector2( 256, 128 ) texture = ExtResource( 12 ) centered = false [node name="Tile 13" type="Sprite" parent="."] - position = Vector2( 384, 128 ) texture = ExtResource( 13 ) centered = false [node name="Tile 14" type="Sprite" parent="."] - position = Vector2( 512, 128 ) texture = ExtResource( 14 ) centered = false [node name="Tile 15" type="Sprite" parent="."] - position = Vector2( 640, 128 ) texture = ExtResource( 15 ) centered = false [node name="Tile 16" type="Sprite" parent="."] - position = Vector2( 768, 128 ) texture = ExtResource( 16 ) centered = false [node name="Tile 17" type="Sprite" parent="."] - position = Vector2( 896, 128 ) texture = ExtResource( 17 ) centered = false [node name="Tile 18" type="Sprite" parent="."] - position = Vector2( 1024, 128 ) texture = ExtResource( 18 ) centered = false [node name="Tile 19" type="Sprite" parent="."] - position = Vector2( 0, 256 ) texture = ExtResource( 19 ) centered = false [node name="Tile 20" type="Sprite" parent="."] - position = Vector2( 128, 256 ) texture = ExtResource( 20 ) centered = false [node name="Tile 21" type="Sprite" parent="."] - position = Vector2( 256, 256 ) texture = ExtResource( 21 ) centered = false [node name="Tile 22" type="Sprite" parent="."] - position = Vector2( 384, 256 ) texture = ExtResource( 22 ) centered = false [node name="Tile 23" type="Sprite" parent="."] - position = Vector2( 512, 256 ) texture = ExtResource( 23 ) centered = false [node name="Tile 24" type="Sprite" parent="."] - position = Vector2( 640, 256 ) texture = ExtResource( 24 ) centered = false [node name="Tile 25" type="Sprite" parent="."] - position = Vector2( 768, 256 ) texture = ExtResource( 25 ) centered = false [node name="Tile 26" type="Sprite" parent="."] - position = Vector2( 896, 256 ) texture = ExtResource( 26 ) centered = false - diff --git a/2d/hexagonal_map/troll.gd b/2d/hexagonal_map/troll.gd index eef038d1..4b955e69 100644 --- a/2d/hexagonal_map/troll.gd +++ b/2d/hexagonal_map/troll.gd @@ -7,7 +7,7 @@ extends KinematicBody2D const MOTION_SPEED = 160 # Pixels/second -func _physics_process(delta): +func _physics_process(_delta): var motion = Vector2() if Input.is_action_pressed("move_up"): diff --git a/2d/hexagonal_map/troll.tscn b/2d/hexagonal_map/troll.tscn index bcc8326e..2a2adfee 100644 --- a/2d/hexagonal_map/troll.tscn +++ b/2d/hexagonal_map/troll.tscn @@ -4,48 +4,18 @@ [ext_resource path="res://troll.png" type="Texture" id=2] [sub_resource type="CircleShape2D" id=1] - -custom_solver_bias = 0.0 radius = 16.0 [node name="troll" type="KinematicBody2D"] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 script = ExtResource( 1 ) [node name="Sprite" type="Sprite" parent="."] - texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] - position = Vector2( 3.24216, 19.453 ) shape = SubResource( 1 ) [node name="Camera2D" type="Camera2D" parent="."] - -anchor_mode = 1 -rotating = false current = true -zoom = Vector2( 1, 1 ) -limit_left = -10000000 -limit_top = -10000000 -limit_right = 10000000 -limit_bottom = 10000000 -limit_smoothed = false -drag_margin_h_enabled = true -drag_margin_v_enabled = true -smoothing_enabled = false -smoothing_speed = 5.0 -drag_margin_left = 0.2 -drag_margin_top = 0.2 -drag_margin_right = 0.2 -drag_margin_bottom = 0.2 -editor_draw_screen = true -editor_draw_limits = false -editor_draw_drag_margin = false - diff --git a/2d/isometric/dungeon.tscn b/2d/isometric/dungeon.tscn index 9996c82f..4e6dd38b 100644 --- a/2d/isometric/dungeon.tscn +++ b/2d/isometric/dungeon.tscn @@ -3,52 +3,25 @@ [ext_resource path="res://tileset.tres" type="TileSet" id=1] [ext_resource path="res://troll.tscn" type="PackedScene" id=2] -[node name="dungeon" type="Node2D" index="0"] - -[node name="floor" type="TileMap" parent="." index="0"] +[node name="dungeon" type="Node2D"] +[node name="floor" type="TileMap" parent="."] mode = 1 tile_set = ExtResource( 1 ) cell_size = Vector2( 128, 64 ) -cell_quadrant_size = 16 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -cell_half_offset = 2 cell_tile_origin = 1 -cell_y_sort = false -cell_clip_uv = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 format = 1 tile_data = PoolIntArray( -851956, 0, -1200553578, -851955, 0, -1200553578, -851954, 0, -1200553578, -786420, 1, -1200553578, -786419, 0, -1200553578, -786418, 0, -1200553578, -720884, 0, -1200553578, -720883, 0, -1200553578, -720882, 0, -1200553578, -655348, 1, -1200553578, -655347, 0, -1200553578, -655346, 0, -1200553578, -589812, 1, -1200553578, -589811, 0, -1200553578, -589810, 0, -1200553578, -524276, 0, -1200553578, -524275, 1, -1200553578, -524274, 0, -1200553578, -458740, 0, -1200553578, -458739, 0, -1200553578, -458738, 0, -1200553578, -393210, 0, -1200553578, -393209, 0, -1200553578, -393208, 0, -1200553578, -393207, 0, -1200553578, -393206, 0, -1200553578, -393205, 0, -1200553578, -393204, 0, -1200553578, -393203, 0, -1200553578, -393202, 0, -1200553578, -327674, 0, -1200553578, -327673, 0, -1200553578, -327672, 1, -1200553578, -327671, 1, -1200553578, -327670, 1, -1200553578, -327669, 1, -1200553578, -327668, 1, -1200553578, -327667, 0, -1200553578, -327666, 0, -1200553578, -262138, 0, -1200553578, -262137, 0, -1200553578, -262136, 0, -1200553578, -262135, 0, -1200553578, -262134, 0, -1200553578, -262133, 0, -1200553578, -262132, 0, -1200553578, -262131, 0, -1200553578, -262130, 0, -1200553578, -196602, 0, -1200553578, -196601, 0, -1200553578, -196600, 0, -1200553578, -196599, 0, -1200553578, -196598, 0, -1200553578, -196597, 0, -1200553578, -196596, 0, -1200553578, -196595, 0, -1200553578, -196594, 0, -1200553578, -131066, 0, -1200553578, -131065, 0, -1200553578, -131064, 0, -1200553578, -131063, 0, -1200553578, -65530, 0, -1200553578, -65529, 0, -1200553578, -65528, 0, -1200553578, -65527, 0, -1200553578, 6, 0, -1200553578, 7, 1, -1200553578, 8, 0, -1200553578, 9, 0, -1200553578, 65542, 0, -1200553578, 65543, 0, -1200553578, 65544, 0, -1200553578, 65545, 0, -1200553578, 131078, 0, -1200553578, 131079, 0, -1200553578, 131080, 0, -1200553578, 131081, 0, -1200553578, 196614, 0, -1200553578, 196615, 0, -1200553578, 196616, 0, -1200553578 ) -_sections_unfolded = [ "Cell" ] - -[node name="walls" type="TileMap" parent="." index="1"] +[node name="walls" type="TileMap" parent="."] mode = 1 tile_set = ExtResource( 1 ) cell_size = Vector2( 128, 64 ) -cell_quadrant_size = 16 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -cell_half_offset = 2 cell_tile_origin = 1 cell_y_sort = true -cell_clip_uv = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 format = 1 tile_data = PoolIntArray( -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, -1200553578, -458741, 2, -1200553578, -458740, 2, -1200553578, -458738, 2, -1200553578, -458737, 2, -1200553578, -393211, 2, -1200553578, -393209, 3, -1200553578, -393205, 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, -1200553578, 262153, 2, -1200553578, 262154, 2, -1200553578 ) -_sections_unfolded = [ "Cell" ] - -[node name="troll" parent="walls" index="0" instance=ExtResource( 2 )] +[node name="troll" parent="walls" instance=ExtResource( 2 )] position = Vector2( 368.142, 347.007 ) - diff --git a/2d/isometric/project.godot b/2d/isometric/project.godot index a491254b..23495566 100644 --- a/2d/isometric/project.godot +++ b/2d/isometric/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -25,14 +30,26 @@ gen_mipmaps=false [input] -move_bottom=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +move_bottom={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) ] -move_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) ] -move_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) ] -move_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +} +move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) ] +} [rasterizer] diff --git a/2d/isometric/tileset_edit.tscn b/2d/isometric/tileset_edit.tscn index 9ca45f12..42ad21f2 100644 --- a/2d/isometric/tileset_edit.tscn +++ b/2d/isometric/tileset_edit.tscn @@ -4,102 +4,58 @@ [node name="Node2D" type="Node2D"] -[node name="base" type="Sprite" parent="." index="0"] - +[node name="base" type="Sprite" parent="."] position = Vector2( 150.049, 61.1264 ) texture = ExtResource( 1 ) centered = false offset = Vector2( -66, -42 ) region_enabled = true region_rect = Rect2( 28, 92, 132, 84 ) -_sections_unfolded = [ "Offset", "Region" ] - -[node name="base2" type="Sprite" parent="." index="1"] +[node name="base2" type="Sprite" parent="."] position = Vector2( 257.013, 124.86 ) texture = ExtResource( 1 ) centered = false offset = Vector2( -66, -42 ) region_enabled = true region_rect = Rect2( 220, 92, 132, 84 ) -_sections_unfolded = [ "Offset", "Region" ] - -[node name="wall" type="Sprite" parent="." index="2"] +[node name="wall" type="Sprite" parent="."] position = Vector2( 421.311, 137.805 ) texture = ExtResource( 1 ) centered = false offset = Vector2( -69.3109, -99.8051 ) region_enabled = true region_rect = Rect2( 28, 220, 132, 136 ) -_sections_unfolded = [ "Offset", "Region" ] -[node name="StaticBody2D" type="StaticBody2D" parent="wall" index="0"] +[node name="StaticBody2D" type="StaticBody2D" parent="wall"] -input_pickable = false -collision_layer = 1 -collision_mask = 1 -constant_linear_velocity = Vector2( 0, 0 ) -constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 -_sections_unfolded = [ "Transform" ] - -[node name="collision" type="CollisionPolygon2D" parent="wall/StaticBody2D" index="0"] - -build_mode = 0 +[node name="collision" type="CollisionPolygon2D" parent="wall/StaticBody2D"] polygon = PoolVector2Array( -68, 2, -4, 34, 60, 2, -4, -30 ) -[node name="column" type="Sprite" parent="." index="3"] - +[node name="column" type="Sprite" parent="."] position = Vector2( 359.563, 266.446 ) texture = ExtResource( 1 ) centered = false offset = Vector2( -69.5632, -100.446 ) region_enabled = true region_rect = Rect2( 220, 220, 132, 136 ) -_sections_unfolded = [ "Offset", "Region" ] -[node name="StaticBody" type="StaticBody2D" parent="column" index="0"] +[node name="StaticBody" type="StaticBody2D" parent="column"] -input_pickable = false -collision_layer = 1 -collision_mask = 1 -constant_linear_velocity = Vector2( 0, 0 ) -constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 -_sections_unfolded = [ "Transform" ] - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="column/StaticBody" index="0"] - -build_mode = 0 +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="column/StaticBody"] polygon = PoolVector2Array( -20, -6, -4, 10, 4, 10, 28, -6, 12, -22, -4, -22 ) -[node name="door1" type="Sprite" parent="." index="4"] - +[node name="door1" type="Sprite" parent="."] position = Vector2( -24.1548, 142.216 ) texture = ExtResource( 1 ) centered = false offset = Vector2( -50.3623, -90.8164 ) region_enabled = true region_rect = Rect2( 24, 408, 132, 136 ) -_sections_unfolded = [ "Offset", "Region" ] -[node name="StaticBody2D" type="StaticBody2D" parent="door1" index="0"] +[node name="StaticBody2D" type="StaticBody2D" parent="door1"] -input_pickable = false -collision_layer = 1 -collision_mask = 1 -constant_linear_velocity = Vector2( 0, 0 ) -constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 -_sections_unfolded = [ "Transform" ] - -[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="door1/StaticBody2D" index="0"] - -build_mode = 0 +[node name="CollisionPolygon2D" type="CollisionPolygon2D" parent="door1/StaticBody2D"] polygon = PoolVector2Array( -5.90501, 31.3748, 66.095, -0.62516, 50.095, -8.62516, -21.905, 23.3748 ) - diff --git a/2d/isometric/troll.gd b/2d/isometric/troll.gd index eef038d1..4b955e69 100644 --- a/2d/isometric/troll.gd +++ b/2d/isometric/troll.gd @@ -7,7 +7,7 @@ extends KinematicBody2D const MOTION_SPEED = 160 # Pixels/second -func _physics_process(delta): +func _physics_process(_delta): var motion = Vector2() if Input.is_action_pressed("move_up"): diff --git a/2d/isometric/troll.tscn b/2d/isometric/troll.tscn index d4124752..f50d7f0a 100644 --- a/2d/isometric/troll.tscn +++ b/2d/isometric/troll.tscn @@ -4,49 +4,19 @@ [ext_resource path="res://troll.png" type="Texture" id=2] [sub_resource type="CircleShape2D" id=1] - -custom_solver_bias = 0.0 radius = 16.0 [node name="troll" type="KinematicBody2D"] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 script = ExtResource( 1 ) [node name="Sprite" type="Sprite" parent="."] - position = Vector2( -3.94334, -36.924 ) texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] - position = Vector2( -0.342697, -0.980721 ) shape = SubResource( 1 ) [node name="Camera2D" type="Camera2D" parent="."] - -anchor_mode = 1 -rotating = false current = true -zoom = Vector2( 1, 1 ) -limit_left = -10000000 -limit_top = -10000000 -limit_right = 10000000 -limit_bottom = 10000000 -limit_smoothed = false -drag_margin_h_enabled = true -drag_margin_v_enabled = true -smoothing_enabled = false -smoothing_speed = 5.0 -drag_margin_left = 0.2 -drag_margin_top = 0.2 -drag_margin_right = 0.2 -drag_margin_bottom = 0.2 -editor_draw_screen = true -editor_draw_limits = false -editor_draw_drag_margin = false - diff --git a/2d/kinematic_character/colworld.tscn b/2d/kinematic_character/colworld.tscn index 20c84905..a73314b6 100644 --- a/2d/kinematic_character/colworld.tscn +++ b/2d/kinematic_character/colworld.tscn @@ -8,40 +8,38 @@ [ext_resource path="res://long_obstacle.png" type="Texture" id=6] [sub_resource type="RectangleShape2D" id=1] - -custom_solver_bias = 0.0 extents = Vector2( 8, 8 ) [sub_resource type="TileSet" id=2] - 0/name = "" 0/texture = ExtResource( 2 ) 0/tex_offset = Vector2( 0, 0 ) 0/modulate = Color( 1, 1, 1, 1 ) 0/region = Rect2( 0, 0, 0, 0 ) +0/tile_mode = 0 0/occluder_offset = Vector2( 0, 0 ) 0/navigation_offset = Vector2( 0, 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, 8, 8 ) } ] +0/z_index = 0 [sub_resource type="RectangleShape2D" id=3] - -custom_solver_bias = 0.0 extents = Vector2( 8, 8 ) [sub_resource type="Animation" id=4] - length = 10.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 1, 5, 6 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), @@ -50,16 +48,15 @@ tracks/0/keys = { } [sub_resource type="Animation" id=5] - resource_name = "leftright" length = 10.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 1, 5, 6 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), @@ -68,15 +65,14 @@ tracks/0/keys = { } [sub_resource type="Animation" id=6] - length = 10.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 1, 5, 6 ), "transitions": PoolRealArray( 1, 1, 1, 1 ), @@ -85,30 +81,23 @@ tracks/0/keys = { } [sub_resource type="RectangleShape2D" id=7] - -custom_solver_bias = 0.0 extents = Vector2( 8, 8 ) [sub_resource type="RectangleShape2D" id=8] - -custom_solver_bias = 0.0 extents = Vector2( 10, 4 ) [sub_resource type="CircleShape2D" id=9] - -custom_solver_bias = 0.0 radius = 32.0 [sub_resource type="Animation" id=10] - length = 20.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 5, 10, 15 ), "transitions": PoolRealArray( -2, -2, -2, -2 ), @@ -117,287 +106,156 @@ tracks/0/keys = { } [sub_resource type="RectangleShape2D" id=11] - -custom_solver_bias = 0.0 extents = Vector2( 8, 8 ) [sub_resource type="RectangleShape2D" id=12] - -custom_solver_bias = 0.0 extents = Vector2( 32, 8 ) [node name="colworld" type="Node2D"] - script = ExtResource( 1 ) [node name="TileMap" type="TileMap" parent="."] - -mode = 0 tile_set = SubResource( 2 ) cell_size = Vector2( 16, 16 ) -cell_quadrant_size = 16 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -cell_half_offset = 2 -cell_tile_origin = 0 -cell_y_sort = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 -tile_data = PoolIntArray( 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 65536, 0, 65537, 0, 65538, 0, 65539, 0, 65540, 0, 65541, 0, 65542, 0, 65543, 0, 65544, 0, 65545, 0, 65546, 0, 65547, 0, 65548, 0, 65549, 0, 65550, 0, 65551, 0, 65552, 0, 65553, 0, 65554, 0, 65555, 0, 65556, 0, 65557, 0, 65558, 0, 65559, 0, 65560, 0, 65561, 0, 65562, 0, 65563, 0, 65564, 0, 65565, 0, 65566, 0, 65567, 0, 65568, 0, 131072, 0, 131073, 0, 131103, 0, 131104, 0, 196608, 0, 196609, 0, 196639, 0, 196640, 0, 262144, 0, 262145, 0, 262175, 0, 262176, 0, 327680, 0, 327681, 0, 327685, 0, 327686, 0, 327687, 0, 327688, 0, 327689, 0, 327690, 0, 327691, 0, 327692, 0, 327693, 0, 327697, 0, 327711, 0, 327712, 0, 393216, 0, 393217, 0, 393237, 0, 393238, 0, 393247, 0, 393248, 0, 458752, 0, 458753, 0, 458783, 0, 458784, 0, 524288, 0, 524289, 0, 524313, 0, 524314, 0, 524319, 0, 524320, 0, 589824, 0, 589825, 0, 589830, 0, 589831, 0, 589832, 0, 589833, 0, 589834, 0, 589845, 0, 589846, 0, 589847, 0, 589855, 0, 589856, 0, 655360, 0, 655361, 0, 655391, 0, 655392, 0, 720896, 0, 720897, 0, 720927, 0, 720928, 0, 786432, 0, 786433, 0, 786463, 0, 786464, 0, 851968, 0, 851969, 0, 851999, 0, 852000, 0, 917504, 0, 917505, 0, 917535, 0, 917536, 0, 983040, 0, 983041, 0, 983071, 0, 983072, 0, 1048576, 0, 1048577, 0, 1048607, 0, 1048608, 0, 1114112, 0, 1114113, 0, 1114143, 0, 1114144, 0, 1179648, 0, 1179649, 0, 1179654, 0, 1179655, 0, 1179656, 0, 1179679, 0, 1179680, 0, 1245184, 0, 1245185, 0, 1245204, 0, 1245205, 0, 1245206, 0, 1245207, 0, 1245215, 0, 1245216, 0, 1310720, 0, 1310721, 0, 1310751, 0, 1310752, 0, 1376256, 0, 1376257, 0, 1376285, 0, 1376286, 0, 1376287, 0, 1376288, 0, 1441792, 0, 1441793, 0, 1441823, 0, 1441824, 0, 1507328, 0, 1507329, 0, 1507355, 0, 1507356, 0, 1507359, 0, 1507360, 0, 1572864, 0, 1572865, 0, 1572895, 0, 1572896, 0, 1638400, 0, 1638401, 0, 1638413, 0, 1638425, 0, 1638426, 0, 1638431, 0, 1638432, 0, 1703936, 0, 1703937, 0, 1703948, 0, 1703965, 0, 1703966, 0, 1703967, 0, 1703968, 0, 1769472, 0, 1769473, 0, 1769482, 0, 1769483, 0, 1769500, 0, 1769501, 0, 1769503, 0, 1769504, 0, 1835008, 0, 1835009, 0, 1835012, 0, 1835018, 0, 1835019, 0, 1835034, 0, 1835035, 0, 1835039, 0, 1835040, 0, 1900544, 0, 1900545, 0, 1900546, 0, 1900547, 0, 1900548, 0, 1900549, 0, 1900550, 0, 1900551, 0, 1900552, 0, 1900553, 0, 1900554, 0, 1900555, 0, 1900556, 0, 1900557, 0, 1900558, 0, 1900559, 0, 1900560, 0, 1900561, 0, 1900562, 0, 1900563, 0, 1900564, 0, 1900565, 0, 1900566, 0, 1900567, 0, 1900568, 0, 1900569, 0, 1900570, 0, 1900571, 0, 1900572, 0, 1900573, 0, 1900574, 0, 1900575, 0, 1900576, 0, 1966080, 0, 1966081, 0, 1966082, 0, 1966083, 0, 1966084, 0, 1966085, 0, 1966086, 0, 1966087, 0, 1966088, 0, 1966089, 0, 1966090, 0, 1966091, 0, 1966092, 0, 1966093, 0, 1966094, 0, 1966095, 0, 1966096, 0, 1966097, 0, 1966098, 0, 1966099, 0, 1966100, 0, 1966101, 0, 1966102, 0, 1966103, 0, 1966104, 0, 1966105, 0, 1966106, 0, 1966107, 0, 1966108, 0, 1966109, 0, 1966110, 0, 1966111, 0, 1966112, 0, 2031616, 0, 2031617, 0, 2031618, 0, 2031619, 0, 2031620, 0, 2031621, 0, 2031622, 0, 2031623, 0, 2031624, 0, 2031625, 0, 2031626, 0, 2031627, 0, 2031628, 0, 2031629, 0, 2031630, 0, 2031631, 0, 2031632, 0, 2031633, 0, 2031634, 0, 2031635, 0, 2031636, 0, 2031637, 0, 2031638, 0, 2031639, 0, 2031640, 0, 2031641, 0, 2031642, 0, 2031643, 0, 2031644, 0, 2031645, 0, 2031646, 0, 2031647, 0, 2031648, 0 ) +format = 1 +tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 21, 0, 0, 22, 0, 0, 23, 0, 0, 24, 0, 0, 25, 0, 0, 26, 0, 0, 27, 0, 0, 28, 0, 0, 29, 0, 0, 30, 0, 0, 31, 0, 0, 32, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 65553, 0, 0, 65554, 0, 0, 65555, 0, 0, 65556, 0, 0, 65557, 0, 0, 65558, 0, 0, 65559, 0, 0, 65560, 0, 0, 65561, 0, 0, 65562, 0, 0, 65563, 0, 0, 65564, 0, 0, 65565, 0, 0, 65566, 0, 0, 65567, 0, 0, 65568, 0, 0, 131072, 0, 0, 131073, 0, 0, 131103, 0, 0, 131104, 0, 0, 196608, 0, 0, 196609, 0, 0, 196639, 0, 0, 196640, 0, 0, 262144, 0, 0, 262145, 0, 0, 262175, 0, 0, 262176, 0, 0, 327680, 0, 0, 327681, 0, 0, 327685, 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, 327697, 0, 0, 327711, 0, 0, 327712, 0, 0, 393216, 0, 0, 393217, 0, 0, 393237, 0, 0, 393238, 0, 0, 393247, 0, 0, 393248, 0, 0, 458752, 0, 0, 458753, 0, 0, 458783, 0, 0, 458784, 0, 0, 524288, 0, 0, 524289, 0, 0, 524313, 0, 0, 524314, 0, 0, 524319, 0, 0, 524320, 0, 0, 589824, 0, 0, 589825, 0, 0, 589830, 0, 0, 589831, 0, 0, 589832, 0, 0, 589833, 0, 0, 589834, 0, 0, 589845, 0, 0, 589846, 0, 0, 589847, 0, 0, 589855, 0, 0, 589856, 0, 0, 655360, 0, 0, 655361, 0, 0, 655391, 0, 0, 655392, 0, 0, 720896, 0, 0, 720897, 0, 0, 720927, 0, 0, 720928, 0, 0, 786432, 0, 0, 786433, 0, 0, 786463, 0, 0, 786464, 0, 0, 851968, 0, 0, 851969, 0, 0, 851999, 0, 0, 852000, 0, 0, 917504, 0, 0, 917505, 0, 0, 917535, 0, 0, 917536, 0, 0, 983040, 0, 0, 983041, 0, 0, 983071, 0, 0, 983072, 0, 0, 1048576, 0, 0, 1048577, 0, 0, 1048607, 0, 0, 1048608, 0, 0, 1114112, 0, 0, 1114113, 0, 0, 1114143, 0, 0, 1114144, 0, 0, 1179648, 0, 0, 1179649, 0, 0, 1179654, 0, 0, 1179655, 0, 0, 1179656, 0, 0, 1179679, 0, 0, 1179680, 0, 0, 1245184, 0, 0, 1245185, 0, 0, 1245204, 0, 0, 1245205, 0, 0, 1245206, 0, 0, 1245207, 0, 0, 1245215, 0, 0, 1245216, 0, 0, 1310720, 0, 0, 1310721, 0, 0, 1310751, 0, 0, 1310752, 0, 0, 1376256, 0, 0, 1376257, 0, 0, 1376285, 0, 0, 1376286, 0, 0, 1376287, 0, 0, 1376288, 0, 0, 1441792, 0, 0, 1441793, 0, 0, 1441823, 0, 0, 1441824, 0, 0, 1507328, 0, 0, 1507329, 0, 0, 1507355, 0, 0, 1507356, 0, 0, 1507359, 0, 0, 1507360, 0, 0, 1572864, 0, 0, 1572865, 0, 0, 1572895, 0, 0, 1572896, 0, 0, 1638400, 0, 0, 1638401, 0, 0, 1638413, 0, 0, 1638425, 0, 0, 1638426, 0, 0, 1638431, 0, 0, 1638432, 0, 0, 1703936, 0, 0, 1703937, 0, 0, 1703948, 0, 0, 1703965, 0, 0, 1703966, 0, 0, 1703967, 0, 0, 1703968, 0, 0, 1769472, 0, 0, 1769473, 0, 0, 1769482, 0, 0, 1769483, 0, 0, 1769500, 0, 0, 1769501, 0, 0, 1769503, 0, 0, 1769504, 0, 0, 1835008, 0, 0, 1835009, 0, 0, 1835012, 0, 0, 1835018, 0, 0, 1835019, 0, 0, 1835034, 0, 0, 1835035, 0, 0, 1835039, 0, 0, 1835040, 0, 0, 1900544, 0, 0, 1900545, 0, 0, 1900546, 0, 0, 1900547, 0, 0, 1900548, 0, 0, 1900549, 0, 0, 1900550, 0, 0, 1900551, 0, 0, 1900552, 0, 0, 1900553, 0, 0, 1900554, 0, 0, 1900555, 0, 0, 1900556, 0, 0, 1900557, 0, 0, 1900558, 0, 0, 1900559, 0, 0, 1900560, 0, 0, 1900561, 0, 0, 1900562, 0, 0, 1900563, 0, 0, 1900564, 0, 0, 1900565, 0, 0, 1900566, 0, 0, 1900567, 0, 0, 1900568, 0, 0, 1900569, 0, 0, 1900570, 0, 0, 1900571, 0, 0, 1900572, 0, 0, 1900573, 0, 0, 1900574, 0, 0, 1900575, 0, 0, 1900576, 0, 0, 1966080, 0, 0, 1966081, 0, 0, 1966082, 0, 0, 1966083, 0, 0, 1966084, 0, 0, 1966085, 0, 0, 1966086, 0, 0, 1966087, 0, 0, 1966088, 0, 0, 1966089, 0, 0, 1966090, 0, 0, 1966091, 0, 0, 1966092, 0, 0, 1966093, 0, 0, 1966094, 0, 0, 1966095, 0, 0, 1966096, 0, 0, 1966097, 0, 0, 1966098, 0, 0, 1966099, 0, 0, 1966100, 0, 0, 1966101, 0, 0, 1966102, 0, 0, 1966103, 0, 0, 1966104, 0, 0, 1966105, 0, 0, 1966106, 0, 0, 1966107, 0, 0, 1966108, 0, 0, 1966109, 0, 0, 1966110, 0, 0, 1966111, 0, 0, 1966112, 0, 0, 2031616, 0, 0, 2031617, 0, 0, 2031618, 0, 0, 2031619, 0, 0, 2031620, 0, 0, 2031621, 0, 0, 2031622, 0, 0, 2031623, 0, 0, 2031624, 0, 0, 2031625, 0, 0, 2031626, 0, 0, 2031627, 0, 0, 2031628, 0, 0, 2031629, 0, 0, 2031630, 0, 0, 2031631, 0, 0, 2031632, 0, 0, 2031633, 0, 0, 2031634, 0, 0, 2031635, 0, 0, 2031636, 0, 0, 2031637, 0, 0, 2031638, 0, 0, 2031639, 0, 0, 2031640, 0, 0, 2031641, 0, 0, 2031642, 0, 0, 2031643, 0, 0, 2031644, 0, 0, 2031645, 0, 0, 2031646, 0, 0, 2031647, 0, 0, 2031648, 0, 0 ) [node name="player" parent="." instance=ExtResource( 3 )] - position = Vector2( 233.06, 223.436 ) [node name="moving_platform1" type="KinematicBody2D" parent="."] - position = Vector2( 274.142, 152 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 [node name="collision" type="CollisionShape2D" parent="moving_platform1"] - shape = SubResource( 3 ) [node name="sprite" type="Sprite" parent="moving_platform1"] - texture = ExtResource( 2 ) [node name="anim" type="AnimationPlayer" parent="moving_platform1"] - -playback_process_mode = 0 -playback_default_blend_time = 0.0 -root_node = NodePath("..") -anims/leftright = SubResource( 4 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] autoplay = "leftright" +playback_process_mode = 0 +anims/leftright = SubResource( 4 ) [node name="moving_platform2" type="KinematicBody2D" parent="."] - position = Vector2( 88.3493, 284.689 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 [node name="collision" type="CollisionShape2D" parent="moving_platform2"] - shape = SubResource( 3 ) [node name="sprite" type="Sprite" parent="moving_platform2"] - texture = ExtResource( 2 ) [node name="anim" type="AnimationPlayer" parent="moving_platform2"] - +autoplay = "updown" playback_process_mode = 0 -playback_default_blend_time = 0.0 -root_node = NodePath("..") anims/leftright = SubResource( 5 ) anims/updown = SubResource( 6 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] -autoplay = "updown" [node name="princess" type="Area2D" parent="."] - position = Vector2( 97, 72 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" [node name="collision" type="CollisionShape2D" parent="princess"] - shape = SubResource( 7 ) [node name="Sprite" type="Sprite" parent="princess"] - texture = ExtResource( 4 ) [node name="youwin" type="Label" parent="."] - visible = false -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_left = 196.0 margin_top = 41.0 margin_right = 344.0 margin_bottom = 67.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 size_flags_horizontal = 2 size_flags_vertical = 0 text = "Thank You Cubio You Saved The Princess!" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 [node name="oneway1" type="KinematicBody2D" parent="."] - position = Vector2( 439, 308 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 [node name="sprite" type="Sprite" parent="oneway1"] - scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="oneway1"] - shape = SubResource( 8 ) one_way_collision = true [node name="oneway2" type="KinematicBody2D" parent="."] - position = Vector2( 456, 308 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 [node name="sprite" type="Sprite" parent="oneway2"] - scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="oneway2"] - shape = SubResource( 8 ) one_way_collision = true [node name="oneway3" type="KinematicBody2D" parent="."] - position = Vector2( 472, 308 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 [node name="sprite" type="Sprite" parent="oneway3"] - scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="oneway3"] - shape = SubResource( 8 ) one_way_collision = true [node name="oneway4" type="KinematicBody2D" parent="."] - position = Vector2( 487, 308 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 [node name="sprite" type="Sprite" parent="oneway4"] - scale = Vector2( 1, 0.3 ) texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="oneway4"] - shape = SubResource( 8 ) one_way_collision = true [node name="circle" type="KinematicBody2D" parent="."] - position = Vector2( 241.169, 304.126 ) -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 [node name="sprite" type="Sprite" parent="circle"] - texture = ExtResource( 5 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="circle"] - shape = SubResource( 9 ) [node name="anim" type="AnimationPlayer" parent="circle"] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") -anims/turn = SubResource( 10 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] autoplay = "turn" +anims/turn = SubResource( 10 ) [node name="box" type="CollisionShape2D" parent="circle"] - position = Vector2( -0.440125, -37.0904 ) shape = SubResource( 11 ) [node name="boxsprite" type="Sprite" parent="circle"] - position = Vector2( 0, -37.4108 ) texture = ExtResource( 2 ) [node name="platform" type="StaticBody2D" parent="."] - position = Vector2( 251.44, 396.557 ) rotation = -0.428054 -input_pickable = false -collision_layer = 1 -collision_mask = 1 -constant_linear_velocity = Vector2( 0, 0 ) -constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 [node name="sprite" type="Sprite" parent="platform"] - texture = ExtResource( 6 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="platform"] - shape = SubResource( 12 ) [node name="platform1" type="StaticBody2D" parent="."] - position = Vector2( 369.116, 394.016 ) rotation = 0.465931 -input_pickable = false -collision_layer = 1 -collision_mask = 1 -constant_linear_velocity = Vector2( 0, 0 ) -constant_angular_velocity = 0.0 -friction = 1.0 -bounce = 0.0 [node name="sprite" type="Sprite" parent="platform1"] - texture = ExtResource( 6 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="platform1"] - shape = SubResource( 12 ) [connection signal="body_entered" from="princess" to="." method="_on_princess_body_enter"] - - diff --git a/2d/kinematic_character/player.tscn b/2d/kinematic_character/player.tscn index e74838bb..4021f09c 100644 --- a/2d/kinematic_character/player.tscn +++ b/2d/kinematic_character/player.tscn @@ -4,25 +4,15 @@ [ext_resource path="res://player.png" type="Texture" id=2] [sub_resource type="RectangleShape2D" id=1] - -custom_solver_bias = 0.0 extents = Vector2( 7, 7 ) [node name="player" type="KinematicBody2D"] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 script = ExtResource( 1 ) [node name="sprite" type="Sprite" parent="."] - texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] - position = Vector2( -0.315559, 0.157784 ) shape = SubResource( 1 ) - diff --git a/2d/kinematic_character/project.godot b/2d/kinematic_character/project.godot index e53f1b80..68e013d2 100644 --- a/2d/kinematic_character/project.godot +++ b/2d/kinematic_character/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -27,16 +32,31 @@ singletons=[ ] [input] -jump=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) +jump={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":32,"unicode":0,"echo":false,"script":null) ] -move_bottom=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +} +move_bottom={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) ] -move_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) ] -move_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) ] -move_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +} +move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) ] +} [memory] diff --git a/2d/kinematic_collision/colworld.tscn b/2d/kinematic_collision/colworld.tscn index 564d0f7f..44979d39 100644 --- a/2d/kinematic_collision/colworld.tscn +++ b/2d/kinematic_collision/colworld.tscn @@ -4,47 +4,34 @@ [ext_resource path="res://player.tscn" type="PackedScene" id=2] [sub_resource type="RectangleShape2D" id=1] - -custom_solver_bias = 0.0 extents = Vector2( 8, 8 ) [sub_resource type="TileSet" id=2] - 0/name = "" 0/texture = ExtResource( 1 ) 0/tex_offset = Vector2( 0, 0 ) 0/modulate = Color( 1, 1, 1, 1 ) 0/region = Rect2( 0, 0, 0, 0 ) +0/tile_mode = 0 0/occluder_offset = Vector2( 0, 0 ) 0/navigation_offset = Vector2( 0, 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, 8, 8 ) } ] +0/z_index = 0 [node name="colworld" type="Node2D"] [node name="TileMap" type="TileMap" parent="."] - -mode = 0 tile_set = SubResource( 2 ) cell_size = Vector2( 16, 16 ) -cell_quadrant_size = 16 -cell_custom_transform = Transform2D( 1, 0, 0, 1, 0, 0 ) -cell_half_offset = 2 -cell_tile_origin = 0 -cell_y_sort = false -collision_use_kinematic = false -collision_friction = 1.0 -collision_bounce = 0.0 -collision_layer = 1 -collision_mask = 1 -occluder_light_mask = 1 -tile_data = PoolIntArray( 0, 0, 1, 0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 8, 0, 9, 0, 10, 0, 11, 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, 0, 22, 0, 23, 0, 24, 0, 25, 0, 26, 0, 27, 0, 28, 0, 29, 0, 30, 0, 31, 0, 32, 0, 65536, 0, 65537, 0, 65538, 0, 65539, 0, 65540, 0, 65541, 0, 65542, 0, 65543, 0, 65544, 0, 65545, 0, 65546, 0, 65547, 0, 65548, 0, 65549, 0, 65550, 0, 65551, 0, 65552, 0, 65553, 0, 65554, 0, 65555, 0, 65556, 0, 65557, 0, 65558, 0, 65559, 0, 65560, 0, 65561, 0, 65562, 0, 65563, 0, 65564, 0, 65565, 0, 65566, 0, 65567, 0, 65568, 0, 131072, 0, 131073, 0, 131103, 0, 131104, 0, 196608, 0, 196609, 0, 196639, 0, 196640, 0, 262144, 0, 262145, 0, 262175, 0, 262176, 0, 327680, 0, 327681, 0, 327685, 0, 327686, 0, 327687, 0, 327688, 0, 327689, 0, 327690, 0, 327691, 0, 327692, 0, 327693, 0, 327711, 0, 327712, 0, 393216, 0, 393217, 0, 393247, 0, 393248, 0, 458752, 0, 458753, 0, 458783, 0, 458784, 0, 524288, 0, 524289, 0, 524319, 0, 524320, 0, 589824, 0, 589825, 0, 589855, 0, 589856, 0, 655360, 0, 655361, 0, 655373, 0, 655374, 0, 655375, 0, 655376, 0, 655377, 0, 655378, 0, 655379, 0, 655380, 0, 655381, 0, 655391, 0, 655392, 0, 720896, 0, 720897, 0, 720909, 0, 720910, 0, 720911, 0, 720912, 0, 720913, 0, 720914, 0, 720915, 0, 720916, 0, 720917, 0, 720927, 0, 720928, 0, 786432, 0, 786433, 0, 786445, 0, 786446, 0, 786447, 0, 786448, 0, 786449, 0, 786450, 0, 786451, 0, 786452, 0, 786453, 0, 786463, 0, 786464, 0, 851968, 0, 851969, 0, 851981, 0, 851982, 0, 851988, 0, 851989, 0, 851999, 0, 852000, 0, 917504, 0, 917505, 0, 917517, 0, 917518, 0, 917524, 0, 917525, 0, 917535, 0, 917536, 0, 983040, 0, 983041, 0, 983053, 0, 983054, 0, 983060, 0, 983061, 0, 983071, 0, 983072, 0, 1048576, 0, 1048577, 0, 1048596, 0, 1048597, 0, 1048607, 0, 1048608, 0, 1114112, 0, 1114113, 0, 1114132, 0, 1114133, 0, 1114143, 0, 1114144, 0, 1179648, 0, 1179649, 0, 1179668, 0, 1179669, 0, 1179679, 0, 1179680, 0, 1245184, 0, 1245185, 0, 1245204, 0, 1245205, 0, 1245215, 0, 1245216, 0, 1310720, 0, 1310721, 0, 1310730, 0, 1310731, 0, 1310748, 0, 1310751, 0, 1310752, 0, 1376256, 0, 1376257, 0, 1376266, 0, 1376267, 0, 1376284, 0, 1376287, 0, 1376288, 0, 1441792, 0, 1441793, 0, 1441802, 0, 1441803, 0, 1441804, 0, 1441805, 0, 1441820, 0, 1441823, 0, 1441824, 0, 1507328, 0, 1507329, 0, 1507338, 0, 1507339, 0, 1507340, 0, 1507341, 0, 1507359, 0, 1507360, 0, 1572864, 0, 1572865, 0, 1572874, 0, 1572875, 0, 1572876, 0, 1572877, 0, 1572878, 0, 1572879, 0, 1572880, 0, 1572881, 0, 1572882, 0, 1572895, 0, 1572896, 0, 1638400, 0, 1638401, 0, 1638410, 0, 1638411, 0, 1638412, 0, 1638413, 0, 1638414, 0, 1638415, 0, 1638416, 0, 1638417, 0, 1638418, 0, 1638431, 0, 1638432, 0, 1703936, 0, 1703937, 0, 1703946, 0, 1703947, 0, 1703967, 0, 1703968, 0, 1769472, 0, 1769473, 0, 1769482, 0, 1769483, 0, 1769503, 0, 1769504, 0, 1835008, 0, 1835009, 0, 1835018, 0, 1835019, 0, 1835039, 0, 1835040, 0, 1900544, 0, 1900545, 0, 1900546, 0, 1900547, 0, 1900548, 0, 1900549, 0, 1900550, 0, 1900551, 0, 1900552, 0, 1900553, 0, 1900554, 0, 1900555, 0, 1900556, 0, 1900557, 0, 1900558, 0, 1900559, 0, 1900560, 0, 1900561, 0, 1900562, 0, 1900563, 0, 1900564, 0, 1900565, 0, 1900566, 0, 1900567, 0, 1900568, 0, 1900569, 0, 1900570, 0, 1900571, 0, 1900572, 0, 1900573, 0, 1900574, 0, 1900575, 0, 1900576, 0, 1966080, 0, 1966081, 0, 1966082, 0, 1966083, 0, 1966084, 0, 1966085, 0, 1966086, 0, 1966087, 0, 1966088, 0, 1966089, 0, 1966090, 0, 1966091, 0, 1966092, 0, 1966093, 0, 1966094, 0, 1966095, 0, 1966096, 0, 1966097, 0, 1966098, 0, 1966099, 0, 1966100, 0, 1966101, 0, 1966102, 0, 1966103, 0, 1966104, 0, 1966105, 0, 1966106, 0, 1966107, 0, 1966108, 0, 1966109, 0, 1966110, 0, 1966111, 0, 1966112, 0, 2031616, 0, 2031617, 0, 2031618, 0, 2031619, 0, 2031620, 0, 2031621, 0, 2031622, 0, 2031623, 0, 2031624, 0, 2031625, 0, 2031626, 0, 2031627, 0, 2031628, 0, 2031629, 0, 2031630, 0, 2031631, 0, 2031632, 0, 2031633, 0, 2031634, 0, 2031635, 0, 2031636, 0, 2031637, 0, 2031638, 0, 2031639, 0, 2031640, 0, 2031641, 0, 2031642, 0, 2031643, 0, 2031644, 0, 2031645, 0, 2031646, 0, 2031647, 0, 2031648, 0 ) +format = 1 +tile_data = PoolIntArray( 0, 0, 0, 1, 0, 0, 2, 0, 0, 3, 0, 0, 4, 0, 0, 5, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 0, 13, 0, 0, 14, 0, 0, 15, 0, 0, 16, 0, 0, 17, 0, 0, 18, 0, 0, 19, 0, 0, 20, 0, 0, 21, 0, 0, 22, 0, 0, 23, 0, 0, 24, 0, 0, 25, 0, 0, 26, 0, 0, 27, 0, 0, 28, 0, 0, 29, 0, 0, 30, 0, 0, 31, 0, 0, 32, 0, 0, 65536, 0, 0, 65537, 0, 0, 65538, 0, 0, 65539, 0, 0, 65540, 0, 0, 65541, 0, 0, 65542, 0, 0, 65543, 0, 0, 65544, 0, 0, 65545, 0, 0, 65546, 0, 0, 65547, 0, 0, 65548, 0, 0, 65549, 0, 0, 65550, 0, 0, 65551, 0, 0, 65552, 0, 0, 65553, 0, 0, 65554, 0, 0, 65555, 0, 0, 65556, 0, 0, 65557, 0, 0, 65558, 0, 0, 65559, 0, 0, 65560, 0, 0, 65561, 0, 0, 65562, 0, 0, 65563, 0, 0, 65564, 0, 0, 65565, 0, 0, 65566, 0, 0, 65567, 0, 0, 65568, 0, 0, 131072, 0, 0, 131073, 0, 0, 131103, 0, 0, 131104, 0, 0, 196608, 0, 0, 196609, 0, 0, 196639, 0, 0, 196640, 0, 0, 262144, 0, 0, 262145, 0, 0, 262175, 0, 0, 262176, 0, 0, 327680, 0, 0, 327681, 0, 0, 327685, 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, 327711, 0, 0, 327712, 0, 0, 393216, 0, 0, 393217, 0, 0, 393247, 0, 0, 393248, 0, 0, 458752, 0, 0, 458753, 0, 0, 458783, 0, 0, 458784, 0, 0, 524288, 0, 0, 524289, 0, 0, 524319, 0, 0, 524320, 0, 0, 589824, 0, 0, 589825, 0, 0, 589855, 0, 0, 589856, 0, 0, 655360, 0, 0, 655361, 0, 0, 655373, 0, 0, 655374, 0, 0, 655375, 0, 0, 655376, 0, 0, 655377, 0, 0, 655378, 0, 0, 655379, 0, 0, 655380, 0, 0, 655381, 0, 0, 655391, 0, 0, 655392, 0, 0, 720896, 0, 0, 720897, 0, 0, 720909, 0, 0, 720910, 0, 0, 720911, 0, 0, 720912, 0, 0, 720913, 0, 0, 720914, 0, 0, 720915, 0, 0, 720916, 0, 0, 720917, 0, 0, 720927, 0, 0, 720928, 0, 0, 786432, 0, 0, 786433, 0, 0, 786445, 0, 0, 786446, 0, 0, 786447, 0, 0, 786448, 0, 0, 786449, 0, 0, 786450, 0, 0, 786451, 0, 0, 786452, 0, 0, 786453, 0, 0, 786463, 0, 0, 786464, 0, 0, 851968, 0, 0, 851969, 0, 0, 851981, 0, 0, 851982, 0, 0, 851988, 0, 0, 851989, 0, 0, 851999, 0, 0, 852000, 0, 0, 917504, 0, 0, 917505, 0, 0, 917517, 0, 0, 917518, 0, 0, 917524, 0, 0, 917525, 0, 0, 917535, 0, 0, 917536, 0, 0, 983040, 0, 0, 983041, 0, 0, 983053, 0, 0, 983054, 0, 0, 983060, 0, 0, 983061, 0, 0, 983071, 0, 0, 983072, 0, 0, 1048576, 0, 0, 1048577, 0, 0, 1048596, 0, 0, 1048597, 0, 0, 1048607, 0, 0, 1048608, 0, 0, 1114112, 0, 0, 1114113, 0, 0, 1114132, 0, 0, 1114133, 0, 0, 1114143, 0, 0, 1114144, 0, 0, 1179648, 0, 0, 1179649, 0, 0, 1179668, 0, 0, 1179669, 0, 0, 1179679, 0, 0, 1179680, 0, 0, 1245184, 0, 0, 1245185, 0, 0, 1245204, 0, 0, 1245205, 0, 0, 1245215, 0, 0, 1245216, 0, 0, 1310720, 0, 0, 1310721, 0, 0, 1310730, 0, 0, 1310731, 0, 0, 1310748, 0, 0, 1310751, 0, 0, 1310752, 0, 0, 1376256, 0, 0, 1376257, 0, 0, 1376266, 0, 0, 1376267, 0, 0, 1376284, 0, 0, 1376287, 0, 0, 1376288, 0, 0, 1441792, 0, 0, 1441793, 0, 0, 1441802, 0, 0, 1441803, 0, 0, 1441804, 0, 0, 1441805, 0, 0, 1441820, 0, 0, 1441823, 0, 0, 1441824, 0, 0, 1507328, 0, 0, 1507329, 0, 0, 1507338, 0, 0, 1507339, 0, 0, 1507340, 0, 0, 1507341, 0, 0, 1507359, 0, 0, 1507360, 0, 0, 1572864, 0, 0, 1572865, 0, 0, 1572874, 0, 0, 1572875, 0, 0, 1572876, 0, 0, 1572877, 0, 0, 1572878, 0, 0, 1572879, 0, 0, 1572880, 0, 0, 1572881, 0, 0, 1572882, 0, 0, 1572895, 0, 0, 1572896, 0, 0, 1638400, 0, 0, 1638401, 0, 0, 1638410, 0, 0, 1638411, 0, 0, 1638412, 0, 0, 1638413, 0, 0, 1638414, 0, 0, 1638415, 0, 0, 1638416, 0, 0, 1638417, 0, 0, 1638418, 0, 0, 1638431, 0, 0, 1638432, 0, 0, 1703936, 0, 0, 1703937, 0, 0, 1703946, 0, 0, 1703947, 0, 0, 1703967, 0, 0, 1703968, 0, 0, 1769472, 0, 0, 1769473, 0, 0, 1769482, 0, 0, 1769483, 0, 0, 1769503, 0, 0, 1769504, 0, 0, 1835008, 0, 0, 1835009, 0, 0, 1835018, 0, 0, 1835019, 0, 0, 1835039, 0, 0, 1835040, 0, 0, 1900544, 0, 0, 1900545, 0, 0, 1900546, 0, 0, 1900547, 0, 0, 1900548, 0, 0, 1900549, 0, 0, 1900550, 0, 0, 1900551, 0, 0, 1900552, 0, 0, 1900553, 0, 0, 1900554, 0, 0, 1900555, 0, 0, 1900556, 0, 0, 1900557, 0, 0, 1900558, 0, 0, 1900559, 0, 0, 1900560, 0, 0, 1900561, 0, 0, 1900562, 0, 0, 1900563, 0, 0, 1900564, 0, 0, 1900565, 0, 0, 1900566, 0, 0, 1900567, 0, 0, 1900568, 0, 0, 1900569, 0, 0, 1900570, 0, 0, 1900571, 0, 0, 1900572, 0, 0, 1900573, 0, 0, 1900574, 0, 0, 1900575, 0, 0, 1900576, 0, 0, 1966080, 0, 0, 1966081, 0, 0, 1966082, 0, 0, 1966083, 0, 0, 1966084, 0, 0, 1966085, 0, 0, 1966086, 0, 0, 1966087, 0, 0, 1966088, 0, 0, 1966089, 0, 0, 1966090, 0, 0, 1966091, 0, 0, 1966092, 0, 0, 1966093, 0, 0, 1966094, 0, 0, 1966095, 0, 0, 1966096, 0, 0, 1966097, 0, 0, 1966098, 0, 0, 1966099, 0, 0, 1966100, 0, 0, 1966101, 0, 0, 1966102, 0, 0, 1966103, 0, 0, 1966104, 0, 0, 1966105, 0, 0, 1966106, 0, 0, 1966107, 0, 0, 1966108, 0, 0, 1966109, 0, 0, 1966110, 0, 0, 1966111, 0, 0, 1966112, 0, 0, 2031616, 0, 0, 2031617, 0, 0, 2031618, 0, 0, 2031619, 0, 0, 2031620, 0, 0, 2031621, 0, 0, 2031622, 0, 0, 2031623, 0, 0, 2031624, 0, 0, 2031625, 0, 0, 2031626, 0, 0, 2031627, 0, 0, 2031628, 0, 0, 2031629, 0, 0, 2031630, 0, 0, 2031631, 0, 0, 2031632, 0, 0, 2031633, 0, 0, 2031634, 0, 0, 2031635, 0, 0, 2031636, 0, 0, 2031637, 0, 0, 2031638, 0, 0, 2031639, 0, 0, 2031640, 0, 0, 2031641, 0, 0, 2031642, 0, 0, 2031643, 0, 0, 2031644, 0, 0, 2031645, 0, 0, 2031646, 0, 0, 2031647, 0, 0, 2031648, 0, 0 ) [node name="player" parent="." instance=ExtResource( 2 )] - position = Vector2( 115.243, 222.134 ) - diff --git a/2d/kinematic_collision/icon.png.import b/2d/kinematic_collision/icon.png.import index 59f84b0c..45ee6af7 100644 --- a/2d/kinematic_collision/icon.png.import +++ b/2d/kinematic_collision/icon.png.import @@ -7,16 +7,14 @@ path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" [deps] source_file="res://icon.png" -source_md5="49c0855bb2f599fd216190fb14eac778" - dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] -dest_md5="ef5bb91cdcf00e1ad730573fc7704640" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/kinematic_collision/obstacle.png.import b/2d/kinematic_collision/obstacle.png.import index 6b0359fe..90cd6e5b 100644 --- a/2d/kinematic_collision/obstacle.png.import +++ b/2d/kinematic_collision/obstacle.png.import @@ -7,16 +7,14 @@ path="res://.import/obstacle.png-dfb3e99d3af573251007cdf5e1c252b9.stex" [deps] source_file="res://obstacle.png" -source_md5="593e6d05e3859ff3e39eddb0bcad093b" - dest_files=[ "res://.import/obstacle.png-dfb3e99d3af573251007cdf5e1c252b9.stex" ] -dest_md5="ad71f3bc8585c641906a5ff5124ac2e6" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/kinematic_collision/player.gd b/2d/kinematic_collision/player.gd index eef038d1..4b955e69 100644 --- a/2d/kinematic_collision/player.gd +++ b/2d/kinematic_collision/player.gd @@ -7,7 +7,7 @@ extends KinematicBody2D const MOTION_SPEED = 160 # Pixels/second -func _physics_process(delta): +func _physics_process(_delta): var motion = Vector2() if Input.is_action_pressed("move_up"): diff --git a/2d/kinematic_collision/player.png.import b/2d/kinematic_collision/player.png.import index 74c107d2..38c5ccfc 100644 --- a/2d/kinematic_collision/player.png.import +++ b/2d/kinematic_collision/player.png.import @@ -7,16 +7,14 @@ path="res://.import/player.png-2dd0af52de4b213777cd8c9df94c0978.stex" [deps] source_file="res://player.png" -source_md5="540f7f0d3b239b1d8c349f4be4d2d253" - dest_files=[ "res://.import/player.png-2dd0af52de4b213777cd8c9df94c0978.stex" ] -dest_md5="4112e6a5c36d38d07edebbfbd416c9fa" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/kinematic_collision/player.tscn b/2d/kinematic_collision/player.tscn index 405d166d..4e7909b1 100644 --- a/2d/kinematic_collision/player.tscn +++ b/2d/kinematic_collision/player.tscn @@ -4,24 +4,14 @@ [ext_resource path="res://player.png" type="Texture" id=2] [sub_resource type="RectangleShape2D" id=1] - -custom_solver_bias = 0.0 extents = Vector2( 8, 8 ) [node name="player" type="KinematicBody2D"] - -input_pickable = false -collision_layer = 1 -collision_mask = 1 -collision/safe_margin = 0.08 script = ExtResource( 1 ) [node name="sprite" type="Sprite" parent="."] - texture = ExtResource( 2 ) [node name="CollisionShape2D" type="CollisionShape2D" parent="."] - shape = SubResource( 1 ) - diff --git a/2d/kinematic_collision/project.godot b/2d/kinematic_collision/project.godot index 04857e2b..5999f8f1 100644 --- a/2d/kinematic_collision/project.godot +++ b/2d/kinematic_collision/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -20,11 +25,23 @@ singletons=[ ] [input] -move_bottom=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +move_bottom={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) ] -move_left=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) +} +move_left={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777231,"unicode":0,"echo":false,"script":null) ] -move_right=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) +} +move_right={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777233,"unicode":0,"echo":false,"script":null) ] -move_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +} +move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) ] +} diff --git a/2d/light2d_as_mask/burano.png.import b/2d/light2d_as_mask/burano.png.import index 9ac84d57..5aa96ae7 100644 --- a/2d/light2d_as_mask/burano.png.import +++ b/2d/light2d_as_mask/burano.png.import @@ -7,16 +7,14 @@ path="res://.import/burano.png-893cff79ccbe972d7b1ad3e1845f81bf.stex" [deps] source_file="res://burano.png" -source_md5="56e0dd7f3166567cd3732be2b3d969d7" - dest_files=[ "res://.import/burano.png-893cff79ccbe972d7b1ad3e1845f81bf.stex" ] -dest_md5="c41d7eefd81a4a9b247056ecc6cecb53" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/light2d_as_mask/icon.png.import b/2d/light2d_as_mask/icon.png.import index 89e89958..45ee6af7 100644 --- a/2d/light2d_as_mask/icon.png.import +++ b/2d/light2d_as_mask/icon.png.import @@ -7,16 +7,14 @@ path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" [deps] source_file="res://icon.png" -source_md5="0f5dab3f02c95e5a3b2df77bff0389d5" - dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] -dest_md5="8060b8a927328cda642bc470301ec76d" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/light2d_as_mask/lightmask.tscn b/2d/light2d_as_mask/lightmask.tscn index 8c6b22b9..0cef972b 100644 --- a/2d/light2d_as_mask/lightmask.tscn +++ b/2d/light2d_as_mask/lightmask.tscn @@ -4,21 +4,17 @@ [ext_resource path="res://splat.png" type="Texture" id=2] [sub_resource type="CanvasItemMaterial" id=1] - -render_priority = 0 -blend_mode = 0 light_mode = 2 [sub_resource type="Animation" id=2] - length = 4.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 1, 2, 3 ), "transitions": PoolRealArray( -2, -2, -2, -2 ), @@ -30,6 +26,7 @@ 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": PoolRealArray( 0, 1, 2, 3 ), "transitions": PoolRealArray( -2, -2, -2, -2 ), @@ -41,6 +38,7 @@ 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": PoolRealArray( 0, 1, 2, 3 ), "transitions": PoolRealArray( -2, -2, -2, -2 ), @@ -49,118 +47,35 @@ tracks/2/keys = { } [node name="lightmask_demo" type="Control"] - -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 size_flags_horizontal = 2 size_flags_vertical = 2 [node name="burano" type="TextureRect" parent="."] - material = SubResource( 1 ) -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 800.0 margin_bottom = 600.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 1 ) -stretch_mode = 0 [node name="light1" type="Light2D" parent="."] - position = Vector2( 601.028, 242.639 ) -enabled = true -editor_only = false texture = ExtResource( 2 ) -offset = Vector2( 0, 0 ) -texture_scale = 1.0 -color = Color( 1, 1, 1, 1 ) -energy = 1.0 mode = 2 -range_height = 0.0 -range_z_min = -1024 -range_z_max = 1024 -range_layer_min = 0 -range_layer_max = 0 -range_item_cull_mask = 1 -shadow_enabled = false -shadow_color = Color( 0, 0, 0, 0 ) -shadow_buffer_size = 2048 -shadow_gradient_length = 0.0 -shadow_filter = 0 -shadow_filter_smooth = 0.0 -shadow_item_cull_mask = 1 [node name="light2" type="Light2D" parent="."] - position = Vector2( 196.528, 185.139 ) -enabled = true -editor_only = false texture = ExtResource( 2 ) -offset = Vector2( 0, 0 ) -texture_scale = 1.0 -color = Color( 1, 1, 1, 1 ) -energy = 1.0 mode = 2 -range_height = 0.0 -range_z_min = -1024 -range_z_max = 1024 -range_layer_min = 0 -range_layer_max = 0 -range_item_cull_mask = 1 -shadow_enabled = false -shadow_color = Color( 0, 0, 0, 0 ) -shadow_buffer_size = 2048 -shadow_gradient_length = 0.0 -shadow_filter = 0 -shadow_filter_smooth = 0.0 -shadow_item_cull_mask = 1 [node name="light3" type="Light2D" parent="."] - position = Vector2( 442.528, 411.139 ) -enabled = true -editor_only = false texture = ExtResource( 2 ) -offset = Vector2( 0, 0 ) -texture_scale = 1.0 -color = Color( 1, 1, 1, 1 ) -energy = 1.0 mode = 2 -range_height = 0.0 -range_z_min = -1024 -range_z_max = 1024 -range_layer_min = 0 -range_layer_max = 0 -range_item_cull_mask = 1 -shadow_enabled = false -shadow_color = Color( 0, 0, 0, 0 ) -shadow_buffer_size = 2048 -shadow_gradient_length = 0.0 -shadow_filter = 0 -shadow_filter_smooth = 0.0 -shadow_item_cull_mask = 1 [node name="anim" type="AnimationPlayer" parent="."] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") -anims/maskmotion = SubResource( 2 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] autoplay = "maskmotion" - +anims/maskmotion = SubResource( 2 ) diff --git a/2d/light2d_as_mask/project.godot b/2d/light2d_as_mask/project.godot index b15ecf4a..f978eed3 100644 --- a/2d/light2d_as_mask/project.godot +++ b/2d/light2d_as_mask/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/light2d_as_mask/splat.png.import b/2d/light2d_as_mask/splat.png.import index e895270d..662272a2 100644 --- a/2d/light2d_as_mask/splat.png.import +++ b/2d/light2d_as_mask/splat.png.import @@ -7,16 +7,14 @@ path="res://.import/splat.png-a41a35966004eec2e8a20d517d1ec4bb.stex" [deps] source_file="res://splat.png" -source_md5="2ac066f1b78091c74d758bb6afafff98" - dest_files=[ "res://.import/splat.png-a41a35966004eec2e8a20d517d1ec4bb.stex" ] -dest_md5="b136a1944158048a2afca2127eb1393f" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/lights_and_shadows/light_shadows.tscn b/2d/lights_and_shadows/light_shadows.tscn index 91c80865..40f1619c 100644 --- a/2d/lights_and_shadows/light_shadows.tscn +++ b/2d/lights_and_shadows/light_shadows.tscn @@ -6,27 +6,20 @@ [ext_resource path="res://spot.png" type="Texture" id=4] [sub_resource type="OccluderPolygon2D" id=1] - -closed = true -cull_mode = 0 polygon = PoolVector2Array( -15.913, -15.9738, 15.9079, -16.0785, 15.6986, 15.847, -16.1223, 15.9517 ) [sub_resource type="CanvasItemMaterial" id=2] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="Animation" id=3] - length = 16.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 4, 8, 12 ), "transitions": PoolRealArray( -2, -2, -2, -2 ), @@ -35,15 +28,14 @@ tracks/0/keys = { } [sub_resource type="Animation" id=4] - length = 16.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 4.1, 8.1, 11.8 ), "transitions": PoolRealArray( -2, -2, -2, -2 ), @@ -52,27 +44,20 @@ tracks/0/keys = { } [sub_resource type="CanvasItemMaterial" id=5] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="CanvasItemMaterial" id=6] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="Animation" id=7] - length = 16.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 4.1, 7.9, 12.1 ), "transitions": PoolRealArray( -2, -2, -2, -2 ), @@ -83,11 +68,9 @@ tracks/0/keys = { [node name="base" type="Node2D"] [node name="ambient" type="CanvasModulate" parent="."] - color = Color( 0.27451, 0.27451, 0.27451, 1 ) [node name="bg" type="Sprite" parent="."] - position = Vector2( 401.251, 301.906 ) scale = Vector2( 6.39454, 4.82665 ) texture = ExtResource( 1 ) @@ -95,280 +78,162 @@ texture = ExtResource( 1 ) [node name="casters" type="Node2D" parent="."] [node name="shadow_caster" type="Sprite" parent="casters"] - position = Vector2( 95.2909, 85.3186 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster1" type="Sprite" parent="casters"] - position = Vector2( 200.291, 313.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster1"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster2" type="Sprite" parent="casters"] - position = Vector2( 76.2909, 405.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster2"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster3" type="Sprite" parent="casters"] - position = Vector2( 348.291, 206.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster3"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster4" type="Sprite" parent="casters"] - position = Vector2( 239.291, 48.3186 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster4"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster5" type="Sprite" parent="casters"] - position = Vector2( 140.291, 561.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster5"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster6" type="Sprite" parent="casters"] - position = Vector2( 392.291, 499.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster6"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster7" type="Sprite" parent="casters"] - position = Vector2( 735.291, 552.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster7"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster8" type="Sprite" parent="casters"] - position = Vector2( 661.291, 371.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster8"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster9" type="Sprite" parent="casters"] - position = Vector2( 567.291, 574.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster9"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster10" type="Sprite" parent="casters"] - position = Vector2( 420.291, 350.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster10"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster11" type="Sprite" parent="casters"] - position = Vector2( 463.291, 106.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster11"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster12" type="Sprite" parent="casters"] - position = Vector2( 621.291, 78.3186 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster12"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster13" type="Sprite" parent="casters"] - position = Vector2( 761.291, 240.319 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster13"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="shadow_caster14" type="Sprite" parent="casters"] - position = Vector2( 771.291, 29.3186 ) texture = ExtResource( 2 ) [node name="occluder" type="LightOccluder2D" parent="casters/shadow_caster14"] - occluder = SubResource( 1 ) -light_mask = 1 [node name="red_light" type="Light2D" parent="."] - position = Vector2( 159.289, 452.441 ) -enabled = true -editor_only = false texture = ExtResource( 3 ) -offset = Vector2( 0, 0 ) -texture_scale = 1.0 color = Color( 1, 0.446392, 0.0576646, 1 ) -energy = 1.0 -mode = 0 -range_height = 0.0 -range_z_min = -1024 -range_z_max = 1024 -range_layer_min = 0 -range_layer_max = 0 -range_item_cull_mask = 1 shadow_enabled = true -shadow_color = Color( 0, 0, 0, 0 ) -shadow_buffer_size = 2048 shadow_gradient_length = 1.3 shadow_filter = 3 shadow_filter_smooth = 11.1 -shadow_item_cull_mask = 1 [node name="blob" type="Sprite" parent="red_light"] - material = SubResource( 2 ) texture = ExtResource( 4 ) [node name="anim" type="AnimationPlayer" parent="red_light"] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") +autoplay = "motion" anims/motion = SubResource( 3 ) anims/motion2 = SubResource( 4 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] -autoplay = "motion" [node name="green_light" type="Light2D" parent="."] - position = Vector2( 753.756, 314.336 ) -enabled = true -editor_only = false texture = ExtResource( 3 ) -offset = Vector2( 0, 0 ) -texture_scale = 1.0 color = Color( 0.49247, 0.878537, 0.409146, 1 ) -energy = 1.0 -mode = 0 -range_height = 0.0 -range_z_min = -1024 -range_z_max = 1024 -range_layer_min = 0 -range_layer_max = 0 -range_item_cull_mask = 1 shadow_enabled = true -shadow_color = Color( 0, 0, 0, 0 ) -shadow_buffer_size = 2048 shadow_gradient_length = 1.2 shadow_filter = 3 shadow_filter_smooth = 7.1 -shadow_item_cull_mask = 1 [node name="blob" type="Sprite" parent="green_light"] - material = SubResource( 5 ) texture = ExtResource( 4 ) [node name="anim" type="AnimationPlayer" parent="green_light"] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") +autoplay = "m2" anims/m2 = SubResource( 4 ) anims/motion = SubResource( 3 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] -autoplay = "m2" [node name="blue_light" type="Light2D" parent="."] - position = Vector2( 692.078, 29.8849 ) -enabled = true -editor_only = false texture = ExtResource( 3 ) -offset = Vector2( 0, 0 ) -texture_scale = 1.0 color = Color( 0.396752, 0.446392, 0.929792, 1 ) -energy = 1.0 -mode = 0 -range_height = 0.0 -range_z_min = -1024 -range_z_max = 1024 -range_layer_min = 0 -range_layer_max = 0 -range_item_cull_mask = 1 shadow_enabled = true -shadow_color = Color( 0, 0, 0, 0 ) -shadow_buffer_size = 2048 shadow_gradient_length = 1.4 shadow_filter = 3 shadow_filter_smooth = 5.3 -shadow_item_cull_mask = 1 [node name="blob" type="Sprite" parent="blue_light"] - material = SubResource( 6 ) texture = ExtResource( 4 ) [node name="anim" type="AnimationPlayer" parent="blue_light"] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") +autoplay = "motion3" anims/motion = SubResource( 3 ) anims/motion2 = SubResource( 4 ) anims/motion3 = SubResource( 7 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] -autoplay = "motion3" - diff --git a/2d/lights_and_shadows/project.godot b/2d/lights_and_shadows/project.godot index 9c82c318..0c1fb968 100644 --- a/2d/lights_and_shadows/project.godot +++ b/2d/lights_and_shadows/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/navigation/character.png.import b/2d/navigation/character.png.import index 6fcc7124..4b481cae 100644 --- a/2d/navigation/character.png.import +++ b/2d/navigation/character.png.import @@ -7,16 +7,14 @@ path="res://.import/character.png-7a996d3b758d22c506b76a7c15391284.stex" [deps] source_file="res://character.png" -source_md5="c7937b15f89b021d3c888c677b1e1677" - dest_files=[ "res://.import/character.png-7a996d3b758d22c506b76a7c15391284.stex" ] -dest_md5="fd0675f788288554927ef3a6c9686573" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/navigation/icon.png.import b/2d/navigation/icon.png.import index e115715b..45ee6af7 100644 --- a/2d/navigation/icon.png.import +++ b/2d/navigation/icon.png.import @@ -7,16 +7,14 @@ path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" [deps] source_file="res://icon.png" -source_md5="19e03eec58b7d3b8a24db28867a39190" - dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] -dest_md5="5110b1b86f59a6a195f89ab36ee328a6" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/navigation/level.tscn b/2d/navigation/level.tscn index 9ece01ec..f6882a6d 100644 --- a/2d/navigation/level.tscn +++ b/2d/navigation/level.tscn @@ -5,31 +5,23 @@ [ext_resource path="res://character.png" type="Texture" id=3] [sub_resource type="NavigationPolygon" id=1] - vertices = PoolVector2Array( 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 = [ PoolIntArray( 0, 1, 2, 3 ), PoolIntArray( 4, 5, 6 ), PoolIntArray( 7, 8, 9 ), PoolIntArray( 10, 11, 12, 13, 14 ), PoolIntArray( 15, 16, 17, 18, 19, 20 ), PoolIntArray( 21, 3, 2, 22, 23 ), PoolIntArray( 24, 25, 26, 27, 28 ), PoolIntArray( 25, 24, 29 ), PoolIntArray( 30, 25, 29, 31 ), PoolIntArray( 32, 33, 34, 35, 36 ), PoolIntArray( 37, 38, 39, 40 ), PoolIntArray( 41, 37, 40 ), PoolIntArray( 41, 40, 42, 43 ), PoolIntArray( 44, 45, 30, 31 ), PoolIntArray( 46, 12, 11, 7, 47 ), PoolIntArray( 47, 7, 9 ), PoolIntArray( 48, 10, 14, 49 ), PoolIntArray( 50, 6, 5, 51, 48 ), PoolIntArray( 52, 50, 48, 49 ), PoolIntArray( 53, 52, 49, 54, 55 ), PoolIntArray( 17, 56, 57, 58, 18 ), PoolIntArray( 59, 60, 61, 62, 63 ), PoolIntArray( 64, 65, 61, 66 ), PoolIntArray( 66, 61, 60, 67, 68 ), PoolIntArray( 68, 67, 69, 70 ), PoolIntArray( 68, 70, 35, 34 ), PoolIntArray( 71, 53, 55, 72 ), PoolIntArray( 71, 72, 73, 74 ), PoolIntArray( 4, 6, 75, 76 ), PoolIntArray( 63, 77, 74, 59 ), PoolIntArray( 78, 2, 1, 76, 75, 79, 80 ), PoolIntArray( 78, 80, 63, 62 ), PoolIntArray( 81, 59, 74, 73 ), PoolIntArray( 81, 73, 41, 82 ), PoolIntArray( 44, 31, 83, 84, 85 ), PoolIntArray( 18, 86, 47, 9, 19 ), PoolIntArray( 15, 20, 3, 21 ), PoolIntArray( 23, 22, 87, 88 ), PoolIntArray( 89, 28, 27, 90, 91 ), PoolIntArray( 89, 91, 92, 93 ), PoolIntArray( 36, 94, 95, 93, 92 ), PoolIntArray( 36, 92, 88 ), PoolIntArray( 36, 88, 87, 32 ), PoolIntArray( 36, 35, 85, 84 ), PoolIntArray( 42, 44, 85, 96 ), PoolIntArray( 42, 96, 43 ), PoolIntArray( 41, 43, 82 ) ] outlines = [ PoolVector2Array( 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 ), PoolVector2Array( 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 ), PoolVector2Array( 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 ), PoolVector2Array( 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 ), PoolVector2Array( 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 ), PoolVector2Array( 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 ) ] -[node name="Navigation2D" type="Navigation2D" index="0"] - +[node name="Navigation2D" type="Navigation2D"] script = ExtResource( 1 ) -CHARACTER_SPEED = 400.0 - -[node name="Navmesh" type="NavigationPolygonInstance" parent="." index="0"] +[node name="Navmesh" type="NavigationPolygonInstance" parent="."] navpoly = SubResource( 1 ) -enabled = true - -[node name="Map" type="Sprite" parent="." index="1"] +[node name="Map" type="Sprite" parent="."] position = Vector2( 429.585, 287.32 ) texture = ExtResource( 2 ) -[node name="Character" type="Sprite" parent="." index="2"] - +[node name="Character" type="Sprite" parent="."] position = Vector2( 228.464, 132.594 ) scale = Vector2( 0.5, 0.5 ) texture = ExtResource( 3 ) offset = Vector2( 0, -26 ) - diff --git a/2d/navigation/map.png.import b/2d/navigation/map.png.import index 7a1dd135..dabf57ba 100644 --- a/2d/navigation/map.png.import +++ b/2d/navigation/map.png.import @@ -7,16 +7,14 @@ path="res://.import/map.png-9eea34967fae34f4388f4a32a16da936.stex" [deps] source_file="res://map.png" -source_md5="e72fbffb80ea739cf373a488a6d0ab27" - dest_files=[ "res://.import/map.png-9eea34967fae34f4388f4a32a16da936.stex" ] -dest_md5="9b012237e342f634293969fed09b3966" [params] compress/mode=0 compress/lossy_quality=0.7 compress/hdr_mode=0 +compress/bptc_ldr=0 compress/normal_map=0 flags/repeat=0 flags/filter=true @@ -26,6 +24,7 @@ flags/srgb=2 process/fix_alpha_border=true process/premult_alpha=false process/HDR_as_SRGB=false +process/invert_color=false stream=false size_limit=0 detect_3d=true diff --git a/2d/navigation/navigation.gd b/2d/navigation/navigation.gd index 8c719fba..11bfcae4 100644 --- a/2d/navigation/navigation.gd +++ b/2d/navigation/navigation.gd @@ -29,7 +29,7 @@ func _process(delta): func move_along_path(distance): var last_point = $Character.position - for index in range(path.size()): + for _index in range(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 and distance >= 0.0: diff --git a/2d/navigation/project.godot b/2d/navigation/project.godot index 73a4dfc8..f1547bbf 100644 --- a/2d/navigation/project.godot +++ b/2d/navigation/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -26,5 +31,8 @@ singletons=[ ] [input] -click=[ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) +click={ +"deadzone": 0.5, +"events": [ Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"button_mask":0,"position":Vector2( 0, 0 ),"global_position":Vector2( 0, 0 ),"factor":1.0,"button_index":1,"pressed":false,"doubleclick":false,"script":null) ] +} diff --git a/2d/navigation_astar/character.gd b/2d/navigation_astar/character.gd index 94b7a4bf..e1d4e951 100644 --- a/2d/navigation_astar/character.gd +++ b/2d/navigation_astar/character.gd @@ -27,7 +27,7 @@ func _change_state(new_state): _state = new_state -func _process(delta): +func _process(_delta): if not _state == STATES.FOLLOW: return var arrived_to_next_point = move_to(target_point_world) diff --git a/2d/navigation_astar/default_env.tres b/2d/navigation_astar/default_env.tres index 970e2f27..4b7cb0ac 100644 --- a/2d/navigation_astar/default_env.tres +++ b/2d/navigation_astar/default_env.tres @@ -1,7 +1,6 @@ [gd_resource type="Environment" load_steps=2 format=2] [sub_resource type="ProceduralSky" id=1] - sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) sky_curve = 0.25 @@ -10,7 +9,6 @@ ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) ground_curve = 0.01 [resource] - background_mode = 2 background_sky = SubResource( 1 ) diff --git a/2d/navigation_astar/tileset/tileset_source.tscn b/2d/navigation_astar/tileset/tileset_source.tscn index 931ba7c4..1a9ee15b 100644 --- a/2d/navigation_astar/tileset/tileset_source.tscn +++ b/2d/navigation_astar/tileset/tileset_source.tscn @@ -4,21 +4,17 @@ [ext_resource path="res://sprites/path_start.png" type="Texture" id=2] [ext_resource path="res://sprites/path_end.png" type="Texture" id=3] -[node name="Node2D" type="Node2D" index="0"] - -[node name="Obstacle" type="Sprite" parent="." index="0"] +[node name="Node2D" type="Node2D"] +[node name="Obstacle" type="Sprite" parent="."] position = Vector2( 32, 32 ) texture = ExtResource( 1 ) -[node name="PathStart" type="Sprite" parent="." index="1"] - +[node name="PathStart" type="Sprite" parent="."] position = Vector2( 112, 32 ) texture = ExtResource( 2 ) -[node name="PathEnd" type="Sprite" parent="." index="2"] - +[node name="PathEnd" type="Sprite" parent="."] position = Vector2( 192, 32 ) texture = ExtResource( 3 ) - diff --git a/2d/particles/particles.tscn b/2d/particles/particles.tscn index a08a1630..4fab754f 100644 --- a/2d/particles/particles.tscn +++ b/2d/particles/particles.tscn @@ -1,608 +1,254 @@ -[gd_scene load_steps=38 format=2] +[gd_scene load_steps=35 format=2] [ext_resource path="res://fire_particle.png" type="Texture" id=1] [ext_resource path="res://smoke_particle.png" type="Texture" id=2] [ext_resource path="res://spark_particle2.png" type="Texture" id=3] [ext_resource path="res://point_texture_emit.tres" type="Texture" id=4] -[ext_resource path="res://point_texture_image_outline.tres" type="Image" id=5] -[ext_resource path="res://point_normal_texture_image_outline.tres" type="Image" id=6] +[ext_resource path="res://point_texture_image_outline.tres" type="Texture" id=5] +[ext_resource path="res://point_normal_texture_image_outline.tres" type="Texture" id=6] [sub_resource type="CanvasItemMaterial" id=1] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="Curve" id=2] - min_value = -360.0 max_value = 360.0 -bake_resolution = 100 _data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 85.0781 ), 0.0, 0.0, 0, 0 ] [sub_resource type="CurveTexture" id=3] - -width = 2048 curve = SubResource( 2 ) [sub_resource type="Curve" id=4] - -min_value = 0.0 -max_value = 1.0 -bake_resolution = 100 _data = [ Vector2( 0, 1 ), 0.0, 0.0, 0, 0, Vector2( 1, 0.295898 ), 0.0, 0.0, 0, 0 ] [sub_resource type="CurveTexture" id=5] - -width = 2048 curve = SubResource( 4 ) [sub_resource type="ParticlesMaterial" id=6] - -render_priority = 0 -trail_divisor = 1 emission_shape = 1 emission_sphere_radius = 8.0 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, -26, 0 ) -initial_velocity = 0.0 -initial_velocity_random = 0.0 -angular_velocity = 0.0 -angular_velocity_random = 0.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 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 damping = 2.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 scale = 0.8 scale_random = 0.3 scale_curve = SubResource( 5 ) color = Color( 0.859375, 0.180278, 0.0469971, 1 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -_sections_unfolded = [ "Color" ] [sub_resource type="Gradient" id=7] - -offsets = PoolRealArray( 0, 1 ) colors = PoolColorArray( 1, 1, 1, 0.806627, 1, 1, 1, 0 ) [sub_resource type="GradientTexture" id=8] - gradient = SubResource( 7 ) -width = 2048 [sub_resource type="ParticlesMaterial" id=9] - -render_priority = 0 -trail_divisor = 1 emission_shape = 1 emission_sphere_radius = 30.0 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 0, 0 ) initial_velocity = 1.0 -initial_velocity_random = 0.0 angular_velocity = 20.0 angular_velocity_random = 1.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 radial_accel = 50.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 damping = 20.0 damping_random = 0.2 angle = 360.0 angle_random = 1.0 -scale = 1.0 -scale_random = 0.0 color_ramp = SubResource( 8 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false [sub_resource type="CanvasItemMaterial" id=10] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="Gradient" id=11] - offsets = PoolRealArray( 0, 0.0769231, 0.16568, 0.266272, 0.378698, 0.491124, 0.609467, 0.704142, 0.804734, 0.911243, 1 ) colors = PoolColorArray( 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=12] - gradient = SubResource( 11 ) -width = 2048 [sub_resource type="Curve" id=13] - -min_value = 0.0 -max_value = 1.0 -bake_resolution = 100 _data = [ Vector2( 0, 0.510742 ), 0.0, 0.0, 0, 0, Vector2( 1, 1 ), 0.0, 0.0, 0, 0 ] [sub_resource type="CurveTexture" id=14] - -width = 2048 curve = SubResource( 13 ) [sub_resource type="Curve" id=15] - -min_value = 0.0 -max_value = 1.0 -bake_resolution = 100 _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=16] - -width = 2048 curve = SubResource( 15 ) [sub_resource type="ParticlesMaterial" id=17] - -render_priority = 0 trail_divisor = 32 trail_size_modifier = SubResource( 16 ) emission_shape = 1 emission_sphere_radius = 4.0 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 0, 0 ) initial_velocity = 1.0 -initial_velocity_random = 0.0 angular_velocity = 100.0 -angular_velocity_random = 0.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 tangential_accel = 100.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 angle = 360.0 angle_random = 1.0 scale = 3.0 -scale_random = 0.0 scale_curve = SubResource( 14 ) color_ramp = SubResource( 12 ) hue_variation = 1.0 hue_variation_random = 1.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false [sub_resource type="CanvasItemMaterial" id=18] - -render_priority = 0 blend_mode = 1 -light_mode = 0 [sub_resource type="Gradient" id=19] - offsets = PoolRealArray( 0, 0.171598, 0.301775, 0.390533, 1 ) colors = PoolColorArray( 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=20] - gradient = SubResource( 19 ) -width = 2048 [sub_resource type="Curve" id=21] - -min_value = 0.0 max_value = 50.0 -bake_resolution = 100 _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 ] [sub_resource type="CurveTexture" id=22] - -width = 2048 curve = SubResource( 21 ) [sub_resource type="Curve" id=23] - -min_value = 0.0 max_value = 2.0 -bake_resolution = 100 _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 ] [sub_resource type="CurveTexture" id=24] - -width = 2048 curve = SubResource( 23 ) [sub_resource type="ParticlesMaterial" id=25] - -render_priority = 0 -trail_divisor = 1 emission_shape = 2 emission_box_extents = Vector3( 10, 10, 40 ) -flag_align_y = false flag_rotate_y = true flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 0, 0 ) initial_velocity = 1.0 -initial_velocity_random = 0.0 angular_velocity = 26.0 -angular_velocity_random = 0.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 radial_accel = 1.0 radial_accel_random = 0.3 radial_accel_curve = SubResource( 22 ) -tangential_accel = 0.0 -tangential_accel_random = 0.0 damping = 10.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 -scale = 1.0 -scale_random = 0.0 scale_curve = SubResource( 24 ) color_ramp = SubResource( 20 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -[sub_resource type="ParticlesMaterial" id=28] - -render_priority = 0 -trail_divisor = 1 +[sub_resource type="ParticlesMaterial" id=26] emission_shape = 3 emission_point_texture = ExtResource( 4 ) emission_point_count = 10554 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 0, 0 ) initial_velocity = 1.0 -initial_velocity_random = 0.0 angular_velocity = 1.47136e-43 -angular_velocity_random = 0.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 scale = 0.5 scale_random = 1.0 color = Color( 1, 0.550781, 0.550781, 1 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -_sections_unfolded = [ "Emission Shape" ] -[sub_resource type="ImageTexture" id=52] - -flags = 0 -image = ExtResource( 5 ) -size = Vector2( 2048, 1 ) -storage = 0 -lossy_quality = 0.7 - -[sub_resource type="ParticlesMaterial" id=31] - -render_priority = 0 -trail_divisor = 1 +[sub_resource type="ParticlesMaterial" id=27] emission_shape = 3 -emission_point_texture = SubResource( 52 ) +emission_point_texture = ExtResource( 5 ) emission_point_count = 1288 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 0, 0 ) initial_velocity = 1.0 -initial_velocity_random = 0.0 angular_velocity = 1.47136e-43 -angular_velocity_random = 0.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 scale = 0.5 scale_random = 1.0 color = Color( 0.375, 0.692383, 1, 1 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -_sections_unfolded = [ "Emission Shape" ] -[sub_resource type="ImageTexture" id=54] - -flags = 0 -image = ExtResource( 6 ) -size = Vector2( 2048, 1 ) -storage = 0 -lossy_quality = 0.7 - -[sub_resource type="ImageTexture" id=56] - -flags = 0 -image = ExtResource( 5 ) -size = Vector2( 2048, 1 ) -storage = 0 -lossy_quality = 0.7 - -[sub_resource type="ParticlesMaterial" id=36] - -render_priority = 0 -trail_divisor = 1 +[sub_resource type="ParticlesMaterial" id=28] emission_shape = 4 -emission_point_texture = SubResource( 56 ) -emission_normal_texture = SubResource( 54 ) +emission_point_texture = ExtResource( 5 ) +emission_normal_texture = ExtResource( 6 ) emission_point_count = 1288 -flag_align_y = false -flag_rotate_y = false flag_disable_z = true -spread = 45.0 -flatness = 0.0 gravity = Vector3( 0, 0, 0 ) initial_velocity = 20.0 -initial_velocity_random = 0.0 angular_velocity = 1.47136e-43 -angular_velocity_random = 0.0 orbit_velocity = 0.0 orbit_velocity_random = 0.0 -linear_accel = 0.0 -linear_accel_random = 0.0 -radial_accel = 0.0 -radial_accel_random = 0.0 -tangential_accel = 0.0 -tangential_accel_random = 0.0 -damping = 0.0 -damping_random = 0.0 -angle = 0.0 -angle_random = 0.0 scale = 0.5 scale_random = 1.0 color = Color( 0.214844, 1, 0.392731, 1 ) -hue_variation = 0.0 -hue_variation_random = 0.0 -anim_speed = 0.0 -anim_speed_random = 0.0 -anim_offset = 0.0 -anim_offset_random = 0.0 -anim_loop = false -_sections_unfolded = [ "Emission Shape" ] -[node name="Node" type="Node" index="0"] - -[node name="Fire" type="Particles2D" parent="." index="0"] +[node name="Node" type="Node"] +[node name="Fire" type="Particles2D" parent="."] material = SubResource( 1 ) position = Vector2( 122, 502 ) -emitting = true amount = 32 -lifetime = 1.0 -one_shot = false preprocess = 0.1 -speed_scale = 1.0 -explosiveness = 0.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) -local_coords = true -draw_order = 0 process_material = SubResource( 6 ) texture = ExtResource( 1 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Material", "Process Material" ] - -[node name="Smoke" type="Particles2D" parent="." index="1"] +[node name="Smoke" type="Particles2D" parent="."] position = Vector2( 362, 502 ) -emitting = true amount = 32 lifetime = 2.0 -one_shot = false preprocess = 0.1 -speed_scale = 1.0 -explosiveness = 0.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) -local_coords = true -draw_order = 0 process_material = SubResource( 9 ) texture = ExtResource( 2 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Material" ] - -[node name="Magic" type="Particles2D" parent="." index="2"] +[node name="Magic" type="Particles2D" parent="."] material = SubResource( 10 ) position = Vector2( 620, 440 ) -emitting = true amount = 64 lifetime = 2.0 -one_shot = false preprocess = 0.1 -speed_scale = 1.0 -explosiveness = 0.0 randomness = 1.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) -local_coords = true -draw_order = 0 process_material = SubResource( 17 ) texture = ExtResource( 3 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Textures" ] - -[node name="Explosion" type="Particles2D" parent="." index="3"] +[node name="Explosion" type="Particles2D" parent="."] material = SubResource( 18 ) position = Vector2( 613.467, 182.62 ) rotation = 3.13794 -emitting = true amount = 16 lifetime = 2.0 -one_shot = false -preprocess = 0.0 -speed_scale = 1.0 explosiveness = 1.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( -100, -100, 200, 200 ) -local_coords = true -draw_order = 0 process_material = SubResource( 25 ) texture = ExtResource( 2 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Textures" ] - -[node name="Emit_Mask" type="Particles2D" parent="." index="4"] +[node name="Emit_Mask" type="Particles2D" parent="."] position = Vector2( 42, -68 ) -emitting = true amount = 180 lifetime = 0.2 -one_shot = false -preprocess = 0.0 -speed_scale = 1.0 -explosiveness = 0.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 ) -local_coords = true -draw_order = 0 +process_material = SubResource( 26 ) +texture = ExtResource( 3 ) + +[node name="Outline_Mask" type="Particles2D" parent="."] +position = Vector2( 42, 52 ) +amount = 180 +lifetime = 0.2 +visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 ) +process_material = SubResource( 27 ) +texture = ExtResource( 3 ) + +[node name="Direction_Mask" type="Particles2D" parent="."] +position = Vector2( 40, 180 ) +amount = 180 +lifetime = 0.2 +visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 ) process_material = SubResource( 28 ) texture = ExtResource( 3 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Process Material", "Textures" ] - -[node name="Outline_Mask" type="Particles2D" parent="." index="5"] - -position = Vector2( 42, 52 ) -emitting = true -amount = 180 -lifetime = 0.2 -one_shot = false -preprocess = 0.0 -speed_scale = 1.0 -explosiveness = 0.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 ) -local_coords = true -draw_order = 0 -process_material = SubResource( 31 ) -texture = ExtResource( 3 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Process Material", "Textures" ] - -[node name="Direction_Mask" type="Particles2D" parent="." index="6"] - -position = Vector2( 40, 180 ) -emitting = true -amount = 180 -lifetime = 0.2 -one_shot = false -preprocess = 0.0 -speed_scale = 1.0 -explosiveness = 0.0 -randomness = 0.0 -fixed_fps = 0 -fract_delta = true -visibility_rect = Rect2( 26.0055, 90.0015, 199.176, 95.0445 ) -local_coords = true -draw_order = 0 -process_material = SubResource( 36 ) -texture = ExtResource( 3 ) -normal_map = null -h_frames = 1 -v_frames = 1 -_sections_unfolded = [ "Process Material", "Textures" ] - diff --git a/2d/particles/point_normal_texture_image_outline.tres b/2d/particles/point_normal_texture_image_outline.tres index 6dc5bd06..290a4c73 100644 --- a/2d/particles/point_normal_texture_image_outline.tres +++ b/2d/particles/point_normal_texture_image_outline.tres @@ -1,7 +1,6 @@ -[gd_resource type="Image" format=2] - -[resource] +[gd_resource type="ImageTexture" load_steps=2 format=2] +[sub_resource type="Image" id=1] data = { "data": PoolByteArray( 243, 4, 53, 191, 243, 4, 53, 191, 5, 238, 108, 191, 251, 232, 193, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 98, 227, 108, 191, 247, 28, 194, 62, 145, 189, 94, 191, 193, 94, 252, 190, 226, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 5, 238, 108, 191, 251, 232, 193, 62, 243, 4, 53, 191, 243, 4, 53, 63, 251, 232, 193, 190, 5, 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, 244, 4, 53, 191, 244, 4, 53, 191, 251, 232, 193, 190, 5, 238, 108, 63, 14, 82, 136, 50, 0, 0, 128, 191, 187, 166, 223, 190, 224, 72, 102, 63, 248, 28, 194, 190, 99, 227, 108, 63, 8, 157, 132, 190, 139, 67, 119, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 222, 32, 7, 190, 226, 194, 125, 63, 201, 37, 122, 190, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 53, 187, 131, 190, 185, 97, 119, 191, 9, 165, 146, 190, 102, 70, 117, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 222, 32, 7, 190, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 225, 158, 0, 190, 247, 248, 125, 63, 224, 158, 0, 190, 247, 248, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 167, 193, 190, 82, 251, 108, 63, 201, 37, 122, 190, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 227, 113, 23, 191, 20, 102, 78, 63, 7, 59, 27, 191, 31, 145, 75, 63, 193, 94, 252, 190, 145, 189, 94, 191, 177, 171, 227, 190, 65, 76, 101, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 191, 243, 4, 53, 63, 242, 4, 53, 191, 243, 4, 53, 63, 54, 169, 30, 191, 150, 231, 72, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 191, 243, 4, 53, 63, 29, 145, 75, 191, 7, 59, 27, 63, 78, 191, 75, 191, 99, 254, 26, 191, 150, 231, 72, 191, 54, 169, 30, 191, 244, 4, 53, 191, 244, 4, 53, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 20, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 98, 227, 108, 191, 247, 28, 194, 62, 145, 189, 94, 191, 193, 94, 252, 190, 74, 151, 80, 191, 50, 105, 20, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 65, 76, 101, 191, 179, 171, 227, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 247, 248, 125, 191, 225, 158, 0, 190, 82, 251, 108, 191, 243, 167, 193, 190, 20, 102, 78, 191, 227, 113, 23, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 65, 76, 101, 63, 177, 171, 227, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 126, 62, 120, 63, 202, 37, 122, 190, 211, 127, 93, 63, 235, 89, 0, 191, 244, 4, 53, 63, 244, 4, 53, 191, 244, 4, 53, 63, 244, 4, 53, 63, 211, 127, 93, 63, 235, 89, 0, 63, 126, 62, 120, 63, 202, 37, 122, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 247, 248, 125, 63, 225, 158, 0, 190, 82, 251, 108, 63, 243, 167, 193, 190, 20, 102, 78, 63, 227, 113, 23, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 20, 102, 78, 63, 227, 113, 23, 63, 118, 233, 92, 63, 16, 92, 1, 63, 99, 227, 108, 63, 248, 28, 194, 62, 235, 89, 0, 63, 211, 127, 93, 191, 235, 89, 0, 63, 211, 127, 93, 63, 145, 189, 94, 63, 193, 94, 252, 190, 74, 151, 80, 63, 50, 105, 20, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 31, 145, 75, 63, 7, 59, 27, 63, 202, 37, 122, 62, 126, 62, 120, 191, 202, 37, 122, 62, 126, 62, 120, 63, 78, 191, 75, 63, 99, 254, 26, 191, 150, 231, 72, 63, 54, 169, 30, 191, 244, 4, 53, 63, 244, 4, 53, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 54, 169, 30, 63, 150, 231, 72, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 227, 113, 23, 63, 20, 102, 78, 63, 7, 59, 27, 63, 31, 145, 75, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 193, 94, 252, 62, 145, 189, 94, 191, 179, 171, 227, 62, 65, 76, 101, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 167, 193, 62, 82, 251, 108, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 202, 37, 122, 62, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 225, 158, 0, 62, 247, 248, 125, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 225, 158, 0, 62, 247, 248, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 222, 32, 7, 62, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 53, 187, 131, 62, 185, 97, 119, 191, 9, 165, 146, 62, 102, 70, 117, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 221, 32, 7, 62, 226, 194, 125, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 202, 37, 122, 62, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 187, 166, 223, 62, 224, 72, 102, 63, 248, 28, 194, 62, 98, 227, 108, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 7, 157, 132, 62, 139, 67, 119, 191, 0, 0, 0, 0, 0, 0, 128, 63, 251, 232, 193, 62, 5, 238, 108, 191, 224, 72, 102, 63, 187, 166, 223, 62, 243, 4, 53, 63, 243, 4, 53, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 193, 94, 252, 62, 145, 189, 94, 191, 244, 4, 53, 63, 244, 4, 53, 191, 251, 232, 193, 62, 5, 238, 108, 63, 243, 4, 53, 63, 243, 4, 53, 191, 5, 238, 108, 63, 251, 232, 193, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 99, 227, 108, 63, 248, 28, 194, 62, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 145, 189, 94, 63, 193, 94, 252, 190, 226, 194, 125, 63, 221, 32, 7, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 5, 238, 108, 63, 251, 232, 193, 62, 243, 4, 53, 63, 243, 4, 53, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 243, 4, 53, 191, 243, 4, 53, 191, 5, 238, 108, 191, 251, 232, 193, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 98, 227, 108, 191, 247, 28, 194, 62, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 145, 189, 94, 191, 193, 94, 252, 190, 226, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 5, 238, 108, 191, 251, 232, 193, 62, 243, 4, 53, 191, 243, 4, 53, 63, 251, 232, 193, 190, 5, 238, 108, 191, 224, 72, 102, 191, 187, 166, 223, 62, 243, 4, 53, 191, 243, 4, 53, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 193, 94, 252, 190, 145, 189, 94, 191, 244, 4, 53, 191, 244, 4, 53, 191, 251, 232, 193, 190, 5, 238, 108, 63, 14, 82, 136, 50, 0, 0, 128, 191, 187, 166, 223, 190, 224, 72, 102, 63, 248, 28, 194, 190, 99, 227, 108, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 8, 157, 132, 190, 139, 67, 119, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 222, 32, 7, 190, 226, 194, 125, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 201, 37, 122, 190, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 53, 187, 131, 190, 185, 97, 119, 191, 9, 165, 146, 190, 102, 70, 117, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 222, 32, 7, 190, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 225, 158, 0, 190, 247, 248, 125, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 224, 158, 0, 190, 247, 248, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 167, 193, 190, 82, 251, 108, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 201, 37, 122, 190, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 227, 113, 23, 191, 20, 102, 78, 63, 7, 59, 27, 191, 31, 145, 75, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 193, 94, 252, 190, 145, 189, 94, 191, 177, 171, 227, 190, 65, 76, 101, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 191, 243, 4, 53, 63, 242, 4, 53, 191, 243, 4, 53, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 54, 169, 30, 191, 150, 231, 72, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 191, 243, 4, 53, 63, 29, 145, 75, 191, 7, 59, 27, 63, 201, 37, 122, 190, 126, 62, 120, 191, 202, 37, 122, 190, 126, 62, 120, 63, 78, 191, 75, 191, 99, 254, 26, 191, 150, 231, 72, 191, 54, 169, 30, 191, 244, 4, 53, 191, 244, 4, 53, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 20, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 98, 227, 108, 191, 247, 28, 194, 62, 235, 89, 0, 191, 211, 127, 93, 191, 235, 89, 0, 191, 211, 127, 93, 63, 145, 189, 94, 191, 193, 94, 252, 190, 74, 151, 80, 191, 50, 105, 20, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 65, 76, 101, 191, 179, 171, 227, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 126, 62, 120, 191, 201, 37, 122, 190, 211, 127, 93, 191, 235, 89, 0, 191, 244, 4, 53, 191, 244, 4, 53, 191, 244, 4, 53, 191, 244, 4, 53, 63, 211, 127, 93, 191, 235, 89, 0, 63, 125, 62, 120, 191, 202, 37, 122, 62, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 247, 248, 125, 191, 225, 158, 0, 190, 82, 251, 108, 191, 243, 167, 193, 190, 20, 102, 78, 191, 227, 113, 23, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 65, 76, 101, 63, 177, 171, 227, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 247, 248, 125, 63, 225, 158, 0, 190, 82, 251, 108, 63, 243, 167, 193, 190, 20, 102, 78, 63, 227, 113, 23, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 20, 102, 78, 63, 227, 113, 23, 63, 118, 233, 92, 63, 16, 92, 1, 63, 99, 227, 108, 63, 248, 28, 194, 62, 145, 189, 94, 63, 193, 94, 252, 190, 74, 151, 80, 63, 50, 105, 20, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 31, 145, 75, 63, 7, 59, 27, 63, 78, 191, 75, 63, 99, 254, 26, 191, 150, 231, 72, 63, 54, 169, 30, 191, 244, 4, 53, 63, 244, 4, 53, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 63, 54, 169, 30, 63, 150, 231, 72, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 227, 113, 23, 63, 20, 102, 78, 63, 7, 59, 27, 63, 31, 145, 75, 63, 193, 94, 252, 62, 145, 189, 94, 191, 179, 171, 227, 62, 65, 76, 101, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 167, 193, 62, 82, 251, 108, 63, 202, 37, 122, 62, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 225, 158, 0, 62, 247, 248, 125, 63, 225, 158, 0, 62, 247, 248, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 222, 32, 7, 62, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 53, 187, 131, 62, 185, 97, 119, 191, 9, 165, 146, 62, 102, 70, 117, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 221, 32, 7, 62, 226, 194, 125, 63, 202, 37, 122, 62, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 187, 166, 223, 62, 224, 72, 102, 63, 248, 28, 194, 62, 98, 227, 108, 63, 7, 157, 132, 62, 139, 67, 119, 191, 0, 0, 0, 0, 0, 0, 128, 63, 251, 232, 193, 62, 5, 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, 244, 4, 53, 63, 244, 4, 53, 191, 251, 232, 193, 62, 5, 238, 108, 63, 243, 4, 53, 63, 243, 4, 53, 191, 5, 238, 108, 63, 251, 232, 193, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 99, 227, 108, 63, 248, 28, 194, 62, 145, 189, 94, 63, 193, 94, 252, 190, 226, 194, 125, 63, 221, 32, 7, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 5, 238, 108, 63, 251, 232, 193, 62, 243, 4, 53, 63, 243, 4, 53, 63, 243, 4, 53, 191, 243, 4, 53, 191, 5, 238, 108, 191, 251, 232, 193, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 145, 189, 94, 191, 193, 94, 252, 62, 145, 189, 94, 191, 193, 94, 252, 190, 226, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 5, 238, 108, 191, 251, 232, 193, 62, 243, 4, 53, 191, 243, 4, 53, 63, 251, 232, 193, 190, 5, 238, 108, 191, 244, 4, 53, 191, 244, 4, 53, 63, 193, 94, 252, 190, 145, 189, 94, 63, 193, 94, 252, 190, 145, 189, 94, 191, 244, 4, 53, 191, 244, 4, 53, 191, 251, 232, 193, 190, 5, 238, 108, 63, 14, 82, 136, 50, 0, 0, 128, 191, 222, 32, 7, 190, 226, 194, 125, 63, 8, 157, 132, 190, 139, 67, 119, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 225, 158, 0, 190, 247, 248, 125, 63, 201, 37, 122, 190, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 201, 37, 122, 190, 126, 62, 120, 63, 53, 187, 131, 190, 185, 97, 119, 191, 9, 165, 146, 190, 102, 70, 117, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 9, 165, 146, 190, 102, 70, 117, 63, 52, 187, 131, 190, 185, 97, 119, 63, 222, 32, 7, 190, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 222, 32, 7, 190, 226, 194, 125, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 225, 158, 0, 190, 247, 248, 125, 63, 224, 158, 0, 190, 247, 248, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 167, 193, 190, 82, 251, 108, 63, 243, 167, 193, 190, 82, 251, 108, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 227, 113, 23, 191, 20, 102, 78, 63, 7, 59, 27, 191, 31, 145, 75, 63, 7, 59, 27, 191, 31, 145, 75, 191, 227, 113, 23, 191, 20, 102, 78, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 191, 243, 4, 53, 63, 29, 145, 75, 191, 7, 59, 27, 63, 31, 145, 75, 191, 7, 59, 27, 191, 243, 4, 53, 191, 243, 4, 53, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 20, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 98, 227, 108, 191, 247, 28, 194, 62, 98, 227, 108, 191, 247, 28, 194, 190, 118, 233, 92, 191, 16, 92, 1, 191, 20, 102, 78, 191, 227, 113, 23, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 65, 76, 101, 191, 179, 171, 227, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 247, 248, 125, 191, 225, 158, 0, 190, 126, 62, 120, 191, 202, 37, 122, 190, 65, 76, 101, 191, 177, 171, 227, 190, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 65, 76, 101, 63, 177, 171, 227, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 247, 248, 125, 63, 225, 158, 0, 190, 126, 62, 120, 63, 201, 37, 122, 190, 65, 76, 101, 63, 177, 171, 227, 190, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 20, 102, 78, 63, 227, 113, 23, 63, 118, 233, 92, 63, 16, 92, 1, 63, 99, 227, 108, 63, 248, 28, 194, 62, 98, 227, 108, 63, 248, 28, 194, 190, 118, 233, 92, 63, 16, 92, 1, 191, 20, 102, 78, 63, 227, 113, 23, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 4, 53, 63, 243, 4, 53, 63, 31, 145, 75, 63, 7, 59, 27, 63, 31, 145, 75, 63, 7, 59, 27, 191, 243, 4, 53, 63, 243, 4, 53, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 227, 113, 23, 63, 20, 102, 78, 63, 7, 59, 27, 63, 31, 145, 75, 63, 7, 59, 27, 63, 29, 145, 75, 191, 227, 113, 23, 63, 20, 102, 78, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 243, 167, 193, 62, 82, 251, 108, 63, 243, 167, 193, 62, 81, 251, 108, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 225, 158, 0, 62, 247, 248, 125, 63, 225, 158, 0, 62, 247, 248, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 222, 32, 7, 62, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 221, 32, 7, 62, 226, 194, 125, 63, 53, 187, 131, 62, 185, 97, 119, 191, 9, 165, 146, 62, 102, 70, 117, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 9, 165, 146, 62, 102, 70, 117, 63, 53, 187, 131, 62, 185, 97, 119, 63, 202, 37, 122, 62, 126, 62, 120, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 202, 37, 122, 62, 126, 62, 120, 63, 225, 158, 0, 62, 247, 248, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 7, 157, 132, 62, 139, 67, 119, 63, 222, 32, 7, 62, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 251, 232, 193, 62, 5, 238, 108, 191, 244, 4, 53, 63, 244, 4, 53, 63, 193, 94, 252, 62, 145, 189, 94, 63, 193, 94, 252, 62, 145, 189, 94, 191, 244, 4, 53, 63, 244, 4, 53, 191, 251, 232, 193, 62, 5, 238, 108, 63, 243, 4, 53, 63, 243, 4, 53, 191, 5, 238, 108, 63, 251, 232, 193, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 145, 189, 94, 63, 193, 94, 252, 62, 145, 189, 94, 63, 193, 94, 252, 190, 226, 194, 125, 63, 221, 32, 7, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 5, 238, 108, 63, 251, 232, 193, 62, 243, 4, 53, 63, 243, 4, 53, 63, 98, 227, 108, 191, 247, 28, 194, 190, 226, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 185, 97, 119, 191, 52, 187, 131, 62, 98, 227, 108, 191, 247, 28, 194, 190, 226, 194, 125, 191, 221, 32, 7, 190, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 98, 227, 108, 191, 247, 28, 194, 62, 145, 189, 94, 191, 193, 94, 252, 190, 224, 72, 102, 191, 187, 166, 223, 190, 102, 70, 117, 191, 9, 165, 146, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 226, 194, 125, 191, 221, 32, 7, 62, 185, 97, 119, 191, 52, 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, 98, 227, 108, 191, 247, 28, 194, 190, 139, 67, 119, 191, 7, 157, 132, 190, 82, 251, 108, 191, 243, 167, 193, 190, 20, 102, 78, 191, 227, 113, 23, 191, 102, 70, 117, 191, 9, 165, 146, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 185, 97, 119, 191, 52, 187, 131, 62, 54, 41, 94, 191, 191, 103, 254, 190, 118, 233, 92, 191, 16, 92, 1, 191, 20, 102, 78, 191, 227, 113, 23, 191, 20, 102, 78, 191, 227, 113, 23, 63, 117, 233, 92, 191, 16, 92, 1, 63, 54, 41, 94, 191, 191, 103, 254, 62, 76, 191, 75, 191, 99, 254, 26, 191, 224, 72, 102, 191, 187, 166, 223, 190, 102, 70, 117, 191, 9, 165, 146, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 226, 194, 125, 191, 221, 32, 7, 62, 185, 97, 119, 191, 52, 187, 131, 62, 76, 191, 75, 191, 99, 254, 26, 191, 74, 151, 80, 191, 50, 105, 20, 191, 73, 151, 80, 191, 50, 105, 20, 63, 76, 191, 75, 191, 99, 254, 26, 63, 99, 254, 26, 191, 76, 191, 75, 191, 243, 4, 53, 191, 243, 4, 53, 191, 102, 70, 117, 191, 9, 165, 146, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 185, 97, 119, 191, 52, 187, 131, 62, 99, 254, 26, 191, 76, 191, 75, 191, 243, 4, 53, 191, 243, 4, 53, 191, 243, 4, 53, 191, 243, 4, 53, 63, 99, 254, 26, 191, 78, 191, 75, 63, 191, 103, 254, 190, 52, 41, 94, 191, 50, 105, 20, 191, 74, 151, 80, 191, 102, 70, 117, 191, 9, 165, 146, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 226, 194, 125, 191, 221, 32, 7, 62, 185, 97, 119, 191, 52, 187, 131, 62, 191, 103, 254, 190, 52, 41, 94, 191, 50, 105, 20, 191, 74, 151, 80, 191, 50, 105, 20, 191, 74, 151, 80, 63, 191, 103, 254, 190, 54, 41, 94, 63, 251, 232, 193, 190, 5, 238, 108, 191, 102, 70, 117, 191, 9, 165, 146, 62, 126, 62, 120, 191, 202, 37, 122, 62, 247, 248, 125, 191, 226, 158, 0, 62, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 191, 0, 0, 0, 0, 226, 194, 125, 191, 221, 32, 7, 62, 145, 189, 94, 191, 193, 94, 252, 62, 16, 92, 1, 191, 118, 233, 92, 191, 16, 92, 1, 191, 118, 233, 92, 63, 248, 28, 194, 190, 98, 227, 108, 191, 177, 171, 227, 190, 65, 76, 101, 191, 244, 4, 53, 191, 244, 4, 53, 63, 193, 94, 252, 190, 145, 189, 94, 63, 193, 94, 252, 190, 145, 189, 94, 191, 227, 113, 23, 191, 20, 102, 78, 191, 227, 113, 23, 191, 20, 102, 78, 63, 193, 94, 252, 190, 145, 189, 94, 63, 251, 232, 193, 190, 5, 238, 108, 191, 222, 32, 7, 190, 226, 194, 125, 63, 248, 28, 194, 190, 98, 227, 108, 191, 187, 166, 223, 190, 224, 72, 102, 191, 187, 166, 223, 190, 224, 72, 102, 63, 248, 28, 194, 190, 99, 227, 108, 63, 53, 187, 131, 190, 185, 97, 119, 191, 9, 165, 146, 190, 102, 70, 117, 191, 0, 0, 0, 0, 0, 0, 128, 63, 222, 32, 7, 190, 226, 194, 125, 191, 222, 32, 7, 190, 226, 194, 125, 63, 222, 32, 7, 190, 226, 194, 125, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 14, 82, 136, 50, 0, 0, 128, 191, 0, 0, 0, 0, 0, 0, 128, 63, 222, 32, 7, 62, 226, 194, 125, 191, 221, 32, 7, 62, 226, 194, 125, 63, 222, 32, 7, 62, 226, 194, 125, 191, 221, 32, 7, 62, 226, 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, 248, 28, 194, 62, 98, 227, 108, 63, 248, 28, 194, 62, 98, 227, 108, 191, 187, 166, 223, 62, 224, 72, 102, 191, 244, 4, 53, 63, 244, 4, 53, 63, 193, 94, 252, 62, 145, 189, 94, 63, 193, 94, 252, 62, 145, 189, 94, 191, 227, 113, 23, 63, 20, 102, 78, 191, 227, 113, 23, 63, 20, 102, 78, 63, 193, 94, 252, 62, 145, 189, 94, 63, 193, 94, 252, 62, 145, 189, 94, 191, 227, 113, 23, 63, 20, 102, 78, 191, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 145, 189, 94, 63, 193, 94, 252, 62, 16, 92, 1, 63, 117, 233, 92, 191, 16, 92, 1, 63, 118, 233, 92, 63, 16, 92, 1, 63, 117, 233, 92, 191, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 191, 103, 254, 62, 54, 41, 94, 191, 50, 105, 20, 63, 73, 151, 80, 191, 50, 105, 20, 63, 74, 151, 80, 63, 191, 103, 254, 62, 54, 41, 94, 63, 191, 103, 254, 62, 54, 41, 94, 191, 50, 105, 20, 63, 73, 151, 80, 191, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 99, 254, 26, 63, 76, 191, 75, 191, 243, 4, 53, 63, 243, 4, 53, 191, 243, 4, 53, 63, 243, 4, 53, 63, 99, 254, 26, 63, 78, 191, 75, 63, 99, 254, 26, 63, 76, 191, 75, 191, 243, 4, 53, 63, 243, 4, 53, 191, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 139, 67, 119, 63, 7, 157, 132, 62, 185, 97, 119, 63, 52, 187, 131, 62, 78, 191, 75, 63, 99, 254, 26, 191, 74, 151, 80, 63, 50, 105, 20, 191, 74, 151, 80, 63, 50, 105, 20, 63, 76, 191, 75, 63, 99, 254, 26, 63, 243, 4, 53, 63, 242, 4, 53, 191, 243, 4, 53, 63, 243, 4, 53, 191, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 54, 41, 94, 63, 191, 103, 254, 190, 118, 233, 92, 63, 16, 92, 1, 191, 20, 102, 78, 63, 227, 113, 23, 191, 20, 102, 78, 63, 227, 113, 23, 63, 118, 233, 92, 63, 16, 92, 1, 63, 53, 41, 94, 63, 189, 103, 254, 62, 78, 191, 75, 63, 99, 254, 26, 191, 74, 151, 80, 63, 50, 105, 20, 191, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 139, 67, 119, 63, 7, 157, 132, 62, 185, 97, 119, 63, 52, 187, 131, 62, 145, 189, 94, 63, 193, 94, 252, 190, 224, 72, 102, 63, 187, 166, 223, 190, 224, 72, 102, 63, 187, 166, 223, 62, 145, 189, 94, 63, 193, 94, 252, 62, 54, 41, 94, 63, 191, 103, 254, 190, 5, 238, 108, 63, 251, 232, 193, 190, 65, 76, 101, 63, 177, 171, 227, 190, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 247, 248, 125, 63, 225, 158, 0, 62, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 99, 227, 108, 63, 248, 28, 194, 190, 226, 194, 125, 63, 221, 32, 7, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 99, 227, 108, 63, 248, 28, 194, 62, 98, 227, 108, 63, 248, 28, 194, 190, 5, 238, 108, 63, 251, 232, 193, 190, 102, 70, 117, 63, 9, 165, 146, 190, 102, 70, 117, 63, 9, 165, 146, 62, 126, 62, 120, 63, 202, 37, 122, 62, 139, 67, 119, 63, 7, 157, 132, 62, 185, 97, 119, 63, 52, 187, 131, 62, 185, 97, 119, 63, 52, 187, 131, 190, 226, 194, 125, 63, 221, 32, 7, 190, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 0, 0, 128, 63, 14, 82, 8, 50, 226, 194, 125, 63, 221, 32, 7, 62, 185, 97, 119, 63, 52, 187, 131, 62, 144, 254, 41, 6, 0, 0, 0, 0, 160, 47, 42, 6, 0, 0, 0, 0, 80, 97, 42, 6, 0, 0, 0, 0, 96, 146, 42, 6, 0, 0, 0, 0, 144, 195, 42, 6, 0, 0, 0, 0, 112, 137, 44, 6, 0, 0, 0, 0, 240, 209, 44, 6, 0, 0, 0, 0, 224, 134, 45, 6, 0, 0, 0, 0, 144, 231, 45, 6, 0, 0, 0, 0, 96, 138, 47, 6, 0, 0, 0, 0, 16, 174, 47, 6, 0, 0, 0, 0, 160, 28, 47, 6, 0, 0, 0, 0, 80, 214, 47, 6, 0, 0, 0, 0, 64, 58, 48, 6, 0, 0, 0, 0, 176, 184, 48, 6, 0, 0, 0, 0, 16, 198, 48, 6, 0, 0, 0, 0, 208, 210, 48, 6, 0, 0, 0, 0, 0, 235, 48, 6, 0, 0, 0, 0, 176, 27, 49, 6, 0, 0, 0, 0, 64, 145, 49, 6, 0, 0, 0, 0, 32, 204, 49, 6, 0, 0, 0, 0, 16, 20, 50, 6, 0, 0, 0, 0, 128, 96, 50, 6, 0, 0, 0, 0, 0, 194, 50, 6, 0, 0, 0, 0, 144, 51, 51, 6, 0, 0, 0, 0, 160, 65, 51, 6, 0, 0, 0, 0, 224, 77, 51, 6, 0, 0, 0, 0, 16, 102, 51, 6, 0, 0, 0, 0, 240, 153, 51, 6, 0, 0, 0, 0, 208, 224, 51, 6, 0, 0, 0, 0, 176, 75, 52, 6, 0, 0, 0, 0, 176, 94, 52, 6, 0, 0, 0, 0, 48, 130, 52, 6, 0, 0, 0, 0, 224, 138, 53, 6, 0, 0, 0, 0, 224, 208, 53, 6, 0, 0, 0, 0, 64, 222, 53, 6, 0, 0, 0, 0, 0, 235, 53, 6, 0, 0, 0, 0, 208, 2, 54, 6, 0, 0, 0, 0, 112, 11, 56, 6, 0, 0, 0, 0, 208, 24, 56, 6, 0, 0, 0, 0, 144, 37, 56, 6, 0, 0, 0, 0, 96, 61, 56, 6, 0, 0, 0, 0, 224, 78, 62, 6, 0, 0, 0, 0, 64, 92, 62, 6, 0, 0, 0, 0, 0, 105, 62, 6, 0, 0, 0, 0, 208, 128, 62, 6, 0, 0, 0, 0, 32, 143, 68, 6, 0, 0, 0, 0, 128, 156, 68, 6, 0, 0, 0, 0, 64, 169, 68, 6, 0, 0, 0, 0, 16, 193, 68, 6, 0, 0, 0, 0, 112, 193, 74, 6, 0, 0, 0, 0, 0, 253, 74, 6, 0, 0, 0, 0, 96, 10, 75, 6, 0, 0, 0, 0, 32, 23, 75, 6, 0, 0, 0, 0, 240, 46, 75, 6, 0, 0, 0, 0, 16, 163, 75, 6, 0, 0, 0, 0, 16, 208, 75, 6, 0, 0, 0, 0, 0, 133, 76, 6, 0, 0, 0, 0, 176, 229, 76, 6, 0, 0, 0, 0, 128, 136, 78, 6, 0, 0, 0, 0, 48, 172, 78, 6, 0, 0, 0, 0, 192, 26, 78, 6, 0, 0, 0, 0, 112, 212, 78, 6, 0, 0, 0, 0, 96, 56, 79, 6, 0, 0, 0, 0, 208, 182, 79, 6, 0, 0, 0, 0, 48, 196, 79, 6, 0, 0, 0, 0, 240, 208, 79, 6, 0, 0, 0, 0, 32, 233, 79, 6, 0, 0, 0, 0, 208, 25, 80, 6, 0, 0, 0, 0, 96, 143, 80, 6, 0, 0, 0, 0, 64, 202, 80, 6, 0, 0, 0, 0, 48, 18, 81, 6, 0, 0, 0, 0, 48, 141, 81, 6, 0, 0, 0, 0, 16, 194, 81, 6, 0, 0, 0, 0, 112, 207, 81, 6, 0, 0, 0, 0, 48, 220, 81, 6, 0, 0, 0, 0, 96, 244, 81, 6, 0, 0, 0, 0, 80, 129, 82, 6, 0, 0, 0, 0, 176, 142, 82, 6, 0, 0, 0, 0, 112, 155, 82, 6, 0, 0, 0, 0, 160, 179, 82, 6, 0, 0, 0, 0, 208, 1, 51, 8, 0, 0, 0, 0, 16, 14, 51, 8, 0, 0, 0, 0, 160, 115, 51, 8, 0, 0, 0, 0, 112, 136, 51, 8, 0, 0, 0, 0, 96, 14, 53, 6, 0, 0, 0, 0, 0, 61, 54, 6, 0, 0, 0, 0, 192, 76, 54, 6, 0, 0, 0, 0, 208, 185, 54, 6, 0, 0, 0, 0, 128, 83, 55, 6, 0, 0, 0, 0, 0, 155, 55, 6, 0, 0, 0, 0, 208, 109, 56, 6, 0, 0, 0, 0, 160, 34, 57, 6, 0, 0, 0, 0, 96, 131, 57, 6, 0, 0, 0, 0, 48, 38, 59, 6, 0, 0, 0, 0, 224, 73, 59, 6, 0, 0, 0, 0, 128, 184, 58, 6, 0, 0, 0, 0, 32, 112, 59, 6, 0, 0, 0, 0, 16, 215, 59, 6, 0, 0, 0, 0, 32, 85, 60, 6, 0, 0, 0, 0, 128, 98, 60, 6, 0, 0, 0, 0, 64, 111, 60, 6, 0, 0, 0, 0, 16, 135, 60, 6, 0, 0, 0, 0, 16, 184, 60, 6, 0, 0, 0, 0, 128, 45, 61, 6, 0, 0, 0, 0, 96, 104, 61, 6, 0, 0, 0, 0, 112, 176, 61, 6, 0, 0, 0, 0, 48, 182, 62, 6, 0, 0, 0, 0, 64, 107, 63, 6, 0, 0, 0, 0, 0, 204, 63, 6, 0, 0, 0, 0, 192, 110, 65, 6, 0, 0, 0, 0, 112, 146, 65, 6, 0, 0, 0, 0, 16, 1, 65, 6, 0, 0, 0, 0, 176, 184, 65, 6, 0, 0, 0, 0, 160, 31, 66, 6, 0, 0, 0, 0, 176, 157, 66, 6, 0, 0, 0, 0, 16, 171, 66, 6, 0, 0, 0, 0, 208, 183, 66, 6, 0, 0, 0, 0, 160, 207, 66, 6, 0, 0, 0, 0, 160, 0, 67, 6, 0, 0, 0, 0, 16, 118, 67, 6, 0, 0, 0, 0, 240, 176, 67, 6, 0, 0, 0, 0, 0, 249, 67, 6, 0, 0, 0, 0, 192, 246, 68, 6, 0, 0, 0, 0, 208, 171, 69, 6, 0, 0, 0, 0, 144, 12, 70, 6, 0, 0, 0, 0, 144, 207, 71, 6, 0, 0, 0, 0, 64, 243, 71, 6, 0, 0, 0, 0, 208, 97, 71, 6, 0, 0, 0, 0, 128, 25, 72, 6, 0, 0, 0, 0, 112, 128, 72, 6, 0, 0, 0, 0, 96, 254, 72, 6, 0, 0, 0, 0, 192, 11, 73, 6, 0, 0, 0, 0, 128, 24, 73, 6, 0, 0, 0, 0, 80, 48, 73, 6, 0, 0, 0, 0, 80, 97, 73, 6, 0, 0, 0, 0, 192, 214, 73, 6, 0, 0, 0, 0, 160, 17, 74, 6, 0, 0, 0, 0, 176, 89, 74, 6, 0, 0, 0, 0, 96, 39, 83, 6, 0, 0, 0, 0, 192, 123, 83, 6, 0, 0, 0, 0, 112, 186, 83, 6, 0, 0, 0, 0, 16, 245, 83, 6, 0, 0, 0, 0, 80, 214, 84, 6, 0, 0, 0, 0, 144, 59, 85, 6, 0, 0, 0, 0, 192, 210, 85, 6, 0, 0, 0, 0, 224, 4, 86, 6, 0, 0, 0, 0, 80, 56, 86, 6, 0, 0, 0, 0, 176, 69, 86, 6, 0, 0, 0, 0, 112, 82, 86, 6, 0, 0, 0, 0, 160, 106, 86, 6, 0, 0, 0, 0, 160, 212, 86, 6, 0, 0, 0, 0, 80, 248, 86, 6, 0, 0, 0, 0, 144, 32, 87, 6, 0, 0, 0, 0, 224, 132, 87, 6, 0, 0, 0, 0, 16, 250, 87, 6, 0, 0, 0, 0, 240, 52, 88, 6, 0, 0, 0, 0, 96, 124, 88, 6, 0, 0, 0, 0, 208, 235, 88, 6, 0, 0, 0, 0, 176, 176, 89, 6, 0, 0, 0, 0, 112, 36, 94, 6, 0, 0, 0, 0, 208, 49, 94, 6, 0, 0, 0, 0, 144, 62, 94, 6, 0, 0, 0, 0, 192, 86, 94, 6, 0, 0, 0, 0, 0, 150, 115, 6, 0, 0, 0, 0, 96, 94, 118, 6, 0, 0, 0, 0, 240, 211, 118, 6, 0, 0, 0, 0, 192, 254, 161, 6, 0, 0, 0, 0, 32, 251, 162, 6, 0, 0, 0, 0, 128, 8, 163, 6, 0, 0, 0, 0, 64, 21, 163, 6, 0, 0, 0, 0, 16, 45, 163, 6, 0, 0, 0, 0, 0, 131, 163, 6, 0, 0, 0, 0, 96, 144, 163, 6, 0, 0, 0, 0, 32, 157, 163, 6, 0, 0, 0, 0, 240, 180, 163, 6, 0, 0, 0, 0, 224, 33, 164, 6, 0, 0, 0, 0, 32, 120, 164, 6, 0, 0, 0, 0, 128, 133, 164, 6, 0, 0, 0, 0, 64, 146, 164, 6, 0, 0, 0, 0, 112, 170, 164, 6, 0, 0, 0, 0, 0, 221, 167, 6, 0, 0, 0, 0, 64, 28, 227, 6, 0, 0, 0, 0, 16, 143, 227, 6, 0, 0, 0, 0, 112, 156, 227, 6, 0, 0, 0, 0, 48, 169, 227, 6, 0, 0, 0, 0, 240, 193, 227, 6, 0, 0, 0, 0, 64, 13, 228, 6, 0, 0, 0, 0, 144, 112, 228, 6, 0, 0, 0, 0, 224, 198, 228, 6, 0, 0, 0, 0, 64, 212, 228, 6, 0, 0, 0, 0, 48, 225, 228, 6, 0, 0, 0, 0, 96, 249, 228, 6, 0, 0, 0, 0, 208, 107, 229, 6, 0, 0, 0, 0, 208, 33, 230, 6, 0, 0, 0, 0, 192, 130, 230, 6, 0, 0, 0, 0, 64, 42, 232, 6, 0, 0, 0, 0, 112, 78, 232, 6, 0, 0, 0, 0, 192, 186, 231, 6, 0, 0, 0, 0, 48, 117, 232, 6, 0, 0, 0, 0, 224, 220, 232, 6, 0, 0, 0, 0, 80, 91, 233, 6, 0, 0, 0, 0, 176, 104, 233, 6, 0, 0, 0, 0, 112, 117, 233, 6, 0, 0, 0, 0, 48, 142, 233, 6, 0, 0, 0, 0, 224, 190, 233, 6, 0, 0, 0, 0, 0, 53, 234, 6, 0, 0, 0, 0, 192, 112, 234, 6, 0, 0, 0, 0, 64, 186, 234, 6, 0, 0, 0, 0, 64, 16, 235, 6, 0, 0, 0, 0, 80, 116, 235, 6, 0, 0, 0, 0, 16, 246, 235, 6, 0, 0, 0, 0, 160, 171, 236, 6, 0, 0, 0, 0, 144, 12, 237, 6, 0, 0, 0, 0, 240, 179, 238, 6, 0, 0, 0, 0, 32, 216, 238, 6, 0, 0, 0, 0, 192, 68, 238, 6, 0, 0, 0, 0, 224, 254, 238, 6, 0, 0, 0, 0, 208, 101, 239, 6, 0, 0, 0, 0, 208, 228, 239, 6, 0, 0, 0, 0, 48, 242, 239, 6, 0, 0, 0, 0, 32, 255, 239, 6, 0, 0, 0, 0, 224, 23, 240, 6, 0, 0, 0, 0, 144, 72, 240, 6, 0, 0, 0, 0, 0, 191, 240, 6, 0, 0, 0, 0, 144, 250, 240, 6, 0, 0, 0, 0, 16, 68, 241, 6, 0, 0, 0, 0, 176, 57, 247, 6, 0, 0, 0, 0, 16, 237, 247, 6, 0, 0, 0, 0, 240, 77, 248, 6, 0, 0, 0, 0, 80, 245, 249, 6, 0, 0, 0, 0, 112, 25, 250, 6, 0, 0, 0, 0, 80, 142, 2, 7, 0, 0, 0, 0, 192, 133, 249, 6, 0, 0, 0, 0, 64, 66, 250, 6, 0, 0, 0, 0, 64, 167, 250, 6, 0, 0, 0, 0, 16, 38, 251, 6, 0, 0, 0, 0, 112, 51, 251, 6, 0, 0, 0, 0, 48, 64, 251, 6, 0, 0, 0, 0, 208, 88, 251, 6, 0, 0, 0, 0, 112, 137, 251, 6, 0, 0, 0, 0, 144, 255, 251, 6, 0, 0, 0, 0, 16, 59, 252, 6, 0, 0, 0, 0, 192, 132, 252, 6, 0, 0, 0, 0, 48, 215, 252, 6, 0, 0, 0, 0, 80, 145, 253, 6, 0, 0, 0, 0, 0, 242, 253, 6, 0, 0, 0, 0, 48, 153, 255, 6, 0, 0, 0, 0, 96, 189, 255, 6, 0, 0, 0, 0, 0, 42, 255, 6, 0, 0, 0, 0, 0, 230, 255, 6, 0, 0, 0, 0, 176, 74, 0, 7, 0, 0, 0, 0, 176, 201, 0, 7, 0, 0, 0, 0, 16, 215, 0, 7, 0, 0, 0, 0, 0, 228, 0, 7, 0, 0, 0, 0, 240, 252, 0, 7, 0, 0, 0, 0, 144, 45, 1, 7, 0, 0, 0, 0, 0, 164, 1, 7, 0, 0, 0, 0, 32, 223, 1, 7, 0, 0, 0, 0, 208, 40, 2, 7, 0, 0, 0, 0, 144, 197, 2, 7, 0, 0, 0, 0, 96, 123, 3, 7, 0, 0, 0, 0, 32, 220, 3, 7, 0, 0, 0, 0, 128, 131, 5, 7, 0, 0, 0, 0, 176, 167, 5, 7, 0, 0, 0, 0, 80, 20, 5, 7, 0, 0, 0, 0, 112, 206, 5, 7, 0, 0, 0, 0, 80, 53, 6, 7, 0, 0, 0, 0, 80, 180, 6, 7, 0, 0, 0, 0, 176, 193, 6, 7, 0, 0, 0, 0, 160, 206, 6, 7, 0, 0, 0, 0, 96, 231, 6, 7, 0, 0, 0, 0, 96, 24, 7, 7, 0, 0, 0, 0, 96, 142, 7, 7, 0, 0, 0, 0, 240, 201, 7, 7, 0, 0, 0, 0, 32, 19, 8, 7, 0, 0, 0, 0, 16, 222, 40, 7, 0, 0, 0, 0, 32, 38, 41, 7, 0, 0, 0, 0, 32, 185, 49, 7, 0, 0, 0, 0, 144, 32, 47, 8, 0, 0, 0, 0, 240, 164, 47, 8, 0, 0, 0, 0, 80, 25, 48, 8, 0, 0, 0, 0, 112, 92, 48, 8, 0, 0, 0, 0, 128, 106, 48, 8, 0, 0, 0, 0, 240, 118, 48, 8, 0, 0, 0, 0, 224, 143, 48, 8, 0, 0, 0, 0, 128, 230, 48, 8, 0, 0, 0, 0, 176, 92, 49, 8, 0, 0, 0, 0, 48, 160, 49, 8, 0, 0, 0, 0, 192, 173, 49, 8, 0, 0, 0, 0, 176, 186, 49, 8, 0, 0, 0, 0, 112, 211, 49, 8, 0, 0, 0, 0, 192, 64, 50, 8, 0, 0, 0, 0, 64, 144, 50, 8, 0, 0, 0, 0, 192, 156, 241, 6, 0, 0, 0, 0, 240, 83, 242, 6, 0, 0, 0, 0, 224, 180, 242, 6, 0, 0, 0, 0, 96, 92, 244, 6, 0, 0, 0, 0, 160, 128, 244, 6, 0, 0, 0, 0, 208, 236, 243, 6, 0, 0, 0, 0, 192, 14, 245, 6, 0, 0, 0, 0, 240, 140, 245, 6, 0, 0, 0, 0, 128, 154, 245, 6, 0, 0, 0, 0, 112, 167, 245, 6, 0, 0, 0, 0, 48, 192, 245, 6, 0, 0, 0, 0, 224, 240, 245, 6, 0, 0, 0, 0, 0, 103, 246, 6, 0, 0, 0, 0, 224, 162, 246, 6, 0, 0, 0, 0, 96, 236, 246, 6, 0, 0, 0, 0, 16, 167, 244, 6, 0, 0, 0, 0, 32, 143, 235, 5, 0, 0, 0, 0, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 81, 81, 81, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76, 76 ), "format": "RGFloat", @@ -10,3 +9,8 @@ data = { "width": 2048 } +[resource] +flags = 0 +image = SubResource( 1 ) +size = Vector2( 2048, 1 ) + diff --git a/2d/particles/point_texture_image_outline.tres b/2d/particles/point_texture_image_outline.tres index 443ffbc1..246df229 100644 --- a/2d/particles/point_texture_image_outline.tres +++ b/2d/particles/point_texture_image_outline.tres @@ -1,7 +1,6 @@ -[gd_resource type="Image" format=2] - -[resource] +[gd_resource type="ImageTexture" load_steps=2 format=2] +[sub_resource type="Image" id=1] data = { "data": PoolByteArray( 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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", @@ -10,3 +9,8 @@ data = { "width": 2048 } +[resource] +flags = 0 +image = SubResource( 1 ) +size = Vector2( 2048, 1 ) + diff --git a/2d/particles/project.godot b/2d/particles/project.godot index 1477b161..c99f9a29 100644 --- a/2d/particles/project.godot +++ b/2d/particles/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/pong/pong.tscn b/2d/pong/pong.tscn index cda1d080..d88d1637 100644 --- a/2d/pong/pong.tscn +++ b/2d/pong/pong.tscn @@ -10,177 +10,86 @@ [ext_resource path="res://ceiling_floor.gd" type="Script" id=8] [sub_resource type="RectangleShape2D" id=1] - -custom_solver_bias = 0.0 extents = Vector2( 4, 16 ) [sub_resource type="RectangleShape2D" id=2] - -custom_solver_bias = 0.0 extents = Vector2( 4, 4 ) [sub_resource type="RectangleShape2D" id=3] - -custom_solver_bias = 0.0 extents = Vector2( 10, 200 ) [sub_resource type="RectangleShape2D" id=4] - -custom_solver_bias = 0.0 extents = Vector2( 320, 10 ) [node name="game" type="Node2D"] [node name="left" type="Area2D" parent="."] - position = Vector2( 67.6285, 192.594 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 1 ) -ball_dir = 1 [node name="sprite" type="Sprite" parent="left"] - texture = ExtResource( 2 ) -_sections_unfolded = [ "Transform" ] [node name="collision" type="CollisionShape2D" parent="left"] - shape = SubResource( 1 ) [node name="right" type="Area2D" parent="."] - position = Vector2( 563.815, 188.919 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 1 ) ball_dir = -1 [node name="sprite" type="Sprite" parent="right"] - texture = ExtResource( 3 ) -_sections_unfolded = [ "Transform" ] [node name="collision" type="CollisionShape2D" parent="right"] - shape = SubResource( 1 ) [node name="ball" type="Area2D" parent="."] - position = Vector2( 320.5, 191.124 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 4 ) [node name="sprite" type="Sprite" parent="ball"] - texture = ExtResource( 5 ) -_sections_unfolded = [ "Transform" ] [node name="collision" type="CollisionShape2D" parent="ball"] - shape = SubResource( 2 ) [node name="separator" type="Sprite" parent="."] - position = Vector2( 320, 200 ) texture = ExtResource( 6 ) [node name="left_wall" type="Area2D" parent="."] - position = Vector2( -10, 200 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 7 ) -_sections_unfolded = [ "Transform" ] [node name="collision" type="CollisionShape2D" parent="left_wall"] - shape = SubResource( 3 ) [node name="right_wall" type="Area2D" parent="."] - position = Vector2( 650, 200 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 7 ) -_sections_unfolded = [ "Transform" ] [node name="collision" type="CollisionShape2D" parent="right_wall"] - shape = SubResource( 3 ) [node name="ceiling" type="Area2D" parent="."] - position = Vector2( 320, -10 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 8 ) -_sections_unfolded = [ "Transform" ] -y_direction = 1 [node name="collision" type="CollisionShape2D" parent="ceiling"] - shape = SubResource( 4 ) [node name="floor" type="Area2D" parent="."] - position = Vector2( 320, 410 ) -input_pickable = true -gravity_vec = Vector2( 0, 1 ) -gravity = 98.0 -linear_damp = 0.1 -angular_damp = 1.0 -audio_bus_override = false -audio_bus_name = "Master" script = ExtResource( 8 ) -_sections_unfolded = [ "Transform" ] y_direction = -1 [node name="collision" type="CollisionShape2D" parent="floor"] - shape = SubResource( 4 ) [connection signal="area_entered" from="left" to="left" method="_on_area_entered"] - [connection signal="area_entered" from="right" to="right" method="_on_area_entered"] - [connection signal="area_entered" from="left_wall" to="left_wall" method="_on_wall_area_entered"] - [connection signal="area_entered" from="right_wall" to="right_wall" method="_on_wall_area_entered"] - [connection signal="area_entered" from="ceiling" to="ceiling" method="_on_area_entered"] - [connection signal="area_entered" from="floor" to="floor" method="_on_area_entered"] - - diff --git a/2d/pong/project.godot b/2d/pong/project.godot index 03c694a0..b0ce9d7f 100644 --- a/2d/pong/project.godot +++ b/2d/pong/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] @@ -26,14 +31,26 @@ singletons=[ ] [input] -left_move_down=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null) +left_move_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":90,"unicode":0,"echo":false,"script":null) ] -left_move_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) +} +left_move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":65,"unicode":0,"echo":false,"script":null) ] -right_move_down=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) +} +right_move_down={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777234,"unicode":0,"echo":false,"script":null) ] -right_move_up=[ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) +} +right_move_up={ +"deadzone": 0.5, +"events": [ Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"alt":false,"shift":false,"control":false,"meta":false,"command":false,"pressed":false,"scancode":16777232,"unicode":0,"echo":false,"script":null) ] +} [rendering] diff --git a/2d/screen_space_shaders/project.godot b/2d/screen_space_shaders/project.godot index e94d8856..b33efe98 100644 --- a/2d/screen_space_shaders/project.godot +++ b/2d/screen_space_shaders/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/screen_space_shaders/screen_shaders.tscn b/2d/screen_space_shaders/screen_shaders.tscn index 62597e4a..d67a3dd5 100644 --- a/2d/screen_space_shaders/screen_shaders.tscn +++ b/2d/screen_space_shaders/screen_shaders.tscn @@ -10,264 +10,219 @@ [ext_resource path="res://art/filmgrain.png" type="Texture" id=8] [sub_resource type="Shader" id=1] - code = "shader_type canvas_item; uniform sampler2D vignette; void fragment() { - vec3 vignette_color = texture(vignette,UV).rgb; - //screen texture stores gaussian blurred copies on mipmaps - COLOR.rgb = textureLod(SCREEN_TEXTURE,SCREEN_UV,(1.0-vignette_color.r)*4.0).rgb; - COLOR.rgb*= texture(vignette,UV).rgb; + vec3 vignette_color = texture(vignette, UV).rgb; + // Screen texture stores gaussian blurred copies on mipmaps + COLOR.rgb = textureLod(SCREEN_TEXTURE, SCREEN_UV, (1.0 - vignette_color.r) * 4.0).rgb; + COLOR.rgb *= texture(vignette, UV).rgb; }" [sub_resource type="ShaderMaterial" id=2] - -render_priority = 0 shader = SubResource( 1 ) shader_param/vignette = ExtResource( 6 ) -_sections_unfolded = [ "shader", "shader_param" ] [sub_resource type="Shader" id=3] - code = "shader_type canvas_item; -uniform float amount : hint_range(0,5); +uniform float amount : hint_range(0.0, 5.0); void fragment() { - COLOR.rgb = textureLod(SCREEN_TEXTURE,SCREEN_UV,amount).rgb; + COLOR.rgb = textureLod(SCREEN_TEXTURE, SCREEN_UV, amount).rgb; }" [sub_resource type="ShaderMaterial" id=4] - -render_priority = 0 shader = SubResource( 3 ) shader_param/amount = 4.0 -_sections_unfolded = [ "shader", "shader_param" ] [sub_resource type="Shader" id=5] - code = "shader_type canvas_item; -uniform float size_x=0.008; -uniform float size_y=0.008; +uniform float size_x = 0.008; +uniform float size_y = 0.008; void fragment() { vec2 uv = SCREEN_UV; - uv-=mod(uv,vec2(size_x,size_y)); + uv -= mod(uv, vec2(size_x, size_y)); - COLOR.rgb= textureLod(SCREEN_TEXTURE,uv,0.0).rgb; + COLOR.rgb = textureLod(SCREEN_TEXTURE, uv, 0.0).rgb; } " [sub_resource type="ShaderMaterial" id=6] - -render_priority = 0 shader = SubResource( 5 ) -shader_param/size_x = null -shader_param/size_y = null -_sections_unfolded = [ "shader" ] +shader_param/size_x = 0.008 +shader_param/size_y = 0.008 [sub_resource type="Shader" id=7] - code = "shader_type canvas_item; -uniform float rotation=3.0; +uniform float rotation = 3.0; void fragment() { vec2 uv = SCREEN_UV; - vec2 rel = uv-vec2(0.5,0.5); - float angle = length(rel)*rotation; - mat2 rot = mat2(vec2(cos(angle),-sin(angle)),vec2(sin(angle),cos(angle))); + vec2 rel = uv - vec2(0.5, 0.5); + float angle = length(rel) * rotation; + mat2 rot = mat2(vec2(cos(angle), -sin(angle)), vec2(sin(angle), cos(angle))); rel = rot * rel; - uv = clamp(rel + vec2(0.5,0.5),vec2(0,0),vec2(1,1)); - COLOR.rgb= textureLod(SCREEN_TEXTURE,uv,0.0).rgb; + uv = clamp(rel + vec2(0.5,0.5), vec2(0.0, 0.0), vec2(1.0, 1.0)); + COLOR.rgb = textureLod(SCREEN_TEXTURE, uv, 0.0).rgb; } " [sub_resource type="ShaderMaterial" id=8] - -render_priority = 0 shader = SubResource( 7 ) -shader_param/rotation = null -_sections_unfolded = [ "shader" ] +shader_param/rotation = 3.0 [sub_resource type="Shader" id=9] - code = "shader_type canvas_item; uniform vec4 base : hint_color; void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; + vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb; - //float v = max(c.r,max(c.g,c.b)); - float v = dot(c,vec3(0.33333,0.33333,0.33333)); - v=sqrt(v); - //v*=v; - COLOR.rgb= base.rgb*v; + //float v = max(c.r, max(c.g, c.b)); + float v = dot(c, vec3(0.33333, 0.33333, 0.33333)); + v = sqrt(v); + //v *= v; + COLOR.rgb = base.rgb * v; }" [sub_resource type="ShaderMaterial" id=10] - -render_priority = 0 shader = SubResource( 9 ) shader_param/base = Color( 0.54451, 0.408353, 0.403137, 1 ) -_sections_unfolded = [ "shader", "shader_param" ] [sub_resource type="Shader" id=11] - code = "shader_type canvas_item; void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - c=vec3(1.0)-c; - COLOR.rgb=c; + vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb; + c = vec3(1.0) - c; + COLOR.rgb = c; } " [sub_resource type="ShaderMaterial" id=12] - -render_priority = 0 shader = SubResource( 11 ) -_sections_unfolded = [ "shader" ] [sub_resource type="Shader" id=13] - code = "shader_type canvas_item; void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - c=mod(c+vec3(0.5),vec3(1.0)); - COLOR.rgb=c; + vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb; + c = mod(c + vec3(0.5), vec3(1.0)); + COLOR.rgb = c; } " [sub_resource type="ShaderMaterial" id=14] - -render_priority = 0 shader = SubResource( 13 ) -_sections_unfolded = [ "shader" ] [sub_resource type="Shader" id=15] - code = "shader_type canvas_item; void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - COLOR.rgb=normalize(c); + vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb; + COLOR.rgb = normalize(c); } " [sub_resource type="ShaderMaterial" id=16] - -render_priority = 0 shader = SubResource( 15 ) -_sections_unfolded = [ "shader" ] [sub_resource type="Shader" id=17] - code = "shader_type canvas_item; -uniform float brightness=0.8; -uniform float contrast=1.5; -uniform float saturation=1.8; +uniform float brightness = 0.8; +uniform float contrast = 1.5; +uniform float saturation = 1.8; void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; + vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb; - c.rgb = mix(vec3(0.0),c.rgb,brightness); - c.rgb = mix(vec3(0.5),c.rgb,contrast); - c.rgb = mix(vec3(dot(vec3(1.0),c.rgb)*0.33333),c.rgb,saturation); + c.rgb = mix(vec3(0.0), c.rgb, brightness); + c.rgb = mix(vec3(0.5), c.rgb, contrast); + c.rgb = mix(vec3(dot(vec3(1.0), c.rgb) * 0.33333), c.rgb, saturation); - COLOR.rgb=c; + COLOR.rgb = c; } " [sub_resource type="ShaderMaterial" id=18] - -render_priority = 0 shader = SubResource( 17 ) -shader_param/brightness = null -shader_param/contrast = null -shader_param/saturation = null -_sections_unfolded = [ "shader" ] +shader_param/brightness = 0.8 +shader_param/contrast = 1.5 +shader_param/saturation = 1.8 [sub_resource type="Shader" id=19] - code = "shader_type canvas_item; -uniform float frequency=60; +uniform float frequency = 60; uniform float depth = 0.005; void fragment() { vec2 uv = SCREEN_UV; - uv.x += sin(uv.y*frequency+TIME)*depth; - uv.x = clamp(uv.x,0,1); - vec3 c = textureLod(SCREEN_TEXTURE,uv,0.0).rgb; + uv.x += sin(uv.y * frequency + TIME) * depth; + uv.x = clamp(uv.x, 0.0, 1.0); + vec3 c = textureLod(SCREEN_TEXTURE, uv, 0.0).rgb; - - COLOR.rgb=c; + COLOR.rgb = c; } " [sub_resource type="ShaderMaterial" id=20] - -render_priority = 0 shader = SubResource( 19 ) -shader_param/frequency = null -shader_param/depth = null -_sections_unfolded = [ "shader" ] +shader_param/frequency = 60.0 +shader_param/depth = 0.005 [sub_resource type="Shader" id=21] - code = "shader_type canvas_item; uniform vec4 base : hint_color; uniform sampler2D grain; -uniform float grain_strength=0.3; +uniform float grain_strength = 0.3; uniform sampler2D vignette; -uniform float fps=12; +uniform float fps = 12.0; uniform float stretch = 0.5; -uniform float flashing=0.01; +uniform float flashing = 0.01; -float make_grain(float time,vec2 uv) { +float make_grain(float time, vec2 uv) { - vec2 ofs = vec2(sin(41.0*time*sin(time*123.0)),sin(27.0*time*sin(time*312.0))); - return texture(grain,(uv+mod(ofs,vec2(1,1)))*stretch).r; + vec2 ofs = vec2(sin(41.0 * time * sin(time * 123.0)), sin(27.0 * time * sin(time * 312.0))); + return texture(grain, (uv + mod(ofs, vec2(1.0, 1.0))) * stretch).r; } void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; + vec3 c = textureLod(SCREEN_TEXTURE, SCREEN_UV, 0.0).rgb; - //float v = max(c.r,max(c.g,c.b)); - float v = dot(c,vec3(0.33333,0.33333,0.33333)); - v=sqrt(v); - //v*=v; + //float v = max(c.r, max(c.g, c.b)); + float v = dot(c, vec3(0.33333, 0.33333, 0.33333)); + v = sqrt(v); + //v *= v; - float f = 1.0/fps; - float g = make_grain(TIME-mod(TIME,f),UV); - g=max(g,make_grain(TIME-mod(TIME,f)+f,UV)*0.5); - g=max(g,make_grain(TIME-mod(TIME,f)+f*2.0,UV)*0.25); + float f = 1.0 / fps; + float g = make_grain(TIME - mod(TIME, f), UV); + g = max(g, make_grain(TIME - mod(TIME, f) + f, UV) * 0.5); + g = max(g, make_grain(TIME - mod(TIME, f) + f * 2.0, UV) * 0.25); - - COLOR.rgb= base.rgb*v-vec3(g)*grain_strength; - COLOR.rgb*=texture(vignette,UV).r; + COLOR.rgb = base.rgb * v - vec3(g) * grain_strength; + COLOR.rgb *= texture(vignette, UV).r; float ft = TIME * 0.002; - COLOR.rgb+=vec3(sin(75.0*ft*sin(ft*123.0)))*flashing; + COLOR.rgb += vec3(sin(75.0 * ft * sin(ft * 123.0))) * flashing; } " [sub_resource type="ShaderMaterial" id=22] - -render_priority = 0 shader = SubResource( 21 ) shader_param/base = Color( 0.450274, 0.361255, 0.335059, 1 ) shader_param/grain_strength = 0.3 @@ -276,383 +231,195 @@ shader_param/stretch = 0.5 shader_param/flashing = 0.01 shader_param/grain = ExtResource( 8 ) shader_param/vignette = ExtResource( 6 ) -_sections_unfolded = [ "shader", "shader_param" ] [node name="Control" type="Control"] - -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 size_flags_horizontal = 2 size_flags_vertical = 2 script = ExtResource( 1 ) -_sections_unfolded = [ "Pause" ] [node name="pictures" type="Control" parent="."] - -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 size_flags_horizontal = 2 size_flags_vertical = 2 [node name="burano" type="TextureRect" parent="pictures"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 40.0 margin_bottom = 40.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 2 ) -stretch_mode = 0 [node name="roby" type="TextureRect" parent="pictures"] - visible = false -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 40.0 margin_bottom = 40.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 3 ) -stretch_mode = 0 [node name="mountains" type="TextureRect" parent="pictures"] - visible = false -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 40.0 margin_bottom = 40.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 4 ) -stretch_mode = 0 [node name="forest" type="TextureRect" parent="pictures"] - visible = false -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 40.0 margin_bottom = 40.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 5 ) -stretch_mode = 0 [node name="effects" type="Control" parent="."] - -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 size_flags_horizontal = 2 size_flags_vertical = 2 -_sections_unfolded = [ "Rect" ] [node name="disabled" type="Control" parent="effects"] - visible = false -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_right = 40.0 margin_bottom = 40.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 size_flags_horizontal = 2 size_flags_vertical = 2 [node name="vignette" type="TextureRect" parent="effects"] - visible = false material = SubResource( 2 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="blur" type="TextureRect" parent="effects"] - visible = false material = SubResource( 4 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="pixelize" type="TextureRect" parent="effects"] - visible = false material = SubResource( 6 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="whirl" type="TextureRect" parent="effects"] - visible = false material = SubResource( 8 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="sepia" type="TextureRect" parent="effects"] - visible = false material = SubResource( 10 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_right = 14.0 margin_bottom = -2.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material", "Visibility" ] [node name="negative" type="TextureRect" parent="effects"] - visible = false material = SubResource( 12 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="contrasted" type="TextureRect" parent="effects"] - visible = false material = SubResource( 14 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="normalized" type="TextureRect" parent="effects"] - visible = false material = SubResource( 16 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="BCS" type="TextureRect" parent="effects"] - visible = false material = SubResource( 18 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_top = 3.0 margin_bottom = -3.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="mirage" type="TextureRect" parent="effects"] - visible = false material = SubResource( 20 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="old_film" type="TextureRect" parent="effects"] - visible = false material = SubResource( 22 ) -anchor_left = 0.0 -anchor_top = 0.0 anchor_right = 1.0 anchor_bottom = 1.0 margin_left = -3.0 margin_right = 3.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 1 size_flags_horizontal = 2 size_flags_vertical = 2 texture = ExtResource( 7 ) expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] [node name="picture" type="OptionButton" parent="."] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_left = 8.0 margin_top = 7.0 margin_right = 131.0 margin_bottom = 28.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 size_flags_horizontal = 2 size_flags_vertical = 2 -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -selected = -1 -items = [ ] [node name="effect" type="OptionButton" parent="."] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_left = 137.0 margin_top = 7.0 margin_right = 260.0 margin_bottom = 28.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 0 size_flags_horizontal = 2 size_flags_vertical = 2 -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -selected = -1 -items = [ ] [connection signal="item_selected" from="picture" to="." method="_on_picture_item_selected"] - [connection signal="item_selected" from="effect" to="." method="_on_effect_item_selected"] - - diff --git a/2d/screen_space_shaders/screen_shaders.tscn~ b/2d/screen_space_shaders/screen_shaders.tscn~ deleted file mode 100644 index 51950ce9..00000000 --- a/2d/screen_space_shaders/screen_shaders.tscn~ +++ /dev/null @@ -1,570 +0,0 @@ -[gd_scene load_steps=31 format=2] - -[ext_resource path="res://screen_shaders.gd" type="Script" id=1] -[ext_resource path="res://art/burano.jpg" type="Texture" id=2] -[ext_resource path="res://art/platformer.jpg" type="Texture" id=3] -[ext_resource path="res://art/mountains.jpg" type="Texture" id=4] -[ext_resource path="res://art/forest.jpg" type="Texture" id=5] -[ext_resource path="res://art/vignette.png" type="Texture" id=6] -[ext_resource path="res://art/white.png" type="Texture" id=7] -[ext_resource path="res://art/filmgrain.png" type="Texture" id=8] - -[sub_resource type="Shader" id=1] - -code = "shader_type canvas_item; - -uniform sampler2D vignette; - -void fragment() { - vec3 vignette_color = texture(vignette,UV).rgb; - //screen texture stores gaussian blurred copies on mipmaps - COLOR.rgb = textureLod(SCREEN_TEXTURE,SCREEN_UV,(1.0-vignette_color.r)*4.0).rgb; - COLOR.rgb*= texture(vignette,UV).rgb; -}" - -[sub_resource type="ShaderMaterial" id=2] - -shader/shader = SubResource( 1 ) -shader_param/vignette = ExtResource( 6 ) -_sections_unfolded = [ "shader", "shader_param" ] - -[sub_resource type="Shader" id=3] - -code = "shader_type canvas_item; - -uniform float amount : hint_range(0,5); - -void fragment() { - - COLOR.rgb = textureLod(SCREEN_TEXTURE,SCREEN_UV,amount).rgb; -}" - -[sub_resource type="ShaderMaterial" id=4] - -shader/shader = SubResource( 3 ) -shader_param/amount = 4.0 -_sections_unfolded = [ "shader", "shader_param" ] - -[sub_resource type="Shader" id=5] - -code = "shader_type canvas_item; - -uniform float size_x=0.008; -uniform float size_y=0.008; - -void fragment() { - vec2 uv = SCREEN_UV; - uv-=mod(uv,vec2(size_x,size_y)); - - COLOR.rgb= textureLod(SCREEN_TEXTURE,uv,0.0).rgb; -} -" - -[sub_resource type="ShaderMaterial" id=6] - -shader/shader = SubResource( 5 ) -shader_param/size_x = null -shader_param/size_y = null -_sections_unfolded = [ "shader" ] - -[sub_resource type="Shader" id=7] - -code = "shader_type canvas_item; - -uniform float rotation=3.0; - -void fragment() { - vec2 uv = SCREEN_UV; - vec2 rel = uv-vec2(0.5,0.5); - float angle = length(rel)*rotation; - mat2 rot = mat2(vec2(cos(angle),-sin(angle)),vec2(sin(angle),cos(angle))); - rel = rot * rel; - uv = clamp(rel + vec2(0.5,0.5),vec2(0,0),vec2(1,1)); - COLOR.rgb= textureLod(SCREEN_TEXTURE,uv,0.0).rgb; -} -" - -[sub_resource type="ShaderMaterial" id=8] - -shader/shader = SubResource( 7 ) -shader_param/rotation = null -_sections_unfolded = [ "shader" ] - -[sub_resource type="Shader" id=9] - -code = "shader_type canvas_item; - -uniform vec4 base : hint_color; - -void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - - //float v = max(c.r,max(c.g,c.b)); - float v = dot(c,vec3(0.33333,0.33333,0.33333)); - v=sqrt(v); - //v*=v; - COLOR.rgb= base.rgb*v; - -}" - -[sub_resource type="ShaderMaterial" id=10] - -shader/shader = SubResource( 9 ) -shader_param/base = Color( 0.54451, 0.408353, 0.403137, 1 ) -_sections_unfolded = [ "shader", "shader_param" ] - -[sub_resource type="Shader" id=11] - -code = "shader_type canvas_item; - -void fragment() { - - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - c=vec3(1.0)-c; - COLOR.rgb=c; -} -" - -[sub_resource type="ShaderMaterial" id=12] - -shader/shader = SubResource( 11 ) -_sections_unfolded = [ "shader" ] - -[sub_resource type="Shader" id=13] - -code = "shader_type canvas_item; - -void fragment() { - - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - c=mod(c+vec3(0.5),vec3(1.0)); - COLOR.rgb=c; -} -" - -[sub_resource type="ShaderMaterial" id=14] - -shader/shader = SubResource( 13 ) -_sections_unfolded = [ "shader" ] - -[sub_resource type="Shader" id=15] - -code = "shader_type canvas_item; - -void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - COLOR.rgb=normalize(c); -} -" - -[sub_resource type="ShaderMaterial" id=16] - -shader/shader = SubResource( 15 ) -_sections_unfolded = [ "shader" ] - -[sub_resource type="Shader" id=17] - -code = "shader_type canvas_item; - -uniform float brightness=0.8; -uniform float contrast=1.5; -uniform float saturation=1.8; - -void fragment() { - - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - - c.rgb = mix(vec3(0.0),c.rgb,brightness); - c.rgb = mix(vec3(0.5),c.rgb,contrast); - c.rgb = mix(vec3(dot(vec3(1.0),c.rgb)*0.33333),c.rgb,saturation); - - COLOR.rgb=c; -} -" - -[sub_resource type="ShaderMaterial" id=18] - -shader/shader = SubResource( 17 ) -shader_param/brightness = null -shader_param/contrast = null -shader_param/saturation = null -_sections_unfolded = [ "shader" ] - -[sub_resource type="Shader" id=19] - -code = "shader_type canvas_item; - -uniform float frequency=60; -uniform float depth = 0.005; - -void fragment() { - - vec2 uv = SCREEN_UV; - uv.x += sin(uv.y*frequency+TIME)*depth; - uv.x = clamp(uv.x,0,1); - vec3 c = textureLod(SCREEN_TEXTURE,uv,0.0).rgb; - - - COLOR.rgb=c; -} -" - -[sub_resource type="ShaderMaterial" id=20] - -shader/shader = SubResource( 19 ) -shader_param/frequency = null -shader_param/depth = null -_sections_unfolded = [ "shader" ] - -[sub_resource type="Shader" id=21] - -code = "shader_type canvas_item; - -uniform vec4 base : hint_color; -uniform sampler2D grain; -uniform float grain_strength=0.3; -uniform sampler2D vignette; -uniform float fps=12; -uniform float stretch = 0.5; -uniform float flashing=0.01; - -float make_grain(float time,vec2 uv) { - - vec2 ofs = vec2(sin(41.0*time*sin(time*123.0)),sin(27.0*time*sin(time*312.0))); - return texture(grain,(uv+mod(ofs,vec2(1,1)))*stretch).r; -} - -void fragment() { - vec3 c = textureLod(SCREEN_TEXTURE,SCREEN_UV,0.0).rgb; - - //float v = max(c.r,max(c.g,c.b)); - float v = dot(c,vec3(0.33333,0.33333,0.33333)); - v=sqrt(v); - //v*=v; - - float f = 1.0/fps; - float g = make_grain(TIME-mod(TIME,f),UV); - g=max(g,make_grain(TIME-mod(TIME,f)+f,UV)*0.5); - g=max(g,make_grain(TIME-mod(TIME,f)+f*2.0,UV)*0.25); - - - COLOR.rgb= base.rgb*v-vec3(g)*grain_strength; - COLOR.rgb*=texture(vignette,UV).r; - float ft = TIME * 0.002; - COLOR.rgb+=vec3(sin(75.0*ft*sin(ft*123.0)))*flashing; -} -" - -[sub_resource type="ShaderMaterial" id=22] - -shader/shader = SubResource( 21 ) -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( 8 ) -shader_param/vignette = ExtResource( 6 ) -_sections_unfolded = [ "shader", "shader_param" ] - -[node name="Control" type="Control"] - -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -script = ExtResource( 1 ) -_sections_unfolded = [ "Pause" ] - -[node name="pictures" type="Control" parent="."] - -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 0 -size_flags_horizontal = 2 -size_flags_vertical = 2 - -[node name="burano" type="TextureRect" parent="pictures"] - -margin_right = 40.0 -margin_bottom = 40.0 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 2 ) -stretch_mode = 0 - -[node name="roby" type="TextureRect" parent="pictures"] - -visible = false -margin_right = 40.0 -margin_bottom = 40.0 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 3 ) -stretch_mode = 0 - -[node name="mountains" type="TextureRect" parent="pictures"] - -visible = false -margin_right = 40.0 -margin_bottom = 40.0 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 4 ) -stretch_mode = 0 - -[node name="forest" type="TextureRect" parent="pictures"] - -visible = false -margin_right = 40.0 -margin_bottom = 40.0 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 5 ) -stretch_mode = 0 - -[node name="effects" type="Control" parent="."] - -anchor_right = 1 -anchor_bottom = 1 -margin_right = -20.0 -rect_clip_content = false -mouse_filter = 0 -size_flags_horizontal = 2 -size_flags_vertical = 2 - -[node name="disabled" type="Control" parent="effects"] - -visible = false -margin_right = 40.0 -margin_bottom = 40.0 -rect_clip_content = false -mouse_filter = 0 -size_flags_horizontal = 2 -size_flags_vertical = 2 - -[node name="vignette" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 2 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="blur" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 4 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="pixelize" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 6 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="whirl" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 8 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="sepia" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 10 ) -anchor_right = 1 -anchor_bottom = 1 -margin_right = 14.0 -margin_bottom = -2.0 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material", "Visibility" ] - -[node name="negative" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 12 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="contrasted" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 14 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="normalized" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 16 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="BCS" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 18 ) -anchor_right = 1 -anchor_bottom = 1 -margin_top = 3.0 -margin_bottom = -3.0 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="mirage" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 20 ) -anchor_right = 1 -anchor_bottom = 1 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="old_film" type="TextureRect" parent="effects"] - -visible = false -material = SubResource( 22 ) -anchor_right = 1 -anchor_bottom = 1 -margin_left = -3.0 -margin_right = 3.0 -rect_clip_content = false -mouse_filter = 1 -size_flags_horizontal = 2 -size_flags_vertical = 2 -texture = ExtResource( 7 ) -expand = true -stretch_mode = 0 -_sections_unfolded = [ "Material" ] - -[node name="picture" type="OptionButton" parent="."] - -margin_left = 8.0 -margin_top = 7.0 -margin_right = 131.0 -margin_bottom = 28.0 -rect_clip_content = false -mouse_filter = 0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -selected = -1 -items = [ ] - -[node name="effect" type="OptionButton" parent="."] - -margin_left = 137.0 -margin_top = 7.0 -margin_right = 260.0 -margin_bottom = 28.0 -rect_clip_content = false -mouse_filter = 0 -size_flags_horizontal = 2 -size_flags_vertical = 2 -toggle_mode = false -enabled_focus_mode = 2 -shortcut = null -group = null -flat = false -align = 0 -selected = -1 -items = [ ] - -[connection signal="item_selected" from="picture" to="." method="_on_picture_item_selected"] - -[connection signal="item_selected" from="effect" to="." method="_on_effect_item_selected"] - - diff --git a/2d/sdf_font/default_environment.tres b/2d/sdf_font/default_environment.tres index 1fbf69ca..b50899c5 100644 --- a/2d/sdf_font/default_environment.tres +++ b/2d/sdf_font/default_environment.tres @@ -2,80 +2,3 @@ [resource] -background_mode = 0 -background_sky_custom_fov = 0.0 -background_color = Color( 0, 0, 0, 1 ) -background_energy = 1.0 -background_canvas_max_layer = 0 -ambient_light_color = Color( 0, 0, 0, 1 ) -ambient_light_energy = 1.0 -ambient_light_sky_contribution = 1.0 -fog_enabled = false -fog_color = Color( 0.5, 0.6, 0.7, 1 ) -fog_sun_color = Color( 1, 0.9, 0.7, 1 ) -fog_sun_amount = 0.0 -fog_depth_enabled = true -fog_depth_begin = 10.0 -fog_depth_curve = 1.0 -fog_transmit_enabled = false -fog_transmit_curve = 1.0 -fog_height_enabled = false -fog_height_min = 0.0 -fog_height_max = 100.0 -fog_height_curve = 1.0 -tonemap_mode = 0 -tonemap_exposure = 1.0 -tonemap_white = 1.0 -auto_exposure_enabled = false -auto_exposure_scale = 0.4 -auto_exposure_min_luma = 0.05 -auto_exposure_max_luma = 8.0 -auto_exposure_speed = 0.5 -ss_reflections_enabled = false -ss_reflections_max_steps = 64 -ss_reflections_fade_in = 0.15 -ss_reflections_fade_out = 2.0 -ss_reflections_depth_tolerance = 0.2 -ss_reflections_roughness = true -ssao_enabled = false -ssao_radius = 1.0 -ssao_intensity = 1.0 -ssao_radius2 = 0.0 -ssao_intensity2 = 1.0 -ssao_bias = 0.01 -ssao_light_affect = 0.0 -ssao_color = Color( 0, 0, 0, 1 ) -ssao_quality = 0 -ssao_blur = 3 -ssao_edge_sharpness = 4.0 -dof_blur_far_enabled = false -dof_blur_far_distance = 10.0 -dof_blur_far_transition = 5.0 -dof_blur_far_amount = 0.1 -dof_blur_far_quality = 1 -dof_blur_near_enabled = false -dof_blur_near_distance = 2.0 -dof_blur_near_transition = 1.0 -dof_blur_near_amount = 0.1 -dof_blur_near_quality = 1 -glow_enabled = false -glow_levels/1 = false -glow_levels/2 = false -glow_levels/3 = true -glow_levels/4 = false -glow_levels/5 = true -glow_levels/6 = false -glow_levels/7 = false -glow_intensity = 0.8 -glow_strength = 1.0 -glow_bloom = 0.0 -glow_blend_mode = 2 -glow_hdr_threshold = 1.0 -glow_hdr_scale = 2.0 -glow_bicubic_upscale = false -adjustment_enabled = false -adjustment_brightness = 1.0 -adjustment_contrast = 1.0 -adjustment_saturation = 1.0 -_sections_unfolded = [ "Background" ] - diff --git a/2d/sdf_font/icon.png.import b/2d/sdf_font/icon.png.import new file mode 100644 index 00000000..45ee6af7 --- /dev/null +++ b/2d/sdf_font/icon.png.import @@ -0,0 +1,31 @@ +[remap] + +importer="texture" +type="StreamTexture" +path="res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" + +[deps] + +source_file="res://icon.png" +dest_files=[ "res://.import/icon.png-487276ed1e3a0c39cad0279d744ee560.stex" ] + +[params] + +compress/mode=0 +compress/lossy_quality=0.7 +compress/hdr_mode=0 +compress/bptc_ldr=0 +compress/normal_map=0 +flags/repeat=0 +flags/filter=true +flags/mipmaps=false +flags/anisotropic=false +flags/srgb=2 +process/fix_alpha_border=true +process/premult_alpha=false +process/HDR_as_SRGB=false +process/invert_color=false +stream=false +size_limit=0 +detect_3d=true +svg/scale=1.0 diff --git a/2d/sdf_font/project.godot b/2d/sdf_font/project.godot index 9846cd4e..ded9925f 100644 --- a/2d/sdf_font/project.godot +++ b/2d/sdf_font/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/sdf_font/sdf.tscn b/2d/sdf_font/sdf.tscn index 8771a9e9..a6eb537a 100644 --- a/2d/sdf_font/sdf.tscn +++ b/2d/sdf_font/sdf.tscn @@ -3,15 +3,14 @@ [ext_resource path="res://font.font" type="BitmapFont" id=1] [sub_resource type="Animation" id=1] - length = 15.0 loop = true -step = 0.1 tracks/0/type = "value" 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": PoolRealArray( 0, 15 ), "transitions": PoolRealArray( 1, 1 ), @@ -20,15 +19,14 @@ tracks/0/keys = { } [sub_resource type="Animation" id=2] - length = 10.0 loop = true -step = 0.1 tracks/0/type = "value" tracks/0/path = NodePath(".:scale") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/imported = false +tracks/0/enabled = true tracks/0/keys = { "times": PoolRealArray( 0, 5 ), "transitions": PoolRealArray( 1, 1 ), @@ -39,57 +37,26 @@ tracks/0/keys = { [node name="Root Node" type="Node2D"] [node name="base" type="Position2D" parent="."] - position = Vector2( 450, 300 ) -_sections_unfolded = [ "Transform" ] [node name="rotate" type="AnimationPlayer" parent="base"] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") +autoplay = "rotate" anims/rotate = SubResource( 1 ) anims/zoomin_zoomout = SubResource( 2 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] -autoplay = "rotate" [node name="zoom" type="AnimationPlayer" parent="base"] - -playback_process_mode = 1 -playback_default_blend_time = 0.0 -root_node = NodePath("..") -anims/zoomin_zoomout = SubResource( 2 ) -playback/active = true -playback/speed = 1.0 -blend_times = [ ] autoplay = "zoomin_zoomout" +anims/zoomin_zoomout = SubResource( 2 ) [node name="Label" type="Label" parent="base"] - -anchor_left = 0.0 -anchor_top = 0.0 -anchor_right = 0.0 -anchor_bottom = 0.0 margin_left = -169.0 margin_top = -49.0 margin_right = 172.0 margin_bottom = 56.0 -rect_pivot_offset = Vector2( 0, 0 ) -rect_clip_content = false -mouse_filter = 2 -size_flags_horizontal = 1 -size_flags_vertical = 4 custom_fonts/font = ExtResource( 1 ) 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 ) text = "Signed Distance Field Font!!" align = 1 -percent_visible = 1.0 -lines_skipped = 0 -max_lines_visible = -1 -_sections_unfolded = [ "custom_colors", "custom_fonts" ] - diff --git a/2d/sprite_shaders/default_env.tres b/2d/sprite_shaders/default_env.tres index ad86b722..4b7cb0ac 100644 --- a/2d/sprite_shaders/default_env.tres +++ b/2d/sprite_shaders/default_env.tres @@ -1,101 +1,14 @@ [gd_resource type="Environment" load_steps=2 format=2] [sub_resource type="ProceduralSky" id=1] - -radiance_size = 4 sky_top_color = Color( 0.0470588, 0.454902, 0.976471, 1 ) sky_horizon_color = Color( 0.556863, 0.823529, 0.909804, 1 ) sky_curve = 0.25 -sky_energy = 1.0 ground_bottom_color = Color( 0.101961, 0.145098, 0.188235, 1 ) ground_horizon_color = Color( 0.482353, 0.788235, 0.952941, 1 ) ground_curve = 0.01 -ground_energy = 1.0 -sun_color = Color( 1, 1, 1, 1 ) -sun_latitude = 35.0 -sun_longitude = 0.0 -sun_angle_min = 1.0 -sun_angle_max = 100.0 -sun_curve = 0.05 -sun_energy = 16.0 -texture_size = 2 [resource] - background_mode = 2 background_sky = SubResource( 1 ) -background_sky_custom_fov = 0.0 -background_color = Color( 0, 0, 0, 1 ) -background_energy = 1.0 -background_canvas_max_layer = 0 -ambient_light_color = Color( 0, 0, 0, 1 ) -ambient_light_energy = 1.0 -ambient_light_sky_contribution = 1.0 -fog_enabled = false -fog_color = Color( 0.5, 0.6, 0.7, 1 ) -fog_sun_color = Color( 1, 0.9, 0.7, 1 ) -fog_sun_amount = 0.0 -fog_depth_enabled = true -fog_depth_begin = 10.0 -fog_depth_curve = 1.0 -fog_transmit_enabled = false -fog_transmit_curve = 1.0 -fog_height_enabled = false -fog_height_min = 0.0 -fog_height_max = 100.0 -fog_height_curve = 1.0 -tonemap_mode = 0 -tonemap_exposure = 1.0 -tonemap_white = 1.0 -auto_exposure_enabled = false -auto_exposure_scale = 0.4 -auto_exposure_min_luma = 0.05 -auto_exposure_max_luma = 8.0 -auto_exposure_speed = 0.5 -ss_reflections_enabled = false -ss_reflections_max_steps = 64 -ss_reflections_fade_in = 0.15 -ss_reflections_fade_out = 2.0 -ss_reflections_depth_tolerance = 0.2 -ss_reflections_roughness = true -ssao_enabled = false -ssao_radius = 1.0 -ssao_intensity = 1.0 -ssao_radius2 = 0.0 -ssao_intensity2 = 1.0 -ssao_bias = 0.01 -ssao_light_affect = 0.0 -ssao_color = Color( 0, 0, 0, 1 ) -ssao_quality = 0 -ssao_blur = 3 -ssao_edge_sharpness = 4.0 -dof_blur_far_enabled = false -dof_blur_far_distance = 10.0 -dof_blur_far_transition = 5.0 -dof_blur_far_amount = 0.1 -dof_blur_far_quality = 1 -dof_blur_near_enabled = false -dof_blur_near_distance = 2.0 -dof_blur_near_transition = 1.0 -dof_blur_near_amount = 0.1 -dof_blur_near_quality = 1 -glow_enabled = false -glow_levels/1 = false -glow_levels/2 = false -glow_levels/3 = true -glow_levels/4 = false -glow_levels/5 = true -glow_levels/6 = false -glow_levels/7 = false -glow_intensity = 0.8 -glow_strength = 1.0 -glow_bloom = 0.0 -glow_blend_mode = 2 -glow_hdr_threshold = 1.0 -glow_hdr_scale = 2.0 -glow_bicubic_upscale = false -adjustment_enabled = false -adjustment_brightness = 1.0 -adjustment_contrast = 1.0 -adjustment_saturation = 1.0 diff --git a/2d/sprite_shaders/project.godot b/2d/sprite_shaders/project.godot index 0c6d1f16..440c1b8a 100644 --- a/2d/sprite_shaders/project.godot +++ b/2d/sprite_shaders/project.godot @@ -6,7 +6,12 @@ ; [section] ; section goes between [] ; param=value ; assign values to parameters -config_version=3 +config_version=4 + +_global_script_classes=[ ] +_global_script_class_icons={ + +} [application] diff --git a/2d/sprite_shaders/sprite_shaders.tscn b/2d/sprite_shaders/sprite_shaders.tscn index ee7c1dd2..603be791 100644 --- a/2d/sprite_shaders/sprite_shaders.tscn +++ b/2d/sprite_shaders/sprite_shaders.tscn @@ -1,420 +1,322 @@ -[gd_scene load_steps=23 format=2] +[gd_scene load_steps=22 format=2] [ext_resource path="res://godotea.png" type="Texture" id=1] [sub_resource type="Shader" id=1] - code = "shader_type canvas_item; -uniform float outline_width=2.0; -uniform vec4 outline_color: hint_color; -void fragment(){ -vec4 col = texture(TEXTURE,UV); -vec2 ps = TEXTURE_PIXEL_SIZE; -float a; -float maxa=col.a; -float mina=col.a; -a=texture(TEXTURE,UV+vec2(0,-outline_width)*ps).a; -maxa=max(a,maxa); -mina=min(a,mina); -a=texture(TEXTURE,UV+vec2(0,outline_width)*ps).a; -maxa=max(a,maxa); -mina=min(a,mina); -a=texture(TEXTURE,UV+vec2(-outline_width,0)*ps).a; -maxa=max(a,maxa); -mina=min(a,mina); -a=texture(TEXTURE,UV+vec2(outline_width,0)*ps).a; -maxa=max(a,maxa); -mina=min(a,mina); +uniform float outline_width = 2.0; +uniform vec4 outline_color : hint_color; -COLOR=mix(col,outline_color,maxa-mina); +void fragment() { + vec4 col = texture(TEXTURE, UV); + vec2 ps = TEXTURE_PIXEL_SIZE; + float a; + float maxa = col.a; + float mina = col.a; + + a = texture(TEXTURE, UV + vec2(0.0, -outline_width) * ps).a; + maxa = max(a, maxa); + mina = min(a, mina); + + a = texture(TEXTURE, UV + vec2(0.0, outline_width) * ps).a; + maxa = max(a, maxa); + mina = min(a, mina); + + a = texture(TEXTURE, UV + vec2(-outline_width, 0.0) * ps).a; + maxa = max(a, maxa); + mina = min(a, mina); + + a = texture(TEXTURE, UV + vec2(outline_width, 0.0) * ps).a; + maxa = max(a, maxa); + mina = min(a, mina); + + COLOR = mix(col, outline_color, maxa - mina); }" [sub_resource type="ShaderMaterial" id=2] - -render_priority = 0 shader = SubResource( 1 ) -shader_param/outline_width = null +shader_param/outline_width = 2.0 shader_param/outline_color = Color( 0, 1, 0.109375, 1 ) -_sections_unfolded = [ "shader_param" ] [sub_resource type="ShaderMaterial" id=3] -render_priority = 0 - -[sub_resource type="Shader" id=4] - -code = "shader_type canvas_item; -uniform float outline_width = 2.0; -uniform vec4 outline_color: hint_color; - -void fragment(){ - vec4 col = texture(TEXTURE, UV); - vec2 ps = TEXTURE_PIXEL_SIZE; - float a; - float maxa = col.a; - float mina = col.a; - - a = texture(TEXTURE, UV + vec2(0, -outline_width)*ps).a; - maxa = max(a, maxa); - mina = min(a, mina); - - a = texture(TEXTURE, UV + vec2(0, outline_width)*ps).a; - maxa = max(a, maxa); - mina = min(a, mina); - - a = texture(TEXTURE, UV + vec2(-outline_width,0)*ps).a; - maxa = max(a, maxa); - mina = min(a, mina); - - a = texture(TEXTURE, UV + vec2(outline_width, 0)*ps).a; - maxa = max(a, maxa); - mina = min(a, mina); - - COLOR = mix(col, outline_color, maxa-mina); - }" - -[sub_resource type="ShaderMaterial" id=5] - -render_priority = 0 -shader = SubResource( 4 ) +[sub_resource type="ShaderMaterial" id=4] +shader = SubResource( 1 ) shader_param/outline_width = 4.0 shader_param/outline_color = Color( 0, 0, 0, 1 ) -_sections_unfolded = [ "Resource", "shader_param" ] - -[sub_resource type="Shader" id=6] +[sub_resource type="Shader" id=5] code = "shader_type canvas_item; render_mode blend_premul_alpha; -//this shader only works properly with premultiplied alpha blend mode +// 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 : hint_color; -void fragment(){ +void fragment() { vec4 col = texture(TEXTURE, UV); vec2 ps = TEXTURE_PIXEL_SIZE; float a; float maxa = col.a; float mina = col.a; - - a = texture(TEXTURE, UV + vec2(0, -aura_width)*ps).a; - maxa = max(a, maxa); + + a = texture(TEXTURE, UV + vec2(0.0, -aura_width) * ps).a; + maxa = max(a, maxa); mina = min(a, mina); - - a = texture(TEXTURE, UV + vec2(0, aura_width)*ps).a; - maxa = max(a, maxa); + + a = texture(TEXTURE, UV + vec2(0.0, aura_width) * ps).a; + maxa = max(a, maxa); mina = min(a, mina); - - a = texture(TEXTURE, UV + vec2(-aura_width, 0)*ps).a; - maxa = max(a, maxa); + + a = texture(TEXTURE, UV + vec2(-aura_width, 0.0) * ps).a; + maxa = max(a, maxa); mina = min(a, mina); - - a = texture(TEXTURE, UV + vec2(aura_width, 0)*ps).a; - maxa = max(a, maxa); + + a = texture(TEXTURE, UV + vec2(aura_width, 0.0) * ps).a; + maxa = max(a, maxa); mina = min(a, mina); - + col.rgb *= col.a; - + COLOR = col; - float auraa = (maxa-mina); - - COLOR.rgb += aura_color.rgb*(auraa); - - }" + COLOR.rgb += aura_color.rgb * (maxa - mina); +}" -[sub_resource type="ShaderMaterial" id=7] - -render_priority = 0 -shader = SubResource( 6 ) +[sub_resource type="ShaderMaterial" id=6] +shader = SubResource( 5 ) shader_param/aura_width = 6.0 shader_param/aura_color = Color( 0.143326, 0.33235, 0.677765, 0.442 ) -_sections_unfolded = [ "shader_param" ] - -[sub_resource type="Shader" id=8] +[sub_resource type="Shader" id=7] code = "shader_type canvas_item; render_mode blend_mix; uniform float radius = 4.0; -void fragment(){ +void fragment() { vec4 col = texture(TEXTURE, UV); vec2 ps = TEXTURE_PIXEL_SIZE; - - col += texture(TEXTURE, UV + vec2(0, -radius)*ps); - col += texture(TEXTURE, UV + vec2(0, radius)*ps); - col += texture(TEXTURE, UV + vec2(-radius, 0)*ps); - col += texture(TEXTURE, UV + vec2(radius, 0)*ps); + + col += texture(TEXTURE, UV + vec2(0.0, -radius) * ps); + col += texture(TEXTURE, UV + vec2(0.0, radius) * ps); + col += texture(TEXTURE, UV + vec2(-radius, 0.0) * ps); + col += texture(TEXTURE, UV + vec2(radius, 0.0) * ps); col /= 5.0; - + COLOR = col; - }" +}" -[sub_resource type="ShaderMaterial" id=9] - -render_priority = 0 -shader = SubResource( 8 ) +[sub_resource type="ShaderMaterial" id=8] +shader = SubResource( 7 ) shader_param/radius = 4.0 -_sections_unfolded = [ "shader_param" ] - -[sub_resource type="Shader" id=10] +[sub_resource type="Shader" id=9] code = "shader_type canvas_item; render_mode blend_mix; uniform float fattyness = 2.0; -void fragment(){ - vec2 ruv = UV - vec2(0.5,0.5); +void fragment() { + vec2 ruv = UV - vec2(0.5, 0.5); vec2 dir = normalize(ruv); float len = length(ruv); - - len = pow(len*2.0, fattyness)*0.5; - ruv = len*dir; - + + len = pow(len * 2.0, fattyness) * 0.5; + ruv = len * dir; + vec4 col = texture(TEXTURE, ruv + vec2(0.5, 0.5)); - + COLOR = col; }" -[sub_resource type="ShaderMaterial" id=11] - -render_priority = 0 -shader = SubResource( 10 ) +[sub_resource type="ShaderMaterial" id=10] +shader = SubResource( 9 ) shader_param/fattyness = 3.0 -_sections_unfolded = [ "shader_param" ] - -[sub_resource type="Shader" id=12] +[sub_resource type="Shader" id=11] code = "shader_type canvas_item; render_mode blend_mix; uniform float radius = 5.0; -uniform vec4 modulate:hint_color; +uniform vec4 modulate : hint_color; -void fragment(){ +void fragment() { vec2 ps = TEXTURE_PIXEL_SIZE; - - vec4 shadow = texture(TEXTURE, UV + vec2(-radius, -radius)*ps); - - shadow += texture(TEXTURE, UV + vec2(-radius, 0)*ps); - shadow += texture(TEXTURE, UV + vec2(-radius, radius)*ps); - shadow += texture(TEXTURE, UV + vec2(0, -radius)*ps); - shadow += texture(TEXTURE, UV + vec2(0, radius)*ps); - shadow += texture(TEXTURE, UV + vec2(radius, -radius)*ps); - shadow += texture(TEXTURE, UV + vec2(radius, 0)*ps); - shadow += texture(TEXTURE, UV + vec2(radius, radius)*ps); + + vec4 shadow = texture(TEXTURE, UV + vec2(-radius, -radius) * ps); + + shadow += texture(TEXTURE, UV + vec2(-radius, 0.0) * ps); + shadow += texture(TEXTURE, UV + vec2(-radius, radius) * ps); + shadow += texture(TEXTURE, UV + vec2(0.0, -radius) * ps); + shadow += texture(TEXTURE, UV + vec2(0.0, radius) * ps); + shadow += texture(TEXTURE, UV + vec2(radius, -radius) * ps); + shadow += texture(TEXTURE, UV + vec2(radius, 0.0) * ps); + shadow += texture(TEXTURE, UV + vec2(radius, radius) * ps); shadow /= 8.0; shadow *= modulate; - + vec4 col = texture(TEXTURE, UV); COLOR = mix(shadow, col, col.a); - }" +}" -[sub_resource type="ShaderMaterial" id=13] - -render_priority = 0 -shader = SubResource( 12 ) +[sub_resource type="ShaderMaterial" id=12] +shader = SubResource( 11 ) shader_param/radius = 8.0 shader_param/modulate = Color( 0, 0, 0, 0.501961 ) -_sections_unfolded = [ "shader_param" ] - -[sub_resource type="Shader" id=14] +[sub_resource type="Shader" id=13] code = "shader_type canvas_item; render_mode blend_mix; -uniform vec2 offset = vec2(8,8); -uniform vec4 modulate:hint_color; +uniform vec2 offset = vec2(8.0, 8.0); +uniform vec4 modulate : hint_color; -void fragment(){ +void fragment() { vec2 ps = TEXTURE_PIXEL_SIZE; - - vec4 shadow = vec4(modulate.rgb, texture(TEXTURE, UV - offset*ps).a*modulate.a); + + vec4 shadow = vec4(modulate.rgb, texture(TEXTURE, UV - offset * ps).a * modulate.a); vec4 col = texture(TEXTURE, UV); - + COLOR = mix(shadow, col, col.a); - }" +}" -[sub_resource type="ShaderMaterial" id=15] - -render_priority = 0 -shader = SubResource( 14 ) +[sub_resource type="ShaderMaterial" id=14] +shader = SubResource( 13 ) shader_param/offset = Vector2( 20, 20 ) shader_param/modulate = Color( 0.90625, 0.269043, 0.746948, 1 ) -_sections_unfolded = [ "shader_param" ] - -[sub_resource type="Shader" id=16] +[sub_resource type="Shader" id=15] code = "shader_type canvas_item; render_mode blend_mix; -uniform vec4 modulate:hint_color; +uniform vec4 modulate : hint_color; -void fragment(){ - - COLOR = vec4(modulate.rgb, texture(TEXTURE, UV).a*modulate.a); - - }" +void fragment() { + COLOR = vec4(modulate.rgb, texture(TEXTURE, UV).a * modulate.a); +}" -[sub_resource type="ShaderMaterial" id=17] - -render_priority = 0 -shader = SubResource( 16 ) +[sub_resource type="ShaderMaterial" id=16] +shader = SubResource( 15 ) shader_param/modulate = Color( 1, 0.0234375, 0.481201, 0.596706 ) -_sections_unfolded = [ "shader_param" ] - -[sub_resource type="Shader" id=18] +[sub_resource type="Shader" id=17] code = "shader_type canvas_item; render_mode blend_premul_alpha; uniform float radius = 2.0; uniform float amount = 0.6; -void fragment(){ +void fragment() { float r = radius; vec2 ps = TEXTURE_PIXEL_SIZE; vec4 col = texture(TEXTURE, UV); vec4 glow = col; - - glow += texture(TEXTURE, UV + vec2(-r, -r)*ps); - glow += texture(TEXTURE, UV + vec2(-r, 0)*ps); - glow += texture(TEXTURE, UV + vec2(-r, r)*ps); - glow += texture(TEXTURE, UV + vec2(0, -r)*ps); - glow += texture(TEXTURE, UV + vec2(0, r)*ps); - glow += texture(TEXTURE, UV + vec2(r, -r)*ps); - glow += texture(TEXTURE, UV + vec2(r, 0)*ps); - glow += texture(TEXTURE, UV + vec2(r, r)*ps); - + + glow += texture(TEXTURE, UV + vec2(-r, -r) * ps); + glow += texture(TEXTURE, UV + vec2(-r, 0.0) * ps); + glow += texture(TEXTURE, UV + vec2(-r, r) * ps); + glow += texture(TEXTURE, UV + vec2(0.0, -r) * ps); + glow += texture(TEXTURE, UV + vec2(0.0, r) * ps); + glow += texture(TEXTURE, UV + vec2(r, -r) * ps); + glow += texture(TEXTURE, UV + vec2(r, 0.0) * ps); + glow += texture(TEXTURE, UV + vec2(r, r) * ps); + r *= 2.0; - glow += texture(TEXTURE, UV + vec2(-r, -r)*ps); - glow += texture(TEXTURE, UV + vec2(-r, 0)*ps); - glow += texture(TEXTURE, UV + vec2(-r, r)*ps); - glow += texture(TEXTURE, UV + vec2(0, -r)*ps); - glow += texture(TEXTURE, UV + vec2(0, r)*ps); - glow += texture(TEXTURE, UV + vec2(r, -r)*ps); - glow += texture(TEXTURE, UV + vec2(r, 0)*ps); - glow += texture(TEXTURE, UV + vec2(r, r)*ps); - + glow += texture(TEXTURE, UV + vec2(-r, -r) * ps); + glow += texture(TEXTURE, UV + vec2(-r, 0.0) * ps); + glow += texture(TEXTURE, UV + vec2(-r, r) * ps); + glow += texture(TEXTURE, UV + vec2(0.0, -r) * ps); + glow += texture(TEXTURE, UV + vec2(0.0, r) * ps); + glow += texture(TEXTURE, UV + vec2(r, -r) * ps); + glow += texture(TEXTURE, UV + vec2(r, 0.0) * ps); + glow += texture(TEXTURE, UV + vec2(r, r) * ps); + glow /= 17.0; glow *= amount; col.rgb *= col.a; - + COLOR = glow + col; - - }" +}" -[sub_resource type="ShaderMaterial" id=19] - -render_priority = 0 -shader = SubResource( 18 ) +[sub_resource type="ShaderMaterial" id=18] +shader = SubResource( 17 ) shader_param/radius = 12.0 shader_param/amount = 0.5 -_sections_unfolded = [ "shader_param" ] - -[sub_resource type="Shader" id=20] +[sub_resource type="Shader" id=19] code = "shader_type canvas_item; render_mode blend_mix; uniform float amount = 20.0; -void fragment(){ - - vec2 uv = UV*0.05; - float a = fract(sin(dot(UV, vec2(12.9898, 78.233)))*438.5453); +void fragment() { + vec2 uv = UV * 0.05; + float a = fract(sin(dot(UV, vec2(12.9898, 78.233))) * 438.5453); vec4 col = texture(TEXTURE, UV); - + col.a *= pow(a, amount); - + COLOR = col; - }" +}" -[sub_resource type="ShaderMaterial" id=21] - -render_priority = 0 -shader = SubResource( 20 ) +[sub_resource type="ShaderMaterial" id=20] +shader = SubResource( 19 ) shader_param/amount = 4.0 -_sections_unfolded = [ "shader_param" ] - -[node name="shaders" type="Node2D" index="0"] +[node name="shaders" type="Node2D"] material = SubResource( 2 ) position = Vector2( 263.737, 179.444 ) scale = Vector2( 0.3, 0.3 ) -_sections_unfolded = [ "Material", "Region", "Transform" ] - -[node name="normal" type="Sprite" parent="." index="0"] +[node name="normal" type="Sprite" parent="."] material = SubResource( 3 ) position = Vector2( -2.16144, 0 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Offset" ] -[node name="outline" type="Sprite" parent="." index="1"] - -material = SubResource( 5 ) +[node name="outline" type="Sprite" parent="."] +material = SubResource( 4 ) position = Vector2( 400, 0 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Transform" ] -[node name="aura" type="Sprite" parent="." index="2"] - -material = SubResource( 7 ) +[node name="aura" type="Sprite" parent="."] +material = SubResource( 6 ) position = Vector2( 800, 0 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Animation", "Material", "Offset", "Region", "Transform", "Visibility", "Z Index" ] -[node name="blur" type="Sprite" parent="." index="3"] - -material = SubResource( 9 ) +[node name="blur" type="Sprite" parent="."] +material = SubResource( 8 ) position = Vector2( 1200, 0 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Transform" ] -[node name="fatty" type="Sprite" parent="." index="4"] - -material = SubResource( 11 ) +[node name="fatty" type="Sprite" parent="."] +material = SubResource( 10 ) position = Vector2( 1600, 0 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Transform" ] -[node name="dropshadow" type="Sprite" parent="." index="5"] - -material = SubResource( 13 ) +[node name="dropshadow" type="Sprite" parent="."] +material = SubResource( 12 ) position = Vector2( 0, 800 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Transform" ] -[node name="offsetshadow" type="Sprite" parent="." index="6"] - -material = SubResource( 15 ) +[node name="offsetshadow" type="Sprite" parent="."] +material = SubResource( 14 ) position = Vector2( 400, 800 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Transform" ] -[node name="silouette" type="Sprite" parent="." index="7"] - -material = SubResource( 17 ) +[node name="silouette" type="Sprite" parent="."] +material = SubResource( 16 ) position = Vector2( 800, 800 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Transform" ] -[node name="glow" type="Sprite" parent="." index="8"] - -material = SubResource( 19 ) +[node name="glow" type="Sprite" parent="."] +material = SubResource( 18 ) position = Vector2( 1200, 800 ) texture = ExtResource( 1 ) -_sections_unfolded = [ "Material", "Transform", "Z Index" ] -[node name="dissintegrate" type="Sprite" parent="." index="9"] - -material = SubResource( 21 ) +[node name="dissintegrate" type="Sprite" parent="."] +material = SubResource( 20 ) position = Vector2( 1600, 800 ) texture = ExtResource( 1 ) region_rect = Rect2( 141, 115, 39, 6 ) -_sections_unfolded = [ "Material", "Transform" ] -