From 31d1c0c1122717b3ad74aeb94255bc38def52747 Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Tue, 26 Mar 2024 18:01:58 +0100 Subject: [PATCH] Remove old and unused project settings, update various demos for 4.2 (#1024) - Move all demo projects that don't require Forward+/Mobile-only features to the Compatibility rendering method. This improves performance significantly on low-end devices and ensures visuals are identical to a web export of the demo. - Set deadzone on all inputs to 0.2 for better gamepad usability. - Remove reliance on `default_env.tres` to use built-in Environment resources in the main scene instead (which follows the preview environment workflow). - Remove notices pointing to GDNative or VisualScript, since both were removed in 4.0. - Various bug fixes and usability tweaks to 10+ demos. --- 2d/README.md | 2 +- 2d/bullet_shower/README.md | 2 +- 2d/bullet_shower/project.godot | 7 +- 2d/dodge_the_creeps/README.md | 4 +- 2d/dodge_the_creeps/project.godot | 17 +- 2d/dynamic_tilemap_layers/README.md | 2 +- 2d/dynamic_tilemap_layers/project.godot | 7 +- 2d/finite_state_machine/project.godot | 18 +- 2d/glow/README.md | 2 +- 2d/glow/project.godot | 2 +- 2d/hexagonal_map/README.md | 2 +- 2d/hexagonal_map/project.godot | 10 +- 2d/instancing/README.md | 2 +- 2d/instancing/project.godot | 4 +- 2d/instancing/scene_instancing.tscn | 1 - 2d/isometric/project.godot | 24 +- 2d/kinematic_character/README.md | 2 +- 2d/kinematic_character/project.godot | 9 +- 2d/kinematic_character/world.tscn | 10 +- 2d/light2d_as_mask/README.md | 2 +- 2d/light2d_as_mask/lightmask.tscn | 9 +- 2d/light2d_as_mask/project.godot | 5 + 2d/lights_and_shadows/README.md | 2 +- 2d/lights_and_shadows/light_shadows.tscn | 33 ++- 2d/lights_and_shadows/project.godot | 13 +- 2d/navigation/README.md | 2 +- 2d/navigation/project.godot | 4 +- 2d/navigation_astar/project.godot | 7 +- 2d/particles/README.md | 2 +- 2d/particles/project.godot | 10 +- 2d/physics_platformer/README.md | 2 +- 2d/physics_platformer/coin/coin.tscn | 17 +- 2d/physics_platformer/enemy/enemy.gd | 5 +- 2d/physics_platformer/enemy/enemy.tscn | 10 +- 2d/physics_platformer/player/bullet.tscn | 51 ++-- 2d/physics_platformer/player/player.gd | 30 +-- 2d/physics_platformer/player/player.tscn | 23 +- 2d/physics_platformer/project.godot | 61 ++--- 2d/physics_platformer/stage.tscn | 5 +- 2d/physics_tests/README.md | 2 +- 2d/physics_tests/project.godot | 29 ++- 2d/platformer/README.md | 2 +- 2d/platformer/project.godot | 66 ++--- 2d/pong/README.md | 6 +- 2d/pong/pong.tscn | 1 - 2d/pong/project.godot | 15 +- 2d/role_playing_game/README.md | 2 +- 2d/role_playing_game/project.godot | 12 +- 2d/screen_space_shaders/README.md | 4 +- 2d/screen_space_shaders/project.godot | 5 + 2d/skeleton/README.md | 2 +- 2d/skeleton/level.tscn | 3 +- 2d/skeleton/player/player.tscn | 31 +-- 2d/skeleton/project.godot | 52 ++-- 2d/sprite_shaders/README.md | 4 +- 2d/sprite_shaders/project.godot | 5 +- 2d/sprite_shaders/sprite_shaders.tscn | 13 +- 2d/tween/README.md | 2 +- 2d/tween/project.godot | 7 +- 3d/antialiasing/README.md | 2 +- 3d/antialiasing/project.godot | 2 - 3d/decals/project.godot | 4 +- 3d/global_illumination/project.godot | 22 +- 3d/ik/project.godot | 12 - 3d/kinematic_character/cubelib.tres | 4 +- 3d/kinematic_character/default_env.tres | 24 -- 3d/kinematic_character/level.tscn | 42 ++- 3d/kinematic_character/project.godot | 19 +- 3d/labels_and_texts/project.godot | 2 - 3d/lights_and_shadows/README.md | 2 +- 3d/lights_and_shadows/project.godot | 2 - 3d/material_testers/README.md | 2 +- 3d/material_testers/default_env.tres | 19 -- 3d/material_testers/material_tester.tscn | 27 +- 3d/material_testers/project.godot | 15 -- 3d/occlusion_culling_mesh_lod/README.md | 4 +- 3d/occlusion_culling_mesh_lod/project.godot | 16 +- 3d/particles/project.godot | 2 - 3d/physics_tests/project.godot | 24 +- 3d/platformer/README.md | 2 +- 3d/platformer/default_env.tres | 21 -- 3d/platformer/project.godot | 28 +- 3d/platformer/stage/stage.tscn | 24 +- 3d/procedural_materials/README.md | 2 +- 3d/rigidbody_character/cubelib.tres | 4 +- 3d/rigidbody_character/default_env.tres | 24 -- 3d/rigidbody_character/level.tscn | 42 ++- 3d/rigidbody_character/project.godot | 19 +- 3d/squash_the_creeps/project.godot | 18 +- 3d/squash_the_creeps/screenshots/README.md | 2 - 3d/truck_town/default_env.tres | 20 -- 3d/truck_town/project.godot | 33 +-- 3d/truck_town/town/town_scene.tscn | 46 +++- 3d/variable_rate_shading/README.md | 2 +- 3d/volumetric_fog/project.godot | 24 +- 3d/voxel/project.godot | 42 ++- 3d/waypoints/project.godot | 14 +- audio/README.md | 2 +- audio/bpm_sync/README.md | 2 +- audio/bpm_sync/bpm_sync.tscn | 28 +- audio/bpm_sync/project.godot | 10 +- audio/device_changer/README.md | 2 +- audio/device_changer/project.godot | 31 ++- audio/generator/README.md | 2 +- audio/generator/project.godot | 5 +- audio/mic_record/MicRecord.tscn | 3 + audio/mic_record/README.md | 2 +- audio/mic_record/project.godot | 3 +- audio/midi_piano/README.md | 2 +- audio/midi_piano/piano.tscn | 14 +- audio/midi_piano/project.godot | 13 +- audio/spectrum/project.godot | 3 - audio/text_to_speech/project.godot | 4 + compute/texture/README.md | 2 +- compute/texture/project.godot | 2 +- gui/README.md | 2 +- gui/bidi_and_font_features/bidi.tscn | 1 + gui/control_gallery/control_gallery.tscn | 2 +- gui/gd_paint/README.md | 2 +- gui/gd_paint/paint_root.tscn | 60 ++++- gui/gd_paint/project.godot | 4 +- gui/input_mapping/ActionRemapButton.gd | 6 +- gui/input_mapping/ActionRemapButton.tscn | 2 +- gui/input_mapping/InputRemapMenu.tscn | 87 +++---- gui/input_mapping/README.md | 2 +- gui/input_mapping/project.godot | 23 +- gui/msdf_font/README.md | 2 +- .../montserrat_semibold_msdf.ttf.import | 2 +- gui/msdf_font/project.godot | 5 +- gui/msdf_font/sdf_font_demo.tscn | 4 +- gui/multiple_resolutions/project.godot | 1 + .../Pseudolocalization.tscn | 2 + gui/pseudolocalization/project.godot | 3 +- gui/rich_text_bbcode/project.godot | 2 +- gui/rich_text_bbcode/rich_text_bbcode.tscn | 2 +- gui/translation/README.md | 2 +- gui/translation/flag_japan.png.import | 3 +- gui/translation/flag_spain.png.import | 3 +- gui/translation/flag_uk.png.import | 3 +- gui/translation/font/DroidSans.ttf.import | 24 +- .../font/DroidSansArabic.ttf.import | 24 +- .../font/DroidSansFallback.ttf.import | 24 +- .../font/DroidSansHebrew.ttf.import | 24 +- .../font/DroidSansJapanese.ttf.import | 24 +- gui/translation/font/DroidSansThai.ttf.import | 24 +- gui/translation/font/droid_sans.tres | 28 +- gui/translation/hello_en.wav.import | 2 +- gui/translation/hello_es.wav.import | 2 +- gui/translation/hello_jp.wav.import | 2 +- gui/translation/project.godot | 3 +- gui/translation/speaker.png.import | 3 +- gui/translation/translation_demo.tscn | 35 ++- gui/ui_mirroring/README.md | 2 +- gui/ui_mirroring/fonts/noto_sans_bold.tres | 8 + gui/ui_mirroring/noto_font.tres | 8 - gui/ui_mirroring/project.godot | 10 + gui/ui_mirroring/ui_mirroring.gd | 11 + gui/ui_mirroring/ui_mirroring.tscn | 240 ++++-------------- loading/README.md | 2 +- loading/autoload/README.md | 2 +- loading/autoload/project.godot | 3 +- loading/load_threaded/load_threaded.tscn | 12 +- loading/load_threaded/project.godot | 3 +- loading/runtime_save_load/project.godot | 1 + loading/scene_changer/README.md | 2 +- loading/scene_changer/project.godot | 3 +- loading/scene_changer/scene_a.tscn | 2 + loading/serialization/README.md | 6 +- loading/serialization/project.godot | 3 +- misc/2.5d/README.md | 4 +- misc/2.5d/addons/node25d/shadow_math_25d.gd | 2 +- misc/2.5d/assets/cube/cube.tscn | 19 +- misc/2.5d/assets/demo_scene.tscn | 59 ++--- misc/2.5d/assets/player/player_25d.tscn | 40 ++- misc/2.5d/assets/player/player_math_25d.gd | 13 +- misc/2.5d/assets/ui/control_hints.gd | 4 +- misc/2.5d/assets/ui/overlay.tscn | 7 +- misc/2.5d/assets/ui/overlay_cube.tscn | 17 +- misc/2.5d/project.godot | 49 ++-- misc/README.md | 4 +- misc/compute_shader_heightmap/README.md | 2 +- misc/compute_shader_heightmap/main.gd | 2 +- misc/large_world_coordinates/README.md | 2 +- misc/matrix_transform/README.md | 2 +- misc/matrix_transform/project.godot | 6 +- misc/noise_viewer/README.md | 2 +- misc/noise_viewer/noise_viewer.tscn | 28 +- misc/noise_viewer/noise_viewer_material.tres | 8 +- misc/noise_viewer/project.godot | 6 +- misc/os_test/README.md | 4 +- misc/os_test/actions.gd | 2 +- misc/os_test/project.godot | 6 +- misc/pause/README.md | 2 +- misc/pause/project.godot | 14 +- misc/pause/spinpause.tscn | 18 +- misc/window_management/README.md | 2 +- misc/window_management/project.godot | 23 +- mobile/README.md | 2 +- mobile/android_iap/README.md | 2 +- mobile/android_iap/iap_demo.gd | 12 +- mobile/android_iap/main.tscn | 62 ++--- mobile/android_iap/project.godot | 5 + mobile/multitouch_cubes/CubeScene.tscn | 8 +- mobile/multitouch_cubes/Main.tscn | 8 +- mobile/multitouch_cubes/README.md | 2 +- mobile/multitouch_cubes/default_env.tres | 4 - mobile/multitouch_cubes/project.godot | 8 +- mobile/multitouch_view/README.md | 4 +- mobile/multitouch_view/project.godot | 7 + mobile/sensors/default_env.tres | 7 - mobile/sensors/main.tscn | 6 +- mobile/sensors/project.godot | 5 +- mono/2.5d/project.godot | 47 ++-- mono/android_iap/project.godot | 5 + mono/dodge_the_creeps/README.md | 2 - mono/dodge_the_creeps/project.godot | 13 +- mono/multiplayer_pong/project.godot | 11 +- mono/pong/README.md | 4 - mono/pong/project.godot | 8 +- networking/README.md | 4 +- networking/multiplayer_bomber/README.md | 8 +- networking/multiplayer_bomber/lobby.tscn | 39 +-- networking/multiplayer_bomber/project.godot | 61 +++-- networking/multiplayer_pong/README.md | 7 +- networking/multiplayer_pong/lobby.tscn | 104 +++++--- networking/multiplayer_pong/project.godot | 15 +- networking/webrtc_minimal/README.md | 2 +- networking/webrtc_minimal/main.tscn | 7 +- networking/webrtc_minimal/project.godot | 5 + networking/webrtc_signaling/README.md | 4 +- networking/webrtc_signaling/demo/main.tscn | 49 +--- networking/webrtc_signaling/project.godot | 5 +- networking/websocket_chat/README.md | 2 +- networking/websocket_chat/project.godot | 10 + networking/websocket_minimal/README.md | 4 +- networking/websocket_minimal/project.godot | 9 +- networking/websocket_multiplayer/README.md | 2 +- .../websocket_multiplayer/project.godot | 10 +- .../websocket_multiplayer/scene/combo.tscn | 32 --- .../websocket_multiplayer/script/game.gd | 8 +- .../websocket_multiplayer/script/main.gd | 2 +- plugins/README.md | 11 +- plugins/addons/custom_node/README.md | 4 +- .../material_creator/material_creator.gd | 14 +- .../material_creator/material_dock.tscn | 64 ++--- plugins/project.godot | 6 +- viewport/2d_in_3d/2d_in_3d.tscn | 3 +- viewport/2d_in_3d/README.md | 2 +- viewport/2d_in_3d/project.godot | 13 +- viewport/3d_in_2d/3d_in_2d.tscn | 21 +- viewport/3d_in_2d/README.md | 2 +- viewport/3d_in_2d/project.godot | 5 + viewport/3d_scaling/project.godot | 10 +- viewport/README.md | 4 +- viewport/dynamic_split_screen/README.md | 2 +- viewport/dynamic_split_screen/project.godot | 23 +- .../dynamic_split_screen/split_screen.tscn | 4 +- viewport/gui_in_3d/README.md | 2 +- viewport/gui_in_3d/gui_in_3d.tscn | 7 +- viewport/gui_in_3d/gui_panel_3d.tscn | 63 +++-- viewport/gui_in_3d/project.godot | 7 +- viewport/screen_capture/README.md | 2 +- viewport/screen_capture/project.godot | 5 + viewport/screen_capture/screen_capture.tscn | 4 +- .../README.md | 3 +- xr/openxr_origin_centric_movement/README.md | 3 +- 266 files changed, 1615 insertions(+), 1825 deletions(-) delete mode 100644 3d/kinematic_character/default_env.tres delete mode 100644 3d/material_testers/default_env.tres delete mode 100644 3d/platformer/default_env.tres delete mode 100644 3d/rigidbody_character/default_env.tres delete mode 100644 3d/truck_town/default_env.tres create mode 100644 gui/ui_mirroring/fonts/noto_sans_bold.tres delete mode 100644 gui/ui_mirroring/noto_font.tres create mode 100644 gui/ui_mirroring/ui_mirroring.gd delete mode 100644 mobile/multitouch_cubes/default_env.tres delete mode 100644 mobile/sensors/default_env.tres diff --git a/2d/README.md b/2d/README.md index 312d346028..e3ba61e879 100644 --- a/2d/README.md +++ b/2d/README.md @@ -3,6 +3,6 @@ These demos are all 2D, but otherwise do not have a common theme. Languages: Most have GDScript, some have -[GDSL](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) +[Godot shader language](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) Renderers: 4 of them are GLES 3, but most are GLES 2 diff --git a/2d/bullet_shower/README.md b/2d/bullet_shower/README.md index df616b0a79..8156a70675 100644 --- a/2d/bullet_shower/README.md +++ b/2d/bullet_shower/README.md @@ -9,7 +9,7 @@ in the documentation for more information. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/887 diff --git a/2d/bullet_shower/project.godot b/2d/bullet_shower/project.godot index 304d43649a..4eb9111034 100644 --- a/2d/bullet_shower/project.godot +++ b/2d/bullet_shower/project.godot @@ -26,10 +26,7 @@ window/stretch/aspect="expand" 2d_physics/layer_1="Player" -[physics] - -2d/cell_size=64 - [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/dodge_the_creeps/README.md b/2d/dodge_the_creeps/README.md index 4f5c80248d..4ce1c1bdbb 100644 --- a/2d/dodge_the_creeps/README.md +++ b/2d/dodge_the_creeps/README.md @@ -10,12 +10,10 @@ consider following the tutorial in the documentation. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Note: There is a C# version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/mono/dodge_the_creeps). -Note: There is a GDNative C++ version available [here](https://github.com/godotengine/gdnative-demos/tree/master/cpp/dodge_the_creeps). - Check out this demo on the asset library: https://godotengine.org/asset-library/asset/515 ## Screenshots diff --git a/2d/dodge_the_creeps/project.godot b/2d/dodge_the_creeps/project.godot index 44f3e42d64..64e93070dd 100644 --- a/2d/dodge_the_creeps/project.godot +++ b/2d/dodge_the_creeps/project.godot @@ -22,10 +22,6 @@ run/main_scene="res://Main.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" -[debug] - -gdscript/warnings/redundant_await=false - [display] window/size/viewport_width=480 @@ -37,7 +33,7 @@ window/stretch/mode="canvas_items" [input] move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) @@ -45,7 +41,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) @@ -53,7 +49,7 @@ move_right={ ] } move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) @@ -61,7 +57,7 @@ move_up={ ] } move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) @@ -69,7 +65,7 @@ move_down={ ] } start_game={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -77,4 +73,5 @@ start_game={ [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/dynamic_tilemap_layers/README.md b/2d/dynamic_tilemap_layers/README.md index 0dd9b53162..a3f8c49851 100644 --- a/2d/dynamic_tilemap_layers/README.md +++ b/2d/dynamic_tilemap_layers/README.md @@ -6,7 +6,7 @@ to disable collisions per layer. Language: GDScript -Renderer: OpenGL +Renderer: Compatibility ## Screenshots diff --git a/2d/dynamic_tilemap_layers/project.godot b/2d/dynamic_tilemap_layers/project.godot index 664d5c0d20..b0589442c6 100644 --- a/2d/dynamic_tilemap_layers/project.godot +++ b/2d/dynamic_tilemap_layers/project.godot @@ -28,7 +28,7 @@ window/stretch/aspect="expand" [input] jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) @@ -38,7 +38,7 @@ jump={ ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -46,7 +46,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -62,5 +62,6 @@ common/physics_ticks_per_second=120 [rendering] renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.156863, 0.133333, 0.25098, 1) anti_aliasing/quality/msaa_2d=2 diff --git a/2d/finite_state_machine/project.godot b/2d/finite_state_machine/project.godot index 86bf4c1138..965618159b 100644 --- a/2d/finite_state_machine/project.godot +++ b/2d/finite_state_machine/project.godot @@ -29,7 +29,7 @@ window/stretch/aspect="expand" [input] move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) @@ -37,7 +37,7 @@ move_left={ ] } move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":122,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) @@ -45,7 +45,7 @@ move_up={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) @@ -53,7 +53,7 @@ move_right={ ] } move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) @@ -61,31 +61,31 @@ move_down={ ] } fire={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } run={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194325,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } simulate_damage={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":88,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } attack={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":true,"script":null) ] diff --git a/2d/glow/README.md b/2d/glow/README.md index f0966c2278..3250acd39b 100644 --- a/2d/glow/README.md +++ b/2d/glow/README.md @@ -6,7 +6,7 @@ Slide the cave image left and right to observe the glow effect at work. Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ Check out this demo on the asset library: https://godotengine.org/asset-library/asset/110 diff --git a/2d/glow/project.godot b/2d/glow/project.godot index a441adc259..7dbfc4edbf 100644 --- a/2d/glow/project.godot +++ b/2d/glow/project.godot @@ -30,7 +30,7 @@ window/stretch/aspect="expand" [input] toggle_glow_map={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":71,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } diff --git a/2d/hexagonal_map/README.md b/2d/hexagonal_map/README.md index 02601b1533..23023463e8 100644 --- a/2d/hexagonal_map/README.md +++ b/2d/hexagonal_map/README.md @@ -4,7 +4,7 @@ Very simple demo showing a hexagonal TileMap and TileSet. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/111 diff --git a/2d/hexagonal_map/project.godot b/2d/hexagonal_map/project.godot index 172ce2bda2..684a7f354c 100644 --- a/2d/hexagonal_map/project.godot +++ b/2d/hexagonal_map/project.godot @@ -25,7 +25,7 @@ window/stretch/aspect="expand" [input] move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -33,7 +33,7 @@ move_down={ ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -41,7 +41,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -49,7 +49,7 @@ move_right={ ] } move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -63,4 +63,6 @@ common/physics_ticks_per_second=120 [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.106667, 0.2, 0.1, 1) diff --git a/2d/instancing/README.md b/2d/instancing/README.md index 464008100b..6e6f9765ae 100644 --- a/2d/instancing/README.md +++ b/2d/instancing/README.md @@ -5,7 +5,7 @@ make many duplicates of the same object. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/148 diff --git a/2d/instancing/project.godot b/2d/instancing/project.godot index 27564b8f90..c9b993b2c1 100644 --- a/2d/instancing/project.godot +++ b/2d/instancing/project.godot @@ -29,6 +29,6 @@ window/stretch/aspect="expand" [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.239216, 0.0823529, 0.156863, 1) -anti_aliasing/quality/msaa_2d=2 diff --git a/2d/instancing/scene_instancing.tscn b/2d/instancing/scene_instancing.tscn index 4b82a2d4f1..6b42e2ae72 100644 --- a/2d/instancing/scene_instancing.tscn +++ b/2d/instancing/scene_instancing.tscn @@ -99,4 +99,3 @@ physics_material_override = SubResource("10") [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(576, 324) -current = true diff --git a/2d/isometric/project.godot b/2d/isometric/project.godot index a1efc838ae..f2790eb2c9 100644 --- a/2d/isometric/project.godot +++ b/2d/isometric/project.godot @@ -25,19 +25,10 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[gdnative] - -singletons=[] - -[image_loader] - -filter=false -gen_mipmaps=false - [input] move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194322,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) @@ -45,7 +36,7 @@ move_down={ ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) @@ -53,7 +44,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) @@ -61,7 +52,7 @@ move_right={ ] } move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) @@ -73,13 +64,8 @@ move_up={ common/physics_ticks_per_second=120 -[rasterizer] - -use_pixel_snap=true - [rendering] renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.0784314, 0.105882, 0.145098, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true diff --git a/2d/kinematic_character/README.md b/2d/kinematic_character/README.md index cb7ad5ccdf..9c34681ac5 100644 --- a/2d/kinematic_character/README.md +++ b/2d/kinematic_character/README.md @@ -7,7 +7,7 @@ can jump through one-way collision platforms, etc. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/113 diff --git a/2d/kinematic_character/project.godot b/2d/kinematic_character/project.godot index 53ee5a5506..26c2bf62c8 100644 --- a/2d/kinematic_character/project.godot +++ b/2d/kinematic_character/project.godot @@ -29,7 +29,7 @@ window/stretch/aspect="expand" [input] jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) @@ -39,7 +39,7 @@ jump={ ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -47,7 +47,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -62,5 +62,6 @@ common/physics_ticks_per_second=120 [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.156863, 0.133333, 0.25098, 1) -anti_aliasing/quality/msaa_2d=2 diff --git a/2d/kinematic_character/world.tscn b/2d/kinematic_character/world.tscn index 7789a45a59..66f44a7815 100644 --- a/2d/kinematic_character/world.tscn +++ b/2d/kinematic_character/world.tscn @@ -138,11 +138,11 @@ modulate = Color(0.4, 2, 0.8, 1) texture = ExtResource("2") [node name="AnimationPlayer" type="AnimationPlayer" parent="MovingPlatform1"] -autoplay = "leftright" -playback_process_mode = 0 +callback_mode_process = 0 libraries = { "": SubResource("AnimationLibrary_2v3oa") } +autoplay = "leftright" [node name="MovingPlatform2" type="CharacterBody2D" parent="."] position = Vector2(88.3493, 152) @@ -155,11 +155,11 @@ modulate = Color(0.4, 2, 0.8, 1) texture = ExtResource("2") [node name="AnimationPlayer" type="AnimationPlayer" parent="MovingPlatform2"] -autoplay = "updown" -playback_process_mode = 0 +callback_mode_process = 0 libraries = { "": SubResource("AnimationLibrary_j555p") } +autoplay = "updown" [node name="Princess" type="Area2D" parent="."] position = Vector2(97, 72) @@ -238,10 +238,10 @@ texture = ExtResource("5") shape = SubResource("9") [node name="AnimationPlayer" type="AnimationPlayer" parent="Circle"] -autoplay = "turn" libraries = { "": SubResource("AnimationLibrary_gijtf") } +autoplay = "turn" [node name="BoxSprite" type="Sprite2D" parent="Circle"] modulate = Color(0.4, 2, 0.8, 1) diff --git a/2d/light2d_as_mask/README.md b/2d/light2d_as_mask/README.md index 8402c6e04b..038447d5c4 100644 --- a/2d/light2d_as_mask/README.md +++ b/2d/light2d_as_mask/README.md @@ -4,7 +4,7 @@ Example of how to use 2D lights to mask objects on screen. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/115 diff --git a/2d/light2d_as_mask/lightmask.tscn b/2d/light2d_as_mask/lightmask.tscn index f2c5c7b772..7d2f61247c 100644 --- a/2d/light2d_as_mask/lightmask.tscn +++ b/2d/light2d_as_mask/lightmask.tscn @@ -8,6 +8,7 @@ light_mode = 2 [sub_resource type="Animation" id="2"] length = 4.0 +loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -55,6 +56,8 @@ layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 @@ -69,22 +72,24 @@ texture = ExtResource("1") [node name="Light1" type="PointLight2D" parent="."] position = Vector2(601.028, 242.639) +blend_mode = 2 texture = ExtResource("2") [node name="Light2" type="PointLight2D" parent="."] position = Vector2(196.528, 185.139) +blend_mode = 2 texture = ExtResource("2") [node name="Light3" type="PointLight2D" parent="."] position = Vector2(442.528, 411.139) +blend_mode = 2 texture = ExtResource("2") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -autoplay = "maskmotion" libraries = { "": SubResource("AnimationLibrary_co4us") } +autoplay = "maskmotion" [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(576, 324) -current = true diff --git a/2d/light2d_as_mask/project.godot b/2d/light2d_as_mask/project.godot index 8d0696e522..2f1208459d 100644 --- a/2d/light2d_as_mask/project.godot +++ b/2d/light2d_as_mask/project.godot @@ -21,3 +21,8 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/lights_and_shadows/README.md b/2d/lights_and_shadows/README.md index 244b5c17f7..1a6410dfee 100644 --- a/2d/lights_and_shadows/README.md +++ b/2d/lights_and_shadows/README.md @@ -6,7 +6,7 @@ and [`LightOccluder2D`](https://docs.godotengine.org/en/latest/classes/class_lig Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/116 diff --git a/2d/lights_and_shadows/light_shadows.tscn b/2d/lights_and_shadows/light_shadows.tscn index 1ace559e7c..3664dd533f 100644 --- a/2d/lights_and_shadows/light_shadows.tscn +++ b/2d/lights_and_shadows/light_shadows.tscn @@ -107,10 +107,8 @@ _data = { "motion3": SubResource("7") } -[sub_resource type="Animation" id="Animation_rgbru"] -resource_name = "rotate_directional_light" -length = 20.0 -loop_mode = 1 +[sub_resource type="Animation" id="Animation_emv7u"] +length = 0.001 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -118,14 +116,16 @@ tracks/0/path = NodePath("DirectionalLight2D:rotation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 20), -"transitions": PackedFloat32Array(1, 1), +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), "update": 0, -"values": [0.0, 6.28319] +"values": [0.0] } -[sub_resource type="Animation" id="Animation_emv7u"] -length = 0.001 +[sub_resource type="Animation" id="Animation_rgbru"] +resource_name = "rotate_directional_light" +length = 20.0 +loop_mode = 1 tracks/0/type = "value" tracks/0/imported = false tracks/0/enabled = true @@ -133,10 +133,10 @@ tracks/0/path = NodePath("DirectionalLight2D:rotation") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0), -"transitions": PackedFloat32Array(1), +"times": PackedFloat32Array(0, 20), +"transitions": PackedFloat32Array(1, 1), "update": 0, -"values": [0.0] +"values": [0.0, 6.28319] } [sub_resource type="AnimationLibrary" id="AnimationLibrary_6bket"] @@ -326,10 +326,10 @@ material = SubResource("2") texture = ExtResource("4") [node name="AnimationPlayer" type="AnimationPlayer" parent="RedLight"] -autoplay = "motion" libraries = { "": SubResource("AnimationLibrary_wawvy") } +autoplay = "motion" [node name="GreenLight" type="PointLight2D" parent="." groups=["point_light"]] position = Vector2(753.756, 314.336) @@ -344,10 +344,10 @@ material = SubResource("5") texture = ExtResource("4") [node name="AnimationPlayer" type="AnimationPlayer" parent="GreenLight"] -autoplay = "m2" libraries = { "": SubResource("AnimationLibrary_fig6v") } +autoplay = "m2" [node name="BlueLight" type="PointLight2D" parent="." groups=["point_light"]] position = Vector2(692.078, 29.8849) @@ -362,14 +362,13 @@ material = SubResource("6") texture = ExtResource("4") [node name="AnimationPlayer" type="AnimationPlayer" parent="BlueLight"] -autoplay = "motion3" libraries = { "": SubResource("AnimationLibrary_kfxj1") } +autoplay = "motion3" [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(400, 300) -current = true [node name="CanvasLayer" type="CanvasLayer" parent="."] @@ -396,7 +395,7 @@ shadow_filter = 1 shadow_filter_smooth = 1.2 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -autoplay = "rotate_directional_light" libraries = { "": SubResource("AnimationLibrary_6bket") } +autoplay = "rotate_directional_light" diff --git a/2d/lights_and_shadows/project.godot b/2d/lights_and_shadows/project.godot index 5d31f7d033..36978d628d 100644 --- a/2d/lights_and_shadows/project.godot +++ b/2d/lights_and_shadows/project.godot @@ -27,22 +27,27 @@ window/stretch/aspect="expand" [input] toggle_directional_light={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_point_lights={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } cycle_directional_light_shadows_quality={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } cycle_point_light_shadows_quality={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":72,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/navigation/README.md b/2d/navigation/README.md index a06acdbc99..4cf8bf5070 100644 --- a/2d/navigation/README.md +++ b/2d/navigation/README.md @@ -7,7 +7,7 @@ Example of using 2D navigation using: Language: GDScript -Renderer: Forward+ +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/117 diff --git a/2d/navigation/project.godot b/2d/navigation/project.godot index 3244335ff7..d26d6e7aa8 100644 --- a/2d/navigation/project.godot +++ b/2d/navigation/project.godot @@ -28,11 +28,13 @@ window/stretch/aspect="expand" [input] click={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.160784, 0.172549, 0.278431, 1) diff --git a/2d/navigation_astar/project.godot b/2d/navigation_astar/project.godot index 36f3d419d5..203f3bcfb8 100644 --- a/2d/navigation_astar/project.godot +++ b/2d/navigation_astar/project.godot @@ -26,12 +26,12 @@ window/stretch/aspect="expand" [input] teleport_to={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } move_to={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } @@ -39,6 +39,5 @@ move_to={ [rendering] renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0, 0.0627451, 0.247059, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true diff --git a/2d/particles/README.md b/2d/particles/README.md index 5d63ecc6df..37abd1e80b 100644 --- a/2d/particles/README.md +++ b/2d/particles/README.md @@ -4,7 +4,7 @@ This demo showcases how 2D particle systems work in Godot. Language: GDScript -Renderer: Forward Mobile +Renderer: Mobile Check out this demo on the asset library: https://godotengine.org/asset-library/asset/118 diff --git a/2d/particles/project.godot b/2d/particles/project.godot index 5c4d50c885..6a07ac7165 100644 --- a/2d/particles/project.godot +++ b/2d/particles/project.godot @@ -25,28 +25,28 @@ window/stretch/aspect="expand" [input] toggle_pause={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194313,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_trails={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":84,"key_label":0,"unicode":0,"echo":false,"script":null) ] } increase_trail_length={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } decrease_trail_length={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_glow={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":71,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } diff --git a/2d/physics_platformer/README.md b/2d/physics_platformer/README.md index 35edf2aecb..4460a4c8fc 100644 --- a/2d/physics_platformer/README.md +++ b/2d/physics_platformer/README.md @@ -9,7 +9,7 @@ manual modification of the RigidDynamicBody velocity. Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ Check out this demo on the asset library: https://godotengine.org/asset-library/asset/119 diff --git a/2d/physics_platformer/coin/coin.tscn b/2d/physics_platformer/coin/coin.tscn index 3c87ca07e9..3617c4d247 100644 --- a/2d/physics_platformer/coin/coin.tscn +++ b/2d/physics_platformer/coin/coin.tscn @@ -7,7 +7,7 @@ [sub_resource type="Animation" id="1"] resource_name = "spin" -length = 1.5 +length = 0.5 loop_mode = 1 step = 0.25 tracks/0/type = "value" @@ -17,14 +17,14 @@ tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25, 1.5), +"times": PackedFloat32Array(0, 0.08325, 0.1665, 0.24975, 0.333, 0.41625, 0.4995), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 2, 1, 0] } [sub_resource type="Animation" id="2"] -length = 8.0 +length = 3.0 step = 0.0 tracks/0/type = "value" tracks/0/imported = false @@ -35,7 +35,7 @@ tracks/0/loop_wrap = true tracks/0/keys = { "times": PackedFloat32Array(0), "transitions": PackedFloat32Array(1), -"update": 0, +"update": 1, "values": [0] } tracks/1/type = "value" @@ -102,6 +102,8 @@ radius = 5.0 blend_mode = 1 [sub_resource type="Curve" id="5"] +_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.1, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] +point_count = 3 [node name="Coin" type="Area2D"] script = ExtResource("1") @@ -111,10 +113,10 @@ texture = ExtResource("2") hframes = 4 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -autoplay = "spin" libraries = { "": SubResource("AnimationLibrary_4atuj") } +autoplay = "spin" [node name="Collision" type="CollisionShape2D" parent="."] shape = SubResource("3") @@ -123,14 +125,15 @@ shape = SubResource("3") stream = ExtResource("3") [node name="GPUParticles3D" type="CPUParticles2D" parent="."] -modulate = Color(0.596863, 0.638745, 1, 1) +modulate = Color(0.596078, 0.639216, 1, 1) material = SubResource("4") emitting = false +lifetime = 0.4 one_shot = true explosiveness = 0.7 texture = ExtResource("4") emission_shape = 1 -emission_sphere_radius = 20.0 +emission_sphere_radius = 4.0 gravity = Vector2(0, 0) scale_amount_curve = SubResource("5") diff --git a/2d/physics_platformer/enemy/enemy.gd b/2d/physics_platformer/enemy/enemy.gd index fd97abbee7..64fefb995f 100644 --- a/2d/physics_platformer/enemy/enemy.gd +++ b/2d/physics_platformer/enemy/enemy.gd @@ -1,4 +1,5 @@ -class_name Enemy extends RigidBody2D +class_name Enemy +extends RigidBody2D const WALK_SPEED = 50 @@ -13,8 +14,6 @@ var _state := State.WALKING var direction := -1 var anim := "" -var Bullet := preload("res://player/bullet.gd") - @onready var rc_left := $RaycastLeft as RayCast2D @onready var rc_right := $RaycastRight as RayCast2D diff --git a/2d/physics_platformer/enemy/enemy.tscn b/2d/physics_platformer/enemy/enemy.tscn index 93f42455ca..52f3542e26 100644 --- a/2d/physics_platformer/enemy/enemy.tscn +++ b/2d/physics_platformer/enemy/enemy.tscn @@ -6,7 +6,7 @@ [ext_resource type="AudioStream" uid="uid://cfssio7r2t7wq" path="res://audio/sound_hit.wav" id="4_5rkwm"] [ext_resource type="AudioStream" uid="uid://bulmr2lpb7y4h" path="res://audio/sound_explode.wav" id="5_t2e2f"] -[sub_resource type="PhysicsMaterial" id="1"] +[sub_resource type="PhysicsMaterial" id="PhysicsMaterial_eyxlk"] [sub_resource type="Animation" id="Animation_a7qal"] resource_name = "RESET" @@ -111,7 +111,7 @@ tracks/0/keys = { } [sub_resource type="Animation" id="4"] -length = 1.25 +length = 0.5 loop_mode = 1 step = 0.25 tracks/0/type = "value" @@ -121,7 +121,7 @@ tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25), +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4, 0] @@ -143,10 +143,10 @@ offsets = PackedFloat32Array(0.5, 1) colors = PackedColorArray(1, 1, 1, 0.501961, 0, 0, 0, 0) [node name="Enemy" type="RigidBody2D"] -physics_material_override = SubResource("1") +physics_material_override = SubResource("PhysicsMaterial_eyxlk") +lock_rotation = true max_contacts_reported = 4 contact_monitor = true -lock_rotation = true script = ExtResource("1_hjwkx") [node name="AnimationPlayer" type="AnimationPlayer" parent="."] diff --git a/2d/physics_platformer/player/bullet.tscn b/2d/physics_platformer/player/bullet.tscn index 7d0e79e801..a09856e307 100644 --- a/2d/physics_platformer/player/bullet.tscn +++ b/2d/physics_platformer/player/bullet.tscn @@ -1,36 +1,36 @@ -[gd_scene load_steps=6 format=2] +[gd_scene load_steps=7 format=3 uid="uid://dlfwkokoudcwv"] -[ext_resource path="res://player/bullet.gd" type="Script" id=1] -[ext_resource path="res://player/bullet.png" type="Texture2D" id=2] +[ext_resource type="Script" path="res://player/bullet.gd" id="1"] +[ext_resource type="Texture2D" uid="uid://7sv64orewgmb" path="res://player/bullet.png" id="2"] -[sub_resource type="CanvasItemMaterial" id=1] +[sub_resource type="CanvasItemMaterial" id="1"] blend_mode = 1 -[sub_resource type="CircleShape2D" id=2] +[sub_resource type="CircleShape2D" id="2"] radius = 4.5 -[sub_resource type="Animation" id=3] +[sub_resource type="Animation" id="3"] length = 1.5 tracks/0/type = "method" +tracks/0/imported = false +tracks/0/enabled = true tracks/0/path = NodePath(".") tracks/0/interp = 1 tracks/0/loop_wrap = true -tracks/0/imported = false -tracks/0/enabled = true tracks/0/keys = { "times": PackedFloat32Array(1.31), "transitions": PackedFloat32Array(1), "values": [{ "args": [], -"method": "queue_free" +"method": &"queue_free" }] } tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true tracks/1/path = NodePath("Sprite2D:modulate") tracks/1/interp = 1 tracks/1/loop_wrap = true -tracks/1/imported = false -tracks/1/enabled = true tracks/1/keys = { "times": PackedFloat32Array(0, 1.03), "transitions": PackedFloat32Array(1, 1), @@ -38,11 +38,11 @@ tracks/1/keys = { "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] } tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true tracks/2/path = NodePath("GPUParticles2D:self_modulate") tracks/2/interp = 1 tracks/2/loop_wrap = true -tracks/2/imported = false -tracks/2/enabled = true tracks/2/keys = { "times": PackedFloat32Array(0, 0.5), "transitions": PackedFloat32Array(1, 1), @@ -50,33 +50,36 @@ tracks/2/keys = { "values": [Color(1, 1, 1, 1), Color(1, 1, 1, 0)] } -[node name="Bullet" type="RigidDynamicBody2D"] +[sub_resource type="AnimationLibrary" id="AnimationLibrary_hkd2b"] +_data = { +"shutdown": SubResource("3") +} + +[node name="Bullet" type="RigidBody2D"] continuous_cd = 2 -script = ExtResource( 1 ) +script = ExtResource("1") [node name="GPUParticles2D" type="CPUParticles2D" parent="."] -material = SubResource( 1 ) +material = SubResource("1") emitting = false lifetime = 0.3 speed_scale = 3.0 -local_coords = false -texture = ExtResource( 2 ) +texture = ExtResource("2") spread = 0.0 gravity = Vector2(0, 0) -initial_velocity = 1.0 -angular_velocity = 38.0 -scale_amount = 0.8 [node name="Sprite2D" type="Sprite2D" parent="."] -texture = ExtResource( 2 ) +texture = ExtResource("2") [node name="CollisionShape2D" type="CollisionShape2D" parent="."] -shape = SubResource( 2 ) +shape = SubResource("2") [node name="Timer" type="Timer" parent="."] one_shot = true [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -anims/shutdown = SubResource( 3 ) +libraries = { +"": SubResource("AnimationLibrary_hkd2b") +} [connection signal="timeout" from="Timer" to="." method="disable"] diff --git a/2d/physics_platformer/player/player.gd b/2d/physics_platformer/player/player.gd index 9cc8dec7df..de9f9cc15d 100644 --- a/2d/physics_platformer/player/player.gd +++ b/2d/physics_platformer/player/player.gd @@ -1,16 +1,19 @@ -class_name Player extends RigidBody2D - - -const WALK_ACCEL = 500.0 -const WALK_DEACCEL = 500.0 -const WALK_MAX_VELOCITY = 140.0 -const AIR_ACCEL = 100.0 -const AIR_DEACCEL = 100.0 -const JUMP_VELOCITY = 380 +class_name Player +extends RigidBody2D + +const WALK_ACCEL = 1000.0 +const WALK_DEACCEL = 1000.0 +const WALK_MAX_VELOCITY = 200.0 +const AIR_ACCEL = 250.0 +const AIR_DEACCEL = 250.0 +const JUMP_VELOCITY = 380.0 const STOP_JUMP_FORCE = 450.0 const MAX_SHOOT_POSE_TIME = 0.3 const MAX_FLOOR_AIRBORNE_TIME = 0.15 +const BULLET_SCENE = preload("res://player/bullet.tscn") +const ENEMY_SCENE = preload("res://enemy/enemy.tscn") + var anim := "" var siding_left := false var jumping := false @@ -22,9 +25,6 @@ var floor_h_velocity: float = 0.0 var airborne_time: float = 1e20 var shoot_time: float = 1e20 -var Bullet := preload("res://player/bullet.tscn") -var Enemy := preload("res://enemy/enemy.tscn") - @onready var sound_jump := $SoundJump as AudioStreamPlayer2D @onready var sound_shoot := $SoundShoot as AudioStreamPlayer2D @onready var sprite := $Sprite2D as Sprite2D @@ -45,7 +45,7 @@ func _integrate_forces(state: PhysicsDirectBodyState2D) -> void: var move_right := Input.is_action_pressed(&"move_right") var jump := Input.is_action_pressed(&"jump") var shoot := Input.is_action_pressed(&"shoot") - var spawn := Input.is_action_pressed(&"spawn") + var spawn := Input.is_action_just_pressed(&"spawn") if spawn: _spawn_enemy_above.call_deferred() @@ -184,7 +184,7 @@ func _integrate_forces(state: PhysicsDirectBodyState2D) -> void: func _shot_bullet() -> void: shoot_time = 0 - var bullet := Bullet.instantiate() as RigidBody2D + var bullet := BULLET_SCENE.instantiate() as RigidBody2D var speed_scale: float if siding_left: speed_scale = -1.0 @@ -203,6 +203,6 @@ func _shot_bullet() -> void: func _spawn_enemy_above() -> void: - var enemy := Enemy.instantiate() as RigidBody2D + var enemy := ENEMY_SCENE.instantiate() as RigidBody2D enemy.position = position + 50 * Vector2.UP get_parent().add_child(enemy) diff --git a/2d/physics_platformer/player/player.tscn b/2d/physics_platformer/player/player.tscn index 12eb420965..d895e8d6b2 100644 --- a/2d/physics_platformer/player/player.tscn +++ b/2d/physics_platformer/player/player.tscn @@ -61,7 +61,8 @@ tracks/0/keys = { } [sub_resource type="Animation" id="6"] -length = 7.0 +length = 2.0 +loop_mode = 1 step = 0.25 tracks/0/type = "value" tracks/0/imported = false @@ -70,7 +71,7 @@ tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 1.25, 1.5, 2, 4.5, 4.75, 5, 5.25), +"times": PackedFloat32Array(0, 0.3575, 0.429, 0.572, 1.287, 1.3585, 1.43, 1.5015), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1, 1, 1), "update": 1, "values": [16, 17, 18, 16, 19, 20, 19, 16] @@ -125,7 +126,8 @@ tracks/0/keys = { } [sub_resource type="Animation" id="10"] -length = 1.25 +length = 0.5 +loop_mode = 1 step = 0.25 tracks/0/type = "value" tracks/0/imported = false @@ -134,14 +136,15 @@ tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25), +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [0, 1, 2, 3, 4, 0] } [sub_resource type="Animation" id="11"] -length = 1.25 +length = 0.5 +loop_mode = 1 step = 0.25 tracks/0/type = "value" tracks/0/imported = false @@ -150,14 +153,15 @@ tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25), +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [5, 6, 7, 8, 9, 5] } [sub_resource type="Animation" id="12"] -length = 1.25 +length = 0.5 +loop_mode = 1 step = 0.25 tracks/0/type = "value" tracks/0/imported = false @@ -166,7 +170,7 @@ tracks/0/path = NodePath("Sprite2D:frame") tracks/0/interp = 1 tracks/0/loop_wrap = true tracks/0/keys = { -"times": PackedFloat32Array(0, 0.25, 0.5, 0.75, 1, 1.25), +"times": PackedFloat32Array(0, 0.1, 0.2, 0.3, 0.4, 0.5), "transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), "update": 1, "values": [10, 11, 12, 13, 14, 5] @@ -193,16 +197,17 @@ length = 18.0 [node name="Player" type="RigidBody2D"] mass = 1.5 physics_material_override = SubResource("1") +lock_rotation = true custom_integrator = true max_contacts_reported = 4 contact_monitor = true -lock_rotation = true script = ExtResource("1") [node name="Sprite2D" type="Sprite2D" parent="."] texture = ExtResource("2_675nc") hframes = 16 vframes = 2 +frame = 22 [node name="Smoke" type="CPUParticles2D" parent="Sprite2D"] self_modulate = Color(1, 1, 1, 0.26702) diff --git a/2d/physics_platformer/project.godot b/2d/physics_platformer/project.godot index d91a04f324..6d8a56f0e7 100644 --- a/2d/physics_platformer/project.godot +++ b/2d/physics_platformer/project.godot @@ -11,29 +11,22 @@ config_version=5 [application] config/name="Physics-Based Platformer 2D" -config/description="This demo uses RigidDynamicBody2D for the player and enemies. These +config/description="This demo uses RigidBody2D for the player and enemies. These character controllers are more powerful than CharacterBody2D, but can be more difficult to handle, as they require -manual modification of the RigidDynamicBody3D velocity." +manual modification of the RigidBody3D velocity." config/tags=PackedStringArray("2d", "demo", "official", "physics", "tilemap") run/main_scene="res://stage.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" -[debug] - -gdscript/warnings/unsafe_property_access=true -gdscript/warnings/unsafe_method_access=true -gdscript/warnings/unsafe_cast=true -gdscript/warnings/unsafe_call_argument=true -gdscript/completion/autocomplete_setters_and_getters=true - [display] window/size/viewport_width=800 window/size/viewport_height=480 window/stretch/mode="canvas_items" window/stretch/aspect="keep_height" +window/stretch/scale_mode="integer" [importer_defaults] @@ -61,52 +54,50 @@ texture={ [input] jump={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":122,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_left={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } move_right={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } shoot={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":90,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } spawn={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777244,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":114,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } [physics] +common/physics_ticks_per_second=120 2d/default_gravity=900 [rendering] textures/canvas_textures/default_texture_filter=0 - -[texture_import] - -filter=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/physics_platformer/stage.tscn b/2d/physics_platformer/stage.tscn index 4c8f2ddb1d..d489e98c2a 100644 --- a/2d/physics_platformer/stage.tscn +++ b/2d/physics_platformer/stage.tscn @@ -132,8 +132,7 @@ friction = 0.0 [node name="TileMap" type="TileMap" parent="."] position = Vector2(2, 0) tile_set = ExtResource("1") -cell_quadrant_size = 4 -collision_visibility_mode = 1 +rendering_quadrant_size = 4 format = 2 layer_0/tile_data = PackedInt32Array(0, 2, 0, 70, 2, 65536, 71, 10, 0, 72, 10, 0, 73, 10, 0, 74, 10, 0, 75, 10, 0, 76, 10, 0, 77, 10, 0, 78, 10, 0, 65536, 2, 0, 65606, 2, 65536, 65607, 10, 0, 65608, 10, 0, 65609, 10, 0, 65610, 10, 0, 65611, 10, 0, 65612, 10, 0, 65613, 10, 0, 65614, 10, 0, 131072, 2, 0, 131142, 2, 65536, 131143, 10, 0, 131144, 10, 0, 131145, 10, 0, 131146, 10, 0, 131147, 10, 0, 131148, 10, 0, 131149, 10, 0, 131150, 10, 0, 196608, 2, 0, 196626, 9, 0, 196678, 2, 65536, 196679, 10, 0, 196680, 10, 0, 196681, 10, 0, 196682, 10, 0, 196683, 10, 0, 196684, 10, 0, 196685, 10, 0, 196686, 10, 0, 262144, 2, 0, 262162, 8, 0, 262214, 2, 65536, 262215, 10, 0, 262216, 10, 0, 262217, 10, 0, 262218, 10, 0, 262219, 10, 0, 262220, 10, 0, 262221, 10, 0, 262222, 10, 0, 327680, 2, 0, 327697, 9, 65536, 327698, 7, 0, 327733, 9, 0, 327750, 2, 65536, 327751, 10, 0, 327752, 10, 0, 327753, 10, 0, 327754, 10, 0, 327755, 10, 0, 327756, 10, 0, 327757, 10, 0, 327758, 10, 0, 393216, 2, 0, 393233, 8, 65536, 393234, 7, 0, 393257, 9, 0, 393269, 7, 0, 393286, 2, 65536, 393287, 10, 0, 393288, 10, 0, 393289, 10, 0, 393290, 10, 0, 393291, 10, 0, 393292, 10, 0, 393293, 10, 0, 393294, 10, 0, 458752, 2, 0, 458769, 7, 0, 458770, 8, 0, 458790, 9, 0, 458793, 8, 0, 458805, 8, 0, 458822, 2, 65536, 458823, 10, 0, 458824, 10, 0, 458825, 10, 0, 458826, 10, 0, 458827, 10, 0, 458828, 10, 0, 458829, 10, 0, 458830, 10, 0, 524288, 4, 0, 524289, 1, 0, 524304, 1, 65536, 524305, 6, 65536, 524306, 6, 0, 524307, 5, 0, 524308, 1, 0, 524326, 8, 0, 524329, 7, 0, 524341, 7, 0, 524358, 2, 65536, 524359, 10, 0, 524360, 10, 0, 524361, 10, 0, 524362, 10, 0, 524363, 10, 0, 524364, 10, 0, 524365, 10, 0, 524366, 10, 0, 589824, 10, 0, 589825, 13, 0, 589840, 2, 65536, 589841, 10, 0, 589842, 10, 0, 589843, 10, 0, 589844, 2, 0, 589862, 7, 0, 589865, 7, 0, 589876, 1, 65536, 589877, 6, 0, 589878, 1, 0, 589894, 2, 65536, 589895, 10, 0, 589896, 10, 0, 589897, 10, 0, 589898, 10, 0, 589899, 10, 0, 589900, 10, 0, 589901, 10, 0, 589902, 10, 0, 655360, 2, 0, 655376, 2, 65536, 655377, 10, 0, 655378, 10, 0, 655379, 10, 0, 655380, 2, 0, 655398, 7, 0, 655401, 8, 0, 655412, 13, 65536, 655413, 11, 0, 655414, 13, 0, 655430, 2, 65536, 655431, 10, 0, 655432, 10, 0, 655433, 10, 0, 655434, 10, 0, 655435, 10, 0, 655436, 10, 0, 655437, 10, 0, 655438, 10, 0, 720896, 2, 0, 720912, 2, 65536, 720913, 10, 0, 720914, 10, 0, 720915, 10, 0, 720916, 2, 0, 720934, 8, 0, 720937, 7, 0, 720958, 1, 65536, 720959, 5, 0, 720960, 5, 65536, 720961, 5, 0, 720962, 5, 0, 720963, 5, 65536, 720964, 5, 0, 720965, 0, 0, 720966, 4, 65536, 720967, 10, 0, 720968, 10, 0, 720969, 10, 0, 720970, 10, 0, 720971, 10, 0, 720972, 10, 0, 720973, 10, 0, 720974, 10, 0, 786432, 2, 0, 786437, 9, 0, 786448, 2, 65536, 786449, 10, 0, 786450, 10, 0, 786451, 10, 0, 786452, 2, 0, 786464, 1, 65536, 786465, 1, 0, 786470, 7, 0, 786473, 7, 0, 786474, 12, 65536, 786475, 1, 0, 786494, 2, 65536, 786495, 10, 0, 786496, 10, 0, 786497, 10, 0, 786498, 10, 0, 786499, 10, 0, 786500, 10, 0, 786501, 10, 0, 786502, 10, 0, 786503, 10, 0, 786504, 10, 0, 786505, 10, 0, 786506, 10, 0, 786507, 10, 0, 786508, 10, 0, 786509, 10, 0, 851968, 2, 0, 851973, 7, 0, 851984, 2, 65536, 851985, 10, 0, 851986, 10, 0, 851987, 10, 0, 851988, 2, 0, 851996, 1, 65536, 851997, 1, 0, 852000, 2, 65536, 852006, 7, 0, 852009, 6, 0, 852011, 2, 0, 852030, 2, 65536, 852031, 10, 0, 852032, 10, 0, 852033, 10, 0, 852034, 10, 0, 852035, 10, 0, 852036, 10, 0, 852037, 10, 0, 852038, 10, 0, 852039, 10, 0, 852040, 10, 0, 852041, 10, 0, 852042, 10, 0, 852043, 10, 0, 852044, 10, 0, 852045, 10, 0, 917504, 2, 0, 917506, 9, 0, 917509, 7, 0, 917512, 9, 65536, 917520, 13, 65536, 917521, 11, 0, 917522, 11, 0, 917523, 11, 0, 917524, 13, 0, 917532, 13, 65536, 917533, 13, 0, 917536, 2, 65536, 917537, 4, 0, 917538, 1, 0, 917540, 1, 65536, 917541, 0, 0, 917542, 6, 0, 917545, 10, 0, 917546, 10, 0, 917547, 4, 0, 917548, 1, 0, 917566, 2, 65536, 917567, 10, 0, 917568, 10, 0, 917569, 10, 0, 917570, 10, 0, 917571, 10, 0, 917572, 10, 0, 917573, 10, 0, 917574, 10, 0, 917575, 10, 0, 917576, 10, 0, 917577, 10, 0, 917578, 10, 0, 917579, 10, 0, 917580, 10, 0, 917581, 10, 0, 983040, 2, 0, 983042, 7, 0, 983045, 7, 0, 983048, 8, 65536, 983050, 1, 65536, 983051, 0, 0, 983052, 1, 0, 983064, 1, 65536, 983065, 1, 0, 983072, 2, 65536, 983073, 10, 0, 983074, 4, 0, 983075, 0, 0, 983076, 4, 65536, 983077, 10, 0, 983078, 10, 0, 983079, 10, 0, 983080, 10, 0, 983081, 10, 0, 983082, 10, 0, 983083, 10, 0, 983084, 2, 0, 983095, 9, 0, 983102, 2, 65536, 983103, 10, 0, 983104, 10, 0, 983105, 10, 0, 983106, 10, 0, 983107, 10, 0, 983108, 10, 0, 983109, 10, 0, 983110, 10, 0, 983111, 10, 0, 983112, 10, 0, 983113, 10, 0, 983114, 10, 0, 983115, 10, 0, 983116, 10, 0, 983117, 10, 0, 1048576, 2, 0, 1048578, 8, 0, 1048581, 8, 0, 1048584, 7, 65536, 1048586, 2, 65536, 1048587, 10, 65536, 1048588, 2, 0, 1048600, 13, 65536, 1048601, 13, 0, 1048604, 9, 0, 1048608, 13, 65536, 1048609, 11, 65536, 1048610, 11, 65536, 1048611, 11, 65536, 1048612, 10, 0, 1048613, 10, 0, 1048614, 10, 0, 1048615, 10, 0, 1048616, 10, 0, 1048617, 10, 0, 1048618, 10, 0, 1048619, 10, 0, 1048620, 4, 0, 1048621, 1, 0, 1048630, 9, 65536, 1048631, 8, 0, 1048638, 2, 65536, 1048639, 10, 0, 1048640, 10, 0, 1048641, 10, 0, 1048642, 10, 0, 1048643, 10, 0, 1048644, 10, 0, 1048645, 10, 0, 1048646, 10, 0, 1048647, 10, 0, 1048648, 10, 0, 1048649, 10, 0, 1048650, 10, 0, 1048651, 10, 0, 1048652, 10, 0, 1048653, 10, 0, 1114112, 4, 0, 1114113, 0, 0, 1114114, 6, 0, 1114115, 0, 0, 1114116, 0, 0, 1114117, 6, 0, 1114118, 1, 0, 1114120, 8, 65536, 1114122, 13, 65536, 1114123, 11, 0, 1114124, 13, 0, 1114128, 1, 65536, 1114129, 5, 0, 1114130, 5, 65536, 1114131, 5, 0, 1114132, 0, 0, 1114133, 1, 0, 1114140, 7, 0, 1114141, 9, 65536, 1114148, 2, 65536, 1114149, 10, 0, 1114150, 10, 0, 1114151, 10, 0, 1114152, 10, 0, 1114153, 10, 0, 1114154, 10, 0, 1114155, 10, 0, 1114156, 10, 0, 1114157, 2, 0, 1114166, 8, 65536, 1114167, 8, 0, 1114174, 2, 65536, 1114175, 10, 0, 1114176, 10, 0, 1114177, 10, 0, 1114178, 10, 0, 1114179, 10, 0, 1114180, 10, 0, 1114181, 10, 0, 1114182, 10, 0, 1114183, 10, 0, 1114184, 10, 0, 1114185, 10, 0, 1114186, 10, 0, 1114187, 10, 0, 1114188, 10, 0, 1179648, 10, 0, 1179649, 10, 0, 1179650, 10, 0, 1179651, 10, 0, 1179652, 10, 0, 1179653, 10, 0, 1179654, 2, 0, 1179656, 7, 65536, 1179664, 2, 65536, 1179665, 10, 0, 1179666, 10, 0, 1179667, 10, 0, 1179668, 10, 0, 1179669, 4, 0, 1179670, 12, 0, 1179675, 9, 0, 1179676, 8, 0, 1179677, 8, 0, 1179684, 2, 65536, 1179685, 10, 0, 1179686, 10, 0, 1179687, 10, 0, 1179688, 10, 0, 1179689, 10, 0, 1179690, 10, 0, 1179691, 10, 0, 1179692, 10, 0, 1179693, 4, 0, 1179694, 1, 0, 1179701, 9, 0, 1179702, 7, 65536, 1179703, 7, 0, 1179710, 2, 65536, 1179711, 10, 0, 1179712, 10, 0, 1179713, 10, 0, 1179714, 10, 0, 1179715, 10, 0, 1179716, 10, 0, 1179717, 10, 0, 1179718, 10, 0, 1179719, 10, 0, 1179720, 10, 0, 1179721, 10, 0, 1179722, 10, 0, 1245184, 10, 0, 1245185, 10, 0, 1245186, 10, 0, 1245187, 10, 0, 1245188, 10, 0, 1245189, 10, 0, 1245190, 2, 0, 1245192, 7, 65536, 1245199, 1, 65536, 1245200, 4, 65536, 1245201, 10, 0, 1245202, 10, 0, 1245203, 10, 0, 1245204, 10, 0, 1245205, 10, 0, 1245207, 1, 0, 1245211, 7, 0, 1245212, 7, 0, 1245213, 8, 65536, 1245220, 2, 65536, 1245221, 10, 0, 1245222, 10, 0, 1245223, 10, 0, 1245224, 10, 0, 1245225, 10, 0, 1245226, 10, 0, 1245227, 10, 0, 1245228, 10, 0, 1245229, 10, 0, 1245230, 2, 0, 1245237, 8, 0, 1245238, 7, 65536, 1245239, 8, 0, 1245240, 9, 65536, 1245246, 2, 65536, 1245247, 10, 0, 1245248, 10, 0, 1245249, 10, 0, 1245250, 10, 0, 1245251, 10, 0, 1245252, 10, 0, 1245253, 10, 0, 1245254, 10, 0, 1245255, 10, 0, 1245256, 10, 0, 1245257, 10, 0, 1245258, 10, 0, 1310720, 10, 0, 1310721, 10, 0, 1310722, 10, 0, 1310723, 10, 0, 1310724, 10, 0, 1310725, 10, 0, 1310726, 2, 0, 1310728, 8, 65536, 1310730, 1, 65536, 1310731, 1, 0, 1310734, 1, 65536, 1310735, 4, 65536, 1310736, 10, 0, 1310737, 10, 0, 1310738, 10, 0, 1310739, 10, 0, 1310740, 10, 0, 1310741, 10, 0, 1310742, 10, 0, 1310743, 4, 0, 1310744, 1, 0, 1310747, 8, 0, 1310748, 7, 0, 1310749, 7, 65536, 1310756, 2, 65536, 1310757, 10, 0, 1310758, 10, 0, 1310759, 10, 0, 1310760, 10, 0, 1310761, 10, 0, 1310762, 10, 0, 1310763, 10, 0, 1310764, 10, 0, 1310765, 10, 0, 1310766, 4, 0, 1310767, 5, 0, 1310768, 12, 0, 1310773, 7, 0, 1310774, 7, 65536, 1310775, 7, 0, 1310776, 7, 65536, 1310782, 2, 65536, 1310783, 10, 0, 1310784, 10, 0, 1310785, 10, 0, 1310786, 10, 0, 1310787, 10, 0, 1310788, 10, 0, 1310789, 10, 0, 1310790, 10, 0, 1310791, 10, 0, 1310792, 10, 0, 1310793, 10, 0, 1376256, 10, 0, 1376257, 10, 0, 1376258, 10, 0, 1376259, 10, 0, 1376260, 10, 0, 1376261, 10, 0, 1376262, 4, 0, 1376263, 0, 0, 1376265, 0, 0, 1376266, 4, 65536, 1376267, 4, 0, 1376268, 0, 0, 1376269, 0, 0, 1376270, 4, 65536, 1376271, 10, 0, 1376272, 10, 0, 1376273, 10, 0, 1376274, 10, 0, 1376275, 10, 0, 1376276, 10, 0, 1376277, 10, 0, 1376278, 10, 0, 1376279, 10, 0, 1376280, 4, 0, 1376281, 12, 0, 1376283, 8, 0, 1376284, 8, 0, 1376285, 8, 65536, 1376287, 12, 65536, 1376288, 0, 0, 1376289, 5, 0, 1376290, 5, 65536, 1376291, 0, 0, 1376292, 4, 65536, 1376293, 10, 0, 1376294, 10, 0, 1376295, 10, 0, 1376296, 10, 0, 1376297, 10, 0, 1376298, 10, 0, 1376299, 10, 0, 1376300, 10, 0, 1376301, 10, 0, 1376302, 10, 0, 1376303, 10, 0, 1376305, 12, 0, 1376309, 7, 0, 1376310, 8, 65536, 1376311, 7, 0, 1376312, 8, 65536, 1376318, 2, 65536, 1376319, 10, 0, 1376320, 10, 0, 1376321, 10, 0, 1376322, 10, 0, 1376323, 10, 0, 1376324, 10, 0, 1376325, 10, 0, 1376326, 10, 0, 1376327, 10, 0, 1376328, 10, 0, 1441792, 10, 0, 1441793, 10, 0, 1441794, 10, 0, 1441795, 10, 0, 1441796, 10, 0, 1441797, 10, 0, 1441798, 10, 0, 1441799, 10, 0, 1441800, 10, 0, 1441801, 10, 0, 1441802, 10, 0, 1441803, 10, 0, 1441804, 10, 0, 1441805, 10, 0, 1441806, 10, 0, 1441807, 10, 0, 1441808, 10, 0, 1441809, 10, 0, 1441810, 10, 0, 1441811, 10, 0, 1441812, 10, 0, 1441813, 10, 0, 1441814, 10, 0, 1441815, 10, 0, 1441816, 10, 0, 1441818, 0, 0, 1441819, 6, 0, 1441820, 6, 0, 1441821, 6, 65536, 1441822, 5, 0, 1441824, 10, 0, 1441825, 10, 0, 1441826, 10, 0, 1441827, 10, 0, 1441828, 10, 0, 1441829, 10, 0, 1441830, 10, 0, 1441831, 10, 0, 1441832, 10, 0, 1441833, 10, 0, 1441834, 10, 0, 1441835, 10, 0, 1441836, 10, 0, 1441837, 10, 0, 1441838, 10, 0, 1441839, 10, 0, 1441840, 10, 0, 1441842, 0, 0, 1441843, 0, 0, 1441844, 0, 0, 1441845, 6, 0, 1441846, 6, 65536, 1441847, 6, 0, 1441848, 6, 65536, 1441849, 0, 0, 1441850, 5, 0, 1441851, 5, 65536, 1441852, 5, 0, 1441853, 0, 0, 1441854, 4, 65536, 1441855, 10, 0, 1441856, 10, 0, 1441857, 10, 0, 1441858, 10, 0, 1441859, 10, 0, 1441860, 10, 0, 1441861, 10, 0, 1441862, 10, 0, 1441863, 10, 0, 1507328, 10, 0, 1507329, 10, 0, 1507330, 10, 0, 1507331, 10, 0, 1507332, 10, 0, 1507333, 10, 0, 1507334, 10, 0, 1507335, 10, 0, 1507336, 10, 0, 1507337, 10, 0, 1507338, 10, 0, 1507339, 10, 0, 1507340, 10, 0, 1507341, 10, 0, 1507342, 10, 0, 1507343, 10, 0, 1507344, 10, 0, 1507345, 10, 0, 1507346, 10, 0, 1507347, 10, 0, 1507348, 10, 0, 1507349, 10, 0, 1507350, 10, 0, 1507351, 10, 0, 1507352, 10, 0, 1507353, 10, 0, 1507354, 10, 0, 1507355, 10, 0, 1507356, 10, 0, 1507357, 10, 0, 1507358, 10, 0, 1507359, 10, 0, 1507360, 10, 0, 1507361, 10, 0, 1507362, 10, 0, 1507363, 10, 0, 1507364, 10, 0, 1507365, 10, 0, 1507366, 10, 0, 1507367, 10, 0, 1507368, 10, 0, 1507369, 10, 0, 1507370, 10, 0, 1507371, 10, 0, 1507372, 10, 0, 1507373, 10, 0, 1507374, 10, 0, 1507375, 10, 0, 1507376, 10, 0, 1507377, 10, 0, 1507378, 10, 0, 1507379, 10, 0, 1507380, 10, 0, 1507381, 10, 0, 1507382, 10, 0, 1507383, 10, 0, 1507384, 10, 0, 1507385, 10, 0, 1507386, 10, 0, 1507387, 10, 0, 1507388, 10, 0, 1507389, 10, 0, 1507390, 10, 0, 1507391, 10, 0, 1507392, 10, 0, 1507393, 10, 0, 1507394, 10, 0, 1507395, 10, 0, 1507396, 10, 0, 1507397, 10, 0, 1507398, 10, 0, 1507399, 10, 0, 1572864, 10, 0, 1572865, 10, 0, 1572866, 10, 0, 1572867, 10, 0, 1572868, 10, 0, 1572869, 10, 0, 1572870, 10, 0, 1572871, 10, 0, 1572872, 10, 0, 1572873, 10, 0, 1572874, 10, 0, 1572875, 10, 0, 1572876, 10, 0, 1572877, 10, 0, 1572878, 10, 0, 1572879, 10, 0, 1572880, 10, 0, 1572881, 10, 0, 1572882, 10, 0, 1572883, 10, 0, 1572884, 10, 0, 1572885, 10, 0, 1572886, 10, 0, 1572887, 10, 0, 1572888, 10, 0, 1572889, 10, 0, 1572890, 10, 0, 1572891, 10, 0, 1572892, 10, 0, 1572893, 10, 0, 1572894, 10, 0, 1572895, 10, 0, 1572896, 10, 0, 1572897, 10, 0, 1572898, 10, 0, 1572899, 10, 0, 1572900, 10, 0, 1572901, 10, 0, 1572902, 10, 0, 1572903, 10, 0, 1572904, 10, 0, 1572905, 10, 0, 1572906, 10, 0, 1572907, 10, 0, 1572908, 10, 0, 1572909, 10, 0, 1572910, 10, 0, 1572911, 10, 0, 1572912, 10, 0, 1572913, 10, 0, 1572914, 10, 0, 1572915, 10, 0, 1572916, 10, 0, 1572917, 10, 0, 1572918, 10, 0, 1572919, 10, 0, 1572920, 10, 0, 1572921, 10, 0, 1572922, 10, 0, 1572923, 10, 0, 1572924, 10, 0, 1572925, 10, 0, 1572926, 10, 0, 1572927, 10, 0, 1572928, 10, 0, 1572929, 10, 0, 1572930, 10, 0, 1572931, 10, 0, 1572932, 10, 0, 1572933, 10, 0, 1572934, 10, 0, 1572935, 10, 0, 1638400, 10, 0, 1638401, 10, 0, 1638402, 10, 0, 1638403, 10, 0, 1638404, 10, 0, 1638405, 10, 0, 1638406, 10, 0, 1638407, 10, 0, 1638408, 10, 0, 1638409, 10, 0, 1638410, 10, 0, 1638411, 10, 0, 1638412, 10, 0, 1638413, 10, 0, 1638414, 10, 0, 1638415, 10, 0, 1638416, 10, 0, 1638417, 10, 0, 1638418, 10, 0, 1638419, 10, 0, 1638420, 10, 0, 1638421, 10, 0, 1638422, 10, 0, 1638423, 10, 0, 1638424, 10, 0, 1638425, 10, 0, 1638426, 10, 0, 1638427, 10, 0, 1638428, 10, 0, 1638429, 10, 0, 1638430, 10, 0, 1638431, 10, 0, 1638432, 10, 0, 1638433, 10, 0, 1638434, 10, 0, 1638435, 10, 0, 1638436, 10, 0, 1638437, 10, 0, 1638438, 10, 0, 1638439, 10, 0, 1638440, 10, 0, 1638441, 10, 0, 1638442, 10, 0, 1638443, 10, 0, 1638444, 10, 0, 1638445, 10, 0, 1638446, 10, 0, 1638447, 10, 0, 1638448, 10, 0, 1638449, 10, 0, 1638450, 10, 0, 1638451, 10, 0, 1638452, 10, 0, 1638453, 10, 0, 1638454, 10, 0, 1638455, 10, 0, 1638456, 10, 0, 1638457, 10, 0, 1638458, 10, 0, 1638459, 10, 0, 1638460, 10, 0, 1638461, 10, 0, 1638462, 10, 0, 1638463, 10, 0, 1638464, 10, 0, 1638465, 10, 0, 1638466, 10, 0, 1638467, 10, 0, 1638468, 10, 0, 1638469, 10, 0, 1638470, 10, 0, 1638471, 10, 0, 1703952, 10, 0, 1703953, 10, 0, 1703954, 10, 0, 1703955, 10, 0, 1703956, 10, 0, 1703957, 10, 0, 1703958, 10, 0, 1703959, 10, 0, 1703960, 10, 0, 1703961, 10, 0, 1703962, 10, 0, 1703963, 10, 0, 1703964, 10, 0, 1703965, 10, 0, 1703966, 10, 0, 1703967, 10, 0, 1703968, 10, 0, 1703969, 10, 0, 1703970, 10, 0, 1703971, 10, 0, 1703972, 10, 0, 1703973, 10, 0, 1703974, 10, 0, 1703975, 10, 0, 1703976, 10, 0, 1703977, 10, 0, 1703978, 10, 0, 1703979, 10, 0, 1703980, 10, 0, 1703981, 10, 0, 1703982, 10, 0, 1703983, 10, 0, 1703984, 10, 0, 1703985, 10, 0, 1703986, 10, 0, 1703987, 10, 0, 1703988, 10, 0, 1703989, 10, 0, 1703990, 10, 0, 1703991, 10, 0, 1703992, 10, 0, 1703993, 10, 0, 1703994, 10, 0, 1703995, 10, 0, 1703996, 10, 0, 1703997, 10, 0, 1703998, 10, 0, 1703999, 10, 0, 1704000, 10, 0, 1704001, 10, 0, 1704002, 10, 0, 1704003, 10, 0, 1704004, 10, 0, 1704005, 10, 0, 1704006, 10, 0, 1704007, 10, 0, 1769488, 10, 0, 1769489, 10, 0, 1769490, 10, 0, 1769491, 10, 0, 1769492, 10, 0, 1769493, 10, 0, 1769494, 10, 0, 1769495, 10, 0, 1769496, 10, 0, 1769497, 10, 0, 1769498, 10, 0, 1769499, 10, 0, 1769500, 10, 0, 1769501, 10, 0, 1769502, 10, 0, 1769503, 10, 0, 1769504, 10, 0, 1769505, 10, 0, 1769506, 10, 0, 1769507, 10, 0, 1769508, 10, 0, 1769509, 10, 0, 1769510, 10, 0, 1769511, 10, 0, 1769512, 10, 0, 1769513, 10, 0, 1769514, 10, 0, 1769515, 10, 0, 1769516, 10, 0, 1769517, 10, 0, 1769518, 10, 0, 1769519, 10, 0, 1769520, 10, 0, 1769521, 10, 0, 1769522, 10, 0, 1769523, 10, 0, 1769524, 10, 0, 1769525, 10, 0, 1769526, 10, 0, 1769527, 10, 0, 1769528, 10, 0, 1769529, 10, 0, 1769530, 10, 0, 1769531, 10, 0, 1769532, 10, 0, 1769533, 10, 0, 1769534, 10, 0, 1769535, 10, 0, 1769536, 10, 0, 1769537, 10, 0, 1769538, 10, 0, 1769539, 10, 0, 1769540, 10, 0, 1769541, 10, 0, 1376264, 6, 65536, 917543, 5, 0, 917544, 4, 65536, 852008, 1, 65536, 852002, 3, 0) @@ -277,10 +276,10 @@ position = Vector2(438, 272) position = Vector2(1554, 369) [node name="MovePlatforms" type="AnimationPlayer" parent="Props"] -autoplay = "move" libraries = { "": SubResource("AnimationLibrary_el48w") } +autoplay = "move" [node name="Seesaw" parent="Props" instance=ExtResource("4")] position = Vector2(1201.4, 424.76) diff --git a/2d/physics_tests/README.md b/2d/physics_tests/README.md index 5f15ba521a..bf8ba4dd0a 100644 --- a/2d/physics_tests/README.md +++ b/2d/physics_tests/README.md @@ -12,7 +12,7 @@ They can be used for different purpose: Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/888 diff --git a/2d/physics_tests/project.godot b/2d/physics_tests/project.godot index 2bf7c1c010..b18f4af974 100644 --- a/2d/physics_tests/project.godot +++ b/2d/physics_tests/project.godot @@ -29,60 +29,60 @@ window/stretch/aspect="expand" [input] ui_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } ui_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } ui_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } ui_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } toggle_full_screen={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } exit={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_debug_collision={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } restart_test={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_pause={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } character_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } character_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } character_jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -91,3 +91,8 @@ character_jump={ [memory] limits/message_queue/max_size_kb=10240 + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/platformer/README.md b/2d/platformer/README.md index 4bd5b6d274..1e4bd8bf79 100644 --- a/2d/platformer/README.md +++ b/2d/platformer/README.md @@ -17,7 +17,7 @@ they contain a lot of comments that explain how each class works. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/120 diff --git a/2d/platformer/project.godot b/2d/platformer/project.godot index 299f2a90bd..917571b020 100644 --- a/2d/platformer/project.godot +++ b/2d/platformer/project.godot @@ -27,10 +27,6 @@ config/icon="res://icon.webp" Music="*res://music.tscn" -[debug] - -gdscript/completion/autocomplete_setters_and_getters=true - [display] window/size/viewport_width=800 @@ -40,16 +36,6 @@ window/size/window_height_override=960 window/stretch/mode="canvas_items" window/stretch/aspect="keep_height" window/stretch/scale_mode="integer" -stretch/aspect="keep_height" -stretch/mode="2d" - -[gdnative] - -singletons=[] - -[image_loader] - -repeat=false [importer_defaults] @@ -77,14 +63,14 @@ texture={ [input] jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -92,7 +78,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -100,7 +86,7 @@ move_right={ ] } shoot={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -110,73 +96,73 @@ shoot={ ] } toggle_fullscreen={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194342,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":true,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_pause={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194305,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } jump_p1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_left_p1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right_p1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } shoot_p1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } jump_p2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194320,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_left_p2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":-1.0,"script":null) ] } move_right_p2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194321,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":0,"axis_value":1.0,"script":null) ] } shoot_p2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194438,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194326,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } splitscreen={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":10,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194306,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -195,26 +181,8 @@ splitscreen={ common/physics_ticks_per_second=120 2d/default_gravity=2100 -[rasterizer] - -use_pixel_snap=true - -[render] - -mipmap_policy=1 - [rendering] textures/canvas_textures/default_texture_filter=0 -quality/driver/driver_name="GLES2" -quality/intended_usage/framebuffer_allocation=0 -quality/intended_usage/framebuffer_allocation.mobile=1 -vram_compression/import_etc=true -quality/filters/anisotropic_filter_level=2 -quality/filters/use_nearest_mipmap_filter=true -quality/depth/hdr=false -quality/2d/use_pixel_snap=true - -[texture_import] - -filter=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/pong/README.md b/2d/pong/README.md index 95b67e06ca..f6ea598967 100644 --- a/2d/pong/README.md +++ b/2d/pong/README.md @@ -6,14 +6,10 @@ for game development in Godot, including Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Note: There is a C# version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/mono/pong). -Note: There is a VisualScript version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/visual_script/pong). - -Note: There is a GDNative C++ version available [here](https://github.com/godotengine/gdnative-demos/tree/master/cpp/pong). - Check out this demo on the asset library: https://godotengine.org/asset-library/asset/121 ## How does it work? diff --git a/2d/pong/pong.tscn b/2d/pong/pong.tscn index 7d78ccd294..1fab29f038 100644 --- a/2d/pong/pong.tscn +++ b/2d/pong/pong.tscn @@ -94,7 +94,6 @@ shape = SubResource("4") [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(320, 200) -current = true [connection signal="area_entered" from="Left" to="Left" method="_on_area_entered"] [connection signal="area_entered" from="Right" to="Right" method="_on_area_entered"] diff --git a/2d/pong/project.godot b/2d/pong/project.godot index 6cfebe2cc5..d59dddc591 100644 --- a/2d/pong/project.godot +++ b/2d/pong/project.godot @@ -24,32 +24,33 @@ window/size/viewport_width=640 window/size/viewport_height=400 window/stretch/mode="canvas_items" window/stretch/aspect="expand" +window/stretch/scale_mode="integer" [input] left_move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) ] } left_move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) ] } right_move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } right_move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -59,6 +60,8 @@ right_move_up={ [rendering] textures/canvas_textures/default_texture_filter=0 -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.105882, 0.105882, 0.12549, 1) -2d/snapping/use_gpu_pixel_snap=true +2d/snap/snap_2d_transforms_to_pixel=true +2d/snap/snap_2d_vertices_to_pixel=true diff --git a/2d/role_playing_game/README.md b/2d/role_playing_game/README.md index a4c06759ef..8c49295868 100644 --- a/2d/role_playing_game/README.md +++ b/2d/role_playing_game/README.md @@ -6,7 +6,7 @@ battle system on top of it. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/520 diff --git a/2d/role_playing_game/project.godot b/2d/role_playing_game/project.godot index ed1f45fe20..a8bfdd0e12 100644 --- a/2d/role_playing_game/project.godot +++ b/2d/role_playing_game/project.godot @@ -33,7 +33,7 @@ import/blender/enabled=false [input] move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":122,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null) @@ -41,7 +41,7 @@ move_up={ ] } move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) @@ -49,7 +49,7 @@ move_down={ ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) @@ -57,7 +57,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) @@ -67,6 +67,6 @@ move_right={ [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.466667, 0.694118, 0.717647, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true diff --git a/2d/screen_space_shaders/README.md b/2d/screen_space_shaders/README.md index aec21e0d9c..bb6e83fe98 100644 --- a/2d/screen_space_shaders/README.md +++ b/2d/screen_space_shaders/README.md @@ -3,9 +3,9 @@ Several examples of full screen 2D shader processing. Many common full-res effects are implemented here for reference. -Language: [GDSL](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) and GDScript +Language: [Godot shader language](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) and GDScript -Renderer: Vulkan Clustered +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/122 diff --git a/2d/screen_space_shaders/project.godot b/2d/screen_space_shaders/project.godot index f6cd0cb754..1bfee650f1 100644 --- a/2d/screen_space_shaders/project.godot +++ b/2d/screen_space_shaders/project.godot @@ -23,3 +23,8 @@ config/icon="res://icon.webp" window/size/viewport_width=800 window/stretch/mode="canvas_items" window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/skeleton/README.md b/2d/skeleton/README.md index ae42dc8d03..a7cbca37f0 100644 --- a/2d/skeleton/README.md +++ b/2d/skeleton/README.md @@ -6,7 +6,7 @@ there is a simple character controller that controls the animations. Language: GDScript -Renderer: GL Compatibility +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/1027 diff --git a/2d/skeleton/level.tscn b/2d/skeleton/level.tscn index a963a36ad1..4596c0a84f 100644 --- a/2d/skeleton/level.tscn +++ b/2d/skeleton/level.tscn @@ -17,7 +17,8 @@ layer_0/tile_data = PackedInt32Array(524309, 327681, 2, 458773, 65537, 1, 393237 [node name="ParallaxBackground" parent="." instance=ExtResource("3")] offset = Vector2(0, -427) -transform = Transform2D(1, 0, 0, 1, 0, -427) +scale = Vector2(0.5, 0.5) +transform = Transform2D(0.5, 0, 0, 0.5, 0, -427) [node name="SkeletalPlayer" parent="." instance=ExtResource("4")] position = Vector2(482, -24) diff --git a/2d/skeleton/player/player.tscn b/2d/skeleton/player/player.tscn index 9a19be6bfc..8d2a88e3fa 100644 --- a/2d/skeleton/player/player.tscn +++ b/2d/skeleton/player/player.tscn @@ -1722,7 +1722,6 @@ animation = &"walk" [sub_resource type="AnimationNodeTimeScale" id="22"] [sub_resource type="AnimationNodeBlendTree" id="23"] -graph_offset = Vector2(380.667, 382) nodes/fall_animation/node = SubResource("9") nodes/fall_animation/position = Vector2(533.333, 973.333) nodes/fly_animation/node = SubResource("10") @@ -1752,7 +1751,7 @@ nodes/walk_animation/node = SubResource("21") nodes/walk_animation/position = Vector2(533.333, 626.667) nodes/walk_timescale/node = SubResource("22") nodes/walk_timescale/position = Vector2(720, 626.667) -node_connections = [&"output", 0, &"land_hard", &"jump", 0, &"state", &"jump", 1, &"jump_animation", &"land", 0, &"jump", &"land", 1, &"land_animation", &"land_hard", 0, &"land", &"land_hard", 1, &"land_hard_animation", &"run_timescale", 0, &"run_animation", &"state", 0, &"idle_animation", &"state", 1, &"walk_timescale", &"state", 2, &"run_timescale", &"state", 3, &"fly_animation", &"state", 4, &"fall_animation", &"walk_timescale", 0, &"walk_animation"] +node_connections = [&"jump", 0, &"state", &"jump", 1, &"jump_animation", &"land", 0, &"jump", &"land", 1, &"land_animation", &"land_hard", 0, &"land", &"land_hard", 1, &"land_hard_animation", &"output", 0, &"land_hard", &"run_timescale", 0, &"run_animation", &"state", 0, &"idle_animation", &"state", 1, &"walk_timescale", &"state", 2, &"run_timescale", &"state", 3, &"fly_animation", &"state", 4, &"fall_animation", &"walk_timescale", 0, &"walk_animation"] [sub_resource type="RectangleShape2D" id="24"] size = Vector2(22, 32.8716) @@ -1770,6 +1769,10 @@ libraries = { } [node name="AnimationTree" type="AnimationTree" parent="."] +active = false +libraries = { +"": SubResource("AnimationLibrary_sx6h1") +} tree_root = SubResource("23") anim_player = NodePath("../AnimationPlayer") parameters/jump/active = false @@ -1782,9 +1785,9 @@ parameters/land_hard/active = false parameters/land_hard/internal_active = false parameters/land_hard/request = 0 parameters/run_timescale/scale = 1.0 -parameters/state/current_state = "" +parameters/state/current_state = "idle" parameters/state/transition_request = "" -parameters/state/current_index = -1 +parameters/state/current_index = 0 parameters/walk_timescale/scale = 0.1 [node name="Sprite2D" type="Node2D" parent="."] @@ -1799,17 +1802,19 @@ rest = Transform2D(1, 0, 0, 1, -3, -11) [node name="Chest" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip"] position = Vector2(0, -32) -rotation = -0.0855327 +rotation = -0.00707523 +scale = Vector2(1, 1) rest = Transform2D(1, 0, 0, 1, 0, -32) [node name="Head" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest"] position = Vector2(0, -160) -rotation = 0.287974 +rotation = 0.0539257 +scale = Vector2(1, 1) rest = Transform2D(1, 0, 0, 1, 0, -160) [node name="Chin" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest/Head"] position = Vector2(0, -49) -rotation = -0.0435718 +rotation = 0.00169551 rest = Transform2D(0.999999, 0.00169551, -0.00169551, 0.999999, 0, -49) auto_calculate_length_and_angle = false length = 16.0 @@ -1817,17 +1822,16 @@ bone_angle = -2.49648 [node name="RightArm" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest"] position = Vector2(80, -100) -rotation = -0.524992 rest = Transform2D(1, 0, 0, 1, 80, -100) [node name="RightForearm" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest/RightArm"] position = Vector2(-11, 97) -rotation = -0.0536324 rest = Transform2D(1, 0, 0, 1, -11, 97) [node name="RightHand" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest/RightArm/RightForearm"] position = Vector2(13, 94) rotation = 1.22745 +scale = Vector2(1, 1) rest = Transform2D(0.336639, 0.941634, -0.941634, 0.336639, 13, 94) auto_calculate_length_and_angle = false length = 16.0 @@ -1835,12 +1839,10 @@ bone_angle = 70.3277 [node name="LeftArm" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest"] position = Vector2(-100, -100) -rotation = 0.744076 rest = Transform2D(1, 0, 0, 1, -100, -100) [node name="LeftForearm" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest/LeftArm"] position = Vector2(-2, 95) -rotation = -0.821385 rest = Transform2D(1, 0, 0, 1, -2, 95) [node name="LeftHand" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/Chest/LeftArm/LeftForearm"] @@ -1853,12 +1855,10 @@ bone_angle = 70.4641 [node name="LeftLeg" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip"] position = Vector2(-72, 26) -rotation = 0.103216 rest = Transform2D(1, 0, 0, 1, -72, 26) [node name="LeftLowerLeg" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/LeftLeg"] position = Vector2(-13, 91) -rotation = 0.613454 rest = Transform2D(1, 0, 0, 1, -13, 91) [node name="LeftFoot" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/LeftLeg/LeftLowerLeg"] @@ -1870,13 +1870,10 @@ bone_angle = 0.0 [node name="RightLeg" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip"] position = Vector2(46, 11) -rotation = -0.755354 -scale = Vector2(1, 1) rest = Transform2D(1, 0, 0, 1, 46, 11) [node name="RightLowerLeg" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/RightLeg"] position = Vector2(-26, 94) -rotation = 0.622049 rest = Transform2D(1, 0, 0, 1, -26, 94) [node name="RightFoot" type="Bone2D" parent="Sprite2D/Skeleton2D/Hip/RightLeg/RightLowerLeg"] @@ -1965,4 +1962,4 @@ shape = SubResource("24") [node name="Camera2D" type="Camera2D" parent="."] position = Vector2(0, -32) -zoom = Vector2(2, 2) +zoom = Vector2(4, 4) diff --git a/2d/skeleton/project.godot b/2d/skeleton/project.godot index be26d67c9b..265ee44dae 100644 --- a/2d/skeleton/project.godot +++ b/2d/skeleton/project.godot @@ -29,41 +29,36 @@ window/stretch/aspect="keep_height" [input] move_left={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } move_right={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } jump={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) -] -} -exit={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":122,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } walk={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"echo":false,"script":null) ] } @@ -73,14 +68,11 @@ limits/debugger_stdout/max_chars_per_second=1000000 [physics] +common/physics_ticks_per_second=120 2d/default_gravity=900 [rendering] renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" -quality/driver/driver_name="GLES2" 2d/snapping/use_gpu_pixel_snap=true -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/2d/use_pixel_snap=true diff --git a/2d/sprite_shaders/README.md b/2d/sprite_shaders/README.md index 22c65682b8..2536922df4 100644 --- a/2d/sprite_shaders/README.md +++ b/2d/sprite_shaders/README.md @@ -3,9 +3,9 @@ This is a sample consisting of different shaders applied to some sprites. Effects include outlines, blurs, distorts, shadows, glows, and more. -Language: [GDSL](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) +Language: [Godot shader language](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/522 diff --git a/2d/sprite_shaders/project.godot b/2d/sprite_shaders/project.godot index a60e422aa6..0a32a00d08 100644 --- a/2d/sprite_shaders/project.godot +++ b/2d/sprite_shaders/project.godot @@ -25,6 +25,5 @@ window/stretch/aspect="expand" [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/2d/sprite_shaders/sprite_shaders.tscn b/2d/sprite_shaders/sprite_shaders.tscn index 294f3f53f7..105d30a494 100644 --- a/2d/sprite_shaders/sprite_shaders.tscn +++ b/2d/sprite_shaders/sprite_shaders.tscn @@ -13,20 +13,20 @@ [sub_resource type="ShaderMaterial" id="1"] shader = ExtResource("1") +shader_parameter/outline_width = 2.0 shader_parameter/outline_color = null -shader_parameter/outline_width = null [sub_resource type="ShaderMaterial" id="2"] [sub_resource type="ShaderMaterial" id="3"] shader = ExtResource("1") +shader_parameter/outline_width = 2.0 shader_parameter/outline_color = null -shader_parameter/outline_width = null [sub_resource type="ShaderMaterial" id="4"] shader = ExtResource("3") +shader_parameter/aura_width = 2.0 shader_parameter/aura_color = Color(0, 1, 0.486275, 1) -shader_parameter/aura_width = null [sub_resource type="ShaderMaterial" id="5"] shader = ExtResource("4") @@ -38,13 +38,13 @@ shader_parameter/fattyness = 3.0 [sub_resource type="ShaderMaterial" id="7"] shader = ExtResource("6") +shader_parameter/radius = 5.0 shader_parameter/modulate = null -shader_parameter/radius = null [sub_resource type="ShaderMaterial" id="8"] shader = ExtResource("7") +shader_parameter/offset = Vector2(8, 8) shader_parameter/modulate = null -shader_parameter/offset = null [sub_resource type="ShaderMaterial" id="9"] shader = ExtResource("8") @@ -52,8 +52,8 @@ shader_parameter/modulate = Color(0.858824, 0.317647, 0.701961, 1) [sub_resource type="ShaderMaterial" id="10"] shader = ExtResource("9") -shader_parameter/amount = 0.25 shader_parameter/radius = 5.0 +shader_parameter/amount = 0.25 [sub_resource type="ShaderMaterial" id="11"] shader = ExtResource("10") @@ -127,4 +127,3 @@ region_rect = Rect2(141, 115, 39, 6) [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(248, 120) -current = true diff --git a/2d/tween/README.md b/2d/tween/README.md index 8bb4d9ffac..5877b739a8 100644 --- a/2d/tween/README.md +++ b/2d/tween/README.md @@ -4,7 +4,7 @@ A demo showing advanced tween usage. Language: GDScript -Renderer: Vulkan +Renderer: Compatibility ## Screenshots diff --git a/2d/tween/project.godot b/2d/tween/project.godot index 381c621987..2206b6420c 100644 --- a/2d/tween/project.godot +++ b/2d/tween/project.godot @@ -24,5 +24,8 @@ target_fps=60 window/stretch/mode="canvas_items" window/stretch/aspect="expand" window/size/height=800 -stretch/aspect="keep_width" -stretch/mode="2d" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/3d/antialiasing/README.md b/3d/antialiasing/README.md index 96ffbd9ce2..da034c19fd 100644 --- a/3d/antialiasing/README.md +++ b/3d/antialiasing/README.md @@ -45,7 +45,7 @@ compared to traditional bilinear filtering. Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ ## Screenshots diff --git a/3d/antialiasing/project.godot b/3d/antialiasing/project.godot index 50821d8c93..c667f6fb5f 100644 --- a/3d/antialiasing/project.godot +++ b/3d/antialiasing/project.godot @@ -26,5 +26,3 @@ window/stretch/aspect="expand" textures/default_filters/anisotropic_filtering_level=4 textures/decals/filter=4 -quality/screen_filters/msaa=3 -environment/default_environment="res://default_env.tres" diff --git a/3d/decals/project.godot b/3d/decals/project.godot index 461c08ca43..03ddff6ab3 100644 --- a/3d/decals/project.godot +++ b/3d/decals/project.godot @@ -24,7 +24,7 @@ window/stretch/aspect="expand" [input] place_decal={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":80,"key_label":0,"unicode":0,"echo":false,"script":null) ] } @@ -33,5 +33,3 @@ place_decal={ textures/default_filters/anisotropic_filtering_level=4 textures/decals/filter=5 -quality/screen_filters/msaa=3 -environment/default_environment="res://default_env.tres" diff --git a/3d/global_illumination/project.godot b/3d/global_illumination/project.godot index 77f8dfcb5a..f8de6a5f05 100644 --- a/3d/global_illumination/project.godot +++ b/3d/global_illumination/project.godot @@ -29,58 +29,52 @@ import/blender/enabled=false [input] cycle_gi_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"echo":false,"script":null) ] } cycle_reflection_probe_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":0,"echo":false,"script":null) ] } cycle_ssil_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":70,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777232,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777234,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777231,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777233,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_mouse_capture={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777217,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":16777253,"key_label":0,"unicode":0,"echo":false,"script":null) ] } -[physics] - -common/enable_pause_aware_picking=true - [rendering] anti_aliasing/quality/screen_space_aa=1 anti_aliasing/quality/use_debanding=true -quality/shadows/filter_mode=2 -environment/default_environment="res://default_env.tres" diff --git a/3d/ik/project.godot b/3d/ik/project.godot index 580b27b6ba..85d5d7424b 100644 --- a/3d/ik/project.godot +++ b/3d/ik/project.godot @@ -23,15 +23,3 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" - -[editor_plugins] - -enabled=PackedStringArray() - -[rendering] - -quality/driver/fallback_to_gles2=true -vram_compression/import_etc=true -quality/shadows/filter_mode=2 -quality/filters/msaa=2 -environment/default_environment="res://default_env.tres" diff --git a/3d/kinematic_character/cubelib.tres b/3d/kinematic_character/cubelib.tres index 67fe9f007e..a26a25f9b5 100644 --- a/3d/kinematic_character/cubelib.tres +++ b/3d/kinematic_character/cubelib.tres @@ -2,7 +2,7 @@ [ext_resource type="ArrayMesh" uid="uid://ba7dqpj07mlsy" path="res://models/cube.mesh" id="1"] -[sub_resource type="Image" id="Image_xm1e4"] +[sub_resource type="Image" id="Image_tihji"] data = { "data": PackedByteArray(76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 66, 41, 73, 255, 68, 42, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 32, 61, 255, 62, 36, 68, 255, 70, 43, 77, 255, 72, 45, 78, 255, 67, 43, 73, 255, 63, 41, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 33, 63, 255, 59, 34, 65, 255, 65, 38, 72, 255, 73, 45, 80, 255, 76, 47, 82, 255, 72, 47, 78, 255, 69, 46, 75, 255, 63, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 59, 34, 64, 255, 61, 35, 67, 255, 63, 36, 69, 255, 66, 38, 73, 255, 75, 44, 81, 255, 78, 47, 84, 255, 76, 49, 83, 255, 75, 51, 82, 255, 69, 46, 75, 255, 62, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 54, 32, 59, 255, 60, 35, 65, 255, 62, 36, 68, 255, 63, 37, 70, 255, 62, 36, 69, 255, 69, 40, 76, 255, 80, 48, 87, 255, 82, 50, 89, 255, 81, 52, 88, 255, 80, 54, 87, 255, 75, 51, 81, 255, 68, 46, 75, 255, 63, 42, 68, 255, 55, 35, 61, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 52, 31, 57, 255, 57, 34, 63, 255, 64, 37, 70, 255, 62, 36, 69, 255, 62, 36, 69, 255, 68, 39, 75, 255, 77, 45, 84, 255, 88, 52, 94, 255, 89, 54, 96, 255, 85, 55, 92, 255, 83, 55, 90, 255, 81, 55, 87, 255, 75, 51, 81, 255, 68, 46, 74, 255, 61, 40, 67, 255, 54, 34, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 48, 30, 53, 255, 51, 31, 56, 255, 54, 32, 59, 255, 61, 36, 67, 255, 63, 36, 69, 255, 62, 36, 69, 255, 70, 40, 77, 255, 74, 43, 81, 255, 79, 46, 87, 255, 87, 53, 95, 255, 90, 56, 97, 255, 91, 59, 99, 255, 85, 55, 93, 255, 85, 58, 92, 255, 81, 56, 87, 255, 73, 50, 80, 255, 67, 45, 73, 255, 60, 39, 65, 255, 53, 34, 58, 255, 46, 29, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 28, 51, 255, 50, 30, 55, 255, 54, 32, 59, 255, 59, 36, 65, 255, 64, 37, 70, 255, 65, 37, 72, 255, 72, 42, 80, 255, 76, 44, 84, 255, 76, 44, 84, 255, 82, 49, 90, 255, 94, 58, 103, 255, 97, 61, 105, 255, 95, 61, 103, 255, 91, 59, 98, 255, 88, 60, 96, 255, 86, 60, 93, 255, 79, 54, 85, 255, 72, 48, 78, 255, 67, 45, 73, 255, 60, 39, 65, 255, 52, 33, 57, 255, 45, 29, 50, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 45, 28, 49, 255, 48, 29, 53, 255, 55, 33, 60, 255, 60, 36, 65, 255, 64, 39, 70, 255, 68, 40, 74, 255, 75, 44, 83, 255, 78, 46, 85, 255, 75, 44, 84, 255, 78, 46, 87, 255, 85, 51, 93, 255, 93, 58, 103, 255, 99, 62, 107, 255, 101, 66, 110, 255, 96, 63, 104, 255, 92, 61, 100, 255, 90, 61, 97, 255, 85, 59, 92, 255, 77, 52, 84, 255, 73, 49, 79, 255, 67, 45, 72, 255, 58, 38, 63, 255, 49, 31, 54, 255, 43, 27, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 38, 24, 41, 255, 45, 29, 49, 255, 50, 31, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 63, 38, 69, 255, 68, 41, 74, 255, 75, 44, 82, 255, 77, 45, 85, 255, 76, 44, 84, 255, 80, 47, 88, 255, 80, 47, 89, 255, 86, 51, 95, 255, 98, 60, 106, 255, 102, 64, 110, 255, 105, 69, 114, 255, 101, 67, 110, 255, 95, 62, 103, 255, 93, 62, 100, 255, 90, 61, 97, 255, 82, 56, 89, 255, 76, 50, 82, 255, 72, 49, 78, 255, 64, 42, 69, 255, 53, 33, 58, 255, 46, 28, 50, 255, 41, 26, 45, 255, 38, 24, 42, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 35, 22, 39, 255, 41, 26, 45, 255, 50, 32, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 62, 37, 68, 255, 67, 40, 73, 255, 72, 44, 79, 255, 75, 45, 83, 255, 78, 46, 85, 255, 82, 48, 90, 255, 83, 49, 92, 255, 82, 47, 91, 255, 92, 54, 101, 255, 101, 61, 108, 255, 105, 64, 113, 255, 109, 70, 119, 255, 105, 69, 114, 255, 100, 66, 109, 255, 95, 62, 103, 255, 94, 63, 101, 255, 89, 59, 95, 255, 80, 52, 86, 255, 76, 51, 82, 255, 69, 45, 75, 255, 56, 34, 61, 255, 49, 29, 54, 255, 44, 26, 48, 255, 43, 27, 47, 255, 37, 23, 40, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 29, 18, 32, 255, 34, 21, 37, 255, 37, 22, 41, 255, 44, 27, 48, 255, 51, 32, 56, 255, 57, 35, 62, 255, 61, 38, 68, 255, 66, 40, 72, 255, 71, 43, 78, 255, 73, 45, 81, 255, 77, 46, 85, 255, 82, 49, 90, 255, 88, 53, 96, 255, 85, 50, 95, 255, 86, 49, 96, 255, 94, 55, 104, 255, 102, 60, 111, 255, 104, 63, 114, 255, 112, 71, 122, 255, 110, 72, 119, 255, 104, 69, 113, 255, 99, 64, 107, 255, 93, 60, 101, 255, 92, 60, 99, 255, 87, 55, 94, 255, 81, 53, 87, 255, 73, 48, 80, 255, 62, 38, 67, 255, 53, 32, 59, 255, 48, 28, 53, 255, 46, 28, 50, 255, 43, 27, 46, 255, 35, 21, 38, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 28, 17, 31, 255, 33, 21, 37, 255, 38, 23, 41, 255, 41, 24, 45, 255, 48, 28, 52, 255, 55, 33, 60, 255, 61, 38, 67, 255, 65, 40, 72, 255, 70, 43, 77, 255, 72, 44, 79, 255, 76, 46, 83, 255, 81, 49, 89, 255, 88, 52, 96, 255, 88, 52, 97, 255, 88, 51, 98, 255, 92, 53, 101, 255, 97, 57, 107, 255, 106, 63, 115, 255, 111, 68, 121, 255, 116, 74, 127, 255, 114, 75, 124, 255, 109, 72, 119, 255, 103, 67, 112, 255, 95, 60, 104, 255, 91, 58, 99, 255, 89, 57, 97, 255, 86, 55, 93, 255, 78, 51, 85, 255, 68, 43, 74, 255, 60, 37, 65, 255, 53, 31, 58, 255, 48, 29, 53, 255, 46, 29, 50, 255, 39, 24, 42, 255, 32, 20, 36, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 17, 29, 255, 33, 21, 36, 255, 38, 25, 42, 255, 41, 24, 45, 255, 45, 26, 50, 255, 53, 32, 58, 255, 61, 38, 67, 255, 65, 40, 71, 255, 69, 41, 75, 255, 72, 43, 79, 255, 76, 46, 84, 255, 80, 49, 88, 255, 86, 52, 94, 255, 89, 53, 98, 255, 93, 55, 102, 255, 98, 58, 108, 255, 97, 57, 107, 255, 101, 59, 111, 255, 117, 72, 127, 255, 123, 77, 134, 255, 121, 77, 131, 255, 119, 77, 129, 255, 111, 72, 121, 255, 105, 68, 115, 255, 99, 63, 108, 255, 92, 58, 101, 255, 90, 57, 98, 255, 87, 55, 94, 255, 83, 53, 90, 255, 74, 47, 81, 255, 65, 41, 71, 255, 59, 36, 65, 255, 53, 33, 59, 255, 48, 29, 53, 255, 44, 27, 48, 255, 37, 23, 41, 255, 31, 18, 34, 255, 26, 16, 28, 255, 21, 12, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 20, 13, 22, 255, 26, 17, 28, 255, 32, 21, 35, 255, 39, 26, 42, 255, 42, 27, 46, 255, 44, 26, 49, 255, 51, 31, 56, 255, 58, 36, 64, 255, 63, 39, 69, 255, 68, 41, 75, 255, 73, 44, 80, 255, 76, 47, 84, 255, 79, 48, 87, 255, 85, 52, 94, 255, 90, 55, 99, 255, 96, 58, 105, 255, 102, 62, 112, 255, 102, 61, 112, 255, 100, 59, 110, 255, 107, 64, 117, 255, 120, 74, 130, 255, 128, 81, 139, 255, 123, 78, 134, 255, 122, 78, 133, 255, 114, 73, 124, 255, 105, 66, 115, 255, 101, 64, 110, 255, 95, 60, 104, 255, 90, 56, 98, 255, 87, 55, 95, 255, 85, 54, 92, 255, 79, 49, 85, 255, 70, 44, 77, 255, 63, 39, 69, 255, 58, 36, 64, 255, 53, 33, 58, 255, 47, 29, 52, 255, 41, 25, 45, 255, 35, 21, 39, 255, 29, 17, 31, 255, 24, 14, 26, 255, 20, 11, 21, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 20, 255, 25, 16, 27, 255, 31, 20, 33, 255, 38, 25, 41, 255, 45, 30, 48, 255, 47, 30, 51, 255, 50, 31, 55, 255, 57, 35, 62, 255, 61, 37, 67, 255, 67, 40, 73, 255, 73, 44, 80, 255, 77, 46, 84, 255, 79, 48, 86, 255, 85, 52, 93, 255, 91, 55, 100, 255, 96, 58, 105, 255, 103, 63, 112, 255, 106, 64, 116, 255, 103, 62, 114, 255, 106, 63, 116, 255, 111, 65, 120, 255, 122, 75, 132, 255, 129, 80, 140, 255, 128, 81, 139, 255, 124, 79, 135, 255, 119, 76, 129, 255, 110, 69, 119, 255, 102, 63, 111, 255, 97, 60, 106, 255, 91, 57, 100, 255, 87, 55, 96, 255, 85, 53, 93, 255, 82, 51, 89, 255, 74, 46, 81, 255, 66, 40, 72, 255, 61, 37, 67, 255, 57, 35, 62, 255, 50, 31, 55, 255, 45, 27, 49, 255, 39, 24, 43, 255, 33, 20, 37, 255, 28, 16, 30, 255, 23, 14, 26, 255, 18, 10, 20, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 17, 11, 19, 255, 23, 16, 25, 255, 29, 19, 32, 255, 35, 24, 38, 255, 42, 29, 46, 255, 49, 33, 53, 255, 52, 33, 56, 255, 56, 35, 61, 255, 61, 38, 66, 255, 65, 40, 71, 255, 71, 43, 78, 255, 76, 46, 83, 255, 81, 49, 89, 255, 84, 51, 93, 255, 89, 54, 98, 255, 96, 58, 105, 255, 104, 63, 113, 255, 110, 66, 120, 255, 107, 64, 117, 255, 108, 64, 118, 255, 112, 67, 122, 255, 115, 68, 126, 255, 122, 73, 137, 255, 127, 76, 141, 255, 130, 81, 140, 255, 126, 79, 136, 255, 122, 76, 132, 255, 116, 73, 126, 255, 108, 66, 116, 255, 101, 62, 110, 255, 95, 59, 104, 255, 90, 56, 98, 255, 85, 53, 93, 255, 82, 51, 90, 255, 77, 48, 84, 255, 70, 44, 77, 255, 65, 40, 71, 255, 60, 36, 65, 255, 55, 33, 60, 255, 48, 29, 53, 255, 42, 25, 46, 255, 37, 22, 41, 255, 32, 19, 35, 255, 27, 16, 29, 255, 21, 13, 24, 255, 16, 9, 17, 255, 10, 6, 11, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 10, 6, 11, 255, 16, 10, 17, 255, 22, 15, 23, 255, 28, 19, 30, 255, 33, 23, 36, 255, 40, 27, 43, 255, 46, 30, 50, 255, 53, 35, 58, 255, 57, 36, 62, 255, 61, 38, 67, 255, 64, 40, 70, 255, 69, 42, 75, 255, 73, 44, 80, 255, 80, 49, 88, 255, 84, 51, 92, 255, 88, 53, 96, 255, 94, 57, 103, 255, 105, 64, 114, 255, 111, 68, 122, 255, 110, 66, 120, 255, 110, 65, 120, 255, 112, 67, 123, 255, 115, 69, 127, 255, 118, 70, 131, 255, 129, 78, 143, 255, 131, 79, 144, 255, 130, 80, 140, 255, 129, 80, 139, 255, 123, 77, 133, 255, 121, 75, 130, 255, 112, 68, 120, 255, 107, 65, 116, 255, 101, 62, 110, 255, 94, 58, 102, 255, 89, 55, 97, 255, 83, 52, 91, 255, 79, 49, 86, 255, 73, 45, 80, 255, 69, 42, 75, 255, 64, 39, 70, 255, 59, 35, 64, 255, 52, 32, 57, 255, 47, 28, 51, 255, 41, 24, 45, 255, 35, 21, 38, 255, 29, 17, 32, 255, 24, 14, 26, 255, 19, 11, 21, 255, 14, 8, 15, 255, 9, 5, 10, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 8, 5, 9, 255, 14, 9, 15, 255, 20, 14, 22, 255, 26, 18, 28, 255, 32, 22, 35, 255, 38, 26, 41, 255, 44, 29, 47, 255, 50, 33, 54, 255, 58, 37, 62, 255, 62, 39, 67, 255, 65, 41, 71, 255, 67, 42, 74, 255, 72, 44, 79, 255, 77, 47, 84, 255, 81, 50, 89, 255, 88, 54, 96, 255, 93, 56, 102, 255, 103, 64, 113, 255, 113, 70, 123, 255, 113, 69, 123, 255, 111, 67, 122, 255, 113, 67, 123, 255, 116, 68, 126, 255, 118, 71, 131, 255, 124, 75, 137, 255, 136, 82, 148, 255, 137, 83, 149, 255, 133, 80, 142, 255, 132, 82, 142, 255, 123, 76, 134, 255, 121, 74, 130, 255, 116, 71, 125, 255, 110, 66, 119, 255, 108, 65, 118, 255, 99, 61, 109, 255, 93, 58, 102, 255, 88, 55, 96, 255, 81, 50, 89, 255, 77, 48, 84, 255, 72, 44, 79, 255, 68, 41, 74, 255, 63, 38, 69, 255, 55, 33, 61, 255, 50, 30, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 33, 19, 36, 255, 26, 15, 28, 255, 21, 12, 23, 255, 17, 10, 19, 255, 12, 7, 13, 255, 8, 5, 9, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 18, 12, 19, 255, 24, 16, 26, 255, 31, 21, 33, 255, 37, 26, 40, 255, 43, 30, 47, 255, 49, 32, 53, 255, 56, 35, 60, 255, 61, 39, 66, 255, 65, 41, 70, 255, 68, 42, 74, 255, 71, 44, 78, 255, 74, 46, 82, 255, 78, 48, 86, 255, 84, 52, 92, 255, 92, 56, 101, 255, 103, 63, 112, 255, 110, 68, 120, 255, 115, 71, 125, 255, 114, 69, 125, 255, 115, 69, 126, 255, 117, 69, 127, 255, 119, 71, 130, 255, 122, 73, 134, 255, 129, 78, 141, 255, 138, 83, 151, 255, 137, 82, 150, 255, 133, 81, 143, 255, 132, 80, 141, 255, 127, 77, 136, 255, 123, 75, 132, 255, 118, 72, 127, 255, 113, 69, 122, 255, 109, 66, 119, 255, 105, 63, 114, 255, 96, 58, 105, 255, 88, 54, 97, 255, 83, 52, 91, 255, 78, 49, 86, 255, 74, 45, 81, 255, 71, 43, 78, 255, 66, 39, 72, 255, 59, 36, 65, 255, 52, 32, 57, 255, 47, 28, 51, 255, 43, 26, 47, 255, 39, 23, 43, 255, 32, 18, 35, 255, 24, 14, 27, 255, 19, 11, 21, 255, 15, 9, 17, 255, 11, 7, 12, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 15, 10, 17, 255, 22, 14, 24, 255, 28, 19, 30, 255, 35, 24, 38, 255, 41, 28, 45, 255, 48, 32, 51, 255, 54, 35, 58, 255, 58, 37, 63, 255, 62, 39, 68, 255, 66, 41, 72, 255, 69, 43, 75, 255, 72, 45, 79, 255, 76, 48, 84, 255, 80, 49, 88, 255, 92, 56, 100, 255, 103, 63, 112, 255, 109, 67, 118, 255, 114, 71, 125, 255, 118, 73, 128, 255, 118, 72, 129, 255, 120, 72, 131, 255, 119, 70, 129, 255, 121, 72, 132, 255, 127, 76, 138, 255, 134, 81, 143, 255, 143, 86, 155, 255, 142, 86, 155, 255, 133, 81, 146, 255, 132, 80, 142, 255, 128, 77, 137, 255, 123, 74, 132, 255, 122, 74, 131, 255, 117, 71, 126, 255, 111, 67, 121, 255, 109, 66, 120, 255, 102, 61, 111, 255, 88, 53, 97, 255, 84, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 73, 45, 80, 255, 70, 43, 76, 255, 63, 38, 69, 255, 56, 34, 61, 255, 50, 31, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 36, 21, 40, 255, 30, 17, 33, 255, 23, 13, 25, 255, 18, 10, 19, 255, 14, 8, 15, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 21, 255, 25, 16, 28, 255, 31, 21, 34, 255, 39, 26, 42, 255, 45, 31, 49, 255, 51, 34, 55, 255, 55, 35, 60, 255, 60, 37, 65, 255, 64, 40, 69, 255, 67, 42, 73, 255, 72, 45, 79, 255, 74, 46, 82, 255, 78, 48, 85, 255, 91, 55, 99, 255, 101, 62, 110, 255, 109, 67, 118, 255, 114, 71, 124, 255, 118, 73, 129, 255, 122, 75, 132, 255, 122, 74, 133, 255, 122, 73, 133, 255, 123, 73, 133, 255, 124, 75, 135, 255, 133, 81, 143, 255, 134, 82, 144, 255, 146, 90, 160, 255, 145, 90, 160, 255, 138, 84, 152, 255, 132, 81, 146, 255, 124, 76, 135, 255, 123, 74, 132, 255, 122, 73, 130, 255, 118, 71, 128, 255, 114, 69, 125, 255, 111, 67, 121, 255, 107, 65, 117, 255, 95, 57, 104, 255, 89, 53, 97, 255, 85, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 72, 44, 79, 255, 67, 41, 74, 255, 60, 37, 66, 255, 54, 33, 59, 255, 48, 29, 53, 255, 43, 26, 48, 255, 37, 22, 41, 255, 32, 19, 36, 255, 27, 16, 30, 255, 22, 13, 24, 255, 17, 10, 19, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 23, 15, 25, 255, 29, 19, 32, 255, 35, 23, 38, 255, 42, 28, 46, 255, 48, 31, 52, 255, 52, 33, 57, 255, 57, 36, 62, 255, 61, 38, 67, 255, 65, 40, 71, 255, 71, 44, 78, 255, 75, 46, 82, 255, 76, 46, 84, 255, 87, 52, 94, 255, 97, 60, 106, 255, 106, 65, 115, 255, 113, 70, 123, 255, 118, 73, 129, 255, 122, 75, 133, 255, 123, 76, 134, 255, 124, 75, 135, 255, 127, 76, 137, 255, 125, 75, 135, 255, 131, 80, 141, 255, 133, 81, 143, 255, 133, 81, 144, 255, 142, 84, 155, 255, 140, 84, 154, 255, 140, 85, 154, 255, 140, 85, 154, 255, 125, 77, 138, 255, 122, 74, 133, 255, 121, 73, 131, 255, 120, 72, 130, 255, 117, 71, 129, 255, 112, 68, 124, 255, 109, 66, 120, 255, 102, 61, 111, 255, 94, 56, 103, 255, 92, 55, 100, 255, 88, 54, 96, 255, 82, 50, 90, 255, 75, 46, 82, 255, 71, 43, 78, 255, 65, 39, 71, 255, 59, 36, 65, 255, 53, 32, 58, 255, 47, 28, 52, 255, 41, 25, 46, 255, 35, 20, 39, 255, 29, 17, 33, 255, 25, 15, 28, 255, 21, 13, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 18, 30, 255, 33, 22, 36, 255, 40, 26, 43, 255, 46, 30, 50, 255, 51, 33, 55, 255, 55, 35, 60, 255, 59, 37, 65, 255, 63, 39, 69, 255, 69, 43, 76, 255, 74, 46, 81, 255, 74, 45, 82, 255, 82, 49, 90, 255, 93, 56, 101, 255, 103, 63, 111, 255, 110, 68, 120, 255, 117, 72, 127, 255, 120, 74, 131, 255, 121, 73, 131, 255, 124, 76, 135, 255, 129, 79, 139, 255, 131, 80, 139, 255, 130, 80, 140, 255, 133, 81, 143, 255, 133, 80, 144, 255, 135, 83, 146, 255, 143, 90, 156, 255, 143, 89, 157, 255, 138, 84, 151, 255, 139, 85, 153, 255, 133, 81, 146, 255, 121, 75, 134, 255, 122, 75, 134, 255, 120, 73, 131, 255, 120, 72, 131, 255, 119, 72, 130, 255, 112, 68, 123, 255, 107, 65, 117, 255, 97, 58, 107, 255, 97, 59, 106, 255, 94, 57, 102, 255, 91, 56, 99, 255, 84, 51, 91, 255, 74, 45, 81, 255, 68, 41, 75, 255, 63, 38, 70, 255, 57, 35, 63, 255, 51, 31, 56, 255, 46, 28, 51, 255, 39, 23, 43, 255, 33, 19, 36, 255, 28, 17, 31, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 31, 20, 34, 255, 38, 25, 41, 255, 44, 29, 48, 255, 50, 33, 54, 255, 55, 35, 60, 255, 59, 37, 64, 255, 62, 39, 68, 255, 67, 42, 74, 255, 73, 45, 80, 255, 75, 45, 83, 255, 78, 47, 86, 255, 88, 53, 96, 255, 97, 59, 105, 255, 105, 64, 114, 255, 112, 69, 123, 255, 118, 72, 128, 255, 117, 71, 127, 255, 121, 74, 131, 255, 130, 81, 140, 255, 133, 82, 142, 255, 134, 82, 142, 255, 135, 82, 144, 255, 134, 82, 144, 255, 133, 82, 144, 255, 134, 83, 146, 255, 145, 91, 159, 255, 144, 90, 158, 255, 133, 82, 147, 255, 137, 84, 150, 255, 134, 81, 147, 255, 125, 77, 138, 255, 121, 75, 134, 255, 122, 75, 133, 255, 119, 74, 130, 255, 122, 74, 133, 255, 117, 70, 128, 255, 112, 68, 122, 255, 100, 60, 110, 255, 95, 57, 105, 255, 99, 60, 107, 255, 96, 59, 104, 255, 91, 56, 99, 255, 84, 52, 91, 255, 75, 46, 82, 255, 68, 41, 74, 255, 62, 37, 68, 255, 55, 33, 60, 255, 48, 29, 53, 255, 43, 26, 48, 255, 36, 21, 39, 255, 31, 18, 34, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 36, 23, 39, 255, 42, 28, 46, 255, 48, 32, 52, 255, 54, 36, 59, 255, 58, 37, 64, 255, 61, 38, 66, 255, 66, 41, 72, 255, 73, 45, 80, 255, 78, 47, 85, 255, 81, 48, 89, 255, 83, 50, 91, 255, 90, 54, 98, 255, 96, 58, 106, 255, 106, 65, 116, 255, 112, 68, 122, 255, 117, 71, 128, 255, 119, 73, 129, 255, 125, 79, 136, 255, 131, 83, 143, 255, 136, 84, 145, 255, 137, 83, 145, 255, 134, 82, 144, 255, 133, 82, 144, 255, 138, 85, 149, 255, 138, 85, 150, 255, 136, 87, 151, 255, 132, 84, 147, 255, 138, 85, 152, 255, 137, 84, 150, 255, 134, 82, 147, 255, 130, 80, 143, 255, 123, 76, 136, 255, 123, 76, 135, 255, 123, 77, 134, 255, 118, 74, 129, 255, 119, 73, 130, 255, 114, 69, 125, 255, 107, 65, 117, 255, 95, 57, 106, 255, 100, 61, 109, 255, 100, 61, 109, 255, 96, 60, 105, 255, 90, 55, 98, 255, 83, 51, 90, 255, 76, 47, 82, 255, 68, 41, 74, 255, 60, 36, 66, 255, 53, 32, 58, 255, 44, 26, 49, 255, 38, 22, 43, 255, 34, 20, 37, 255, 31, 19, 34, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 40, 26, 43, 255, 46, 30, 50, 255, 52, 34, 57, 255, 57, 37, 62, 255, 59, 37, 65, 255, 64, 40, 70, 255, 72, 44, 79, 255, 78, 47, 85, 255, 84, 51, 91, 255, 87, 52, 95, 255, 89, 53, 97, 255, 88, 53, 97, 255, 99, 60, 109, 255, 107, 64, 117, 255, 114, 70, 125, 255, 118, 74, 129, 255, 121, 76, 132, 255, 128, 81, 139, 255, 136, 86, 147, 255, 136, 84, 146, 255, 135, 83, 144, 255, 133, 82, 144, 255, 139, 86, 150, 255, 143, 87, 153, 255, 153, 98, 169, 255, 219, 159, 236, 255, 229, 167, 245, 255, 176, 115, 191, 255, 138, 85, 152, 255, 136, 83, 150, 255, 134, 82, 148, 255, 132, 80, 145, 255, 125, 78, 137, 255, 125, 78, 136, 255, 123, 77, 134, 255, 118, 74, 128, 255, 117, 72, 128, 255, 110, 67, 120, 255, 105, 63, 115, 255, 101, 61, 111, 255, 102, 63, 112, 255, 100, 62, 109, 255, 95, 59, 103, 255, 88, 54, 95, 255, 82, 51, 89, 255, 75, 46, 82, 255, 66, 40, 72, 255, 59, 36, 64, 255, 50, 30, 55, 255, 42, 24, 46, 255, 37, 22, 41, 255, 34, 20, 37, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 43, 27, 47, 255, 49, 32, 54, 255, 56, 37, 61, 255, 59, 38, 65, 255, 64, 40, 69, 255, 70, 42, 75, 255, 75, 45, 82, 255, 81, 49, 89, 255, 87, 53, 96, 255, 91, 55, 99, 255, 94, 57, 103, 255, 96, 58, 105, 255, 105, 64, 115, 255, 110, 68, 120, 255, 114, 72, 124, 255, 119, 76, 130, 255, 125, 79, 136, 255, 130, 82, 142, 255, 134, 85, 146, 255, 134, 84, 145, 255, 135, 83, 145, 255, 139, 85, 149, 255, 141, 86, 156, 255, 175, 117, 191, 255, 162, 105, 178, 255, 166, 106, 182, 255, 168, 108, 184, 255, 178, 117, 193, 255, 198, 136, 214, 255, 150, 92, 161, 255, 137, 83, 150, 255, 138, 84, 150, 255, 133, 81, 145, 255, 126, 78, 137, 255, 125, 79, 136, 255, 123, 77, 133, 255, 119, 74, 130, 255, 113, 70, 123, 255, 109, 67, 119, 255, 105, 64, 115, 255, 103, 62, 112, 255, 103, 63, 112, 255, 99, 61, 108, 255, 92, 57, 101, 255, 85, 53, 93, 255, 79, 48, 86, 255, 72, 44, 79, 255, 64, 38, 69, 255, 56, 34, 62, 255, 47, 27, 51, 255, 40, 23, 45, 255, 38, 23, 41, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 29, 50, 255, 54, 35, 59, 255, 60, 39, 65, 255, 64, 40, 70, 255, 69, 43, 74, 255, 73, 44, 79, 255, 77, 46, 84, 255, 84, 50, 92, 255, 88, 53, 97, 255, 95, 57, 104, 255, 99, 60, 109, 255, 103, 63, 112, 255, 106, 66, 116, 255, 109, 69, 119, 255, 117, 74, 127, 255, 128, 82, 138, 255, 126, 79, 138, 255, 130, 83, 142, 255, 134, 85, 147, 255, 136, 84, 147, 255, 139, 85, 149, 255, 152, 93, 167, 255, 185, 122, 201, 255, 160, 98, 175, 255, 157, 98, 173, 255, 157, 98, 173, 255, 157, 98, 173, 255, 152, 94, 168, 255, 156, 96, 171, 255, 189, 124, 200, 255, 156, 95, 167, 255, 139, 84, 152, 255, 136, 83, 149, 255, 131, 81, 142, 255, 126, 78, 136, 255, 122, 76, 133, 255, 115, 71, 125, 255, 113, 70, 123, 255, 110, 68, 119, 255, 107, 66, 117, 255, 105, 64, 114, 255, 102, 63, 112, 255, 101, 62, 110, 255, 96, 59, 105, 255, 89, 55, 97, 255, 81, 50, 88, 255, 74, 45, 80, 255, 66, 40, 72, 255, 59, 35, 64, 255, 51, 30, 56, 255, 44, 26, 49, 255, 40, 24, 44, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 50, 32, 55, 255, 58, 37, 63, 255, 64, 41, 69, 255, 69, 43, 74, 255, 73, 45, 79, 255, 77, 47, 83, 255, 81, 49, 89, 255, 87, 52, 95, 255, 93, 56, 102, 255, 98, 60, 108, 255, 100, 61, 109, 255, 104, 64, 113, 255, 109, 68, 118, 255, 112, 71, 122, 255, 122, 78, 133, 255, 127, 81, 138, 255, 128, 81, 140, 255, 133, 84, 146, 255, 132, 84, 145, 255, 143, 88, 157, 255, 172, 106, 187, 255, 172, 107, 187, 255, 165, 100, 180, 255, 164, 99, 179, 255, 159, 96, 174, 255, 158, 98, 173, 255, 152, 94, 167, 255, 141, 84, 156, 255, 143, 85, 157, 255, 152, 91, 164, 255, 167, 103, 177, 255, 170, 105, 179, 255, 143, 89, 153, 255, 134, 84, 147, 255, 128, 79, 139, 255, 121, 73, 130, 255, 116, 71, 125, 255, 111, 68, 120, 255, 111, 68, 120, 255, 108, 68, 118, 255, 104, 66, 114, 255, 104, 64, 114, 255, 100, 61, 109, 255, 97, 59, 105, 255, 93, 57, 101, 255, 85, 52, 92, 255, 75, 46, 82, 255, 68, 41, 75, 255, 61, 36, 67, 255, 54, 32, 59, 255, 48, 28, 53, 255, 43, 25, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 34, 59, 255, 62, 39, 67, 255, 67, 42, 72, 255, 72, 45, 77, 255, 75, 46, 81, 255, 80, 49, 86, 255, 85, 51, 92, 255, 91, 55, 100, 255, 98, 59, 108, 255, 101, 62, 110, 255, 105, 65, 114, 255, 106, 65, 115, 255, 109, 68, 119, 255, 113, 71, 124, 255, 122, 78, 133, 255, 128, 82, 139, 255, 134, 85, 146, 255, 132, 84, 145, 255, 152, 94, 167, 255, 175, 109, 191, 255, 163, 98, 178, 255, 161, 97, 176, 255, 163, 98, 178, 255, 160, 97, 176, 255, 161, 97, 176, 255, 152, 91, 167, 255, 138, 81, 154, 255, 142, 83, 155, 255, 148, 88, 160, 255, 155, 93, 166, 255, 152, 91, 164, 255, 157, 94, 168, 255, 161, 103, 176, 255, 150, 95, 163, 255, 132, 83, 144, 255, 123, 75, 133, 255, 115, 69, 123, 255, 114, 69, 123, 255, 110, 68, 119, 255, 109, 69, 119, 255, 107, 68, 117, 255, 105, 66, 114, 255, 101, 63, 110, 255, 95, 58, 103, 255, 94, 57, 102, 255, 88, 54, 96, 255, 80, 48, 87, 255, 72, 43, 78, 255, 65, 39, 71, 255, 58, 34, 63, 255, 52, 31, 57, 255, 47, 28, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 58, 36, 63, 255, 65, 41, 70, 255, 70, 43, 75, 255, 73, 45, 79, 255, 78, 48, 84, 255, 83, 50, 89, 255, 86, 52, 94, 255, 94, 57, 103, 255, 97, 60, 106, 255, 102, 64, 111, 255, 103, 64, 112, 255, 104, 64, 112, 255, 110, 68, 119, 255, 115, 73, 125, 255, 125, 80, 137, 255, 135, 87, 147, 255, 137, 87, 150, 255, 160, 98, 176, 255, 168, 103, 184, 255, 159, 96, 175, 255, 154, 91, 170, 255, 158, 94, 173, 255, 164, 98, 179, 255, 164, 99, 180, 255, 149, 88, 165, 255, 138, 80, 154, 255, 143, 84, 159, 255, 150, 89, 165, 255, 152, 91, 164, 255, 146, 86, 158, 255, 142, 85, 156, 255, 141, 86, 156, 255, 147, 91, 162, 255, 159, 101, 174, 255, 148, 93, 162, 255, 128, 79, 138, 255, 118, 71, 126, 255, 114, 68, 122, 255, 114, 69, 123, 255, 110, 69, 120, 255, 111, 71, 121, 255, 110, 70, 119, 255, 103, 65, 112, 255, 99, 62, 107, 255, 95, 58, 103, 255, 90, 55, 98, 255, 83, 50, 91, 255, 76, 45, 82, 255, 68, 40, 75, 255, 63, 38, 69, 255, 56, 33, 61, 255, 52, 31, 57, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 63, 40, 69, 255, 68, 43, 74, 255, 72, 45, 78, 255, 76, 46, 81, 255, 80, 48, 86, 255, 84, 50, 90, 255, 88, 54, 96, 255, 92, 58, 101, 255, 99, 62, 107, 255, 103, 64, 112, 255, 103, 63, 111, 255, 107, 65, 115, 255, 113, 69, 122, 255, 119, 76, 129, 255, 132, 85, 144, 255, 151, 97, 166, 255, 170, 107, 187, 255, 163, 100, 179, 255, 160, 97, 175, 255, 151, 89, 166, 255, 147, 86, 162, 255, 157, 95, 172, 255, 162, 97, 177, 255, 162, 97, 177, 255, 145, 85, 160, 255, 140, 81, 156, 255, 151, 89, 166, 255, 156, 93, 172, 255, 153, 91, 169, 255, 138, 82, 152, 255, 133, 81, 148, 255, 137, 84, 152, 255, 140, 86, 154, 255, 138, 85, 152, 255, 139, 87, 154, 255, 149, 93, 160, 255, 136, 84, 145, 255, 116, 70, 124, 255, 114, 69, 123, 255, 112, 71, 122, 255, 112, 71, 122, 255, 114, 73, 124, 255, 109, 69, 118, 255, 101, 64, 110, 255, 100, 63, 108, 255, 94, 58, 102, 255, 86, 52, 94, 255, 79, 47, 86, 255, 72, 43, 79, 255, 66, 39, 72, 255, 60, 36, 66, 255, 55, 32, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 65, 41, 70, 255, 71, 44, 76, 255, 76, 47, 82, 255, 78, 47, 83, 255, 81, 48, 87, 255, 85, 52, 93, 255, 90, 56, 98, 255, 97, 61, 106, 255, 103, 65, 113, 255, 103, 64, 112, 255, 105, 63, 112, 255, 109, 66, 117, 255, 114, 70, 123, 255, 125, 79, 135, 255, 155, 99, 170, 255, 164, 104, 181, 255, 155, 96, 173, 255, 152, 91, 168, 255, 144, 85, 159, 255, 148, 88, 163, 255, 157, 95, 172, 255, 159, 96, 174, 255, 158, 95, 173, 255, 150, 87, 165, 255, 146, 85, 161, 255, 149, 88, 164, 255, 159, 95, 174, 255, 155, 92, 170, 255, 139, 81, 154, 255, 139, 81, 154, 255, 142, 84, 156, 255, 135, 82, 149, 255, 132, 80, 146, 255, 127, 77, 142, 255, 133, 80, 145, 255, 142, 86, 152, 255, 143, 87, 153, 255, 133, 80, 145, 255, 114, 68, 122, 255, 115, 72, 125, 255, 115, 73, 125, 255, 114, 73, 125, 255, 110, 70, 120, 255, 105, 67, 114, 255, 102, 65, 111, 255, 99, 62, 106, 255, 91, 55, 98, 255, 83, 49, 90, 255, 74, 44, 81, 255, 69, 41, 76, 255, 64, 38, 70, 255, 58, 35, 64, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 67, 40, 71, 255, 73, 45, 79, 255, 78, 47, 83, 255, 79, 48, 85, 255, 83, 50, 90, 255, 87, 54, 96, 255, 93, 58, 101, 255, 99, 62, 108, 255, 103, 64, 112, 255, 103, 62, 110, 255, 104, 62, 111, 255, 110, 66, 117, 255, 117, 73, 130, 255, 157, 100, 173, 255, 157, 99, 174, 255, 150, 91, 167, 255, 148, 89, 166, 255, 142, 84, 162, 255, 152, 93, 169, 255, 161, 99, 176, 255, 160, 98, 175, 255, 158, 95, 172, 255, 152, 89, 166, 255, 149, 87, 163, 255, 154, 91, 168, 255, 157, 94, 172, 255, 152, 90, 166, 255, 138, 80, 152, 255, 141, 83, 155, 255, 144, 85, 159, 255, 139, 81, 153, 255, 137, 80, 151, 255, 129, 77, 143, 255, 128, 75, 142, 255, 132, 77, 145, 255, 132, 77, 145, 255, 135, 80, 146, 255, 135, 80, 146, 255, 134, 79, 145, 255, 132, 84, 144, 255, 120, 77, 131, 255, 119, 76, 129, 255, 111, 71, 121, 255, 106, 67, 116, 255, 106, 67, 114, 255, 102, 64, 109, 255, 96, 58, 101, 255, 86, 52, 92, 255, 78, 46, 85, 255, 72, 43, 79, 255, 67, 40, 74, 255, 61, 37, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 70, 42, 75, 255, 75, 45, 80, 255, 78, 47, 84, 255, 77, 47, 85, 255, 83, 51, 91, 255, 87, 54, 96, 255, 94, 59, 103, 255, 101, 62, 109, 255, 104, 63, 111, 255, 105, 64, 113, 255, 107, 64, 114, 255, 116, 70, 129, 255, 134, 83, 148, 255, 148, 94, 163, 255, 155, 98, 171, 255, 161, 103, 175, 255, 162, 104, 177, 255, 157, 99, 173, 255, 157, 98, 172, 255, 154, 95, 170, 255, 151, 91, 166, 255, 148, 86, 162, 255, 144, 83, 158, 255, 150, 89, 164, 255, 155, 94, 170, 255, 152, 91, 166, 255, 146, 86, 160, 255, 143, 84, 157, 255, 143, 84, 157, 255, 144, 85, 158, 255, 151, 90, 165, 255, 144, 86, 159, 255, 130, 75, 144, 255, 127, 73, 142, 255, 128, 74, 142, 255, 130, 76, 142, 255, 131, 77, 143, 255, 130, 76, 142, 255, 132, 79, 143, 255, 147, 93, 160, 255, 142, 91, 155, 255, 126, 81, 137, 255, 117, 75, 128, 255, 110, 70, 120, 255, 105, 67, 115, 255, 103, 65, 111, 255, 98, 60, 104, 255, 90, 55, 96, 255, 80, 49, 87, 255, 76, 46, 83, 255, 72, 43, 78, 255, 67, 40, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 73, 44, 78, 255, 77, 47, 84, 255, 79, 49, 88, 255, 82, 50, 90, 255, 85, 52, 94, 255, 92, 57, 101, 255, 99, 61, 108, 255, 105, 65, 114, 255, 108, 67, 117, 255, 110, 67, 121, 255, 124, 76, 137, 255, 127, 78, 141, 255, 136, 87, 150, 255, 141, 91, 155, 255, 145, 94, 159, 255, 153, 98, 167, 255, 156, 99, 171, 255, 154, 97, 169, 255, 152, 94, 168, 255, 147, 90, 165, 255, 144, 89, 163, 255, 143, 86, 160, 255, 150, 89, 164, 255, 151, 91, 165, 255, 148, 89, 161, 255, 141, 83, 155, 255, 138, 80, 152, 255, 140, 82, 154, 255, 144, 85, 158, 255, 151, 91, 165, 255, 142, 84, 156, 255, 136, 81, 150, 255, 134, 79, 149, 255, 135, 80, 149, 255, 139, 84, 152, 255, 133, 80, 144, 255, 130, 77, 140, 255, 125, 72, 133, 255, 127, 75, 136, 255, 135, 82, 145, 255, 139, 87, 150, 255, 138, 87, 149, 255, 118, 73, 130, 255, 112, 71, 122, 255, 108, 68, 118, 255, 103, 65, 112, 255, 99, 61, 106, 255, 94, 57, 100, 255, 86, 53, 92, 255, 81, 50, 87, 255, 76, 46, 82, 255, 71, 43, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 74, 45, 81, 255, 81, 49, 89, 255, 86, 52, 95, 255, 86, 53, 94, 255, 91, 55, 100, 255, 100, 61, 109, 255, 104, 64, 113, 255, 108, 68, 118, 255, 127, 79, 139, 255, 138, 84, 151, 255, 134, 85, 148, 255, 140, 91, 154, 255, 133, 83, 146, 255, 125, 76, 139, 255, 126, 76, 139, 255, 134, 81, 148, 255, 141, 84, 156, 255, 142, 87, 159, 255, 145, 89, 162, 255, 150, 92, 165, 255, 147, 90, 163, 255, 149, 92, 165, 255, 147, 87, 161, 255, 146, 87, 160, 255, 138, 81, 152, 255, 139, 82, 154, 255, 145, 87, 159, 255, 140, 82, 153, 255, 142, 84, 155, 255, 139, 83, 153, 255, 137, 82, 151, 255, 141, 86, 155, 255, 140, 85, 154, 255, 143, 87, 157, 255, 144, 89, 158, 255, 138, 84, 152, 255, 132, 79, 143, 255, 129, 77, 138, 255, 129, 77, 138, 255, 126, 74, 135, 255, 124, 73, 133, 255, 131, 80, 143, 255, 130, 78, 147, 255, 120, 73, 133, 255, 107, 68, 117, 255, 104, 65, 113, 255, 99, 61, 106, 255, 94, 58, 101, 255, 89, 54, 96, 255, 83, 51, 90, 255, 79, 48, 85, 255, 74, 45, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 78, 47, 85, 255, 85, 51, 93, 255, 86, 53, 95, 255, 89, 54, 98, 255, 96, 58, 105, 255, 102, 62, 112, 255, 107, 67, 117, 255, 133, 83, 145, 255, 142, 89, 155, 255, 137, 85, 150, 255, 137, 84, 149, 255, 137, 88, 150, 255, 135, 87, 149, 255, 130, 81, 143, 255, 130, 77, 143, 255, 132, 75, 145, 255, 135, 78, 148, 255, 140, 84, 154, 255, 145, 90, 160, 255, 146, 90, 161, 255, 145, 88, 160, 255, 145, 86, 159, 255, 147, 87, 160, 255, 143, 83, 156, 255, 144, 85, 157, 255, 141, 84, 155, 255, 134, 79, 148, 255, 138, 82, 151, 255, 139, 83, 153, 255, 143, 86, 156, 255, 142, 85, 156, 255, 138, 83, 151, 255, 142, 88, 156, 255, 146, 91, 160, 255, 146, 90, 159, 255, 138, 84, 152, 255, 128, 77, 142, 255, 128, 77, 140, 255, 128, 77, 138, 255, 128, 78, 139, 255, 126, 75, 138, 255, 124, 74, 141, 255, 125, 75, 142, 255, 132, 80, 146, 255, 127, 77, 139, 255, 103, 65, 113, 255, 102, 63, 109, 255, 94, 58, 102, 255, 89, 55, 96, 255, 85, 51, 92, 255, 80, 48, 86, 255, 76, 47, 82, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 85, 52, 93, 255, 87, 53, 95, 255, 91, 55, 100, 255, 98, 60, 107, 255, 116, 74, 128, 255, 136, 86, 149, 255, 136, 85, 149, 255, 135, 85, 148, 255, 138, 88, 151, 255, 143, 93, 155, 255, 144, 94, 157, 255, 143, 93, 156, 255, 136, 84, 149, 255, 132, 77, 144, 255, 133, 78, 145, 255, 136, 81, 148, 255, 140, 86, 153, 255, 142, 88, 156, 255, 139, 83, 153, 255, 139, 81, 151, 255, 142, 84, 155, 255, 147, 88, 160, 255, 149, 89, 162, 255, 140, 82, 153, 255, 133, 77, 146, 255, 137, 82, 150, 255, 138, 83, 151, 255, 140, 84, 153, 255, 137, 82, 151, 255, 136, 81, 149, 255, 141, 84, 154, 255, 145, 90, 159, 255, 148, 91, 162, 255, 141, 86, 154, 255, 132, 80, 145, 255, 131, 79, 144, 255, 130, 78, 143, 255, 129, 78, 142, 255, 128, 77, 141, 255, 125, 75, 141, 255, 124, 74, 140, 255, 126, 76, 140, 255, 129, 78, 141, 255, 130, 79, 142, 255, 126, 75, 139, 255, 108, 65, 120, 255, 99, 61, 106, 255, 92, 57, 99, 255, 86, 53, 93, 255, 81, 50, 88, 255, 77, 47, 83, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 81, 49, 88, 255, 83, 51, 92, 255, 90, 55, 98, 255, 94, 57, 103, 255, 119, 76, 133, 255, 136, 88, 149, 255, 134, 87, 147, 255, 134, 86, 147, 255, 136, 88, 148, 255, 139, 90, 151, 255, 145, 98, 157, 255, 150, 103, 162, 255, 149, 102, 162, 255, 144, 94, 156, 255, 135, 82, 147, 255, 136, 84, 149, 255, 137, 85, 150, 255, 140, 87, 153, 255, 141, 87, 154, 255, 135, 82, 148, 255, 136, 81, 149, 255, 140, 83, 153, 255, 141, 84, 154, 255, 137, 80, 150, 255, 137, 82, 150, 255, 141, 87, 154, 255, 135, 84, 148, 255, 131, 79, 144, 255, 132, 79, 145, 255, 133, 79, 146, 255, 135, 81, 148, 255, 142, 88, 155, 255, 145, 92, 158, 255, 142, 89, 155, 255, 138, 85, 151, 255, 133, 81, 146, 255, 128, 77, 141, 255, 128, 77, 140, 255, 128, 75, 137, 255, 129, 75, 138, 255, 127, 76, 139, 255, 122, 73, 137, 255, 125, 75, 138, 255, 126, 76, 138, 255, 126, 77, 138, 255, 125, 75, 136, 255, 127, 77, 139, 255, 118, 73, 129, 255, 97, 60, 104, 255, 91, 56, 98, 255, 84, 52, 91, 255, 80, 49, 86, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 87, 54, 96, 255, 95, 59, 103, 255, 120, 77, 135, 255, 127, 82, 144, 255, 129, 84, 143, 255, 134, 88, 144, 255, 135, 89, 146, 255, 136, 90, 148, 255, 140, 93, 152, 255, 143, 96, 154, 255, 146, 101, 158, 255, 145, 99, 157, 255, 144, 96, 156, 255, 141, 91, 154, 255, 138, 88, 151, 255, 138, 86, 150, 255, 141, 87, 153, 255, 137, 84, 150, 255, 132, 80, 145, 255, 135, 83, 148, 255, 132, 80, 144, 255, 127, 74, 139, 255, 134, 81, 146, 255, 134, 83, 147, 255, 125, 77, 138, 255, 128, 79, 141, 255, 135, 84, 148, 255, 127, 77, 139, 255, 132, 80, 145, 255, 138, 86, 150, 255, 139, 87, 152, 255, 139, 87, 152, 255, 139, 87, 151, 255, 136, 85, 149, 255, 131, 80, 143, 255, 128, 77, 140, 255, 130, 77, 141, 255, 130, 77, 141, 255, 126, 74, 135, 255, 121, 69, 128, 255, 121, 70, 130, 255, 120, 72, 133, 255, 122, 73, 134, 255, 124, 76, 135, 255, 123, 75, 134, 255, 122, 75, 133, 255, 124, 76, 135, 255, 110, 63, 121, 255, 99, 62, 108, 255, 88, 54, 95, 255, 80, 49, 87, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 82, 51, 90, 255, 101, 63, 108, 255, 120, 75, 127, 255, 121, 77, 132, 255, 122, 79, 138, 255, 126, 82, 140, 255, 129, 85, 141, 255, 130, 85, 142, 255, 132, 88, 144, 255, 133, 86, 145, 255, 135, 88, 146, 255, 136, 89, 148, 255, 139, 92, 150, 255, 139, 92, 151, 255, 143, 98, 156, 255, 141, 92, 153, 255, 140, 89, 152, 255, 138, 86, 151, 255, 136, 84, 148, 255, 133, 82, 145, 255, 127, 77, 140, 255, 124, 75, 136, 255, 127, 80, 139, 255, 125, 78, 137, 255, 118, 72, 130, 255, 127, 79, 140, 255, 127, 79, 140, 255, 118, 72, 130, 255, 127, 78, 138, 255, 136, 84, 147, 255, 137, 85, 149, 255, 136, 85, 148, 255, 136, 85, 148, 255, 136, 85, 148, 255, 135, 84, 146, 255, 134, 82, 144, 255, 132, 80, 142, 255, 130, 78, 142, 255, 127, 76, 138, 255, 125, 74, 134, 255, 123, 73, 133, 255, 119, 71, 129, 255, 111, 66, 122, 255, 120, 73, 131, 255, 122, 76, 133, 255, 118, 70, 128, 255, 116, 69, 127, 255, 114, 67, 125, 255, 113, 69, 124, 255, 111, 70, 122, 255, 95, 60, 105, 255, 82, 51, 90, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 102, 62, 108, 255, 116, 73, 124, 255, 116, 73, 124, 255, 119, 76, 127, 255, 123, 80, 133, 255, 127, 83, 136, 255, 130, 86, 138, 255, 130, 88, 141, 255, 133, 92, 143, 255, 134, 93, 145, 255, 134, 92, 145, 255, 134, 91, 145, 255, 135, 89, 146, 255, 134, 87, 146, 255, 136, 88, 147, 255, 139, 90, 150, 255, 138, 89, 149, 255, 136, 88, 148, 255, 133, 84, 145, 255, 129, 79, 141, 255, 123, 76, 134, 255, 121, 76, 131, 255, 117, 72, 126, 255, 119, 74, 130, 255, 122, 77, 134, 255, 112, 69, 123, 255, 112, 68, 123, 255, 127, 78, 138, 255, 133, 82, 144, 255, 136, 84, 148, 255, 136, 84, 148, 255, 134, 84, 146, 255, 134, 84, 145, 255, 133, 83, 145, 255, 131, 80, 142, 255, 132, 81, 143, 255, 130, 80, 141, 255, 125, 75, 134, 255, 124, 74, 134, 255, 125, 75, 136, 255, 122, 74, 132, 255, 117, 71, 127, 255, 117, 72, 127, 255, 118, 73, 129, 255, 116, 71, 126, 255, 114, 68, 125, 255, 111, 66, 121, 255, 108, 67, 118, 255, 106, 67, 116, 255, 101, 63, 111, 255, 109, 69, 120, 255, 90, 57, 100, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 111, 69, 118, 255, 113, 71, 120, 255, 117, 75, 126, 255, 121, 79, 130, 255, 126, 83, 136, 255, 126, 85, 137, 255, 127, 87, 138, 255, 129, 90, 140, 255, 130, 91, 141, 255, 131, 92, 142, 255, 132, 92, 143, 255, 135, 91, 144, 255, 135, 89, 145, 255, 133, 87, 144, 255, 131, 85, 143, 255, 130, 83, 141, 255, 127, 80, 138, 255, 125, 78, 136, 255, 122, 76, 133, 255, 118, 74, 129, 255, 116, 72, 126, 255, 118, 74, 129, 255, 117, 73, 127, 255, 108, 66, 115, 255, 111, 67, 118, 255, 120, 73, 128, 255, 124, 76, 133, 255, 128, 78, 138, 255, 130, 80, 141, 255, 132, 82, 144, 255, 132, 81, 143, 255, 131, 81, 143, 255, 131, 81, 143, 255, 130, 80, 141, 255, 126, 77, 136, 255, 124, 75, 133, 255, 122, 74, 131, 255, 124, 76, 133, 255, 124, 77, 133, 255, 121, 75, 131, 255, 117, 72, 127, 255, 115, 71, 124, 255, 114, 70, 123, 255, 112, 69, 122, 255, 108, 68, 118, 255, 104, 66, 114, 255, 103, 65, 113, 255, 104, 66, 114, 255, 106, 67, 116, 255, 97, 61, 107, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 64, 40, 70, 255, 110, 69, 117, 255, 113, 73, 123, 255, 120, 79, 130, 255, 121, 80, 131, 255, 122, 81, 132, 255, 124, 86, 134, 255, 126, 86, 136, 255, 127, 86, 136, 255, 131, 89, 138, 255, 133, 89, 139, 255, 130, 85, 137, 255, 126, 81, 136, 255, 123, 78, 134, 255, 121, 76, 132, 255, 120, 75, 131, 255, 118, 73, 127, 255, 115, 71, 123, 255, 115, 71, 124, 255, 116, 73, 127, 255, 114, 71, 124, 255, 107, 65, 116, 255, 105, 63, 115, 255, 111, 66, 120, 255, 119, 72, 126, 255, 121, 73, 128, 255, 121, 74, 129, 255, 123, 76, 132, 255, 124, 76, 135, 255, 126, 78, 137, 255, 126, 78, 137, 255, 126, 78, 137, 255, 122, 74, 132, 255, 117, 70, 125, 255, 115, 68, 121, 255, 118, 72, 125, 255, 121, 75, 129, 255, 118, 73, 126, 255, 118, 73, 126, 255, 114, 71, 123, 255, 112, 69, 121, 255, 110, 68, 119, 255, 105, 66, 115, 255, 101, 64, 111, 255, 100, 64, 110, 255, 103, 65, 113, 255, 105, 65, 114, 255, 61, 36, 67, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 106, 67, 115, 255, 111, 72, 121, 255, 112, 72, 121, 255, 113, 73, 123, 255, 115, 75, 125, 255, 118, 78, 127, 255, 123, 81, 130, 255, 123, 81, 131, 255, 123, 80, 131, 255, 117, 74, 127, 255, 117, 73, 127, 255, 115, 72, 126, 255, 112, 70, 121, 255, 112, 70, 121, 255, 108, 67, 115, 255, 111, 68, 118, 255, 113, 70, 122, 255, 114, 70, 122, 255, 110, 67, 119, 255, 100, 60, 111, 255, 101, 61, 112, 255, 106, 63, 115, 255, 110, 66, 118, 255, 114, 68, 121, 255, 117, 71, 124, 255, 116, 71, 125, 255, 117, 72, 128, 255, 117, 72, 128, 255, 115, 70, 126, 255, 114, 68, 124, 255, 116, 71, 127, 255, 114, 70, 123, 255, 114, 70, 121, 255, 112, 69, 120, 255, 110, 68, 119, 255, 114, 71, 122, 255, 117, 73, 123, 255, 113, 70, 120, 255, 107, 67, 116, 255, 101, 64, 111, 255, 100, 63, 110, 255, 97, 62, 107, 255, 99, 63, 109, 255, 101, 63, 110, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 99, 62, 108, 255, 108, 69, 117, 255, 111, 73, 121, 255, 111, 73, 119, 255, 110, 72, 117, 255, 110, 71, 118, 255, 112, 72, 122, 255, 113, 72, 122, 255, 114, 72, 123, 255, 112, 71, 122, 255, 107, 70, 117, 255, 107, 70, 117, 255, 110, 70, 120, 255, 108, 67, 116, 255, 108, 67, 116, 255, 106, 65, 113, 255, 108, 66, 116, 255, 109, 66, 119, 255, 108, 65, 118, 255, 105, 63, 114, 255, 102, 61, 111, 255, 96, 58, 107, 255, 99, 60, 109, 255, 96, 58, 106, 255, 102, 63, 113, 255, 107, 65, 117, 255, 106, 63, 116, 255, 106, 63, 116, 255, 111, 68, 121, 255, 111, 69, 120, 255, 110, 70, 117, 255, 106, 67, 114, 255, 105, 65, 114, 255, 109, 68, 117, 255, 109, 68, 117, 255, 107, 66, 115, 255, 105, 66, 114, 255, 103, 65, 113, 255, 104, 65, 114, 255, 100, 63, 110, 255, 98, 62, 107, 255, 97, 61, 106, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 102, 65, 108, 255, 106, 70, 114, 255, 109, 72, 117, 255, 110, 74, 119, 255, 110, 73, 118, 255, 111, 72, 119, 255, 111, 72, 120, 255, 111, 73, 120, 255, 110, 72, 120, 255, 106, 69, 116, 255, 100, 65, 110, 255, 101, 64, 110, 255, 104, 64, 112, 255, 107, 66, 116, 255, 108, 66, 118, 255, 108, 66, 117, 255, 108, 66, 118, 255, 107, 65, 117, 255, 108, 65, 115, 255, 107, 65, 115, 255, 104, 64, 114, 255, 96, 59, 107, 255, 91, 56, 101, 255, 100, 62, 111, 255, 105, 64, 115, 255, 108, 66, 118, 255, 103, 64, 112, 255, 100, 63, 109, 255, 100, 63, 109, 255, 105, 67, 112, 255, 110, 70, 116, 255, 104, 65, 112, 255, 98, 61, 107, 255, 98, 62, 108, 255, 101, 64, 111, 255, 102, 64, 112, 255, 97, 62, 107, 255, 94, 59, 103, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 101, 66, 108, 255, 104, 69, 112, 255, 106, 71, 114, 255, 106, 70, 114, 255, 106, 68, 115, 255, 108, 70, 117, 255, 111, 73, 120, 255, 102, 67, 112, 255, 96, 63, 105, 255, 96, 63, 105, 255, 98, 62, 107, 255, 101, 62, 110, 255, 101, 61, 110, 255, 101, 61, 111, 255, 104, 64, 114, 255, 104, 64, 114, 255, 103, 63, 112, 255, 101, 62, 112, 255, 102, 62, 113, 255, 105, 65, 115, 255, 103, 64, 113, 255, 103, 64, 112, 255, 97, 60, 107, 255, 98, 61, 107, 255, 94, 59, 104, 255, 98, 62, 107, 255, 100, 63, 107, 255, 99, 63, 106, 255, 101, 64, 108, 255, 101, 64, 108, 255, 99, 64, 106, 255, 95, 62, 102, 255, 98, 62, 107, 255, 99, 62, 108, 255, 92, 59, 101, 255, 93, 59, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 25, 16, 28, 255, 100, 65, 108, 255, 104, 66, 113, 255, 102, 65, 111, 255, 105, 67, 114, 255, 106, 68, 114, 255, 101, 66, 110, 255, 96, 62, 105, 255, 95, 60, 104, 255, 97, 60, 106, 255, 96, 59, 104, 255, 96, 59, 104, 255, 96, 58, 104, 255, 95, 57, 104, 255, 97, 59, 107, 255, 96, 58, 107, 255, 94, 57, 106, 255, 96, 58, 107, 255, 95, 58, 106, 255, 98, 60, 108, 255, 93, 57, 102, 255, 93, 57, 102, 255, 93, 58, 102, 255, 93, 58, 102, 255, 95, 58, 103, 255, 93, 58, 101, 255, 89, 55, 97, 255, 89, 56, 97, 255, 91, 59, 98, 255, 94, 61, 102, 255, 96, 62, 103, 255, 95, 62, 103, 255, 96, 61, 104, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 93, 59, 102, 255, 96, 61, 105, 255, 100, 64, 109, 255, 102, 65, 110, 255, 101, 65, 110, 255, 99, 64, 108, 255, 99, 63, 107, 255, 99, 63, 108, 255, 98, 62, 106, 255, 95, 59, 103, 255, 95, 59, 103, 255, 94, 59, 103, 255, 93, 57, 102, 255, 94, 57, 103, 255, 96, 58, 105, 255, 96, 58, 105, 255, 96, 58, 105, 255, 95, 58, 104, 255, 94, 58, 102, 255, 95, 58, 104, 255, 92, 57, 101, 255, 84, 53, 93, 255, 80, 52, 88, 255, 82, 52, 90, 255, 85, 53, 93, 255, 84, 53, 90, 255, 83, 54, 89, 255, 86, 56, 92, 255, 89, 58, 96, 255, 94, 61, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 71, 45, 78, 255, 96, 60, 103, 255, 96, 61, 104, 255, 95, 61, 104, 255, 96, 61, 104, 255, 94, 59, 102, 255, 92, 58, 100, 255, 90, 57, 98, 255, 88, 55, 96, 255, 87, 54, 96, 255, 88, 55, 97, 255, 86, 53, 96, 255, 84, 52, 95, 255, 83, 51, 94, 255, 89, 54, 98, 255, 87, 54, 96, 255, 85, 54, 93, 255, 86, 54, 94, 255, 86, 54, 95, 255, 84, 53, 93, 255, 80, 51, 88, 255, 80, 51, 88, 255, 81, 50, 88, 255, 82, 50, 89, 255, 80, 49, 88, 255, 78, 49, 85, 255, 79, 51, 84, 255, 70, 43, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 88, 55, 96, 255, 88, 54, 96, 255, 90, 56, 97, 255, 89, 55, 96, 255, 89, 55, 96, 255, 83, 51, 92, 255, 80, 50, 90, 255, 85, 54, 94, 255, 85, 54, 93, 255, 82, 50, 91, 255, 80, 49, 90, 255, 80, 49, 89, 255, 79, 50, 88, 255, 80, 51, 88, 255, 85, 53, 93, 255, 84, 53, 92, 255, 84, 53, 92, 255, 82, 52, 89, 255, 78, 49, 86, 255, 77, 47, 84, 255, 74, 45, 82, 255, 73, 44, 81, 255, 75, 46, 83, 255, 73, 44, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 87, 56, 94, 255, 85, 54, 93, 255, 86, 54, 93, 255, 85, 53, 93, 255, 83, 51, 91, 255, 82, 50, 90, 255, 78, 49, 87, 255, 76, 47, 85, 255, 75, 46, 85, 255, 75, 46, 85, 255, 76, 47, 84, 255, 76, 47, 84, 255, 77, 48, 84, 255, 79, 49, 86, 255, 78, 49, 85, 255, 76, 48, 83, 255, 77, 48, 84, 255, 76, 46, 83, 255, 71, 43, 78, 255, 70, 42, 77, 255, 72, 43, 79, 255, 70, 42, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 77, 47, 84, 255, 78, 48, 85, 255, 79, 48, 85, 255, 79, 48, 86, 255, 78, 48, 85, 255, 76, 47, 83, 255, 71, 44, 78, 255, 73, 45, 80, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 69, 44, 77, 255, 72, 44, 78, 255, 74, 45, 81, 255, 75, 46, 81, 255, 73, 45, 80, 255, 73, 45, 79, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 72, 44, 79, 255, 74, 45, 80, 255, 72, 44, 79, 255, 71, 43, 78, 255, 67, 41, 74, 255, 65, 41, 72, 255, 65, 40, 72, 255, 65, 41, 72, 255, 65, 40, 72, 255, 64, 40, 71, 255, 68, 41, 75, 255, 70, 42, 76, 255, 72, 44, 78, 255, 72, 45, 79, 255, 70, 44, 77, 255, 71, 44, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 30, 18, 33, 255, 66, 41, 73, 255, 66, 41, 73, 255, 68, 42, 77, 255, 68, 42, 77, 255, 68, 42, 77, 255, 65, 40, 72, 255, 63, 39, 69, 255, 64, 39, 71, 255, 66, 40, 72, 255, 68, 42, 74, 255, 66, 40, 73, 255, 65, 39, 71, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 62, 39, 70, 255, 64, 40, 72, 255, 64, 40, 73, 255, 62, 38, 69, 255, 61, 37, 67, 255, 61, 37, 67, 255, 61, 36, 67, 255, 61, 37, 67, 255, 62, 37, 68, 255, 62, 38, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 36, 64, 255, 56, 35, 62, 255, 58, 36, 64, 255, 58, 36, 64, 255, 56, 35, 62, 255, 57, 35, 63, 255, 57, 34, 63, 255, 57, 34, 62, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 51, 32, 57, 255, 50, 30, 55, 255, 54, 33, 59, 255, 54, 33, 59, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 49, 31, 54, 255, 48, 30, 53, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0), "format": "RGBA8", @@ -12,7 +12,7 @@ data = { } [sub_resource type="ImageTexture" id="2"] -image = SubResource("Image_xm1e4") +image = SubResource("Image_tihji") [sub_resource type="BoxShape3D" id="3"] diff --git a/3d/kinematic_character/default_env.tres b/3d/kinematic_character/default_env.tres deleted file mode 100644 index cdc59a0c2f..0000000000 --- a/3d/kinematic_character/default_env.tres +++ /dev/null @@ -1,24 +0,0 @@ -[gd_resource type="Environment" load_steps=3 format=3 uid="uid://bupmwdx23k178"] - -[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_fiix7"] -sky_top_color = Color(0.219608, 0.192157, 0.364706, 1) -sky_horizon_color = Color(0.341176, 0.0666667, 0.560784, 1) -ground_bottom_color = Color(0.0352941, 0.0352941, 0.0313726, 1) -ground_horizon_color = Color(0.317647, 0, 0.423529, 1) -ground_curve = 0.25 - -[sub_resource type="Sky" id="1"] -sky_material = SubResource("ProceduralSkyMaterial_fiix7") -radiance_size = 0 - -[resource] -background_mode = 2 -sky = SubResource("1") -ambient_light_color = Color(1, 1, 1, 1) -ambient_light_sky_contribution = 0.5 -tonemap_mode = 3 -tonemap_white = 6.0 -glow_levels/7 = 1.0 -glow_strength = 0.79 -glow_bloom = 1.0 -glow_blend_mode = 0 diff --git a/3d/kinematic_character/level.tscn b/3d/kinematic_character/level.tscn index 243011bef5..73fd5f24a7 100644 --- a/3d/kinematic_character/level.tscn +++ b/3d/kinematic_character/level.tscn @@ -1,12 +1,34 @@ -[gd_scene load_steps=15 format=3 uid="uid://cucm487dww55a"] +[gd_scene load_steps=17 format=3 uid="uid://cucm487dww55a"] [ext_resource type="MeshLibrary" uid="uid://cnxehnqppo36s" path="res://cubelib.tres" id="1"] [ext_resource type="PackedScene" uid="uid://c1j6vfe3s2bq8" path="res://player/cubio.tscn" id="2"] [ext_resource type="ArrayMesh" uid="uid://ba7dqpj07mlsy" path="res://models/cube.mesh" id="3"] [ext_resource type="PackedScene" uid="uid://d1q53hmtxcdgn" path="res://models/mushroom.glb" id="5"] -[ext_resource type="Environment" uid="uid://bupmwdx23k178" path="res://default_env.tres" id="5_3bi5f"] [ext_resource type="Texture2D" uid="uid://b1qfd7mgvhrgu" path="res://models/white_wood.png" id="5_wmkfk"] +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_fiix7"] +sky_top_color = Color(0.219608, 0.192157, 0.364706, 1) +sky_horizon_color = Color(0.341176, 0.0666667, 0.560784, 1) +ground_bottom_color = Color(0.0352941, 0.0352941, 0.0313726, 1) +ground_horizon_color = Color(0.317647, 0, 0.423529, 1) +ground_curve = 0.25 + +[sub_resource type="Sky" id="1"] +sky_material = SubResource("ProceduralSkyMaterial_fiix7") +radiance_size = 0 + +[sub_resource type="Environment" id="Environment_qep2e"] +background_mode = 2 +sky = SubResource("1") +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_sky_contribution = 0.5 +tonemap_mode = 3 +tonemap_white = 6.0 +glow_levels/7 = 1.0 +glow_strength = 0.79 +glow_bloom = 1.0 +glow_blend_mode = 0 + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_g0agd"] resource_name = "Material" albedo_color = Color(0, 0.607843, 0.45098, 1) @@ -14,7 +36,7 @@ albedo_texture = ExtResource("5_wmkfk") roughness = 0.75 texture_filter = 5 -[sub_resource type="BoxShape3D" id="1"] +[sub_resource type="BoxShape3D" id="BoxShape3D_s7fhl"] margin = 0.001 [sub_resource type="Animation" id="2"] @@ -79,7 +101,7 @@ data = { } [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource("5_3bi5f") +environment = SubResource("Environment_qep2e") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.766045, 0.45452, -0.45452, 0, 0.707107, 0.707107, 0.642788, 0.541676, -0.541675, 0, 5, 0) @@ -105,14 +127,14 @@ mesh = ExtResource("3") surface_material_override/0 = SubResource("StandardMaterial3D_g0agd") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator1"] -shape = SubResource("1") +shape = SubResource("BoxShape3D_s7fhl") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator1"] -autoplay = "updown1" -playback_process_mode = 0 +callback_mode_process = 0 libraries = { "": SubResource("AnimationLibrary_uxnju") } +autoplay = "updown1" [node name="Elevator2" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 8.5, 4.5) @@ -122,14 +144,14 @@ mesh = ExtResource("3") surface_material_override/0 = SubResource("StandardMaterial3D_6xp3u") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator2"] -shape = SubResource("1") +shape = SubResource("BoxShape3D_s7fhl") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator2"] -autoplay = "side" -playback_process_mode = 0 +callback_mode_process = 0 libraries = { "": SubResource("AnimationLibrary_o6d7g") } +autoplay = "side" [node name="Princess" type="Area3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13.25, 3) diff --git a/3d/kinematic_character/project.godot b/3d/kinematic_character/project.godot index 0594a36968..69b81970c8 100644 --- a/3d/kinematic_character/project.godot +++ b/3d/kinematic_character/project.godot @@ -26,13 +26,13 @@ window/stretch/aspect="expand" [input] jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -40,7 +40,7 @@ move_back={ ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -48,7 +48,7 @@ move_forward={ ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -56,7 +56,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -64,13 +64,13 @@ move_right={ ] } reset_position={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -81,12 +81,7 @@ exit={ common/physics_ticks_per_second=120 3d/default_gravity=13.0 -[rasterizer] - -shadow_filter=3 - [rendering] textures/default_filters/anisotropic_filtering_level=4 anti_aliasing/quality/msaa_3d=2 -environment/default_environment="res://default_env.tres" diff --git a/3d/labels_and_texts/project.godot b/3d/labels_and_texts/project.godot index 636d41f20a..5b937350b2 100644 --- a/3d/labels_and_texts/project.godot +++ b/3d/labels_and_texts/project.godot @@ -30,5 +30,3 @@ theme/default_font_generate_mipmaps=true [rendering] textures/default_filters/anisotropic_filtering_level=4 -quality/screen_filters/msaa=3 -environment/default_environment="res://default_env.tres" diff --git a/3d/lights_and_shadows/README.md b/3d/lights_and_shadows/README.md index 387a852461..c35bac1072 100644 --- a/3d/lights_and_shadows/README.md +++ b/3d/lights_and_shadows/README.md @@ -10,7 +10,7 @@ real-time with the environment sky's process mode set accordingly. Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ ## Screenshots diff --git a/3d/lights_and_shadows/project.godot b/3d/lights_and_shadows/project.godot index a20af87410..c0265d802a 100644 --- a/3d/lights_and_shadows/project.godot +++ b/3d/lights_and_shadows/project.godot @@ -35,5 +35,3 @@ anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true lights_and_shadows/positional_shadow/atlas_quadrant_2_subdiv=2 lights_and_shadows/positional_shadow/atlas_quadrant_3_subdiv=2 -quality/screen_filters/msaa=3 -environment/default_environment="res://default_env.tres" diff --git a/3d/material_testers/README.md b/3d/material_testers/README.md index d053dcc4cc..a0396e8c69 100644 --- a/3d/material_testers/README.md +++ b/3d/material_testers/README.md @@ -8,7 +8,7 @@ This demo was featured at the beginning of the Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ Check out this demo on the asset library: https://godotengine.org/asset-library/asset/123 diff --git a/3d/material_testers/default_env.tres b/3d/material_testers/default_env.tres deleted file mode 100644 index a1547eb745..0000000000 --- a/3d/material_testers/default_env.tres +++ /dev/null @@ -1,19 +0,0 @@ -[gd_resource type="Environment" load_steps=4 format=3 uid="uid://du5gp6ah0abgv"] - -[ext_resource type="Texture2D" uid="uid://ddo4ecus0bal4" path="res://backgrounds/schelde.hdr" id="1"] - -[sub_resource type="PanoramaSkyMaterial" id="1"] -panorama = ExtResource("1") - -[sub_resource type="Sky" id="2"] -sky_material = SubResource("1") -radiance_size = 4 - -[resource] -background_mode = 2 -sky = SubResource("2") -tonemap_mode = 3 -tonemap_white = 6.0 -fog_enabled = true -fog_density = 0.002 -fog_sky_affect = 0.0 diff --git a/3d/material_testers/material_tester.tscn b/3d/material_testers/material_tester.tscn index b05729cc7e..986ebc1992 100644 --- a/3d/material_testers/material_tester.tscn +++ b/3d/material_testers/material_tester.tscn @@ -1,7 +1,7 @@ -[gd_scene load_steps=21 format=3 uid="uid://c57duuo5p7mc0"] +[gd_scene load_steps=24 format=3 uid="uid://c57duuo5p7mc0"] [ext_resource type="Script" path="res://tester.gd" id="1"] -[ext_resource type="Environment" uid="uid://du5gp6ah0abgv" path="res://default_env.tres" id="2"] +[ext_resource type="Texture2D" uid="uid://ddo4ecus0bal4" path="res://backgrounds/schelde.hdr" id="2_6cpkq"] [ext_resource type="PackedScene" uid="uid://cgqfdwd4g5e14" path="res://models/test_bed/test_bed.tscn" id="3"] [ext_resource type="ArrayMesh" uid="uid://btydvpp0agbfj" path="res://models/godot_ball.res" id="4_7al4s"] [ext_resource type="Material" uid="uid://bbfkhkmct7wu3" path="res://test_materials/blue.tres" id="5"] @@ -21,11 +21,32 @@ [ext_resource type="Material" uid="uid://bv6dr534vwcr1" path="res://test_materials/ice.tres" id="19"] [ext_resource type="Material" uid="uid://y4yhjq6ftc3l" path="res://test_materials/toon.tres" id="20"] +[sub_resource type="PanoramaSkyMaterial" id="1"] +panorama = ExtResource("2_6cpkq") + +[sub_resource type="Sky" id="2"] +sky_material = SubResource("1") +radiance_size = 4 + +[sub_resource type="Environment" id="Environment_5crof"] +background_mode = 2 +sky = SubResource("2") +tonemap_mode = 3 +tonemap_white = 6.0 +fog_enabled = true +fog_density = 0.002 +fog_sky_affect = 0.0 + [node name="MaterialTester" type="Node3D"] script = ExtResource("1") +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0) +visible = false +shadow_enabled = true + [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource("2") +environment = SubResource("Environment_5crof") [node name="Testers" type="Node3D" parent="."] diff --git a/3d/material_testers/project.godot b/3d/material_testers/project.godot index bb627eb4b5..34559ae381 100644 --- a/3d/material_testers/project.godot +++ b/3d/material_testers/project.godot @@ -29,10 +29,6 @@ window/stretch/aspect="expand" import/blender/enabled=false -[gdnative] - -singletons=[] - [memory] multithread/thread_rid_pool_prealloc=60 @@ -44,14 +40,3 @@ anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true lights_and_shadows/positional_shadow/atlas_size=2048 lights_and_shadows/positional_shadow/atlas_size.mobile=1024 -quality/driver/fallback_to_gles2=true -quality/intended_usage/framebuffer_allocation=3 -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/shadow_atlas/size=1024 -quality/shadow_atlas/size.mobile=512 -quality/shadows/filter_mode=2 -quality/filters/anisotropic_filter_level=16 -quality/filters/msaa=2 -quality/filters/msaa.mobile=0 -quality/filters/anisotropic_filter_level.mobile=4 diff --git a/3d/occlusion_culling_mesh_lod/README.md b/3d/occlusion_culling_mesh_lod/README.md index 4cf2afe1f1..fa981dd01e 100644 --- a/3d/occlusion_culling_mesh_lod/README.md +++ b/3d/occlusion_culling_mesh_lod/README.md @@ -7,7 +7,7 @@ used as a basis for a baked OccluderInstance3D, which allows each room to be culled if it is hidden by another room's walls. Occlusion culling can provide a performance benefit in draw call-bound -scenarios. However, since the Forward Plus backend uses a depth prepass, the +scenarios. However, since the Forward+ backend uses a depth prepass, the shading cost is already reduced by the depth prepass. As a result, occlusion culling will not always result in a tangible performance increase, especially in outdoor scenes that have fewer occlusion culling opportunities. Indoor scenes @@ -36,7 +36,7 @@ will vary depending on your CPU and GPU model. Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ ## Screenshot diff --git a/3d/occlusion_culling_mesh_lod/project.godot b/3d/occlusion_culling_mesh_lod/project.godot index de98da7d22..490f846fa4 100644 --- a/3d/occlusion_culling_mesh_lod/project.godot +++ b/3d/occlusion_culling_mesh_lod/project.godot @@ -30,46 +30,46 @@ import/blender/enabled=false [input] move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_occlusion_culling={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":79,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_mesh_lod={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } cycle_draw_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_mouse_capture={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194341,"key_label":0,"unicode":0,"echo":false,"script":null) ] diff --git a/3d/particles/project.godot b/3d/particles/project.godot index 8d131903e9..99fb9d5ecd 100644 --- a/3d/particles/project.godot +++ b/3d/particles/project.godot @@ -25,5 +25,3 @@ window/stretch/aspect="expand" [rendering] textures/default_filters/anisotropic_filtering_level=4 -quality/screen_filters/msaa=3 -environment/default_environment="res://default_env.tres" diff --git a/3d/physics_tests/project.godot b/3d/physics_tests/project.godot index 677538affb..15b50b2db3 100644 --- a/3d/physics_tests/project.godot +++ b/3d/physics_tests/project.godot @@ -29,60 +29,60 @@ window/stretch/aspect="expand" [input] ui_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } ui_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } ui_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } ui_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [] } toggle_full_screen={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":70,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } exit={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_debug_collision={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } restart_test={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_pause={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } character_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } character_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } character_jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] diff --git a/3d/platformer/README.md b/3d/platformer/README.md index 2c33ef8991..cf5359dfd1 100644 --- a/3d/platformer/README.md +++ b/3d/platformer/README.md @@ -6,7 +6,7 @@ It uses similar code to the 2D platformer, but implemented in 3D. Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ Check out this demo on the asset library: https://godotengine.org/asset-library/asset/125 diff --git a/3d/platformer/default_env.tres b/3d/platformer/default_env.tres deleted file mode 100644 index 0f38e4be50..0000000000 --- a/3d/platformer/default_env.tres +++ /dev/null @@ -1,21 +0,0 @@ -[gd_resource type="Environment" load_steps=4 format=3 uid="uid://odyhne6bhlsu"] - -[ext_resource type="Texture2D" uid="uid://qdur4kpvvtdg" path="res://stage/panorama.webp" id="1"] - -[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_3qare"] -panorama = ExtResource("1") - -[sub_resource type="Sky" id="Sky_qdkmq"] -sky_material = SubResource("PanoramaSkyMaterial_3qare") - -[resource] -background_mode = 2 -sky = SubResource("Sky_qdkmq") -ambient_light_source = 2 -ambient_light_color = Color(0.6, 0.6, 0.6, 1) -ambient_light_sky_contribution = 0.0 -tonemap_mode = 2 -tonemap_white = 6.0 -fog_enabled = true -fog_density = 0.0015 -fog_sky_affect = 0.0 diff --git a/3d/platformer/project.godot b/3d/platformer/project.godot index afa9f4b96b..32f62b2af0 100644 --- a/3d/platformer/project.godot +++ b/3d/platformer/project.godot @@ -21,7 +21,7 @@ config/icon="res://icon.webp" [input] ui_accept={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777221,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777222,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -29,58 +29,58 @@ ui_accept={ ] } ui_select={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } ui_cancel={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } ui_focus_next={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_focus_prev={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } ui_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } ui_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } ui_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } ui_page_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777235,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_page_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777236,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } @@ -113,14 +113,14 @@ move_right={ ] } jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } shoot={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194326,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) @@ -129,7 +129,7 @@ shoot={ ] } reset_position={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":82,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] diff --git a/3d/platformer/stage/stage.tscn b/3d/platformer/stage/stage.tscn index 28db3c99b4..f74ff46662 100644 --- a/3d/platformer/stage/stage.tscn +++ b/3d/platformer/stage/stage.tscn @@ -1,8 +1,26 @@ -[gd_scene load_steps=4 format=3 uid="uid://dohp772jyjxb7"] +[gd_scene load_steps=7 format=3 uid="uid://dohp772jyjxb7"] [ext_resource type="PackedScene" uid="uid://dmlvwah3ypol0" path="res://stage/grid_map.scn" id="1_t0f53"] +[ext_resource type="Texture2D" uid="uid://qdur4kpvvtdg" path="res://stage/panorama.webp" id="2_36a8a"] [ext_resource type="ArrayMesh" uid="uid://ba7lhk44sk366" path="res://stage/meshes/floor.res" id="2_vkxfl"] -[ext_resource type="Environment" uid="uid://odyhne6bhlsu" path="res://default_env.tres" id="3_64uhs"] + +[sub_resource type="PanoramaSkyMaterial" id="PanoramaSkyMaterial_3qare"] +panorama = ExtResource("2_36a8a") + +[sub_resource type="Sky" id="Sky_qdkmq"] +sky_material = SubResource("PanoramaSkyMaterial_3qare") + +[sub_resource type="Environment" id="Environment_vpofs"] +background_mode = 2 +sky = SubResource("Sky_qdkmq") +ambient_light_source = 2 +ambient_light_color = Color(0.6, 0.6, 0.6, 1) +ambient_light_sky_contribution = 0.0 +tonemap_mode = 2 +tonemap_white = 6.0 +fog_enabled = true +fog_density = 0.0015 +fog_sky_affect = 0.0 [node name="Stage" type="Node3D"] @@ -13,7 +31,7 @@ data = { metadata/_editor_floor_ = Vector3(4, 4, 0) [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource("3_64uhs") +environment = SubResource("Environment_vpofs") [node name="DirectionalLight" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.965926, -0.166366, 0.198267, 1.42109e-14, 0.766044, 0.642788, -0.258819, 0.620886, -0.739941, 0, 0, 0) diff --git a/3d/procedural_materials/README.md b/3d/procedural_materials/README.md index c3bd41da2e..622b6689d0 100644 --- a/3d/procedural_materials/README.md +++ b/3d/procedural_materials/README.md @@ -30,7 +30,7 @@ This demo includes procedurally generated materials with 3 different techniques: Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ ## Screenshots diff --git a/3d/rigidbody_character/cubelib.tres b/3d/rigidbody_character/cubelib.tres index cdada3c515..c47067eae5 100644 --- a/3d/rigidbody_character/cubelib.tres +++ b/3d/rigidbody_character/cubelib.tres @@ -2,7 +2,7 @@ [ext_resource type="ArrayMesh" uid="uid://h65pkfq5sgmy" path="res://models/cube.mesh" id="1"] -[sub_resource type="Image" id="Image_jwird"] +[sub_resource type="Image" id="Image_rixji"] data = { "data": PackedByteArray(76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 66, 41, 73, 255, 68, 42, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 32, 61, 255, 62, 36, 68, 255, 70, 43, 77, 255, 72, 45, 78, 255, 67, 43, 73, 255, 63, 41, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 33, 63, 255, 59, 34, 65, 255, 65, 38, 72, 255, 73, 45, 80, 255, 76, 47, 82, 255, 72, 47, 78, 255, 69, 46, 75, 255, 63, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 59, 34, 64, 255, 61, 35, 67, 255, 63, 36, 69, 255, 66, 38, 73, 255, 75, 44, 81, 255, 78, 47, 84, 255, 76, 49, 83, 255, 75, 51, 82, 255, 69, 46, 75, 255, 62, 41, 69, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 54, 32, 59, 255, 60, 35, 65, 255, 62, 36, 68, 255, 63, 37, 70, 255, 62, 36, 69, 255, 69, 40, 76, 255, 80, 48, 87, 255, 82, 50, 89, 255, 81, 52, 88, 255, 80, 54, 87, 255, 75, 51, 81, 255, 68, 46, 75, 255, 63, 42, 68, 255, 55, 35, 61, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 52, 31, 57, 255, 57, 34, 63, 255, 64, 37, 70, 255, 62, 36, 69, 255, 62, 36, 69, 255, 68, 39, 75, 255, 77, 45, 84, 255, 88, 52, 94, 255, 89, 54, 96, 255, 85, 55, 92, 255, 83, 55, 90, 255, 81, 55, 87, 255, 75, 51, 81, 255, 68, 46, 74, 255, 61, 40, 67, 255, 54, 34, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 48, 30, 53, 255, 51, 31, 56, 255, 54, 32, 59, 255, 61, 36, 67, 255, 63, 36, 69, 255, 62, 36, 69, 255, 70, 40, 77, 255, 74, 43, 81, 255, 79, 46, 87, 255, 87, 53, 95, 255, 90, 56, 97, 255, 91, 59, 99, 255, 85, 55, 93, 255, 85, 58, 92, 255, 81, 56, 87, 255, 73, 50, 80, 255, 67, 45, 73, 255, 60, 39, 65, 255, 53, 34, 58, 255, 46, 29, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 28, 51, 255, 50, 30, 55, 255, 54, 32, 59, 255, 59, 36, 65, 255, 64, 37, 70, 255, 65, 37, 72, 255, 72, 42, 80, 255, 76, 44, 84, 255, 76, 44, 84, 255, 82, 49, 90, 255, 94, 58, 103, 255, 97, 61, 105, 255, 95, 61, 103, 255, 91, 59, 98, 255, 88, 60, 96, 255, 86, 60, 93, 255, 79, 54, 85, 255, 72, 48, 78, 255, 67, 45, 73, 255, 60, 39, 65, 255, 52, 33, 57, 255, 45, 29, 50, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 45, 28, 49, 255, 48, 29, 53, 255, 55, 33, 60, 255, 60, 36, 65, 255, 64, 39, 70, 255, 68, 40, 74, 255, 75, 44, 83, 255, 78, 46, 85, 255, 75, 44, 84, 255, 78, 46, 87, 255, 85, 51, 93, 255, 93, 58, 103, 255, 99, 62, 107, 255, 101, 66, 110, 255, 96, 63, 104, 255, 92, 61, 100, 255, 90, 61, 97, 255, 85, 59, 92, 255, 77, 52, 84, 255, 73, 49, 79, 255, 67, 45, 72, 255, 58, 38, 63, 255, 49, 31, 54, 255, 43, 27, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 38, 24, 41, 255, 45, 29, 49, 255, 50, 31, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 63, 38, 69, 255, 68, 41, 74, 255, 75, 44, 82, 255, 77, 45, 85, 255, 76, 44, 84, 255, 80, 47, 88, 255, 80, 47, 89, 255, 86, 51, 95, 255, 98, 60, 106, 255, 102, 64, 110, 255, 105, 69, 114, 255, 101, 67, 110, 255, 95, 62, 103, 255, 93, 62, 100, 255, 90, 61, 97, 255, 82, 56, 89, 255, 76, 50, 82, 255, 72, 49, 78, 255, 64, 42, 69, 255, 53, 33, 58, 255, 46, 28, 50, 255, 41, 26, 45, 255, 38, 24, 42, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 35, 22, 39, 255, 41, 26, 45, 255, 50, 32, 54, 255, 54, 33, 59, 255, 59, 36, 64, 255, 62, 37, 68, 255, 67, 40, 73, 255, 72, 44, 79, 255, 75, 45, 83, 255, 78, 46, 85, 255, 82, 48, 90, 255, 83, 49, 92, 255, 82, 47, 91, 255, 92, 54, 101, 255, 101, 61, 108, 255, 105, 64, 113, 255, 109, 70, 119, 255, 105, 69, 114, 255, 100, 66, 109, 255, 95, 62, 103, 255, 94, 63, 101, 255, 89, 59, 95, 255, 80, 52, 86, 255, 76, 51, 82, 255, 69, 45, 75, 255, 56, 34, 61, 255, 49, 29, 54, 255, 44, 26, 48, 255, 43, 27, 47, 255, 37, 23, 40, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 29, 18, 32, 255, 34, 21, 37, 255, 37, 22, 41, 255, 44, 27, 48, 255, 51, 32, 56, 255, 57, 35, 62, 255, 61, 38, 68, 255, 66, 40, 72, 255, 71, 43, 78, 255, 73, 45, 81, 255, 77, 46, 85, 255, 82, 49, 90, 255, 88, 53, 96, 255, 85, 50, 95, 255, 86, 49, 96, 255, 94, 55, 104, 255, 102, 60, 111, 255, 104, 63, 114, 255, 112, 71, 122, 255, 110, 72, 119, 255, 104, 69, 113, 255, 99, 64, 107, 255, 93, 60, 101, 255, 92, 60, 99, 255, 87, 55, 94, 255, 81, 53, 87, 255, 73, 48, 80, 255, 62, 38, 67, 255, 53, 32, 59, 255, 48, 28, 53, 255, 46, 28, 50, 255, 43, 27, 46, 255, 35, 21, 38, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 28, 17, 31, 255, 33, 21, 37, 255, 38, 23, 41, 255, 41, 24, 45, 255, 48, 28, 52, 255, 55, 33, 60, 255, 61, 38, 67, 255, 65, 40, 72, 255, 70, 43, 77, 255, 72, 44, 79, 255, 76, 46, 83, 255, 81, 49, 89, 255, 88, 52, 96, 255, 88, 52, 97, 255, 88, 51, 98, 255, 92, 53, 101, 255, 97, 57, 107, 255, 106, 63, 115, 255, 111, 68, 121, 255, 116, 74, 127, 255, 114, 75, 124, 255, 109, 72, 119, 255, 103, 67, 112, 255, 95, 60, 104, 255, 91, 58, 99, 255, 89, 57, 97, 255, 86, 55, 93, 255, 78, 51, 85, 255, 68, 43, 74, 255, 60, 37, 65, 255, 53, 31, 58, 255, 48, 29, 53, 255, 46, 29, 50, 255, 39, 24, 42, 255, 32, 20, 36, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 17, 29, 255, 33, 21, 36, 255, 38, 25, 42, 255, 41, 24, 45, 255, 45, 26, 50, 255, 53, 32, 58, 255, 61, 38, 67, 255, 65, 40, 71, 255, 69, 41, 75, 255, 72, 43, 79, 255, 76, 46, 84, 255, 80, 49, 88, 255, 86, 52, 94, 255, 89, 53, 98, 255, 93, 55, 102, 255, 98, 58, 108, 255, 97, 57, 107, 255, 101, 59, 111, 255, 117, 72, 127, 255, 123, 77, 134, 255, 121, 77, 131, 255, 119, 77, 129, 255, 111, 72, 121, 255, 105, 68, 115, 255, 99, 63, 108, 255, 92, 58, 101, 255, 90, 57, 98, 255, 87, 55, 94, 255, 83, 53, 90, 255, 74, 47, 81, 255, 65, 41, 71, 255, 59, 36, 65, 255, 53, 33, 59, 255, 48, 29, 53, 255, 44, 27, 48, 255, 37, 23, 41, 255, 31, 18, 34, 255, 26, 16, 28, 255, 21, 12, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 20, 13, 22, 255, 26, 17, 28, 255, 32, 21, 35, 255, 39, 26, 42, 255, 42, 27, 46, 255, 44, 26, 49, 255, 51, 31, 56, 255, 58, 36, 64, 255, 63, 39, 69, 255, 68, 41, 75, 255, 73, 44, 80, 255, 76, 47, 84, 255, 79, 48, 87, 255, 85, 52, 94, 255, 90, 55, 99, 255, 96, 58, 105, 255, 102, 62, 112, 255, 102, 61, 112, 255, 100, 59, 110, 255, 107, 64, 117, 255, 120, 74, 130, 255, 128, 81, 139, 255, 123, 78, 134, 255, 122, 78, 133, 255, 114, 73, 124, 255, 105, 66, 115, 255, 101, 64, 110, 255, 95, 60, 104, 255, 90, 56, 98, 255, 87, 55, 95, 255, 85, 54, 92, 255, 79, 49, 85, 255, 70, 44, 77, 255, 63, 39, 69, 255, 58, 36, 64, 255, 53, 33, 58, 255, 47, 29, 52, 255, 41, 25, 45, 255, 35, 21, 39, 255, 29, 17, 31, 255, 24, 14, 26, 255, 20, 11, 21, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 20, 255, 25, 16, 27, 255, 31, 20, 33, 255, 38, 25, 41, 255, 45, 30, 48, 255, 47, 30, 51, 255, 50, 31, 55, 255, 57, 35, 62, 255, 61, 37, 67, 255, 67, 40, 73, 255, 73, 44, 80, 255, 77, 46, 84, 255, 79, 48, 86, 255, 85, 52, 93, 255, 91, 55, 100, 255, 96, 58, 105, 255, 103, 63, 112, 255, 106, 64, 116, 255, 103, 62, 114, 255, 106, 63, 116, 255, 111, 65, 120, 255, 122, 75, 132, 255, 129, 80, 140, 255, 128, 81, 139, 255, 124, 79, 135, 255, 119, 76, 129, 255, 110, 69, 119, 255, 102, 63, 111, 255, 97, 60, 106, 255, 91, 57, 100, 255, 87, 55, 96, 255, 85, 53, 93, 255, 82, 51, 89, 255, 74, 46, 81, 255, 66, 40, 72, 255, 61, 37, 67, 255, 57, 35, 62, 255, 50, 31, 55, 255, 45, 27, 49, 255, 39, 24, 43, 255, 33, 20, 37, 255, 28, 16, 30, 255, 23, 14, 26, 255, 18, 10, 20, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 17, 11, 19, 255, 23, 16, 25, 255, 29, 19, 32, 255, 35, 24, 38, 255, 42, 29, 46, 255, 49, 33, 53, 255, 52, 33, 56, 255, 56, 35, 61, 255, 61, 38, 66, 255, 65, 40, 71, 255, 71, 43, 78, 255, 76, 46, 83, 255, 81, 49, 89, 255, 84, 51, 93, 255, 89, 54, 98, 255, 96, 58, 105, 255, 104, 63, 113, 255, 110, 66, 120, 255, 107, 64, 117, 255, 108, 64, 118, 255, 112, 67, 122, 255, 115, 68, 126, 255, 122, 73, 137, 255, 127, 76, 141, 255, 130, 81, 140, 255, 126, 79, 136, 255, 122, 76, 132, 255, 116, 73, 126, 255, 108, 66, 116, 255, 101, 62, 110, 255, 95, 59, 104, 255, 90, 56, 98, 255, 85, 53, 93, 255, 82, 51, 90, 255, 77, 48, 84, 255, 70, 44, 77, 255, 65, 40, 71, 255, 60, 36, 65, 255, 55, 33, 60, 255, 48, 29, 53, 255, 42, 25, 46, 255, 37, 22, 41, 255, 32, 19, 35, 255, 27, 16, 29, 255, 21, 13, 24, 255, 16, 9, 17, 255, 10, 6, 11, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 10, 6, 11, 255, 16, 10, 17, 255, 22, 15, 23, 255, 28, 19, 30, 255, 33, 23, 36, 255, 40, 27, 43, 255, 46, 30, 50, 255, 53, 35, 58, 255, 57, 36, 62, 255, 61, 38, 67, 255, 64, 40, 70, 255, 69, 42, 75, 255, 73, 44, 80, 255, 80, 49, 88, 255, 84, 51, 92, 255, 88, 53, 96, 255, 94, 57, 103, 255, 105, 64, 114, 255, 111, 68, 122, 255, 110, 66, 120, 255, 110, 65, 120, 255, 112, 67, 123, 255, 115, 69, 127, 255, 118, 70, 131, 255, 129, 78, 143, 255, 131, 79, 144, 255, 130, 80, 140, 255, 129, 80, 139, 255, 123, 77, 133, 255, 121, 75, 130, 255, 112, 68, 120, 255, 107, 65, 116, 255, 101, 62, 110, 255, 94, 58, 102, 255, 89, 55, 97, 255, 83, 52, 91, 255, 79, 49, 86, 255, 73, 45, 80, 255, 69, 42, 75, 255, 64, 39, 70, 255, 59, 35, 64, 255, 52, 32, 57, 255, 47, 28, 51, 255, 41, 24, 45, 255, 35, 21, 38, 255, 29, 17, 32, 255, 24, 14, 26, 255, 19, 11, 21, 255, 14, 8, 15, 255, 9, 5, 10, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 8, 5, 9, 255, 14, 9, 15, 255, 20, 14, 22, 255, 26, 18, 28, 255, 32, 22, 35, 255, 38, 26, 41, 255, 44, 29, 47, 255, 50, 33, 54, 255, 58, 37, 62, 255, 62, 39, 67, 255, 65, 41, 71, 255, 67, 42, 74, 255, 72, 44, 79, 255, 77, 47, 84, 255, 81, 50, 89, 255, 88, 54, 96, 255, 93, 56, 102, 255, 103, 64, 113, 255, 113, 70, 123, 255, 113, 69, 123, 255, 111, 67, 122, 255, 113, 67, 123, 255, 116, 68, 126, 255, 118, 71, 131, 255, 124, 75, 137, 255, 136, 82, 148, 255, 137, 83, 149, 255, 133, 80, 142, 255, 132, 82, 142, 255, 123, 76, 134, 255, 121, 74, 130, 255, 116, 71, 125, 255, 110, 66, 119, 255, 108, 65, 118, 255, 99, 61, 109, 255, 93, 58, 102, 255, 88, 55, 96, 255, 81, 50, 89, 255, 77, 48, 84, 255, 72, 44, 79, 255, 68, 41, 74, 255, 63, 38, 69, 255, 55, 33, 61, 255, 50, 30, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 33, 19, 36, 255, 26, 15, 28, 255, 21, 12, 23, 255, 17, 10, 19, 255, 12, 7, 13, 255, 8, 5, 9, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 12, 7, 13, 255, 18, 12, 19, 255, 24, 16, 26, 255, 31, 21, 33, 255, 37, 26, 40, 255, 43, 30, 47, 255, 49, 32, 53, 255, 56, 35, 60, 255, 61, 39, 66, 255, 65, 41, 70, 255, 68, 42, 74, 255, 71, 44, 78, 255, 74, 46, 82, 255, 78, 48, 86, 255, 84, 52, 92, 255, 92, 56, 101, 255, 103, 63, 112, 255, 110, 68, 120, 255, 115, 71, 125, 255, 114, 69, 125, 255, 115, 69, 126, 255, 117, 69, 127, 255, 119, 71, 130, 255, 122, 73, 134, 255, 129, 78, 141, 255, 138, 83, 151, 255, 137, 82, 150, 255, 133, 81, 143, 255, 132, 80, 141, 255, 127, 77, 136, 255, 123, 75, 132, 255, 118, 72, 127, 255, 113, 69, 122, 255, 109, 66, 119, 255, 105, 63, 114, 255, 96, 58, 105, 255, 88, 54, 97, 255, 83, 52, 91, 255, 78, 49, 86, 255, 74, 45, 81, 255, 71, 43, 78, 255, 66, 39, 72, 255, 59, 36, 65, 255, 52, 32, 57, 255, 47, 28, 51, 255, 43, 26, 47, 255, 39, 23, 43, 255, 32, 18, 35, 255, 24, 14, 27, 255, 19, 11, 21, 255, 15, 9, 17, 255, 11, 7, 12, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 15, 10, 17, 255, 22, 14, 24, 255, 28, 19, 30, 255, 35, 24, 38, 255, 41, 28, 45, 255, 48, 32, 51, 255, 54, 35, 58, 255, 58, 37, 63, 255, 62, 39, 68, 255, 66, 41, 72, 255, 69, 43, 75, 255, 72, 45, 79, 255, 76, 48, 84, 255, 80, 49, 88, 255, 92, 56, 100, 255, 103, 63, 112, 255, 109, 67, 118, 255, 114, 71, 125, 255, 118, 73, 128, 255, 118, 72, 129, 255, 120, 72, 131, 255, 119, 70, 129, 255, 121, 72, 132, 255, 127, 76, 138, 255, 134, 81, 143, 255, 143, 86, 155, 255, 142, 86, 155, 255, 133, 81, 146, 255, 132, 80, 142, 255, 128, 77, 137, 255, 123, 74, 132, 255, 122, 74, 131, 255, 117, 71, 126, 255, 111, 67, 121, 255, 109, 66, 120, 255, 102, 61, 111, 255, 88, 53, 97, 255, 84, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 73, 45, 80, 255, 70, 43, 76, 255, 63, 38, 69, 255, 56, 34, 61, 255, 50, 31, 55, 255, 45, 27, 49, 255, 40, 24, 44, 255, 36, 21, 40, 255, 30, 17, 33, 255, 23, 13, 25, 255, 18, 10, 19, 255, 14, 8, 15, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 19, 12, 21, 255, 25, 16, 28, 255, 31, 21, 34, 255, 39, 26, 42, 255, 45, 31, 49, 255, 51, 34, 55, 255, 55, 35, 60, 255, 60, 37, 65, 255, 64, 40, 69, 255, 67, 42, 73, 255, 72, 45, 79, 255, 74, 46, 82, 255, 78, 48, 85, 255, 91, 55, 99, 255, 101, 62, 110, 255, 109, 67, 118, 255, 114, 71, 124, 255, 118, 73, 129, 255, 122, 75, 132, 255, 122, 74, 133, 255, 122, 73, 133, 255, 123, 73, 133, 255, 124, 75, 135, 255, 133, 81, 143, 255, 134, 82, 144, 255, 146, 90, 160, 255, 145, 90, 160, 255, 138, 84, 152, 255, 132, 81, 146, 255, 124, 76, 135, 255, 123, 74, 132, 255, 122, 73, 130, 255, 118, 71, 128, 255, 114, 69, 125, 255, 111, 67, 121, 255, 107, 65, 117, 255, 95, 57, 104, 255, 89, 53, 97, 255, 85, 51, 93, 255, 78, 48, 86, 255, 76, 47, 84, 255, 72, 44, 79, 255, 67, 41, 74, 255, 60, 37, 66, 255, 54, 33, 59, 255, 48, 29, 53, 255, 43, 26, 48, 255, 37, 22, 41, 255, 32, 19, 36, 255, 27, 16, 30, 255, 22, 13, 24, 255, 17, 10, 19, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 23, 15, 25, 255, 29, 19, 32, 255, 35, 23, 38, 255, 42, 28, 46, 255, 48, 31, 52, 255, 52, 33, 57, 255, 57, 36, 62, 255, 61, 38, 67, 255, 65, 40, 71, 255, 71, 44, 78, 255, 75, 46, 82, 255, 76, 46, 84, 255, 87, 52, 94, 255, 97, 60, 106, 255, 106, 65, 115, 255, 113, 70, 123, 255, 118, 73, 129, 255, 122, 75, 133, 255, 123, 76, 134, 255, 124, 75, 135, 255, 127, 76, 137, 255, 125, 75, 135, 255, 131, 80, 141, 255, 133, 81, 143, 255, 133, 81, 144, 255, 142, 84, 155, 255, 140, 84, 154, 255, 140, 85, 154, 255, 140, 85, 154, 255, 125, 77, 138, 255, 122, 74, 133, 255, 121, 73, 131, 255, 120, 72, 130, 255, 117, 71, 129, 255, 112, 68, 124, 255, 109, 66, 120, 255, 102, 61, 111, 255, 94, 56, 103, 255, 92, 55, 100, 255, 88, 54, 96, 255, 82, 50, 90, 255, 75, 46, 82, 255, 71, 43, 78, 255, 65, 39, 71, 255, 59, 36, 65, 255, 53, 32, 58, 255, 47, 28, 52, 255, 41, 25, 46, 255, 35, 20, 39, 255, 29, 17, 33, 255, 25, 15, 28, 255, 21, 13, 23, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 27, 18, 30, 255, 33, 22, 36, 255, 40, 26, 43, 255, 46, 30, 50, 255, 51, 33, 55, 255, 55, 35, 60, 255, 59, 37, 65, 255, 63, 39, 69, 255, 69, 43, 76, 255, 74, 46, 81, 255, 74, 45, 82, 255, 82, 49, 90, 255, 93, 56, 101, 255, 103, 63, 111, 255, 110, 68, 120, 255, 117, 72, 127, 255, 120, 74, 131, 255, 121, 73, 131, 255, 124, 76, 135, 255, 129, 79, 139, 255, 131, 80, 139, 255, 130, 80, 140, 255, 133, 81, 143, 255, 133, 80, 144, 255, 135, 83, 146, 255, 143, 90, 156, 255, 143, 89, 157, 255, 138, 84, 151, 255, 139, 85, 153, 255, 133, 81, 146, 255, 121, 75, 134, 255, 122, 75, 134, 255, 120, 73, 131, 255, 120, 72, 131, 255, 119, 72, 130, 255, 112, 68, 123, 255, 107, 65, 117, 255, 97, 58, 107, 255, 97, 59, 106, 255, 94, 57, 102, 255, 91, 56, 99, 255, 84, 51, 91, 255, 74, 45, 81, 255, 68, 41, 75, 255, 63, 38, 70, 255, 57, 35, 63, 255, 51, 31, 56, 255, 46, 28, 51, 255, 39, 23, 43, 255, 33, 19, 36, 255, 28, 17, 31, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 31, 20, 34, 255, 38, 25, 41, 255, 44, 29, 48, 255, 50, 33, 54, 255, 55, 35, 60, 255, 59, 37, 64, 255, 62, 39, 68, 255, 67, 42, 74, 255, 73, 45, 80, 255, 75, 45, 83, 255, 78, 47, 86, 255, 88, 53, 96, 255, 97, 59, 105, 255, 105, 64, 114, 255, 112, 69, 123, 255, 118, 72, 128, 255, 117, 71, 127, 255, 121, 74, 131, 255, 130, 81, 140, 255, 133, 82, 142, 255, 134, 82, 142, 255, 135, 82, 144, 255, 134, 82, 144, 255, 133, 82, 144, 255, 134, 83, 146, 255, 145, 91, 159, 255, 144, 90, 158, 255, 133, 82, 147, 255, 137, 84, 150, 255, 134, 81, 147, 255, 125, 77, 138, 255, 121, 75, 134, 255, 122, 75, 133, 255, 119, 74, 130, 255, 122, 74, 133, 255, 117, 70, 128, 255, 112, 68, 122, 255, 100, 60, 110, 255, 95, 57, 105, 255, 99, 60, 107, 255, 96, 59, 104, 255, 91, 56, 99, 255, 84, 52, 91, 255, 75, 46, 82, 255, 68, 41, 74, 255, 62, 37, 68, 255, 55, 33, 60, 255, 48, 29, 53, 255, 43, 26, 48, 255, 36, 21, 39, 255, 31, 18, 34, 255, 28, 17, 31, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 36, 23, 39, 255, 42, 28, 46, 255, 48, 32, 52, 255, 54, 36, 59, 255, 58, 37, 64, 255, 61, 38, 66, 255, 66, 41, 72, 255, 73, 45, 80, 255, 78, 47, 85, 255, 81, 48, 89, 255, 83, 50, 91, 255, 90, 54, 98, 255, 96, 58, 106, 255, 106, 65, 116, 255, 112, 68, 122, 255, 117, 71, 128, 255, 119, 73, 129, 255, 125, 79, 136, 255, 131, 83, 143, 255, 136, 84, 145, 255, 137, 83, 145, 255, 134, 82, 144, 255, 133, 82, 144, 255, 138, 85, 149, 255, 138, 85, 150, 255, 136, 87, 151, 255, 132, 84, 147, 255, 138, 85, 152, 255, 137, 84, 150, 255, 134, 82, 147, 255, 130, 80, 143, 255, 123, 76, 136, 255, 123, 76, 135, 255, 123, 77, 134, 255, 118, 74, 129, 255, 119, 73, 130, 255, 114, 69, 125, 255, 107, 65, 117, 255, 95, 57, 106, 255, 100, 61, 109, 255, 100, 61, 109, 255, 96, 60, 105, 255, 90, 55, 98, 255, 83, 51, 90, 255, 76, 47, 82, 255, 68, 41, 74, 255, 60, 36, 66, 255, 53, 32, 58, 255, 44, 26, 49, 255, 38, 22, 43, 255, 34, 20, 37, 255, 31, 19, 34, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 40, 26, 43, 255, 46, 30, 50, 255, 52, 34, 57, 255, 57, 37, 62, 255, 59, 37, 65, 255, 64, 40, 70, 255, 72, 44, 79, 255, 78, 47, 85, 255, 84, 51, 91, 255, 87, 52, 95, 255, 89, 53, 97, 255, 88, 53, 97, 255, 99, 60, 109, 255, 107, 64, 117, 255, 114, 70, 125, 255, 118, 74, 129, 255, 121, 76, 132, 255, 128, 81, 139, 255, 136, 86, 147, 255, 136, 84, 146, 255, 135, 83, 144, 255, 133, 82, 144, 255, 139, 86, 150, 255, 143, 87, 153, 255, 153, 98, 169, 255, 219, 159, 236, 255, 229, 167, 245, 255, 176, 115, 191, 255, 138, 85, 152, 255, 136, 83, 150, 255, 134, 82, 148, 255, 132, 80, 145, 255, 125, 78, 137, 255, 125, 78, 136, 255, 123, 77, 134, 255, 118, 74, 128, 255, 117, 72, 128, 255, 110, 67, 120, 255, 105, 63, 115, 255, 101, 61, 111, 255, 102, 63, 112, 255, 100, 62, 109, 255, 95, 59, 103, 255, 88, 54, 95, 255, 82, 51, 89, 255, 75, 46, 82, 255, 66, 40, 72, 255, 59, 36, 64, 255, 50, 30, 55, 255, 42, 24, 46, 255, 37, 22, 41, 255, 34, 20, 37, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 43, 27, 47, 255, 49, 32, 54, 255, 56, 37, 61, 255, 59, 38, 65, 255, 64, 40, 69, 255, 70, 42, 75, 255, 75, 45, 82, 255, 81, 49, 89, 255, 87, 53, 96, 255, 91, 55, 99, 255, 94, 57, 103, 255, 96, 58, 105, 255, 105, 64, 115, 255, 110, 68, 120, 255, 114, 72, 124, 255, 119, 76, 130, 255, 125, 79, 136, 255, 130, 82, 142, 255, 134, 85, 146, 255, 134, 84, 145, 255, 135, 83, 145, 255, 139, 85, 149, 255, 141, 86, 156, 255, 175, 117, 191, 255, 162, 105, 178, 255, 166, 106, 182, 255, 168, 108, 184, 255, 178, 117, 193, 255, 198, 136, 214, 255, 150, 92, 161, 255, 137, 83, 150, 255, 138, 84, 150, 255, 133, 81, 145, 255, 126, 78, 137, 255, 125, 79, 136, 255, 123, 77, 133, 255, 119, 74, 130, 255, 113, 70, 123, 255, 109, 67, 119, 255, 105, 64, 115, 255, 103, 62, 112, 255, 103, 63, 112, 255, 99, 61, 108, 255, 92, 57, 101, 255, 85, 53, 93, 255, 79, 48, 86, 255, 72, 44, 79, 255, 64, 38, 69, 255, 56, 34, 62, 255, 47, 27, 51, 255, 40, 23, 45, 255, 38, 23, 41, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 46, 29, 50, 255, 54, 35, 59, 255, 60, 39, 65, 255, 64, 40, 70, 255, 69, 43, 74, 255, 73, 44, 79, 255, 77, 46, 84, 255, 84, 50, 92, 255, 88, 53, 97, 255, 95, 57, 104, 255, 99, 60, 109, 255, 103, 63, 112, 255, 106, 66, 116, 255, 109, 69, 119, 255, 117, 74, 127, 255, 128, 82, 138, 255, 126, 79, 138, 255, 130, 83, 142, 255, 134, 85, 147, 255, 136, 84, 147, 255, 139, 85, 149, 255, 152, 93, 167, 255, 185, 122, 201, 255, 160, 98, 175, 255, 157, 98, 173, 255, 157, 98, 173, 255, 157, 98, 173, 255, 152, 94, 168, 255, 156, 96, 171, 255, 189, 124, 200, 255, 156, 95, 167, 255, 139, 84, 152, 255, 136, 83, 149, 255, 131, 81, 142, 255, 126, 78, 136, 255, 122, 76, 133, 255, 115, 71, 125, 255, 113, 70, 123, 255, 110, 68, 119, 255, 107, 66, 117, 255, 105, 64, 114, 255, 102, 63, 112, 255, 101, 62, 110, 255, 96, 59, 105, 255, 89, 55, 97, 255, 81, 50, 88, 255, 74, 45, 80, 255, 66, 40, 72, 255, 59, 35, 64, 255, 51, 30, 56, 255, 44, 26, 49, 255, 40, 24, 44, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 50, 32, 55, 255, 58, 37, 63, 255, 64, 41, 69, 255, 69, 43, 74, 255, 73, 45, 79, 255, 77, 47, 83, 255, 81, 49, 89, 255, 87, 52, 95, 255, 93, 56, 102, 255, 98, 60, 108, 255, 100, 61, 109, 255, 104, 64, 113, 255, 109, 68, 118, 255, 112, 71, 122, 255, 122, 78, 133, 255, 127, 81, 138, 255, 128, 81, 140, 255, 133, 84, 146, 255, 132, 84, 145, 255, 143, 88, 157, 255, 172, 106, 187, 255, 172, 107, 187, 255, 165, 100, 180, 255, 164, 99, 179, 255, 159, 96, 174, 255, 158, 98, 173, 255, 152, 94, 167, 255, 141, 84, 156, 255, 143, 85, 157, 255, 152, 91, 164, 255, 167, 103, 177, 255, 170, 105, 179, 255, 143, 89, 153, 255, 134, 84, 147, 255, 128, 79, 139, 255, 121, 73, 130, 255, 116, 71, 125, 255, 111, 68, 120, 255, 111, 68, 120, 255, 108, 68, 118, 255, 104, 66, 114, 255, 104, 64, 114, 255, 100, 61, 109, 255, 97, 59, 105, 255, 93, 57, 101, 255, 85, 52, 92, 255, 75, 46, 82, 255, 68, 41, 75, 255, 61, 36, 67, 255, 54, 32, 59, 255, 48, 28, 53, 255, 43, 25, 47, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 55, 34, 59, 255, 62, 39, 67, 255, 67, 42, 72, 255, 72, 45, 77, 255, 75, 46, 81, 255, 80, 49, 86, 255, 85, 51, 92, 255, 91, 55, 100, 255, 98, 59, 108, 255, 101, 62, 110, 255, 105, 65, 114, 255, 106, 65, 115, 255, 109, 68, 119, 255, 113, 71, 124, 255, 122, 78, 133, 255, 128, 82, 139, 255, 134, 85, 146, 255, 132, 84, 145, 255, 152, 94, 167, 255, 175, 109, 191, 255, 163, 98, 178, 255, 161, 97, 176, 255, 163, 98, 178, 255, 160, 97, 176, 255, 161, 97, 176, 255, 152, 91, 167, 255, 138, 81, 154, 255, 142, 83, 155, 255, 148, 88, 160, 255, 155, 93, 166, 255, 152, 91, 164, 255, 157, 94, 168, 255, 161, 103, 176, 255, 150, 95, 163, 255, 132, 83, 144, 255, 123, 75, 133, 255, 115, 69, 123, 255, 114, 69, 123, 255, 110, 68, 119, 255, 109, 69, 119, 255, 107, 68, 117, 255, 105, 66, 114, 255, 101, 63, 110, 255, 95, 58, 103, 255, 94, 57, 102, 255, 88, 54, 96, 255, 80, 48, 87, 255, 72, 43, 78, 255, 65, 39, 71, 255, 58, 34, 63, 255, 52, 31, 57, 255, 47, 28, 51, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 58, 36, 63, 255, 65, 41, 70, 255, 70, 43, 75, 255, 73, 45, 79, 255, 78, 48, 84, 255, 83, 50, 89, 255, 86, 52, 94, 255, 94, 57, 103, 255, 97, 60, 106, 255, 102, 64, 111, 255, 103, 64, 112, 255, 104, 64, 112, 255, 110, 68, 119, 255, 115, 73, 125, 255, 125, 80, 137, 255, 135, 87, 147, 255, 137, 87, 150, 255, 160, 98, 176, 255, 168, 103, 184, 255, 159, 96, 175, 255, 154, 91, 170, 255, 158, 94, 173, 255, 164, 98, 179, 255, 164, 99, 180, 255, 149, 88, 165, 255, 138, 80, 154, 255, 143, 84, 159, 255, 150, 89, 165, 255, 152, 91, 164, 255, 146, 86, 158, 255, 142, 85, 156, 255, 141, 86, 156, 255, 147, 91, 162, 255, 159, 101, 174, 255, 148, 93, 162, 255, 128, 79, 138, 255, 118, 71, 126, 255, 114, 68, 122, 255, 114, 69, 123, 255, 110, 69, 120, 255, 111, 71, 121, 255, 110, 70, 119, 255, 103, 65, 112, 255, 99, 62, 107, 255, 95, 58, 103, 255, 90, 55, 98, 255, 83, 50, 91, 255, 76, 45, 82, 255, 68, 40, 75, 255, 63, 38, 69, 255, 56, 33, 61, 255, 52, 31, 57, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 63, 40, 69, 255, 68, 43, 74, 255, 72, 45, 78, 255, 76, 46, 81, 255, 80, 48, 86, 255, 84, 50, 90, 255, 88, 54, 96, 255, 92, 58, 101, 255, 99, 62, 107, 255, 103, 64, 112, 255, 103, 63, 111, 255, 107, 65, 115, 255, 113, 69, 122, 255, 119, 76, 129, 255, 132, 85, 144, 255, 151, 97, 166, 255, 170, 107, 187, 255, 163, 100, 179, 255, 160, 97, 175, 255, 151, 89, 166, 255, 147, 86, 162, 255, 157, 95, 172, 255, 162, 97, 177, 255, 162, 97, 177, 255, 145, 85, 160, 255, 140, 81, 156, 255, 151, 89, 166, 255, 156, 93, 172, 255, 153, 91, 169, 255, 138, 82, 152, 255, 133, 81, 148, 255, 137, 84, 152, 255, 140, 86, 154, 255, 138, 85, 152, 255, 139, 87, 154, 255, 149, 93, 160, 255, 136, 84, 145, 255, 116, 70, 124, 255, 114, 69, 123, 255, 112, 71, 122, 255, 112, 71, 122, 255, 114, 73, 124, 255, 109, 69, 118, 255, 101, 64, 110, 255, 100, 63, 108, 255, 94, 58, 102, 255, 86, 52, 94, 255, 79, 47, 86, 255, 72, 43, 79, 255, 66, 39, 72, 255, 60, 36, 66, 255, 55, 32, 59, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 65, 41, 70, 255, 71, 44, 76, 255, 76, 47, 82, 255, 78, 47, 83, 255, 81, 48, 87, 255, 85, 52, 93, 255, 90, 56, 98, 255, 97, 61, 106, 255, 103, 65, 113, 255, 103, 64, 112, 255, 105, 63, 112, 255, 109, 66, 117, 255, 114, 70, 123, 255, 125, 79, 135, 255, 155, 99, 170, 255, 164, 104, 181, 255, 155, 96, 173, 255, 152, 91, 168, 255, 144, 85, 159, 255, 148, 88, 163, 255, 157, 95, 172, 255, 159, 96, 174, 255, 158, 95, 173, 255, 150, 87, 165, 255, 146, 85, 161, 255, 149, 88, 164, 255, 159, 95, 174, 255, 155, 92, 170, 255, 139, 81, 154, 255, 139, 81, 154, 255, 142, 84, 156, 255, 135, 82, 149, 255, 132, 80, 146, 255, 127, 77, 142, 255, 133, 80, 145, 255, 142, 86, 152, 255, 143, 87, 153, 255, 133, 80, 145, 255, 114, 68, 122, 255, 115, 72, 125, 255, 115, 73, 125, 255, 114, 73, 125, 255, 110, 70, 120, 255, 105, 67, 114, 255, 102, 65, 111, 255, 99, 62, 106, 255, 91, 55, 98, 255, 83, 49, 90, 255, 74, 44, 81, 255, 69, 41, 76, 255, 64, 38, 70, 255, 58, 35, 64, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 67, 40, 71, 255, 73, 45, 79, 255, 78, 47, 83, 255, 79, 48, 85, 255, 83, 50, 90, 255, 87, 54, 96, 255, 93, 58, 101, 255, 99, 62, 108, 255, 103, 64, 112, 255, 103, 62, 110, 255, 104, 62, 111, 255, 110, 66, 117, 255, 117, 73, 130, 255, 157, 100, 173, 255, 157, 99, 174, 255, 150, 91, 167, 255, 148, 89, 166, 255, 142, 84, 162, 255, 152, 93, 169, 255, 161, 99, 176, 255, 160, 98, 175, 255, 158, 95, 172, 255, 152, 89, 166, 255, 149, 87, 163, 255, 154, 91, 168, 255, 157, 94, 172, 255, 152, 90, 166, 255, 138, 80, 152, 255, 141, 83, 155, 255, 144, 85, 159, 255, 139, 81, 153, 255, 137, 80, 151, 255, 129, 77, 143, 255, 128, 75, 142, 255, 132, 77, 145, 255, 132, 77, 145, 255, 135, 80, 146, 255, 135, 80, 146, 255, 134, 79, 145, 255, 132, 84, 144, 255, 120, 77, 131, 255, 119, 76, 129, 255, 111, 71, 121, 255, 106, 67, 116, 255, 106, 67, 114, 255, 102, 64, 109, 255, 96, 58, 101, 255, 86, 52, 92, 255, 78, 46, 85, 255, 72, 43, 79, 255, 67, 40, 74, 255, 61, 37, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 70, 42, 75, 255, 75, 45, 80, 255, 78, 47, 84, 255, 77, 47, 85, 255, 83, 51, 91, 255, 87, 54, 96, 255, 94, 59, 103, 255, 101, 62, 109, 255, 104, 63, 111, 255, 105, 64, 113, 255, 107, 64, 114, 255, 116, 70, 129, 255, 134, 83, 148, 255, 148, 94, 163, 255, 155, 98, 171, 255, 161, 103, 175, 255, 162, 104, 177, 255, 157, 99, 173, 255, 157, 98, 172, 255, 154, 95, 170, 255, 151, 91, 166, 255, 148, 86, 162, 255, 144, 83, 158, 255, 150, 89, 164, 255, 155, 94, 170, 255, 152, 91, 166, 255, 146, 86, 160, 255, 143, 84, 157, 255, 143, 84, 157, 255, 144, 85, 158, 255, 151, 90, 165, 255, 144, 86, 159, 255, 130, 75, 144, 255, 127, 73, 142, 255, 128, 74, 142, 255, 130, 76, 142, 255, 131, 77, 143, 255, 130, 76, 142, 255, 132, 79, 143, 255, 147, 93, 160, 255, 142, 91, 155, 255, 126, 81, 137, 255, 117, 75, 128, 255, 110, 70, 120, 255, 105, 67, 115, 255, 103, 65, 111, 255, 98, 60, 104, 255, 90, 55, 96, 255, 80, 49, 87, 255, 76, 46, 83, 255, 72, 43, 78, 255, 67, 40, 73, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 73, 44, 78, 255, 77, 47, 84, 255, 79, 49, 88, 255, 82, 50, 90, 255, 85, 52, 94, 255, 92, 57, 101, 255, 99, 61, 108, 255, 105, 65, 114, 255, 108, 67, 117, 255, 110, 67, 121, 255, 124, 76, 137, 255, 127, 78, 141, 255, 136, 87, 150, 255, 141, 91, 155, 255, 145, 94, 159, 255, 153, 98, 167, 255, 156, 99, 171, 255, 154, 97, 169, 255, 152, 94, 168, 255, 147, 90, 165, 255, 144, 89, 163, 255, 143, 86, 160, 255, 150, 89, 164, 255, 151, 91, 165, 255, 148, 89, 161, 255, 141, 83, 155, 255, 138, 80, 152, 255, 140, 82, 154, 255, 144, 85, 158, 255, 151, 91, 165, 255, 142, 84, 156, 255, 136, 81, 150, 255, 134, 79, 149, 255, 135, 80, 149, 255, 139, 84, 152, 255, 133, 80, 144, 255, 130, 77, 140, 255, 125, 72, 133, 255, 127, 75, 136, 255, 135, 82, 145, 255, 139, 87, 150, 255, 138, 87, 149, 255, 118, 73, 130, 255, 112, 71, 122, 255, 108, 68, 118, 255, 103, 65, 112, 255, 99, 61, 106, 255, 94, 57, 100, 255, 86, 53, 92, 255, 81, 50, 87, 255, 76, 46, 82, 255, 71, 43, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 74, 45, 81, 255, 81, 49, 89, 255, 86, 52, 95, 255, 86, 53, 94, 255, 91, 55, 100, 255, 100, 61, 109, 255, 104, 64, 113, 255, 108, 68, 118, 255, 127, 79, 139, 255, 138, 84, 151, 255, 134, 85, 148, 255, 140, 91, 154, 255, 133, 83, 146, 255, 125, 76, 139, 255, 126, 76, 139, 255, 134, 81, 148, 255, 141, 84, 156, 255, 142, 87, 159, 255, 145, 89, 162, 255, 150, 92, 165, 255, 147, 90, 163, 255, 149, 92, 165, 255, 147, 87, 161, 255, 146, 87, 160, 255, 138, 81, 152, 255, 139, 82, 154, 255, 145, 87, 159, 255, 140, 82, 153, 255, 142, 84, 155, 255, 139, 83, 153, 255, 137, 82, 151, 255, 141, 86, 155, 255, 140, 85, 154, 255, 143, 87, 157, 255, 144, 89, 158, 255, 138, 84, 152, 255, 132, 79, 143, 255, 129, 77, 138, 255, 129, 77, 138, 255, 126, 74, 135, 255, 124, 73, 133, 255, 131, 80, 143, 255, 130, 78, 147, 255, 120, 73, 133, 255, 107, 68, 117, 255, 104, 65, 113, 255, 99, 61, 106, 255, 94, 58, 101, 255, 89, 54, 96, 255, 83, 51, 90, 255, 79, 48, 85, 255, 74, 45, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 78, 47, 85, 255, 85, 51, 93, 255, 86, 53, 95, 255, 89, 54, 98, 255, 96, 58, 105, 255, 102, 62, 112, 255, 107, 67, 117, 255, 133, 83, 145, 255, 142, 89, 155, 255, 137, 85, 150, 255, 137, 84, 149, 255, 137, 88, 150, 255, 135, 87, 149, 255, 130, 81, 143, 255, 130, 77, 143, 255, 132, 75, 145, 255, 135, 78, 148, 255, 140, 84, 154, 255, 145, 90, 160, 255, 146, 90, 161, 255, 145, 88, 160, 255, 145, 86, 159, 255, 147, 87, 160, 255, 143, 83, 156, 255, 144, 85, 157, 255, 141, 84, 155, 255, 134, 79, 148, 255, 138, 82, 151, 255, 139, 83, 153, 255, 143, 86, 156, 255, 142, 85, 156, 255, 138, 83, 151, 255, 142, 88, 156, 255, 146, 91, 160, 255, 146, 90, 159, 255, 138, 84, 152, 255, 128, 77, 142, 255, 128, 77, 140, 255, 128, 77, 138, 255, 128, 78, 139, 255, 126, 75, 138, 255, 124, 74, 141, 255, 125, 75, 142, 255, 132, 80, 146, 255, 127, 77, 139, 255, 103, 65, 113, 255, 102, 63, 109, 255, 94, 58, 102, 255, 89, 55, 96, 255, 85, 51, 92, 255, 80, 48, 86, 255, 76, 47, 82, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 85, 52, 93, 255, 87, 53, 95, 255, 91, 55, 100, 255, 98, 60, 107, 255, 116, 74, 128, 255, 136, 86, 149, 255, 136, 85, 149, 255, 135, 85, 148, 255, 138, 88, 151, 255, 143, 93, 155, 255, 144, 94, 157, 255, 143, 93, 156, 255, 136, 84, 149, 255, 132, 77, 144, 255, 133, 78, 145, 255, 136, 81, 148, 255, 140, 86, 153, 255, 142, 88, 156, 255, 139, 83, 153, 255, 139, 81, 151, 255, 142, 84, 155, 255, 147, 88, 160, 255, 149, 89, 162, 255, 140, 82, 153, 255, 133, 77, 146, 255, 137, 82, 150, 255, 138, 83, 151, 255, 140, 84, 153, 255, 137, 82, 151, 255, 136, 81, 149, 255, 141, 84, 154, 255, 145, 90, 159, 255, 148, 91, 162, 255, 141, 86, 154, 255, 132, 80, 145, 255, 131, 79, 144, 255, 130, 78, 143, 255, 129, 78, 142, 255, 128, 77, 141, 255, 125, 75, 141, 255, 124, 74, 140, 255, 126, 76, 140, 255, 129, 78, 141, 255, 130, 79, 142, 255, 126, 75, 139, 255, 108, 65, 120, 255, 99, 61, 106, 255, 92, 57, 99, 255, 86, 53, 93, 255, 81, 50, 88, 255, 77, 47, 83, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 81, 49, 88, 255, 83, 51, 92, 255, 90, 55, 98, 255, 94, 57, 103, 255, 119, 76, 133, 255, 136, 88, 149, 255, 134, 87, 147, 255, 134, 86, 147, 255, 136, 88, 148, 255, 139, 90, 151, 255, 145, 98, 157, 255, 150, 103, 162, 255, 149, 102, 162, 255, 144, 94, 156, 255, 135, 82, 147, 255, 136, 84, 149, 255, 137, 85, 150, 255, 140, 87, 153, 255, 141, 87, 154, 255, 135, 82, 148, 255, 136, 81, 149, 255, 140, 83, 153, 255, 141, 84, 154, 255, 137, 80, 150, 255, 137, 82, 150, 255, 141, 87, 154, 255, 135, 84, 148, 255, 131, 79, 144, 255, 132, 79, 145, 255, 133, 79, 146, 255, 135, 81, 148, 255, 142, 88, 155, 255, 145, 92, 158, 255, 142, 89, 155, 255, 138, 85, 151, 255, 133, 81, 146, 255, 128, 77, 141, 255, 128, 77, 140, 255, 128, 75, 137, 255, 129, 75, 138, 255, 127, 76, 139, 255, 122, 73, 137, 255, 125, 75, 138, 255, 126, 76, 138, 255, 126, 77, 138, 255, 125, 75, 136, 255, 127, 77, 139, 255, 118, 73, 129, 255, 97, 60, 104, 255, 91, 56, 98, 255, 84, 52, 91, 255, 80, 49, 86, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 80, 49, 88, 255, 87, 54, 96, 255, 95, 59, 103, 255, 120, 77, 135, 255, 127, 82, 144, 255, 129, 84, 143, 255, 134, 88, 144, 255, 135, 89, 146, 255, 136, 90, 148, 255, 140, 93, 152, 255, 143, 96, 154, 255, 146, 101, 158, 255, 145, 99, 157, 255, 144, 96, 156, 255, 141, 91, 154, 255, 138, 88, 151, 255, 138, 86, 150, 255, 141, 87, 153, 255, 137, 84, 150, 255, 132, 80, 145, 255, 135, 83, 148, 255, 132, 80, 144, 255, 127, 74, 139, 255, 134, 81, 146, 255, 134, 83, 147, 255, 125, 77, 138, 255, 128, 79, 141, 255, 135, 84, 148, 255, 127, 77, 139, 255, 132, 80, 145, 255, 138, 86, 150, 255, 139, 87, 152, 255, 139, 87, 152, 255, 139, 87, 151, 255, 136, 85, 149, 255, 131, 80, 143, 255, 128, 77, 140, 255, 130, 77, 141, 255, 130, 77, 141, 255, 126, 74, 135, 255, 121, 69, 128, 255, 121, 70, 130, 255, 120, 72, 133, 255, 122, 73, 134, 255, 124, 76, 135, 255, 123, 75, 134, 255, 122, 75, 133, 255, 124, 76, 135, 255, 110, 63, 121, 255, 99, 62, 108, 255, 88, 54, 95, 255, 80, 49, 87, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 82, 51, 90, 255, 101, 63, 108, 255, 120, 75, 127, 255, 121, 77, 132, 255, 122, 79, 138, 255, 126, 82, 140, 255, 129, 85, 141, 255, 130, 85, 142, 255, 132, 88, 144, 255, 133, 86, 145, 255, 135, 88, 146, 255, 136, 89, 148, 255, 139, 92, 150, 255, 139, 92, 151, 255, 143, 98, 156, 255, 141, 92, 153, 255, 140, 89, 152, 255, 138, 86, 151, 255, 136, 84, 148, 255, 133, 82, 145, 255, 127, 77, 140, 255, 124, 75, 136, 255, 127, 80, 139, 255, 125, 78, 137, 255, 118, 72, 130, 255, 127, 79, 140, 255, 127, 79, 140, 255, 118, 72, 130, 255, 127, 78, 138, 255, 136, 84, 147, 255, 137, 85, 149, 255, 136, 85, 148, 255, 136, 85, 148, 255, 136, 85, 148, 255, 135, 84, 146, 255, 134, 82, 144, 255, 132, 80, 142, 255, 130, 78, 142, 255, 127, 76, 138, 255, 125, 74, 134, 255, 123, 73, 133, 255, 119, 71, 129, 255, 111, 66, 122, 255, 120, 73, 131, 255, 122, 76, 133, 255, 118, 70, 128, 255, 116, 69, 127, 255, 114, 67, 125, 255, 113, 69, 124, 255, 111, 70, 122, 255, 95, 60, 105, 255, 82, 51, 90, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 102, 62, 108, 255, 116, 73, 124, 255, 116, 73, 124, 255, 119, 76, 127, 255, 123, 80, 133, 255, 127, 83, 136, 255, 130, 86, 138, 255, 130, 88, 141, 255, 133, 92, 143, 255, 134, 93, 145, 255, 134, 92, 145, 255, 134, 91, 145, 255, 135, 89, 146, 255, 134, 87, 146, 255, 136, 88, 147, 255, 139, 90, 150, 255, 138, 89, 149, 255, 136, 88, 148, 255, 133, 84, 145, 255, 129, 79, 141, 255, 123, 76, 134, 255, 121, 76, 131, 255, 117, 72, 126, 255, 119, 74, 130, 255, 122, 77, 134, 255, 112, 69, 123, 255, 112, 68, 123, 255, 127, 78, 138, 255, 133, 82, 144, 255, 136, 84, 148, 255, 136, 84, 148, 255, 134, 84, 146, 255, 134, 84, 145, 255, 133, 83, 145, 255, 131, 80, 142, 255, 132, 81, 143, 255, 130, 80, 141, 255, 125, 75, 134, 255, 124, 74, 134, 255, 125, 75, 136, 255, 122, 74, 132, 255, 117, 71, 127, 255, 117, 72, 127, 255, 118, 73, 129, 255, 116, 71, 126, 255, 114, 68, 125, 255, 111, 66, 121, 255, 108, 67, 118, 255, 106, 67, 116, 255, 101, 63, 111, 255, 109, 69, 120, 255, 90, 57, 100, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 111, 69, 118, 255, 113, 71, 120, 255, 117, 75, 126, 255, 121, 79, 130, 255, 126, 83, 136, 255, 126, 85, 137, 255, 127, 87, 138, 255, 129, 90, 140, 255, 130, 91, 141, 255, 131, 92, 142, 255, 132, 92, 143, 255, 135, 91, 144, 255, 135, 89, 145, 255, 133, 87, 144, 255, 131, 85, 143, 255, 130, 83, 141, 255, 127, 80, 138, 255, 125, 78, 136, 255, 122, 76, 133, 255, 118, 74, 129, 255, 116, 72, 126, 255, 118, 74, 129, 255, 117, 73, 127, 255, 108, 66, 115, 255, 111, 67, 118, 255, 120, 73, 128, 255, 124, 76, 133, 255, 128, 78, 138, 255, 130, 80, 141, 255, 132, 82, 144, 255, 132, 81, 143, 255, 131, 81, 143, 255, 131, 81, 143, 255, 130, 80, 141, 255, 126, 77, 136, 255, 124, 75, 133, 255, 122, 74, 131, 255, 124, 76, 133, 255, 124, 77, 133, 255, 121, 75, 131, 255, 117, 72, 127, 255, 115, 71, 124, 255, 114, 70, 123, 255, 112, 69, 122, 255, 108, 68, 118, 255, 104, 66, 114, 255, 103, 65, 113, 255, 104, 66, 114, 255, 106, 67, 116, 255, 97, 61, 107, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 64, 40, 70, 255, 110, 69, 117, 255, 113, 73, 123, 255, 120, 79, 130, 255, 121, 80, 131, 255, 122, 81, 132, 255, 124, 86, 134, 255, 126, 86, 136, 255, 127, 86, 136, 255, 131, 89, 138, 255, 133, 89, 139, 255, 130, 85, 137, 255, 126, 81, 136, 255, 123, 78, 134, 255, 121, 76, 132, 255, 120, 75, 131, 255, 118, 73, 127, 255, 115, 71, 123, 255, 115, 71, 124, 255, 116, 73, 127, 255, 114, 71, 124, 255, 107, 65, 116, 255, 105, 63, 115, 255, 111, 66, 120, 255, 119, 72, 126, 255, 121, 73, 128, 255, 121, 74, 129, 255, 123, 76, 132, 255, 124, 76, 135, 255, 126, 78, 137, 255, 126, 78, 137, 255, 126, 78, 137, 255, 122, 74, 132, 255, 117, 70, 125, 255, 115, 68, 121, 255, 118, 72, 125, 255, 121, 75, 129, 255, 118, 73, 126, 255, 118, 73, 126, 255, 114, 71, 123, 255, 112, 69, 121, 255, 110, 68, 119, 255, 105, 66, 115, 255, 101, 64, 111, 255, 100, 64, 110, 255, 103, 65, 113, 255, 105, 65, 114, 255, 61, 36, 67, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 106, 67, 115, 255, 111, 72, 121, 255, 112, 72, 121, 255, 113, 73, 123, 255, 115, 75, 125, 255, 118, 78, 127, 255, 123, 81, 130, 255, 123, 81, 131, 255, 123, 80, 131, 255, 117, 74, 127, 255, 117, 73, 127, 255, 115, 72, 126, 255, 112, 70, 121, 255, 112, 70, 121, 255, 108, 67, 115, 255, 111, 68, 118, 255, 113, 70, 122, 255, 114, 70, 122, 255, 110, 67, 119, 255, 100, 60, 111, 255, 101, 61, 112, 255, 106, 63, 115, 255, 110, 66, 118, 255, 114, 68, 121, 255, 117, 71, 124, 255, 116, 71, 125, 255, 117, 72, 128, 255, 117, 72, 128, 255, 115, 70, 126, 255, 114, 68, 124, 255, 116, 71, 127, 255, 114, 70, 123, 255, 114, 70, 121, 255, 112, 69, 120, 255, 110, 68, 119, 255, 114, 71, 122, 255, 117, 73, 123, 255, 113, 70, 120, 255, 107, 67, 116, 255, 101, 64, 111, 255, 100, 63, 110, 255, 97, 62, 107, 255, 99, 63, 109, 255, 101, 63, 110, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 99, 62, 108, 255, 108, 69, 117, 255, 111, 73, 121, 255, 111, 73, 119, 255, 110, 72, 117, 255, 110, 71, 118, 255, 112, 72, 122, 255, 113, 72, 122, 255, 114, 72, 123, 255, 112, 71, 122, 255, 107, 70, 117, 255, 107, 70, 117, 255, 110, 70, 120, 255, 108, 67, 116, 255, 108, 67, 116, 255, 106, 65, 113, 255, 108, 66, 116, 255, 109, 66, 119, 255, 108, 65, 118, 255, 105, 63, 114, 255, 102, 61, 111, 255, 96, 58, 107, 255, 99, 60, 109, 255, 96, 58, 106, 255, 102, 63, 113, 255, 107, 65, 117, 255, 106, 63, 116, 255, 106, 63, 116, 255, 111, 68, 121, 255, 111, 69, 120, 255, 110, 70, 117, 255, 106, 67, 114, 255, 105, 65, 114, 255, 109, 68, 117, 255, 109, 68, 117, 255, 107, 66, 115, 255, 105, 66, 114, 255, 103, 65, 113, 255, 104, 65, 114, 255, 100, 63, 110, 255, 98, 62, 107, 255, 97, 61, 106, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 102, 65, 108, 255, 106, 70, 114, 255, 109, 72, 117, 255, 110, 74, 119, 255, 110, 73, 118, 255, 111, 72, 119, 255, 111, 72, 120, 255, 111, 73, 120, 255, 110, 72, 120, 255, 106, 69, 116, 255, 100, 65, 110, 255, 101, 64, 110, 255, 104, 64, 112, 255, 107, 66, 116, 255, 108, 66, 118, 255, 108, 66, 117, 255, 108, 66, 118, 255, 107, 65, 117, 255, 108, 65, 115, 255, 107, 65, 115, 255, 104, 64, 114, 255, 96, 59, 107, 255, 91, 56, 101, 255, 100, 62, 111, 255, 105, 64, 115, 255, 108, 66, 118, 255, 103, 64, 112, 255, 100, 63, 109, 255, 100, 63, 109, 255, 105, 67, 112, 255, 110, 70, 116, 255, 104, 65, 112, 255, 98, 61, 107, 255, 98, 62, 108, 255, 101, 64, 111, 255, 102, 64, 112, 255, 97, 62, 107, 255, 94, 59, 103, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 101, 66, 108, 255, 104, 69, 112, 255, 106, 71, 114, 255, 106, 70, 114, 255, 106, 68, 115, 255, 108, 70, 117, 255, 111, 73, 120, 255, 102, 67, 112, 255, 96, 63, 105, 255, 96, 63, 105, 255, 98, 62, 107, 255, 101, 62, 110, 255, 101, 61, 110, 255, 101, 61, 111, 255, 104, 64, 114, 255, 104, 64, 114, 255, 103, 63, 112, 255, 101, 62, 112, 255, 102, 62, 113, 255, 105, 65, 115, 255, 103, 64, 113, 255, 103, 64, 112, 255, 97, 60, 107, 255, 98, 61, 107, 255, 94, 59, 104, 255, 98, 62, 107, 255, 100, 63, 107, 255, 99, 63, 106, 255, 101, 64, 108, 255, 101, 64, 108, 255, 99, 64, 106, 255, 95, 62, 102, 255, 98, 62, 107, 255, 99, 62, 108, 255, 92, 59, 101, 255, 93, 59, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 25, 16, 28, 255, 100, 65, 108, 255, 104, 66, 113, 255, 102, 65, 111, 255, 105, 67, 114, 255, 106, 68, 114, 255, 101, 66, 110, 255, 96, 62, 105, 255, 95, 60, 104, 255, 97, 60, 106, 255, 96, 59, 104, 255, 96, 59, 104, 255, 96, 58, 104, 255, 95, 57, 104, 255, 97, 59, 107, 255, 96, 58, 107, 255, 94, 57, 106, 255, 96, 58, 107, 255, 95, 58, 106, 255, 98, 60, 108, 255, 93, 57, 102, 255, 93, 57, 102, 255, 93, 58, 102, 255, 93, 58, 102, 255, 95, 58, 103, 255, 93, 58, 101, 255, 89, 55, 97, 255, 89, 56, 97, 255, 91, 59, 98, 255, 94, 61, 102, 255, 96, 62, 103, 255, 95, 62, 103, 255, 96, 61, 104, 255, 25, 15, 27, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 93, 59, 102, 255, 96, 61, 105, 255, 100, 64, 109, 255, 102, 65, 110, 255, 101, 65, 110, 255, 99, 64, 108, 255, 99, 63, 107, 255, 99, 63, 108, 255, 98, 62, 106, 255, 95, 59, 103, 255, 95, 59, 103, 255, 94, 59, 103, 255, 93, 57, 102, 255, 94, 57, 103, 255, 96, 58, 105, 255, 96, 58, 105, 255, 96, 58, 105, 255, 95, 58, 104, 255, 94, 58, 102, 255, 95, 58, 104, 255, 92, 57, 101, 255, 84, 53, 93, 255, 80, 52, 88, 255, 82, 52, 90, 255, 85, 53, 93, 255, 84, 53, 90, 255, 83, 54, 89, 255, 86, 56, 92, 255, 89, 58, 96, 255, 94, 61, 102, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 71, 45, 78, 255, 96, 60, 103, 255, 96, 61, 104, 255, 95, 61, 104, 255, 96, 61, 104, 255, 94, 59, 102, 255, 92, 58, 100, 255, 90, 57, 98, 255, 88, 55, 96, 255, 87, 54, 96, 255, 88, 55, 97, 255, 86, 53, 96, 255, 84, 52, 95, 255, 83, 51, 94, 255, 89, 54, 98, 255, 87, 54, 96, 255, 85, 54, 93, 255, 86, 54, 94, 255, 86, 54, 95, 255, 84, 53, 93, 255, 80, 51, 88, 255, 80, 51, 88, 255, 81, 50, 88, 255, 82, 50, 89, 255, 80, 49, 88, 255, 78, 49, 85, 255, 79, 51, 84, 255, 70, 43, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 88, 55, 96, 255, 88, 54, 96, 255, 90, 56, 97, 255, 89, 55, 96, 255, 89, 55, 96, 255, 83, 51, 92, 255, 80, 50, 90, 255, 85, 54, 94, 255, 85, 54, 93, 255, 82, 50, 91, 255, 80, 49, 90, 255, 80, 49, 89, 255, 79, 50, 88, 255, 80, 51, 88, 255, 85, 53, 93, 255, 84, 53, 92, 255, 84, 53, 92, 255, 82, 52, 89, 255, 78, 49, 86, 255, 77, 47, 84, 255, 74, 45, 82, 255, 73, 44, 81, 255, 75, 46, 83, 255, 73, 44, 80, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 87, 56, 94, 255, 85, 54, 93, 255, 86, 54, 93, 255, 85, 53, 93, 255, 83, 51, 91, 255, 82, 50, 90, 255, 78, 49, 87, 255, 76, 47, 85, 255, 75, 46, 85, 255, 75, 46, 85, 255, 76, 47, 84, 255, 76, 47, 84, 255, 77, 48, 84, 255, 79, 49, 86, 255, 78, 49, 85, 255, 76, 48, 83, 255, 77, 48, 84, 255, 76, 46, 83, 255, 71, 43, 78, 255, 70, 42, 77, 255, 72, 43, 79, 255, 70, 42, 77, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 77, 47, 84, 255, 78, 48, 85, 255, 79, 48, 85, 255, 79, 48, 86, 255, 78, 48, 85, 255, 76, 47, 83, 255, 71, 44, 78, 255, 73, 45, 80, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 71, 44, 78, 255, 69, 44, 77, 255, 72, 44, 78, 255, 74, 45, 81, 255, 75, 46, 81, 255, 73, 45, 80, 255, 73, 45, 79, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 72, 44, 79, 255, 74, 45, 80, 255, 72, 44, 79, 255, 71, 43, 78, 255, 67, 41, 74, 255, 65, 41, 72, 255, 65, 40, 72, 255, 65, 41, 72, 255, 65, 40, 72, 255, 64, 40, 71, 255, 68, 41, 75, 255, 70, 42, 76, 255, 72, 44, 78, 255, 72, 45, 79, 255, 70, 44, 77, 255, 71, 44, 78, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 30, 18, 33, 255, 66, 41, 73, 255, 66, 41, 73, 255, 68, 42, 77, 255, 68, 42, 77, 255, 68, 42, 77, 255, 65, 40, 72, 255, 63, 39, 69, 255, 64, 39, 71, 255, 66, 40, 72, 255, 68, 42, 74, 255, 66, 40, 73, 255, 65, 39, 71, 255, 30, 19, 33, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 62, 39, 70, 255, 64, 40, 72, 255, 64, 40, 73, 255, 62, 38, 69, 255, 61, 37, 67, 255, 61, 37, 67, 255, 61, 36, 67, 255, 61, 37, 67, 255, 62, 37, 68, 255, 62, 38, 68, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 57, 36, 64, 255, 56, 35, 62, 255, 58, 36, 64, 255, 58, 36, 64, 255, 56, 35, 62, 255, 57, 35, 63, 255, 57, 34, 63, 255, 57, 34, 62, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 0, 0, 0, 255, 51, 32, 57, 255, 50, 30, 55, 255, 54, 33, 59, 255, 54, 33, 59, 255, 0, 0, 0, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 49, 31, 54, 255, 48, 30, 53, 255, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0, 76, 76, 76, 0), "format": "RGBA8", @@ -12,7 +12,7 @@ data = { } [sub_resource type="ImageTexture" id="2"] -image = SubResource("Image_jwird") +image = SubResource("Image_rixji") [sub_resource type="BoxShape3D" id="3"] diff --git a/3d/rigidbody_character/default_env.tres b/3d/rigidbody_character/default_env.tres deleted file mode 100644 index d80bf6c02b..0000000000 --- a/3d/rigidbody_character/default_env.tres +++ /dev/null @@ -1,24 +0,0 @@ -[gd_resource type="Environment" load_steps=3 format=3 uid="uid://bupmwdx23k178"] - -[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_fiix7"] -sky_top_color = Color(0.36, 0.20772, 0.1908, 1) -sky_horizon_color = Color(0.56, 0.16688, 0.1232, 1) -ground_bottom_color = Color(0.0352941, 0.0352941, 0.0313726, 1) -ground_horizon_color = Color(0.42, 0.042, 0, 1) -ground_curve = 0.25 - -[sub_resource type="Sky" id="1"] -sky_material = SubResource("ProceduralSkyMaterial_fiix7") -radiance_size = 0 - -[resource] -background_mode = 2 -sky = SubResource("1") -ambient_light_color = Color(1, 1, 1, 1) -ambient_light_sky_contribution = 0.5 -tonemap_mode = 3 -tonemap_white = 6.0 -glow_levels/7 = 1.0 -glow_strength = 0.79 -glow_bloom = 1.0 -glow_blend_mode = 0 diff --git a/3d/rigidbody_character/level.tscn b/3d/rigidbody_character/level.tscn index cd4c09eb9a..1ae2514517 100644 --- a/3d/rigidbody_character/level.tscn +++ b/3d/rigidbody_character/level.tscn @@ -1,14 +1,36 @@ -[gd_scene load_steps=17 format=3 uid="uid://y0rsox5qdoci"] +[gd_scene load_steps=19 format=3 uid="uid://y0rsox5qdoci"] [ext_resource type="MeshLibrary" uid="uid://dxc3y3vtd7ins" path="res://cubelib.tres" id="1"] [ext_resource type="PackedScene" uid="uid://cbvuesb1ptdh4" path="res://player/cubio.tscn" id="2"] [ext_resource type="ArrayMesh" uid="uid://h65pkfq5sgmy" path="res://models/cube.mesh" id="3"] -[ext_resource type="Environment" uid="uid://bupmwdx23k178" path="res://default_env.tres" id="3_scanf"] [ext_resource type="PackedScene" uid="uid://bonauusmt0ss" path="res://models/mushroom.glb" id="5"] [ext_resource type="Script" path="res://level.gd" id="6"] [ext_resource type="Texture2D" uid="uid://5wiey7d4yffc" path="res://models/white_wood.png" id="6_slp5m"] [ext_resource type="PackedScene" uid="uid://bftavngs5kq7e" path="res://cube_rigidbody.tscn" id="7"] +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_fiix7"] +sky_top_color = Color(0.36, 0.20772, 0.1908, 1) +sky_horizon_color = Color(0.56, 0.16688, 0.1232, 1) +ground_bottom_color = Color(0.0352941, 0.0352941, 0.0313726, 1) +ground_horizon_color = Color(0.42, 0.042, 0, 1) +ground_curve = 0.25 + +[sub_resource type="Sky" id="1"] +sky_material = SubResource("ProceduralSkyMaterial_fiix7") +radiance_size = 0 + +[sub_resource type="Environment" id="Environment_jpjfl"] +background_mode = 2 +sky = SubResource("1") +ambient_light_color = Color(1, 1, 1, 1) +ambient_light_sky_contribution = 0.5 +tonemap_mode = 3 +tonemap_white = 6.0 +glow_levels/7 = 1.0 +glow_strength = 0.79 +glow_bloom = 1.0 +glow_blend_mode = 0 + [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_84cgt"] resource_name = "Material" albedo_color = Color(0.32549, 0.701961, 0.819608, 1) @@ -16,7 +38,7 @@ albedo_texture = ExtResource("6_slp5m") roughness = 0.75 texture_filter = 5 -[sub_resource type="BoxShape3D" id="1"] +[sub_resource type="BoxShape3D" id="BoxShape3D_w6bmu"] margin = 0.001 [sub_resource type="Animation" id="2"] @@ -82,7 +104,7 @@ data = { } [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource("3_scanf") +environment = SubResource("Environment_jpjfl") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.766044, 0.45452, -0.454519, 0, 0.707107, 0.707107, 0.642788, 0.541675, -0.541675, 0, 5, 1) @@ -108,14 +130,14 @@ mesh = ExtResource("3") surface_material_override/0 = SubResource("StandardMaterial3D_84cgt") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator1"] -shape = SubResource("1") +shape = SubResource("BoxShape3D_w6bmu") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator1"] -autoplay = "updown1" -playback_process_mode = 0 +callback_mode_process = 0 libraries = { "": SubResource("AnimationLibrary_64cvx") } +autoplay = "updown1" [node name="Elevator2" type="CharacterBody3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -3.5, 8.5, 4.5) @@ -125,14 +147,14 @@ mesh = ExtResource("3") surface_material_override/0 = SubResource("StandardMaterial3D_0eb0o") [node name="CollisionShape3D" type="CollisionShape3D" parent="Elevator2"] -shape = SubResource("1") +shape = SubResource("BoxShape3D_w6bmu") [node name="AnimationPlayer" type="AnimationPlayer" parent="Elevator2"] -autoplay = "side" -playback_process_mode = 0 +callback_mode_process = 0 libraries = { "": SubResource("AnimationLibrary_4vwp8") } +autoplay = "side" [node name="Princess" type="Area3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 13.25, 3) diff --git a/3d/rigidbody_character/project.godot b/3d/rigidbody_character/project.godot index 0a0df06e07..e60f04cdb1 100644 --- a/3d/rigidbody_character/project.godot +++ b/3d/rigidbody_character/project.godot @@ -26,13 +26,13 @@ window/stretch/aspect="expand" [input] jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -40,7 +40,7 @@ move_back={ ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -48,7 +48,7 @@ move_forward={ ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -56,7 +56,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -64,13 +64,13 @@ move_right={ ] } reset_position={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -81,12 +81,7 @@ exit={ common/physics_ticks_per_second=120 3d/default_gravity=13.0 -[rasterizer] - -shadow_filter=3 - [rendering] textures/default_filters/anisotropic_filtering_level=4 anti_aliasing/quality/msaa_3d=2 -environment/default_environment="res://default_env.tres" diff --git a/3d/squash_the_creeps/project.godot b/3d/squash_the_creeps/project.godot index 00e6bb99ed..0c592d79e8 100644 --- a/3d/squash_the_creeps/project.godot +++ b/3d/squash_the_creeps/project.godot @@ -27,10 +27,6 @@ MusicPlayer="*res://MusicPlayer.tscn" window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/size/width=720 -window/size/height=540 -window/size/test_width=480 -window/size/test_height=360 [filesystem] @@ -39,35 +35,35 @@ import/blender/enabled=false [input] move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194319,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":122,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null) , Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) @@ -87,7 +83,3 @@ common/physics_ticks_per_second=120 [rendering] anti_aliasing/quality/msaa_3d=2 -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/filters/msaa=3 diff --git a/3d/squash_the_creeps/screenshots/README.md b/3d/squash_the_creeps/screenshots/README.md index 4f5c80248d..d2bd8f2087 100644 --- a/3d/squash_the_creeps/screenshots/README.md +++ b/3d/squash_the_creeps/screenshots/README.md @@ -14,8 +14,6 @@ Renderer: Vulkan Mobile Note: There is a C# version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/mono/dodge_the_creeps). -Note: There is a GDNative C++ version available [here](https://github.com/godotengine/gdnative-demos/tree/master/cpp/dodge_the_creeps). - Check out this demo on the asset library: https://godotengine.org/asset-library/asset/515 ## Screenshots diff --git a/3d/truck_town/default_env.tres b/3d/truck_town/default_env.tres deleted file mode 100644 index c04bc1cbbf..0000000000 --- a/3d/truck_town/default_env.tres +++ /dev/null @@ -1,20 +0,0 @@ -[gd_resource type="Environment" load_steps=3 format=3 uid="uid://cuvs67826w51u"] - -[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_2k12y"] -sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) -ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) - -[sub_resource type="Sky" id="Sky_1gf0c"] -sky_material = SubResource("ProceduralSkyMaterial_2k12y") - -[resource] -background_mode = 2 -sky = SubResource("Sky_1gf0c") -tonemap_mode = 2 -tonemap_white = 6.0 -glow_intensity = 0.5 -glow_blend_mode = 1 -fog_enabled = true -fog_light_color = Color(0.62, 0.6014, 0.6014, 1) -fog_density = 0.0015 -fog_sky_affect = 0.0 diff --git a/3d/truck_town/project.godot b/3d/truck_town/project.godot index fba249c2fd..e1c7494ddf 100644 --- a/3d/truck_town/project.godot +++ b/3d/truck_town/project.godot @@ -26,70 +26,70 @@ window/stretch/aspect="expand" [input] ui_accept={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } ui_select={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194309,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } ui_cancel={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_focus_next={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_focus_prev={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":true,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) ] } ui_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) ] } ui_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null) ] } ui_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) ] } ui_page_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194323,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_page_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194324,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } @@ -127,19 +127,19 @@ turn_right={ ] } cycle_speedometer_unit={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":85,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":4,"pressure":0.0,"pressed":false,"script":null) ] } back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } cycle_camera={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":67,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] @@ -149,10 +149,6 @@ cycle_camera={ common/physics_ticks_per_second=120 -[rasterizer] - -shadow_filter=3 - [rendering] textures/vram_compression/import_etc2_astc=true @@ -165,6 +161,5 @@ textures/decals/filter=1 environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1) anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true -environment/default_environment="res://default_env.tres" anti_aliasing/quality/msaa_3d.mobile=0 scaling_3d/scale.mobile=0.67 diff --git a/3d/truck_town/town/town_scene.tscn b/3d/truck_town/town/town_scene.tscn index c11808a379..7c20eeab4a 100644 --- a/3d/truck_town/town/town_scene.tscn +++ b/3d/truck_town/town/town_scene.tscn @@ -1,11 +1,29 @@ -[gd_scene load_steps=36 format=3 uid="uid://d0ygmqpylq0wy"] +[gd_scene load_steps=38 format=3 uid="uid://d0ygmqpylq0wy"] [ext_resource type="PackedScene" uid="uid://dfdgytsvtqxwv" path="res://town/truck_town.glb" id="1_x0dmm"] [ext_resource type="Script" path="res://spedometer.gd" id="2"] -[ext_resource type="Environment" uid="uid://cuvs67826w51u" path="res://default_env.tres" id="3_t0mbp"] [ext_resource type="Texture2D" uid="uid://b2g4dq0w72e68" path="res://town/materials/grass.webp" id="4_cymw0"] [ext_resource type="Material" uid="uid://bdjiubscxkdn6" path="res://town/materials/cement.tres" id="5_83ty7"] +[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_2k12y"] +sky_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) +ground_horizon_color = Color(0.64625, 0.65575, 0.67075, 1) + +[sub_resource type="Sky" id="Sky_1gf0c"] +sky_material = SubResource("ProceduralSkyMaterial_2k12y") + +[sub_resource type="Environment" id="Environment_dauhq"] +background_mode = 2 +sky = SubResource("Sky_1gf0c") +tonemap_mode = 2 +tonemap_white = 6.0 +glow_intensity = 0.5 +glow_blend_mode = 1 +fog_enabled = true +fog_light_color = Color(0.62, 0.6014, 0.6014, 1) +fog_density = 0.0015 +fog_sky_affect = 0.0 + [sub_resource type="InputEventAction" id="InputEventAction_a4722"] action = &"cycle_speedometer_unit" @@ -117,6 +135,18 @@ data = PackedVector3Array(-2, 1, 2, 2, -1, 2, -2, -1, 2, -2, 1, -2, -2, -1, -2, [node name="TownScene" type="Node3D"] +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("Environment_dauhq") + +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(0.506501, -0.706305, -0.494561, -4.63342e-08, -0.573577, 0.819152, -0.862239, -0.414901, -0.290517, 11.0084, 12.3453, -31.3148) +light_energy = 1.45 +shadow_enabled = true +shadow_bias = 0.015 +shadow_blur = 1.5 +directional_shadow_mode = 0 +directional_shadow_max_distance = 80.0 + [node name="TruckTown" parent="." instance=ExtResource("1_x0dmm")] [node name="InstancePos" type="Marker3D" parent="."] @@ -207,18 +237,6 @@ passby_press = true action = "turn_right" visibility_mode = 1 -[node name="Environment" type="WorldEnvironment" parent="."] -environment = ExtResource("3_t0mbp") - -[node name="Sun" type="DirectionalLight3D" parent="."] -transform = Transform3D(0.506501, -0.706305, -0.494561, -4.63342e-08, -0.573577, 0.819152, -0.86224, -0.414901, -0.290517, 11.0084, 12.3453, -31.3148) -light_energy = 1.45 -shadow_enabled = true -shadow_bias = 0.015 -shadow_blur = 1.5 -directional_shadow_mode = 0 -directional_shadow_max_distance = 80.0 - [node name="Ground" type="MeshInstance3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -29, -5.86, 2064.6) cast_shadow = 0 diff --git a/3d/variable_rate_shading/README.md b/3d/variable_rate_shading/README.md index 0fb1a36301..ee270cbaed 100644 --- a/3d/variable_rate_shading/README.md +++ b/3d/variable_rate_shading/README.md @@ -8,7 +8,7 @@ Performance metrics are also displayed to evaluate potential performance gains. Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ ## Screenshots diff --git a/3d/volumetric_fog/project.godot b/3d/volumetric_fog/project.godot index 7a0fe1d7d1..9506122548 100644 --- a/3d/volumetric_fog/project.godot +++ b/3d/volumetric_fog/project.godot @@ -24,65 +24,65 @@ window/stretch/aspect="expand" [input] toggle_temporal_reprojection={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":0,"echo":false,"script":null) ] } increase_temporal_reprojection={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } decrease_temporal_reprojection={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } increase_fog_density={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] } decrease_fog_density={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_mouse_capture={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194341,"key_label":0,"unicode":0,"echo":false,"script":null) ] } increase_volumetric_fog_quality={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194323,"key_label":0,"unicode":0,"echo":false,"script":null) ] } decrease_volumetric_fog_quality={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194324,"key_label":0,"unicode":0,"echo":false,"script":null) ] } diff --git a/3d/voxel/project.godot b/3d/voxel/project.godot index 69c951cc22..9e683df014 100644 --- a/3d/voxel/project.godot +++ b/3d/voxel/project.godot @@ -35,107 +35,107 @@ window/stretch/aspect="expand" [input] move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] } jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } crouch={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null) ] } pause={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194313,"key_label":0,"unicode":0,"echo":false,"script":null) ] } break={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":7,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } place={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":2,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":6,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } look_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":-1.0,"script":null) ] } look_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":1.0,"script":null) ] } look_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":-1.0,"script":null) ] } look_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":1.0,"script":null) ] } debug={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194334,"key_label":0,"unicode":0,"echo":false,"script":null) ] } prev_block={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":4,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":45,"key_label":0,"unicode":0,"echo":false,"script":null) ] } next_block={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":5,"canceled":false,"pressed":false,"double_click":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":61,"key_label":0,"unicode":0,"echo":false,"script":null) ] } pick_block={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":3,"canceled":false,"pressed":false,"double_click":false,"script":null) ] } @@ -151,11 +151,3 @@ common/physics_ticks_per_second=120 textures/canvas_textures/default_texture_filter=0 anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/filters/anisotropic_filter_level=16 -quality/filters/msaa=2 -environment/default_environment="res://default_env.tres" -gles2/debug/disable_half_float=true -quality/filters/anisotropic_filter_level.mobile=4 diff --git a/3d/waypoints/project.godot b/3d/waypoints/project.godot index d2e2252337..60cc553811 100644 --- a/3d/waypoints/project.godot +++ b/3d/waypoints/project.godot @@ -25,7 +25,7 @@ window/stretch/aspect="expand" [input] move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -33,7 +33,7 @@ move_forward={ ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -41,7 +41,7 @@ move_back={ ] } move_left={ -"deadzone": 0.51, +"deadzone": 0.21, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -49,7 +49,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -57,7 +57,7 @@ move_right={ ] } toggle_mouse_capture={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194341,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -67,7 +67,3 @@ toggle_mouse_capture={ anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_environment="res://default_env.tres" diff --git a/audio/README.md b/audio/README.md index 8dacde66c3..397f396bfd 100644 --- a/audio/README.md +++ b/audio/README.md @@ -4,4 +4,4 @@ These demos showcase various audio features. Languages: All are GDScript -Renderers: All are GLES 2 +Renderers: All are Compatibility diff --git a/audio/bpm_sync/README.md b/audio/bpm_sync/README.md index c675060a7f..9a3bd4b631 100644 --- a/audio/bpm_sync/README.md +++ b/audio/bpm_sync/README.md @@ -4,7 +4,7 @@ A demo of how to sync the audio playback with the time for a consistent BPM. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/581 diff --git a/audio/bpm_sync/bpm_sync.tscn b/audio/bpm_sync/bpm_sync.tscn index 87abebb045..aa8265a7dd 100644 --- a/audio/bpm_sync/bpm_sync.tscn +++ b/audio/bpm_sync/bpm_sync.tscn @@ -1,43 +1,53 @@ -[gd_scene load_steps=7 format=3 uid="uid://qfdnp4pliele"] +[gd_scene load_steps=8 format=3 uid="uid://qfdnp4pliele"] [ext_resource type="Texture2D" uid="uid://b1m28vixtwkx0" path="res://play_system_button_hl.png" id="1"] [ext_resource type="Texture2D" uid="uid://bvcb3q4c3414p" path="res://play_sound_button.png" id="2"] +[ext_resource type="FontFile" uid="uid://dh3iuml41q2uq" path="res://lcd.ttf" id="2_wyi3x"] [ext_resource type="AudioStream" uid="uid://dumjxbamq37fe" path="res://the_comeback2.ogg" id="3"] [ext_resource type="Texture2D" uid="uid://y41g3g5d88f3" path="res://play_sound_button_hl.png" id="4"] [ext_resource type="Texture2D" uid="uid://cdpaolglwepko" path="res://play_system_button.png" id="5"] [ext_resource type="Script" path="res://bpm_sync.gd" id="7"] [node name="BPMSync" type="Panel"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -script = ExtResource( "7" ) +grow_horizontal = 2 +grow_vertical = 2 +size_flags_horizontal = 4 +size_flags_vertical = 4 +script = ExtResource("7") [node name="Label" type="Label" parent="."] +layout_mode = 0 offset_left = 106.895 offset_top = 427.158 offset_right = 914.895 offset_bottom = 488.158 +theme_override_fonts/font = ExtResource("2_wyi3x") [node name="Player" type="AudioStreamPlayer" parent="."] -stream = ExtResource( "3" ) +stream = ExtResource("3") [node name="PlaySystem" type="TextureButton" parent="."] +layout_mode = 0 offset_left = 214.737 offset_top = 187.368 offset_right = 342.737 offset_bottom = 315.368 -texture_normal = ExtResource( "5" ) -texture_pressed = ExtResource( "5" ) -texture_hover = ExtResource( "1" ) +texture_normal = ExtResource("5") +texture_pressed = ExtResource("5") +texture_hover = ExtResource("1") [node name="PlaySound" type="TextureButton" parent="."] +layout_mode = 0 offset_left = 622.105 offset_top = 183.158 offset_right = 750.105 offset_bottom = 311.158 -texture_normal = ExtResource( "2" ) -texture_pressed = ExtResource( "2" ) -texture_hover = ExtResource( "4" ) +texture_normal = ExtResource("2") +texture_pressed = ExtResource("2") +texture_hover = ExtResource("4") [connection signal="pressed" from="PlaySystem" to="." method="_on_PlaySystem_pressed"] [connection signal="pressed" from="PlaySound" to="." method="_on_PlaySound_pressed"] diff --git a/audio/bpm_sync/project.godot b/audio/bpm_sync/project.godot index 498d7bc0a2..eb1a08d217 100644 --- a/audio/bpm_sync/project.godot +++ b/audio/bpm_sync/project.godot @@ -17,8 +17,12 @@ run/main_scene="res://bpm_sync.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/audio/device_changer/README.md b/audio/device_changer/README.md index 474136055e..bc3a08eaf0 100644 --- a/audio/device_changer/README.md +++ b/audio/device_changer/README.md @@ -4,7 +4,7 @@ This is a demo showing how the audio output device can be changed from Godot. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/525 diff --git a/audio/device_changer/project.godot b/audio/device_changer/project.godot index 94a62f3ebd..65dd98ea69 100644 --- a/audio/device_changer/project.godot +++ b/audio/device_changer/project.godot @@ -27,7 +27,7 @@ window/vsync/vsync_mode=0 [input] ui_accept={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777221,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777222,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -35,75 +35,74 @@ ui_accept={ ] } ui_select={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } ui_cancel={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } ui_focus_next={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_focus_prev={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } ui_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } ui_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } ui_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } ui_page_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777235,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_page_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777236,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_home={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777229,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } ui_end={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777230,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.2, 0.2, 0.2, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/audio/generator/README.md b/audio/generator/README.md index 5fc4eb0151..e3f14bb05b 100644 --- a/audio/generator/README.md +++ b/audio/generator/README.md @@ -6,7 +6,7 @@ It plays a simple 440 Hz sine wave at 22050 Hz. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/526 diff --git a/audio/generator/project.godot b/audio/generator/project.godot index f34e6e438c..40e32adf2c 100644 --- a/audio/generator/project.godot +++ b/audio/generator/project.godot @@ -27,7 +27,6 @@ window/stretch/aspect="expand" [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.12549, 0.12549, 0.12549, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/audio/mic_record/MicRecord.tscn b/audio/mic_record/MicRecord.tscn index 1881a3204b..c83240a2bb 100644 --- a/audio/mic_record/MicRecord.tscn +++ b/audio/mic_record/MicRecord.tscn @@ -16,6 +16,8 @@ offset_left = -278.0 offset_top = -224.0 offset_right = 296.0 offset_bottom = 226.0 +grow_horizontal = 2 +grow_vertical = 2 script = ExtResource("1") [node name="AudioStreamRecord" type="AudioStreamPlayer" parent="."] @@ -35,6 +37,7 @@ layout_mode = 1 anchors_preset = 10 anchor_right = 1.0 offset_bottom = 26.0 +grow_horizontal = 2 text = "Status: " horizontal_alignment = 1 diff --git a/audio/mic_record/README.md b/audio/mic_record/README.md index a9554d3cc5..e8ab69b4e1 100644 --- a/audio/mic_record/README.md +++ b/audio/mic_record/README.md @@ -8,7 +8,7 @@ stereo settings of the recording. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/527 diff --git a/audio/mic_record/project.godot b/audio/mic_record/project.godot index dc41b57afa..8974e14862 100644 --- a/audio/mic_record/project.godot +++ b/audio/mic_record/project.godot @@ -34,4 +34,5 @@ window/vsync/vsync_mode=0 [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/audio/midi_piano/README.md b/audio/midi_piano/README.md index 0cfd80a96e..d5a8049dd2 100644 --- a/audio/midi_piano/README.md +++ b/audio/midi_piano/README.md @@ -12,7 +12,7 @@ Note that MIDI output is not yet supported in Godot, only input works. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/1292 diff --git a/audio/midi_piano/piano.tscn b/audio/midi_piano/piano.tscn index ba976a7d2e..9fff9fa89c 100644 --- a/audio/midi_piano/piano.tscn +++ b/audio/midi_piano/piano.tscn @@ -3,26 +3,20 @@ [ext_resource type="Script" path="res://piano.gd" id="1"] [node name="Piano" type="ColorRect"] +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 color = Color(0, 0, 0, 1) -script = ExtResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("1") [node name="WhiteKeys" type="HBoxContainer" parent="."] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 mouse_filter = 2 -__meta__ = { -"_edit_use_anchors_": false -} [node name="BlackKeys" type="HBoxContainer" parent="."] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 0.6 mouse_filter = 2 -__meta__ = { -"_edit_use_anchors_": false -} diff --git a/audio/midi_piano/project.godot b/audio/midi_piano/project.godot index ca872232c3..8a9574155f 100644 --- a/audio/midi_piano/project.godot +++ b/audio/midi_piano/project.godot @@ -21,16 +21,7 @@ config/icon="res://icon.webp" window/size/viewport_width=1280 window/size/viewport_height=200 -[network] - -limits/debugger_stdout/max_chars_per_second=2048000 - -[physics] - -common/enable_pause_aware_picking=true - [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/audio/spectrum/project.godot b/audio/spectrum/project.godot index 82e0e64331..d6a97441f8 100644 --- a/audio/spectrum/project.godot +++ b/audio/spectrum/project.godot @@ -29,6 +29,3 @@ window/vsync/vsync_mode=0 renderer/rendering_method="gl_compatibility" renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.12549, 0.12549, 0.12549, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/audio/text_to_speech/project.godot b/audio/text_to_speech/project.godot index 54e2a14552..42f9fdccc2 100644 --- a/audio/text_to_speech/project.godot +++ b/audio/text_to_speech/project.godot @@ -17,6 +17,10 @@ run/main_scene="res://control.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" +[audio] + +general/text_to_speech=true + [display] window/stretch/mode="canvas_items" diff --git a/compute/texture/README.md b/compute/texture/README.md index 013d220131..a14f3b50ed 100644 --- a/compute/texture/README.md +++ b/compute/texture/README.md @@ -7,7 +7,7 @@ When the mouse cursor is above the plane you can "draw" on the plane to drive th Language: GDScript -Renderer: Forward Plus +Renderer: Forward+ > Note: this demo requires Godot 4.2 or later diff --git a/compute/texture/project.godot b/compute/texture/project.godot index 38e4d9add2..a49bcfd2de 100644 --- a/compute/texture/project.godot +++ b/compute/texture/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="TestCustomTextures" run/main_scene="res://main.tscn" -config/features=PackedStringArray("4.2", "Forward Plus") +config/features=PackedStringArray("4.2") config/icon="res://icon.svg" [rendering] diff --git a/gui/README.md b/gui/README.md index a50315de12..9402f7e4cf 100644 --- a/gui/README.md +++ b/gui/README.md @@ -5,4 +5,4 @@ These demos showcase GUI features and text features via Languages: All are GDScript, except SDF has no code -Renderers: All are GLES 2 +Renderers: All are Compatibility diff --git a/gui/bidi_and_font_features/bidi.tscn b/gui/bidi_and_font_features/bidi.tscn index d4660acdaf..082bc8645d 100644 --- a/gui/bidi_and_font_features/bidi.tscn +++ b/gui/bidi_and_font_features/bidi.tscn @@ -650,6 +650,7 @@ offset_bottom = 147.0 text = "Italic" [node name="Weight" type="HBoxContainer" parent="TabContainer/System fonts"] +layout_mode = 0 offset_left = 40.0 offset_top = 120.0 offset_right = 383.0 diff --git a/gui/control_gallery/control_gallery.tscn b/gui/control_gallery/control_gallery.tscn index 15fe9dab00..f82af92cca 100644 --- a/gui/control_gallery/control_gallery.tscn +++ b/gui/control_gallery/control_gallery.tscn @@ -1,6 +1,6 @@ [gd_scene load_steps=5 format=3 uid="uid://dy11txudwdmgy"] -[ext_resource type="Texture2D" uid="uid://bc22e06hdx8c" path="res://icon.webp" id="1_8tycj"] +[ext_resource type="Texture2D" uid="uid://brwp8bimc75uu" path="res://icon.webp" id="1_8tycj"] [ext_resource type="Script" path="res://tree.gd" id="2_68sc3"] [sub_resource type="StyleBoxFlat" id="StyleBoxFlat_bl4wp"] diff --git a/gui/gd_paint/README.md b/gui/gd_paint/README.md index e81f1354ae..9521d62657 100644 --- a/gui/gd_paint/README.md +++ b/gui/gd_paint/README.md @@ -6,7 +6,7 @@ and eraser, as well as a rectangle and a circle brush. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/517 diff --git a/gui/gd_paint/paint_root.tscn b/gui/gd_paint/paint_root.tscn index f32012ea5a..ec79f9657b 100644 --- a/gui/gd_paint/paint_root.tscn +++ b/gui/gd_paint/paint_root.tscn @@ -11,53 +11,61 @@ bg_color = Color(1, 1, 1, 1) bg_color = Color(0.2, 0.2, 0.2, 1) [sub_resource type="AtlasTexture" id="AtlasTexture_v0gbg"] -atlas = ExtResource( "3" ) +atlas = ExtResource("3") region = Rect2(0, 0, 16, 16) [sub_resource type="AtlasTexture" id="AtlasTexture_j7akv"] -atlas = ExtResource( "3" ) +atlas = ExtResource("3") region = Rect2(16, 0, 16, 16) [sub_resource type="AtlasTexture" id="AtlasTexture_63q87"] -atlas = ExtResource( "3" ) +atlas = ExtResource("3") region = Rect2(0, 16, 16, 16) [sub_resource type="AtlasTexture" id="AtlasTexture_t52fe"] -atlas = ExtResource( "3" ) +atlas = ExtResource("3") region = Rect2(16, 16, 16, 16) [node name="PaintRoot" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 [node name="DrawingAreaBG" type="Panel" parent="."] +layout_mode = 0 anchor_left = 0.342 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = -0.208008 grow_horizontal = 2 -theme_override_styles/panel = SubResource( "StyleBoxFlat_4ksjc" ) +theme_override_styles/panel = SubResource("StyleBoxFlat_4ksjc") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = true [node name="PaintControl" type="Control" parent="."] +anchors_preset = 0 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 -script = ExtResource( "1" ) +script = ExtResource("1") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="ToolsPanel" type="Panel" parent="."] +layout_mode = 0 offset_right = 350.0 offset_bottom = 600.0 -theme_override_styles/panel = SubResource( "StyleBoxFlat_npkcn" ) -script = ExtResource( "2" ) +theme_override_styles/panel = SubResource("StyleBoxFlat_npkcn") +script = ExtResource("2") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = true [node name="LabelTools" type="Label" parent="ToolsPanel"] +layout_mode = 0 offset_left = 20.0 offset_top = 6.0 offset_right = 330.0 @@ -67,6 +75,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="ButtonToolPencil" type="Button" parent="ToolsPanel"] +layout_mode = 0 offset_left = 40.0 offset_top = 30.0 offset_right = 95.0 @@ -75,6 +84,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="TextureRect" type="TextureRect" parent="ToolsPanel/ButtonToolPencil"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 5.0 @@ -83,11 +93,12 @@ offset_right = -5.0 offset_bottom = -5.0 grow_horizontal = 2 grow_vertical = 2 -texture = SubResource( "AtlasTexture_v0gbg" ) +texture = SubResource("AtlasTexture_v0gbg") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="ButtonToolEraser" type="Button" parent="ToolsPanel"] +layout_mode = 0 offset_left = 110.0 offset_top = 30.0 offset_right = 165.0 @@ -96,6 +107,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="TextureRect2" type="TextureRect" parent="ToolsPanel/ButtonToolEraser"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 5.0 @@ -104,11 +116,12 @@ offset_right = -5.0 offset_bottom = -5.0 grow_horizontal = 2 grow_vertical = 2 -texture = SubResource( "AtlasTexture_j7akv" ) +texture = SubResource("AtlasTexture_j7akv") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="ButtonToolRectangle" type="Button" parent="ToolsPanel"] +layout_mode = 0 offset_left = 180.0 offset_top = 30.0 offset_right = 235.0 @@ -117,6 +130,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="TextureRect" type="TextureRect" parent="ToolsPanel/ButtonToolRectangle"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 5.0 @@ -125,11 +139,12 @@ offset_right = -5.0 offset_bottom = -5.0 grow_horizontal = 2 grow_vertical = 2 -texture = SubResource( "AtlasTexture_63q87" ) +texture = SubResource("AtlasTexture_63q87") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="ButtonToolCircle" type="Button" parent="ToolsPanel"] +layout_mode = 0 offset_left = 250.0 offset_top = 30.0 offset_right = 305.0 @@ -138,6 +153,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="TextureRect" type="TextureRect" parent="ToolsPanel/ButtonToolCircle"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 5.0 @@ -146,11 +162,12 @@ offset_right = -5.0 offset_bottom = -5.0 grow_horizontal = 2 grow_vertical = 2 -texture = SubResource( "AtlasTexture_t52fe" ) +texture = SubResource("AtlasTexture_t52fe") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="LabelBrushColor" type="Label" parent="ToolsPanel"] +layout_mode = 0 offset_left = 20.0 offset_top = 91.0 offset_right = 330.0 @@ -160,6 +177,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="ColorPickerBrush" type="ColorPickerButton" parent="ToolsPanel"] +layout_mode = 0 offset_left = 20.0 offset_top = 115.0 offset_right = 330.0 @@ -168,11 +186,13 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="BrushSettings" type="Control" parent="ToolsPanel"] +anchors_preset = 0 offset_top = 200.0 offset_right = 350.0 offset_bottom = 375.0 [node name="LabelBrushSize" type="Label" parent="ToolsPanel/BrushSettings"] +layout_mode = 0 offset_left = 20.0 offset_top = -37.0 offset_right = 330.0 @@ -182,6 +202,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="HScrollBarBrushSize" type="HScrollBar" parent="ToolsPanel/BrushSettings"] +layout_mode = 0 offset_left = 20.0 offset_top = -8.0 offset_right = 330.0 @@ -193,6 +214,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="LabelBrushShape" type="Label" parent="ToolsPanel/BrushSettings"] +layout_mode = 0 offset_left = 20.0 offset_top = 29.0 offset_right = 330.0 @@ -202,6 +224,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="ButtonShapeBox" type="Button" parent="ToolsPanel/BrushSettings"] +layout_mode = 0 offset_left = 100.0 offset_top = 59.0 offset_right = 155.0 @@ -210,6 +233,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="TextureRect" type="TextureRect" parent="ToolsPanel/BrushSettings/ButtonShapeBox"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 5.0 @@ -218,11 +242,12 @@ offset_right = -5.0 offset_bottom = -5.0 grow_horizontal = 2 grow_vertical = 2 -texture = SubResource( "AtlasTexture_63q87" ) +texture = SubResource("AtlasTexture_63q87") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="ButtonShapeCircle" type="Button" parent="ToolsPanel/BrushSettings"] +layout_mode = 0 offset_left = 190.0 offset_top = 59.0 offset_right = 245.0 @@ -231,6 +256,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="TextureRect" type="TextureRect" parent="ToolsPanel/BrushSettings/ButtonShapeCircle"] +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = 5.0 @@ -239,11 +265,12 @@ offset_right = -5.0 offset_bottom = -5.0 grow_horizontal = 2 grow_vertical = 2 -texture = SubResource( "AtlasTexture_t52fe" ) +texture = SubResource("AtlasTexture_t52fe") metadata/_edit_layout_mode = 1 metadata/_edit_use_custom_anchors = false [node name="LabelBackgroundColor" type="Label" parent="ToolsPanel"] +layout_mode = 0 offset_left = 20.0 offset_top = 323.0 offset_right = 330.0 @@ -253,6 +280,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="ColorPickerBackground" type="ColorPickerButton" parent="ToolsPanel"] +layout_mode = 0 offset_left = 20.0 offset_top = 351.0 offset_right = 330.0 @@ -264,6 +292,7 @@ metadata/_edit_use_custom_anchors = false [node name="LabelStats" type="Label" parent="ToolsPanel"] modulate = Color(0.414062, 0.414062, 0.414062, 1) +layout_mode = 0 offset_left = 20.0 offset_top = 463.0 offset_right = 330.0 @@ -273,6 +302,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="ButtonUndo" type="Button" parent="ToolsPanel"] +layout_mode = 0 offset_left = 10.0 offset_top = 415.0 offset_right = 340.0 @@ -282,6 +312,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="ButtonSave" type="Button" parent="ToolsPanel"] +layout_mode = 0 offset_left = 10.0 offset_top = 506.0 offset_right = 340.0 @@ -291,6 +322,7 @@ metadata/_edit_layout_mode = 0 metadata/_edit_use_custom_anchors = false [node name="ButtonClear" type="Button" parent="ToolsPanel"] +layout_mode = 0 offset_left = 10.0 offset_top = 550.0 offset_right = 340.0 diff --git a/gui/gd_paint/project.godot b/gui/gd_paint/project.godot index 8d9dd85ac7..fc9247179a 100644 --- a/gui/gd_paint/project.godot +++ b/gui/gd_paint/project.godot @@ -27,7 +27,9 @@ gdscript/warnings/redundant_await=false window/stretch/mode="viewport" window/stretch/aspect="keep_height" +window/stretch/scale_mode="integer" [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/gui/input_mapping/ActionRemapButton.gd b/gui/input_mapping/ActionRemapButton.gd index f50ca9d4a5..83890dd0dd 100644 --- a/gui/input_mapping/ActionRemapButton.gd +++ b/gui/input_mapping/ActionRemapButton.gd @@ -11,7 +11,7 @@ func _ready(): func _toggled(is_button_pressed): set_process_unhandled_key_input(is_button_pressed) if is_button_pressed: - text = "... Key" + text = "" release_focus() else: display_current_key() @@ -31,9 +31,9 @@ func remap_action_to(event): # And then save it to the keymaps file KeyPersistence.keymaps[action] = event KeyPersistence.save_keymap() - text = "%s Key" % event.as_text() + text = event.as_text() func display_current_key(): var current_key = InputMap.action_get_events(action)[0].as_text() - text = "%s Key" % current_key + text = current_key diff --git a/gui/input_mapping/ActionRemapButton.tscn b/gui/input_mapping/ActionRemapButton.tscn index 6cda12a402..34c18a28e3 100644 --- a/gui/input_mapping/ActionRemapButton.tscn +++ b/gui/input_mapping/ActionRemapButton.tscn @@ -6,4 +6,4 @@ offset_right = 90.0 offset_bottom = 30.0 toggle_mode = true -script = ExtResource( "1" ) +script = ExtResource("1") diff --git a/gui/input_mapping/InputRemapMenu.tscn b/gui/input_mapping/InputRemapMenu.tscn index 640b05c51d..5c9d8ce6d5 100644 --- a/gui/input_mapping/InputRemapMenu.tscn +++ b/gui/input_mapping/InputRemapMenu.tscn @@ -3,16 +3,24 @@ [ext_resource type="PackedScene" uid="uid://cy6kmby6mupvv" path="res://ActionRemapButton.tscn" id="1"] [node name="InputRemapMenu" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 [node name="Instructions" type="Label" parent="."] +layout_mode = 0 anchor_right = 1.0 offset_top = 24.0 offset_bottom = 55.0 text = "Click on a button to reassign its action key." +horizontal_alignment = 1 +vertical_alignment = 1 -[node name="RemapButtonGroup" type="Button" parent="."] +[node name="RemapButtonGroup" type="Control" parent="."] +anchors_preset = 0 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -21,10 +29,9 @@ offset_left = -160.0 offset_top = -144.0 offset_right = 160.0 offset_bottom = 144.0 -disabled = true -flat = true [node name="ActionsList" type="VBoxContainer" parent="RemapButtonGroup"] +layout_mode = 0 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -35,110 +42,96 @@ offset_right = 160.0 offset_bottom = 140.0 [node name="ActionRemapRow" type="HBoxContainer" parent="RemapButtonGroup/ActionsList"] -offset_right = 320.0 -offset_bottom = 52.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="ActionName" type="Label" parent="RemapButtonGroup/ActionsList/ActionRemapRow"] -offset_right = 158.0 -offset_bottom = 52.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Move Left" +horizontal_alignment = 1 +vertical_alignment = 1 -[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow" instance=ExtResource( "1" )] -offset_left = 162.0 -offset_right = 320.0 -offset_bottom = 52.0 +[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow" instance=ExtResource("1")] +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 action = "move_left" [node name="ActionRemapRow2" type="HBoxContainer" parent="RemapButtonGroup/ActionsList"] -offset_top = 56.0 -offset_right = 320.0 -offset_bottom = 109.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="ActionName" type="Label" parent="RemapButtonGroup/ActionsList/ActionRemapRow2"] -offset_right = 158.0 -offset_bottom = 53.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Move Right" +horizontal_alignment = 1 +vertical_alignment = 1 -[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow2" instance=ExtResource( "1" )] -offset_left = 162.0 -offset_right = 320.0 -offset_bottom = 53.0 +[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow2" instance=ExtResource("1")] +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 action = "move_right" [node name="ActionRemapRow3" type="HBoxContainer" parent="RemapButtonGroup/ActionsList"] -offset_top = 113.0 -offset_right = 320.0 -offset_bottom = 166.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="ActionName" type="Label" parent="RemapButtonGroup/ActionsList/ActionRemapRow3"] -offset_right = 158.0 -offset_bottom = 53.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Look Up" +horizontal_alignment = 1 +vertical_alignment = 1 -[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow3" instance=ExtResource( "1" )] -offset_left = 162.0 -offset_right = 320.0 -offset_bottom = 53.0 +[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow3" instance=ExtResource("1")] +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 action = "look_up" [node name="ActionRemapRow4" type="HBoxContainer" parent="RemapButtonGroup/ActionsList"] -offset_top = 170.0 -offset_right = 320.0 -offset_bottom = 223.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="ActionName" type="Label" parent="RemapButtonGroup/ActionsList/ActionRemapRow4"] -offset_right = 158.0 -offset_bottom = 53.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Crouch" +horizontal_alignment = 1 +vertical_alignment = 1 -[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow4" instance=ExtResource( "1" )] -offset_left = 162.0 -offset_right = 320.0 -offset_bottom = 53.0 +[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow4" instance=ExtResource("1")] +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 action = "crouch" [node name="ActionRemapRow5" type="HBoxContainer" parent="RemapButtonGroup/ActionsList"] -offset_top = 227.0 -offset_right = 320.0 -offset_bottom = 280.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="ActionName" type="Label" parent="RemapButtonGroup/ActionsList/ActionRemapRow5"] -offset_right = 158.0 -offset_bottom = 53.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 text = "Dash" +horizontal_alignment = 1 +vertical_alignment = 1 -[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow5" instance=ExtResource( "1" )] -offset_left = 162.0 -offset_right = 320.0 -offset_bottom = 53.0 +[node name="RemapButton" parent="RemapButtonGroup/ActionsList/ActionRemapRow5" instance=ExtResource("1")] +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 action = "dash" diff --git a/gui/input_mapping/README.md b/gui/input_mapping/README.md index afb173e4e7..fb70c3808a 100644 --- a/gui/input_mapping/README.md +++ b/gui/input_mapping/README.md @@ -8,7 +8,7 @@ A demo showing how to build an input key remapping screen. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/131 diff --git a/gui/input_mapping/project.godot b/gui/input_mapping/project.godot index a2d110f10d..b3b0b9de2d 100644 --- a/gui/input_mapping/project.godot +++ b/gui/input_mapping/project.godot @@ -35,31 +35,32 @@ window/stretch/aspect="expand" [input] move_right={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } look_up={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } crouch={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null) ] } dash={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null) ] } [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/gui/msdf_font/README.md b/gui/msdf_font/README.md index c8e550d3f6..f55924d667 100644 --- a/gui/msdf_font/README.md +++ b/gui/msdf_font/README.md @@ -9,7 +9,7 @@ at small font sizes compared to single-channel signed distance field fonts. Language: This demo contains no code. -Renderer: Forward Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/521 diff --git a/gui/msdf_font/montserrat_semibold_msdf.ttf.import b/gui/msdf_font/montserrat_semibold_msdf.ttf.import index 76029a3a53..91cb928015 100644 --- a/gui/msdf_font/montserrat_semibold_msdf.ttf.import +++ b/gui/msdf_font/montserrat_semibold_msdf.ttf.import @@ -16,7 +16,7 @@ Rendering=null antialiasing=1 generate_mipmaps=false multichannel_signed_distance_field=true -msdf_pixel_range=10 +msdf_pixel_range=40 msdf_size=48 allow_system_fallback=true force_autohinter=false diff --git a/gui/msdf_font/project.godot b/gui/msdf_font/project.godot index f190d6fde1..0f15d58181 100644 --- a/gui/msdf_font/project.godot +++ b/gui/msdf_font/project.godot @@ -30,12 +30,13 @@ window/stretch/aspect="expand" [input] toggle_msdf_font={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.180392, 0.117647, 0.152941, 1) diff --git a/gui/msdf_font/sdf_font_demo.tscn b/gui/msdf_font/sdf_font_demo.tscn index d973304d35..d8cc4579fc 100644 --- a/gui/msdf_font/sdf_font_demo.tscn +++ b/gui/msdf_font/sdf_font_demo.tscn @@ -120,16 +120,16 @@ offset_bottom = 324.0 layout_mode = 2 [node name="Rotate" type="AnimationPlayer" parent="CenterContainer/Base"] -autoplay = "rotate" libraries = { "": SubResource("AnimationLibrary_88vp7") } +autoplay = "rotate" [node name="Zoom" type="AnimationPlayer" parent="CenterContainer/Base"] -autoplay = "zoomin_zoomout" libraries = { "": SubResource("AnimationLibrary_j5dlp") } +autoplay = "zoomin_zoomout" [node name="FontLabel" type="Label" parent="CenterContainer/Base"] unique_name_in_owner = true diff --git a/gui/multiple_resolutions/project.godot b/gui/multiple_resolutions/project.godot index 60dc2813f3..685fba7fcf 100644 --- a/gui/multiple_resolutions/project.godot +++ b/gui/multiple_resolutions/project.godot @@ -49,4 +49,5 @@ theme/default_font_multichannel_signed_distance_field=true [rendering] renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.2, 1) diff --git a/gui/pseudolocalization/Pseudolocalization.tscn b/gui/pseudolocalization/Pseudolocalization.tscn index f4026fa5b0..6fe6444ab4 100644 --- a/gui/pseudolocalization/Pseudolocalization.tscn +++ b/gui/pseudolocalization/Pseudolocalization.tscn @@ -8,6 +8,8 @@ layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 script = ExtResource("2") [node name="Title" type="HBoxContainer" parent="."] diff --git a/gui/pseudolocalization/project.godot b/gui/pseudolocalization/project.godot index 5c71ea0499..8adf521f01 100644 --- a/gui/pseudolocalization/project.godot +++ b/gui/pseudolocalization/project.godot @@ -23,4 +23,5 @@ pseudolocalization/double_vowels=true [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/gui/rich_text_bbcode/project.godot b/gui/rich_text_bbcode/project.godot index 041f7a0cba..b8788512d0 100644 --- a/gui/rich_text_bbcode/project.godot +++ b/gui/rich_text_bbcode/project.godot @@ -27,7 +27,7 @@ window/vsync/vsync_mode=0 [input] toggle_pause={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194313,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } diff --git a/gui/rich_text_bbcode/rich_text_bbcode.tscn b/gui/rich_text_bbcode/rich_text_bbcode.tscn index 1dafe3b3e8..c55feacc95 100644 --- a/gui/rich_text_bbcode/rich_text_bbcode.tscn +++ b/gui/rich_text_bbcode/rich_text_bbcode.tscn @@ -56,7 +56,7 @@ Left alignment is default,[center]but center alignment is supported,[/center][ri [fill][dropcap font_size=48 color=yellow margins=0,-10,0,-12]F[/dropcap]ill alignment is also supported, and allows writing very long text that will end up fitting the horizontal space entirely with words of joy. Drop caps are also supported. When using a drop cap, the first character of a paragraph is made larger, taking up several lines of text and optionally using a specific font or color.[/fill] -Several effects are also available: [wave]Wave[/wave] [tornado]Tornado[/tornado] [shake]Shake[/shake] [fade start=67 length=7]Fade[/fade] [rainbow]Rainbow[/rainbow] +Several effects are also available: [pulse]Pulse[/pulse] [wave]Wave[/wave] [tornado]Tornado[/tornado] [shake]Shake[/shake] [fade start=75 length=7]Fade[/fade] [rainbow]Rainbow[/rainbow] [table=2] [cell border=#fff3 bg=#fff1] diff --git a/gui/translation/README.md b/gui/translation/README.md index 9df7d85a27..78af273ebd 100644 --- a/gui/translation/README.md +++ b/gui/translation/README.md @@ -5,7 +5,7 @@ the use of localized resources and texts. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/134 diff --git a/gui/translation/flag_japan.png.import b/gui/translation/flag_japan.png.import index c3e38f2b34..26026c4338 100644 --- a/gui/translation/flag_japan.png.import +++ b/gui/translation/flag_japan.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/flag_japan.png-e7284e6af3de26ab9c66cac9c40620 [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/gui/translation/flag_spain.png.import b/gui/translation/flag_spain.png.import index 6b302e4128..f0d711deec 100644 --- a/gui/translation/flag_spain.png.import +++ b/gui/translation/flag_spain.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/flag_spain.png-fd2012b4e19487cfc4923df0c26855 [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/gui/translation/flag_uk.png.import b/gui/translation/flag_uk.png.import index c8692ba66e..8369281779 100644 --- a/gui/translation/flag_uk.png.import +++ b/gui/translation/flag_uk.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/flag_uk.png-eb8a2b26ac36f4d0cf0d7345e577ec2c. [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/gui/translation/font/DroidSans.ttf.import b/gui/translation/font/DroidSans.ttf.import index a3d4f336ae..667a49e306 100644 --- a/gui/translation/font/DroidSans.ttf.import +++ b/gui/translation/font/DroidSans.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://33p1pmbcp0bh" path="res://.godot/imported/DroidSans.ttf-ba789e8a8b60473207799201d8a90bb4.fontdata" @@ -12,22 +12,22 @@ dest_files=["res://.godot/imported/DroidSans.ttf-ba789e8a8b60473207799201d8a90bb [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/translation/font/DroidSansArabic.ttf.import b/gui/translation/font/DroidSansArabic.ttf.import index adb9635571..fdc1a3c5c7 100644 --- a/gui/translation/font/DroidSansArabic.ttf.import +++ b/gui/translation/font/DroidSansArabic.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://c7ujio1oqntre" path="res://.godot/imported/DroidSansArabic.ttf-da8dabd885d494269ba77c8d78d8ed5b.fontdata" @@ -12,22 +12,22 @@ dest_files=["res://.godot/imported/DroidSansArabic.ttf-da8dabd885d494269ba77c8d7 [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/translation/font/DroidSansFallback.ttf.import b/gui/translation/font/DroidSansFallback.ttf.import index 78505cdccc..72aa382faf 100644 --- a/gui/translation/font/DroidSansFallback.ttf.import +++ b/gui/translation/font/DroidSansFallback.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://xesv5idkrqcd" path="res://.godot/imported/DroidSansFallback.ttf-9bc560676e9de93a3474250e8f345fde.fontdata" @@ -12,22 +12,22 @@ dest_files=["res://.godot/imported/DroidSansFallback.ttf-9bc560676e9de93a3474250 [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/translation/font/DroidSansHebrew.ttf.import b/gui/translation/font/DroidSansHebrew.ttf.import index adcc15eaca..8ee558094e 100644 --- a/gui/translation/font/DroidSansHebrew.ttf.import +++ b/gui/translation/font/DroidSansHebrew.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://cft2167j0ba27" path="res://.godot/imported/DroidSansHebrew.ttf-2fc88dbe58ef638a09561323f2a293d1.fontdata" @@ -12,22 +12,22 @@ dest_files=["res://.godot/imported/DroidSansHebrew.ttf-2fc88dbe58ef638a09561323f [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/translation/font/DroidSansJapanese.ttf.import b/gui/translation/font/DroidSansJapanese.ttf.import index 31247481b0..03dde240ab 100644 --- a/gui/translation/font/DroidSansJapanese.ttf.import +++ b/gui/translation/font/DroidSansJapanese.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://rdmplfeo1mfc" path="res://.godot/imported/DroidSansJapanese.ttf-de3fc871b57fb078f93cf2bf5d96545a.fontdata" @@ -12,22 +12,22 @@ dest_files=["res://.godot/imported/DroidSansJapanese.ttf-de3fc871b57fb078f93cf2b [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/translation/font/DroidSansThai.ttf.import b/gui/translation/font/DroidSansThai.ttf.import index 9bc041f4c5..f074d1a0ac 100644 --- a/gui/translation/font/DroidSansThai.ttf.import +++ b/gui/translation/font/DroidSansThai.ttf.import @@ -1,7 +1,7 @@ [remap] importer="font_data_dynamic" -type="FontData" +type="FontFile" uid="uid://ctmwkt7kh6cst" path="res://.godot/imported/DroidSansThai.ttf-91e10bcf58a298496a7fd92e1d4cd8c4.fontdata" @@ -12,22 +12,22 @@ dest_files=["res://.godot/imported/DroidSansThai.ttf-91e10bcf58a298496a7fd92e1d4 [params] -antialiased=true +Rendering=null +antialiasing=1 +generate_mipmaps=false multichannel_signed_distance_field=false msdf_pixel_range=8 msdf_size=48 +allow_system_fallback=true force_autohinter=false hinting=1 subpixel_positioning=1 -embolden=0.0 -transform=Transform2D(1, 0, 0, 1, 0, 0) oversampling=0.0 +Fallbacks=null +fallbacks=[] +Compress=null compress=true -opentype_feature_overrides={} -preload/char_ranges=PackedStringArray() -preload/glyph_ranges=PackedStringArray() -preload/configurations=PackedStringArray() -support_overrides/language_enabled=PackedStringArray() -support_overrides/language_disabled=PackedStringArray() -support_overrides/script_enabled=PackedStringArray() -support_overrides/script_disabled=PackedStringArray() +preload=[] +language_support={} +script_support={} +opentype_features={} diff --git a/gui/translation/font/droid_sans.tres b/gui/translation/font/droid_sans.tres index 68f8451b2d..37e067b4b6 100644 --- a/gui/translation/font/droid_sans.tres +++ b/gui/translation/font/droid_sans.tres @@ -1,22 +1,12 @@ -[gd_resource type="Font" load_steps=7 format=2] +[gd_resource type="FontVariation" load_steps=7 format=3 uid="uid://duo4ycm3e6mrb"] -[ext_resource path="res://font/DroidSansArabic.ttf" type="FontData" id=1] -[ext_resource path="res://font/DroidSansFallback.ttf" type="FontData" id=2] -[ext_resource path="res://font/DroidSansHebrew.ttf" type="FontData" id=3] -[ext_resource path="res://font/DroidSansJapanese.ttf" type="FontData" id=4] -[ext_resource path="res://font/DroidSansThai.ttf" type="FontData" id=5] -[ext_resource path="res://font/DroidSans.ttf" type="FontData" id=6] +[ext_resource type="FontFile" uid="uid://c7ujio1oqntre" path="res://font/DroidSansArabic.ttf" id="1"] +[ext_resource type="FontFile" uid="uid://xesv5idkrqcd" path="res://font/DroidSansFallback.ttf" id="2"] +[ext_resource type="FontFile" uid="uid://cft2167j0ba27" path="res://font/DroidSansHebrew.ttf" id="3"] +[ext_resource type="FontFile" uid="uid://rdmplfeo1mfc" path="res://font/DroidSansJapanese.ttf" id="4"] +[ext_resource type="FontFile" uid="uid://ctmwkt7kh6cst" path="res://font/DroidSansThai.ttf" id="5"] +[ext_resource type="FontFile" uid="uid://33p1pmbcp0bh" path="res://font/DroidSans.ttf" id="6"] [resource] - -size = 16 -use_mipmaps = false -use_filter = false -font_data = ExtResource( 6 ) -fallback/0 = ExtResource( 1 ) -fallback/1 = ExtResource( 2 ) -fallback/2 = ExtResource( 3 ) -fallback/3 = ExtResource( 4 ) -fallback/4 = ExtResource( 5 ) -_sections_unfolded = [ "Font", "Font/fallback" ] - +fallbacks = Array[Font]([ExtResource("4"), ExtResource("5"), ExtResource("3"), ExtResource("1"), ExtResource("2")]) +base_font = ExtResource("6") diff --git a/gui/translation/hello_en.wav.import b/gui/translation/hello_en.wav.import index 93a6ae1dbd..2c9616a2f4 100644 --- a/gui/translation/hello_en.wav.import +++ b/gui/translation/hello_en.wav.import @@ -1,7 +1,7 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" uid="uid://d3e12qtu6rlb6" path="res://.godot/imported/hello_en.wav-27ed59f2d75c1ba813ab0abd069b6758.sample" diff --git a/gui/translation/hello_es.wav.import b/gui/translation/hello_es.wav.import index c66eb99c7b..5405645fcc 100644 --- a/gui/translation/hello_es.wav.import +++ b/gui/translation/hello_es.wav.import @@ -1,7 +1,7 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" uid="uid://s18obcimx61r" path="res://.godot/imported/hello_es.wav-64fe245556f8642a1881ae257bd123f2.sample" diff --git a/gui/translation/hello_jp.wav.import b/gui/translation/hello_jp.wav.import index bdec39f6ca..c18d59cafd 100644 --- a/gui/translation/hello_jp.wav.import +++ b/gui/translation/hello_jp.wav.import @@ -1,7 +1,7 @@ [remap] importer="wav" -type="AudioStreamSample" +type="AudioStreamWAV" uid="uid://7fh3dentieog" path="res://.godot/imported/hello_jp.wav-c31fbd7870b4b969789cb01f208809ac.sample" diff --git a/gui/translation/project.godot b/gui/translation/project.godot index d611f8951a..80846bdddd 100644 --- a/gui/translation/project.godot +++ b/gui/translation/project.godot @@ -42,4 +42,5 @@ translations=PackedStringArray("res://text.en.translation", "res://text.es.trans [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/gui/translation/speaker.png.import b/gui/translation/speaker.png.import index d145810edc..373efebb80 100644 --- a/gui/translation/speaker.png.import +++ b/gui/translation/speaker.png.import @@ -16,9 +16,9 @@ dest_files=["res://.godot/imported/speaker.png-045bf6684b83b55b088824f14e175d16. [params] compress/mode=0 +compress/high_quality=false compress/lossy_quality=0.7 compress/hdr_compression=1 -compress/bptc_ldr=0 compress/normal_map=0 compress/channel_pack=0 mipmaps/generate=false @@ -29,5 +29,6 @@ process/fix_alpha_border=true process/premult_alpha=false process/normal_map_invert_y=false process/hdr_as_srgb=false +process/hdr_clamp_exposure=false process/size_limit=0 detect_3d/compress_to=1 diff --git a/gui/translation/translation_demo.tscn b/gui/translation/translation_demo.tscn index e786989abb..74585e20d3 100644 --- a/gui/translation/translation_demo.tscn +++ b/gui/translation/translation_demo.tscn @@ -1,12 +1,18 @@ -[gd_scene load_steps=6 format=3 uid="uid://7bhrbgdbrped"] +[gd_scene load_steps=7 format=3 uid="uid://7bhrbgdbrped"] [ext_resource type="Script" path="res://translation_demo.gd" id="1"] -[ext_resource type="Font" path="res://font/droid_sans.tres" id="2_fnagj"] +[ext_resource type="FontVariation" uid="uid://duo4ycm3e6mrb" path="res://font/droid_sans.tres" id="2_fnagj"] [ext_resource type="Texture2D" uid="uid://bbdxdamxifokx" path="res://speaker.png" id="3"] [ext_resource type="Texture2D" uid="uid://cxbco5txqcf40" path="res://flag_uk.png" id="4"] [ext_resource type="AudioStream" uid="uid://d3e12qtu6rlb6" path="res://hello_en.wav" id="5"] +[sub_resource type="Theme" id="Theme_2nqf7"] +default_font = ExtResource("2_fnagj") +default_font_size = 0 + [node name="TranslationDemo" type="Control"] +layout_mode = 3 +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -17,9 +23,11 @@ offset_right = 512.0 offset_bottom = 300.0 size_flags_horizontal = 2 size_flags_vertical = 2 -script = ExtResource( "1" ) +theme = SubResource("Theme_2nqf7") +script = ExtResource("1") [node name="English" type="Button" parent="."] +layout_mode = 0 offset_left = 32.0 offset_top = 64.0 offset_right = 192.0 @@ -29,6 +37,7 @@ size_flags_vertical = 2 text = "Use English" [node name="Spanish" type="Button" parent="."] +layout_mode = 0 offset_left = 32.0 offset_top = 112.0 offset_right = 192.0 @@ -38,6 +47,7 @@ size_flags_vertical = 2 text = "Use Spanish" [node name="Japanese" type="Button" parent="."] +layout_mode = 0 offset_left = 32.0 offset_top = 160.0 offset_right = 192.0 @@ -47,6 +57,7 @@ size_flags_vertical = 2 text = "Use Japanese" [node name="Description" type="Label" parent="."] +layout_mode = 0 offset_left = 243.0 offset_top = 42.0 offset_right = 804.0 @@ -64,40 +75,43 @@ modified. Resources can also be set internationalized alternatives and replaced automatically on locale change." [node name="HSeparator" type="HSeparator" parent="."] +layout_mode = 0 offset_left = 33.0 offset_top = 330.0 offset_right = 1001.0 offset_bottom = 370.0 [node name="HelloText" type="Label" parent="."] +layout_mode = 0 offset_left = 246.0 offset_top = 381.0 offset_right = 324.0 offset_bottom = 400.0 size_flags_vertical = 0 -theme_override_fonts/font = ExtResource( "2_fnagj" ) text = "KEY_HELLO" [node name="PlayAudio" type="Button" parent="."] +layout_mode = 0 offset_left = 243.0 offset_top = 442.0 offset_right = 475.0 offset_bottom = 467.0 -theme_override_fonts/font = ExtResource( "2_fnagj" ) text = "KEY_PUSH" -icon = ExtResource( "3" ) +icon = ExtResource("3") [node name="Flag" type="TextureRect" parent="."] +layout_mode = 0 offset_left = 85.0 offset_top = 382.0 offset_right = 213.0 offset_bottom = 467.0 -texture = ExtResource( "4" ) +texture = ExtResource("4") [node name="Audio" type="AudioStreamPlayer" parent="."] -stream = ExtResource( "5" ) +stream = ExtResource("5") [node name="TextLabel" type="Label" parent="."] +layout_mode = 0 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -108,13 +122,8 @@ offset_right = 487.0 offset_bottom = 255.0 grow_horizontal = 2 grow_vertical = 2 -theme_override_fonts/font = ExtResource( "2_fnagj" ) text = "This text is being translated through script: " -__meta__ = { -"_edit_layout_mode": 1, -"_edit_use_custom_anchors": false -} [connection signal="pressed" from="English" to="." method="_on_english_pressed"] [connection signal="pressed" from="Spanish" to="." method="_on_spanish_pressed"] diff --git a/gui/ui_mirroring/README.md b/gui/ui_mirroring/README.md index 008c4a5052..d5bfcfa62d 100644 --- a/gui/ui_mirroring/README.md +++ b/gui/ui_mirroring/README.md @@ -4,7 +4,7 @@ A demo showing how to use UI mirroring. Language: GDScript -Renderer: Vulkan +Renderer: Compatibility ## Screenshots diff --git a/gui/ui_mirroring/fonts/noto_sans_bold.tres b/gui/ui_mirroring/fonts/noto_sans_bold.tres new file mode 100644 index 0000000000..8161f60959 --- /dev/null +++ b/gui/ui_mirroring/fonts/noto_sans_bold.tres @@ -0,0 +1,8 @@ +[gd_resource type="FontVariation" load_steps=3 format=3 uid="uid://dle4xickuiwl"] + +[ext_resource type="FontFile" uid="uid://gfhw2u2k16h" path="res://fonts/NotoSans-Bold.ttf" id="1"] +[ext_resource type="FontFile" uid="uid://cppw66bb3hcnx" path="res://fonts/NotoNaskhArabic-Bold.ttf" id="2"] + +[resource] +fallbacks = Array[Font]([ExtResource("2")]) +base_font = ExtResource("1") diff --git a/gui/ui_mirroring/noto_font.tres b/gui/ui_mirroring/noto_font.tres deleted file mode 100644 index cbceef6282..0000000000 --- a/gui/ui_mirroring/noto_font.tres +++ /dev/null @@ -1,8 +0,0 @@ -[gd_resource type="Font" load_steps=3 format=2] - -[ext_resource path="res://fonts/NotoSans-Bold.ttf" type="FontData" id=1] -[ext_resource path="res://fonts/NotoNaskhArabic-Bold.ttf" type="FontData" id=2] - -[resource] -data/0 = ExtResource( 1 ) -data/1 = ExtResource( 2 ) diff --git a/gui/ui_mirroring/project.godot b/gui/ui_mirroring/project.godot index e954870f03..5afb9ae05d 100644 --- a/gui/ui_mirroring/project.godot +++ b/gui/ui_mirroring/project.godot @@ -15,3 +15,13 @@ config/tags=PackedStringArray("demo", "gui", "internationalization", "official") run/main_scene="res://ui_mirroring.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" + +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/gui/ui_mirroring/ui_mirroring.gd b/gui/ui_mirroring/ui_mirroring.gd new file mode 100644 index 0000000000..481a9e1ae4 --- /dev/null +++ b/gui/ui_mirroring/ui_mirroring.gd @@ -0,0 +1,11 @@ +extends Control + +func _ready(): + $Label.text = TranslationServer.get_locale() + +func _on_Button_pressed(): + if TranslationServer.get_locale() != "ar": + TranslationServer.set_locale("ar") + else: + TranslationServer.set_locale("en") + $Label.text = TranslationServer.get_locale() diff --git a/gui/ui_mirroring/ui_mirroring.tscn b/gui/ui_mirroring/ui_mirroring.tscn index d84286a193..3ef3aa5188 100644 --- a/gui/ui_mirroring/ui_mirroring.tscn +++ b/gui/ui_mirroring/ui_mirroring.tscn @@ -1,347 +1,216 @@ -[gd_scene load_steps=3 format=3 uid="uid://c20r173idr1eu"] +[gd_scene load_steps=4 format=3 uid="uid://c20r173idr1eu"] -[ext_resource type="Font" path="res://noto_font.tres" id="1"] +[ext_resource type="FontVariation" uid="uid://dle4xickuiwl" path="res://fonts/noto_sans_bold.tres" id="1_anavx"] +[ext_resource type="Script" path="res://ui_mirroring.gd" id="2_ypepw"] -[sub_resource type="GDScript" id="1"] -script/source = "extends Control - -func _ready(): - $Label.text = TranslationServer.get_locale() - -func _on_Button_pressed(): - if TranslationServer.get_locale() != \"ar\": - TranslationServer.set_locale(\"ar\") - else: - TranslationServer.set_locale(\"en\") - $Label.text = TranslationServer.get_locale() -" +[sub_resource type="Theme" id="Theme_yin5r"] +default_font = ExtResource("1_anavx") [node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 -script = SubResource( "1" ) -__meta__ = { -"_edit_use_anchors_": false -} +grow_horizontal = 2 +grow_vertical = 2 +theme = SubResource("Theme_yin5r") +script = ExtResource("2_ypepw") [node name="PanelLTR" type="Panel" parent="."] self_modulate = Color(0.494118, 1, 0.737255, 1) +layout_direction = 2 +layout_mode = 0 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 35.0 offset_top = -200.0 offset_right = 275.0 offset_bottom = -50.0 -layout_direction = 2 -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="GridContainer" type="GridContainer" parent="PanelLTR"] +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 columns = 3 -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="ButtonNW" type="Button" parent="PanelLTR/GridContainer"] -offset_right = 77.0 -offset_bottom = 27.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "NorthWest" -script = null [node name="ButtonN" type="Button" parent="PanelLTR/GridContainer"] -offset_left = 81.0 -offset_right = 128.0 -offset_bottom = 27.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "North" -script = null [node name="ButtonNE" type="Button" parent="PanelLTR/GridContainer"] -offset_left = 132.0 -offset_right = 204.0 -offset_bottom = 27.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "NorthEast" -script = null [node name="ButtonW" type="Button" parent="PanelLTR/GridContainer"] -offset_top = 31.0 -offset_right = 77.0 -offset_bottom = 58.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "West" -script = null [node name="ButtonCenter" type="Button" parent="PanelLTR/GridContainer"] -offset_left = 81.0 -offset_top = 31.0 -offset_right = 128.0 -offset_bottom = 58.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "*" -script = null [node name="ButtonE" type="Button" parent="PanelLTR/GridContainer"] -offset_left = 132.0 -offset_top = 31.0 -offset_right = 204.0 -offset_bottom = 58.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "Еast" -script = null [node name="ButtonSW" type="Button" parent="PanelLTR/GridContainer"] -offset_top = 62.0 -offset_right = 77.0 -offset_bottom = 89.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "SouthWest" -script = null [node name="ButtonS" type="Button" parent="PanelLTR/GridContainer"] -offset_left = 81.0 -offset_top = 62.0 -offset_right = 128.0 -offset_bottom = 89.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "South" -script = null [node name="ButtonSE" type="Button" parent="PanelLTR/GridContainer"] -offset_left = 132.0 -offset_top = 62.0 -offset_right = 204.0 -offset_bottom = 89.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "SouthEast" -script = null [node name="PanelLocale" type="Panel" parent="PanelLTR"] self_modulate = Color(0.819608, 0.254902, 0.254902, 1) +layout_direction = 1 +layout_mode = 0 offset_left = 20.0 offset_top = 90.0 offset_right = 170.0 offset_bottom = 130.0 -layout_direction = 1 -script = null [node name="HBoxContainer" type="HBoxContainer" parent="PanelLTR/PanelLocale"] +layout_mode = 0 offset_right = 107.0 offset_bottom = 34.0005 -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="ButtonPrev" type="Button" parent="PanelLTR/PanelLocale/HBoxContainer"] -offset_right = 64.0 -offset_bottom = 34.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "Previous" -script = null [node name="ButtonNext" type="Button" parent="PanelLTR/PanelLocale/HBoxContainer"] -offset_left = 68.0 -offset_right = 109.0 -offset_bottom = 34.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "Next" -script = null [node name="PanelRTL" type="Panel" parent="."] self_modulate = Color(0.0705882, 0.235294, 1, 1) +layout_direction = 3 +layout_mode = 0 anchor_top = 1.0 anchor_bottom = 1.0 offset_left = 33.9999 offset_top = -200.0 offset_right = 284.0 offset_bottom = -50.0 -layout_direction = 3 -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="GridContainer" type="GridContainer" parent="PanelRTL"] +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 columns = 3 -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="ButtonNW" type="Button" parent="PanelRTL/GridContainer"] -offset_right = 81.0 -offset_bottom = 27.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "الشمال الشرقي" -script = null [node name="ButtonN" type="Button" parent="PanelRTL/GridContainer"] -offset_left = 85.0 -offset_right = 131.0 -offset_bottom = 27.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "الشمال" -script = null [node name="ButtonNE" type="Button" parent="PanelRTL/GridContainer"] -offset_left = 135.0 -offset_right = 214.0 -offset_bottom = 27.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "الشمال الغربي" -script = null [node name="ButtonW" type="Button" parent="PanelRTL/GridContainer"] -offset_top = 31.0 -offset_right = 81.0 -offset_bottom = 58.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "الشرق" -script = null [node name="ButtonCenter" type="Button" parent="PanelRTL/GridContainer"] -offset_left = 85.0 -offset_top = 31.0 -offset_right = 131.0 -offset_bottom = 58.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "*" -script = null [node name="ButtonE" type="Button" parent="PanelRTL/GridContainer"] -offset_left = 135.0 -offset_top = 31.0 -offset_right = 214.0 -offset_bottom = 58.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "الغرب" -script = null [node name="ButtonSW" type="Button" parent="PanelRTL/GridContainer"] -offset_top = 62.0 -offset_right = 81.0 -offset_bottom = 89.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "الجنوب الشرقي" -script = null [node name="ButtonS" type="Button" parent="PanelRTL/GridContainer"] -offset_left = 85.0 -offset_top = 62.0 -offset_right = 131.0 -offset_bottom = 89.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "الجنوب" -script = null [node name="ButtonSE" type="Button" parent="PanelRTL/GridContainer"] -offset_left = 135.0 -offset_top = 62.0 -offset_right = 214.0 -offset_bottom = 89.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = " الجنوب الغربي" -script = null [node name="ButtonSwapLocale" type="Button" parent="."] +layout_mode = 0 offset_left = 670.0 offset_top = 25.0 offset_right = 820.0 offset_bottom = 65.0 -theme_override_fonts/font = ExtResource( "1" ) theme_override_font_sizes/font_size = 12 text = "Swap locale" -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="PanelSide" type="Panel" parent="."] +layout_mode = 0 anchor_left = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 offset_left = -20.0 -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="HBoxContainer" type="HBoxContainer" parent="."] +layout_mode = 0 offset_left = 20.0 offset_top = 20.0 offset_right = 140.0 offset_bottom = 60.0 -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="ButtonBack" type="Button" parent="HBoxContainer"] -offset_right = 40.0 -offset_bottom = 40.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "Back" -script = null [node name="ButtonFwd" type="Button" parent="HBoxContainer"] -offset_left = 44.0 -offset_right = 105.0 -offset_bottom = 40.0 -theme_override_fonts/font = ExtResource( "1" ) +layout_mode = 2 theme_override_font_sizes/font_size = 12 text = "Forward" -script = null [node name="Label" type="Label" parent="."] +layout_mode = 0 offset_left = 670.0 offset_top = 70.0 offset_right = 820.0 offset_bottom = 100.0 -theme_override_fonts/font = ExtResource( "1" ) theme_override_font_sizes/font_size = 12 -align = 1 -structured_text_bidi_override_options = [] -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="LabelInfo" type="Label" parent="."] +layout_mode = 0 offset_left = 100.0 offset_top = 100.0 offset_right = 550.0 offset_bottom = 300.0 -theme_override_fonts/font = ExtResource( "1" ) theme_override_font_sizes/font_size = 12 text = "Click \"Swap Locale\" button to swap locale between \"en and \"ar\". @@ -349,33 +218,22 @@ Green tinted controls - LTR layout direction. Blue tinted controls - RTL layout direction. Red tinted controls - Layout direction from locale. Gray (default) controls - Inherited layout direction." -structured_text_bidi_override_options = [] -script = null -__meta__ = { -"_edit_use_anchors_": false -} [node name="OptionButton" type="OptionButton" parent="."] +layout_mode = 0 offset_left = 129.0 offset_top = 240.0 offset_right = 264.0 offset_bottom = 260.0 -theme_override_fonts/font = ExtResource( "1" ) theme_override_font_sizes/font_size = 12 -items = [] -script = null [node name="CheckBox" type="CheckBox" parent="."] +layout_mode = 0 offset_left = 124.0 offset_top = 265.0 offset_right = 184.0 offset_bottom = 290.0 -theme_override_fonts/font = ExtResource( "1" ) theme_override_font_sizes/font_size = 12 text = "Test" -script = null -__meta__ = { -"_edit_use_anchors_": false -} [connection signal="pressed" from="ButtonSwapLocale" to="." method="_on_Button_pressed"] diff --git a/loading/README.md b/loading/README.md index 1c3b396ff5..9c6f750086 100644 --- a/loading/README.md +++ b/loading/README.md @@ -4,4 +4,4 @@ These demos demonstrate various ways to load scenes and other data. Languages: All are GDScript -Renderers: All are Mobile +Renderers: All are Compatibility diff --git a/loading/autoload/README.md b/loading/autoload/README.md index fe5840bf6f..f1dc7dddd2 100644 --- a/loading/autoload/README.md +++ b/loading/autoload/README.md @@ -4,7 +4,7 @@ This demo shows how to use autoloads to change between scenes. Language: GDScript -Renderer: Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/529 diff --git a/loading/autoload/project.godot b/loading/autoload/project.godot index 689f8e719a..00a57ebc2d 100644 --- a/loading/autoload/project.godot +++ b/loading/autoload/project.godot @@ -30,4 +30,5 @@ window/vsync/vsync_mode=0 [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/loading/load_threaded/load_threaded.tscn b/loading/load_threaded/load_threaded.tscn index d871add33e..77b0e79faf 100644 --- a/loading/load_threaded/load_threaded.tscn +++ b/loading/load_threaded/load_threaded.tscn @@ -18,42 +18,42 @@ size_flags_vertical = 3 texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 -ignore_texture_size = true +expand_mode = 1 stretch_mode = 5 [node name="LasMeninas" type="TextureRect" parent="Paintings"] texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 -ignore_texture_size = true +expand_mode = 1 stretch_mode = 5 [node name="MonaLisa" type="TextureRect" parent="Paintings"] texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 -ignore_texture_size = true +expand_mode = 1 stretch_mode = 5 [node name="OldGuitarist" type="TextureRect" parent="Paintings"] texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 -ignore_texture_size = true +expand_mode = 1 stretch_mode = 5 [node name="Parasol" type="TextureRect" parent="Paintings"] texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 -ignore_texture_size = true +expand_mode = 1 stretch_mode = 5 [node name="Swing" type="TextureRect" parent="Paintings"] texture_filter = 4 layout_mode = 2 size_flags_horizontal = 3 -ignore_texture_size = true +expand_mode = 1 stretch_mode = 5 [node name="StartLoading" type="Button" parent="."] diff --git a/loading/load_threaded/project.godot b/loading/load_threaded/project.godot index e40b8e0079..fcbd1778a7 100644 --- a/loading/load_threaded/project.godot +++ b/loading/load_threaded/project.godot @@ -24,4 +24,5 @@ window/vsync/vsync_mode=0 [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/loading/runtime_save_load/project.godot b/loading/runtime_save_load/project.godot index a46fdd5c14..f5ea1bcd46 100644 --- a/loading/runtime_save_load/project.godot +++ b/loading/runtime_save_load/project.godot @@ -32,5 +32,6 @@ window/vsync/vsync_mode=0 [rendering] renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" lights_and_shadows/directional_shadow/size=8192 lights_and_shadows/directional_shadow/soft_shadow_filter_quality=5 diff --git a/loading/scene_changer/README.md b/loading/scene_changer/README.md index 65c9d614ee..918ff5d135 100644 --- a/loading/scene_changer/README.md +++ b/loading/scene_changer/README.md @@ -4,7 +4,7 @@ This uses two functions in SceneTree to switch between two scenes. Language: GDScript -Renderer: Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/531 diff --git a/loading/scene_changer/project.godot b/loading/scene_changer/project.godot index ef7e9af6be..a93d179bb2 100644 --- a/loading/scene_changer/project.godot +++ b/loading/scene_changer/project.godot @@ -26,4 +26,5 @@ window/vsync/vsync_mode=0 [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/loading/scene_changer/scene_a.tscn b/loading/scene_changer/scene_a.tscn index 0e075d9743..e684410034 100644 --- a/loading/scene_changer/scene_a.tscn +++ b/loading/scene_changer/scene_a.tscn @@ -13,6 +13,7 @@ size_flags_vertical = 2 script = ExtResource("1") [node name="Label" type="Label" parent="."] +layout_mode = 0 offset_left = 64.0 offset_top = 48.0 offset_right = 104.0 @@ -21,6 +22,7 @@ size_flags_vertical = 0 text = "This is scene A." [node name="GoToScene" type="Button" parent="."] +layout_mode = 0 offset_left = 64.0 offset_top = 128.0 offset_right = 277.0 diff --git a/loading/serialization/README.md b/loading/serialization/README.md index e3a1f51b7a..1d216ac570 100644 --- a/loading/serialization/README.md +++ b/loading/serialization/README.md @@ -8,8 +8,8 @@ format supported by Godot: More formats may be added in the future. -For more information, see this documentation article: -https://docs.godotengine.org/en/latest/tutorials/io/saving_games.html +For more information, see [Saving games](https://docs.godotengine.org/en/latest/tutorials/io/saving_games.html) +in the documentation. See the [Run-time File Saving and Loading](/loading/runtime_save_load/) demo for an example of loading various file types in an exported project without needing @@ -17,7 +17,7 @@ to import them. Language: GDScript -Renderer: Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/891 diff --git a/loading/serialization/project.godot b/loading/serialization/project.godot index ef609330d8..21d35f06f4 100644 --- a/loading/serialization/project.godot +++ b/loading/serialization/project.godot @@ -66,5 +66,6 @@ move_right={ [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.24, 0.322667, 0.4, 1) diff --git a/misc/2.5d/README.md b/misc/2.5d/README.md index 90b062bcd9..190418dbe0 100644 --- a/misc/2.5d/README.md +++ b/misc/2.5d/README.md @@ -6,9 +6,9 @@ in Godot by mixing 2D and 3D nodes. It also adds a Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility -Note: There is a Mono C# version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/mono/2.5d). +Note: There is a C# version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/mono/2.5d). Check out this demo on the asset library: https://godotengine.org/asset-library/asset/583 diff --git a/misc/2.5d/addons/node25d/shadow_math_25d.gd b/misc/2.5d/addons/node25d/shadow_math_25d.gd index a656b731d7..61a57d626b 100644 --- a/misc/2.5d/addons/node25d/shadow_math_25d.gd +++ b/misc/2.5d/addons/node25d/shadow_math_25d.gd @@ -20,7 +20,7 @@ func _ready(): _target_math = _shadow_root.get_parent().get_child(index - 1).get_child(0) -func _process(_delta): +func _physics_process(_delta): if _target_math == null: if _shadow_root != null: _shadow_root.visible = false diff --git a/misc/2.5d/assets/cube/cube.tscn b/misc/2.5d/assets/cube/cube.tscn index 5b76913f3c..a332ce165a 100644 --- a/misc/2.5d/assets/cube/cube.tscn +++ b/misc/2.5d/assets/cube/cube.tscn @@ -1,22 +1,17 @@ -[gd_scene load_steps=5 format=2] +[gd_scene load_steps=4 format=3 uid="uid://b6oxx8ppj53nt"] -[ext_resource path="res://addons/node25d/icons/y_sort_25d_icon.png" type="Texture2D" id=1] -[ext_resource path="res://assets/ui/overlay_cube.tscn" type="PackedScene" id=2] -[ext_resource path="res://assets/cube/cube_math.gd" type="Script" id=3] -[ext_resource path="res://addons/node25d/y_sort_25d.gd" type="Script" id=4] +[ext_resource type="PackedScene" uid="uid://c54vn5cyu7bwg" path="res://assets/ui/overlay_cube.tscn" id="2"] +[ext_resource type="Script" path="res://assets/cube/cube_math.gd" id="3"] +[ext_resource type="Script" path="res://addons/node25d/y_sort_25d.gd" id="4"] [node name="Cube" type="Node2D"] -[node name="Overlay" parent="." instance=ExtResource( 2 )] +[node name="Overlay" parent="." instance=ExtResource("2")] [node name="Camera2D" type="Camera2D" parent="."] -current = true [node name="CubeMath" type="Node3D" parent="."] -script = ExtResource( 3 ) +script = ExtResource("3") [node name="YSort25D" type="Node" parent="."] -script = ExtResource( 4 ) -__meta__ = { -"_editor_icon": ExtResource( 1 ) -} +script = ExtResource("4") diff --git a/misc/2.5d/assets/demo_scene.tscn b/misc/2.5d/assets/demo_scene.tscn index 21045f4da9..2b9a672b7d 100644 --- a/misc/2.5d/assets/demo_scene.tscn +++ b/misc/2.5d/assets/demo_scene.tscn @@ -1,13 +1,12 @@ -[gd_scene load_steps=13 format=3 uid="uid://bc8akj25hcmiy"] +[gd_scene load_steps=12 format=3 uid="uid://bc8akj25hcmiy"] [ext_resource type="PackedScene" uid="uid://6o8sm5bti8d1" path="res://assets/ui/overlay.tscn" id="1"] -[ext_resource type="PackedScene" path="res://assets/player/player_25d.tscn" id="2"] +[ext_resource type="PackedScene" uid="uid://bg27d8sfehmr4" path="res://assets/player/player_25d.tscn" id="2"] [ext_resource type="PackedScene" uid="uid://ivolxaqaaddk" path="res://assets/shadow/shadow_25d.tscn" id="3"] [ext_resource type="Script" path="res://addons/node25d/node_25d.gd" id="4"] [ext_resource type="Texture2D" uid="uid://cocwocceljq4g" path="res://assets/platform/textures/forty_five.png" id="6"] [ext_resource type="Script" path="res://assets/platform/platform_sprite.gd" id="7"] [ext_resource type="Script" path="res://addons/node25d/y_sort_25d.gd" id="8"] -[ext_resource type="Texture2D" uid="uid://4ncvr78gnj20" path="res://addons/node25d/icons/y_sort_25d_icon.png" id="9"] [ext_resource type="AudioStream" uid="uid://c2su2nuhi1rof" path="res://assets/mr_mrs_robot.ogg" id="10"] [sub_resource type="BoxShape3D" id="1"] @@ -24,17 +23,18 @@ size = Vector3(10, 1, 10) [node name="Overlay" parent="." instance=ExtResource("1")] [node name="Player25D" parent="." instance=ExtResource("2")] -position = Vector2(0, -226.274) z_index = -3952 +position = Vector2(0, -226.274) [node name="Shadow25D" parent="." instance=ExtResource("3")] visible = true -position = Vector2(0, 22401.1) z_index = -3958 +position = Vector2(0, -5.3033) +spatial_position = Vector3(0, 0.234375, 0) [node name="Platform0" type="Node2D" parent="."] -position = Vector2(-256, -113.137) z_index = -3954 +position = Vector2(-256, -113.137) script = ExtResource("4") spatial_position = Vector3(-8, 5, 0) @@ -52,8 +52,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform1" type="Node2D" parent="."] -position = Vector2(-256, -339.411) z_index = -3956 +position = Vector2(-256, -339.411) script = ExtResource("4") spatial_position = Vector3(-8, 5, -10) @@ -71,8 +71,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform2" type="Node2D" parent="."] -position = Vector2(0, 22.6274) z_index = -3962 +position = Vector2(0, 22.6274) script = ExtResource("4") spatial_position = Vector3(0, -1, 0) @@ -90,8 +90,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform3" type="Node2D" parent="."] -position = Vector2(320, 22.6274) z_index = -3960 +position = Vector2(320, 22.6274) script = ExtResource("4") spatial_position = Vector3(10, -1, 0) @@ -109,8 +109,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform4" type="Node2D" parent="."] -position = Vector2(0, -203.647) z_index = -3966 +position = Vector2(0, -203.647) script = ExtResource("4") spatial_position = Vector3(0, -1, -10) @@ -128,8 +128,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform5" type="Node2D" parent="."] -position = Vector2(320, -113.137) z_index = -3984 +position = Vector2(320, -113.137) script = ExtResource("4") spatial_position = Vector3(10, -5, -10) @@ -147,8 +147,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform6" type="Node2D" parent="."] -position = Vector2(320, 113.137) z_index = -3982 +position = Vector2(320, 113.137) script = ExtResource("4") spatial_position = Vector3(10, -5, 0) @@ -166,8 +166,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform7" type="Node2D" parent="."] -position = Vector2(320, 339.411) z_index = -3978 +position = Vector2(320, 339.411) script = ExtResource("4") spatial_position = Vector3(10, -5, 10) @@ -185,8 +185,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform20" type="Node2D" parent="."] -position = Vector2(320, 565.685) z_index = -3976 +position = Vector2(320, 565.685) script = ExtResource("4") spatial_position = Vector3(10, -5, 20) @@ -204,8 +204,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform21" type="Node2D" parent="."] -position = Vector2(320, 791.96) z_index = -3972 +position = Vector2(320, 791.96) script = ExtResource("4") spatial_position = Vector3(10, -5, 30) @@ -223,8 +223,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform22" type="Node2D" parent="."] -position = Vector2(320, 1018.23) z_index = -3970 +position = Vector2(320, 1018.23) script = ExtResource("4") spatial_position = Vector3(10, -5, 40) @@ -242,8 +242,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform9" type="Node2D" parent="."] -position = Vector2(640, 339.411) z_index = -3974 +position = Vector2(640, 339.411) script = ExtResource("4") spatial_position = Vector3(20, -5, 10) @@ -261,8 +261,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform10" type="Node2D" parent="."] -position = Vector2(896, 294.156) z_index = -3994 +position = Vector2(896, 294.156) script = ExtResource("4") spatial_position = Vector3(28, -10, 3) @@ -280,8 +280,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform11" type="Node2D" parent="."] -position = Vector2(896, 520.431) z_index = -3992 +position = Vector2(896, 520.431) script = ExtResource("4") spatial_position = Vector3(28, -10, 13) @@ -299,8 +299,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform12" type="Node2D" parent="."] -position = Vector2(896, 746.705) z_index = -3988 +position = Vector2(896, 746.705) script = ExtResource("4") spatial_position = Vector3(28, -10, 23) @@ -318,8 +318,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform13" type="Node2D" parent="."] -position = Vector2(576, 746.705) z_index = -3990 +position = Vector2(576, 746.705) script = ExtResource("4") spatial_position = Vector3(18, -10, 23) @@ -337,8 +337,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform14" type="Node2D" parent="."] -position = Vector2(256, 746.705) z_index = -3996 +position = Vector2(256, 746.705) script = ExtResource("4") spatial_position = Vector3(8, -10, 23) @@ -356,8 +356,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform15" type="Node2D" parent="."] -position = Vector2(-64, 746.705) z_index = -3998 +position = Vector2(-64, 746.705) script = ExtResource("4") spatial_position = Vector3(-2, -10, 23) @@ -375,8 +375,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform23" type="Node2D" parent="."] -position = Vector2(-384, 746.705) z_index = -4000 +position = Vector2(-384, 746.705) script = ExtResource("4") spatial_position = Vector3(-12, -10, 23) @@ -394,8 +394,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform16" type="Node2D" parent="."] -position = Vector2(-320, 565.685) z_index = -3980 +position = Vector2(-320, 565.685) script = ExtResource("4") spatial_position = Vector3(-10, -5, 20) @@ -413,8 +413,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform19" type="Node2D" parent="."] -position = Vector2(-320, 339.411) z_index = -3986 +position = Vector2(-320, 339.411) script = ExtResource("4") spatial_position = Vector3(-10, -5, 10) @@ -432,8 +432,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform17" type="Node2D" parent="."] -position = Vector2(-480, 248.902) z_index = -3964 +position = Vector2(-480, 248.902) script = ExtResource("4") spatial_position = Vector3(-15, -1, 10) @@ -451,8 +451,8 @@ texture = ExtResource("6") script = ExtResource("7") [node name="Platform18" type="Node2D" parent="."] -position = Vector2(-480, 22.6274) z_index = -3968 +position = Vector2(-480, 22.6274) script = ExtResource("4") spatial_position = Vector3(-15, -1, 0) @@ -471,9 +471,6 @@ script = ExtResource("7") [node name="YSort25D" type="Node" parent="."] script = ExtResource("8") -__meta__ = { -"_editor_icon": ExtResource("9") -} [node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."] stream = ExtResource("10") diff --git a/misc/2.5d/assets/player/player_25d.tscn b/misc/2.5d/assets/player/player_25d.tscn index 17b9c6b631..e8281d7d10 100644 --- a/misc/2.5d/assets/player/player_25d.tscn +++ b/misc/2.5d/assets/player/player_25d.tscn @@ -1,41 +1,33 @@ -[gd_scene load_steps=7 format=2] +[gd_scene load_steps=6 format=3 uid="uid://bg27d8sfehmr4"] -[ext_resource path="res://addons/node25d/node_25d.gd" type="Script" id=1] -[ext_resource path="res://addons/node25d/icons/node_25d_icon.png" type="Texture2D" id=2] -[ext_resource path="res://assets/player/player_math_25d.gd" type="Script" id=3] -[ext_resource path="res://assets/player/textures/jump.png" type="Texture2D" id=4] -[ext_resource path="res://assets/player/player_sprite.gd" type="Script" id=5] +[ext_resource type="Script" path="res://addons/node25d/node_25d.gd" id="1"] +[ext_resource type="Script" path="res://assets/player/player_math_25d.gd" id="3"] +[ext_resource type="Texture2D" uid="uid://bfdfertqyhf1u" path="res://assets/player/textures/jump.png" id="4"] +[ext_resource type="Script" path="res://assets/player/player_sprite.gd" id="5"] -[sub_resource type="BoxShape3D" id=1] -extents = Vector3(0.5, 1, 0.5) +[sub_resource type="BoxShape3D" id="1"] +size = Vector3(1, 2, 1) [node name="Player25D" type="Node2D"] -position = Vector2(0, -226.274) z_index = 100 -script = ExtResource( 1 ) -__meta__ = { -"_editor_icon": ExtResource( 2 ) -} -spatial_position = Vector3(0, 10, 0) +position = Vector2(0, -11.3137) +script = ExtResource("1") +spatial_position = Vector3(0, 0.5, 0) [node name="PlayerMath25D" type="CharacterBody3D" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0) -script = ExtResource( 3 ) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.5, 0) +script = ExtResource("3") [node name="CollisionShape3D" type="CollisionShape3D" parent="PlayerMath25D"] -shape = SubResource( 1 ) -__meta__ = { -"_edit_lock_": true -} +shape = SubResource("1") [node name="PlayerSprite" type="Sprite2D" parent="."] -scale = Vector2(1, 0.75) z_index = 1 -texture = ExtResource( 4 ) +scale = Vector2(1, 0.75) +texture = ExtResource("4") offset = Vector2(0, 4) hframes = 2 vframes = 5 -script = ExtResource( 5 ) +script = ExtResource("5") [node name="PlayerCamera" type="Camera2D" parent="PlayerSprite"] -current = true diff --git a/misc/2.5d/assets/player/player_math_25d.gd b/misc/2.5d/assets/player/player_math_25d.gd index 30e68bfd86..ea4d8c93bf 100644 --- a/misc/2.5d/assets/player/player_math_25d.gd +++ b/misc/2.5d/assets/player/player_math_25d.gd @@ -6,7 +6,7 @@ var vertical_speed := 0.0 var isometric_controls := true @onready var _parent_node25d: Node25D = get_parent() -func _process(delta): +func _physics_process(delta): if Input.is_action_pressed(&"exit"): get_tree().quit() @@ -16,8 +16,9 @@ func _process(delta): if Input.is_action_just_pressed(&"toggle_isometric_controls"): isometric_controls = not isometric_controls - if Input.is_action_just_pressed(&"reset_position"): - transform = Transform3D(Basis(), Vector3.UP * 10) + if Input.is_action_just_pressed(&"reset_position") or position.y <= -100: + # Reset player position if the player fell down into the void. + transform = Transform3D(Basis(), Vector3.UP * 0.5) vertical_speed = 0 else: _horizontal_movement(delta) @@ -37,7 +38,7 @@ func _horizontal_movement(delta): var movement_vec2 = Input.get_vector(&"move_left", &"move_right", &"move_forward", &"move_back") var move_dir = localX * movement_vec2.x + localZ * movement_vec2.y - velocity = move_dir * delta * 600 + velocity = move_dir * delta * 1200 if Input.is_action_pressed(&"movement_modifier"): velocity /= 2 @@ -48,8 +49,8 @@ func _horizontal_movement(delta): func _vertical_movement(delta): var localY = Vector3.UP if Input.is_action_just_pressed(&"jump"): - vertical_speed = 1.25 - vertical_speed -= delta * 5 # Gravity + vertical_speed = 0.55 + vertical_speed -= delta * 2 # Gravity var k = move_and_collide(localY * vertical_speed) if k != null: vertical_speed = 0 diff --git a/misc/2.5d/assets/ui/control_hints.gd b/misc/2.5d/assets/ui/control_hints.gd index 3b71403e6c..33579030c8 100644 --- a/misc/2.5d/assets/ui/control_hints.gd +++ b/misc/2.5d/assets/ui/control_hints.gd @@ -1,5 +1,5 @@ extends Control -func _process(_delta): - if Input.is_action_just_pressed(&"toggle_control_hints"): +func _input(event: InputEvent) -> void: + if event.is_action_pressed(&"toggle_control_hints"): visible = not visible diff --git a/misc/2.5d/assets/ui/overlay.tscn b/misc/2.5d/assets/ui/overlay.tscn index 41c1fd5366..4fdd9918b2 100644 --- a/misc/2.5d/assets/ui/overlay.tscn +++ b/misc/2.5d/assets/ui/overlay.tscn @@ -11,10 +11,9 @@ offset_bottom = 200.0 script = ExtResource("1") [node name="Label" type="Label" parent="ControlHints"] -offset_left = 262.0 -offset_top = 9.0 -offset_right = 1337.0 -offset_bottom = 191.0 +layout_mode = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 4 text = "Controls: WASD to move, Space to jump, R to reset, Shift to walk, T to toggle isometric controls, C to view cube demo, Tab to toggle hints. UIOJKL to change view mode. U = Forty Five deg, I = Isometric, diff --git a/misc/2.5d/assets/ui/overlay_cube.tscn b/misc/2.5d/assets/ui/overlay_cube.tscn index f042863c96..7b13943350 100644 --- a/misc/2.5d/assets/ui/overlay_cube.tscn +++ b/misc/2.5d/assets/ui/overlay_cube.tscn @@ -1,20 +1,19 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://c54vn5cyu7bwg"] -[ext_resource path="res://assets/ui/control_hints.gd" type="Script" id=1] +[ext_resource type="Script" path="res://assets/ui/control_hints.gd" id="1"] [node name="Overlay" type="CanvasLayer"] [node name="ControlHints" type="CenterContainer" parent="."] +anchors_preset = 10 anchor_right = 1.0 offset_bottom = 200.0 -script = ExtResource( 1 ) +script = ExtResource("1") [node name="Label" type="Label" parent="ControlHints"] -offset_left = 416.0 -offset_top = 25.0 -offset_right = 1183.0 -offset_bottom = 175.0 -rect_min_size = Vector2(500, 50) +layout_mode = 2 +theme_override_colors/font_outline_color = Color(0, 0, 0, 1) +theme_override_constants/outline_size = 4 text = " Controls: WASDQE to rotate, R to reset, C to return to the world, Tab to toggle hints. @@ -24,5 +23,3 @@ O = Top Down, K = Oblique Y, L = Oblique Z Not every view mode is meant to be good, it's just to showcase what the system can do. In actual games, shadows, resizing, parallax, and other hints of depth could be added to make the world seem more 3D. " -align = 1 -valign = 1 diff --git a/misc/2.5d/project.godot b/misc/2.5d/project.godot index f436c0efbc..7e638e3c86 100644 --- a/misc/2.5d/project.godot +++ b/misc/2.5d/project.godot @@ -33,119 +33,119 @@ enabled=PackedStringArray("res://addons/node25d/plugin.cfg") [input] move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } movement_modifier={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194325,"key_label":0,"unicode":0,"echo":false,"script":null) ] } jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } reset_position={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } forty_five_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":85,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } isometric_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":73,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } top_down_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":79,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } front_side_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":74,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } oblique_y_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":75,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":4,"pressure":0.0,"pressed":false,"script":null) ] } oblique_z_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":5,"pressure":0.0,"pressed":false,"script":null) ] } toggle_isometric_controls={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":84,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":8,"pressure":0.0,"pressed":false,"script":null) ] } toggle_control_hints={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194306,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":10,"pressure":0.0,"pressed":false,"script":null) ] } move_clockwise={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":69,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } move_counterclockwise={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":81,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } view_cube_demo={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194305,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -153,12 +153,11 @@ exit={ [physics] -3d/physics_engine="Bullet" +common/physics_ticks_per_second=120 [rendering] textures/canvas_textures/default_texture_filter=0 +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.0823529, 0.109804, 0.219608, 1) -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false diff --git a/misc/README.md b/misc/README.md index f3982f0a1d..311064f7d0 100644 --- a/misc/README.md +++ b/misc/README.md @@ -3,8 +3,8 @@ These demos don't fit into any other category, so they go into this folder. Languages: All have GDScript, OpenSimplexNoise has -[GDSL](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html), +[Godot shader language](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html), OS test has some [C#](https://docs.godotengine.org/en/latest/tutorials/scripting/c_sharp/index.html) -Renderers: All are GLES 2 +Renderers: All are Compatibility diff --git a/misc/compute_shader_heightmap/README.md b/misc/compute_shader_heightmap/README.md index 4f2c587e9b..5dbe6bc238 100644 --- a/misc/compute_shader_heightmap/README.md +++ b/misc/compute_shader_heightmap/README.md @@ -29,6 +29,6 @@ heightmap. Languages: GDScript, GLSL -Renderer: Forward Mobile +Renderer: Mobile ![Compute Shader Heightmap](screenshots/compute_shader_heightmap.webp) diff --git a/misc/compute_shader_heightmap/main.gd b/misc/compute_shader_heightmap/main.gd index 57f5128812..69bf1fc8c1 100644 --- a/misc/compute_shader_heightmap/main.gd +++ b/misc/compute_shader_heightmap/main.gd @@ -90,7 +90,7 @@ func init_gpu() -> void: if rd == null: OS.alert("""Couldn't create local RenderingDevice on GPU: %s -Note: RenderingDevice is only available in the Forward Plus and Forward Mobile backends, not Compatibility.""" % RenderingServer.get_video_adapter_name()) +Note: RenderingDevice is only available in the Forward+ and Mobile rendering methods, not Compatibility.""" % RenderingServer.get_video_adapter_name()) return # Prepare the shader. diff --git a/misc/large_world_coordinates/README.md b/misc/large_world_coordinates/README.md index fcb74d44d6..b911706d1f 100644 --- a/misc/large_world_coordinates/README.md +++ b/misc/large_world_coordinates/README.md @@ -20,7 +20,7 @@ for more information. Languages: GDScript -Renderer: Forward Mobile +Renderer: Mobile ## Screenshots diff --git a/misc/matrix_transform/README.md b/misc/matrix_transform/README.md index 593d74476e..ae48ef576d 100644 --- a/misc/matrix_transform/README.md +++ b/misc/matrix_transform/README.md @@ -8,7 +8,7 @@ For more information, see the [Matrices and Transforms](https://docs.godotengine Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/584 diff --git a/misc/matrix_transform/project.godot b/misc/matrix_transform/project.godot index 72a94182b6..b948453968 100644 --- a/misc/matrix_transform/project.godot +++ b/misc/matrix_transform/project.godot @@ -23,8 +23,6 @@ config/icon="res://icon.webp" [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" anti_aliasing/quality/msaa_3d=2 -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_environment="res://default_env.tres" diff --git a/misc/noise_viewer/README.md b/misc/noise_viewer/README.md index db350e38af..0f934bb046 100644 --- a/misc/noise_viewer/README.md +++ b/misc/noise_viewer/README.md @@ -5,7 +5,7 @@ a FastNoiseLite texture. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/533 diff --git a/misc/noise_viewer/noise_viewer.tscn b/misc/noise_viewer/noise_viewer.tscn index 73953a4e5a..ac92ae9ade 100644 --- a/misc/noise_viewer/noise_viewer.tscn +++ b/misc/noise_viewer/noise_viewer.tscn @@ -1,7 +1,7 @@ [gd_scene load_steps=5 format=3 uid="uid://835hb2c3ckoi"] [ext_resource type="Script" path="res://noise_viewer.gd" id="1_a6h72"] -[ext_resource type="Material" path="res://noise_viewer_material.tres" id="2_lywnk"] +[ext_resource type="Material" uid="uid://dnxbb2gtigc6b" path="res://noise_viewer_material.tres" id="2_lywnk"] [sub_resource type="FastNoiseLite" id="1"] @@ -48,17 +48,10 @@ grow_horizontal = 0 [node name="DocumentationButton" type="Button" parent="ButtonsContainer"] layout_mode = 2 -offset_right = 159.0 -offset_bottom = 31.0 -grow_horizontal = 0 text = "API Documentation" [node name="RandomSeedButton" type="Button" parent="ButtonsContainer"] layout_mode = 2 -offset_top = 35.0 -offset_right = 159.0 -offset_bottom = 66.0 -grow_horizontal = 0 text = "Random Seed" [node name="ParameterContainer" type="VBoxContainer" parent="."] @@ -68,8 +61,6 @@ offset_bottom = 136.0 [node name="SeedSpinBox" type="SpinBox" parent="ParameterContainer"] layout_mode = 2 -offset_right = 280.0 -offset_bottom = 31.0 min_value = -2.14748e+09 max_value = 2.14748e+09 allow_greater = true @@ -78,9 +69,6 @@ prefix = "Seed:" [node name="FrequencySpinBox" type="SpinBox" parent="ParameterContainer"] layout_mode = 2 -offset_top = 35.0 -offset_right = 280.0 -offset_bottom = 66.0 min_value = -100000.0 max_value = 100000.0 step = 0.005 @@ -90,9 +78,6 @@ prefix = "Frequency:" [node name="FractalOctavesSpinBox" type="SpinBox" parent="ParameterContainer"] layout_mode = 2 -offset_top = 70.0 -offset_right = 280.0 -offset_bottom = 101.0 min_value = 1.0 max_value = 9.0 value = 1.0 @@ -100,9 +85,6 @@ prefix = "Fractal Octaves:" [node name="FractalGainSpinBox" type="SpinBox" parent="ParameterContainer"] layout_mode = 2 -offset_top = 105.0 -offset_right = 280.0 -offset_bottom = 136.0 max_value = 1000.0 step = 0.05 allow_greater = true @@ -110,9 +92,6 @@ prefix = "Fractal Gain:" [node name="FractalLacunaritySpinBox" type="SpinBox" parent="ParameterContainer"] layout_mode = 2 -offset_top = 140.0 -offset_right = 280.0 -offset_bottom = 171.0 step = 0.05 allow_greater = true prefix = "Fractal Lacunarity:" @@ -128,8 +107,6 @@ grow_vertical = 0 [node name="MinClipSpinBox" type="SpinBox" parent="ClipContainer"] layout_mode = 2 -offset_right = 280.0 -offset_bottom = 31.0 min_value = -1.0 max_value = 1.0 step = 0.01 @@ -138,9 +115,6 @@ prefix = "Clip Min:" [node name="MaxClipSpinBox" type="SpinBox" parent="ClipContainer"] layout_mode = 2 -offset_top = 35.0 -offset_right = 280.0 -offset_bottom = 66.0 min_value = -1.0 max_value = 1.0 step = 0.01 diff --git a/misc/noise_viewer/noise_viewer_material.tres b/misc/noise_viewer/noise_viewer_material.tres index e9b2af0b90..043ee61ea7 100644 --- a/misc/noise_viewer/noise_viewer_material.tres +++ b/misc/noise_viewer/noise_viewer_material.tres @@ -1,8 +1,8 @@ -[gd_resource type="ShaderMaterial" load_steps=2 format=3] +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://dnxbb2gtigc6b"] [ext_resource type="Shader" path="res://noise_viewer.gdshader" id="1"] [resource] -shader = ExtResource( 1 ) -shader_param/min_value = -1.0 -shader_param/max_value = 1.0 +shader = ExtResource("1") +shader_parameter/min_value = -1.0 +shader_parameter/max_value = 1.0 diff --git a/misc/noise_viewer/project.godot b/misc/noise_viewer/project.godot index a0c1cf4146..b6b075a365 100644 --- a/misc/noise_viewer/project.godot +++ b/misc/noise_viewer/project.godot @@ -22,10 +22,8 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/vsync/vsync_mode=0 [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/misc/os_test/README.md b/misc/os_test/README.md index 6c4c0d9af6..2df9b1bdd2 100644 --- a/misc/os_test/README.md +++ b/misc/os_test/README.md @@ -8,9 +8,9 @@ In a nutshell, this demo shows how you can get information from the operating system, or interact with the operating system. Language: GDScript and some [C#](https://docs.godotengine.org/en/latest/tutorials/scripting/c_sharp/index.html) -(Mono is NOT required to run this demo) +(a .NET build is **not** required to run this demo) -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/677 diff --git a/misc/os_test/actions.gd b/misc/os_test/actions.gd index 9ec6ec0d8e..17f56686bb 100644 --- a/misc/os_test/actions.gd +++ b/misc/os_test/actions.gd @@ -61,7 +61,7 @@ func _on_AddGlobalMenuItems_pressed(): func(tag): print("Clicked main 1 " + str(tag)), func(tag): print("Key main 1 " + str(tag)), null, - KEY_MASK_META + KEY_1 + (KEY_MASK_META | KEY_1) as Key ) DisplayServer.global_menu_add_separator("_main/Hello") DisplayServer.global_menu_add_item("_main/Hello", "World2", func(tag): print("Clicked main 2 " + str(tag))) diff --git a/misc/os_test/project.godot b/misc/os_test/project.godot index 18b03a702d..3926620344 100644 --- a/misc/os_test/project.godot +++ b/misc/os_test/project.godot @@ -27,10 +27,8 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" -window/vsync/vsync_mode=0 [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/misc/pause/README.md b/misc/pause/README.md index 93a293227e..8571af40b8 100644 --- a/misc/pause/README.md +++ b/misc/pause/README.md @@ -4,7 +4,7 @@ A demo showing how a game made in Godot can be paused. Language: GDScript -Renderer: Vulkan Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/147 diff --git a/misc/pause/project.godot b/misc/pause/project.godot index f241f1734c..97aeb68ff6 100644 --- a/misc/pause/project.godot +++ b/misc/pause/project.godot @@ -19,12 +19,22 @@ config/icon="res://icon.webp" [display] -window/stretch/mode="viewport" +window/stretch/mode="canvas_items" window/stretch/aspect="expand" +[input] + +toggle_pause={ +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":80,"physical_keycode":0,"key_label":0,"unicode":112,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194313,"key_label":0,"unicode":0,"echo":false,"script":null) +] +} + [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.133333, 0.133333, 0.133333, 1) anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true diff --git a/misc/pause/spinpause.tscn b/misc/pause/spinpause.tscn index 93975ffaeb..f5f055460f 100644 --- a/misc/pause/spinpause.tscn +++ b/misc/pause/spinpause.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=6 format=3 uid="uid://cwa8rglnrg4yb"] +[gd_scene load_steps=8 format=3 uid="uid://cwa8rglnrg4yb"] [ext_resource type="Script" path="res://pause_button.gd" id="1"] [ext_resource type="Script" path="res://process_mode.gd" id="2_0dpmq"] @@ -27,6 +27,12 @@ _data = { "spin": SubResource("2") } +[sub_resource type="InputEventAction" id="InputEventAction_6y126"] +action = &"toggle_pause" + +[sub_resource type="Shortcut" id="Shortcut_mmc83"] +events = [SubResource("InputEventAction_6y126")] + [node name="PauseScene" type="Node3D"] [node name="Cube" type="MeshInstance3D" parent="."] @@ -38,10 +44,10 @@ fov = 74.0 near = 0.1 [node name="AnimationPlayer" type="AnimationPlayer" parent="."] -autoplay = "spin" libraries = { "": SubResource("AnimationLibrary_5vmwp") } +autoplay = "spin" [node name="SpotLight3D" type="SpotLight3D" parent="."] transform = Transform3D(0.707107, -0.353554, 0.612373, 0, 0.866026, 0.5, -0.707107, -0.353554, 0.612373, 2, 2, 2) @@ -61,6 +67,7 @@ offset_bottom = 200.0 grow_horizontal = 2 grow_vertical = 2 toggle_mode = true +shortcut = SubResource("Shortcut_mmc83") text = "Pause" script = ExtResource("1") @@ -80,16 +87,11 @@ theme_override_constants/separation = 12 [node name="Label" type="Label" parent="ProcessMode"] layout_mode = 2 -offset_top = 7.0 -offset_right = 151.0 -offset_bottom = 33.0 text = "Cube Process Mode" [node name="OptionButton" type="OptionButton" parent="ProcessMode"] +process_mode = 3 layout_mode = 2 -offset_left = 163.0 -offset_right = 334.0 -offset_bottom = 40.0 item_count = 5 selected = 0 popup/item_0/text = "Inherit" diff --git a/misc/window_management/README.md b/misc/window_management/README.md index 83defddad4..1501ea6189 100644 --- a/misc/window_management/README.md +++ b/misc/window_management/README.md @@ -13,7 +13,7 @@ A demo showing the various window management features available through Language: GDScript -Renderer: Forward Mobile +Renderer: Compatbility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/145 diff --git a/misc/window_management/project.godot b/misc/window_management/project.godot index fb1e8907d9..83f4e919e9 100644 --- a/misc/window_management/project.godot +++ b/misc/window_management/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="Window Management" -config/description="A demo showing the various window management features available through OS." +config/description="A demo showing the various window management features available through DisplayServer." config/tags=PackedStringArray("demo", "official", "porting") run/main_scene="res://window_management.tscn" config/features=PackedStringArray("4.2") @@ -30,50 +30,50 @@ window/resizable=true [input] mouse_mode_visible={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194332,"key_label":0,"unicode":0,"echo":false,"script":null) ] } mouse_mode_hidden={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194333,"key_label":0,"unicode":0,"echo":false,"script":null) ] } mouse_mode_captured={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194334,"key_label":0,"unicode":0,"echo":false,"script":null) ] } mouse_mode_confined={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194335,"key_label":0,"unicode":0,"echo":false,"script":null) ] } mouse_mode_confined_hidden={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194336,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_backwards={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) ] @@ -81,6 +81,7 @@ move_right={ [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" textures/default_filters/anisotropic_filtering_level=4 anti_aliasing/quality/msaa_3d=2 diff --git a/mobile/README.md b/mobile/README.md index 7ee62066e4..9ca2d71323 100644 --- a/mobile/README.md +++ b/mobile/README.md @@ -6,4 +6,4 @@ The Android IAP demo only runs on Android. Languages: All are GDScript -Renderers: All are GLES 2 +Renderers: All are Compatibility diff --git a/mobile/android_iap/README.md b/mobile/android_iap/README.md index db584b5254..1f56d4bd13 100644 --- a/mobile/android_iap/README.md +++ b/mobile/android_iap/README.md @@ -6,7 +6,7 @@ Note: Running the demo requires exporting and uploading the game to Google Play. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Note: There is a C# version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/mono/android_iap). diff --git a/mobile/android_iap/iap_demo.gd b/mobile/android_iap/iap_demo.gd index 782b1c143e..14875da17f 100644 --- a/mobile/android_iap/iap_demo.gd +++ b/mobile/android_iap/iap_demo.gd @@ -39,13 +39,15 @@ func _ready(): payment.query_purchases_response.connect(_on_query_purchases_response) payment.startConnection() else: - show_alert("Android IAP support is not enabled. Make sure you have enabled 'Custom Build' and installed and enabled the GodotGooglePlayBilling plugin in your Android export settings! This application will not work.") + show_alert('Android IAP support is not enabled.\n\nMake sure you have enabled "Custom Build" and installed and enabled the GodotGooglePlayBilling plugin in your Android export settings!\nThis application will not work otherwise.') func show_alert(text): alert_dialog.dialog_text = text - alert_dialog.popup_centered() - + alert_dialog.popup_centered_clamped(Vector2i(600, 0)) + $QuerySkuDetailsButton.disabled = true + $PurchaseButton.disabled = true + $ConsumeButton.disabled = true func _on_connected(): print("PurchaseManager connected") @@ -92,6 +94,10 @@ func _on_purchase_consumed(purchase_token): show_alert("Purchase consumed successfully: %s" % purchase_token) +func _on_connect_error(code, message): + show_alert("Connect error %d: %s" % [code, message]) + + func _on_purchase_error(code, message): show_alert("Purchase error %d: %s" % [code, message]) diff --git a/mobile/android_iap/main.tscn b/mobile/android_iap/main.tscn index 39c8c682d7..c1691df179 100644 --- a/mobile/android_iap/main.tscn +++ b/mobile/android_iap/main.tscn @@ -1,8 +1,10 @@ -[gd_scene load_steps=2 format=2] +[gd_scene load_steps=2 format=3 uid="uid://ba8dxewtq7kxv"] -[ext_resource path="res://iap_demo.gd" type="Script" id=1] +[ext_resource type="Script" path="res://iap_demo.gd" id="1"] [node name="Control" type="Control"] +layout_mode = 3 +anchors_preset = 8 anchor_left = 0.5 anchor_top = 0.5 anchor_right = 0.5 @@ -11,73 +13,57 @@ offset_left = -512.711 offset_top = -300.0 offset_right = 511.289 offset_bottom = 300.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 -script = ExtResource( 1 ) -__meta__ = { -"_edit_use_anchors_": false -} +script = ExtResource("1") [node name="AlertDialog" type="AcceptDialog" parent="."] -anchor_left = 0.5 -anchor_top = 0.5 -anchor_right = 0.5 -anchor_bottom = 0.5 -offset_left = 64.0 -offset_top = 64.0 -offset_right = -64.0 -offset_bottom = -64.0 -grow_horizontal = 2 -grow_vertical = 2 -rect_min_size = Vector2(400, 0) -size_flags_vertical = 4 -popup_exclusive = true dialog_autowrap = true [node name="Label" type="Label" parent="."] +layout_mode = 0 offset_left = 300.0 offset_top = 40.0 offset_right = 996.0 offset_bottom = 156.0 size_flags_horizontal = 2 size_flags_vertical = 0 -text = "To test in-app purchase on android device, +text = "To test in-app purchase on an Android device: + +1. Make sure you have enabled \"Custom Build\" and the GodotPayment plugin in your Android export settings. + +2. Export APK and upload it as alpha or beta stage to Google Play Developer Console and publish it. (It's not published to public, but you and other testers can access it.) + +3. There should be an activate in-app item. Copy its SKU into the TEST_ITEM_SKU constant in iap_demo.gd. -1. Make sure you have enabled \"Custom Build\" and the GodotPayment plugin in your Android export settings -2. Export APK and upload it as alpha or beta stage to Google Play Developer Console and publish it. - (It's not published to public, but you and other testers can access it.) -3. There should be an activate in-app item. Copy its SKU into the TEST_ITEM_SKU constant in iap_demo.gd -4. Changes you make in the Play Console may take some time before taking effect" +4. Changes you make in the Play Console may take some time before taking effect." +autowrap_mode = 2 [node name="QuerySkuDetailsButton" type="Button" parent="."] +layout_mode = 0 offset_left = 40.5697 offset_top = 39.9347 offset_right = 221.57 offset_bottom = 91.9347 text = "Query SKU details" -__meta__ = { -"_edit_use_anchors_": false -} [node name="PurchaseButton" type="Button" parent="."] +layout_mode = 0 offset_left = 40.5697 -offset_top = 101.203 +offset_top = 109.203 offset_right = 221.57 -offset_bottom = 153.203 +offset_bottom = 161.203 text = "Purchase" -__meta__ = { -"_edit_use_anchors_": false -} [node name="ConsumeButton" type="Button" parent="."] +layout_mode = 0 offset_left = 40.5697 -offset_top = 162.142 +offset_top = 178.142 offset_right = 221.57 -offset_bottom = 214.142 +offset_bottom = 230.142 text = "Consume" -__meta__ = { -"_edit_use_anchors_": false -} [connection signal="pressed" from="QuerySkuDetailsButton" to="." method="_on_QuerySkuDetailsButton_pressed"] [connection signal="pressed" from="PurchaseButton" to="." method="_on_PurchaseButton_pressed"] diff --git a/mobile/android_iap/project.godot b/mobile/android_iap/project.godot index 993dbba825..f6497a58ed 100644 --- a/mobile/android_iap/project.godot +++ b/mobile/android_iap/project.godot @@ -27,3 +27,8 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/mobile/multitouch_cubes/CubeScene.tscn b/mobile/multitouch_cubes/CubeScene.tscn index 93521e29f5..f25a78dad8 100644 --- a/mobile/multitouch_cubes/CubeScene.tscn +++ b/mobile/multitouch_cubes/CubeScene.tscn @@ -1,7 +1,5 @@ [gd_scene load_steps=4 format=3 uid="uid://csyb8ij530w1l"] -[ext_resource type="Environment" uid="uid://cpe7fpfvhiapa" path="res://default_env.tres" id="1"] - [sub_resource type="StandardMaterial3D" id="1"] diffuse_mode = 1 albedo_color = Color(0.149414, 0.796875, 0.569252, 1) @@ -9,6 +7,10 @@ roughness = 0.0 [sub_resource type="BoxMesh" id="2"] +[sub_resource type="Environment" id="Environment_wokxq"] +ambient_light_source = 2 +ambient_light_color = Color(0.305882, 0.360784, 0.537255, 1) + [node name="Node3D" type="Node3D"] [node name="MeshInstance3D" type="MeshInstance3D" parent="."] @@ -25,4 +27,4 @@ fov = 60.0 near = 0.1 [node name="WorldEnvironment" type="WorldEnvironment" parent="."] -environment = ExtResource("1") +environment = SubResource("Environment_wokxq") diff --git a/mobile/multitouch_cubes/Main.tscn b/mobile/multitouch_cubes/Main.tscn index 46f14d6b5a..c968bbcae6 100644 --- a/mobile/multitouch_cubes/Main.tscn +++ b/mobile/multitouch_cubes/Main.tscn @@ -28,8 +28,8 @@ two_fingers_zoom = false [node name="SubViewport" type="SubViewport" parent="HBoxContainer/SubViewportContainer"] own_world_3d = true -transparent_bg = true handle_input_locally = false +msaa_3d = 2 size = Vector2i(574, 322) render_target_update_mode = 4 @@ -54,8 +54,8 @@ two_fingers_zoom = false [node name="SubViewport" type="SubViewport" parent="HBoxContainer/ViewportContainer2"] own_world_3d = true -transparent_bg = true handle_input_locally = false +msaa_3d = 2 size = Vector2i(574, 322) render_target_update_mode = 4 @@ -84,8 +84,8 @@ two_fingers_zoom = false [node name="SubViewport" type="SubViewport" parent="HBoxContainer2/SubViewportContainer"] own_world_3d = true -transparent_bg = true handle_input_locally = false +msaa_3d = 2 size = Vector2i(574, 322) render_target_update_mode = 4 @@ -108,8 +108,8 @@ target = NodePath("SubViewport/Node3D/MeshInstance3D") [node name="SubViewport" type="SubViewport" parent="HBoxContainer2/ViewportContainer2"] own_world_3d = true -transparent_bg = true handle_input_locally = false +msaa_3d = 2 size = Vector2i(574, 322) render_target_update_mode = 4 diff --git a/mobile/multitouch_cubes/README.md b/mobile/multitouch_cubes/README.md index f0e1b038e1..f9e8c6e7d5 100644 --- a/mobile/multitouch_cubes/README.md +++ b/mobile/multitouch_cubes/README.md @@ -4,7 +4,7 @@ Demo of multitouch input and different gestures using the touch API. This demo i Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/141 diff --git a/mobile/multitouch_cubes/default_env.tres b/mobile/multitouch_cubes/default_env.tres deleted file mode 100644 index 1208b229b4..0000000000 --- a/mobile/multitouch_cubes/default_env.tres +++ /dev/null @@ -1,4 +0,0 @@ -[gd_resource type="Environment" format=3 uid="uid://cpe7fpfvhiapa"] - -[resource] -ambient_light_color = Color(0.307434, 0.362682, 0.539063, 1) diff --git a/mobile/multitouch_cubes/project.godot b/mobile/multitouch_cubes/project.godot index 4c78483abc..3c83bca36d 100644 --- a/mobile/multitouch_cubes/project.godot +++ b/mobile/multitouch_cubes/project.godot @@ -17,12 +17,18 @@ run/main_scene="res://Main.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + [input_devices] pointing/emulate_touch_from_mouse=true [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" textures/vram_compression/import_etc2_astc=true environment/defaults/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1) -environment/defaults/default_environment="res://default_env.tres" diff --git a/mobile/multitouch_view/README.md b/mobile/multitouch_view/README.md index b195902792..16c5f02df2 100644 --- a/mobile/multitouch_view/README.md +++ b/mobile/multitouch_view/README.md @@ -4,9 +4,7 @@ Simple debugger for multitouch input. Shows colored dots everywhere you press. Language: GDScript -Renderer: GLES 2 - -Note: There is a VisualScript version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/visual_script/multitouch_view). +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/142 diff --git a/mobile/multitouch_view/project.godot b/mobile/multitouch_view/project.godot index 2f4aea8e37..fde08aa371 100644 --- a/mobile/multitouch_view/project.godot +++ b/mobile/multitouch_view/project.godot @@ -21,10 +21,17 @@ config/icon="res://icon.webp" TouchHelper="*res://TouchHelper.gd" +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + [input_devices] pointing/emulate_touch_from_mouse=true [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" environment/defaults/default_clear_color=Color(0.113725, 0.133333, 0.196078, 1) diff --git a/mobile/sensors/default_env.tres b/mobile/sensors/default_env.tres deleted file mode 100644 index 20d8a053f5..0000000000 --- a/mobile/sensors/default_env.tres +++ /dev/null @@ -1,7 +0,0 @@ -[gd_resource type="Environment" load_steps=2 format=3 uid="uid://f45bpansont3"] - -[sub_resource type="Sky" id="1"] - -[resource] -background_mode = 2 -sky = SubResource("1") diff --git a/mobile/sensors/main.tscn b/mobile/sensors/main.tscn index 33c5e896ed..6440d29fbb 100644 --- a/mobile/sensors/main.tscn +++ b/mobile/sensors/main.tscn @@ -5,6 +5,7 @@ [sub_resource type="Environment" id="1"] background_mode = 1 +ambient_light_source = 2 ambient_light_color = Color(0.648438, 0.64578, 0.64578, 1) [sub_resource type="CylinderMesh" id="2"] @@ -43,6 +44,9 @@ roughness = 0.0 [node name="Main" type="Node"] script = ExtResource("1") +[node name="WorldEnvironment" type="WorldEnvironment" parent="."] +environment = SubResource("1") + [node name="Control" type="Control" parent="."] layout_mode = 3 anchors_preset = 0 @@ -52,6 +56,7 @@ size_flags_horizontal = 3 size_flags_vertical = 3 [node name="GridContainer" type="GridContainer" parent="Control"] +layout_mode = 0 offset_right = 40.0 offset_bottom = 40.0 columns = 4 @@ -174,7 +179,6 @@ horizontal_alignment = 1 [node name="Camera3D" type="Camera3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.285209, 0, 11.9833) -environment = SubResource("1") fov = 74.0 near = 0.1 diff --git a/mobile/sensors/project.godot b/mobile/sensors/project.godot index 72fcf8420e..a5a6bbe579 100644 --- a/mobile/sensors/project.godot +++ b/mobile/sensors/project.godot @@ -24,6 +24,7 @@ window/stretch/mode="canvas_items" [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" textures/vram_compression/import_etc2_astc=true -environment/defaults/default_environment="res://default_env.tres" +anti_aliasing/quality/msaa_3d=2 diff --git a/mono/2.5d/project.godot b/mono/2.5d/project.godot index 09e0b71901..8bbf9e1edf 100644 --- a/mono/2.5d/project.godot +++ b/mono/2.5d/project.godot @@ -31,144 +31,139 @@ enabled=PackedStringArray("node25d-cs") [input] move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_forward={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) ] } move_back={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } movement_modifier={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777237,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777348,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } jump={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777350,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) ] } reset_position={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":82,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777222,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":3,"pressure":0.0,"pressed":false,"script":null) ] } forty_five_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":85,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777354,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } isometric_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":73,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777355,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) ] } top_down_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":79,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777356,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } front_side_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":74,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777351,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } oblique_y_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":75,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777352,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":4,"pressure":0.0,"pressed":false,"script":null) ] } oblique_z_mode={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":76,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777353,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":5,"pressure":0.0,"pressed":false,"script":null) ] } toggle_isometric_controls={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":84,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":8,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777349,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_control_hints={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777218,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777347,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":10,"pressure":0.0,"pressed":false,"script":null) ] } move_clockwise={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":69,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777359,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":7,"pressure":0.0,"pressed":false,"script":null) ] } move_counterclockwise={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":81,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777357,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":6,"pressure":0.0,"pressed":false,"script":null) ] } view_cube_demo={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":67,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777358,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":2,"pressure":0.0,"pressed":false,"script":null) ] } exit={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777217,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } -[physics] - -3d/physics_engine="Bullet" - [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/mono/android_iap/project.godot b/mono/android_iap/project.godot index a61428954e..5159d97eb4 100644 --- a/mono/android_iap/project.godot +++ b/mono/android_iap/project.godot @@ -23,3 +23,8 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/mono/dodge_the_creeps/README.md b/mono/dodge_the_creeps/README.md index dc4afcc76f..1df94f990f 100644 --- a/mono/dodge_the_creeps/README.md +++ b/mono/dodge_the_creeps/README.md @@ -14,8 +14,6 @@ Renderer: GLES 3 (particles are not available in GLES 2) Note: There is a GDScript version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/2d/dodge_the_creeps). -Note: There is a GDNative C++ version available [here](https://github.com/godotengine/gdnative-demos/tree/master/cpp/dodge_the_creeps). - Check out this demo on the asset library: https://godotengine.org/asset-library/asset/534 ## Screenshots diff --git a/mono/dodge_the_creeps/project.godot b/mono/dodge_the_creeps/project.godot index 769a14bb05..f9f909cfe1 100644 --- a/mono/dodge_the_creeps/project.godot +++ b/mono/dodge_the_creeps/project.godot @@ -30,7 +30,7 @@ window/size/viewport_height=720 [input] move_left={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) @@ -38,7 +38,7 @@ move_left={ ] } move_right={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) @@ -46,7 +46,7 @@ move_right={ ] } move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) @@ -54,10 +54,15 @@ move_up={ ] } move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/mono/multiplayer_pong/project.godot b/mono/multiplayer_pong/project.godot index c116ca75b5..688f3fd9aa 100644 --- a/mono/multiplayer_pong/project.godot +++ b/mono/multiplayer_pong/project.godot @@ -29,7 +29,7 @@ window/stretch/aspect="expand" [input] move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) @@ -38,7 +38,7 @@ move_down={ ] } move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) @@ -49,8 +49,5 @@ move_up={ [rendering] -quality/driver/driver_name="GLES2" -2d/snapping/use_gpu_pixel_snap=true -vram_compression/import_etc=true -vram_compression/import_etc2=false -quality/2d/use_pixel_snap=true +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/mono/pong/README.md b/mono/pong/README.md index e61534ae23..e8fee74337 100644 --- a/mono/pong/README.md +++ b/mono/pong/README.md @@ -10,10 +10,6 @@ Renderer: GLES 2 Note: There is a GDScript version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/2d/pong). -Note: There is a VisualScript version available [here](https://github.com/godotengine/godot-demo-projects/tree/master/visual_script/pong). - -Note: There is a GDNative C++ version available [here](https://github.com/godotengine/gdnative-demos/tree/master/cpp/pong). - Check out this demo on the asset library: https://godotengine.org/asset-library/asset/535 ## How does it work? diff --git a/mono/pong/project.godot b/mono/pong/project.godot index 4726ce9243..2e81543e6f 100644 --- a/mono/pong/project.godot +++ b/mono/pong/project.godot @@ -32,7 +32,7 @@ project/assembly_name="Pong with C#" [input] left_move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) @@ -40,7 +40,7 @@ left_move_down={ ] } left_move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":11,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":122,"echo":false,"script":null) @@ -48,7 +48,7 @@ left_move_up={ ] } right_move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) @@ -56,7 +56,7 @@ right_move_down={ ] } right_move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":1,"axis":1,"axis_value":-1.0,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":1,"button_index":11,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) diff --git a/networking/README.md b/networking/README.md index 35741f4cc7..34fb924270 100644 --- a/networking/README.md +++ b/networking/README.md @@ -2,6 +2,6 @@ These demos showcase networking and/or multiplayer features. -Languages: All have GDScript, WebRTC uses some GDNative +Languages: All have GDScript, WebRTC uses some GDExtension -Renderer: All are GLES 2 +Renderer: All are Compatibility diff --git a/networking/multiplayer_bomber/README.md b/networking/multiplayer_bomber/README.md index d4ef8c3042..c6ad6b8206 100644 --- a/networking/multiplayer_bomber/README.md +++ b/networking/multiplayer_bomber/README.md @@ -1,12 +1,12 @@ # Multiplayer Bomber -A multiplayer implementation of the classical bomberman game. -One of the players should press "host", while the other -should type in his address and press "play". +A multiplayer implementation of the classic bomberman game. +One of the players should press **Host**, while other player(s) +should type in the host's IP address and press **Join**. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/139 diff --git a/networking/multiplayer_bomber/lobby.tscn b/networking/multiplayer_bomber/lobby.tscn index 2ce14dcce3..6be1c572e9 100644 --- a/networking/multiplayer_bomber/lobby.tscn +++ b/networking/multiplayer_bomber/lobby.tscn @@ -33,12 +33,13 @@ size_flags_vertical = 2 [node name="Label" type="Label" parent="Players"] layout_mode = 0 offset_left = 26.0 -offset_top = 18.0 -offset_right = 142.0 -offset_bottom = 32.0 +offset_top = 7.0 +offset_right = 229.0 +offset_bottom = 30.0 size_flags_horizontal = 2 size_flags_vertical = 0 text = "Awaiting Players..." +horizontal_alignment = 1 [node name="Start" type="Button" parent="Players"] layout_mode = 0 @@ -72,10 +73,10 @@ is forwarded on your router." [node name="FindPublicIP" type="LinkButton" parent="Players"] layout_mode = 0 -offset_left = 168.0 -offset_top = 393.5 -offset_right = 341.0 -offset_bottom = 407.5 +offset_left = 200.0 +offset_top = 409.5 +offset_right = 408.0 +offset_bottom = 432.5 text = "Find your public IP address" [node name="Connect" type="Panel" parent="."] @@ -107,9 +108,9 @@ text = "Name:" [node name="Name" type="LineEdit" parent="Connect"] layout_mode = 0 offset_left = 17.0 -offset_top = 30.0 +offset_top = 38.0 offset_right = 173.0 -offset_bottom = 54.0 +offset_bottom = 69.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "The Warrior" @@ -117,9 +118,9 @@ text = "The Warrior" [node name="IPLabel" type="Label" parent="Connect"] layout_mode = 0 offset_left = 15.0 -offset_top = 66.0 +offset_top = 74.0 offset_right = 57.0 -offset_bottom = 80.0 +offset_bottom = 97.0 size_flags_horizontal = 2 size_flags_vertical = 0 theme_override_font_sizes/font_size = 16 @@ -128,9 +129,9 @@ text = "IP:" [node name="IPAddress" type="LineEdit" parent="Connect"] layout_mode = 0 offset_left = 17.0 -offset_top = 85.0 +offset_top = 102.0 offset_right = 173.0 -offset_bottom = 109.0 +offset_bottom = 133.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "127.0.0.1" @@ -138,9 +139,9 @@ text = "127.0.0.1" [node name="Host" type="Button" parent="Connect"] layout_mode = 0 offset_left = 181.0 -offset_top = 31.0 +offset_top = 38.0 offset_right = 246.0 -offset_bottom = 51.0 +offset_bottom = 69.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "Host" @@ -148,9 +149,9 @@ text = "Host" [node name="Join" type="Button" parent="Connect"] layout_mode = 0 offset_left = 181.0 -offset_top = 87.0 +offset_top = 102.0 offset_right = 246.0 -offset_bottom = 107.0 +offset_bottom = 133.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "Join" @@ -158,9 +159,9 @@ text = "Join" [node name="ErrorLabel" type="Label" parent="Connect"] layout_mode = 0 offset_left = 15.0 -offset_top = 125.0 +offset_top = 138.0 offset_right = 257.0 -offset_bottom = 139.0 +offset_bottom = 161.0 size_flags_horizontal = 2 size_flags_vertical = 0 theme_override_colors/font_color = Color(0.820312, 0.291595, 0.291595, 1) diff --git a/networking/multiplayer_bomber/project.godot b/networking/multiplayer_bomber/project.godot index ad4bc673b9..3232b55b5e 100644 --- a/networking/multiplayer_bomber/project.godot +++ b/networking/multiplayer_bomber/project.godot @@ -11,9 +11,9 @@ config_version=5 [application] config/name="Multiplayer Bomber" -config/description="A multiplayer implementation of the classical bomberman game. -One of the players should press 'host', while the other -should type in his address and press 'play'." +config/description="A multiplayer implementation of the classic bomberman game. +One of the players should press \"Host\", while the other +should type in his address and press \"Play\"." config/tags=PackedStringArray("2d", "demo", "network", "official") run/main_scene="res://lobby.tscn" config/features=PackedStringArray("4.2") @@ -31,46 +31,51 @@ window/stretch/aspect="expand" [input] move_down={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":83,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":115,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":12,"pressure":0.0,"pressed":false,"script":null) ] } move_left={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":65,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777231,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":14,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":113,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":-1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":13,"pressure":0.0,"pressed":false,"script":null) ] } move_right={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":68,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777233,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":15,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":100,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":0,"axis_value":1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":14,"pressure":0.0,"pressed":false,"script":null) ] } move_up={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":90,"key_label":0,"unicode":119,"echo":false,"script":null) +, Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) +, Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":-1,"axis":1,"axis_value":-1.0,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":11,"pressure":0.0,"pressed":false,"script":null) ] } set_bomb={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":0,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":1,"pressure":0.0,"pressed":false,"script":null) -, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":32,"key_label":0,"unicode":32,"echo":false,"script":null) +, Object(InputEventMouseButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"button_mask":0,"position":Vector2(0, 0),"global_position":Vector2(0, 0),"factor":1.0,"button_index":1,"canceled":false,"pressed":false,"double_click":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":0,"pressure":0.0,"pressed":false,"script":null) +, Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":-1,"button_index":1,"pressure":0.0,"pressed":false,"script":null) ] } +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" + [replication] config={ diff --git a/networking/multiplayer_pong/README.md b/networking/multiplayer_pong/README.md index 3be924e4ee..ca65c33a10 100644 --- a/networking/multiplayer_pong/README.md +++ b/networking/multiplayer_pong/README.md @@ -1,11 +1,12 @@ # Pong Multiplayer -A multiplayer demo of Pong. One player presses "host". -The other presses "join". This only works locally. +A multiplayer implementation of the classic pong game. +One of the players should press **Host**, while the other +should type in the host's IP address and press **Join**. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Note: The non-multiplayer version is available [here](https://github.com/godotengine/godot-demo-projects/tree/master/2d/pong). diff --git a/networking/multiplayer_pong/lobby.tscn b/networking/multiplayer_pong/lobby.tscn index 519986e52d..8676929e3e 100644 --- a/networking/multiplayer_pong/lobby.tscn +++ b/networking/multiplayer_pong/lobby.tscn @@ -19,21 +19,38 @@ size_flags_horizontal = 2 size_flags_vertical = 2 [node name="Title" type="Label" parent="."] -layout_mode = 0 -offset_left = 210.0 -offset_top = 40.0 -offset_right = 430.0 -offset_bottom = 80.0 +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -110.0 +offset_top = -156.0 +offset_right = 110.0 +offset_bottom = -116.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 0 +theme_override_font_sizes/font_size = 32 text = "Multiplayer Pong" +horizontal_alignment = 1 +vertical_alignment = 1 [node name="LobbyPanel" type="Panel" parent="."] -layout_mode = 0 -offset_left = 210.0 -offset_top = 160.0 -offset_right = 430.0 -offset_bottom = 270.0 +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -110.0 +offset_top = -73.0 +offset_right = 110.0 +offset_bottom = 73.0 +grow_horizontal = 2 +grow_vertical = 2 size_flags_horizontal = 2 size_flags_vertical = 2 script = ExtResource("1") @@ -41,19 +58,19 @@ script = ExtResource("1") [node name="AddressLabel" type="Label" parent="LobbyPanel"] layout_mode = 0 offset_left = 10.0 -offset_top = 10.0 -offset_right = 62.0 -offset_bottom = 24.0 +offset_top = 6.0 +offset_right = 77.0 +offset_bottom = 29.0 size_flags_horizontal = 2 size_flags_vertical = 0 -text = "Address" +text = "Address:" [node name="Address" type="LineEdit" parent="LobbyPanel"] layout_mode = 0 offset_left = 10.0 -offset_top = 30.0 +offset_top = 37.0 offset_right = 210.0 -offset_bottom = 54.0 +offset_bottom = 68.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "127.0.0.1" @@ -61,9 +78,9 @@ text = "127.0.0.1" [node name="HostButton" type="Button" parent="LobbyPanel"] layout_mode = 0 offset_left = 10.0 -offset_top = 60.0 +offset_top = 76.0 offset_right = 90.0 -offset_bottom = 80.0 +offset_bottom = 107.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "Host" @@ -71,9 +88,9 @@ text = "Host" [node name="JoinButton" type="Button" parent="LobbyPanel"] layout_mode = 0 offset_left = 130.0 -offset_top = 60.0 +offset_top = 76.0 offset_right = 210.0 -offset_bottom = 80.0 +offset_bottom = 107.0 size_flags_horizontal = 2 size_flags_vertical = 2 text = "Join" @@ -81,39 +98,56 @@ text = "Join" [node name="StatusOk" type="Label" parent="LobbyPanel"] layout_mode = 0 offset_left = 10.0 -offset_top = 90.0 +offset_top = 114.0 offset_right = 210.0 -offset_bottom = 104.0 +offset_bottom = 137.0 size_flags_horizontal = 2 size_flags_vertical = 0 +horizontal_alignment = 1 [node name="StatusFail" type="Label" parent="LobbyPanel"] +modulate = Color(1, 0.427451, 0.345098, 1) layout_mode = 0 offset_left = 10.0 -offset_top = 90.0 +offset_top = 114.0 offset_right = 210.0 -offset_bottom = 104.0 +offset_bottom = 137.0 size_flags_horizontal = 2 size_flags_vertical = 0 +horizontal_alignment = 1 [node name="PortForward" type="Label" parent="LobbyPanel"] visible = false -layout_mode = 0 -offset_left = -128.0 -offset_top = 136.0 -offset_right = 124.0 -offset_bottom = 184.0 +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = -278.0 +offset_top = 91.0 +offset_right = 25.0 +offset_bottom = 166.0 +grow_horizontal = 2 +grow_vertical = 2 text = "If you want non-LAN clients to connect, make sure the port 8910 in UDP -is forwarded checked your router." +is forwarded on your router." [node name="FindPublicIP" type="LinkButton" parent="LobbyPanel"] visible = false -layout_mode = 0 -offset_left = 155.0 -offset_top = 152.0 -offset_right = 328.0 -offset_bottom = 166.0 +layout_mode = 1 +anchors_preset = 8 +anchor_left = 0.5 +anchor_top = 0.5 +anchor_right = 0.5 +anchor_bottom = 0.5 +offset_left = 61.0 +offset_top = 118.0 +offset_right = 269.0 +offset_bottom = 141.0 +grow_horizontal = 2 +grow_vertical = 2 text = "Find your public IP address" [connection signal="pressed" from="LobbyPanel/HostButton" to="LobbyPanel" method="_on_host_pressed"] diff --git a/networking/multiplayer_pong/project.godot b/networking/multiplayer_pong/project.godot index ecb0fac797..f9a7f42bc4 100644 --- a/networking/multiplayer_pong/project.godot +++ b/networking/multiplayer_pong/project.godot @@ -11,9 +11,9 @@ config_version=5 [application] config/name="Pong Multiplayer" -config/description="A multiplayer demo of the classical pong game. -One of the players should press 'host', while the -other should select the address and press 'join'." +config/description="A multiplayer demo of the classic pong game. +One of the players should press \"Host\", while the +other should select the address and press \"Join\"." config/tags=PackedStringArray("2d", "demo", "network", "official") run/main_scene="res://lobby.tscn" config/features=PackedStringArray("4.2") @@ -29,7 +29,7 @@ window/stretch/aspect="expand" [input] move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777234,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":13,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) @@ -38,7 +38,7 @@ move_down={ ] } move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":16777232,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadButton,"resource_local_to_scene":false,"resource_name":"","device":0,"button_index":12,"pressure":0.0,"pressed":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) @@ -46,3 +46,8 @@ move_up={ , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":87,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/networking/webrtc_minimal/README.md b/networking/webrtc_minimal/README.md index b80eeda4d2..4e0c66a891 100644 --- a/networking/webrtc_minimal/README.md +++ b/networking/webrtc_minimal/README.md @@ -4,6 +4,6 @@ This is a minimal sample of using WebRTC connections to connect two peers to eac Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/536 diff --git a/networking/webrtc_minimal/main.tscn b/networking/webrtc_minimal/main.tscn index 215d132c2d..c3e01c0ea4 100644 --- a/networking/webrtc_minimal/main.tscn +++ b/networking/webrtc_minimal/main.tscn @@ -17,12 +17,9 @@ grow_horizontal = 2 grow_vertical = 2 [node name="LinkButton" type="LinkButton" parent="CenterContainer"] +modulate = Color(1, 0.921569, 0.152941, 1) layout_mode = 2 -offset_left = 245.0 -offset_top = 312.0 -offset_right = 906.0 -offset_bottom = 335.0 -text = "Make sure to download the GDNative WebRTC Plugin and place it in the project folder" +text = "Make sure to download the GDExtension WebRTC Plugin and place it in the project folder" script = ExtResource("3") [connection signal="pressed" from="CenterContainer/LinkButton" to="CenterContainer/LinkButton" method="_on_LinkButton_pressed"] diff --git a/networking/webrtc_minimal/project.godot b/networking/webrtc_minimal/project.godot index 293f9e7351..1e687e3d94 100644 --- a/networking/webrtc_minimal/project.godot +++ b/networking/webrtc_minimal/project.godot @@ -24,3 +24,8 @@ Signaling="*res://Signaling.gd" window/stretch/mode="canvas_items" window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/networking/webrtc_signaling/README.md b/networking/webrtc_signaling/README.md index 7a0804a4a1..ec94fe6f05 100644 --- a/networking/webrtc_signaling/README.md +++ b/networking/webrtc_signaling/README.md @@ -8,11 +8,11 @@ This demo is devided in 4 parts: - Itself divided into raw protocol and `WebRTCMultiplayer` handling. - The `demo` contains a small app that uses it. -**NOTE**: You must extract the [latest version](https://github.com/godotengine/webrtc-native/releases) of the WebRTC GDNative plugin in the project folder to run from desktop. +**NOTE**: You must extract the [latest version](https://github.com/godotengine/webrtc-native/releases) of the WebRTC GDExtension plugin in the project folder to run from desktop. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/537 diff --git a/networking/webrtc_signaling/demo/main.tscn b/networking/webrtc_signaling/demo/main.tscn index fa463fbc62..930e0006af 100644 --- a/networking/webrtc_signaling/demo/main.tscn +++ b/networking/webrtc_signaling/demo/main.tscn @@ -13,78 +13,57 @@ anchor_bottom = 0.983333 script = ExtResource("1") [node name="VBoxContainer" type="VBoxContainer" parent="."] -anchors_preset = 15 +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 grow_horizontal = 2 grow_vertical = 2 [node name="Signaling" type="HBoxContainer" parent="VBoxContainer"] -offset_right = 1120.0 -offset_bottom = 31.0 +layout_mode = 2 [node name="Label" type="Label" parent="VBoxContainer/Signaling"] -offset_top = 2.0 -offset_right = 127.0 -offset_bottom = 28.0 +layout_mode = 2 text = "Signaling server:" [node name="Port" type="SpinBox" parent="VBoxContainer/Signaling"] -offset_left = 131.0 -offset_right = 214.0 -offset_bottom = 31.0 +layout_mode = 2 min_value = 1025.0 max_value = 65535.0 value = 9080.0 [node name="ListenButton" type="Button" parent="VBoxContainer/Signaling"] -offset_left = 218.0 -offset_right = 273.0 -offset_bottom = 31.0 +layout_mode = 2 toggle_mode = true text = "Listen" [node name="CenterContainer" type="CenterContainer" parent="VBoxContainer/Signaling"] -offset_left = 277.0 -offset_right = 1120.0 -offset_bottom = 31.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 [node name="LinkButton" type="LinkButton" parent="VBoxContainer/Signaling/CenterContainer"] -offset_left = 91.0 -offset_top = 4.0 -offset_right = 752.0 -offset_bottom = 27.0 -text = "Make sure to download the GDNative WebRTC Plugin and place it in the project folder" +modulate = Color(1, 0.956863, 0.207843, 1) +layout_mode = 2 +text = "Make sure to download the GDExtension WebRTC Plugin and place it in the project folder" [node name="Clients" type="GridContainer" parent="VBoxContainer"] -offset_top = 35.0 -offset_right = 1120.0 -offset_bottom = 626.0 +layout_mode = 2 size_flags_horizontal = 3 size_flags_vertical = 3 columns = 2 [node name="ClientUI" parent="VBoxContainer/Clients" instance=ExtResource("2")] -offset_right = 558.0 -offset_bottom = 294.0 +layout_mode = 2 [node name="ClientUI2" parent="VBoxContainer/Clients" instance=ExtResource("2")] -offset_left = 562.0 -offset_right = 1120.0 -offset_bottom = 294.0 +layout_mode = 2 [node name="ClientUI3" parent="VBoxContainer/Clients" instance=ExtResource("2")] -offset_top = 298.0 -offset_right = 558.0 -offset_bottom = 591.0 +layout_mode = 2 [node name="ClientUI4" parent="VBoxContainer/Clients" instance=ExtResource("2")] -offset_left = 562.0 -offset_top = 298.0 -offset_right = 1120.0 -offset_bottom = 591.0 +layout_mode = 2 [node name="Server" type="Node" parent="."] script = ExtResource("3") diff --git a/networking/webrtc_signaling/project.godot b/networking/webrtc_signaling/project.godot index 0c29a9d5de..85ce91af63 100644 --- a/networking/webrtc_signaling/project.godot +++ b/networking/webrtc_signaling/project.godot @@ -29,6 +29,7 @@ gdscript/warnings/unused_argument=false window/stretch/mode="canvas_items" window/stretch/aspect="expand" -[network] +[rendering] -modules/webrtc_gdnative_script="res://demo/webrtc/webrtc.gdns" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/networking/websocket_chat/README.md b/networking/websocket_chat/README.md index cf1ea48e24..f4da3d969c 100644 --- a/networking/websocket_chat/README.md +++ b/networking/websocket_chat/README.md @@ -4,7 +4,7 @@ This is a demo of a simple chat implemented using WebSockets, showing both how t Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/538 diff --git a/networking/websocket_chat/project.godot b/networking/websocket_chat/project.godot index ed79745b2e..ada9058b3b 100644 --- a/networking/websocket_chat/project.godot +++ b/networking/websocket_chat/project.godot @@ -16,3 +16,13 @@ config/tags=PackedStringArray("demo", "network", "official") run/main_scene="res://combo.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" + +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/networking/websocket_minimal/README.md b/networking/websocket_minimal/README.md index 4405102d8f..38bd1108e3 100644 --- a/networking/websocket_minimal/README.md +++ b/networking/websocket_minimal/README.md @@ -1,9 +1,9 @@ # WebSocket Minimal -This is a minimal sample of connecting two peers to each other using websockets. +This is a minimal sample of connecting two peers to each other using WebSockets. Language: GDScript -Renderer: Forward+ +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/539 diff --git a/networking/websocket_minimal/project.godot b/networking/websocket_minimal/project.godot index 81d675ffbd..e974b77bb3 100644 --- a/networking/websocket_minimal/project.godot +++ b/networking/websocket_minimal/project.godot @@ -11,7 +11,7 @@ config_version=5 [application] config/name="WebSocket Minimal Demo" -config/description="This is a minimal sample of connecting two peers to each other using websockets." +config/description="This is a minimal sample of connecting two peers to each other using WebSockets." config/tags=PackedStringArray("demo", "network", "official") run/main_scene="res://Main.tscn" config/features=PackedStringArray("4.2") @@ -20,9 +20,10 @@ config/features=PackedStringArray("4.2") window/size/viewport_width=600 window/size/viewport_height=300 +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/networking/websocket_multiplayer/README.md b/networking/websocket_multiplayer/README.md index a59d0d3451..fffb93bdad 100644 --- a/networking/websocket_multiplayer/README.md +++ b/networking/websocket_multiplayer/README.md @@ -4,7 +4,7 @@ This is a sample showing how the use WebSockets along with the Multiplayer API i Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/540 diff --git a/networking/websocket_multiplayer/project.godot b/networking/websocket_multiplayer/project.godot index 915fb7ed34..9c714567c8 100644 --- a/networking/websocket_multiplayer/project.godot +++ b/networking/websocket_multiplayer/project.godot @@ -17,8 +17,12 @@ run/main_scene="res://scene/combo.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" +[display] + +window/stretch/mode="canvas_items" +window/stretch/aspect="expand" + [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/networking/websocket_multiplayer/scene/combo.tscn b/networking/websocket_multiplayer/scene/combo.tscn index ebe73ba6d1..23d04685e0 100644 --- a/networking/websocket_multiplayer/scene/combo.tscn +++ b/networking/websocket_multiplayer/scene/combo.tscn @@ -23,44 +23,12 @@ columns = 2 [node name="Main" parent="GridContainer" instance=ExtResource("2_reiiv")] layout_mode = 2 -anchors_preset = 0 -anchor_right = 0.0 -anchor_bottom = 0.0 -offset_right = 574.0 -offset_bottom = 322.0 -grow_horizontal = 1 -grow_vertical = 1 [node name="Main2" parent="GridContainer" instance=ExtResource("2_reiiv")] layout_mode = 2 -anchors_preset = 0 -anchor_right = 0.0 -anchor_bottom = 0.0 -offset_left = 578.0 -offset_right = 1152.0 -offset_bottom = 322.0 -grow_horizontal = 1 -grow_vertical = 1 [node name="Main3" parent="GridContainer" instance=ExtResource("2_reiiv")] layout_mode = 2 -anchors_preset = 0 -anchor_right = 0.0 -anchor_bottom = 0.0 -offset_top = 326.0 -offset_right = 574.0 -offset_bottom = 648.0 -grow_horizontal = 1 -grow_vertical = 1 [node name="Main4" parent="GridContainer" instance=ExtResource("2_reiiv")] layout_mode = 2 -anchors_preset = 0 -anchor_right = 0.0 -anchor_bottom = 0.0 -offset_left = 578.0 -offset_top = 326.0 -offset_right = 1152.0 -offset_bottom = 648.0 -grow_horizontal = 1 -grow_vertical = 1 diff --git a/networking/websocket_multiplayer/script/game.gd b/networking/websocket_multiplayer/script/game.gd index 699be63d1d..859f6152d9 100644 --- a/networking/websocket_multiplayer/script/game.gd +++ b/networking/websocket_multiplayer/script/game.gd @@ -16,18 +16,18 @@ func _log(what): @rpc("any_peer") -func set_player_name(name): +func set_player_name(p_name): if not is_multiplayer_authority(): return var sender = multiplayer.get_remote_sender_id() - update_player_name.rpc(sender, name) + update_player_name.rpc(sender, p_name) @rpc("call_local") -func update_player_name(player, name): +func update_player_name(player, p_name): var pos = _players.find(player) if pos != -1: - _list.set_item_text(pos, name) + _list.set_item_text(pos, p_name) @rpc("any_peer") diff --git a/networking/websocket_multiplayer/script/main.gd b/networking/websocket_multiplayer/script/main.gd index 001808d49c..f890e9b31f 100644 --- a/networking/websocket_multiplayer/script/main.gd +++ b/networking/websocket_multiplayer/script/main.gd @@ -30,7 +30,7 @@ func _ready(): if OS.has_environment("USERNAME"): _name_edit.text = OS.get_environment("USERNAME") else: - var desktop_path = OS.get_system_dir(0).replace("\\", "/").split("/") + var desktop_path = OS.get_system_dir(OS.SYSTEM_DIR_DESKTOP).replace("\\", "/").split("/") _name_edit.text = desktop_path[desktop_path.size() - 2] diff --git a/plugins/README.md b/plugins/README.md index 9dc5453182..b8ccca2435 100644 --- a/plugins/README.md +++ b/plugins/README.md @@ -2,14 +2,15 @@ This contains multiple plugin demos, all placed in a project for convenience. -Due to bug 36713 you need to open the project to import the assets once, then close, then open. +Due to [issue #36713](https://github.com/godotengine/godot/issues/36713), +you need to open the project to import the assets once, then close, then open. -Please see the documentation for editor plugins: -https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html +See the [documentation on editor plugins](https://docs.godotengine.org/en/latest/tutorials/plugins/editor/index.html) +for more information. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/585 @@ -36,7 +37,7 @@ enable them in the project settings menu. For example, the path would look like: `addons/custom_node` Plugins can be distributed and installed from the UI. -If you make a zip that contains the folder, Godot will recognize +If you make a ZIP archive that contains the folder, Godot will recognize it as a plugin and will allow you to install it. This can be done via the terminal: `zip -r custom_node.zip custom_node/*` diff --git a/plugins/addons/custom_node/README.md b/plugins/addons/custom_node/README.md index 57ecfded43..6db948beb3 100644 --- a/plugins/addons/custom_node/README.md +++ b/plugins/addons/custom_node/README.md @@ -16,5 +16,5 @@ A custom node type: The way it works in this plugin is using the `add_custom_type` and `remove_custom_type` in the plugin script file. Using this method you can specify any name, base type, script, and icon for your custom node. -There is also another way to add custom node types, which is using the `class_name` keyword in a script. However, -the `class_name` system is newer, may change in the future, and it is not available for C# or VisualScript. +There is also another way to add custom node types, which is using the `class_name` keyword in a script, +or [using the `[GlobalClass]` attribute above a class declaration in C#](https://docs.godotengine.org/en/stable/tutorials/scripting/c_sharp/c_sharp_global_classes.html). diff --git a/plugins/addons/material_creator/material_creator.gd b/plugins/addons/material_creator/material_creator.gd index 8480c90ea1..9c5d16619c 100644 --- a/plugins/addons/material_creator/material_creator.gd +++ b/plugins/addons/material_creator/material_creator.gd @@ -16,27 +16,27 @@ func _ready(): func save_pressed(): - get_node(^"SaveMaterialDialog").popup_centered() + get_node(^"SaveMaterialDialog").popup_centered_ratio() func load_pressed(): - get_node(^"LoadMaterialDialog").popup_centered() + get_node(^"LoadMaterialDialog").popup_centered_ratio() func apply_pressed(): # Using the passed in editor interface, get the selected nodes in the editor. var editor_selection = editor_interface.get_selection() var selected_nodes = editor_selection.get_selected_nodes() - if selected_nodes.size() == 0: - printerr("Material Creator: Can't apply the material, because there are no nodes selected!") + if selected_nodes.is_empty(): + push_error("Material Creator: Can't apply the material, because there are no nodes selected!") var material = _silly_resource_from_values().make_material() - # Go through the selected nodes and see if they have the "set_surface_material" + # Go through the selected nodes and see if they have the "set_surface_override_material" # function (which only MeshInstance3D has by default). If they do, then set the material # to the silly material. for node in selected_nodes: - if node.has_method("set_surface_material"): - node.set_surface_material(0, material) + if node.has_method("set_surface_override_material"): + node.set_surface_override_material(0, material) func save_file_selected(path): diff --git a/plugins/addons/material_creator/material_dock.tscn b/plugins/addons/material_creator/material_dock.tscn index f8c4c83931..929564fad7 100644 --- a/plugins/addons/material_creator/material_dock.tscn +++ b/plugins/addons/material_creator/material_dock.tscn @@ -2,13 +2,13 @@ [ext_resource type="Script" path="res://addons/material_creator/material_creator.gd" id="1"] -[node name="Material Creator Plugin" type="Panel"] +[node name="Material Creator" type="Panel"] offset_right = 220.0 offset_bottom = 340.0 script = ExtResource("1") [node name="VBoxContainer" type="VBoxContainer" parent="."] -anchors_preset = 13 +layout_mode = 0 anchor_left = 0.5 anchor_right = 0.5 anchor_bottom = 1.0 @@ -17,77 +17,53 @@ offset_right = 100.0 grow_horizontal = 2 grow_vertical = 2 -[node name="DockName" type="Label" parent="VBoxContainer"] -offset_right = 200.0 -offset_bottom = 26.0 -text = "Material creator" - [node name="AlbedoLabel" type="Label" parent="VBoxContainer"] -offset_top = 30.0 -offset_right = 200.0 -offset_bottom = 56.0 -text = "Albedo color" +layout_mode = 2 +text = "Albedo Color:" [node name="AlbedoColorPicker" type="ColorPickerButton" parent="VBoxContainer"] -offset_top = 60.0 -offset_right = 200.0 -offset_bottom = 68.0 +custom_minimum_size = Vector2(0, 32) +layout_mode = 2 color = Color(1, 1, 1, 1) [node name="MetallicLabel" type="Label" parent="VBoxContainer"] -offset_top = 72.0 -offset_right = 200.0 -offset_bottom = 98.0 -text = "Metallic strength" +layout_mode = 2 +text = "Metallic Strength:" [node name="MetallicSlider" type="HSlider" parent="VBoxContainer"] -offset_top = 102.0 -offset_right = 200.0 -offset_bottom = 118.0 +layout_mode = 2 max_value = 1.0 step = 0.05 [node name="RoughnessLabel" type="Label" parent="VBoxContainer"] -offset_top = 122.0 -offset_right = 200.0 -offset_bottom = 148.0 -text = "Roughness strength" +layout_mode = 2 +text = "Roughness Strength:" [node name="RoughnessSlider" type="HSlider" parent="VBoxContainer"] -offset_top = 152.0 -offset_right = 200.0 -offset_bottom = 168.0 +layout_mode = 2 max_value = 1.0 step = 0.05 ticks_on_borders = true [node name="HSeparator" type="HSeparator" parent="VBoxContainer"] -offset_top = 172.0 -offset_right = 200.0 -offset_bottom = 176.0 +layout_mode = 2 [node name="ApplyButton" type="Button" parent="VBoxContainer"] -offset_top = 180.0 -offset_right = 200.0 -offset_bottom = 211.0 -text = "Apply material" +layout_mode = 2 +text = "Apply Material" [node name="SaveButton" type="Button" parent="VBoxContainer"] -offset_top = 215.0 -offset_right = 200.0 -offset_bottom = 246.0 -text = "Save material" +layout_mode = 2 +text = "Save Material" [node name="LoadButton" type="Button" parent="VBoxContainer"] -offset_top = 250.0 -offset_right = 200.0 -offset_bottom = 281.0 -text = "Load material" +layout_mode = 2 +text = "Load Material" clip_text = true [node name="Label" type="Label" parent="VBoxContainer/LoadButton"] visible = false -anchors_preset = 15 +layout_mode = 0 anchor_right = 1.0 anchor_bottom = 1.0 offset_bottom = -10.0 diff --git a/plugins/project.godot b/plugins/project.godot index 65c33a07c8..4cef69fcaf 100644 --- a/plugins/project.godot +++ b/plugins/project.godot @@ -31,7 +31,5 @@ enabled=PackedStringArray("res://addons/main_screen/plugin.cfg", "res://addons/m [rendering] -quality/driver/driver_name="GLES2" -vram_compression/import_etc=true -vram_compression/import_etc2=false -environment/default_environment="res://default_env.tres" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/viewport/2d_in_3d/2d_in_3d.tscn b/viewport/2d_in_3d/2d_in_3d.tscn index 63595d2e8e..69a0f374e5 100644 --- a/viewport/2d_in_3d/2d_in_3d.tscn +++ b/viewport/2d_in_3d/2d_in_3d.tscn @@ -60,7 +60,7 @@ sky_material = SubResource("ProceduralSkyMaterial_cvh5i") background_mode = 2 sky = SubResource("Sky_7gemw") tonemap_mode = 2 -glow_enabled = true +tonemap_white = 2.0 [node name="2Din3D" type="Node3D"] script = ExtResource("1_b8rgl") @@ -157,6 +157,7 @@ environment = SubResource("Environment_fvsgw") [node name="DirectionalLight3D" type="DirectionalLight3D" parent="Environment"] transform = Transform3D(0.623013, -0.733525, 0.271653, 0.321394, 0.55667, 0.766045, -0.713134, -0.389948, 0.582563, 0, 10, 0) +light_energy = 0.15 shadow_enabled = true shadow_bias = 0.03 shadow_blur = 1.5 diff --git a/viewport/2d_in_3d/README.md b/viewport/2d_in_3d/README.md index 2046778dd4..4ca5469b10 100644 --- a/viewport/2d_in_3d/README.md +++ b/viewport/2d_in_3d/README.md @@ -4,7 +4,7 @@ A demo showing how a 2D scene can be shown within a 3D scene using viewports. Language: GDScript -Renderer: Forward Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/129 diff --git a/viewport/2d_in_3d/project.godot b/viewport/2d_in_3d/project.godot index e889b11def..aee5852c29 100644 --- a/viewport/2d_in_3d/project.godot +++ b/viewport/2d_in_3d/project.godot @@ -20,28 +20,29 @@ config/icon="res://icon.webp" [input] left_move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) ] } left_move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) ] } right_move_up={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) ] } right_move_down={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) ] } [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" +lights_and_shadows/directional_shadow/soft_shadow_filter_quality=4 anti_aliasing/quality/msaa_3d=2 -environment/default_environment="res://default_env.tres" diff --git a/viewport/3d_in_2d/3d_in_2d.tscn b/viewport/3d_in_2d/3d_in_2d.tscn index bd8a4bcd18..d3f1f4789e 100644 --- a/viewport/3d_in_2d/3d_in_2d.tscn +++ b/viewport/3d_in_2d/3d_in_2d.tscn @@ -29,7 +29,22 @@ region = Rect2(256, 0, 64, 64) [sub_resource type="SpriteFrames" id="7"] animations = [{ -"frames": [SubResource("2"), SubResource("3"), SubResource("4"), SubResource("5"), SubResource("6")], +"frames": [{ +"duration": 1.0, +"texture": SubResource("2") +}, { +"duration": 1.0, +"texture": SubResource("3") +}, { +"duration": 1.0, +"texture": SubResource("4") +}, { +"duration": 1.0, +"texture": SubResource("5") +}, { +"duration": 1.0, +"texture": SubResource("6") +}], "loop": true, "name": &"default", "speed": 5.0 @@ -51,10 +66,10 @@ position = Vector2(650, 300) texture = SubResource("ViewportTexture_2squv") [node name="AnimatedSprite2D" type="AnimatedSprite2D" parent="."] +texture_filter = 1 position = Vector2(350, 300) scale = Vector2(3, 3) -frames = SubResource("7") +sprite_frames = SubResource("7") [node name="Camera2D" type="Camera2D" parent="."] offset = Vector2(512, 300) -current = true diff --git a/viewport/3d_in_2d/README.md b/viewport/3d_in_2d/README.md index 39e52e8e6c..46e7290006 100644 --- a/viewport/3d_in_2d/README.md +++ b/viewport/3d_in_2d/README.md @@ -4,7 +4,7 @@ A demo showing how a 3D scene can be shown within a 2D one using viewports. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/128 diff --git a/viewport/3d_in_2d/project.godot b/viewport/3d_in_2d/project.godot index f78673565e..e6b9fffad9 100644 --- a/viewport/3d_in_2d/project.godot +++ b/viewport/3d_in_2d/project.godot @@ -21,3 +21,8 @@ config/icon="res://icon.webp" window/stretch/mode="canvas_items" window/stretch/aspect="expand" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/viewport/3d_scaling/project.godot b/viewport/3d_scaling/project.godot index a463a813c9..d21ed862d3 100644 --- a/viewport/3d_scaling/project.godot +++ b/viewport/3d_scaling/project.godot @@ -18,7 +18,7 @@ be used to have a \"pixel art\" viewport for the main game area and a non-pixel-art viewport for HUD elements." config/tags=PackedStringArray("3d", "demo", "official", "rendering") run/main_scene="res://hud.tscn" -config/features=PackedStringArray("4.3") +config/features=PackedStringArray("4.2") config/icon="res://icon.webp" [display] @@ -29,13 +29,13 @@ window/stretch/aspect="expand" [input] cycle_viewport_resolution={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":32,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } toggle_filtering={ -"deadzone": 0.5, -"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"location":0,"echo":false,"script":null) +"deadzone": 0.2, +"events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":4194309,"physical_keycode":0,"key_label":0,"unicode":0,"echo":false,"script":null) ] } diff --git a/viewport/README.md b/viewport/README.md index df8917d8f6..0892352472 100644 --- a/viewport/README.md +++ b/viewport/README.md @@ -4,6 +4,6 @@ These demos showcase various ways to use the [`Viewport`](https://docs.godotengine.org/en/stable/classes/class_viewport.html) node. Languages: All have GDScript, Dynamic Split Screen has -[GDSL](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) +[Godot shader language](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) -Renderers: 3D in 2D and GUI in 3D use GLES 3, the rest are GLES 2 +Renderers: 3D Scaling uses Forward+, the rest are Compatibility diff --git a/viewport/dynamic_split_screen/README.md b/viewport/dynamic_split_screen/README.md index 97ae4bb74d..8323e6b4e1 100644 --- a/viewport/dynamic_split_screen/README.md +++ b/viewport/dynamic_split_screen/README.md @@ -5,7 +5,7 @@ split screen, also called Voronoi split screen. Language: [Godot shader language](https://docs.godotengine.org/en/latest/tutorials/shaders/shader_reference/shading_language.html) and GDScript -Renderer: Forward Mobile +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/541 diff --git a/viewport/dynamic_split_screen/project.godot b/viewport/dynamic_split_screen/project.godot index 9e5a7b4202..feb0a6e5c0 100644 --- a/viewport/dynamic_split_screen/project.godot +++ b/viewport/dynamic_split_screen/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="Dynamic Split Screen" config/description="This sample project showcases an implementation of dynamic -split screen, also called Voronoi split screen, using GDSL." +split screen, also called Voronoi split screen, using the Godot shader language." config/tags=PackedStringArray("3d", "demo", "official") run/main_scene="res://split_screen.tscn" config/features=PackedStringArray("4.2") @@ -21,31 +21,31 @@ config/icon="res://icon.webp" [input] move_up_player1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":87,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":-1.0,"script":null) ] } move_down_player1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":83,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":1,"axis_value":1.0,"script":null) ] } move_left_player1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":65,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":-1.0,"script":null) ] } move_right_player1={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":68,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":0,"axis_value":1.0,"script":null) ] } move_up_player2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":73,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194320,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":-1.0,"script":null) @@ -53,7 +53,7 @@ move_up_player2={ ] } move_down_player2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":75,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194322,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":3,"axis_value":1.0,"script":null) @@ -61,7 +61,7 @@ move_down_player2={ ] } move_left_player2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":74,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194319,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":-1.0,"script":null) @@ -69,7 +69,7 @@ move_left_player2={ ] } move_right_player2={ -"deadzone": 0.5, +"deadzone": 0.2, "events": [Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":76,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventKey,"resource_local_to_scene":false,"resource_name":"","device":0,"window_id":0,"alt_pressed":false,"shift_pressed":false,"ctrl_pressed":false,"meta_pressed":false,"pressed":false,"keycode":0,"physical_keycode":4194321,"key_label":0,"unicode":0,"echo":false,"script":null) , Object(InputEventJoypadMotion,"resource_local_to_scene":false,"resource_name":"","device":0,"axis":2,"axis_value":1.0,"script":null) @@ -83,7 +83,8 @@ common/physics_ticks_per_second=120 [rendering] -renderer/rendering_method="mobile" +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" +lights_and_shadows/directional_shadow/soft_shadow_filter_quality=4 environment/defaults/default_clear_color=Color(1, 1, 1, 1) anti_aliasing/quality/msaa_3d=2 -environment/default_environment="res://default_env.tres" diff --git a/viewport/dynamic_split_screen/split_screen.tscn b/viewport/dynamic_split_screen/split_screen.tscn index 3857943f85..912eeebcfb 100644 --- a/viewport/dynamic_split_screen/split_screen.tscn +++ b/viewport/dynamic_split_screen/split_screen.tscn @@ -29,7 +29,7 @@ shader_parameter/split_active = false shader_parameter/player1_position = null shader_parameter/player2_position = null shader_parameter/split_line_thickness = 10.0 -shader_parameter/split_line_color = Vector3(0, 1, 0) +shader_parameter/split_line_color = null [sub_resource type="CapsuleMesh" id="2"] radius = 0.375 @@ -203,7 +203,7 @@ albedo_color = Color(0.791675, 0.946163, 0.317723, 1) [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] transform = Transform3D(-0.866025, -0.433013, 0.25, 0, 0.5, 0.866025, -0.5, 0.75, -0.433013, 0, 0, 0) -light_energy = 0.75 +light_energy = 0.05 shadow_enabled = true shadow_bias = 0.03 shadow_blur = 2.0 diff --git a/viewport/gui_in_3d/README.md b/viewport/gui_in_3d/README.md index 2e010b8046..f01e02952e 100644 --- a/viewport/gui_in_3d/README.md +++ b/viewport/gui_in_3d/README.md @@ -5,7 +5,7 @@ as well as forwarding mouse and keyboard input to the GUI. Language: GDScript -Renderer: GLES 3 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/127 diff --git a/viewport/gui_in_3d/gui_in_3d.tscn b/viewport/gui_in_3d/gui_in_3d.tscn index 277c39d694..0f701e27d3 100644 --- a/viewport/gui_in_3d/gui_in_3d.tscn +++ b/viewport/gui_in_3d/gui_in_3d.tscn @@ -13,7 +13,7 @@ sky_material = SubResource("ProceduralSkyMaterial_1lgdv") background_mode = 2 sky = SubResource("Sky_pq42j") tonemap_mode = 2 -glow_enabled = true +tonemap_white = 2.0 [sub_resource type="Animation" id="1"] length = 6.0 @@ -46,6 +46,11 @@ roughness = 0.0 [node name="GUIin3D" type="Node3D"] +[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."] +transform = Transform3D(-0.866023, -0.433016, 0.250001, 0, 0.499998, 0.866027, -0.500003, 0.749999, -0.43301, 0, 0, 0) +visible = false +shadow_enabled = true + [node name="WorldEnvironment" type="WorldEnvironment" parent="."] environment = SubResource("Environment_niyks") diff --git a/viewport/gui_in_3d/gui_panel_3d.tscn b/viewport/gui_in_3d/gui_panel_3d.tscn index 071380d238..f1402e244e 100644 --- a/viewport/gui_in_3d/gui_panel_3d.tscn +++ b/viewport/gui_in_3d/gui_panel_3d.tscn @@ -24,14 +24,14 @@ script = ExtResource("1") [node name="SubViewport" type="SubViewport" parent="."] gui_embed_subwindows = true -size = Vector2i(280, 180) +size = Vector2i(560, 360) render_target_update_mode = 4 [node name="GUI" type="Control" parent="SubViewport"] layout_mode = 3 anchors_preset = 0 -offset_right = 280.0 -offset_bottom = 180.0 +offset_right = 560.0 +offset_bottom = 360.0 mouse_filter = 1 [node name="Panel" type="Panel" parent="SubViewport/GUI"] @@ -40,12 +40,13 @@ anchor_right = 1.0 anchor_bottom = 1.0 [node name="VBoxContainer" type="VBoxContainer" parent="SubViewport/GUI/Panel"] -layout_mode = 0 +layout_mode = 1 +anchors_preset = 9 anchor_bottom = 1.0 -offset_left = 10.0 -offset_top = 10.0 -offset_right = 150.0 -offset_bottom = -10.0 +offset_left = 20.0 +offset_top = 20.0 +offset_right = 319.0 +offset_bottom = -20.0 grow_vertical = 2 theme_override_constants/separation = 13 @@ -63,53 +64,59 @@ layout_mode = 2 [node name="HSlider" type="HSlider" parent="SubViewport/GUI/Panel/VBoxContainer"] layout_mode = 2 +step = 0.0 ticks_on_borders = true [node name="ColorRect" type="ColorRect" parent="SubViewport/GUI/Panel"] -layout_mode = 0 +layout_mode = 1 +anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 -offset_left = -110.0 +offset_left = -182.0 offset_top = 16.0 -offset_right = -46.0 -offset_bottom = 80.0 +offset_right = -54.0 +offset_bottom = 144.0 +grow_horizontal = 0 color = Color(1, 0, 0, 1) [node name="TextureRect" type="TextureRect" parent="SubViewport/GUI/Panel"] -layout_mode = 0 +layout_mode = 1 +anchors_preset = 1 anchor_left = 1.0 anchor_right = 1.0 -offset_left = -102.0 -offset_top = 24.0 -offset_right = -54.0 -offset_bottom = 72.0 -grow_horizontal = 2 -grow_vertical = 2 +offset_left = -166.0 +offset_top = 32.0 +offset_right = -70.0 +offset_bottom = 128.0 +grow_horizontal = 0 texture = ExtResource("2") expand_mode = 1 [node name="VSlider" type="VSlider" parent="SubViewport/GUI/Panel"] -layout_mode = 0 +layout_mode = 1 +anchors_preset = 11 anchor_left = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -25.0 -offset_top = 5.0 +offset_left = -37.0 +offset_top = 16.0 offset_right = -5.0 -offset_bottom = -5.0 +offset_bottom = -16.0 grow_horizontal = 0 grow_vertical = 2 +step = 0.0 [node name="OptionButton" type="OptionButton" parent="SubViewport/GUI/Panel"] -layout_mode = 0 +layout_mode = 1 +anchors_preset = 3 anchor_left = 1.0 anchor_top = 1.0 anchor_right = 1.0 anchor_bottom = 1.0 -offset_left = -120.0 -offset_top = -80.0 -offset_right = -28.0 -offset_bottom = -26.0 +offset_left = -227.0 +offset_top = -208.0 +offset_right = -39.0 +offset_bottom = -147.0 grow_horizontal = 0 grow_vertical = 0 item_count = 3 diff --git a/viewport/gui_in_3d/project.godot b/viewport/gui_in_3d/project.godot index 261cd5c815..da44efc04f 100644 --- a/viewport/gui_in_3d/project.godot +++ b/viewport/gui_in_3d/project.godot @@ -18,9 +18,9 @@ run/main_scene="res://gui_in_3d.tscn" config/features=PackedStringArray("4.2") config/icon="res://icon.webp" -[gdnative] +[gui] -singletons=[] +theme/default_theme_scale=2.0 [layer_names] @@ -28,6 +28,7 @@ singletons=[] [rendering] +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" anti_aliasing/quality/msaa_3d=2 anti_aliasing/quality/use_debanding=true -environment/default_environment="res://default_env.tres" diff --git a/viewport/screen_capture/README.md b/viewport/screen_capture/README.md index 9e4ed83e32..deaeaa40fb 100644 --- a/viewport/screen_capture/README.md +++ b/viewport/screen_capture/README.md @@ -4,7 +4,7 @@ An example showing how to take screenshots of the screen. Language: GDScript -Renderer: GLES 2 +Renderer: Compatibility Check out this demo on the asset library: https://godotengine.org/asset-library/asset/130 diff --git a/viewport/screen_capture/project.godot b/viewport/screen_capture/project.godot index 39bd984fc2..2baac54022 100644 --- a/viewport/screen_capture/project.godot +++ b/viewport/screen_capture/project.godot @@ -20,3 +20,8 @@ config/icon="res://icon.webp" [display] window/stretch/mode="canvas_items" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/viewport/screen_capture/screen_capture.tscn b/viewport/screen_capture/screen_capture.tscn index ecc59adceb..b7528a07a7 100644 --- a/viewport/screen_capture/screen_capture.tscn +++ b/viewport/screen_capture/screen_capture.tscn @@ -8,6 +8,8 @@ layout_mode = 3 anchors_preset = 15 anchor_right = 1.0 anchor_bottom = 1.0 +grow_horizontal = 2 +grow_vertical = 2 script = ExtResource("1") [node name="Background" type="TextureRect" parent="."] @@ -30,7 +32,7 @@ offset_right = -128.0 offset_bottom = -75.0 grow_horizontal = 2 grow_vertical = 2 -ignore_texture_size = true +expand_mode = 1 stretch_mode = 4 [node name="CaptureButton" type="Button" parent="."] diff --git a/xr/openxr_character_centric_movement/README.md b/xr/openxr_character_centric_movement/README.md index 1e29131eaa..1679f7fbfb 100644 --- a/xr/openxr_character_centric_movement/README.md +++ b/xr/openxr_character_centric_movement/README.md @@ -3,8 +3,8 @@ This is a demo for an OpenXR project where player movement is handled with a CharacterBody3D as a base node. This is based on the [Character body centric solution as explained in the room scale manual page](https://docs.godotengine.org/en/stable/tutorials/xr/xr_room_scale.html#character-body-centric-solution). -Godot version: 4.1.x Language: GDScript + Renderer: compatibility ## How does it work? @@ -51,4 +51,3 @@ Please follow [the instructions for deploying on Android in the manual](https:// ## Screenshots ![Screenshot](screenshots/character_movement_demo.png) - diff --git a/xr/openxr_origin_centric_movement/README.md b/xr/openxr_origin_centric_movement/README.md index 312033d49f..5896fc232c 100644 --- a/xr/openxr_origin_centric_movement/README.md +++ b/xr/openxr_origin_centric_movement/README.md @@ -3,8 +3,8 @@ This is a demo for an OpenXR project where player movement is handled with a XRorigin3D as a base node. This is based on the [Origin centric solution as explained in the room scale manual page](https://docs.godotengine.org/en/stable/tutorials/xr/xr_room_scale.html#origin-centric-solution). -Godot version: 4.1.x Language: GDScript + Renderer: compatibility ## How does it work? @@ -50,4 +50,3 @@ Please follow [the instructions for deploying on Android in the manual](https:// ## Screenshots ![Screenshot](screenshots/origin_movement_demo.png) -