diff --git a/.github/workflows/desktop-export.yml b/.github/workflows/desktop-export.yml index 4ad62ca..523f6cd 100644 --- a/.github/workflows/desktop-export.yml +++ b/.github/workflows/desktop-export.yml @@ -7,7 +7,7 @@ on: env: GODOT_VERSION: 4.3 EXPORT_NAME: ClickyCat - TAG: v2.0.1 + TAG: v2.0.2 jobs: export-windows: diff --git a/.godot/editor/cat.tscn-editstate-c9f37bd5c489129b09af6eb9db6796b0.cfg b/.godot/editor/cat.tscn-editstate-c9f37bd5c489129b09af6eb9db6796b0.cfg index 5cc6aeb..5014d44 100644 --- a/.godot/editor/cat.tscn-editstate-c9f37bd5c489129b09af6eb9db6796b0.cfg +++ b/.godot/editor/cat.tscn-editstate-c9f37bd5c489129b09af6eb9db6796b0.cfg @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/move")]) diff --git a/.godot/editor/editor_layout.cfg b/.godot/editor/editor_layout.cfg index 7d6c8b5..490c69b 100644 --- a/.godot/editor/editor_layout.cfg +++ b/.godot/editor/editor_layout.cfg @@ -17,8 +17,8 @@ dock_filesystem_v_split_offset=0 dock_filesystem_display_mode=0 dock_filesystem_file_sort=0 dock_filesystem_file_list_display_mode=1 -dock_filesystem_selected_paths=PackedStringArray("res://options.tscn") -dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://scripts/", "res://assets/img/") +dock_filesystem_selected_paths=PackedStringArray("res://export_presets.cfg") +dock_filesystem_uncollapsed_paths=PackedStringArray("Favorites", "res://", "res://assets/img/") dock_3="Scene,Import" dock_4="FileSystem" dock_5="Inspector,Node,History" @@ -26,11 +26,11 @@ dock_5="Inspector,Node,History" [EditorNode] open_scenes=PackedStringArray("res://title.tscn", "res://game.tscn", "res://lost.tscn", "res://win.tscn", "res://global.tscn", "res://leaderboard.tscn", "res://cat.tscn", "res://options.tscn") -current_scene="res://game.tscn" +current_scene="res://global.tscn" center_split_offset=0 selected_default_debugger_tab_idx=1 selected_main_editor_idx=2 -selected_bottom_panel_item=1 +selected_bottom_panel_item=0 [EditorWindow] @@ -42,8 +42,8 @@ size=Vector2i(1152, 648) [ScriptEditor] open_scripts=["res://scripts/balloon.gd", "res://cat.gd", "res://scripts/credits.gd", "res://scripts/autoloads/Global.gd", "res://leaderboard.gd", "res://addons/quiver_leaderboards/leaderboards.gd", "res://scripts/lost.gd", "res://scripts/options.gd", "res://scripts/parallax_background.gd", "res://scripts/title.gd", "res://scripts/win.gd", "res://scripts/win_maker.gd"] -selected_script="res://cat.gd" -open_help=["CenterContainer", "Node"] +selected_script="res://scripts/autoloads/Global.gd" +open_help=[] script_split_offset=200 list_split_offset=0 zoom_factor=1.21429 diff --git a/.godot/editor/filesystem_cache8 b/.godot/editor/filesystem_cache8 index 293ef7f..13c2a0c 100644 --- a/.godot/editor/filesystem_cache8 +++ b/.godot/editor/filesystem_cache8 @@ -1,23 +1,25 @@ -ea4bc82a6ad023ab7ee23ee620429895 -::res://::1733687190 +fc8a56933c4b1c8d796fdb8f7a9f9475 +::res://::1733941073 blankBG.tscn::PackedScene::8989731463101332631::1733614033::0::1::::<><><><>::res://parallax_background.gd<>uid://d5bfhq8rs7g1::::res://assets/img/clouds.png<>uid://b7yb2ayqtr74d::::res://assets/img/grass1.png -cat.gd::GDScript::-1::1733676740::0::1::::<>Area2D<><><>:: +cat.gd::GDScript::-1::1733784640::0::1::::<>Area2D<><><>:: +cat.tscn::PackedScene::1830856685083015809::1733697831::0::1::::<><><><>::uid://c14sn4owrr1et::::res://assets/img/cat.png +CODE_OF_CONDUCT.md::TextFile::-1::1733784640::0::1::::<><><><>:: credits.tscn::PackedScene::9040882687680894068::1733614033::0::1::::<><><><>::uid://c4f3f4o1dmt6d::::res://assets/img/credits.png<>res://scripts/credits.gd<>uid://cnv1rmmxmj0m4::::res://scripts/background.tscn<>uid://dxjovxyl7xvqv::::res://theme.tres default_bus_layout.tres::AudioBusLayout::8537897641609174421::1733614033::0::1::::<><><><>:: -export_presets.cfg::TextFile::-1::1733672389::0::1::::<><><><>:: -game.tscn::PackedScene::795297923285399586::1733686246::0::1::::<><><><>::uid://d1cxtfy37f8g6::::res://blankBG.tscn<>uid://dvtvijybmd17u::::res://assets/img/DogBark.png<>uid://c14sn4owrr1et::::res://assets/img/cat.png<>res://cat.gd<>uid://q6sdcy6arc01::::res://assets/img/mountain.png<>res://scripts/balloon.gd<>uid://6233fyevq60n::::res://assets/img/balloon.png -global.tscn::PackedScene::4547511322143187409::1733686260::0::1::::<><><><>::res://scripts/autoloads/Global.gd<>uid://cas3diym2lyfa::::res://assets/music2.mp3<>uid://doyscnoadhdpr::::res://assets/otherTrack.mp3<>uid://c4tvfxaxbe20j::::res://assets/bark.mp3 +export_presets.cfg::TextFile::-1::1733868091::0::1::::<><><><>:: +game.tscn::PackedScene::795297923285399586::1733867108::0::1::::<><><><>::uid://d1cxtfy37f8g6::::res://blankBG.tscn<>uid://dvtvijybmd17u::::res://assets/img/DogBark.png<>uid://c14sn4owrr1et::::res://assets/img/cat.png<>res://cat.gd<>uid://q6sdcy6arc01::::res://assets/img/mountain.png<>res://scripts/balloon.gd<>uid://6233fyevq60n::::res://assets/img/balloon.png<>uid://b1fc8abfnvh06::::res://options.tscn +global.tscn::PackedScene::4547511322143187409::1733868178::0::1::::<><><><>::res://scripts/autoloads/Global.gd<>uid://cas3diym2lyfa::::res://assets/music2.mp3<>uid://doyscnoadhdpr::::res://assets/otherTrack.mp3<>uid://c4tvfxaxbe20j::::res://assets/bark.mp3 icon.PNG::CompressedTexture2D::5128141537072954323::1733614033::1733614186::1::::<><><>6f37393ccc3cae0e9664cdc0d0b83aee<>res://.godot/imported/icon.PNG-f00859738d1571b1908d86aaf1382cd1.ctex:: leaderboard.gd::GDScript::-1::1733673119::0::1::::<>Control<><><>:: -leaderboard.tscn::PackedScene::3362712309752900219::1733686247::0::1::::<><><><>::uid://dgygkbtm0burn::::res://addons/quiver_leaderboards/leaderboard_ui.tscn<>res://leaderboard.gd<>uid://dmtxetv3vy6f7::::res://assets/img/buttons/titleButton.png -lost.tscn::PackedScene::5602150030778522318::1733686247::0::1::::<><><><>::res://scripts/lost.gd<>uid://dux2id3ro3uwp::::res://assets/img/Lost.png<>uid://7wq6qjf0wd2m::::res://assets/img/buttons/exitButton.png<>uid://dmtxetv3vy6f7::::res://assets/img/buttons/titleButton.png +leaderboard.tscn::PackedScene::3362712309752900219::1733697831::0::1::::<><><><>::uid://dgygkbtm0burn::::res://addons/quiver_leaderboards/leaderboard_ui.tscn<>res://leaderboard.gd<>uid://dmtxetv3vy6f7::::res://assets/img/buttons/titleButton.png +lost.tscn::PackedScene::5602150030778522318::1733697831::0::1::::<><><><>::res://scripts/lost.gd<>uid://dux2id3ro3uwp::::res://assets/img/Lost.png<>uid://7wq6qjf0wd2m::::res://assets/img/buttons/exitButton.png<>uid://dmtxetv3vy6f7::::res://assets/img/buttons/titleButton.png +options.tscn::PackedScene::4221832874026824677::1733697831::0::1::::<><><><>::uid://byw12ulph3pjw::::res://assets/img/SCROLL.PNG<>res://scripts/options.gd<>uid://dmtxetv3vy6f7::::res://assets/img/buttons/titleButton.png<>uid://bk6whxyanspb8::::res://assets/img/buttons/playButton.png parallax_background.gd::GDScript::-1::1733614033::0::1::::<>ParallaxBackground<><><>:: -README.md::TextFile::-1::1733614033::0::1::::<><><><>:: -cat.tscn::PackedScene::1830856685083015809::1733686247::0::1::::<><><><>::uid://c14sn4owrr1et::::res://assets/img/cat.png -options.tscn::PackedScene::4221832874026824677::1733687190::0::1::::<><><><>::uid://byw12ulph3pjw::::res://assets/img/SCROLL.PNG<>uid://7wq6qjf0wd2m::::res://assets/img/buttons/exitButton.png<>uid://bk6whxyanspb8::::res://assets/img/buttons/playButton.png<>uid://cnv1rmmxmj0m4::::res://scripts/background.tscn +README.md::TextFile::-1::1733784640::0::1::::<><><><>:: +SECURITY.md::TextFile::-1::1733784640::0::1::::<><><><>:: theme.tres::Theme::8793073639767159841::1733614033::0::1::::<><><><>:: -title.tscn::PackedScene::5197966286441788386::1733686246::0::1::::<><><><>::uid://cnv1rmmxmj0m4::::res://scripts/background.tscn<>res://scripts/title.gd<>uid://bk6whxyanspb8::::res://assets/img/buttons/playButton.png<>uid://b5lkntqbmqbma::::res://assets/img/buttons/creditsButton.png<>uid://7wq6qjf0wd2m::::res://assets/img/buttons/exitButton.png<>uid://c3pd7osh6hxqd::::res://assets/img/trophy.png -win.tscn::PackedScene::6323463507231868784::1733686247::0::1::::<><><><>::res://scripts/win.gd<>uid://c3pd7osh6hxqd::::res://assets/img/trophy.png<>uid://n85ydfhmpl3b::::res://assets/img/luna.png<>uid://clw216irx0h74::::res://winBG.tscn<>uid://c14sn4owrr1et::::res://assets/img/cat.png +title.tscn::PackedScene::5197966286441788386::1733697830::0::1::::<><><><>::uid://cnv1rmmxmj0m4::::res://scripts/background.tscn<>res://scripts/title.gd<>uid://bk6whxyanspb8::::res://assets/img/buttons/playButton.png<>uid://b5lkntqbmqbma::::res://assets/img/buttons/creditsButton.png<>uid://7wq6qjf0wd2m::::res://assets/img/buttons/exitButton.png<>uid://c3pd7osh6hxqd::::res://assets/img/trophy.png +win.tscn::PackedScene::6323463507231868784::1733868106::0::1::::<><><><>::res://scripts/win.gd<>uid://c3pd7osh6hxqd::::res://assets/img/trophy.png<>uid://n85ydfhmpl3b::::res://assets/img/luna.png<>uid://clw216irx0h74::::res://winBG.tscn<>uid://c14sn4owrr1et::::res://assets/img/cat.png winBG.tscn::PackedScene::5592022388826514769::1733614033::0::1::::<><><><>::res://parallax_background.gd<>uid://d5bfhq8rs7g1::::res://assets/img/clouds.png<>uid://b7yb2ayqtr74d::::res://assets/img/grass1.png<>uid://bbfsx5i8yms2p::::res://assets/img/confetti1.png ::res://addons/::1733663508 ::res://addons/quiver_analytics/::1733663509 @@ -39,6 +41,7 @@ player_accounts.gd::GDScript::-1::1733614033::0::1::::<>Node<><><>:: player_accounts.tscn::PackedScene::2665504115330199153::1733614033::0::1::::<><><><>::res://addons/quiver_player_accounts/player_accounts.gd plugin.cfg::TextFile::-1::1733614033::0::1::::<><><><>:: plugin.gd::GDScript::-1::1733614033::0::1::::<>EditorPlugin<><><>:: +::res://android/::1733858959 ::res://assets/::1733614185 bark.mp3::AudioStreamMP3::6848826205117490903::1733614033::1733614185::1::::<><><>2cba1aacf55717edc40e186de795ebbe<>res://.godot/imported/bark.mp3-05b54de12c65527e8405d1fb721f24eb.mp3str:: click.mp3::AudioStreamMP3::8598496461792053527::1733614033::1733614185::1::::<><><>79ad2fe955b1b768eea13775b10f9905<>res://.godot/imported/click.mp3-5875843e5b9582443cd7fa5f02b4c1bb.mp3str:: @@ -64,7 +67,7 @@ trophy.png::CompressedTexture2D::6769334715438419719::1733614033::1733614186::1: ::res://assets/img/alternateArt/::1733614033 ::res://assets/img/alternateArt/realistic/::1733614185 cat.jpg::CompressedTexture2D::5569473102763993427::1733614033::1733614185::1::::<><><>286d8bea5793c9ad50aa4e04a9d1b9f9<>res://.godot/imported/cat.jpg-014a50db2ab3e7c3d57213c4a729796f.ctex:: -::res://assets/img/buttons/::1733687244 +::res://assets/img/buttons/::1733687246 creditsButton.png::CompressedTexture2D::4515425556099783676::1733614033::1733614185::1::::<><><>c822c7488ecb750a71317573e36b883b<>res://.godot/imported/creditsButton.png-76195d079e4af86422fcf651b3e2d4fe.ctex:: exitButton.png::CompressedTexture2D::2292486993039963214::1733614033::1733614185::1::::<><><>35b7baa599566a2d02500ef3b7d3fac6<>res://.godot/imported/exitButton.png-730940b9739e1cc302df395cd888c4fd.ctex:: playButton.png::CompressedTexture2D::3153654349977930975::1733687213::1733687246::1::::<><><>c791a818c78b4136024f4c3e367a1fb6<>res://.godot/imported/playButton.png-7e0602df38bc501acf4fffc57edd926a.ctex:: @@ -76,14 +79,15 @@ index.icon.png::CompressedTexture2D::5891430213880859989::1733614033::1733614185 index.png::CompressedTexture2D::73725988138802910::1733614033::1733614186::1::::<><><>79b0b3bc506e17a064861d579e7384ac<>res://.godot/imported/index.png-2770f543c84e6b55d99f3bb624b49866.ctex:: ::res://builds/windows/::1733614033 desktop.ini::TextFile::-1::1733614033::0::1::::<><><><>:: -::res://scripts/::1733676648 +::res://scripts/::1733784640 background.tscn::PackedScene::5730257917703478273::1733614033::0::1::::<><><><>::res://scripts/parallax_background.gd<>uid://d5bfhq8rs7g1::::res://assets/img/clouds.png<>uid://b7yb2ayqtr74d::::res://assets/img/grass1.png<>uid://85bsffvfh3gr::::res://assets/img/house.PNG<>uid://dvtvijybmd17u::::res://assets/img/DogBark.png<>uid://c14sn4owrr1et::::res://assets/img/cat.png -balloon.gd::GDScript::-1::1733672912::0::1::::<>TextureButton<><><>:: +balloon.gd::GDScript::-1::1733784640::0::1::::<>TextureButton<><><>:: credits.gd::GDScript::-1::1733614033::0::1::::<>Node2D<><><>:: -lost.gd::GDScript::-1::1733673188::0::1::::<>Control<><><>:: +lost.gd::GDScript::-1::1733784640::0::1::::<>Control<><><>:: +options.gd::GDScript::-1::1733784640::0::1::::<>Control<><><>:: parallax_background.gd::GDScript::-1::1733673226::0::1::::<>ParallaxBackground<><><>:: title.gd::GDScript::-1::1733673237::0::1::::<>Control<><><>:: win.gd::GDScript::-1::1733676648::0::1::::<>Control<><><>:: win_maker.gd::GDScript::-1::1733614033::0::1::::<>RefCounted<><><>:: -::res://scripts/autoloads/::1733676638 -Global.gd::GDScript::-1::1733676638::0::1::::<>Node<><><>:: +::res://scripts/autoloads/::1733868146 +Global.gd::GDScript::-1::1733868146::0::1::::<>Node<><><>:: diff --git a/.godot/editor/filesystem_update4 b/.godot/editor/filesystem_update4 index 475114e..09a2e1b 100644 --- a/.godot/editor/filesystem_update4 +++ b/.godot/editor/filesystem_update4 @@ -1,17 +1 @@ -res://game.tscn -res://cat.tscn -res://scripts/balloon.gd -res://cat.gd -res://scripts/autoloads/Global.gd -res://leaderboard.gd -res://scripts/lost.gd -res://scripts/parallax_background.gd -res://title.tscn -res://scripts/title.gd -res://lost.tscn -res://win.tscn res://global.tscn -res://leaderboard.tscn -res://scripts/win.gd -res://options.tscn -res://scripts/options.gd diff --git a/.godot/editor/game.tscn-editstate-609f762188a68253d349ec58c4f3a8d3.cfg b/.godot/editor/game.tscn-editstate-609f762188a68253d349ec58c4f3a8d3.cfg index 7e0e0cf..421edad 100644 --- a/.godot/editor/game.tscn-editstate-609f762188a68253d349ec58c4f3a8d3.cfg +++ b/.godot/editor/game.tscn-editstate-609f762188a68253d349ec58c4f3a8d3.cfg @@ -8,7 +8,7 @@ Anim={ "grid_snap_active": false, "grid_step": Vector2(8, 8), "grid_visibility": 1, -"ofs": Vector2(-2544.07, -868.825), +"ofs": Vector2(-1110.87, -366.444), "primary_grid_step": Vector2i(8, 8), "show_group_gizmos": true, "show_guides": true, @@ -34,7 +34,7 @@ Anim={ "snap_rotation_step": 0.261799, "snap_scale": false, "snap_scale_step": 0.1, -"zoom": 0.263331 +"zoom": 0.466507 } 3D={ "fov": 70.01, @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game")]) diff --git a/.godot/editor/game.tscn-folding-609f762188a68253d349ec58c4f3a8d3.cfg b/.godot/editor/game.tscn-folding-609f762188a68253d349ec58c4f3a8d3.cfg index a19ef4d..30682bd 100644 --- a/.godot/editor/game.tscn-folding-609f762188a68253d349ec58c4f3a8d3.cfg +++ b/.godot/editor/game.tscn-folding-609f762188a68253d349ec58c4f3a8d3.cfg @@ -1,5 +1,5 @@ [folding] -node_unfolds=[NodePath("ground/CollisionShape2D"), PackedStringArray("Transform"), NodePath("cat/Sprite2D"), PackedStringArray("Transform"), NodePath("cat/CollisionShape2D"), PackedStringArray("Transform"), NodePath("mountain"), PackedStringArray("Transform"), NodePath("mountain/Sprite2D"), PackedStringArray("Transform"), NodePath("winZone/CollisionShape2D"), PackedStringArray("Transform"), NodePath("path/follower"), PackedStringArray("Transform"), NodePath("path/follower/dog/dog2"), PackedStringArray("Transform", "Animation"), NodePath("path/follower/dog/dogShapew"), PackedStringArray("Transform"), NodePath("scoire"), PackedStringArray("Layout", "label_settings"), NodePath("move"), PackedStringArray("Layout", "Layout/Transform"), NodePath("balloon"), PackedStringArray("Textures", "Layout", "Layout/Transform")] +node_unfolds=[NodePath("ground/CollisionShape2D"), PackedStringArray("Transform"), NodePath("cat/Sprite2D"), PackedStringArray("Transform"), NodePath("cat/CollisionShape2D"), PackedStringArray("Transform"), NodePath("mountain"), PackedStringArray("Transform"), NodePath("mountain/Sprite2D"), PackedStringArray("Transform"), NodePath("winZone/CollisionShape2D"), PackedStringArray("Transform"), NodePath("path/follower"), PackedStringArray("Transform"), NodePath("path/follower/dog/dog2"), PackedStringArray("Transform", "Animation"), NodePath("path/follower/dog/dogShapew"), PackedStringArray("Transform"), NodePath("scoire"), PackedStringArray("Layout", "label_settings"), NodePath("move"), PackedStringArray("Layout", "Layout/Transform", "Text Behavior"), NodePath("balloon"), PackedStringArray("Textures", "Layout", "Layout/Transform")] resource_unfolds=["res://game.tscn::RectangleShape2D_qidma", PackedStringArray("Resource"), "res://game.tscn::RectangleShape2D_ya2gc", PackedStringArray("Resource"), "res://game.tscn::RectangleShape2D_36uyj", PackedStringArray("Resource"), "res://game.tscn::Curve2D_ii427", PackedStringArray("Resource"), "res://game.tscn::SpriteFrames_6fwbv", PackedStringArray("Resource"), "res://game.tscn::RectangleShape2D_fkqua", PackedStringArray("Resource"), "res://game.tscn::LabelSettings_25a57", PackedStringArray("Resource", "Font")] nodes_folded=[] diff --git a/.godot/editor/global.tscn-editstate-cf8532bc06c1243e731119a1dc90fa78.cfg b/.godot/editor/global.tscn-editstate-cf8532bc06c1243e731119a1dc90fa78.cfg index 5cc6aeb..5bd43be 100644 --- a/.godot/editor/global.tscn-editstate-cf8532bc06c1243e731119a1dc90fa78.cfg +++ b/.godot/editor/global.tscn-editstate-cf8532bc06c1243e731119a1dc90fa78.cfg @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/Global")]) diff --git a/.godot/editor/leaderboard.tscn-editstate-986c14fa01200b984fb7db8cdd09e3d6.cfg b/.godot/editor/leaderboard.tscn-editstate-986c14fa01200b984fb7db8cdd09e3d6.cfg index 5359753..ea95ce7 100644 --- a/.godot/editor/leaderboard.tscn-editstate-986c14fa01200b984fb7db8cdd09e3d6.cfg +++ b/.godot/editor/leaderboard.tscn-editstate-986c14fa01200b984fb7db8cdd09e3d6.cfg @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/move")]) diff --git a/.godot/editor/lost.tscn-editstate-cd2814503a583fbc56b4fbca8ac6bb35.cfg b/.godot/editor/lost.tscn-editstate-cd2814503a583fbc56b4fbca8ac6bb35.cfg index 2623958..bf15585 100644 --- a/.godot/editor/lost.tscn-editstate-cd2814503a583fbc56b4fbca8ac6bb35.cfg +++ b/.godot/editor/lost.tscn-editstate-cd2814503a583fbc56b4fbca8ac6bb35.cfg @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/move")]) diff --git a/.godot/editor/options.tscn-editstate-81d5e5f4d8ea6b28f46e73e417c2a457.cfg b/.godot/editor/options.tscn-editstate-81d5e5f4d8ea6b28f46e73e417c2a457.cfg index ab31cd0..799f871 100644 --- a/.godot/editor/options.tscn-editstate-81d5e5f4d8ea6b28f46e73e417c2a457.cfg +++ b/.godot/editor/options.tscn-editstate-81d5e5f4d8ea6b28f46e73e417c2a457.cfg @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/move")]) diff --git a/.godot/editor/project_metadata.cfg b/.godot/editor/project_metadata.cfg index 397fbcd..d1d1443 100644 --- a/.godot/editor/project_metadata.cfg +++ b/.godot/editor/project_metadata.cfg @@ -6,7 +6,7 @@ use_advanced_connections=false [recent_files] scenes=["res://options.tscn", "res://cat.tscn", "res://global.tscn", "res://title.tscn", "res://win.tscn", "res://lost.tscn", "res://game.tscn"] -scripts=["res://scripts/options.gd", "CenterContainer", "res://addons/quiver_leaderboards/leaderboards.gd", "res://scripts/win_maker.gd", "res://scripts/parallax_background.gd", "res://scripts/credits.gd", "res://music.gd", "Node", "res://addons/addons/godot_firebase_lite/plugin.gd", "res://addons/godot-firebase/firebase/firebase.gd"] +scripts=["res://export_presets.cfg", "Node", "CenterContainer", "res://scripts/options.gd", "res://addons/quiver_leaderboards/leaderboards.gd", "res://scripts/win_maker.gd", "res://scripts/parallax_background.gd", "res://scripts/credits.gd", "res://music.gd", "res://addons/addons/godot_firebase_lite/plugin.gd"] [dialog_bounds] @@ -18,7 +18,7 @@ create_new_node=Rect2(510, 190, 900, 700) [color_picker] picker_shape=3 -recent_presets=PackedColorArray(0, 0, 0, 1) +recent_presets=PackedColorArray(0, 0, 0, 1, 0.195463, 0.204899, 0.445005, 1, 0.191678, 0.205467, 0.447359, 1, 0.404013, 0.118637, 0.218762, 1, 0.223395, 0.238504, 0.271394, 1, 0.0805347, 0.265593, 0.306725, 1) [script_setup] diff --git a/.godot/editor/recent_dirs b/.godot/editor/recent_dirs index 33ecd43..0871538 100644 --- a/.godot/editor/recent_dirs +++ b/.godot/editor/recent_dirs @@ -1,7 +1,7 @@ +C:/Users/Aarav/Documents/games/ClickyCat2/builds/linux res:// res://assets/img C:/Users/Aarav/Documents/games/ClickyCat2/builds/web res://addons -C:/Users/Aarav/Documents/games/ClickyCat2/builds/linux C:/Users/Aarav/Documents/games/ClickyCat2/builds/windows C:/Users/Aarav/Documents diff --git a/.godot/editor/script_editor_cache.cfg b/.godot/editor/script_editor_cache.cfg index a0d1c28..6f58d9b 100644 --- a/.godot/editor/script_editor_cache.cfg +++ b/.godot/editor/script_editor_cache.cfg @@ -6,8 +6,8 @@ state={ "column": 0, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 59, -"scroll_position": 49.0, +"row": 66, +"scroll_position": 47.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -17,10 +17,10 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 0, +"column": 15, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 2, +"row": 9, "scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" @@ -31,11 +31,11 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 59, +"column": 40, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 12, -"scroll_position": 5.0, +"row": 11, +"scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -48,8 +48,8 @@ state={ "column": 0, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 22, -"scroll_position": 3.0, +"row": 7, +"scroll_position": 0.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -73,11 +73,11 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 0, +"column": 36, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 27, -"scroll_position": 19.0, +"row": 29, +"scroll_position": 18.0, "selection": false, "syntax_highlighter": "GDScript" } @@ -157,11 +157,25 @@ state={ state={ "bookmarks": PackedInt32Array(), "breakpoints": PackedInt32Array(), -"column": 3, +"column": 15, "folded_lines": Array[int]([]), "h_scroll_position": 0, -"row": 15, -"scroll_position": 2.0, +"row": 10, +"scroll_position": 1.0, "selection": false, "syntax_highlighter": "GDScript" } + +[res://export_presets.cfg] + +state={ +"bookmarks": PackedInt32Array(), +"breakpoints": PackedInt32Array(), +"column": 17, +"folded_lines": Array[int]([]), +"h_scroll_position": 0, +"row": 75, +"scroll_position": 382.0, +"selection": false, +"syntax_highlighter": "Plain Text" +} diff --git a/.godot/editor/title.tscn-editstate-83ab91b9e9b044f82378160816dcd4b5.cfg b/.godot/editor/title.tscn-editstate-83ab91b9e9b044f82378160816dcd4b5.cfg index 134bc50..739ab3b 100644 --- a/.godot/editor/title.tscn-editstate-83ab91b9e9b044f82378160816dcd4b5.cfg +++ b/.godot/editor/title.tscn-editstate-83ab91b9e9b044f82378160816dcd4b5.cfg @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/move")]) diff --git a/.godot/editor/win.tscn-editstate-bce6b1006fc0455ff8acf2911ff11243.cfg b/.godot/editor/win.tscn-editstate-bce6b1006fc0455ff8acf2911ff11243.cfg index 37e62ef..ef8b3a0 100644 --- a/.godot/editor/win.tscn-editstate-bce6b1006fc0455ff8acf2911ff11243.cfg +++ b/.godot/editor/win.tscn-editstate-bce6b1006fc0455ff8acf2911ff11243.cfg @@ -8,7 +8,7 @@ Anim={ "grid_snap_active": false, "grid_step": Vector2(8, 8), "grid_visibility": 1, -"ofs": Vector2(-184.663, -156.488), +"ofs": Vector2(-556.182, -521.055), "primary_grid_step": Vector2i(8, 8), "show_group_gizmos": true, "show_guides": true, @@ -34,7 +34,7 @@ Anim={ "snap_rotation_step": 0.261799, "snap_scale": false, "snap_scale_step": 0.1, -"zoom": 0.826446 +"zoom": 0.513158 } 3D={ "fov": 70.01, @@ -183,4 +183,4 @@ Anim={ "zfar": 4000.01, "znear": 0.05 } -selected_nodes=Array[NodePath]([NodePath("/root/@EditorNode@17792/@Panel@13/@VBoxContainer@14/DockHSplitLeftL/DockHSplitLeftR/DockHSplitMain/@VBoxContainer@25/DockVSplitCenter/@VSplitContainer@52/@VBoxContainer@53/@EditorMainScreen@98/MainScreen/@CanvasItemEditor@9907/@VSplitContainer@9729/@HSplitContainer@9731/@HSplitContainer@9733/@Control@9734/@SubViewportContainer@9735/@SubViewport@9736/game/cat")]) +selected_nodes=Array[NodePath]([]) diff --git a/.godot/export_credentials.cfg b/.godot/export_credentials.cfg index c426a80..7128939 100644 --- a/.godot/export_credentials.cfg +++ b/.godot/export_credentials.cfg @@ -16,17 +16,15 @@ script_encryption_key="" script_encryption_key="" -[preset.3] +[preset.2.options] -script_encryption_key="" +keystore/debug="" +keystore/debug_user="" +keystore/debug_password="" +keystore/release="" +keystore/release_user="" +keystore/release_password="" -[preset.3.options] +[preset.3] -codesign/certificate_file="" -codesign/certificate_password="" -codesign/provisioning_profile="" -notarization/apple_id_name="" -notarization/apple_id_password="" -notarization/api_uuid="" -notarization/api_key="" -notarization/api_key_id="" +script_encryption_key="" diff --git a/.godot/uid_cache.bin b/.godot/uid_cache.bin index 254d5d9..3b558b1 100644 Binary files a/.godot/uid_cache.bin and b/.godot/uid_cache.bin differ diff --git a/android/.build_version b/android/.build_version new file mode 100644 index 0000000..09709b3 --- /dev/null +++ b/android/.build_version @@ -0,0 +1 @@ +4.4.dev3 diff --git a/android/build/.gdignore b/android/build/.gdignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/android/build/.gdignore @@ -0,0 +1 @@ + diff --git a/android/build/AndroidManifest.xml b/android/build/AndroidManifest.xml new file mode 100644 index 0000000..0cc929d --- /dev/null +++ b/android/build/AndroidManifest.xml @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/build/assetPacks/installTime/build.gradle b/android/build/assetPacks/installTime/build.gradle new file mode 100644 index 0000000..46fa046 --- /dev/null +++ b/android/build/assetPacks/installTime/build.gradle @@ -0,0 +1,10 @@ +plugins { + id 'com.android.asset-pack' +} + +assetPack { + packName = "installTime" // Directory name for the asset pack + dynamicDelivery { + deliveryType = "install-time" // Delivery mode + } +} diff --git a/android/build/build.gradle b/android/build/build.gradle new file mode 100644 index 0000000..308f126 --- /dev/null +++ b/android/build/build.gradle @@ -0,0 +1,290 @@ +// Gradle build config for Godot Engine's Android port. +plugins { + id 'com.android.application' + id 'org.jetbrains.kotlin.android' +} + +apply from: 'config.gradle' + +allprojects { + repositories { + google() + mavenCentral() + gradlePluginPortal() + maven { url "https://plugins.gradle.org/m2/" } + maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/"} + + // Godot user plugins custom maven repos + String[] mavenRepos = getGodotPluginsMavenRepos() + if (mavenRepos != null && mavenRepos.size() > 0) { + for (String repoUrl : mavenRepos) { + maven { + url repoUrl + } + } + } + } +} + +configurations { + // Initializes a placeholder for the devImplementation dependency configuration. + devImplementation {} + // Initializes a placeholder for the monoImplementation dependency configuration. + monoImplementation {} +} + +dependencies { + implementation "androidx.fragment:fragment:$versions.fragmentVersion" + implementation "androidx.core:core-splashscreen:$versions.splashscreenVersion" + + if (rootProject.findProject(":lib")) { + implementation project(":lib") + } else if (rootProject.findProject(":godot:lib")) { + implementation project(":godot:lib") + } else { + // Godot gradle build mode. In this scenario this project is the only one around and the Godot + // library is available through the pre-generated godot-lib.*.aar android archive files. + debugImplementation fileTree(dir: 'libs/debug', include: ['**/*.jar', '*.aar']) + devImplementation fileTree(dir: 'libs/dev', include: ['**/*.jar', '*.aar']) + releaseImplementation fileTree(dir: 'libs/release', include: ['**/*.jar', '*.aar']) + } + + // Godot user plugins remote dependencies + String[] remoteDeps = getGodotPluginsRemoteBinaries() + if (remoteDeps != null && remoteDeps.size() > 0) { + for (String dep : remoteDeps) { + implementation dep + } + } + + // Godot user plugins local dependencies + String[] pluginsBinaries = getGodotPluginsLocalBinaries() + if (pluginsBinaries != null && pluginsBinaries.size() > 0) { + implementation files(pluginsBinaries) + } + + // Automatically pick up local dependencies in res://addons + String addonsDirectory = getAddonsDirectory() + if (addonsDirectory != null && !addonsDirectory.isBlank()) { + implementation fileTree(dir: "$addonsDirectory", include: ['*.jar', '*.aar']) + } + + // .NET dependencies + String jar = '../../../../modules/mono/thirdparty/libSystem.Security.Cryptography.Native.Android.jar' + if (file(jar).exists()) { + monoImplementation files(jar) + } +} + +android { + compileSdkVersion versions.compileSdk + buildToolsVersion versions.buildTools + ndkVersion versions.ndkVersion + + compileOptions { + sourceCompatibility versions.javaVersion + targetCompatibility versions.javaVersion + } + + kotlinOptions { + jvmTarget = versions.javaVersion + } + + assetPacks = [":assetPacks:installTime"] + + namespace = 'com.godot.game' + + defaultConfig { + // The default ignore pattern for the 'assets' directory includes hidden files and directories which are used by Godot projects. + aaptOptions { + ignoreAssetsPattern "!.svn:!.git:!.gitignore:!.ds_store:!*.scc:_*:!CVS:!thumbs.db:!picasa.ini:!*~" + } + + ndk { + String[] export_abi_list = getExportEnabledABIs() + abiFilters export_abi_list + } + + manifestPlaceholders = [godotEditorVersion: getGodotEditorVersion()] + + // Feel free to modify the application id to your own. + applicationId getExportPackageName() + versionCode getExportVersionCode() + versionName getExportVersionName() + minSdkVersion getExportMinSdkVersion() + targetSdkVersion getExportTargetSdkVersion() + + missingDimensionStrategy 'products', 'template' + } + + lintOptions { + abortOnError false + disable 'MissingTranslation', 'UnusedResources' + } + + ndkVersion versions.ndkVersion + + packagingOptions { + exclude 'META-INF/LICENSE' + exclude 'META-INF/NOTICE' + + // 'doNotStrip' is enabled for development within Android Studio + if (shouldNotStrip()) { + doNotStrip '**/*.so' + } + + jniLibs { + // Setting this to true causes AGP to package compressed native libraries when building the app + // For more background, see: + // - https://developer.android.com/build/releases/past-releases/agp-3-6-0-release-notes#extractNativeLibs + // - https://stackoverflow.com/a/44704840 + useLegacyPackaging shouldUseLegacyPackaging() + } + + // Always select Godot's version of libc++_shared.so in case deps have their own + pickFirst 'lib/x86/libc++_shared.so' + pickFirst 'lib/x86_64/libc++_shared.so' + pickFirst 'lib/armeabi-v7a/libc++_shared.so' + pickFirst 'lib/arm64-v8a/libc++_shared.so' + } + + signingConfigs { + debug { + if (hasCustomDebugKeystore()) { + storeFile new File(getDebugKeystoreFile()) + storePassword getDebugKeystorePassword() + keyAlias getDebugKeyAlias() + keyPassword getDebugKeystorePassword() + } + } + + release { + File keystoreFile = new File(getReleaseKeystoreFile()) + if (keystoreFile.isFile()) { + storeFile keystoreFile + storePassword getReleaseKeystorePassword() + keyAlias getReleaseKeyAlias() + keyPassword getReleaseKeystorePassword() + } + } + } + + buildFeatures { + buildConfig = true + } + + buildTypes { + + debug { + // Signing and zip-aligning are skipped for prebuilt builds, but + // performed for Godot gradle builds. + zipAlignEnabled shouldZipAlign() + if (shouldSign()) { + signingConfig signingConfigs.debug + } else { + signingConfig null + } + } + + dev { + initWith debug + // Signing and zip-aligning are skipped for prebuilt builds, but + // performed for Godot gradle builds. + zipAlignEnabled shouldZipAlign() + if (shouldSign()) { + signingConfig signingConfigs.debug + } else { + signingConfig null + } + } + + release { + // Signing and zip-aligning are skipped for prebuilt builds, but + // performed for Godot gradle builds. + zipAlignEnabled shouldZipAlign() + if (shouldSign()) { + signingConfig signingConfigs.release + } else { + signingConfig null + } + } + } + + flavorDimensions 'edition' + + productFlavors { + standard {} + mono {} + } + + sourceSets { + main { + manifest.srcFile 'AndroidManifest.xml' + java.srcDirs = ['src'] + res.srcDirs = ['res'] + aidl.srcDirs = ['aidl'] + assets.srcDirs = ['assets'] + } + debug.jniLibs.srcDirs = ['libs/debug', 'libs/debug/vulkan_validation_layers'] + dev.jniLibs.srcDirs = ['libs/dev'] + release.jniLibs.srcDirs = ['libs/release'] + } + + applicationVariants.all { variant -> + variant.outputs.all { output -> + String filenameSuffix = variant.flavorName == "mono" ? variant.name : variant.buildType.name + output.outputFileName = "android_${filenameSuffix}.apk" + } + } +} + +task copyAndRenameBinary(type: Copy) { + // The 'doNotTrackState' is added to disable gradle's up-to-date checks for output files + // and directories. Otherwise this check may cause permissions access failures on Windows + // machines. + doNotTrackState("No need for up-to-date checks for the copy-and-rename operation") + + String exportPath = getExportPath() + String exportFilename = getExportFilename() + String exportEdition = getExportEdition() + String exportBuildType = getExportBuildType() + String exportBuildTypeCapitalized = exportBuildType.capitalize() + String exportFormat = getExportFormat() + + boolean isAab = exportFormat == "aab" + boolean isMono = exportEdition == "mono" + String filenameSuffix = exportBuildType + if (isMono) { + filenameSuffix = isAab ? "${exportEdition}-${exportBuildType}" : "${exportEdition}${exportBuildTypeCapitalized}" + } + + String sourceFilename = isAab ? "build-${filenameSuffix}.aab" : "android_${filenameSuffix}.apk" + String sourceFilepath = isAab ? "$buildDir/outputs/bundle/${exportEdition}${exportBuildTypeCapitalized}/$sourceFilename" : "$buildDir/outputs/apk/$exportEdition/$exportBuildType/$sourceFilename" + + from sourceFilepath + into exportPath + rename sourceFilename, exportFilename +} + +/** + * Used to validate the version of the Java SDK used for the Godot gradle builds. + */ +task validateJavaVersion { + if (JavaVersion.current() != versions.javaVersion) { + throw new GradleException("Invalid Java version ${JavaVersion.current()}. Version ${versions.javaVersion} is the required Java version for Godot gradle builds.") + } +} + +/* +When they're scheduled to run, the copy*AARToAppModule tasks generate dependencies for the 'app' +module, so we're ensuring the ':app:preBuild' task is set to run after those tasks. + */ +if (rootProject.tasks.findByPath("copyDebugAARToAppModule") != null) { + preBuild.mustRunAfter(rootProject.tasks.named("copyDebugAARToAppModule")) +} +if (rootProject.tasks.findByPath("copyDevAARToAppModule") != null) { + preBuild.mustRunAfter(rootProject.tasks.named("copyDevAARToAppModule")) +} +if (rootProject.tasks.findByPath("copyReleaseAARToAppModule") != null) { + preBuild.mustRunAfter(rootProject.tasks.named("copyReleaseAARToAppModule")) +} diff --git a/android/build/config.gradle b/android/build/config.gradle new file mode 100644 index 0000000..e8921e1 --- /dev/null +++ b/android/build/config.gradle @@ -0,0 +1,415 @@ +ext.versions = [ + androidGradlePlugin: '8.2.0', + compileSdk : 34, + // Also update 'platform/android/export/export_plugin.cpp#OPENGL_MIN_SDK_VERSION' + minSdk : 21, + // Also update 'platform/android/export/export_plugin.cpp#DEFAULT_TARGET_SDK_VERSION' + targetSdk : 34, + buildTools : '34.0.0', + kotlinVersion : '1.9.20', + fragmentVersion : '1.7.1', + nexusPublishVersion: '1.3.0', + javaVersion : JavaVersion.VERSION_17, + // Also update 'platform/android/detect.py#get_ndk_version()' when this is updated. + ndkVersion : '23.2.8568313', + splashscreenVersion: '1.0.1' + +] + +ext.getExportPackageName = { -> + // Retrieve the app id from the project property set by the Godot build command. + String appId = project.hasProperty("export_package_name") ? project.property("export_package_name") : "" + // Check if the app id is valid, otherwise use the default. + if (appId == null || appId.isEmpty()) { + appId = "com.godot.game" + } + return appId +} + +ext.getExportVersionCode = { -> + String versionCode = project.hasProperty("export_version_code") ? project.property("export_version_code") : "" + if (versionCode == null || versionCode.isEmpty()) { + versionCode = "1" + } + try { + return Integer.parseInt(versionCode) + } catch (NumberFormatException ignored) { + return 1 + } +} + +ext.getExportVersionName = { -> + String versionName = project.hasProperty("export_version_name") ? project.property("export_version_name") : "" + if (versionName == null || versionName.isEmpty()) { + versionName = "1.0" + } + return versionName +} + +ext.getExportMinSdkVersion = { -> + String minSdkVersion = project.hasProperty("export_version_min_sdk") ? project.property("export_version_min_sdk") : "" + if (minSdkVersion == null || minSdkVersion.isEmpty()) { + minSdkVersion = "$versions.minSdk" + } + try { + return Integer.parseInt(minSdkVersion) + } catch (NumberFormatException ignored) { + return versions.minSdk + } +} + +ext.getExportTargetSdkVersion = { -> + String targetSdkVersion = project.hasProperty("export_version_target_sdk") ? project.property("export_version_target_sdk") : "" + if (targetSdkVersion == null || targetSdkVersion.isEmpty()) { + targetSdkVersion = "$versions.targetSdk" + } + try { + return Integer.parseInt(targetSdkVersion) + } catch (NumberFormatException ignored) { + return versions.targetSdk + } +} + +ext.getGodotEditorVersion = { -> + String editorVersion = project.hasProperty("godot_editor_version") ? project.property("godot_editor_version") : "" + if (editorVersion == null || editorVersion.isEmpty()) { + // Try the library version first + editorVersion = getGodotLibraryVersionName() + + if (editorVersion.isEmpty()) { + // Fallback value. + editorVersion = "custom_build" + } + } + return editorVersion +} + +ext.getGodotLibraryVersionCode = { -> + String versionName = "" + int versionCode = 1 + (versionName, versionCode) = getGodotLibraryVersion() + return versionCode +} + +ext.getGodotLibraryVersionName = { -> + String versionName = "" + int versionCode = 1 + (versionName, versionCode) = getGodotLibraryVersion() + return versionName +} + +ext.generateGodotLibraryVersion = { List requiredKeys -> + // Attempt to read the version from the `version.py` file. + String libraryVersionName = "" + int libraryVersionCode = 0 + + File versionFile = new File("../../../version.py") + if (versionFile.isFile()) { + def map = [:] + + List lines = versionFile.readLines() + for (String line in lines) { + String[] keyValue = line.split("=") + String key = keyValue[0].trim() + String value = keyValue[1].trim().replaceAll("\"", "") + + if (requiredKeys.contains(key)) { + if (!value.isEmpty()) { + map[key] = value + } + requiredKeys.remove(key) + } + } + + if (requiredKeys.empty) { + libraryVersionName = map.values().join(".") + try { + if (map.containsKey("status")) { + int statusCode = 0 + String statusValue = map["status"] + if (statusValue == null) { + statusCode = 0 + } else if (statusValue.startsWith("dev")) { + statusCode = 1 + } else if (statusValue.startsWith("alpha")) { + statusCode = 2 + } else if (statusValue.startsWith("beta")) { + statusCode = 3 + } else if (statusValue.startsWith("rc")) { + statusCode = 4 + } else if (statusValue.startsWith("stable")) { + statusCode = 5 + } else { + statusCode = 0 + } + + libraryVersionCode = statusCode + } + + if (map.containsKey("patch")) { + libraryVersionCode += Integer.parseInt(map["patch"]) * 10 + } + + if (map.containsKey("minor")) { + libraryVersionCode += (Integer.parseInt(map["minor"]) * 1000) + } + + if (map.containsKey("major")) { + libraryVersionCode += (Integer.parseInt(map["major"]) * 100000) + } + } catch (NumberFormatException ignore) { + libraryVersionCode = 1 + } + } + } + + if (libraryVersionName.isEmpty()) { + // Fallback value in case we're unable to read the file. + libraryVersionName = "custom_build" + } + + if (libraryVersionCode == 0) { + libraryVersionCode = 1 + } + + return [libraryVersionName, libraryVersionCode] +} + +ext.getGodotLibraryVersion = { -> + List requiredKeys = ["major", "minor", "patch", "status", "module_config"] + return generateGodotLibraryVersion(requiredKeys) +} + +ext.getGodotPublishVersion = { -> + List requiredKeys = ["major", "minor", "patch", "status"] + String versionName = "" + int versionCode = 1 + (versionName, versionCode) = generateGodotLibraryVersion(requiredKeys) + if (!versionName.endsWith("stable")) { + versionName += "-SNAPSHOT" + } + return versionName +} + +final String VALUE_SEPARATOR_REGEX = "\\|" + +// get the list of ABIs the project should be exported to +ext.getExportEnabledABIs = { -> + String enabledABIs = project.hasProperty("export_enabled_abis") ? project.property("export_enabled_abis") : "" + if (enabledABIs == null || enabledABIs.isEmpty()) { + enabledABIs = "armeabi-v7a|arm64-v8a|x86|x86_64|" + } + Set exportAbiFilter = [] + for (String abi_name : enabledABIs.split(VALUE_SEPARATOR_REGEX)) { + if (!abi_name.trim().isEmpty()){ + exportAbiFilter.add(abi_name) + } + } + return exportAbiFilter +} + +ext.getExportPath = { + String exportPath = project.hasProperty("export_path") ? project.property("export_path") : "" + if (exportPath == null || exportPath.isEmpty()) { + exportPath = "." + } + return exportPath +} + +ext.getExportFilename = { + String exportFilename = project.hasProperty("export_filename") ? project.property("export_filename") : "" + if (exportFilename == null || exportFilename.isEmpty()) { + exportFilename = "godot_android" + } + return exportFilename +} + +ext.getExportEdition = { + String exportEdition = project.hasProperty("export_edition") ? project.property("export_edition") : "" + if (exportEdition == null || exportEdition.isEmpty()) { + exportEdition = "standard" + } + return exportEdition +} + +ext.getExportBuildType = { + String exportBuildType = project.hasProperty("export_build_type") ? project.property("export_build_type") : "" + if (exportBuildType == null || exportBuildType.isEmpty()) { + exportBuildType = "debug" + } + return exportBuildType +} + +ext.getExportFormat = { + String exportFormat = project.hasProperty("export_format") ? project.property("export_format") : "" + if (exportFormat == null || exportFormat.isEmpty()) { + exportFormat = "apk" + } + return exportFormat +} + +/** + * Parse the project properties for the 'plugins_maven_repos' property and return the list + * of maven repos. + */ +ext.getGodotPluginsMavenRepos = { -> + Set mavenRepos = [] + + // Retrieve the list of maven repos. + if (project.hasProperty("plugins_maven_repos")) { + String mavenReposProperty = project.property("plugins_maven_repos") + if (mavenReposProperty != null && !mavenReposProperty.trim().isEmpty()) { + for (String mavenRepoUrl : mavenReposProperty.split(VALUE_SEPARATOR_REGEX)) { + mavenRepos += mavenRepoUrl.trim() + } + } + } + + return mavenRepos +} + +/** + * Parse the project properties for the 'plugins_remote_binaries' property and return + * it for inclusion in the build dependencies. + */ +ext.getGodotPluginsRemoteBinaries = { -> + Set remoteDeps = [] + + // Retrieve the list of remote plugins binaries. + if (project.hasProperty("plugins_remote_binaries")) { + String remoteDepsList = project.property("plugins_remote_binaries") + if (remoteDepsList != null && !remoteDepsList.trim().isEmpty()) { + for (String dep: remoteDepsList.split(VALUE_SEPARATOR_REGEX)) { + remoteDeps += dep.trim() + } + } + } + return remoteDeps +} + +/** + * Parse the project properties for the 'plugins_local_binaries' property and return + * their binaries for inclusion in the build dependencies. + */ +ext.getGodotPluginsLocalBinaries = { -> + Set binDeps = [] + + // Retrieve the list of local plugins binaries. + if (project.hasProperty("plugins_local_binaries")) { + String pluginsList = project.property("plugins_local_binaries") + if (pluginsList != null && !pluginsList.trim().isEmpty()) { + for (String plugin : pluginsList.split(VALUE_SEPARATOR_REGEX)) { + binDeps += plugin.trim() + } + } + } + + return binDeps +} + +ext.getDebugKeystoreFile = { -> + String keystoreFile = project.hasProperty("debug_keystore_file") ? project.property("debug_keystore_file") : "" + if (keystoreFile == null || keystoreFile.isEmpty()) { + keystoreFile = "." + } + return keystoreFile +} + +ext.hasCustomDebugKeystore = { -> + File keystoreFile = new File(getDebugKeystoreFile()) + return keystoreFile.isFile() +} + +ext.getDebugKeystorePassword = { -> + String keystorePassword = project.hasProperty("debug_keystore_password") ? project.property("debug_keystore_password") : "" + if (keystorePassword == null || keystorePassword.isEmpty()) { + keystorePassword = "android" + } + return keystorePassword +} + +ext.getDebugKeyAlias = { -> + String keyAlias = project.hasProperty("debug_keystore_alias") ? project.property("debug_keystore_alias") : "" + if (keyAlias == null || keyAlias.isEmpty()) { + keyAlias = "androiddebugkey" + } + return keyAlias +} + +ext.getReleaseKeystoreFile = { -> + String keystoreFile = project.hasProperty("release_keystore_file") ? project.property("release_keystore_file") : "" + if (keystoreFile == null || keystoreFile.isEmpty()) { + keystoreFile = "." + } + return keystoreFile +} + +ext.getReleaseKeystorePassword = { -> + String keystorePassword = project.hasProperty("release_keystore_password") ? project.property("release_keystore_password") : "" + return keystorePassword +} + +ext.getReleaseKeyAlias = { -> + String keyAlias = project.hasProperty("release_keystore_alias") ? project.property("release_keystore_alias") : "" + return keyAlias +} + +ext.isAndroidStudio = { -> + return project.hasProperty('android.injected.invoked.from.ide') +} + +ext.shouldZipAlign = { -> + String zipAlignFlag = project.hasProperty("perform_zipalign") ? project.property("perform_zipalign") : "" + if (zipAlignFlag == null || zipAlignFlag.isEmpty()) { + if (isAndroidStudio()) { + zipAlignFlag = "true" + } else { + zipAlignFlag = "false" + } + } + return Boolean.parseBoolean(zipAlignFlag) +} + +ext.shouldSign = { -> + String signFlag = project.hasProperty("perform_signing") ? project.property("perform_signing") : "" + if (signFlag == null || signFlag.isEmpty()) { + if (isAndroidStudio()) { + signFlag = "true" + } else { + signFlag = "false" + } + } + return Boolean.parseBoolean(signFlag) +} + +ext.shouldNotStrip = { -> + return isAndroidStudio() || project.hasProperty("doNotStrip") +} + +/** + * Whether to use the legacy convention of compressing all .so files in the APK. + * + * For more background, see: + * - https://developer.android.com/build/releases/past-releases/agp-3-6-0-release-notes#extractNativeLibs + * - https://stackoverflow.com/a/44704840 + */ +ext.shouldUseLegacyPackaging = { -> + int minSdk = getExportMinSdkVersion() + if (minSdk < 23) { + // Enforce the default behavior for compatibility with device running api < 23 + return true + } + + String legacyPackagingFlag = project.hasProperty("compress_native_libraries") ? project.property("compress_native_libraries") : "" + if (legacyPackagingFlag != null && !legacyPackagingFlag.isEmpty()) { + return Boolean.parseBoolean(legacyPackagingFlag) + } + + // Default behavior for minSdk >= 23 + return false +} + +ext.getAddonsDirectory = { -> + String addonsDirectory = project.hasProperty("addons_directory") ? project.property("addons_directory") : "" + return addonsDirectory +} diff --git a/android/build/gradle.properties b/android/build/gradle.properties new file mode 100644 index 0000000..2b6468c --- /dev/null +++ b/android/build/gradle.properties @@ -0,0 +1,28 @@ +# Godot gradle build settings. +# These properties apply when running a gradle build from the Godot editor. +# NOTE: This should be kept in sync with 'godot/platform/android/java/gradle.properties' except +# where otherwise specified. + +# For more details on how to configure your build environment visit +# https://www.gradle.org/docs/current/userguide/build_environment.html + +android.enableJetifier=true +android.useAndroidX=true + +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx4536m + +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# https://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true + +org.gradle.warning.mode=all + +# Enable resource optimizations for release build. +# NOTE: This is turned off for template release build in order to support the build legacy process. +android.enableResourceOptimizations=true + +# Fix gradle build errors when the build path contains non-ASCII characters +android.overridePathCheck=true diff --git a/android/build/gradle/wrapper/gradle-wrapper.jar b/android/build/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..e708b1c Binary files /dev/null and b/android/build/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/build/gradle/wrapper/gradle-wrapper.properties b/android/build/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..471fefa --- /dev/null +++ b/android/build/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Wed Jan 17 12:08:26 PST 2024 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/android/build/gradlew b/android/build/gradlew new file mode 100644 index 0000000..4f906e0 --- /dev/null +++ b/android/build/gradlew @@ -0,0 +1,185 @@ +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin or MSYS, switch paths to Windows format before running java +if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=`expr $i + 1` + done + case $i in + 0) set -- ;; + 1) set -- "$args0" ;; + 2) set -- "$args0" "$args1" ;; + 3) set -- "$args0" "$args1" "$args2" ;; + 4) set -- "$args0" "$args1" "$args2" "$args3" ;; + 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=`save "$@"` + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +exec "$JAVACMD" "$@" diff --git a/android/build/gradlew.bat b/android/build/gradlew.bat new file mode 100644 index 0000000..107acd3 --- /dev/null +++ b/android/build/gradlew.bat @@ -0,0 +1,89 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/build/libs/debug/godot-lib.template_debug.aar b/android/build/libs/debug/godot-lib.template_debug.aar new file mode 100644 index 0000000..336265c Binary files /dev/null and b/android/build/libs/debug/godot-lib.template_debug.aar differ diff --git a/android/build/libs/release/godot-lib.template_release.aar b/android/build/libs/release/godot-lib.template_release.aar new file mode 100644 index 0000000..115d352 Binary files /dev/null and b/android/build/libs/release/godot-lib.template_release.aar differ diff --git a/android/build/res/values-ar/godot_project_name_string.xml b/android/build/res/values-ar/godot_project_name_string.xml new file mode 100644 index 0000000..23aa5cf --- /dev/null +++ b/android/build/res/values-ar/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-ar + diff --git a/android/build/res/values-bg/godot_project_name_string.xml b/android/build/res/values-bg/godot_project_name_string.xml new file mode 100644 index 0000000..dbb7e04 --- /dev/null +++ b/android/build/res/values-bg/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-bg + diff --git a/android/build/res/values-ca/godot_project_name_string.xml b/android/build/res/values-ca/godot_project_name_string.xml new file mode 100644 index 0000000..709d096 --- /dev/null +++ b/android/build/res/values-ca/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-ca + diff --git a/android/build/res/values-cs/godot_project_name_string.xml b/android/build/res/values-cs/godot_project_name_string.xml new file mode 100644 index 0000000..ab248a8 --- /dev/null +++ b/android/build/res/values-cs/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-cs + diff --git a/android/build/res/values-da/godot_project_name_string.xml b/android/build/res/values-da/godot_project_name_string.xml new file mode 100644 index 0000000..906bf44 --- /dev/null +++ b/android/build/res/values-da/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-da + diff --git a/android/build/res/values-de/godot_project_name_string.xml b/android/build/res/values-de/godot_project_name_string.xml new file mode 100644 index 0000000..0cacb01 --- /dev/null +++ b/android/build/res/values-de/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-de + diff --git a/android/build/res/values-el/godot_project_name_string.xml b/android/build/res/values-el/godot_project_name_string.xml new file mode 100644 index 0000000..047de61 --- /dev/null +++ b/android/build/res/values-el/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-el + diff --git a/android/build/res/values-en/godot_project_name_string.xml b/android/build/res/values-en/godot_project_name_string.xml new file mode 100644 index 0000000..bb3a5db --- /dev/null +++ b/android/build/res/values-en/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-en + diff --git a/android/build/res/values-es-rES/godot_project_name_string.xml b/android/build/res/values-es-rES/godot_project_name_string.xml new file mode 100644 index 0000000..d4537f3 --- /dev/null +++ b/android/build/res/values-es-rES/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-es_ES + diff --git a/android/build/res/values-es/godot_project_name_string.xml b/android/build/res/values-es/godot_project_name_string.xml new file mode 100644 index 0000000..d63a160 --- /dev/null +++ b/android/build/res/values-es/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-es + diff --git a/android/build/res/values-fa/godot_project_name_string.xml b/android/build/res/values-fa/godot_project_name_string.xml new file mode 100644 index 0000000..c303f13 --- /dev/null +++ b/android/build/res/values-fa/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-fa + diff --git a/android/build/res/values-fi/godot_project_name_string.xml b/android/build/res/values-fi/godot_project_name_string.xml new file mode 100644 index 0000000..bd60055 --- /dev/null +++ b/android/build/res/values-fi/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-fi + diff --git a/android/build/res/values-fr/godot_project_name_string.xml b/android/build/res/values-fr/godot_project_name_string.xml new file mode 100644 index 0000000..2e94b65 --- /dev/null +++ b/android/build/res/values-fr/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-fr + diff --git a/android/build/res/values-hi/godot_project_name_string.xml b/android/build/res/values-hi/godot_project_name_string.xml new file mode 100644 index 0000000..0bf75dc --- /dev/null +++ b/android/build/res/values-hi/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-hi + diff --git a/android/build/res/values-hr/godot_project_name_string.xml b/android/build/res/values-hr/godot_project_name_string.xml new file mode 100644 index 0000000..d3f7591 --- /dev/null +++ b/android/build/res/values-hr/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-hr + diff --git a/android/build/res/values-hu/godot_project_name_string.xml b/android/build/res/values-hu/godot_project_name_string.xml new file mode 100644 index 0000000..012b613 --- /dev/null +++ b/android/build/res/values-hu/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-hu + diff --git a/android/build/res/values-in/godot_project_name_string.xml b/android/build/res/values-in/godot_project_name_string.xml new file mode 100644 index 0000000..eedecff --- /dev/null +++ b/android/build/res/values-in/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-in + diff --git a/android/build/res/values-it/godot_project_name_string.xml b/android/build/res/values-it/godot_project_name_string.xml new file mode 100644 index 0000000..7e73404 --- /dev/null +++ b/android/build/res/values-it/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-it + diff --git a/android/build/res/values-iw/godot_project_name_string.xml b/android/build/res/values-iw/godot_project_name_string.xml new file mode 100644 index 0000000..03893f0 --- /dev/null +++ b/android/build/res/values-iw/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-iw + diff --git a/android/build/res/values-ja/godot_project_name_string.xml b/android/build/res/values-ja/godot_project_name_string.xml new file mode 100644 index 0000000..f9dd4fa --- /dev/null +++ b/android/build/res/values-ja/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-ja + diff --git a/android/build/res/values-ko/godot_project_name_string.xml b/android/build/res/values-ko/godot_project_name_string.xml new file mode 100644 index 0000000..26f5dac --- /dev/null +++ b/android/build/res/values-ko/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-ko + diff --git a/android/build/res/values-lt/godot_project_name_string.xml b/android/build/res/values-lt/godot_project_name_string.xml new file mode 100644 index 0000000..1c2e976 --- /dev/null +++ b/android/build/res/values-lt/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-lt + diff --git a/android/build/res/values-lv/godot_project_name_string.xml b/android/build/res/values-lv/godot_project_name_string.xml new file mode 100644 index 0000000..b5e638e --- /dev/null +++ b/android/build/res/values-lv/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-lv + diff --git a/android/build/res/values-nb/godot_project_name_string.xml b/android/build/res/values-nb/godot_project_name_string.xml new file mode 100644 index 0000000..e6d89d6 --- /dev/null +++ b/android/build/res/values-nb/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-nb + diff --git a/android/build/res/values-nl/godot_project_name_string.xml b/android/build/res/values-nl/godot_project_name_string.xml new file mode 100644 index 0000000..93cb3a3 --- /dev/null +++ b/android/build/res/values-nl/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-nl + diff --git a/android/build/res/values-pl/godot_project_name_string.xml b/android/build/res/values-pl/godot_project_name_string.xml new file mode 100644 index 0000000..e5d6ac7 --- /dev/null +++ b/android/build/res/values-pl/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-pl + diff --git a/android/build/res/values-pt/godot_project_name_string.xml b/android/build/res/values-pt/godot_project_name_string.xml new file mode 100644 index 0000000..a462465 --- /dev/null +++ b/android/build/res/values-pt/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-pt + diff --git a/android/build/res/values-ro/godot_project_name_string.xml b/android/build/res/values-ro/godot_project_name_string.xml new file mode 100644 index 0000000..19e0266 --- /dev/null +++ b/android/build/res/values-ro/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-ro + diff --git a/android/build/res/values-ru/godot_project_name_string.xml b/android/build/res/values-ru/godot_project_name_string.xml new file mode 100644 index 0000000..2848452 --- /dev/null +++ b/android/build/res/values-ru/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-ru + diff --git a/android/build/res/values-sk/godot_project_name_string.xml b/android/build/res/values-sk/godot_project_name_string.xml new file mode 100644 index 0000000..f8ab4a5 --- /dev/null +++ b/android/build/res/values-sk/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-sk + diff --git a/android/build/res/values-sl/godot_project_name_string.xml b/android/build/res/values-sl/godot_project_name_string.xml new file mode 100644 index 0000000..98bd53e --- /dev/null +++ b/android/build/res/values-sl/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-sl + diff --git a/android/build/res/values-sr/godot_project_name_string.xml b/android/build/res/values-sr/godot_project_name_string.xml new file mode 100644 index 0000000..3f400f2 --- /dev/null +++ b/android/build/res/values-sr/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-sr + diff --git a/android/build/res/values-sv/godot_project_name_string.xml b/android/build/res/values-sv/godot_project_name_string.xml new file mode 100644 index 0000000..8670b7c --- /dev/null +++ b/android/build/res/values-sv/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-sv + diff --git a/android/build/res/values-th/godot_project_name_string.xml b/android/build/res/values-th/godot_project_name_string.xml new file mode 100644 index 0000000..a1cc1bc --- /dev/null +++ b/android/build/res/values-th/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-th + diff --git a/android/build/res/values-tl/godot_project_name_string.xml b/android/build/res/values-tl/godot_project_name_string.xml new file mode 100644 index 0000000..6d66d11 --- /dev/null +++ b/android/build/res/values-tl/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-tl + diff --git a/android/build/res/values-tr/godot_project_name_string.xml b/android/build/res/values-tr/godot_project_name_string.xml new file mode 100644 index 0000000..ba3bd7d --- /dev/null +++ b/android/build/res/values-tr/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-tr + diff --git a/android/build/res/values-uk/godot_project_name_string.xml b/android/build/res/values-uk/godot_project_name_string.xml new file mode 100644 index 0000000..5f14ab2 --- /dev/null +++ b/android/build/res/values-uk/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-uk + diff --git a/android/build/res/values-vi/godot_project_name_string.xml b/android/build/res/values-vi/godot_project_name_string.xml new file mode 100644 index 0000000..295378e --- /dev/null +++ b/android/build/res/values-vi/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-vi + diff --git a/android/build/res/values-zh-rHK/godot_project_name_string.xml b/android/build/res/values-zh-rHK/godot_project_name_string.xml new file mode 100644 index 0000000..40ab0f2 --- /dev/null +++ b/android/build/res/values-zh-rHK/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-zh_HK + diff --git a/android/build/res/values-zh-rTW/godot_project_name_string.xml b/android/build/res/values-zh-rTW/godot_project_name_string.xml new file mode 100644 index 0000000..095bd56 --- /dev/null +++ b/android/build/res/values-zh-rTW/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-zh_TW + diff --git a/android/build/res/values-zh/godot_project_name_string.xml b/android/build/res/values-zh/godot_project_name_string.xml new file mode 100644 index 0000000..31aa8c2 --- /dev/null +++ b/android/build/res/values-zh/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name-zh + diff --git a/android/build/res/values/godot_project_name_string.xml b/android/build/res/values/godot_project_name_string.xml new file mode 100644 index 0000000..7ec2738 --- /dev/null +++ b/android/build/res/values/godot_project_name_string.xml @@ -0,0 +1,5 @@ + + + + godot-project-name + diff --git a/android/build/res/values/themes.xml b/android/build/res/values/themes.xml new file mode 100644 index 0000000..3ab8401 --- /dev/null +++ b/android/build/res/values/themes.xml @@ -0,0 +1,19 @@ + + + + + diff --git a/android/build/settings.gradle b/android/build/settings.gradle new file mode 100644 index 0000000..e758d4e --- /dev/null +++ b/android/build/settings.gradle @@ -0,0 +1,18 @@ +// This is the root directory of the Godot Android gradle build. +pluginManagement { + apply from: 'config.gradle' + + plugins { + id 'com.android.application' version versions.androidGradlePlugin + id 'org.jetbrains.kotlin.android' version versions.kotlinVersion + } + repositories { + google() + mavenCentral() + gradlePluginPortal() + maven { url "https://plugins.gradle.org/m2/" } + maven { url "https://s01.oss.sonatype.org/content/repositories/snapshots/"} + } +} + +include ':assetPacks:installTime' diff --git a/android/build/src/com/godot/game/GodotApp.java b/android/build/src/com/godot/game/GodotApp.java new file mode 100644 index 0000000..9d4991e --- /dev/null +++ b/android/build/src/com/godot/game/GodotApp.java @@ -0,0 +1,64 @@ +/**************************************************************************/ +/* GodotApp.java */ +/**************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* https://godotengine.org */ +/**************************************************************************/ +/* Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). */ +/* Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. */ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/**************************************************************************/ + +package com.godot.game; + +import org.godotengine.godot.GodotActivity; + +import android.os.Bundle; +import android.util.Log; + +import androidx.core.splashscreen.SplashScreen; + +import com.godot.game.BuildConfig; + +/** + * Template activity for Godot Android builds. + * Feel free to extend and modify this class for your custom logic. + */ +public class GodotApp extends GodotActivity { + static { + // .NET libraries. + if (BuildConfig.FLAVOR.equals("mono")) { + try { + Log.v("GODOT", "Loading System.Security.Cryptography.Native.Android library"); + System.loadLibrary("System.Security.Cryptography.Native.Android"); + } catch (UnsatisfiedLinkError e) { + Log.e("GODOT", "Unable to load System.Security.Cryptography.Native.Android library"); + } + } + } + + @Override + public void onCreate(Bundle savedInstanceState) { + SplashScreen.installSplashScreen(this); + super.onCreate(savedInstanceState); + } +} diff --git a/cat.gd b/cat.gd index 2ee6e32..14b3a78 100644 --- a/cat.gd +++ b/cat.gd @@ -58,8 +58,11 @@ func _gravity(): func _on_body_exited(body: Node2D) -> void: - print("exit") - floor = false + if body != dog: + print("true") + floor = false + elif body == dog or body == dog_2 or body == dog_shapew: + get_tree().change_scene_to_file("res://lost.tscn") func _on_move_pressed() -> void: diff --git a/export_presets.cfg b/export_presets.cfg index 3a0a236..9e73936 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -109,8 +109,8 @@ progressive_web_app/background_color=Color(0, 0, 0, 1) [preset.2] -name="Linux" -platform="Linux" +name="Android" +platform="Android" runnable=true advanced_options=false dedicated_server=false @@ -118,7 +118,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="builds/linux/ClickyCat-2.0.0.zip" +export_path="" patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" @@ -130,28 +130,197 @@ script_export_mode=2 custom_template/debug="" custom_template/release="" -debug/export_console_wrapper=1 -binary_format/embed_pck=false -texture_format/s3tc_bptc=true -texture_format/etc2_astc=false -binary_format/architecture="x86_64" -ssh_remote_deploy/enabled=false -ssh_remote_deploy/host="user@host_ip" -ssh_remote_deploy/port="22" -ssh_remote_deploy/extra_args_ssh="" -ssh_remote_deploy/extra_args_scp="" -ssh_remote_deploy/run_script="#!/usr/bin/env bash -export DISPLAY=:0 -unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" -\"{temp_dir}/{exe_name}\" {cmd_args}" -ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash -kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") -rm -rf \"{temp_dir}\"" +gradle_build/use_gradle_build=false +gradle_build/gradle_build_directory="" +gradle_build/android_source_template="" +gradle_build/compress_native_libraries=false +gradle_build/export_format=0 +gradle_build/min_sdk="" +gradle_build/target_sdk="" +architectures/armeabi-v7a=false +architectures/arm64-v8a=true +architectures/x86=false +architectures/x86_64=false +version/code=1 +version/name="" +package/unique_name="com.meoowe.$genname" +package/name="ClickyCat" +package/signed=true +package/app_category=2 +package/retain_data_on_uninstall=false +package/exclude_from_recents=false +package/show_in_android_tv=false +package/show_in_app_library=true +package/show_as_launcher_app=false +launcher_icons/main_192x192="" +launcher_icons/adaptive_foreground_432x432="" +launcher_icons/adaptive_background_432x432="" +launcher_icons/adaptive_monochrome_432x432="" +graphics/opengl_debug=false +xr_features/xr_mode=0 +screen/immersive_mode=true +screen/support_small=true +screen/support_normal=true +screen/support_large=true +screen/support_xlarge=true +user_data_backup/allow=false +command_line/extra_args="" +apk_expansion/enable=false +apk_expansion/SALT="" +apk_expansion/public_key="" +permissions/custom_permissions=PackedStringArray() +permissions/access_checkin_properties=false +permissions/access_coarse_location=false +permissions/access_fine_location=false +permissions/access_location_extra_commands=false +permissions/access_mock_location=false +permissions/access_network_state=false +permissions/access_surface_flinger=false +permissions/access_wifi_state=false +permissions/account_manager=false +permissions/add_voicemail=false +permissions/authenticate_accounts=false +permissions/battery_stats=false +permissions/bind_accessibility_service=false +permissions/bind_appwidget=false +permissions/bind_device_admin=false +permissions/bind_input_method=false +permissions/bind_nfc_service=false +permissions/bind_notification_listener_service=false +permissions/bind_print_service=false +permissions/bind_remoteviews=false +permissions/bind_text_service=false +permissions/bind_vpn_service=false +permissions/bind_wallpaper=false +permissions/bluetooth=false +permissions/bluetooth_admin=false +permissions/bluetooth_privileged=false +permissions/brick=false +permissions/broadcast_package_removed=false +permissions/broadcast_sms=false +permissions/broadcast_sticky=false +permissions/broadcast_wap_push=false +permissions/call_phone=false +permissions/call_privileged=false +permissions/camera=false +permissions/capture_audio_output=false +permissions/capture_secure_video_output=false +permissions/capture_video_output=false +permissions/change_component_enabled_state=false +permissions/change_configuration=false +permissions/change_network_state=false +permissions/change_wifi_multicast_state=false +permissions/change_wifi_state=false +permissions/clear_app_cache=false +permissions/clear_app_user_data=false +permissions/control_location_updates=false +permissions/delete_cache_files=false +permissions/delete_packages=false +permissions/device_power=false +permissions/diagnostic=false +permissions/disable_keyguard=false +permissions/dump=false +permissions/expand_status_bar=false +permissions/factory_test=false +permissions/flashlight=false +permissions/force_back=false +permissions/get_accounts=false +permissions/get_package_size=false +permissions/get_tasks=false +permissions/get_top_activity_info=false +permissions/global_search=false +permissions/hardware_test=false +permissions/inject_events=false +permissions/install_location_provider=false +permissions/install_packages=false +permissions/install_shortcut=false +permissions/internal_system_window=false +permissions/internet=false +permissions/kill_background_processes=false +permissions/location_hardware=false +permissions/manage_accounts=false +permissions/manage_app_tokens=false +permissions/manage_documents=false +permissions/manage_external_storage=false +permissions/master_clear=false +permissions/media_content_control=false +permissions/modify_audio_settings=false +permissions/modify_phone_state=false +permissions/mount_format_filesystems=false +permissions/mount_unmount_filesystems=false +permissions/nfc=false +permissions/persistent_activity=false +permissions/post_notifications=false +permissions/process_outgoing_calls=false +permissions/read_calendar=false +permissions/read_call_log=false +permissions/read_contacts=false +permissions/read_external_storage=false +permissions/read_frame_buffer=false +permissions/read_history_bookmarks=false +permissions/read_input_state=false +permissions/read_logs=false +permissions/read_phone_state=false +permissions/read_profile=false +permissions/read_sms=false +permissions/read_social_stream=false +permissions/read_sync_settings=false +permissions/read_sync_stats=false +permissions/read_user_dictionary=false +permissions/reboot=false +permissions/receive_boot_completed=false +permissions/receive_mms=false +permissions/receive_sms=false +permissions/receive_wap_push=false +permissions/record_audio=false +permissions/reorder_tasks=false +permissions/restart_packages=false +permissions/send_respond_via_message=false +permissions/send_sms=false +permissions/set_activity_watcher=false +permissions/set_alarm=false +permissions/set_always_finish=false +permissions/set_animation_scale=false +permissions/set_debug_app=false +permissions/set_orientation=false +permissions/set_pointer_speed=false +permissions/set_preferred_applications=false +permissions/set_process_limit=false +permissions/set_time=false +permissions/set_time_zone=false +permissions/set_wallpaper=false +permissions/set_wallpaper_hints=false +permissions/signal_persistent_processes=false +permissions/status_bar=false +permissions/subscribed_feeds_read=false +permissions/subscribed_feeds_write=false +permissions/system_alert_window=false +permissions/transmit_ir=false +permissions/uninstall_shortcut=false +permissions/update_device_stats=false +permissions/use_credentials=false +permissions/use_sip=false +permissions/vibrate=false +permissions/wake_lock=false +permissions/write_apn_settings=false +permissions/write_calendar=false +permissions/write_call_log=false +permissions/write_contacts=false +permissions/write_external_storage=false +permissions/write_gservices=false +permissions/write_history_bookmarks=false +permissions/write_profile=false +permissions/write_secure_settings=false +permissions/write_settings=false +permissions/write_sms=false +permissions/write_social_stream=false +permissions/write_sync_settings=false +permissions/write_user_dictionary=false [preset.3] -name="macOS" -platform="macOS" +name="Linux" +platform="Linux" runnable=true advanced_options=false dedicated_server=false @@ -159,7 +328,7 @@ custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" -export_path="" +export_path="builds/linux/h.x86_64" patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" @@ -169,233 +338,22 @@ script_export_mode=2 [preset.3.options] -export/distribution_type=1 -binary_format/architecture="universal" custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 -application/icon="" -application/icon_interpolation=4 -application/bundle_identifier="" -application/signature="" -application/app_category="Games" -application/short_version="" -application/version="" -application/copyright="" -application/copyright_localized={} -application/min_macos_version_x86_64="10.12" -application/min_macos_version_arm64="11.00" -application/export_angle=0 -display/high_res=true -application/additional_plist_content="" -xcode/platform_build="14C18" -xcode/sdk_version="13.1" -xcode/sdk_build="22C55" -xcode/sdk_name="macosx13.1" -xcode/xcode_version="1420" -xcode/xcode_build="14C18" -codesign/codesign=1 -codesign/installer_identity="" -codesign/apple_team_id="" -codesign/identity="" -codesign/entitlements/custom_file="" -codesign/entitlements/allow_jit_code_execution=false -codesign/entitlements/allow_unsigned_executable_memory=false -codesign/entitlements/allow_dyld_environment_variables=false -codesign/entitlements/disable_library_validation=false -codesign/entitlements/audio_input=false -codesign/entitlements/camera=false -codesign/entitlements/location=false -codesign/entitlements/address_book=false -codesign/entitlements/calendars=false -codesign/entitlements/photos_library=false -codesign/entitlements/apple_events=false -codesign/entitlements/debugging=false -codesign/entitlements/app_sandbox/enabled=false -codesign/entitlements/app_sandbox/network_server=false -codesign/entitlements/app_sandbox/network_client=false -codesign/entitlements/app_sandbox/device_usb=false -codesign/entitlements/app_sandbox/device_bluetooth=false -codesign/entitlements/app_sandbox/files_downloads=0 -codesign/entitlements/app_sandbox/files_pictures=0 -codesign/entitlements/app_sandbox/files_music=0 -codesign/entitlements/app_sandbox/files_movies=0 -codesign/entitlements/app_sandbox/files_user_selected=0 -codesign/entitlements/app_sandbox/helper_executables=[] -codesign/custom_options=PackedStringArray() -notarization/notarization=0 -privacy/microphone_usage_description="" -privacy/microphone_usage_description_localized={} -privacy/camera_usage_description="" -privacy/camera_usage_description_localized={} -privacy/location_usage_description="" -privacy/location_usage_description_localized={} -privacy/address_book_usage_description="" -privacy/address_book_usage_description_localized={} -privacy/calendar_usage_description="" -privacy/calendar_usage_description_localized={} -privacy/photos_library_usage_description="" -privacy/photos_library_usage_description_localized={} -privacy/desktop_folder_usage_description="" -privacy/desktop_folder_usage_description_localized={} -privacy/documents_folder_usage_description="" -privacy/documents_folder_usage_description_localized={} -privacy/downloads_folder_usage_description="" -privacy/downloads_folder_usage_description_localized={} -privacy/network_volumes_usage_description="" -privacy/network_volumes_usage_description_localized={} -privacy/removable_volumes_usage_description="" -privacy/removable_volumes_usage_description_localized={} -privacy/tracking_enabled=false -privacy/tracking_domains=PackedStringArray() -privacy/collected_data/name/collected=false -privacy/collected_data/name/linked_to_user=false -privacy/collected_data/name/used_for_tracking=false -privacy/collected_data/name/collection_purposes=0 -privacy/collected_data/email_address/collected=false -privacy/collected_data/email_address/linked_to_user=false -privacy/collected_data/email_address/used_for_tracking=false -privacy/collected_data/email_address/collection_purposes=0 -privacy/collected_data/phone_number/collected=false -privacy/collected_data/phone_number/linked_to_user=false -privacy/collected_data/phone_number/used_for_tracking=false -privacy/collected_data/phone_number/collection_purposes=0 -privacy/collected_data/physical_address/collected=false -privacy/collected_data/physical_address/linked_to_user=false -privacy/collected_data/physical_address/used_for_tracking=false -privacy/collected_data/physical_address/collection_purposes=0 -privacy/collected_data/other_contact_info/collected=false -privacy/collected_data/other_contact_info/linked_to_user=false -privacy/collected_data/other_contact_info/used_for_tracking=false -privacy/collected_data/other_contact_info/collection_purposes=0 -privacy/collected_data/health/collected=false -privacy/collected_data/health/linked_to_user=false -privacy/collected_data/health/used_for_tracking=false -privacy/collected_data/health/collection_purposes=0 -privacy/collected_data/fitness/collected=false -privacy/collected_data/fitness/linked_to_user=false -privacy/collected_data/fitness/used_for_tracking=false -privacy/collected_data/fitness/collection_purposes=0 -privacy/collected_data/payment_info/collected=false -privacy/collected_data/payment_info/linked_to_user=false -privacy/collected_data/payment_info/used_for_tracking=false -privacy/collected_data/payment_info/collection_purposes=0 -privacy/collected_data/credit_info/collected=false -privacy/collected_data/credit_info/linked_to_user=false -privacy/collected_data/credit_info/used_for_tracking=false -privacy/collected_data/credit_info/collection_purposes=0 -privacy/collected_data/other_financial_info/collected=false -privacy/collected_data/other_financial_info/linked_to_user=false -privacy/collected_data/other_financial_info/used_for_tracking=false -privacy/collected_data/other_financial_info/collection_purposes=0 -privacy/collected_data/precise_location/collected=false -privacy/collected_data/precise_location/linked_to_user=false -privacy/collected_data/precise_location/used_for_tracking=false -privacy/collected_data/precise_location/collection_purposes=0 -privacy/collected_data/coarse_location/collected=false -privacy/collected_data/coarse_location/linked_to_user=false -privacy/collected_data/coarse_location/used_for_tracking=false -privacy/collected_data/coarse_location/collection_purposes=0 -privacy/collected_data/sensitive_info/collected=false -privacy/collected_data/sensitive_info/linked_to_user=false -privacy/collected_data/sensitive_info/used_for_tracking=false -privacy/collected_data/sensitive_info/collection_purposes=0 -privacy/collected_data/contacts/collected=false -privacy/collected_data/contacts/linked_to_user=false -privacy/collected_data/contacts/used_for_tracking=false -privacy/collected_data/contacts/collection_purposes=0 -privacy/collected_data/emails_or_text_messages/collected=false -privacy/collected_data/emails_or_text_messages/linked_to_user=false -privacy/collected_data/emails_or_text_messages/used_for_tracking=false -privacy/collected_data/emails_or_text_messages/collection_purposes=0 -privacy/collected_data/photos_or_videos/collected=false -privacy/collected_data/photos_or_videos/linked_to_user=false -privacy/collected_data/photos_or_videos/used_for_tracking=false -privacy/collected_data/photos_or_videos/collection_purposes=0 -privacy/collected_data/audio_data/collected=false -privacy/collected_data/audio_data/linked_to_user=false -privacy/collected_data/audio_data/used_for_tracking=false -privacy/collected_data/audio_data/collection_purposes=0 -privacy/collected_data/gameplay_content/collected=false -privacy/collected_data/gameplay_content/linked_to_user=false -privacy/collected_data/gameplay_content/used_for_tracking=false -privacy/collected_data/gameplay_content/collection_purposes=0 -privacy/collected_data/customer_support/collected=false -privacy/collected_data/customer_support/linked_to_user=false -privacy/collected_data/customer_support/used_for_tracking=false -privacy/collected_data/customer_support/collection_purposes=0 -privacy/collected_data/other_user_content/collected=false -privacy/collected_data/other_user_content/linked_to_user=false -privacy/collected_data/other_user_content/used_for_tracking=false -privacy/collected_data/other_user_content/collection_purposes=0 -privacy/collected_data/browsing_history/collected=false -privacy/collected_data/browsing_history/linked_to_user=false -privacy/collected_data/browsing_history/used_for_tracking=false -privacy/collected_data/browsing_history/collection_purposes=0 -privacy/collected_data/search_hhistory/collected=false -privacy/collected_data/search_hhistory/linked_to_user=false -privacy/collected_data/search_hhistory/used_for_tracking=false -privacy/collected_data/search_hhistory/collection_purposes=0 -privacy/collected_data/user_id/collected=false -privacy/collected_data/user_id/linked_to_user=false -privacy/collected_data/user_id/used_for_tracking=false -privacy/collected_data/user_id/collection_purposes=0 -privacy/collected_data/device_id/collected=false -privacy/collected_data/device_id/linked_to_user=false -privacy/collected_data/device_id/used_for_tracking=false -privacy/collected_data/device_id/collection_purposes=0 -privacy/collected_data/purchase_history/collected=false -privacy/collected_data/purchase_history/linked_to_user=false -privacy/collected_data/purchase_history/used_for_tracking=false -privacy/collected_data/purchase_history/collection_purposes=0 -privacy/collected_data/product_interaction/collected=false -privacy/collected_data/product_interaction/linked_to_user=false -privacy/collected_data/product_interaction/used_for_tracking=false -privacy/collected_data/product_interaction/collection_purposes=0 -privacy/collected_data/advertising_data/collected=false -privacy/collected_data/advertising_data/linked_to_user=false -privacy/collected_data/advertising_data/used_for_tracking=false -privacy/collected_data/advertising_data/collection_purposes=0 -privacy/collected_data/other_usage_data/collected=false -privacy/collected_data/other_usage_data/linked_to_user=false -privacy/collected_data/other_usage_data/used_for_tracking=false -privacy/collected_data/other_usage_data/collection_purposes=0 -privacy/collected_data/crash_data/collected=false -privacy/collected_data/crash_data/linked_to_user=false -privacy/collected_data/crash_data/used_for_tracking=false -privacy/collected_data/crash_data/collection_purposes=0 -privacy/collected_data/performance_data/collected=false -privacy/collected_data/performance_data/linked_to_user=false -privacy/collected_data/performance_data/used_for_tracking=false -privacy/collected_data/performance_data/collection_purposes=0 -privacy/collected_data/other_diagnostic_data/collected=false -privacy/collected_data/other_diagnostic_data/linked_to_user=false -privacy/collected_data/other_diagnostic_data/used_for_tracking=false -privacy/collected_data/other_diagnostic_data/collection_purposes=0 -privacy/collected_data/environment_scanning/collected=false -privacy/collected_data/environment_scanning/linked_to_user=false -privacy/collected_data/environment_scanning/used_for_tracking=false -privacy/collected_data/environment_scanning/collection_purposes=0 -privacy/collected_data/hands/collected=false -privacy/collected_data/hands/linked_to_user=false -privacy/collected_data/hands/used_for_tracking=false -privacy/collected_data/hands/collection_purposes=0 -privacy/collected_data/head/collected=false -privacy/collected_data/head/linked_to_user=false -privacy/collected_data/head/used_for_tracking=false -privacy/collected_data/head/collection_purposes=0 -privacy/collected_data/other_data_types/collected=false -privacy/collected_data/other_data_types/linked_to_user=false -privacy/collected_data/other_data_types/used_for_tracking=false -privacy/collected_data/other_data_types/collection_purposes=0 +binary_format/embed_pck=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false +binary_format/architecture="x86_64" ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" ssh_remote_deploy/port="22" ssh_remote_deploy/extra_args_ssh="" ssh_remote_deploy/extra_args_scp="" ssh_remote_deploy/run_script="#!/usr/bin/env bash +export DISPLAY=:0 unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" -open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}" +\"{temp_dir}/{exe_name}\" {cmd_args}" ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash -kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\") +kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") rm -rf \"{temp_dir}\"" diff --git a/project.godot b/project.godot index b725c05..89d1a47 100644 --- a/project.godot +++ b/project.godot @@ -56,3 +56,7 @@ pause={ [quiver] general/auth_token="uNUn36UfxediUx2zplZppkOit4CGTgLojjgdA6GA" + +[rendering] + +textures/vram_compression/import_etc2_astc=true diff --git a/scripts/autoloads/Global.gd b/scripts/autoloads/Global.gd index b5bf1e7..923a70e 100644 --- a/scripts/autoloads/Global.gd +++ b/scripts/autoloads/Global.gd @@ -9,7 +9,7 @@ var scoreIncrement: int = 10 var balloonClicked: bool = false var playerName: String = "Nickname" -const VERSION: String = "2.0.0-DEV-7.12.24" +const VERSION: String = "2.0.2-10.12.24" const LEADERBOARD_ID: String = "clicky-cat-high-score-LQze" # Called when the node enters the scene tree for the first time. func _ready() -> void: diff --git a/scripts/balloon.gd b/scripts/balloon.gd index 80c9956..19936aa 100644 --- a/scripts/balloon.gd +++ b/scripts/balloon.gd @@ -7,7 +7,7 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: +func _process(_delta: float) -> void: pass func randPos(): while true: diff --git a/scripts/lost.gd b/scripts/lost.gd index 06cae5a..63d4311 100644 --- a/scripts/lost.gd +++ b/scripts/lost.gd @@ -5,7 +5,7 @@ extends Control # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: +func _process(_delta: float) -> void: label_2.text = ( "You lost with a score of " + str(Global.score) diff --git a/scripts/options.gd b/scripts/options.gd index 13cc5d8..6bd3924 100644 --- a/scripts/options.gd +++ b/scripts/options.gd @@ -8,7 +8,7 @@ func _ready() -> void: # Called every frame. 'delta' is the elapsed time since the previous frame. -func _process(delta: float) -> void: +func _process(_delta: float) -> void: pass