├── .gitattributes ├── .gitignore ├── ATTRIBUTION.md ├── LICENSE.txt ├── README.md ├── addons └── maaacks_game_template │ ├── ATTRIBUTION.md │ ├── LICENSE.txt │ ├── README.md │ ├── assets │ └── input-icons │ │ ├── License.txt │ │ ├── icons-filled-colored-2x.png │ │ ├── icons-filled-colored-2x.png.import │ │ ├── icons-filled-colored-vector.svg │ │ ├── icons-filled-colored-vector.svg.import │ │ ├── icons-filled-colored.png │ │ ├── icons-filled-colored.png.import │ │ ├── icons-filled-white-2x.png │ │ ├── icons-filled-white-2x.png.import │ │ ├── icons-filled-white-vector.svg │ │ ├── icons-filled-white-vector.svg.import │ │ ├── icons-filled-white.png │ │ ├── icons-filled-white.png.import │ │ ├── icons-outlined-colored-2x.png │ │ ├── icons-outlined-colored-2x.png.import │ │ ├── icons-outlined-colored-vector.svg │ │ ├── icons-outlined-colored-vector.svg.import │ │ ├── icons-outlined-colored.png │ │ ├── icons-outlined-colored.png.import │ │ ├── icons-outlined-white-2x.png │ │ ├── icons-outlined-white-2x.png.import │ │ ├── icons-outlined-white-vector.svg │ │ ├── icons-outlined-white-vector.svg.import │ │ ├── icons-outlined-white.png │ │ └── icons-outlined-white.png.import │ ├── base │ ├── assets │ │ └── remapping_input_icons │ │ │ ├── LICENSE.txt │ │ │ ├── addition_symbol.png │ │ │ ├── addition_symbol.png.import │ │ │ ├── subtraction_symbol.png │ │ │ └── subtraction_symbol.png.import │ ├── scenes │ │ ├── autoloads │ │ │ ├── app_config.gd │ │ │ ├── app_config.gd.uid │ │ │ ├── app_config.tscn │ │ │ ├── project_music_controller.tscn │ │ │ ├── project_ui_sound_controller.tscn │ │ │ ├── scene_loader.gd │ │ │ ├── scene_loader.gd.uid │ │ │ └── scene_loader.tscn │ │ ├── credits │ │ │ ├── credits.gd │ │ │ ├── credits.gd.uid │ │ │ └── credits.tscn │ │ ├── loading_screen │ │ │ ├── loading_screen.gd │ │ │ ├── loading_screen.gd.uid │ │ │ └── loading_screen.tscn │ │ ├── menus │ │ │ ├── main_menu │ │ │ │ ├── config_name_label.gd │ │ │ │ ├── config_name_label.gd.uid │ │ │ │ ├── config_version_label.gd │ │ │ │ ├── config_version_label.gd.uid │ │ │ │ ├── main_menu.gd │ │ │ │ ├── main_menu.gd.uid │ │ │ │ └── main_menu.tscn │ │ │ └── options_menu │ │ │ │ ├── audio │ │ │ │ ├── audio_options_menu.gd │ │ │ │ ├── audio_options_menu.gd.uid │ │ │ │ └── audio_options_menu.tscn │ │ │ │ ├── input │ │ │ │ ├── input_actions_list.gd │ │ │ │ ├── input_actions_list.gd.uid │ │ │ │ ├── input_actions_list.tscn │ │ │ │ ├── input_actions_tree.gd │ │ │ │ ├── input_actions_tree.gd.uid │ │ │ │ ├── input_actions_tree.tscn │ │ │ │ ├── input_icon_mapper.gd │ │ │ │ ├── input_icon_mapper.gd.uid │ │ │ │ ├── input_icon_mapper.tscn │ │ │ │ ├── input_options_menu.gd │ │ │ │ ├── input_options_menu.gd.uid │ │ │ │ ├── input_options_menu.tscn │ │ │ │ ├── key_assignment_dialog.gd │ │ │ │ └── key_assignment_dialog.gd.uid │ │ │ │ ├── master_options_menu.gd │ │ │ │ ├── master_options_menu.gd.uid │ │ │ │ ├── master_options_menu.tscn │ │ │ │ ├── master_options_menu_with_tabs.tscn │ │ │ │ ├── mini_options_menu.gd │ │ │ │ ├── mini_options_menu.gd.uid │ │ │ │ ├── mini_options_menu.tscn │ │ │ │ ├── option_control │ │ │ │ ├── list_option_control.gd │ │ │ │ ├── list_option_control.gd.uid │ │ │ │ ├── list_option_control.tscn │ │ │ │ ├── option_control.gd │ │ │ │ ├── option_control.gd.uid │ │ │ │ ├── option_control.tscn │ │ │ │ ├── slider_option_control.tscn │ │ │ │ ├── toggle_option_control.tscn │ │ │ │ ├── vector_2_list_option_control.gd │ │ │ │ ├── vector_2_list_option_control.gd.uid │ │ │ │ └── vector_2_list_option_control.tscn │ │ │ │ └── video │ │ │ │ ├── video_options_menu.gd │ │ │ │ ├── video_options_menu.gd.uid │ │ │ │ └── video_options_menu.tscn │ │ ├── music_players │ │ │ └── background_music_player.tscn │ │ ├── opening │ │ │ ├── opening.gd │ │ │ ├── opening.gd.uid │ │ │ └── opening.tscn │ │ ├── overlaid_menu │ │ │ ├── menus │ │ │ │ ├── mini_options_overlaid_menu.tscn │ │ │ │ ├── pause_menu.gd │ │ │ │ ├── pause_menu.gd.uid │ │ │ │ └── pause_menu.tscn │ │ │ ├── overlaid_menu.gd │ │ │ ├── overlaid_menu.gd.uid │ │ │ ├── overlaid_menu.tscn │ │ │ ├── overlaid_menu_container.gd │ │ │ ├── overlaid_menu_container.gd.uid │ │ │ └── overlaid_menu_container.tscn │ │ └── utilities │ │ │ ├── api_client.gd │ │ │ ├── api_client.gd.uid │ │ │ ├── api_client.tscn │ │ │ ├── download_and_extract.gd │ │ │ ├── download_and_extract.gd.uid │ │ │ └── download_and_extract.tscn │ ├── scripts │ │ ├── app_settings.gd │ │ ├── app_settings.gd.uid │ │ ├── capture_focus.gd │ │ ├── capture_focus.gd.uid │ │ ├── config.gd │ │ ├── config.gd.uid │ │ ├── file_lister.gd │ │ ├── file_lister.gd.uid │ │ ├── global_state.gd │ │ ├── global_state.gd.uid │ │ ├── global_state_data.gd │ │ ├── global_state_data.gd.uid │ │ ├── input_helper.gd │ │ ├── input_helper.gd.uid │ │ ├── music_controller.gd │ │ ├── music_controller.gd.uid │ │ ├── pause_menu_controller.gd │ │ ├── pause_menu_controller.gd.uid │ │ ├── ui_sound_controller.gd │ │ └── ui_sound_controller.gd.uid │ └── translations │ │ ├── menus_translations.csv │ │ ├── menus_translations.csv.import │ │ ├── menus_translations.en.translation │ │ └── menus_translations.fr.translation │ ├── docs │ ├── ExistingProject.md │ ├── GameSceneSetup.md │ ├── GamesMade.md │ ├── HowPartsWork.md │ ├── InputIconMapping.md │ ├── JoypadInputs.md │ ├── MainMenuSetup.md │ ├── NewProject.md │ ├── PluginSuite.md │ ├── Screenshots.md │ ├── UploadingToItchIo.md │ └── Videos.md │ ├── examples │ ├── ATTRIBUTION.md │ ├── assets │ │ └── godot_engine_logo │ │ │ ├── LICENSE.txt │ │ │ ├── logo_vertical_color_dark.png │ │ │ └── logo_vertical_color_dark.png.import │ ├── resources │ │ └── themes │ │ │ ├── expedition.tres │ │ │ ├── gravity.tres │ │ │ ├── grow.tres │ │ │ ├── lab.tres │ │ │ ├── lore.tres │ │ │ └── steal_this_theme.tres │ ├── scenes │ │ ├── credits │ │ │ ├── credits.gd │ │ │ ├── credits.gd.uid │ │ │ └── credits.tscn │ │ ├── end_credits │ │ │ ├── end_credits.gd │ │ │ ├── end_credits.gd.uid │ │ │ └── end_credits.tscn │ │ ├── game_scene │ │ │ ├── configurable_sub_viewport.gd │ │ │ ├── configurable_sub_viewport.gd.uid │ │ │ ├── game_ui.tscn │ │ │ ├── input_display_label.gd │ │ │ ├── input_display_label.gd.uid │ │ │ ├── levels │ │ │ │ ├── level.gd │ │ │ │ ├── level.gd.uid │ │ │ │ ├── level_1.tscn │ │ │ │ ├── level_2.tscn │ │ │ │ └── level_3.tscn │ │ │ ├── tutorial_manager.gd │ │ │ ├── tutorial_manager.gd.uid │ │ │ └── tutorials │ │ │ │ ├── tutorial_1.tscn │ │ │ │ ├── tutorial_2.tscn │ │ │ │ └── tutorial_3.tscn │ │ ├── loading_screen │ │ │ ├── level_loading_screen.tscn │ │ │ ├── loading_screen.gd │ │ │ ├── loading_screen.gd.uid │ │ │ ├── loading_screen.tscn │ │ │ ├── loading_screen_with_shader_caching.gd │ │ │ ├── loading_screen_with_shader_caching.gd.uid │ │ │ └── loading_screen_with_shader_caching.tscn │ │ ├── menus │ │ │ ├── level_select_menu │ │ │ │ ├── level_select_menu.gd │ │ │ │ ├── level_select_menu.gd.uid │ │ │ │ └── level_select_menu.tscn │ │ │ ├── main_menu │ │ │ │ ├── main_menu.gd │ │ │ │ ├── main_menu.gd.uid │ │ │ │ ├── main_menu.tscn │ │ │ │ ├── main_menu_with_animations.gd │ │ │ │ ├── main_menu_with_animations.gd.uid │ │ │ │ └── main_menu_with_animations.tscn │ │ │ └── options_menu │ │ │ │ ├── audio │ │ │ │ ├── audio_input_option_control.gd │ │ │ │ ├── audio_input_option_control.gd.uid │ │ │ │ ├── audio_input_option_control.tscn │ │ │ │ ├── audio_options_menu.gd │ │ │ │ ├── audio_options_menu.gd.uid │ │ │ │ └── audio_options_menu.tscn │ │ │ │ ├── game │ │ │ │ ├── game_options_menu.gd │ │ │ │ ├── game_options_menu.gd.uid │ │ │ │ ├── game_options_menu.tscn │ │ │ │ └── reset_game_control │ │ │ │ │ ├── reset_game_control.gd │ │ │ │ │ ├── reset_game_control.gd.uid │ │ │ │ │ └── reset_game_control.tscn │ │ │ │ ├── input │ │ │ │ ├── input_extras_menu.tscn │ │ │ │ ├── input_options_menu.gd │ │ │ │ ├── input_options_menu.gd.uid │ │ │ │ ├── input_options_menu.tscn │ │ │ │ └── input_options_menu_with_mouse_sensitivity.tscn │ │ │ │ ├── master_options_menu.gd │ │ │ │ ├── master_options_menu.gd.uid │ │ │ │ ├── master_options_menu.tscn │ │ │ │ ├── master_options_menu_with_tabs.tscn │ │ │ │ ├── mini_options_menu.gd │ │ │ │ ├── mini_options_menu.gd.uid │ │ │ │ ├── mini_options_menu.tscn │ │ │ │ ├── mini_options_menu_with_reset.gd │ │ │ │ ├── mini_options_menu_with_reset.gd.uid │ │ │ │ ├── mini_options_menu_with_reset.tscn │ │ │ │ └── video │ │ │ │ ├── video_options_menu.gd │ │ │ │ ├── video_options_menu.gd.uid │ │ │ │ ├── video_options_menu.tscn │ │ │ │ └── video_options_menu_with_extras.tscn │ │ ├── opening │ │ │ ├── opening.gd │ │ │ ├── opening.gd.uid │ │ │ ├── opening.tscn │ │ │ └── opening_with_logo.tscn │ │ └── overlaid_menus │ │ │ ├── game_won_menu.gd │ │ │ ├── game_won_menu.gd.uid │ │ │ ├── game_won_menu.tscn │ │ │ ├── level_lost_menu.gd │ │ │ ├── level_lost_menu.gd.uid │ │ │ ├── level_lost_menu.tscn │ │ │ ├── level_won_menu.gd │ │ │ ├── level_won_menu.gd.uid │ │ │ ├── level_won_menu.tscn │ │ │ ├── mini_options_overlaid_menu.tscn │ │ │ ├── overlaid_menu.gd │ │ │ ├── overlaid_menu.gd.uid │ │ │ ├── overlaid_menu.tscn │ │ │ ├── overlaid_menu_container.gd │ │ │ ├── overlaid_menu_container.gd.uid │ │ │ ├── overlaid_menu_container.tscn │ │ │ ├── pause_menu.gd │ │ │ ├── pause_menu.gd.uid │ │ │ └── pause_menu.tscn │ └── scripts │ │ ├── game_state.gd │ │ ├── game_state.gd.uid │ │ ├── level_list_state_manager.gd │ │ ├── level_list_state_manager.gd.uid │ │ ├── level_state.gd │ │ └── level_state.gd.uid │ ├── extras │ ├── scenes │ │ └── overlaid_menus │ │ │ ├── game_won_menu.gd │ │ │ ├── game_won_menu.gd.uid │ │ │ ├── game_won_menu.tscn │ │ │ ├── level_lost_menu.gd │ │ │ ├── level_lost_menu.gd.uid │ │ │ ├── level_lost_menu.tscn │ │ │ ├── level_won_menu.gd │ │ │ ├── level_won_menu.gd.uid │ │ │ └── level_won_menu.tscn │ └── scripts │ │ ├── asset_checker.sh │ │ ├── butler_manager.sh │ │ ├── capture_mouse.gd │ │ ├── capture_mouse.gd.uid │ │ ├── level_list_loader.gd │ │ ├── level_list_loader.gd.uid │ │ ├── level_list_manager.gd │ │ ├── level_list_manager.gd.uid │ │ ├── level_loader.gd │ │ ├── level_loader.gd.uid │ │ ├── scene_lister.gd │ │ └── scene_lister.gd.uid │ ├── installer │ ├── check_plugin_version.gd │ ├── check_plugin_version.gd.uid │ ├── check_plugin_version.tscn │ ├── copy_confirmation_dialog.tscn │ ├── delete_examples_confirmation_dialog.tscn │ ├── delete_examples_short_confirmation_dialog.tscn │ ├── destination_dialog.tscn │ ├── kenney_input_prompts_dialog.gd │ ├── kenney_input_prompts_dialog.gd.uid │ ├── kenney_input_prompts_dialog.tscn │ ├── kenney_input_prompts_installer.gd │ ├── kenney_input_prompts_installer.gd.uid │ ├── kenney_input_prompts_installer.tscn │ ├── main_scene_confirmation_dialog.tscn │ ├── override.cfg │ ├── play_opening_confirmation_dialog.tscn │ ├── theme_selection_dialog.gd │ ├── theme_selection_dialog.gd.uid │ ├── theme_selection_dialog.tscn │ ├── update_plugin.gd │ ├── update_plugin.gd.uid │ └── update_plugin.tscn │ ├── maaacks_game_template.gd │ ├── maaacks_game_template.gd.uid │ ├── media │ ├── .gdignore │ ├── credits_scene-icon-black-transparent-256x256.png │ ├── game-icon-black-transparent-256x256.png │ ├── input_remapping-icon-black-transparent-256x256.png │ ├── maaack-black-transparent-256x256.png │ ├── maaacks-plugin-suite-256x256.gif │ ├── menus-icon-black-transparent-256x256.png │ ├── music_controller-icon-black-transparent-256x256.png │ ├── options-icon-black-transparent-256x256.png │ ├── scene_loader-icon-black-transparent-256x256.png │ ├── screenshot-5-juliocacko-1.png │ ├── screenshot-5-juliocacko-2.png │ ├── screenshot-5-kenney-1.png │ ├── screenshot-5-kenney-2.png │ ├── screenshot-5-kenney-3.png │ ├── screenshot-5-kenney-4.png │ ├── screenshot-5-xelu-1.png │ ├── screenshot-5-xelu-2.png │ ├── screenshot-6-audio-options-1.png │ ├── screenshot-6-audio-options-2.png │ ├── screenshot-6-audio-options-3.png │ ├── screenshot-6-audio-options-4.png │ ├── screenshot-6-audio-options-5.png │ ├── screenshot-6-audio-options-6.png │ ├── screenshot-6-input-list-1.png │ ├── screenshot-6-input-list-2.png │ ├── screenshot-6-input-list-3.png │ ├── screenshot-6-input-list-4.png │ ├── screenshot-6-input-list-5.png │ ├── screenshot-6-input-list-6.png │ ├── screenshot-6-input-list-7.png │ ├── screenshot-6-input-list-8.png │ ├── screenshot-6-input-list-9.png │ ├── screenshot-6-input-sensitivity-1.png │ ├── screenshot-6-input-sensitivity-2.png │ ├── screenshot-6-input-sensitivity-3.png │ ├── screenshot-6-input-sensitivity-4.png │ ├── screenshot-6-input-sensitivity-5.png │ ├── screenshot-6-input-tree-1.png │ ├── screenshot-6-input-tree-2.png │ ├── screenshot-6-input-tree-3.png │ ├── screenshot-6-input-tree-4.png │ ├── screenshot-6-input-tree-5.png │ ├── screenshot-6-level-lost-1.png │ ├── screenshot-6-level-lost-2.png │ ├── screenshot-6-level-lost-3.png │ ├── screenshot-6-level-select-1.png │ ├── screenshot-6-level-state-1.png │ ├── screenshot-6-level-state-2.png │ ├── screenshot-6-level-state-3.png │ ├── screenshot-6-level-won-1.png │ ├── screenshot-6-level-won-2.png │ ├── screenshot-6-level-won-3.png │ ├── screenshot-6-loading-screen-1.png │ ├── screenshot-6-loading-screen-2.png │ ├── screenshot-6-loading-screen-3.png │ ├── screenshot-6-loading-screen-4.png │ ├── screenshot-6-main-menu-1.png │ ├── screenshot-6-main-menu-2.png │ ├── screenshot-6-main-menu-3.png │ ├── screenshot-6-main-menu-4.png │ ├── screenshot-6-main-menu-5.png │ ├── screenshot-6-mini-options-1.png │ ├── screenshot-6-mini-options-2.png │ ├── screenshot-6-pause-menu-1.png │ ├── screenshot-6-pause-menu-2.png │ ├── screenshot-6-pause-menu-3.png │ ├── screenshot-6-pause-menu-4.png │ ├── screenshot-6-pause-menu-5.png │ ├── screenshot-6-theme-selector-1.png │ ├── screenshot-6-theme-selector-10.png │ ├── screenshot-6-theme-selector-11.png │ ├── screenshot-6-theme-selector-12.png │ ├── screenshot-6-theme-selector-2.png │ ├── screenshot-6-theme-selector-3.png │ ├── screenshot-6-theme-selector-4.png │ ├── screenshot-6-theme-selector-5.png │ ├── screenshot-6-theme-selector-6.png │ ├── screenshot-6-theme-selector-7.png │ ├── screenshot-6-theme-selector-8.png │ ├── screenshot-6-theme-selector-9.png │ ├── screenshot-6-video-options-1.png │ ├── screenshot-6-video-options-2.png │ ├── screenshot-6-video-options-3.png │ ├── screenshot-6-video-options-4.png │ ├── screenshot-6-video-options-5.png │ ├── screenshot-6-video-options-6.png │ ├── screenshot-game-a-darkness-like-gravity.png │ ├── screenshot-game-harvest-hill.png │ ├── screenshot-game-nannybot-overload.png │ ├── screenshot-game-rent-seek-kill.png │ ├── screenshot-game-spud-customs.png │ └── ui_sound_controller-icon-black-transparent-256x256.png │ └── plugin.cfg ├── assets └── godot_engine_logo │ ├── LICENSE.txt │ ├── logo_vertical_color_dark.png │ └── logo_vertical_color_dark.png.import ├── default_bus_layout.tres ├── default_env.tres ├── icon.png ├── icon.png.import ├── override.cfg ├── project.godot ├── resources └── themes │ ├── expedition.tres │ ├── gravity.tres │ ├── grow.tres │ ├── lab.tres │ ├── lore.tres │ └── steal_this_theme.tres ├── scenes ├── credits │ ├── credits.gd │ ├── credits.gd.uid │ └── credits.tscn ├── end_credits │ ├── end_credits.gd │ ├── end_credits.gd.uid │ └── end_credits.tscn ├── game_scene │ ├── configurable_sub_viewport.gd │ ├── configurable_sub_viewport.gd.uid │ ├── game_ui.tscn │ ├── input_display_label.gd │ ├── input_display_label.gd.uid │ ├── levels │ │ ├── level.gd │ │ ├── level.gd.uid │ │ ├── level_1.tscn │ │ ├── level_2.tscn │ │ └── level_3.tscn │ ├── tutorial_manager.gd │ ├── tutorial_manager.gd.uid │ └── tutorials │ │ ├── tutorial_1.tscn │ │ ├── tutorial_2.tscn │ │ └── tutorial_3.tscn ├── loading_screen │ ├── level_loading_screen.tscn │ ├── loading_screen.gd │ ├── loading_screen.gd.uid │ ├── loading_screen.tscn │ ├── loading_screen_with_shader_caching.gd │ ├── loading_screen_with_shader_caching.gd.uid │ └── loading_screen_with_shader_caching.tscn ├── menus │ ├── level_select_menu │ │ ├── level_select_menu.gd │ │ ├── level_select_menu.gd.uid │ │ └── level_select_menu.tscn │ ├── main_menu │ │ ├── main_menu.gd │ │ ├── main_menu.gd.uid │ │ ├── main_menu.tscn │ │ ├── main_menu_with_animations.gd │ │ ├── main_menu_with_animations.gd.uid │ │ └── main_menu_with_animations.tscn │ └── options_menu │ │ ├── audio │ │ ├── audio_input_option_control.gd │ │ ├── audio_input_option_control.gd.uid │ │ ├── audio_input_option_control.tscn │ │ ├── audio_options_menu.gd │ │ ├── audio_options_menu.gd.uid │ │ └── audio_options_menu.tscn │ │ ├── game │ │ ├── game_options_menu.gd │ │ ├── game_options_menu.gd.uid │ │ ├── game_options_menu.tscn │ │ └── reset_game_control │ │ │ ├── reset_game_control.gd │ │ │ ├── reset_game_control.gd.uid │ │ │ └── reset_game_control.tscn │ │ ├── input │ │ ├── input_extras_menu.tscn │ │ ├── input_options_menu.gd │ │ ├── input_options_menu.gd.uid │ │ ├── input_options_menu.tscn │ │ └── input_options_menu_with_mouse_sensitivity.tscn │ │ ├── master_options_menu.gd │ │ ├── master_options_menu.gd.uid │ │ ├── master_options_menu.tscn │ │ ├── master_options_menu_with_tabs.tscn │ │ ├── mini_options_menu.gd │ │ ├── mini_options_menu.gd.uid │ │ ├── mini_options_menu.tscn │ │ ├── mini_options_menu_with_reset.gd │ │ ├── mini_options_menu_with_reset.gd.uid │ │ ├── mini_options_menu_with_reset.tscn │ │ └── video │ │ ├── video_options_menu.gd │ │ ├── video_options_menu.gd.uid │ │ ├── video_options_menu.tscn │ │ └── video_options_menu_with_extras.tscn ├── opening │ ├── opening.gd │ ├── opening.gd.uid │ ├── opening.tscn │ └── opening_with_logo.tscn └── overlaid_menus │ ├── game_won_menu.gd │ ├── game_won_menu.gd.uid │ ├── game_won_menu.tscn │ ├── level_lost_menu.gd │ ├── level_lost_menu.gd.uid │ ├── level_lost_menu.tscn │ ├── level_won_menu.gd │ ├── level_won_menu.gd.uid │ ├── level_won_menu.tscn │ ├── mini_options_overlaid_menu.tscn │ ├── overlaid_menu.gd │ ├── overlaid_menu.gd.uid │ ├── overlaid_menu.tscn │ ├── overlaid_menu_container.gd │ ├── overlaid_menu_container.gd.uid │ ├── overlaid_menu_container.tscn │ ├── pause_menu.gd │ ├── pause_menu.gd.uid │ └── pause_menu.tscn └── scripts ├── game_state.gd ├── game_state.gd.uid ├── level_list_state_manager.gd ├── level_list_state_manager.gd.uid ├── level_state.gd └── level_state.gd.uid /.gitattributes: -------------------------------------------------------------------------------- 1 | # Normalize line endings for all files that Git considers text files. 2 | * text=auto eol=lf 3 | 4 | # Exclude github directory 5 | /.github export-ignore 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Godot 4+ specific ignores 2 | .godot/ 3 | 4 | # Godot-specific ignores 5 | .import/ 6 | export.cfg 7 | export_presets.cfg 8 | 9 | # Imported translations (automatically generated from CSV files) 10 | *.translation.godot/ 11 | 12 | # Mono-specific ignores 13 | .mono/ 14 | data_*/ 15 | mono_crash.*.json 16 | 17 | # Export folders 18 | exports/ 19 | Exports/ 20 | 21 | # IDE and OS specific 22 | .vscode/ 23 | .idea/ 24 | .DS_Store 25 | -------------------------------------------------------------------------------- /ATTRIBUTION.md: -------------------------------------------------------------------------------- 1 | # Attribution 2 | ## Collaborators 3 | 4 | ### Godot Game Template 5 | Author: [Marek Belski and contributors](https://github.com/Maaack/Godot-Game-Template/graphs/contributors) 6 | Source: [github: Godot-Game-Template](https://github.com/Maaack/Godot-Game-Template) 7 | License: [MIT License](LICENSE.txt) 8 | 9 | ## Sourced 10 | #### Godot Engine Logo 11 | Author: Andrea Calabró 12 | Source: [godotengine.org : press](https://godotengine.org/press/) 13 | License: [CC BY 4.0 International](https://github.com/godotengine/godot/blob/master/LOGO_LICENSE.txt) 14 | 15 | ## Tools 16 | #### Godot 17 | Author: [Juan Linietsky, Ariel Manzur, and contributors](https://godotengine.org/contact) 18 | Source: [godotengine.org](https://godotengine.org/) 19 | License: [MIT License](https://github.com/godotengine/godot/blob/master/LICENSE.txt) 20 | 21 | #### Visual Studio Code 22 | Author: [Microsoft](https://opensource.microsoft.com/) 23 | Source: [github: vscode](https://github.com/microsoft/vscode) 24 | License: [MIT License](https://github.com/microsoft/vscode/blob/main/LICENSE.txt) 25 | 26 | #### Git 27 | Author: [Linus Torvalds](https://github.com/torvalds) 28 | Source: [git-scm.com](https://git-scm.com/downloads) 29 | License: [GNU General Public License version 2](https://opensource.org/licenses/GPL-2.0) 30 | -------------------------------------------------------------------------------- /LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2022-present Marek Belski. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/ATTRIBUTION.md: -------------------------------------------------------------------------------- 1 | # Attribution 2 | ## Collaborators 3 | 4 | ### Godot Game Template 5 | Author: [Marek Belski and contributors](https://github.com/Maaack/Godot-Game-Template/graphs/contributors) 6 | Source: [github: Godot-Game-Template](https://github.com/Maaack/Godot-Game-Template) 7 | License: [MIT License](LICENSE.txt) 8 | 9 | ## Sourced 10 | #### Godot Engine Logo 11 | Author: Andrea Calabró 12 | Source: [godotengine.org : press](https://godotengine.org/press/) 13 | License: [CC BY 4.0 International](https://github.com/godotengine/godot/blob/master/LOGO_LICENSE.txt) 14 | 15 | ## Tools 16 | #### Godot 17 | Author: [Juan Linietsky, Ariel Manzur, and contributors](https://godotengine.org/contact) 18 | Source: [godotengine.org](https://godotengine.org/) 19 | License: [MIT License](https://github.com/godotengine/godot/blob/master/LICENSE.txt) 20 | 21 | #### Visual Studio Code 22 | Author: [Microsoft](https://opensource.microsoft.com/) 23 | Source: [github: vscode](https://github.com/microsoft/vscode) 24 | License: [MIT License](https://github.com/microsoft/vscode/blob/main/LICENSE.txt) 25 | 26 | #### Git 27 | Author: [Linus Torvalds](https://github.com/torvalds) 28 | Source: [git-scm.com](https://git-scm.com/downloads) 29 | License: [GNU General Public License version 2](https://opensource.org/licenses/GPL-2.0) 30 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2022-present Marek Belski. 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in all 11 | copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 | SOFTWARE. 20 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/License.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | Input Prompts (1.1b) 4 | 5 | Created/distributed by Kenney (www.kenney.nl) 6 | Creation date: 26-06-2024 7 | 8 | ------------------------------ 9 | 10 | License: (Creative Commons Zero, CC0) 11 | http://creativecommons.org/publicdomain/zero/1.0/ 12 | 13 | You can use this content for personal, educational, and commercial purposes. 14 | 15 | Support by crediting 'Kenney' or 'www.kenney.nl' (this is not a requirement) 16 | 17 | ------------------------------ 18 | 19 | • Website : www.kenney.nl 20 | • Donate : www.kenney.nl/donate 21 | 22 | • Patreon : patreon.com/kenney 23 | 24 | Follow on social media for updates: 25 | 26 | • Twitter: twitter.com/KenneyNL 27 | • Instagram: instagram.com/kenney_nl 28 | • Mastodon: mastodon.gamedev.place/@kenney -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-colored-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-filled-colored-2x.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-colored-2x.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bt1yqttw3d5xn" 6 | path="res://.godot/imported/icons-filled-colored-2x.png-14a5dbb04fef712e7a1f7d34f81f0511.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-colored-2x.png" 14 | dest_files=["res://.godot/imported/icons-filled-colored-2x.png-14a5dbb04fef712e7a1f7d34f81f0511.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-colored-vector.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-colored-vector.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ix1d2e62f233" 6 | path="res://.godot/imported/icons-filled-colored-vector.svg-c7a49006540770527e69f02661f41e5d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-colored-vector.svg" 14 | dest_files=["res://.godot/imported/icons-filled-colored-vector.svg-c7a49006540770527e69f02661f41e5d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-filled-colored.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-colored.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cmni5hv40bfaa" 6 | path="res://.godot/imported/icons-filled-colored.png-b51ce8c74ea37d4ce19368644717d850.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-colored.png" 14 | dest_files=["res://.godot/imported/icons-filled-colored.png-b51ce8c74ea37d4ce19368644717d850.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-white-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-filled-white-2x.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-white-2x.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bit8o3p506th6" 6 | path="res://.godot/imported/icons-filled-white-2x.png-5c033b4f193bd04be0bd84ca3aeed43e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-white-2x.png" 14 | dest_files=["res://.godot/imported/icons-filled-white-2x.png-5c033b4f193bd04be0bd84ca3aeed43e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-white-vector.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-white-vector.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c37gofthe2bh3" 6 | path="res://.godot/imported/icons-filled-white-vector.svg-fb1a35d16d7d3ee4e3b0699c09f3649a.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-white-vector.svg" 14 | dest_files=["res://.godot/imported/icons-filled-white-vector.svg-fb1a35d16d7d3ee4e3b0699c09f3649a.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-filled-white.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-filled-white.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://deskx061vlcgx" 6 | path="res://.godot/imported/icons-filled-white.png-f0994450aea86cd81dcc11ae094a178f.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-white.png" 14 | dest_files=["res://.godot/imported/icons-filled-white.png-f0994450aea86cd81dcc11ae094a178f.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-2x.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-2x.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://cqb86gp1gh3y8" 6 | path="res://.godot/imported/icons-outlined-colored-2x.png-5a43a028a51c5c4295143c766d9574a0.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-2x.png" 14 | dest_files=["res://.godot/imported/icons-outlined-colored-2x.png-5a43a028a51c5c4295143c766d9574a0.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-vector.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-vector.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bsgf78aysgdnd" 6 | path="res://.godot/imported/icons-outlined-colored-vector.svg-c32ed4ee32b32291e81571a12a36394d.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-vector.svg" 14 | dest_files=["res://.godot/imported/icons-outlined-colored-vector.svg-c32ed4ee32b32291e81571a12a36394d.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-colored.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-outlined-colored.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-colored.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bohem6w6kcl3x" 6 | path="res://.godot/imported/icons-outlined-colored.png-db3d206f9675395a32cb5ad98e6b9065.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-colored.png" 14 | dest_files=["res://.godot/imported/icons-outlined-colored.png-db3d206f9675395a32cb5ad98e6b9065.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-white-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-outlined-white-2x.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-white-2x.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://d3bsc6o2ae88q" 6 | path="res://.godot/imported/icons-outlined-white-2x.png-1e7b9db0c429e31d1923667585542e8c.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-white-2x.png" 14 | dest_files=["res://.godot/imported/icons-outlined-white-2x.png-1e7b9db0c429e31d1923667585542e8c.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-white-vector.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-white-vector.svg.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c1lpc33fpmd4p" 6 | path="res://.godot/imported/icons-outlined-white-vector.svg-13bd95bd8aface9a8bed6895685dd4ef.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-white-vector.svg" 14 | dest_files=["res://.godot/imported/icons-outlined-white-vector.svg-13bd95bd8aface9a8bed6895685dd4ef.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | svg/scale=1.0 36 | editor/scale_with_editor_scale=false 37 | editor/convert_colors_with_editor_theme=false 38 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/assets/input-icons/icons-outlined-white.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/assets/input-icons/icons-outlined-white.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bq211jkfnm7k7" 6 | path="res://.godot/imported/icons-outlined-white.png-c34cd64ff1b09fbf25cb6339951f61dc.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-white.png" 14 | dest_files=["res://.godot/imported/icons-outlined-white.png-c34cd64ff1b09fbf25cb6339951f61dc.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/assets/remapping_input_icons/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Remapping input icons by Marek Belski is marked with CC0 1.0. To view a copy of this license, visit https://creativecommons.org/publicdomain/zero/1.0/ -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/assets/remapping_input_icons/addition_symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/base/assets/remapping_input_icons/addition_symbol.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/assets/remapping_input_icons/addition_symbol.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://c1eqf1cse1hch" 6 | path="res://.godot/imported/addition_symbol.png-e8a7f3ce4d91474fb1dc85f298d0b607.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/base/assets/remapping_input_icons/addition_symbol.png" 14 | dest_files=["res://.godot/imported/addition_symbol.png-e8a7f3ce4d91474fb1dc85f298d0b607.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/assets/remapping_input_icons/subtraction_symbol.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/base/assets/remapping_input_icons/subtraction_symbol.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/assets/remapping_input_icons/subtraction_symbol.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://bteq3ica74h30" 6 | path="res://.godot/imported/subtraction_symbol.png-88291598586ab54d7f002593f7569b3e.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/base/assets/remapping_input_icons/subtraction_symbol.png" 14 | dest_files=["res://.godot/imported/subtraction_symbol.png-88291598586ab54d7f002593f7569b3e.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/autoloads/app_config.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | func _ready() -> void: 4 | GlobalState.open() 5 | AppSettings.set_from_config_and_window(get_window()) 6 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/autoloads/app_config.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cno5ujal5t3kf 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/autoloads/app_config.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cjke6crjg14a0"] 2 | 3 | [ext_resource type="Script" uid="uid://cno5ujal5t3kf" path="res://addons/maaacks_game_template/base/scenes/autoloads/app_config.gd" id="1_o0k5w"] 4 | 5 | [node name="AppConfig" type="Node"] 6 | script = ExtResource("1_o0k5w") 7 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/autoloads/project_music_controller.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://r5t485lr3p7t"] 2 | 3 | [ext_resource type="Script" uid="uid://ctrh4qyxqncss" path="res://addons/maaacks_game_template/base/scripts/music_controller.gd" id="1_wbudo"] 4 | 5 | [node name="ProjectMusicController" type="Node"] 6 | process_mode = 3 7 | script = ExtResource("1_wbudo") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/autoloads/project_ui_sound_controller.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cc37235kj4384"] 2 | 3 | [ext_resource type="Script" uid="uid://b5oej1q4h7jvh" path="res://addons/maaacks_game_template/base/scripts/ui_sound_controller.gd" id="1_dmagn"] 4 | 5 | [node name="ProjectUISoundController" type="Node"] 6 | script = ExtResource("1_dmagn") 7 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/autoloads/scene_loader.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cxrcy0evb0j3l 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/autoloads/scene_loader.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cbwmrnp0af35y"] 2 | 3 | [ext_resource type="Script" uid="uid://cxrcy0evb0j3l" path="res://addons/maaacks_game_template/base/scenes/autoloads/scene_loader.gd" id="1_l0dhx"] 4 | 5 | [node name="SceneLoader" type="Node"] 6 | script = ExtResource("1_l0dhx") 7 | loading_screen_path = "res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/credits/credits.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bnub0cq2y0deh 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dgeewyjjpk4qn 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/main_menu/config_name_label.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Label 3 | class_name ConfigNameLabel 4 | ## Displays the value of `application/config/name`, set in project settings. 5 | 6 | const NO_NAME_STRING : String = "Title" 7 | 8 | @export var lock : bool = false 9 | 10 | func update_name_label(): 11 | if lock: return 12 | var config_name : String = ProjectSettings.get_setting("application/config/name", NO_NAME_STRING) 13 | if config_name.is_empty(): 14 | config_name = NO_NAME_STRING 15 | text = config_name 16 | 17 | func _ready(): 18 | update_name_label() 19 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/main_menu/config_name_label.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bkwlopi4qn32o 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/main_menu/config_version_label.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Label 3 | class_name ConfigVersionLabel 4 | ## Displays the value of `application/config/version`, set in project settings. 5 | 6 | const NO_VERSION_STRING : String = "0.0.0" 7 | 8 | ## Prefixes the value of `application/config/version` when displaying to the user. 9 | @export var version_prefix : String = "v" 10 | 11 | func update_version_label() -> void: 12 | var config_version : String = ProjectSettings.get_setting("application/config/version", NO_VERSION_STRING) 13 | if config_version.is_empty(): 14 | config_version = NO_VERSION_STRING 15 | text = version_prefix + config_version 16 | 17 | func _ready() -> void: 18 | update_version_label() 19 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/main_menu/config_version_label.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dmkubt2nsnsbn 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/main_menu/main_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bhgs1upaahk3y 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/audio/audio_options_menu.gd: -------------------------------------------------------------------------------- 1 | class_name AudioOptionsMenu 2 | extends Control 3 | 4 | @export var audio_control_scene : PackedScene 5 | @export var hide_busses : Array[String] 6 | 7 | @onready var mute_control = %MuteControl 8 | 9 | func _on_bus_changed(bus_value : float, bus_iter : int) -> void: 10 | AppSettings.set_bus_volume(bus_iter, bus_value) 11 | 12 | func _add_audio_control(bus_name : String, bus_value : float, bus_iter : int) -> void: 13 | if audio_control_scene == null or bus_name in hide_busses or bus_name.begins_with(AppSettings.SYSTEM_BUS_NAME_PREFIX): 14 | return 15 | var audio_control = audio_control_scene.instantiate() 16 | %AudioControlContainer.call_deferred("add_child", audio_control) 17 | if audio_control is OptionControl: 18 | audio_control.option_section = OptionControl.OptionSections.AUDIO 19 | audio_control.option_name = bus_name 20 | audio_control.value = bus_value 21 | audio_control.connect("setting_changed", _on_bus_changed.bind(bus_iter)) 22 | 23 | func _add_audio_bus_controls() -> void: 24 | for bus_iter in AudioServer.bus_count: 25 | var bus_name : String = AppSettings.get_audio_bus_name(bus_iter) 26 | var linear : float = AppSettings.get_bus_volume(bus_iter) 27 | _add_audio_control(bus_name, linear, bus_iter) 28 | 29 | func _update_ui() -> void: 30 | _add_audio_bus_controls() 31 | mute_control.value = AppSettings.is_muted() 32 | 33 | func _ready() -> void: 34 | _update_ui() 35 | 36 | func _on_mute_control_setting_changed(value : bool) -> void: 37 | AppSettings.set_mute(value) 38 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/audio/audio_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bwugqn2cjr41e 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_actions_list.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b3q5fgjev8gyo 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_actions_tree.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bp7d2e5djo2tp 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_actions_tree.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://ci6wgl2ngd35n"] 2 | 3 | [ext_resource type="Script" uid="uid://bp7d2e5djo2tp" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_actions_tree.gd" id="1_o33o4"] 4 | [ext_resource type="Texture2D" uid="uid://c1eqf1cse1hch" path="res://addons/maaacks_game_template/base/assets/remapping_input_icons/addition_symbol.png" id="2_ppi0j"] 5 | [ext_resource type="Texture2D" uid="uid://bteq3ica74h30" path="res://addons/maaacks_game_template/base/assets/remapping_input_icons/subtraction_symbol.png" id="3_hb3xh"] 6 | 7 | [node name="InputActionsTree" type="Tree"] 8 | custom_minimum_size = Vector2(400, 240) 9 | size_flags_vertical = 3 10 | hide_root = true 11 | script = ExtResource("1_o33o4") 12 | input_action_names = Array[StringName]([&"move_forward", &"move_backward", &"move_up", &"move_down", &"move_left", &"move_right", &"interact"]) 13 | readable_action_names = Array[String](["Move Forward", "Move Backward", "Move Up", "Move Down", "Move Left", "Move Right", "Interact"]) 14 | add_button_texture = ExtResource("2_ppi0j") 15 | remove_button_texture = ExtResource("3_hb3xh") 16 | action_name_map = { 17 | "interact": "Interact", 18 | "move_backward": "Move Backward", 19 | "move_down": "Move Down", 20 | "move_forward": "Move Forward", 21 | "move_left": "Move Left", 22 | "move_right": "Move Right", 23 | "move_up": "Move Up" 24 | } 25 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_icon_mapper.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cqigj1uumknrp 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_icon_mapper.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://qoexj4ptqt8a"] 2 | 3 | [ext_resource type="Script" uid="uid://cqigj1uumknrp" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_icon_mapper.gd" id="1_msrpt"] 4 | 5 | [node name="InputIconMapper" type="Node"] 6 | script = ExtResource("1_msrpt") 7 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://eborw7q4b07h 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/input/key_assignment_dialog.gd.uid: -------------------------------------------------------------------------------- 1 | uid://custha7r0uoic 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.gd: -------------------------------------------------------------------------------- 1 | class_name MasterOptionsMenu 2 | extends Control 3 | 4 | func _unhandled_input(event : InputEvent) -> void: 5 | if not is_visible_in_tree(): 6 | return 7 | if event.is_action_pressed("ui_page_down"): 8 | $TabContainer.current_tab = ($TabContainer.current_tab+1) % $TabContainer.get_tab_count() 9 | elif event.is_action_pressed("ui_page_up"): 10 | if $TabContainer.current_tab == 0: 11 | $TabContainer.current_tab = $TabContainer.get_tab_count()-1 12 | else: 13 | $TabContainer.current_tab = $TabContainer.current_tab-1 14 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c3mignmhuvvq4 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://bvwl11s2p0hd"] 2 | 3 | [ext_resource type="Script" uid="uid://c3mignmhuvvq4" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.gd" id="1_u08d5"] 4 | 5 | [node name="MasterOptionsMenu" type="Control"] 6 | layout_mode = 3 7 | anchors_preset = 15 8 | anchor_right = 1.0 9 | anchor_bottom = 1.0 10 | grow_horizontal = 2 11 | grow_vertical = 2 12 | size_flags_horizontal = 3 13 | size_flags_vertical = 3 14 | script = ExtResource("1_u08d5") 15 | 16 | [node name="TabContainer" type="TabContainer" parent="."] 17 | layout_mode = 1 18 | anchors_preset = 15 19 | anchor_right = 1.0 20 | anchor_bottom = 1.0 21 | grow_horizontal = 2 22 | grow_vertical = 2 23 | tab_alignment = 1 24 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu_with_tabs.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://hmx6o472ropw"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://bvwl11s2p0hd" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.tscn" id="1_uaidt"] 4 | [ext_resource type="PackedScene" uid="uid://dp3rgqaehb3xu" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_options_menu.tscn" id="2_15wl6"] 5 | [ext_resource type="PackedScene" uid="uid://c8vnncjwqcpab" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/audio/audio_options_menu.tscn" id="3_qg4me"] 6 | [ext_resource type="PackedScene" uid="uid://b2numvphf2kau" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.tscn" id="4_1t848"] 7 | 8 | [node name="MasterOptionsMenu" instance=ExtResource("1_uaidt")] 9 | 10 | [node name="TabContainer" parent="." index="0"] 11 | current_tab = 0 12 | 13 | [node name="Controls" parent="TabContainer" index="1" instance=ExtResource("2_15wl6")] 14 | layout_mode = 2 15 | metadata/_tab_index = 0 16 | 17 | [node name="Audio" parent="TabContainer" index="2" instance=ExtResource("3_qg4me")] 18 | visible = false 19 | layout_mode = 2 20 | metadata/_tab_index = 1 21 | 22 | [node name="Video" parent="TabContainer" index="3" instance=ExtResource("4_1t848")] 23 | visible = false 24 | layout_mode = 2 25 | metadata/_tab_index = 2 26 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://1c0iyo5djoxj 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b8xqufg4re3c2 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://b6bl3n5mp3m1e"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://d7te75il06t7" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/option_control.tscn" id="1_blo3b"] 4 | [ext_resource type="Script" uid="uid://b8xqufg4re3c2" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.gd" id="2_kt4vl"] 5 | 6 | [node name="OptionControl" instance=ExtResource("1_blo3b")] 7 | script = ExtResource("2_kt4vl") 8 | lock_titles = false 9 | option_values = [] 10 | option_titles = [] 11 | 12 | [node name="OptionButton" type="OptionButton" parent="." index="1"] 13 | unique_name_in_owner = true 14 | layout_mode = 2 15 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/option_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cafqki2b08kwu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/option_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://d7te75il06t7"] 2 | 3 | [ext_resource type="Script" uid="uid://cafqki2b08kwu" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/option_control.gd" id="1_jvl5q"] 4 | 5 | [node name="OptionControl" type="HBoxContainer"] 6 | custom_minimum_size = Vector2(0, 40) 7 | offset_right = 400.0 8 | offset_bottom = 40.0 9 | script = ExtResource("1_jvl5q") 10 | default_value = false 11 | 12 | [node name="OptionLabel" type="Label" parent="."] 13 | unique_name_in_owner = true 14 | layout_mode = 2 15 | size_flags_horizontal = 3 16 | text = " :" 17 | vertical_alignment = 1 18 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/slider_option_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cl416gdb1fgwr"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://d7te75il06t7" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/option_control.tscn" id="1_16hlr"] 4 | 5 | [node name="OptionControl" instance=ExtResource("1_16hlr")] 6 | custom_minimum_size = Vector2(0, 28) 7 | offset_bottom = 28.0 8 | property_type = 3 9 | default_value = 1.0 10 | 11 | [node name="HSlider" type="HSlider" parent="." index="1"] 12 | custom_minimum_size = Vector2(256, 0) 13 | layout_mode = 2 14 | size_flags_vertical = 4 15 | max_value = 1.0 16 | step = 0.05 17 | value = 1.0 18 | tick_count = 11 19 | ticks_on_borders = true 20 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/toggle_option_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://bsxh6v7j0257h"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://d7te75il06t7" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/option_control.tscn" id="1_8rnmo"] 4 | 5 | [node name="OptionControl" instance=ExtResource("1_8rnmo")] 6 | 7 | [node name="CheckButton" type="CheckButton" parent="." index="1"] 8 | layout_mode = 2 9 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/vector_2_list_option_control.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name Vector2ListOptionControl 3 | extends ListOptionControl 4 | 5 | func _value_title_map(value : Variant) -> String: 6 | if value is Vector2 or value is Vector2i: 7 | return "%d x %d" % [value.x , value.y] 8 | else: 9 | return super._value_title_map(value) 10 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/vector_2_list_option_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://brntdgf3sv0s0 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/vector_2_list_option_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://c01ayjblhcg1t"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b6bl3n5mp3m1e" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn" id="1_jqwiw"] 4 | [ext_resource type="Script" uid="uid://brntdgf3sv0s0" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/vector_2_list_option_control.gd" id="2_w33vs"] 5 | 6 | [node name="OptionControl" instance=ExtResource("1_jqwiw")] 7 | script = ExtResource("2_w33vs") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.gd: -------------------------------------------------------------------------------- 1 | class_name VideoOptionsMenu 2 | extends Control 3 | 4 | func _preselect_resolution(window : Window) -> void: 5 | %ResolutionControl.value = window.size 6 | 7 | func _update_resolution_options_enabled(window : Window) -> void: 8 | if OS.has_feature("web"): 9 | %ResolutionControl.editable = false 10 | %ResolutionControl.tooltip_text = "Disabled for web" 11 | elif AppSettings.is_fullscreen(window): 12 | %ResolutionControl.editable = false 13 | %ResolutionControl.tooltip_text = "Disabled for fullscreen" 14 | else: 15 | %ResolutionControl.editable = true 16 | %ResolutionControl.tooltip_text = "Select a screen size" 17 | 18 | func _update_ui(window : Window) -> void: 19 | %FullscreenControl.value = AppSettings.is_fullscreen(window) 20 | _preselect_resolution(window) 21 | %VSyncControl.value = AppSettings.get_vsync(window) 22 | _update_resolution_options_enabled(window) 23 | 24 | func _ready() -> void: 25 | var window : Window = get_window() 26 | _update_ui(window) 27 | window.connect("size_changed", _preselect_resolution.bind(window)) 28 | 29 | func _on_fullscreen_control_setting_changed(value) -> void: 30 | var window : Window = get_window() 31 | AppSettings.set_fullscreen_enabled(value, window) 32 | _update_resolution_options_enabled(window) 33 | 34 | func _on_resolution_control_setting_changed(value) -> void: 35 | AppSettings.set_resolution(value, get_window(), false) 36 | 37 | func _on_v_sync_control_setting_changed(value) -> void: 38 | AppSettings.set_vsync(value, get_window()) 39 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cpe5r24151r5n 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/music_players/background_music_player.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://bkcsjsk2ciff"] 2 | 3 | [node name="BackgroundMusicPlayer" type="AudioStreamPlayer"] 4 | process_mode = 3 5 | autoplay = true 6 | bus = &"Music" 7 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/opening/opening.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dtco0s8byckx6 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/opening/opening.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://sikc02ddepyt"] 2 | 3 | [ext_resource type="Script" uid="uid://dtco0s8byckx6" path="res://addons/maaacks_game_template/base/scenes/opening/opening.gd" id="1_fcjph"] 4 | 5 | [node name="Opening" type="Control"] 6 | layout_mode = 3 7 | anchors_preset = 15 8 | anchor_right = 1.0 9 | anchor_bottom = 1.0 10 | grow_horizontal = 2 11 | grow_vertical = 2 12 | script = ExtResource("1_fcjph") 13 | next_scene = "res://addons/maaacks_game_template/base/scenes/menus/main_menu/main_menu.tscn" 14 | 15 | [node name="BackgroundMusicPlayer" type="AudioStreamPlayer" parent="."] 16 | process_mode = 3 17 | autoplay = true 18 | bus = &"Music" 19 | 20 | [node name="ImagesContainer" type="MarginContainer" parent="."] 21 | unique_name_in_owner = true 22 | layout_mode = 1 23 | anchors_preset = 15 24 | anchor_right = 1.0 25 | anchor_bottom = 1.0 26 | grow_horizontal = 2 27 | grow_vertical = 2 28 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/overlaid_menu/menus/mini_options_overlaid_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cikf3o5omnunl"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://bqqngki8bm3iq" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.tscn" id="1_kverk"] 4 | [ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="2_ihtu5"] 5 | 6 | [node name="OverlaidMenuContainer" instance=ExtResource("1_kverk")] 7 | menu_scene = ExtResource("2_ihtu5") 8 | 9 | [node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"] 10 | text = "Options" 11 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/overlaid_menu/menus/pause_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://uidwhqh4fyhj 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name OverlaidMenu 3 | extends Control 4 | 5 | @export var pauses_game : bool = false : 6 | set(value): 7 | pauses_game = value 8 | if pauses_game: 9 | process_mode = PROCESS_MODE_ALWAYS 10 | else: 11 | process_mode = PROCESS_MODE_INHERIT 12 | @export var makes_mouse_visible : bool = true 13 | 14 | var _initial_pause_state : bool = false 15 | var _initial_focus_mode : FocusMode = FOCUS_ALL 16 | var _initial_mouse_mode : Input.MouseMode 17 | var _initial_focus_control 18 | var _scene_tree : SceneTree 19 | 20 | func close() -> void: 21 | _scene_tree.paused = _initial_pause_state 22 | Input.set_mouse_mode(_initial_mouse_mode) 23 | if is_instance_valid(_initial_focus_control) and _initial_focus_control.is_inside_tree(): 24 | _initial_focus_control.focus_mode = _initial_focus_mode 25 | _initial_focus_control.grab_focus() 26 | queue_free() 27 | 28 | func _handle_cancel_input() -> void: 29 | close() 30 | 31 | func _unhandled_input(event : InputEvent) -> void: 32 | if event.is_action_pressed("ui_cancel"): 33 | _handle_cancel_input() 34 | get_viewport().set_input_as_handled() 35 | 36 | func _on_close_button_pressed() -> void: 37 | close() 38 | 39 | func _enter_tree() -> void: 40 | _scene_tree = get_tree() 41 | _initial_pause_state = _scene_tree.paused 42 | _initial_mouse_mode = Input.get_mouse_mode() 43 | _initial_focus_control = get_viewport().gui_get_focus_owner() 44 | if _initial_focus_control: 45 | _initial_focus_mode = _initial_focus_control.focus_mode 46 | if Engine.is_editor_hint(): return 47 | _scene_tree.paused = pauses_game or _initial_pause_state 48 | if makes_mouse_visible: 49 | Input.set_mouse_mode(Input.MOUSE_MODE_VISIBLE) 50 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://xfugmpspqbcc 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name OverlaidMenuContainer 3 | extends OverlaidMenu 4 | 5 | @export var menu_scene : PackedScene : 6 | set(value): 7 | var _value_changed = menu_scene != value 8 | menu_scene = value 9 | if _value_changed: 10 | for child in %MenuContainer.get_children(): 11 | child.queue_free() 12 | if menu_scene: 13 | var _instance = menu_scene.instantiate() 14 | %MenuContainer.add_child(_instance) 15 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.gd.uid: -------------------------------------------------------------------------------- 1 | uid://droejgtv8bu0s 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://bqqngki8bm3iq"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_xgkve"] 4 | [ext_resource type="Script" uid="uid://droejgtv8bu0s" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.gd" id="2_owcue"] 5 | 6 | [node name="OverlaidMenuContainer" instance=ExtResource("1_xgkve")] 7 | script = ExtResource("2_owcue") 8 | menu_scene = null 9 | 10 | [node name="MenuContainer" type="MarginContainer" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="2"] 11 | unique_name_in_owner = true 12 | layout_mode = 2 13 | size_flags_vertical = 3 14 | 15 | [node name="MenuButtonsMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="3"] 16 | theme_override_constants/margin_top = 16 17 | theme_override_constants/margin_bottom = 16 18 | 19 | [node name="CloseButton" parent="MenuPanelContainer/MarginContainer/BoxContainer/MenuButtonsMargin/MenuButtons" index="0"] 20 | size_flags_horizontal = 4 21 | text = "Back" 22 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/utilities/api_client.gd.uid: -------------------------------------------------------------------------------- 1 | uid://s0j82xowl675 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/utilities/api_client.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://drhhakm62vjsy"] 2 | 3 | [ext_resource type="Script" uid="uid://s0j82xowl675" path="res://addons/maaacks_game_template/base/scenes/utilities/api_client.gd" id="1_c5ofg"] 4 | 5 | [node name="APIClient" type="Node"] 6 | script = ExtResource("1_c5ofg") 7 | 8 | [node name="HTTPRequest" type="HTTPRequest" parent="."] 9 | 10 | [node name="TimeoutTimer" type="Timer" parent="."] 11 | 12 | [connection signal="request_completed" from="HTTPRequest" to="." method="_on_http_request_request_completed"] 13 | [connection signal="timeout" from="TimeoutTimer" to="." method="_on_timeout_timer_timeout"] 14 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/utilities/download_and_extract.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bqu3bc0tttrfk 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scenes/utilities/download_and_extract.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://dlkmofxhavh10"] 2 | 3 | [ext_resource type="Script" uid="uid://bqu3bc0tttrfk" path="res://addons/maaacks_game_template/base/scenes/utilities/download_and_extract.gd" id="1_1few7"] 4 | 5 | [node name="DownloadAndExtract" type="Node"] 6 | script = ExtResource("1_1few7") 7 | 8 | [node name="HTTPRequest" type="HTTPRequest" parent="."] 9 | 10 | [node name="TimeoutTimer" type="Timer" parent="."] 11 | one_shot = true 12 | 13 | [connection signal="request_completed" from="HTTPRequest" to="." method="_on_http_request_request_completed"] 14 | [connection signal="timeout" from="TimeoutTimer" to="." method="_on_timeout_timer_timeout"] 15 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/app_settings.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dwflyh7g2rjxt 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/capture_focus.gd.uid: -------------------------------------------------------------------------------- 1 | uid://1nf36h0gms3q 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/config.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dxjk8pgi7yhtq 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/file_lister.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bij7wsh8d44gv 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/global_state.gd: -------------------------------------------------------------------------------- 1 | class_name GlobalState 2 | extends Node 3 | 4 | const SAVE_STATE_PATH = "user://global_state.tres" 5 | const NO_VERSION_NAME = "0.0.0" 6 | 7 | static var current : GlobalStateData 8 | static var current_version : String 9 | 10 | static func _log_opened() -> void: 11 | if current is GlobalStateData: 12 | current.last_unix_time_opened = int(Time.get_unix_time_from_system()) 13 | 14 | static func _log_version() -> void: 15 | if current is GlobalStateData: 16 | current_version = ProjectSettings.get_setting("application/config/version", NO_VERSION_NAME) 17 | if current_version.is_empty(): 18 | current_version = NO_VERSION_NAME 19 | if not current.first_version_opened: 20 | current.first_version_opened = current_version 21 | current.last_version_opened = current_version 22 | 23 | static func _load_current_state() -> void: 24 | if FileAccess.file_exists(SAVE_STATE_PATH): 25 | current = ResourceLoader.load(SAVE_STATE_PATH) 26 | if not current: 27 | current = GlobalStateData.new() 28 | 29 | static func open() -> void: 30 | _load_current_state() 31 | _log_opened() 32 | _log_version() 33 | save() 34 | 35 | static func save() -> void: 36 | if current is GlobalStateData: 37 | ResourceSaver.save(current, SAVE_STATE_PATH) 38 | 39 | static func has_state(state_key : String) -> bool: 40 | if current is not GlobalStateData: return false 41 | return current.has_state(state_key) 42 | 43 | static func get_state(state_key : String, state_type_path : String) -> Resource: 44 | if current is not GlobalStateData: return 45 | return current.get_state(state_key, state_type_path) 46 | 47 | static func reset() -> void: 48 | if current is not GlobalStateData: return 49 | current.states.clear() 50 | save() 51 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/global_state.gd.uid: -------------------------------------------------------------------------------- 1 | uid://34ojrqt1klav 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/global_state_data.gd: -------------------------------------------------------------------------------- 1 | class_name GlobalStateData 2 | extends Resource 3 | 4 | @export var first_version_opened : String 5 | @export var last_version_opened : String 6 | @export var last_unix_time_opened : int 7 | @export var states : Dictionary 8 | 9 | func get_state(key_name : String, state_type_path : String) -> Resource: 10 | var new_state : Resource 11 | var new_state_script = load(state_type_path) 12 | if new_state_script is GDScript: 13 | new_state = new_state_script.new() 14 | if key_name in states: 15 | var saved_state : Resource = states[key_name] 16 | var saved_script = saved_state.get_script() 17 | var new_script = new_state.get_script() 18 | if saved_script and new_script and saved_script == new_script: 19 | return saved_state 20 | states[key_name] = new_state 21 | return new_state 22 | 23 | func has_state(key_name : String) -> bool: 24 | return key_name in states 25 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/global_state_data.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bb3tb71vb6p8w 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/input_helper.gd.uid: -------------------------------------------------------------------------------- 1 | uid://6xujceamar4h 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/music_controller.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ctrh4qyxqncss 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/pause_menu_controller.gd: -------------------------------------------------------------------------------- 1 | class_name PauseMenuController 2 | extends Node 3 | 4 | ## Node for opening a pause menu when detecting a 'ui_cancel' event. 5 | 6 | @export var pause_menu_packed : PackedScene 7 | @export var focused_viewport : Viewport 8 | 9 | func _unhandled_input(event : InputEvent) -> void: 10 | if event.is_action_pressed("ui_cancel"): 11 | if not focused_viewport: 12 | focused_viewport = get_viewport() 13 | var _initial_focus_control = focused_viewport.gui_get_focus_owner() 14 | var current_menu = pause_menu_packed.instantiate() 15 | get_tree().current_scene.call_deferred("add_child", current_menu) 16 | await current_menu.tree_exited 17 | if is_inside_tree() and _initial_focus_control: 18 | _initial_focus_control.grab_focus() 19 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/pause_menu_controller.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cyh0d64pfygbl 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/scripts/ui_sound_controller.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b5oej1q4h7jvh 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/translations/menus_translations.csv.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="csv_translation" 4 | type="Translation" 5 | uid="uid://i6ihop1vp2ei" 6 | 7 | [deps] 8 | 9 | files=["res://addons/maaacks_game_template/base/translations/menus_translations.en.translation", "res://addons/maaacks_game_template/base/translations/menus_translations.fr.translation"] 10 | 11 | source_file="res://addons/maaacks_game_template/base/translations/menus_translations.csv" 12 | dest_files=["res://addons/maaacks_game_template/base/translations/menus_translations.en.translation", "res://addons/maaacks_game_template/base/translations/menus_translations.fr.translation"] 13 | 14 | [params] 15 | 16 | compress=true 17 | delimiter=0 18 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/translations/menus_translations.en.translation: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/base/translations/menus_translations.en.translation -------------------------------------------------------------------------------- /addons/maaacks_game_template/base/translations/menus_translations.fr.translation: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/base/translations/menus_translations.fr.translation -------------------------------------------------------------------------------- /addons/maaacks_game_template/docs/JoypadInputs.md: -------------------------------------------------------------------------------- 1 | # Joypad Inputs 2 | 3 | This page covers topics related to working with joypads. 4 | 5 | ## Recognized Devices 6 | 7 | - Xbox 8 | - Playstation 4 9 | - Playstation 5 10 | 11 | ### Unconfirmed 12 | 13 | - Switch 14 | - Steam Deck 15 | 16 | ## Added UI Inputs 17 | 18 | There is a `override.cfg` in the project root directory that adds a few additional inputs to the project's built-in UI actions. 19 | 20 | These additional inputs are for joypads and include the following: 21 | 22 | - `UI Accept`: A Button (Xbox A / Sony X) 23 | - `UI Cancel`: Back Button (Xbox Back / Sony Select) 24 | - `UI Page Up`: Left Shoulder (Xbox LB / Sony L1) 25 | - `UI Page Down`: Right Shoulder (Xbox RB / Sony R2) 26 | 27 | However, for these to work in exported versions of the project, the inputs need to either be added manually to the project's built-in actions, or `override.cfg` will need to be included in the exports. The latter can be done by including the pattern (`*.cfg`) in **Filters to export non-resource files/folders** under the *Resources* tab of the *Export* window. 28 | 29 | ## Web Builds 30 | 31 | Godot (or the template) currently does not support joypad device detection on the web. If icons are being used for input remapping, the joypad icons will *not* update automatically to match a new detected controller. -------------------------------------------------------------------------------- /addons/maaacks_game_template/docs/PluginSuite.md: -------------------------------------------------------------------------------- 1 | # Plugin Suite 2 | 3 | ![Plugins Suite](../media/maaacks-plugin-suite-256x256.gif) 4 | 5 | Maaack's Game Template is a culmination of a suite of plugins, that can be downloaded individually, if desired. 6 | 7 | ## GitHub 8 | 9 | - [Game Template](https://github.com/Maaack/Godot-Game-Template) 10 | - [Menus Template](https://github.com/Maaack/Godot-Menus-Template) 11 | - [Options Menus](https://github.com/Maaack/Godot-Options-Menus) 12 | - [Input Remapping](https://github.com/Maaack/Godot-Input-Remapping) 13 | - [Scene Loader](https://github.com/Maaack/Godot-Scene-Loader) 14 | - [Credits Scene](https://github.com/Maaack/Godot-Credits-Scene) 15 | - [UI Sound Controller](https://github.com/Maaack/Godot-UI-Sound-Controller) 16 | - [Music Controller](https://github.com/Maaack/Godot-Music-Controller) 17 | 18 | ## Godot Asset Library 19 | 20 | - [Game Template](https://godotengine.org/asset-library/asset/2709) 21 | - [Menus Template](https://godotengine.org/asset-library/asset/2899) 22 | - [Options Menus](https://godotengine.org/asset-library/asset/3058) 23 | - [Input Remapping](https://godotengine.org/asset-library/asset/4051) 24 | - [Scene Loader](https://godotengine.org/asset-library/asset/2896) 25 | - [Credits Scene](https://godotengine.org/asset-library/asset/2932) 26 | - [UI Sound Controller](https://godotengine.org/asset-library/asset/2897) 27 | - [Music Controller](https://godotengine.org/asset-library/asset/2898) 28 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/docs/Videos.md: -------------------------------------------------------------------------------- 1 | # Videos 2 | 3 | [![Quick Intro Video](https://img.youtube.com/vi/U9CB3vKINVw/hqdefault.jpg)](https://youtu.be/U9CB3vKINVw) 4 | [![Installation Video](https://img.youtube.com/vi/-QWJnZ8bVdk/hqdefault.jpg)](https://youtu.be/-QWJnZ8bVdk) 5 | [![UI Theming (1) Video](https://img.youtube.com/vi/SBE4icfXYRA/hqdefault.jpg)](https://youtu.be/SBE4icfXYRA) 6 | [![UI Theming (2) Video](https://img.youtube.com/vi/wCc2QUnaBKo/hqdefault.jpg)](https://youtu.be/wCc2QUnaBKo) 7 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/ATTRIBUTION.md: -------------------------------------------------------------------------------- 1 | # Attribution 2 | ## Collaborators 3 | 4 | ### Role 5 | Person 1 6 | Person 2 7 | [Person w/ Link]() 8 | 9 | 10 | ## Sourced / Unaffiliated 11 | ### Asset Type 12 | #### Use Case 13 | Author: [Name]() 14 | Source: [Domain : webpage.html]() 15 | License: [License]() 16 | 17 | #### Godot Engine Logo 18 | Author: Andrea Calabró 19 | Source: [godotengine.org : press](https://godotengine.org/press/) 20 | License: [CC BY 4.0 International](https://github.com/godotengine/godot/blob/master/LOGO_LICENSE.txt) 21 | 22 | ## Tools 23 | #### Godot 24 | Author: [Juan Linietsky, Ariel Manzur, and contributors](https://godotengine.org/contact) 25 | Source: [godotengine.org](https://godotengine.org/) 26 | License: [MIT License](https://github.com/godotengine/godot/blob/master/LICENSE.txt) 27 | 28 | #### Git 29 | Author: [Linus Torvalds](https://github.com/torvalds) 30 | Source: [git-scm.com](https://git-scm.com/downloads) 31 | License: [GNU General Public License version 2](https://opensource.org/licenses/GPL-2.0) 32 | 33 | #### Godot Game Template 34 | Author: [Marek Belski and contributors](https://github.com/Maaack/Godot-Game-Template/graphs/contributors) 35 | Source: [github: Godot-Game-Template](https://github.com/Maaack/Godot-Game-Template) 36 | License: [MIT License](LICENSE.txt) 37 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/assets/godot_engine_logo/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Godot Engine Logo 2 | Copyright (c) 2017 Andrea Calabró 3 | 4 | This work is licensed under the Creative Commons Attribution 4.0 International 5 | license (CC BY 4.0 International): https://creativecommons.org/licenses/by/4.0/ -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/assets/godot_engine_logo/logo_vertical_color_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/examples/assets/godot_engine_logo/logo_vertical_color_dark.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/assets/godot_engine_logo/logo_vertical_color_dark.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://5rltpvy6c5b" 6 | path="res://.godot/imported/logo_vertical_color_dark.png-e5c2b23d32ceed7f4ae5467b72d46304.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://addons/maaacks_game_template/examples/assets/godot_engine_logo/logo_vertical_color_dark.png" 14 | dest_files=["res://.godot/imported/logo_vertical_color_dark.png-e5c2b23d32ceed7f4ae5467b72d46304.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/credits/credits.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Credits 3 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/credits/credits.gd.uid: -------------------------------------------------------------------------------- 1 | uid://btl0ormyca7s3 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/end_credits/end_credits.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Credits 3 | 4 | @export_file("*.tscn") var main_menu_scene : String 5 | @onready var init_mouse_filter : MouseFilter = mouse_filter 6 | 7 | func _end_reached() -> void: 8 | %EndMessagePanel.show() 9 | mouse_filter = Control.MOUSE_FILTER_STOP 10 | super._end_reached() 11 | 12 | func _on_MenuButton_pressed() -> void: 13 | SceneLoader.load_scene(main_menu_scene) 14 | 15 | func _on_ExitButton_pressed() -> void: 16 | get_tree().quit() 17 | 18 | func _ready() -> void: 19 | if main_menu_scene.is_empty(): 20 | %MenuButton.hide() 21 | if OS.has_feature("web"): 22 | %ExitButton.hide() 23 | super._ready() 24 | 25 | func reset() -> void: 26 | super.reset() 27 | %EndMessagePanel.hide() 28 | mouse_filter = init_mouse_filter 29 | 30 | func _unhandled_input(event : InputEvent) -> void: 31 | if not enabled: return 32 | if event.is_action_pressed("ui_cancel"): 33 | if not %EndMessagePanel.visible: 34 | _end_reached() 35 | else: 36 | get_tree().quit() 37 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/end_credits/end_credits.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cn3sc0vsd5b1r 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/configurable_sub_viewport.gd: -------------------------------------------------------------------------------- 1 | extends SubViewport 2 | 3 | @export var anti_aliasing_key : StringName = "Anti-aliasing" 4 | @export var video_section : StringName = AppSettings.VIDEO_SECTION 5 | 6 | func _ready() -> void: 7 | var anti_aliasing : int = Config.get_config(video_section, anti_aliasing_key, Viewport.MSAA_DISABLED) 8 | msaa_2d = anti_aliasing as MSAA 9 | msaa_3d = anti_aliasing as MSAA 10 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/configurable_sub_viewport.gd.uid: -------------------------------------------------------------------------------- 1 | uid://tooek7mdq54x 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/input_display_label.gd: -------------------------------------------------------------------------------- 1 | extends Label 2 | 3 | @onready var action_names := AppSettings.get_action_names() 4 | 5 | func _get_inputs_as_string() -> String: 6 | var all_inputs : String = "" 7 | var is_first : bool = true 8 | for action_name in action_names: 9 | if Input.is_action_pressed(action_name): 10 | if is_first: 11 | is_first = false 12 | all_inputs += action_name 13 | else: 14 | all_inputs += " + " + action_name 15 | return all_inputs 16 | 17 | func _process(_delta : float) -> void: 18 | if Input.is_anything_pressed(): 19 | text = _get_inputs_as_string() 20 | else: 21 | text = "" 22 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/input_display_label.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dvewqdtaf68y8 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/levels/level.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | signal level_won 4 | signal level_lost 5 | 6 | var level_state : LevelStateExample 7 | 8 | func _on_lose_button_pressed() -> void: 9 | level_lost.emit() 10 | 11 | func _on_win_button_pressed() -> void: 12 | level_won.emit() 13 | 14 | func open_tutorials() -> void: 15 | %TutorialManager.open_tutorials() 16 | level_state.tutorial_read = true 17 | 18 | func _ready() -> void: 19 | level_state = GameStateExample.get_level_state(scene_file_path) 20 | %ColorPickerButton.color = level_state.color 21 | %BackgroundColor.color = level_state.color 22 | if not level_state.tutorial_read: 23 | open_tutorials() 24 | 25 | func _on_color_picker_button_color_changed(color : Color) -> void: 26 | %BackgroundColor.color = color 27 | level_state.color = color 28 | GlobalState.save() 29 | 30 | func _on_tutorial_button_pressed() -> void: 31 | open_tutorials() 32 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/levels/level.gd.uid: -------------------------------------------------------------------------------- 1 | uid://3bd6350v3ux5 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/tutorial_manager.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | @export var tutorial_scenes : Array[PackedScene] 3 | @export var open_delay : float = 0.25 4 | @export var auto_open : bool = false 5 | 6 | func open_tutorials() -> void: 7 | if open_delay > 0.0: 8 | await get_tree().create_timer(open_delay, false).timeout 9 | for tutorial_scene in tutorial_scenes: 10 | var tutorial_menu : OverlaidMenu = tutorial_scene.instantiate() 11 | if tutorial_menu == null: 12 | push_warning("tutorial failed to open %s" % tutorial_scene) 13 | return 14 | get_tree().current_scene.call_deferred("add_child", tutorial_menu) 15 | await tutorial_menu.tree_exited 16 | 17 | func _ready() -> void: 18 | if auto_open: 19 | open_tutorials() 20 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/tutorial_manager.gd.uid: -------------------------------------------------------------------------------- 1 | uid://1aoiji5yh0sy 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/tutorials/tutorial_1.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://crcpowss0envr"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_vlf4m"] 4 | 5 | [node name="Tutorial1" instance=ExtResource("1_vlf4m")] 6 | 7 | [node name="MenuPanelContainer" parent="." index="1"] 8 | offset_left = -206.0 9 | offset_top = -75.0 10 | offset_right = 215.0 11 | offset_bottom = 76.0 12 | 13 | [node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"] 14 | theme_override_constants/separation = 16 15 | 16 | [node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"] 17 | text = "Tutorial" 18 | 19 | [node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"] 20 | visible = true 21 | 22 | [node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"] 23 | text = "[center]Click the Win button to progress. 24 | Click the Lose button to try again.[/center]" 25 | fit_content = true 26 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/tutorials/tutorial_2.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://ceosghqutgxop"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_yumd1"] 4 | 5 | [node name="Tutorial2" instance=ExtResource("1_yumd1")] 6 | 7 | [node name="MenuPanelContainer" parent="." index="1"] 8 | offset_left = -206.0 9 | offset_top = -75.0 10 | offset_right = 215.0 11 | offset_bottom = 76.0 12 | 13 | [node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"] 14 | theme_override_constants/separation = 16 15 | 16 | [node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"] 17 | text = "Tutorial" 18 | 19 | [node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"] 20 | visible = true 21 | 22 | [node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"] 23 | text = "[center]Progress is saved. 24 | Pressing Continue from the main menu will load the last level played.[/center]" 25 | fit_content = true 26 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/game_scene/tutorials/tutorial_3.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://dvwhul2i007fs"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_ecqyi"] 4 | 5 | [node name="Tutorial2" instance=ExtResource("1_ecqyi")] 6 | 7 | [node name="MenuPanelContainer" parent="." index="1"] 8 | offset_left = -206.0 9 | offset_top = -75.0 10 | offset_right = 215.0 11 | offset_bottom = 76.0 12 | 13 | [node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"] 14 | theme_override_constants/separation = 16 15 | 16 | [node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"] 17 | text = "Tutorial" 18 | 19 | [node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"] 20 | visible = true 21 | 22 | [node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"] 23 | text = "[center]The color picker at the bottom-right updates the level state. This change persists until the game is reset. 24 | 25 | The label at the bottom-center displays the current input action detected, if any are setup for the project.[/center]" 26 | fit_content = true 27 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/loading_screen/level_loading_screen.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://dbuv0htkikcv4"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_j057u"] 4 | [ext_resource type="Script" uid="uid://mav2omdpqfbe" path="res://addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen.gd" id="2_sxnme"] 5 | 6 | [node name="LevelLoadingScreen" instance=ExtResource("1_j057u")] 7 | script = ExtResource("2_sxnme") 8 | _in_progress = "Loading Level..." 9 | _in_progress_waiting = "Still Loading Level..." 10 | _in_progress_still_waiting = "Still Loading Level... (%d seconds)" 11 | _complete = "Loading Level Complete!" 12 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen.gd: -------------------------------------------------------------------------------- 1 | extends LoadingScreen 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen.gd.uid: -------------------------------------------------------------------------------- 1 | uid://mav2omdpqfbe 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://ddeagbc67f52m"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_2dnq1"] 4 | [ext_resource type="Script" uid="uid://mav2omdpqfbe" path="res://addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen.gd" id="2_5h2y6"] 5 | 6 | [node name="LoadingScreen" instance=ExtResource("1_2dnq1")] 7 | script = ExtResource("2_5h2y6") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen_with_shader_caching.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ymuduuk7envr 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen_with_shader_caching.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://dvp3b2tdsbtmo"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_4k0mc"] 4 | [ext_resource type="Script" uid="uid://ymuduuk7envr" path="res://addons/maaacks_game_template/examples/scenes/loading_screen/loading_screen_with_shader_caching.gd" id="2_3xu6h"] 5 | 6 | [sub_resource type="QuadMesh" id="QuadMesh_klnwy"] 7 | 8 | [node name="LoadingScreen" instance=ExtResource("1_4k0mc")] 9 | script = ExtResource("2_3xu6h") 10 | _spatial_shader_material_dir = "" 11 | _cache_shaders_scene = "res://addons/maaacks_game_template/examples/scenes/game_scene/game_ui.tscn" 12 | _mesh = SubResource("QuadMesh_klnwy") 13 | _matching_extensions = Array[String]([".tres", ".material", ".res"]) 14 | _ignore_subfolders = Array[String]([".", ".."]) 15 | _shader_delay_timer = 0.1 16 | 17 | [node name="SpatialShaderTypeCaches" type="Node3D" parent="." index="2"] 18 | unique_name_in_owner = true 19 | 20 | [node name="Camera3D" type="Camera3D" parent="SpatialShaderTypeCaches" index="0"] 21 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.408) 22 | current = true 23 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/level_select_menu/level_select_menu.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | ## Loads a simple ItemList node within a margin container. SceneLister updates 4 | ## the available scenes in the directory provided. Activating a level will update 5 | ## the GameState's current_level, and emit a signal. The main menu node will trigger 6 | ## a load action from that signal. 7 | 8 | @onready var level_buttons_container: ItemList = %LevelButtonsContainer 9 | @onready var scene_lister: SceneLister = $SceneLister 10 | 11 | signal level_selected 12 | 13 | func _ready() -> void: 14 | add_levels_to_container() 15 | 16 | ## A fresh level list is propgated into the ItemList, and the file names are cleaned 17 | func add_levels_to_container() -> void: 18 | level_buttons_container.clear() 19 | var max_level_reached := GameStateExample.get_max_level_reached() 20 | var level_iter := 0 21 | for file_path in scene_lister.files: 22 | if level_iter > max_level_reached : break 23 | level_iter += 1 24 | var file_name := file_path.get_file() # e.g., "level_1.tscn" 25 | file_name = file_name.trim_suffix(".tscn") # Remove the ".tscn" extension 26 | file_name = file_name.replace("_", " ") # Replace underscores with spaces 27 | file_name = file_name.capitalize() # Convert to proper case 28 | var button_name := str(file_name) 29 | level_buttons_container.add_item(button_name) 30 | 31 | func _on_level_buttons_container_item_activated(index: int) -> void: 32 | GameStateExample.set_current_level(index) 33 | level_selected.emit() 34 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/level_select_menu/level_select_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bxjfjnr4m1fm1 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu.gd: -------------------------------------------------------------------------------- 1 | extends MainMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bdet8115mn02d 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://byvydukidk6i2"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://c6k5nnpbypshi" path="res://addons/maaacks_game_template/base/scenes/menus/main_menu/main_menu.tscn" id="1_pss7b"] 4 | [ext_resource type="Script" uid="uid://bdet8115mn02d" path="res://addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu.gd" id="2_lk0wa"] 5 | [ext_resource type="PackedScene" uid="uid://bdvdf5v87mmrr" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/master_options_menu_with_tabs.tscn" id="3_lqjmk"] 6 | [ext_resource type="PackedScene" uid="uid://c1g50h2avck3w" path="res://addons/maaacks_game_template/examples/scenes/credits/credits.tscn" id="3_vmius"] 7 | 8 | [node name="MainMenu" instance=ExtResource("1_pss7b")] 9 | script = ExtResource("2_lk0wa") 10 | game_scene_path = "res://addons/maaacks_game_template/examples/scenes/game_scene/game_ui.tscn" 11 | options_packed_scene = ExtResource("3_lqjmk") 12 | credits_packed_scene = ExtResource("3_vmius") 13 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu_with_animations.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b5qy5nr1wivs4 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_input_option_control.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends ListOptionControl 3 | 4 | func _set_input_device() -> void: 5 | var current_setting : Variant = _get_setting(default_value) 6 | if current_setting is bool: 7 | current_setting = &"Default" 8 | AudioServer.input_device = _get_setting(default_value) 9 | 10 | func _add_microphone_audio_stream() -> void: 11 | var instance := AudioStreamPlayer.new() 12 | instance.stream = AudioStreamMicrophone.new() 13 | instance.autoplay = true 14 | add_child.call_deferred(instance) 15 | instance.ready.connect(_set_input_device) 16 | 17 | func _ready() -> void: 18 | if ProjectSettings.get_setting("audio/driver/enable_input", false): 19 | if AudioServer.input_device.is_empty(): 20 | _add_microphone_audio_stream() 21 | else: 22 | _set_input_device() 23 | if not Engine.is_editor_hint(): 24 | option_values = AudioServer.get_input_device_list() 25 | else: 26 | hide() 27 | super._ready() 28 | 29 | func _on_setting_changed(value : Variant) -> void: 30 | if value >= option_values.size(): return 31 | AudioServer.input_device = option_values[value] 32 | super._on_setting_changed(value) 33 | 34 | func _value_title_map(value : Variant) -> String: 35 | if value is String: 36 | return value 37 | else: 38 | return super._value_title_map(value) 39 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_input_option_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bwiyqjcudqioy 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_input_option_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://dxj1gsxtlp6v0"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b6bl3n5mp3m1e" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn" id="1_0vgeo"] 4 | [ext_resource type="Script" uid="uid://bwiyqjcudqioy" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_input_option_control.gd" id="2_6qeue"] 5 | 6 | [node name="AudioInputOptionControl" instance=ExtResource("1_0vgeo")] 7 | script = ExtResource("2_6qeue") 8 | option_name = "Input Device" 9 | option_section = 2 10 | key = "InputDevice" 11 | section = "AudioSettings" 12 | property_type = 4 13 | 14 | [node name="OptionLabel" parent="." index="0"] 15 | text = "Input Device :" 16 | 17 | [node name="OptionButton" parent="." index="1"] 18 | size_flags_horizontal = 3 19 | text_overrun_behavior = 1 20 | clip_text = true 21 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends AudioOptionsMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b1j3xptvj7fnr 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://dmgla7rq1g2cc"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://c8vnncjwqcpab" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/audio/audio_options_menu.tscn" id="1_ro573"] 4 | [ext_resource type="Script" uid="uid://b1j3xptvj7fnr" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_options_menu.gd" id="2_g4nfi"] 5 | [ext_resource type="PackedScene" uid="uid://dxj1gsxtlp6v0" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/audio/audio_input_option_control.tscn" id="3_orobk"] 6 | 7 | [node name="Audio" instance=ExtResource("1_ro573")] 8 | script = ExtResource("2_g4nfi") 9 | 10 | [node name="AudioInputOptionControl" parent="VBoxContainer" index="2" instance=ExtResource("3_orobk")] 11 | layout_mode = 2 12 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/game/game_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | func _on_ResetGameControl_reset_confirmed() -> void: 4 | GlobalState.reset() 5 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/game/game_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://d4fupg1cv7ga6 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/game/game_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://bsbo8ot2p46dv"] 2 | 3 | [ext_resource type="Script" uid="uid://d4fupg1cv7ga6" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/game/game_options_menu.gd" id="1_edbal"] 4 | [ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="2_y4sbs"] 5 | [ext_resource type="PackedScene" uid="uid://w5i7wl2xlos" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn" id="3_gdyom"] 6 | 7 | [node name="Game" type="MarginContainer"] 8 | anchors_preset = 15 9 | anchor_right = 1.0 10 | anchor_bottom = 1.0 11 | theme_override_constants/margin_top = 24 12 | theme_override_constants/margin_bottom = 24 13 | script = ExtResource("1_edbal") 14 | 15 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 16 | custom_minimum_size = Vector2(400, 0) 17 | layout_mode = 2 18 | size_flags_horizontal = 4 19 | alignment = 1 20 | script = ExtResource("2_y4sbs") 21 | search_depth = 2 22 | 23 | [node name="ResetGameControl" parent="VBoxContainer" instance=ExtResource("3_gdyom")] 24 | layout_mode = 2 25 | 26 | [connection signal="reset_confirmed" from="VBoxContainer/ResetGameControl" to="." method="_on_ResetGameControl_reset_confirmed"] 27 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/game/reset_game_control/reset_game_control.gd: -------------------------------------------------------------------------------- 1 | extends HBoxContainer 2 | 3 | signal reset_confirmed 4 | 5 | func _on_ResetButton_pressed() -> void: 6 | $ConfirmResetDialog.popup_centered() 7 | $ResetButton.disabled = true 8 | 9 | func _on_ConfirmResetDialog_confirmed() -> void: 10 | reset_confirmed.emit() 11 | 12 | func _on_confirm_reset_dialog_canceled() -> void: 13 | $ResetButton.disabled = false 14 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/game/reset_game_control/reset_game_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bnggxw78h248d 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://w5i7wl2xlos"] 2 | 3 | [ext_resource type="Script" uid="uid://bnggxw78h248d" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/game/reset_game_control/reset_game_control.gd" id="1_wkygd"] 4 | 5 | [node name="ResetGameControl" type="HBoxContainer"] 6 | custom_minimum_size = Vector2(0, 32) 7 | offset_top = 210.0 8 | offset_right = 305.0 9 | offset_bottom = 242.0 10 | script = ExtResource("1_wkygd") 11 | 12 | [node name="ResetLabel" type="Label" parent="."] 13 | layout_mode = 2 14 | size_flags_horizontal = 3 15 | text = "Reset Game :" 16 | 17 | [node name="ResetButton" type="Button" parent="."] 18 | custom_minimum_size = Vector2(72, 32) 19 | layout_mode = 2 20 | text = "Reset" 21 | 22 | [node name="ConfirmResetDialog" type="ConfirmationDialog" parent="."] 23 | dialog_text = "Do you want to reset your game data?" 24 | 25 | [connection signal="pressed" from="ResetButton" to="." method="_on_ResetButton_pressed"] 26 | [connection signal="canceled" from="ConfirmResetDialog" to="." method="_on_confirm_reset_dialog_canceled"] 27 | [connection signal="confirmed" from="ConfirmResetDialog" to="." method="_on_ConfirmResetDialog_confirmed"] 28 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/input/input_options_menu.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends InputOptionsMenu 3 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/input/input_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://drgrr8tqd11sm 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/input/input_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://1e3vf4u3brfm"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://dp3rgqaehb3xu" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_options_menu.tscn" id="1_b6ygu"] 4 | [ext_resource type="Script" uid="uid://drgrr8tqd11sm" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/input/input_options_menu.gd" id="2_gjulr"] 5 | 6 | [node name="Controls" instance=ExtResource("1_b6ygu")] 7 | script = ExtResource("2_gjulr") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/master_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends MasterOptionsMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/master_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://lxt3mcgcptek 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/master_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://c3s46qrj7m87p"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://bvwl11s2p0hd" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.tscn" id="1_kgc1h"] 4 | [ext_resource type="Script" uid="uid://lxt3mcgcptek" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/master_options_menu.gd" id="2_4n0ab"] 5 | 6 | [node name="MasterOptionsMenu" instance=ExtResource("1_kgc1h")] 7 | script = ExtResource("2_4n0ab") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends MiniOptionsMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c0jjk82iuuyh3 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://c6obwfb7wbibn"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="1_f2l25"] 4 | [ext_resource type="Script" uid="uid://c0jjk82iuuyh3" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu.gd" id="2_hcx71"] 5 | 6 | [node name="MiniOptionsMenu" instance=ExtResource("1_f2l25")] 7 | script = ExtResource("2_hcx71") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu_with_reset.gd: -------------------------------------------------------------------------------- 1 | extends MiniOptionsMenu 2 | 3 | func _on_reset_game_control_reset_confirmed() -> void: 4 | GlobalState.reset() 5 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu_with_reset.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bt52j7aly5clg 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu_with_reset.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://dr1ard3qf6t81"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="1_swuya"] 4 | [ext_resource type="Script" uid="uid://bt52j7aly5clg" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu_with_reset.gd" id="2_84xi1"] 5 | [ext_resource type="PackedScene" uid="uid://w5i7wl2xlos" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn" id="3_7aalw"] 6 | 7 | [node name="MiniOptionsMenu" instance=ExtResource("1_swuya")] 8 | script = ExtResource("2_84xi1") 9 | 10 | [node name="ResetGameControl" parent="." index="3" instance=ExtResource("3_7aalw")] 11 | layout_mode = 2 12 | 13 | [connection signal="reset_confirmed" from="ResetGameControl" to="." method="_on_reset_game_control_reset_confirmed"] 14 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/video/video_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends VideoOptionsMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/video/video_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cgn8jg7g5ylr 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/video/video_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://b8kb81us6g3kr"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b2numvphf2kau" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.tscn" id="1_4gigb"] 4 | [ext_resource type="Script" uid="uid://cgn8jg7g5ylr" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/video/video_options_menu.gd" id="2_v2jlu"] 5 | 6 | [node name="Video" instance=ExtResource("1_4gigb")] 7 | script = ExtResource("2_v2jlu") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/menus/options_menu/video/video_options_menu_with_extras.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://cck3omvlkhpix"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b2numvphf2kau" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.tscn" id="1_nrerc"] 4 | [ext_resource type="Script" uid="uid://cgn8jg7g5ylr" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/video/video_options_menu.gd" id="2_qtdes"] 5 | [ext_resource type="PackedScene" uid="uid://b6bl3n5mp3m1e" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn" id="2_tyiki"] 6 | 7 | [node name="Video" instance=ExtResource("1_nrerc")] 8 | script = ExtResource("2_qtdes") 9 | 10 | [node name="AntiAliasingControl" parent="VBoxContainer" index="3" instance=ExtResource("2_tyiki")] 11 | layout_mode = 2 12 | lock_titles = true 13 | option_values = [0, 1, 2, 3] 14 | option_titles = Array[String](["Disabled (Fastest)", "2x", "4x", "8x (Slowest)"]) 15 | option_name = "Anti-Aliasing" 16 | option_section = 3 17 | key = "Anti-aliasing" 18 | section = "VideoSettings" 19 | property_type = 2 20 | default_value = 0 21 | 22 | [node name="CameraShakeControl" parent="VBoxContainer" index="4" instance=ExtResource("2_tyiki")] 23 | visible = false 24 | layout_mode = 2 25 | lock_titles = true 26 | option_values = [1.0, 0.75, 0.5, 0.0] 27 | option_titles = Array[String](["Normal", "Reduced", "Minimal", "None"]) 28 | option_name = "Camera Shake" 29 | option_section = 3 30 | key = "CameraShake" 31 | section = "VideoSettings" 32 | property_type = 3 33 | default_value = 1.0 34 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/opening/opening.gd: -------------------------------------------------------------------------------- 1 | extends "res://addons/maaacks_game_template/base/scenes/opening/opening.gd" 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/opening/opening.gd.uid: -------------------------------------------------------------------------------- 1 | uid://upkolvghgj67 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/opening/opening.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://b8u5wed0pve26"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://sikc02ddepyt" path="res://addons/maaacks_game_template/base/scenes/opening/opening.tscn" id="1_jidei"] 4 | [ext_resource type="Script" uid="uid://upkolvghgj67" path="res://addons/maaacks_game_template/examples/scenes/opening/opening.gd" id="2_mjcrw"] 5 | 6 | [node name="Opening" instance=ExtResource("1_jidei")] 7 | script = ExtResource("2_mjcrw") 8 | next_scene = "res://addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu_with_animations.tscn" 9 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/opening/opening_with_logo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://cyqy6dvynho67"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://sikc02ddepyt" path="res://addons/maaacks_game_template/base/scenes/opening/opening.tscn" id="1_tjbcx"] 4 | [ext_resource type="Script" uid="uid://upkolvghgj67" path="res://addons/maaacks_game_template/examples/scenes/opening/opening.gd" id="2_up6er"] 5 | [ext_resource type="Texture2D" uid="uid://5rltpvy6c5b" path="res://addons/maaacks_game_template/examples/assets/godot_engine_logo/logo_vertical_color_dark.png" id="3_powqu"] 6 | 7 | [node name="Opening" instance=ExtResource("1_tjbcx")] 8 | script = ExtResource("2_up6er") 9 | next_scene = "res://addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu_with_animations.tscn" 10 | images = Array[Texture2D]([ExtResource("3_powqu")]) 11 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/game_won_menu.gd: -------------------------------------------------------------------------------- 1 | extends GameWonMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/game_won_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c1of4043nlpa4 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/game_won_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cmefjno2ddk7e"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://4brssbq1ghsw" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/game_won_menu.tscn" id="1_w6qlf"] 4 | [ext_resource type="Script" uid="uid://c1of4043nlpa4" path="res://addons/maaacks_game_template/examples/scenes/overlaid_menus/game_won_menu.gd" id="2_2jmwn"] 5 | 6 | [node name="GameWonMenu" instance=ExtResource("1_w6qlf")] 7 | script = ExtResource("2_2jmwn") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/level_lost_menu.gd: -------------------------------------------------------------------------------- 1 | extends LevelLostMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/level_lost_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://rjif3dwb5jvy 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/level_lost_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://bralse0lmn6t3"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://dkq3nhkmhu4je" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/level_lost_menu.tscn" id="1_53wog"] 4 | [ext_resource type="Script" uid="uid://rjif3dwb5jvy" path="res://addons/maaacks_game_template/examples/scenes/overlaid_menus/level_lost_menu.gd" id="2_qfo47"] 5 | 6 | [node name="LevelLostMenu" instance=ExtResource("1_53wog")] 7 | script = ExtResource("2_qfo47") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/level_won_menu.gd: -------------------------------------------------------------------------------- 1 | extends LevelWonMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/level_won_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cwubbhtyxto7p 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/level_won_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cyjcj8mo8x5tk"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://y3vtx0e0shv4" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/level_won_menu.tscn" id="1_37y12"] 4 | [ext_resource type="Script" uid="uid://cwubbhtyxto7p" path="res://addons/maaacks_game_template/examples/scenes/overlaid_menus/level_won_menu.gd" id="2_p2umj"] 5 | 6 | [node name="LevelWonMenu" instance=ExtResource("1_37y12")] 7 | script = ExtResource("2_p2umj") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/mini_options_overlaid_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://65shnbd3xtxu"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cikf3o5omnunl" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/mini_options_overlaid_menu.tscn" id="1_nwj8l"] 4 | [ext_resource type="PackedScene" uid="uid://dr1ard3qf6t81" path="res://addons/maaacks_game_template/examples/scenes/menus/options_menu/mini_options_menu_with_reset.tscn" id="2_0xks0"] 5 | 6 | [node name="MiniOptionsOverlaidMenu" instance=ExtResource("1_nwj8l")] 7 | menu_scene = ExtResource("2_0xks0") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu.gd: -------------------------------------------------------------------------------- 1 | extends OverlaidMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cgqc81uh1jqwo 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://bhgeiy1ll18mx"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_rymwu"] 4 | [ext_resource type="Script" uid="uid://cgqc81uh1jqwo" path="res://addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu.gd" id="2_5khjm"] 5 | 6 | [node name="OverlaidMenu" instance=ExtResource("1_rymwu")] 7 | script = ExtResource("2_5khjm") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu_container.gd: -------------------------------------------------------------------------------- 1 | extends OverlaidMenuContainer 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu_container.gd.uid: -------------------------------------------------------------------------------- 1 | uid://beelg886sj3ws 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu_container.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://b8d87jvjhgdbo"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://bqqngki8bm3iq" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.tscn" id="1_348qb"] 4 | [ext_resource type="Script" uid="uid://beelg886sj3ws" path="res://addons/maaacks_game_template/examples/scenes/overlaid_menus/overlaid_menu_container.gd" id="2_y3tb4"] 5 | 6 | [node name="OverlaidMenuContainer" instance=ExtResource("1_348qb")] 7 | script = ExtResource("2_y3tb4") 8 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/pause_menu.gd: -------------------------------------------------------------------------------- 1 | extends PauseMenu 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/pause_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://4ieefgkpqugj 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scenes/overlaid_menus/pause_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://cnmu4k37qncn8"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b5cd6sa8qq4vc" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/pause_menu.tscn" id="1_fd1e4"] 4 | [ext_resource type="Script" uid="uid://4ieefgkpqugj" path="res://addons/maaacks_game_template/examples/scenes/overlaid_menus/pause_menu.gd" id="2_o57rn"] 5 | [ext_resource type="PackedScene" uid="uid://65shnbd3xtxu" path="res://addons/maaacks_game_template/examples/scenes/overlaid_menus/mini_options_overlaid_menu.tscn" id="3_hewsk"] 6 | 7 | [node name="PauseMenu" instance=ExtResource("1_fd1e4")] 8 | script = ExtResource("2_o57rn") 9 | options_packed_scene = ExtResource("3_hewsk") 10 | main_menu_scene = "res://addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu_with_animations.tscn" 11 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scripts/game_state.gd.uid: -------------------------------------------------------------------------------- 1 | uid://3fi7aeiafrpi 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scripts/level_list_state_manager.gd: -------------------------------------------------------------------------------- 1 | extends LevelListManager 2 | 3 | func set_current_level_id(value : int) -> void: 4 | super.set_current_level_id(value) 5 | GameStateExample.level_reached(value) 6 | 7 | func get_current_level_id() -> int: 8 | current_level_id = GameStateExample.get_current_level() if force_level == -1 else force_level 9 | return current_level_id 10 | 11 | func _advance_level() -> bool: 12 | var _advanced := super._advance_level() 13 | GameStateExample.set_current_level(current_level_id) 14 | return _advanced 15 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scripts/level_list_state_manager.gd.uid: -------------------------------------------------------------------------------- 1 | uid://1j7lshgi1fn6 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scripts/level_state.gd: -------------------------------------------------------------------------------- 1 | class_name LevelStateExample 2 | extends Resource 3 | 4 | @export var color : Color 5 | @export var tutorial_read : bool = false 6 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/examples/scripts/level_state.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c3kysco616td4 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scenes/overlaid_menus/game_won_menu.gd: -------------------------------------------------------------------------------- 1 | class_name GameWonMenu 2 | extends OverlaidMenu 3 | 4 | signal continue_pressed 5 | signal main_menu_pressed 6 | 7 | func _handle_cancel_input(): 8 | if $ConfirmExit.visible: 9 | $ConfirmExit.hide() 10 | elif $ConfirmMainMenu.visible: 11 | $ConfirmMainMenu.hide() 12 | else: 13 | super._handle_cancel_input() 14 | 15 | func _ready(): 16 | if OS.has_feature("web"): 17 | %ExitButton.hide() 18 | 19 | func _on_exit_button_pressed(): 20 | $ConfirmExit.popup_centered() 21 | 22 | func _on_main_menu_button_pressed(): 23 | $ConfirmMainMenu.popup_centered() 24 | 25 | func _on_confirm_main_menu_confirmed(): 26 | main_menu_pressed.emit() 27 | close() 28 | 29 | func _on_confirm_exit_confirmed(): 30 | get_tree().quit() 31 | 32 | func _on_close_button_pressed(): 33 | continue_pressed.emit() 34 | close() 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scenes/overlaid_menus/game_won_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://gi8tms6wsj1n 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scenes/overlaid_menus/level_lost_menu.gd: -------------------------------------------------------------------------------- 1 | class_name LevelLostMenu 2 | extends OverlaidMenu 3 | 4 | signal restart_pressed 5 | signal main_menu_pressed 6 | 7 | func _handle_cancel_input(): 8 | if $ConfirmExit.visible: 9 | $ConfirmExit.hide() 10 | elif $ConfirmMainMenu.visible: 11 | $ConfirmMainMenu.hide() 12 | else: 13 | super._handle_cancel_input() 14 | 15 | func _ready(): 16 | if OS.has_feature("web"): 17 | %ExitButton.hide() 18 | 19 | func _on_exit_button_pressed(): 20 | $ConfirmExit.popup_centered() 21 | 22 | func _on_main_menu_button_pressed(): 23 | $ConfirmMainMenu.popup_centered() 24 | 25 | func _on_confirm_main_menu_confirmed(): 26 | main_menu_pressed.emit() 27 | close() 28 | 29 | func _on_confirm_exit_confirmed(): 30 | get_tree().quit() 31 | 32 | func _on_close_button_pressed(): 33 | restart_pressed.emit() 34 | close() 35 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scenes/overlaid_menus/level_lost_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ckh3w3xa6qjk0 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scenes/overlaid_menus/level_won_menu.gd: -------------------------------------------------------------------------------- 1 | class_name LevelWonMenu 2 | extends OverlaidMenu 3 | 4 | signal continue_pressed 5 | signal restart_pressed 6 | signal main_menu_pressed 7 | 8 | func _input(event): 9 | if event.is_action_pressed("ui_cancel"): 10 | if $ConfirmMainMenu.visible: 11 | $ConfirmMainMenu.hide() 12 | get_viewport().set_input_as_handled() 13 | 14 | func _on_main_menu_button_pressed(): 15 | $ConfirmMainMenu.popup_centered() 16 | 17 | func _on_confirm_main_menu_confirmed(): 18 | main_menu_pressed.emit() 19 | close() 20 | 21 | func _on_restart_button_pressed(): 22 | restart_pressed.emit() 23 | close() 24 | 25 | func _on_close_button_pressed(): 26 | continue_pressed.emit() 27 | close() 28 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scenes/overlaid_menus/level_won_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bdic7jebf0y7a 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/butler_manager.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # butler manager command 3 | # Uploads directories as builds to matching itch.io channels. 4 | # HTML5 => html5 5 | # Linux => linux 6 | # Windows => win 7 | # MacOS => osx 8 | 9 | file=upload_destination.txt 10 | directories=("HTML5" "Linux" "Windows" "MacOS") 11 | channels=("html5" "linux" "win" "osx") 12 | 13 | # Check if the file exists 14 | if [ ! -e $file ]; then 15 | # File doesn't exist, create an empty one 16 | touch $file 17 | fi 18 | 19 | # File exists, read the first line into a variable 20 | read -r destination < $file 21 | 22 | if [ -z "$destination" ]; then 23 | # File is empty, prompt the user for input 24 | echo "Please enter the build destination (username/project-url-after-slash)." 25 | read -r user_input 26 | 27 | # Save user input to the file 28 | echo "$user_input" > "$file" 29 | echo "Destination saved to $file." 30 | destination="$user_input" 31 | fi 32 | 33 | # Check for the existence of directories and upload contents 34 | for ((i=0; i<${#directories[@]}; i++)); do 35 | dir="${directories[i]}" 36 | channel="${channels[i]}" 37 | 38 | if [ -d "$dir" ]; then 39 | echo butler push ./$dir/ $destination:$channel 40 | butler push ./$dir/ $destination:$channel 41 | else 42 | echo "Directory '$dir' does not exist." 43 | fi 44 | done -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/capture_mouse.gd: -------------------------------------------------------------------------------- 1 | class_name CaptureMouse 2 | extends Control 3 | ## Control node that captures the mouse for games that require it. 4 | ## 5 | ## Used for games that use the mouse to move the camera (ex. FPS or third-person shooters). 6 | 7 | func _gui_input(event): 8 | if event is InputEventMouseButton and Input.mouse_mode != Input.MOUSE_MODE_CAPTURED: 9 | Input.set_mouse_mode(Input.MOUSE_MODE_CAPTURED) 10 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/capture_mouse.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dqdyrkm3jily6 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/level_list_loader.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name LevelListLoader 3 | extends SceneLister 4 | ## Extends [SceneLister] to manage level advancement through [GameStateExample]. 5 | 6 | signal level_load_started 7 | signal level_loaded 8 | signal levels_finished 9 | 10 | ## Container where the level instance will be added. 11 | @export var level_container : Node 12 | 13 | var current_level : Node 14 | 15 | func get_level_file(level_id : int): 16 | if files.is_empty(): 17 | push_error("levels list is empty") 18 | return 19 | if level_id >= files.size(): 20 | push_error("level_id is out of bounds of the levels list") 21 | level_id = files.size() - 1 22 | return files[level_id] 23 | 24 | func _attach_level(level_resource : Resource): 25 | assert(level_container != null, "level_container is null") 26 | var instance = level_resource.instantiate() 27 | level_container.call_deferred("add_child", instance) 28 | return instance 29 | 30 | func load_level(level_id : int): 31 | if is_instance_valid(current_level): 32 | current_level.queue_free() 33 | await current_level.tree_exited 34 | current_level = null 35 | var level_file = get_level_file(level_id) 36 | if level_file == null: 37 | levels_finished.emit() 38 | return 39 | SceneLoader.load_scene(level_file, true) 40 | level_load_started.emit() 41 | await SceneLoader.scene_loaded 42 | current_level = _attach_level(SceneLoader.get_resource()) 43 | level_loaded.emit() 44 | 45 | func _ready(): 46 | if Engine.is_editor_hint(): 47 | # Text files get a `.remap` extension added on export. 48 | _refresh_files() 49 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/level_list_loader.gd.uid: -------------------------------------------------------------------------------- 1 | uid://crbo2e4ndbyvk 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/level_list_manager.gd.uid: -------------------------------------------------------------------------------- 1 | uid://yakisxcmflgk 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/level_loader.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | class_name LevelLoader 3 | extends Node 4 | ## Loads scenes into a container. 5 | 6 | signal level_load_started 7 | signal level_loaded 8 | signal level_ready 9 | 10 | ## Container where the level instance will be added. 11 | @export var level_container : Node 12 | ## Loads a level on start. 13 | @export var auto_load : bool = false 14 | @export var current_level_path : String 15 | @export_group("Debugging") 16 | @export var force_level : String 17 | @export var current_level : Node 18 | 19 | var is_loading : bool = false 20 | 21 | func get_current_level_path() -> String: 22 | return current_level_path if force_level.is_empty() else force_level 23 | 24 | func _attach_level(level_resource : Resource): 25 | assert(level_container != null, "level_container is null") 26 | var instance = level_resource.instantiate() 27 | level_container.call_deferred("add_child", instance) 28 | return instance 29 | 30 | func load_level(level_path : String = get_current_level_path()): 31 | if is_loading : return 32 | if is_instance_valid(current_level): 33 | current_level.queue_free() 34 | await current_level.tree_exited 35 | current_level = null 36 | is_loading = true 37 | current_level_path = level_path 38 | SceneLoader.load_scene(level_path, true) 39 | level_load_started.emit() 40 | await SceneLoader.scene_loaded 41 | is_loading = false 42 | current_level = _attach_level(SceneLoader.get_resource()) 43 | level_loaded.emit() 44 | await current_level.ready 45 | level_ready.emit() 46 | 47 | func reload_level(): 48 | load_level() 49 | 50 | func _ready(): 51 | if auto_load: 52 | load_level() 53 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/level_loader.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bbymrin0cm704 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/scene_lister.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Node 3 | class_name SceneLister 4 | ## Helper class for listing all the scenes in a directory. 5 | 6 | ## List of paths to scene files. 7 | ## Prefilled in the editor by selecting a directory. 8 | @export var files : Array[String] 9 | ## Prefill files with any scenes in the directory. 10 | @export_dir var directory : String : 11 | set(value): 12 | directory = value 13 | _refresh_files() 14 | 15 | func _refresh_files(): 16 | if not is_inside_tree() or directory.is_empty(): return 17 | var dir_access = DirAccess.open(directory) 18 | if dir_access: 19 | files.clear() 20 | for file in dir_access.get_files(): 21 | if not file.ends_with(".tscn"): 22 | continue 23 | files.append(directory + "/" + file) 24 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/extras/scripts/scene_lister.gd.uid: -------------------------------------------------------------------------------- 1 | uid://wjq7li836lwj 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/check_plugin_version.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ye1geusqp1gd 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/check_plugin_version.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://b5m61gpvjy1ao"] 2 | 3 | [ext_resource type="Script" uid="uid://ye1geusqp1gd" path="res://addons/maaacks_game_template/installer/check_plugin_version.gd" id="1_aqelj"] 4 | [ext_resource type="PackedScene" uid="uid://drhhakm62vjsy" path="res://addons/maaacks_game_template/base/scenes/utilities/api_client.tscn" id="2_5myc0"] 5 | 6 | [node name="CheckPluginVersion" type="Node"] 7 | script = ExtResource("1_aqelj") 8 | plugin_directory = "maaacks_game_template" 9 | plugin_github_url = "https://github.com/Maaack/Godot-Game-Template" 10 | 11 | [node name="APIClient" parent="." instance=ExtResource("2_5myc0")] 12 | api_url = "https://api.github.com/repos/Maaack/Godot-Game-Template/releases" 13 | request_method = 0 14 | 15 | [connection signal="request_failed" from="APIClient" to="." method="_on_api_client_request_failed"] 16 | [connection signal="response_received" from="APIClient" to="." method="_on_api_client_response_received"] 17 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/copy_confirmation_dialog.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://cyx4i4v30bw4o"] 2 | 3 | [node name="CopyConfirmationDialog" type="ConfirmationDialog"] 4 | title = "Copy Examples" 5 | initial_position = 2 6 | size = Vector2i(1024, 148) 7 | visible = true 8 | exclusive = false 9 | ok_button_text = "Yes" 10 | dialog_text = "Plugin enabled. It is recommended to copy the example scenes to a destination outside of the addons/ folder before editing them. 11 | 12 | Would you like to copy the examples now?" 13 | dialog_autowrap = true 14 | cancel_button_text = "No" 15 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/delete_examples_confirmation_dialog.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://vgdxevcnv0vx"] 2 | 3 | [node name="DeleteExamplesConfirmationDialog" type="ConfirmationDialog"] 4 | title = "Delete Source Examples" 5 | initial_position = 2 6 | size = Vector2i(1024, 256) 7 | visible = true 8 | ok_button_text = "Yes" 9 | dialog_text = "If the copied scenes work as expected, you may delete the source examples folder. This avoids confusing both developers and the Godot editor. 10 | 11 | This will also remove the option to copy the examples again. However, one copy is enough for most use cases. 12 | 13 | Would you like to delete the source examples folder now?" 14 | dialog_autowrap = true 15 | cancel_button_text = "No" 16 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/delete_examples_short_confirmation_dialog.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://d03csqgcaxm0m"] 2 | 3 | [node name="DeleteExamplesShortConfirmationDialog" type="ConfirmationDialog"] 4 | title = "Delete Source Examples" 5 | initial_position = 2 6 | size = Vector2i(1024, 128) 7 | visible = true 8 | ok_button_text = "Yes" 9 | dialog_text = "Are you sure you would like to delete the source examples folder?" 10 | dialog_autowrap = true 11 | cancel_button_text = "No" 12 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/destination_dialog.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://ckx50am7thhd2"] 2 | 3 | [node name="DestinationDialog" type="FileDialog"] 4 | title = "Select a Destination" 5 | initial_position = 2 6 | size = Vector2i(1024, 640) 7 | visible = true 8 | exclusive = false 9 | ok_button_text = "Select Current Folder" 10 | mode_overrides_title = false 11 | file_mode = 2 12 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/kenney_input_prompts_dialog.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends ConfirmationDialog 3 | 4 | const SHORT_DESCRIPTION : String = "Choose a style for icons in the input remapping menu. This style can be changed later." 5 | 6 | signal configuration_selected(index : int) 7 | 8 | func _on_item_list_item_selected(index) -> void: 9 | configuration_selected.emit(index) 10 | 11 | func set_short_description() -> void: 12 | %Label.text = SHORT_DESCRIPTION 13 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/kenney_input_prompts_dialog.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bduy6qihnm0qo 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/kenney_input_prompts_installer.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ca36dy2vkk46q 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/main_scene_confirmation_dialog.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://b8kr3y0cjxr8m"] 2 | 3 | [node name="MainSceneConfirmationDialog" type="ConfirmationDialog"] 4 | title = "Update Main Scene" 5 | initial_position = 2 6 | size = Vector2i(1024, 192) 7 | visible = true 8 | exclusive = false 9 | ok_button_text = "Yes" 10 | dialog_text = "Would you like to update the project's main scene? 11 | 12 | " 13 | dialog_autowrap = true 14 | cancel_button_text = "No" 15 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/play_opening_confirmation_dialog.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene format=3 uid="uid://b8808yj7a0ghj"] 2 | 3 | [node name="PlayOpeningConfirmationDialog" type="ConfirmationDialog"] 4 | title = "Run & Test" 5 | initial_position = 2 6 | size = Vector2i(1024, 148) 7 | visible = true 8 | ok_button_text = "Yes" 9 | dialog_text = "It is recommended to run the opening scene of the plugin and test if any issues occurred during the copying process. 10 | 11 | Would you like to run and test the scenes now?" 12 | dialog_autowrap = true 13 | cancel_button_text = "No" 14 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/theme_selection_dialog.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends ConfirmationDialog 3 | 4 | signal theme_selected(theme_file: String) 5 | 6 | @export_dir var theme_directories : Array[String] : 7 | set(value): 8 | theme_directories = value 9 | if is_inside_tree(): 10 | %FileLister.directories = theme_directories 11 | _fill_with_themes() 12 | 13 | func _fill_with_themes() -> void: 14 | %ItemList.clear() 15 | for file in %FileLister.files: 16 | if file is String: 17 | var readable_name = file.get_file().get_basename().capitalize() 18 | %ItemList.add_item(readable_name) 19 | 20 | func _ready() -> void: 21 | get_ok_button().disabled = true 22 | 23 | func _preview_theme(theme_file: String) -> void: 24 | var theme_resource : Theme = load(theme_file) 25 | if theme_resource == null: return 26 | %ThemePreviewContainer.theme = theme_resource 27 | 28 | func _on_item_list_item_selected(index) -> void: 29 | get_ok_button().disabled = false 30 | if index < %FileLister.files.size(): 31 | var file = %FileLister.files[index] 32 | _preview_theme(file) 33 | theme_selected.emit(file) 34 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/theme_selection_dialog.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c6p8xjvlrgsfk 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/installer/update_plugin.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cwj8dpqveao6o 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/maaacks_game_template.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bndaaa5when2r 2 | -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/.gdignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/.gdignore -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/credits_scene-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/credits_scene-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/game-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/game-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/input_remapping-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/input_remapping-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/maaack-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/maaack-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/maaacks-plugin-suite-256x256.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/maaacks-plugin-suite-256x256.gif -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/menus-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/menus-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/music_controller-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/music_controller-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/options-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/options-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/scene_loader-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/scene_loader-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-juliocacko-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-juliocacko-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-juliocacko-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-juliocacko-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-kenney-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-kenney-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-kenney-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-kenney-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-kenney-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-kenney-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-kenney-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-kenney-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-xelu-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-xelu-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-5-xelu-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-5-xelu-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-audio-options-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-audio-options-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-audio-options-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-audio-options-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-audio-options-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-audio-options-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-audio-options-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-audio-options-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-audio-options-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-audio-options-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-audio-options-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-audio-options-6.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-6.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-7.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-8.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-list-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-list-9.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-sensitivity-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-sensitivity-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-sensitivity-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-sensitivity-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-sensitivity-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-sensitivity-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-sensitivity-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-sensitivity-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-sensitivity-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-sensitivity-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-tree-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-tree-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-tree-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-tree-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-tree-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-tree-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-tree-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-tree-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-input-tree-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-input-tree-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-lost-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-lost-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-lost-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-lost-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-lost-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-lost-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-select-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-select-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-state-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-state-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-state-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-state-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-state-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-state-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-won-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-won-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-won-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-won-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-level-won-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-level-won-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-loading-screen-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-loading-screen-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-loading-screen-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-loading-screen-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-loading-screen-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-loading-screen-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-loading-screen-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-loading-screen-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-main-menu-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-main-menu-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-main-menu-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-main-menu-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-main-menu-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-main-menu-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-main-menu-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-main-menu-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-main-menu-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-main-menu-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-mini-options-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-mini-options-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-mini-options-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-mini-options-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-pause-menu-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-pause-menu-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-pause-menu-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-pause-menu-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-pause-menu-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-pause-menu-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-pause-menu-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-pause-menu-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-pause-menu-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-pause-menu-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-10.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-11.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-12.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-6.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-7.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-8.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-theme-selector-9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-theme-selector-9.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-video-options-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-video-options-1.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-video-options-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-video-options-2.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-video-options-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-video-options-3.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-video-options-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-video-options-4.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-video-options-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-video-options-5.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-6-video-options-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-6-video-options-6.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-game-a-darkness-like-gravity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-game-a-darkness-like-gravity.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-game-harvest-hill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-game-harvest-hill.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-game-nannybot-overload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-game-nannybot-overload.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-game-rent-seek-kill.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-game-rent-seek-kill.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/screenshot-game-spud-customs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/screenshot-game-spud-customs.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/media/ui_sound_controller-icon-black-transparent-256x256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/addons/maaacks_game_template/media/ui_sound_controller-icon-black-transparent-256x256.png -------------------------------------------------------------------------------- /addons/maaacks_game_template/plugin.cfg: -------------------------------------------------------------------------------- 1 | [plugin] 2 | 3 | name="Maaack's Game Template" 4 | description="Template with a main menu, options menus, pause menu, credits, scene loader, extra tools, and an example game scene. 5 | 6 | Created in collaboration with members of the Godot Wild Jam community." 7 | author="Marek Belski" 8 | version="0.22.0" 9 | script="maaacks_game_template.gd" 10 | -------------------------------------------------------------------------------- /assets/godot_engine_logo/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Godot Engine Logo 2 | Copyright (c) 2017 Andrea Calabró 3 | 4 | This work is licensed under the Creative Commons Attribution 4.0 International 5 | license (CC BY 4.0 International): https://creativecommons.org/licenses/by/4.0/ -------------------------------------------------------------------------------- /assets/godot_engine_logo/logo_vertical_color_dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/assets/godot_engine_logo/logo_vertical_color_dark.png -------------------------------------------------------------------------------- /assets/godot_engine_logo/logo_vertical_color_dark.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ueskvtw0tymr" 6 | path="res://.godot/imported/logo_vertical_color_dark.png-056a6f9bbcf3b5b4e6d6f8f5f4aa19c6.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://assets/godot_engine_logo/logo_vertical_color_dark.png" 14 | dest_files=["res://.godot/imported/logo_vertical_color_dark.png-056a6f9bbcf3b5b4e6d6f8f5f4aa19c6.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /default_bus_layout.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="AudioBusLayout" format=3 uid="uid://dlo5inop6ahho"] 2 | 3 | [resource] 4 | bus/1/name = &"Music" 5 | bus/1/solo = false 6 | bus/1/mute = false 7 | bus/1/bypass_fx = false 8 | bus/1/volume_db = 0.0 9 | bus/1/send = &"Master" 10 | bus/2/name = &"SFX" 11 | bus/2/solo = false 12 | bus/2/mute = false 13 | bus/2/bypass_fx = false 14 | bus/2/volume_db = 0.0 15 | bus/2/send = &"Master" 16 | -------------------------------------------------------------------------------- /default_env.tres: -------------------------------------------------------------------------------- 1 | [gd_resource type="Environment" load_steps=2 format=3 uid="uid://dg6gkweta8kyo"] 2 | 3 | [sub_resource type="Sky" id="1"] 4 | 5 | [resource] 6 | background_mode = 2 7 | sky = SubResource("1") 8 | -------------------------------------------------------------------------------- /icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Maaack/Godot-Game-Template/917f963768c079f81d6e25e586e435a343f82a62/icon.png -------------------------------------------------------------------------------- /icon.png.import: -------------------------------------------------------------------------------- 1 | [remap] 2 | 3 | importer="texture" 4 | type="CompressedTexture2D" 5 | uid="uid://ctpq0wqq86qs6" 6 | path="res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex" 7 | metadata={ 8 | "vram_texture": false 9 | } 10 | 11 | [deps] 12 | 13 | source_file="res://icon.png" 14 | dest_files=["res://.godot/imported/icon.png-487276ed1e3a0c39cad0279d744ee560.ctex"] 15 | 16 | [params] 17 | 18 | compress/mode=0 19 | compress/high_quality=false 20 | compress/lossy_quality=0.7 21 | compress/hdr_compression=1 22 | compress/normal_map=0 23 | compress/channel_pack=0 24 | mipmaps/generate=false 25 | mipmaps/limit=-1 26 | roughness/mode=0 27 | roughness/src_normal="" 28 | process/fix_alpha_border=true 29 | process/premult_alpha=false 30 | process/normal_map_invert_y=false 31 | process/hdr_as_srgb=false 32 | process/hdr_clamp_exposure=false 33 | process/size_limit=0 34 | detect_3d/compress_to=1 35 | -------------------------------------------------------------------------------- /scenes/credits/credits.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Credits 3 | -------------------------------------------------------------------------------- /scenes/credits/credits.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dkcmig1aciy7y 2 | -------------------------------------------------------------------------------- /scenes/end_credits/end_credits.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends Credits 3 | 4 | @export_file("*.tscn") var main_menu_scene : String 5 | @onready var init_mouse_filter : MouseFilter = mouse_filter 6 | 7 | func _end_reached() -> void: 8 | %EndMessagePanel.show() 9 | mouse_filter = Control.MOUSE_FILTER_STOP 10 | super._end_reached() 11 | 12 | func _on_MenuButton_pressed() -> void: 13 | SceneLoader.load_scene(main_menu_scene) 14 | 15 | func _on_ExitButton_pressed() -> void: 16 | get_tree().quit() 17 | 18 | func _ready() -> void: 19 | if main_menu_scene.is_empty(): 20 | %MenuButton.hide() 21 | if OS.has_feature("web"): 22 | %ExitButton.hide() 23 | super._ready() 24 | 25 | func reset() -> void: 26 | super.reset() 27 | %EndMessagePanel.hide() 28 | mouse_filter = init_mouse_filter 29 | 30 | func _unhandled_input(event : InputEvent) -> void: 31 | if not enabled: return 32 | if event.is_action_pressed("ui_cancel"): 33 | if not %EndMessagePanel.visible: 34 | _end_reached() 35 | else: 36 | get_tree().quit() 37 | -------------------------------------------------------------------------------- /scenes/end_credits/end_credits.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bfdql7vusqsvw 2 | -------------------------------------------------------------------------------- /scenes/game_scene/configurable_sub_viewport.gd: -------------------------------------------------------------------------------- 1 | extends SubViewport 2 | 3 | @export var anti_aliasing_key : StringName = "Anti-aliasing" 4 | @export var video_section : StringName = AppSettings.VIDEO_SECTION 5 | 6 | func _ready() -> void: 7 | var anti_aliasing : int = Config.get_config(video_section, anti_aliasing_key, Viewport.MSAA_DISABLED) 8 | msaa_2d = anti_aliasing as MSAA 9 | msaa_3d = anti_aliasing as MSAA 10 | -------------------------------------------------------------------------------- /scenes/game_scene/configurable_sub_viewport.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cl3opf2oe8og3 2 | -------------------------------------------------------------------------------- /scenes/game_scene/input_display_label.gd: -------------------------------------------------------------------------------- 1 | extends Label 2 | 3 | @onready var action_names := AppSettings.get_action_names() 4 | 5 | func _get_inputs_as_string() -> String: 6 | var all_inputs : String = "" 7 | var is_first : bool = true 8 | for action_name in action_names: 9 | if Input.is_action_pressed(action_name): 10 | if is_first: 11 | is_first = false 12 | all_inputs += action_name 13 | else: 14 | all_inputs += " + " + action_name 15 | return all_inputs 16 | 17 | func _process(_delta : float) -> void: 18 | if Input.is_anything_pressed(): 19 | text = _get_inputs_as_string() 20 | else: 21 | text = "" 22 | -------------------------------------------------------------------------------- /scenes/game_scene/input_display_label.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dquaj8ki8of4n 2 | -------------------------------------------------------------------------------- /scenes/game_scene/levels/level.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | 3 | signal level_won 4 | signal level_lost 5 | 6 | var level_state : LevelState 7 | 8 | func _on_lose_button_pressed() -> void: 9 | level_lost.emit() 10 | 11 | func _on_win_button_pressed() -> void: 12 | level_won.emit() 13 | 14 | func open_tutorials() -> void: 15 | %TutorialManager.open_tutorials() 16 | level_state.tutorial_read = true 17 | 18 | func _ready() -> void: 19 | level_state = GameState.get_level_state(scene_file_path) 20 | %ColorPickerButton.color = level_state.color 21 | %BackgroundColor.color = level_state.color 22 | if not level_state.tutorial_read: 23 | open_tutorials() 24 | 25 | func _on_color_picker_button_color_changed(color : Color) -> void: 26 | %BackgroundColor.color = color 27 | level_state.color = color 28 | GlobalState.save() 29 | 30 | func _on_tutorial_button_pressed() -> void: 31 | open_tutorials() 32 | -------------------------------------------------------------------------------- /scenes/game_scene/levels/level.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cjbqlir3qtkwv 2 | -------------------------------------------------------------------------------- /scenes/game_scene/tutorial_manager.gd: -------------------------------------------------------------------------------- 1 | extends Node 2 | @export var tutorial_scenes : Array[PackedScene] 3 | @export var open_delay : float = 0.25 4 | @export var auto_open : bool = false 5 | 6 | func open_tutorials() -> void: 7 | if open_delay > 0.0: 8 | await get_tree().create_timer(auto_open, false).timeout 9 | for tutorial_scene in tutorial_scenes: 10 | var tutorial_menu : OverlaidMenu = tutorial_scene.instantiate() 11 | if tutorial_menu == null: 12 | push_warning("tutorial failed to open %s" % tutorial_scene) 13 | return 14 | get_tree().current_scene.call_deferred("add_child", tutorial_menu) 15 | await tutorial_menu.tree_exited 16 | 17 | func _ready() -> void: 18 | if auto_open: 19 | open_tutorials() 20 | -------------------------------------------------------------------------------- /scenes/game_scene/tutorial_manager.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ck7cdjnnkm4aq 2 | -------------------------------------------------------------------------------- /scenes/game_scene/tutorials/tutorial_1.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://b8vsxuuyong8g"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_b2dkv"] 4 | 5 | [node name="Tutorial1" instance=ExtResource("1_b2dkv")] 6 | 7 | [node name="MenuPanelContainer" parent="." index="1"] 8 | offset_left = -206.0 9 | offset_top = -75.0 10 | offset_right = 215.0 11 | offset_bottom = 76.0 12 | 13 | [node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"] 14 | theme_override_constants/separation = 16 15 | 16 | [node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"] 17 | text = "Tutorial" 18 | 19 | [node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"] 20 | visible = true 21 | 22 | [node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"] 23 | text = "[center]Click the Win button to progress. 24 | Click the Lose button to try again.[/center]" 25 | fit_content = true 26 | -------------------------------------------------------------------------------- /scenes/game_scene/tutorials/tutorial_2.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://c3tkuge4hko41"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_sjjon"] 4 | 5 | [node name="Tutorial2" instance=ExtResource("1_sjjon")] 6 | 7 | [node name="MenuPanelContainer" parent="." index="1"] 8 | offset_left = -206.0 9 | offset_top = -75.0 10 | offset_right = 215.0 11 | offset_bottom = 76.0 12 | 13 | [node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"] 14 | theme_override_constants/separation = 16 15 | 16 | [node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"] 17 | text = "Tutorial" 18 | 19 | [node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"] 20 | visible = true 21 | 22 | [node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"] 23 | text = "[center]Progress is saved. 24 | Pressing Continue from the main menu will load the last level played.[/center]" 25 | fit_content = true 26 | -------------------------------------------------------------------------------- /scenes/game_scene/tutorials/tutorial_3.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://cd174nlotc4xy"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_hy5iy"] 4 | 5 | [node name="Tutorial2" instance=ExtResource("1_hy5iy")] 6 | 7 | [node name="MenuPanelContainer" parent="." index="1"] 8 | offset_left = -206.0 9 | offset_top = -75.0 10 | offset_right = 215.0 11 | offset_bottom = 76.0 12 | 13 | [node name="BoxContainer" parent="MenuPanelContainer/MarginContainer" index="0"] 14 | theme_override_constants/separation = 16 15 | 16 | [node name="TitleLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/TitleMargin" index="0"] 17 | text = "Tutorial" 18 | 19 | [node name="DescriptionMargin" parent="MenuPanelContainer/MarginContainer/BoxContainer" index="1"] 20 | visible = true 21 | 22 | [node name="DescriptionLabel" parent="MenuPanelContainer/MarginContainer/BoxContainer/DescriptionMargin" index="0"] 23 | text = "[center]The color picker at the bottom-right updates the level state. This change persists until the game is reset. 24 | 25 | The label at the bottom-center displays the current input action detected, if any are setup for the project.[/center]" 26 | fit_content = true 27 | -------------------------------------------------------------------------------- /scenes/loading_screen/level_loading_screen.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://dn02kotqcawyw"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_b4fsf"] 4 | [ext_resource type="Script" uid="uid://dt1bu8lddm5cs" path="res://scenes/loading_screen/loading_screen.gd" id="2_akme8"] 5 | 6 | [node name="LevelLoadingScreen" instance=ExtResource("1_b4fsf")] 7 | script = ExtResource("2_akme8") 8 | _in_progress = "Loading Level..." 9 | _in_progress_waiting = "Still Loading Level..." 10 | _in_progress_still_waiting = "Still Loading Level... (%d seconds)" 11 | _complete = "Loading Level Complete!" 12 | -------------------------------------------------------------------------------- /scenes/loading_screen/loading_screen.gd: -------------------------------------------------------------------------------- 1 | extends LoadingScreen 2 | -------------------------------------------------------------------------------- /scenes/loading_screen/loading_screen.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dt1bu8lddm5cs 2 | -------------------------------------------------------------------------------- /scenes/loading_screen/loading_screen.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://rhfxoalxyr60"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_a8kcw"] 4 | [ext_resource type="Script" uid="uid://dt1bu8lddm5cs" path="res://scenes/loading_screen/loading_screen.gd" id="2_53rj4"] 5 | 6 | [node name="LoadingScreen" instance=ExtResource("1_a8kcw")] 7 | script = ExtResource("2_53rj4") 8 | -------------------------------------------------------------------------------- /scenes/loading_screen/loading_screen_with_shader_caching.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bqmjwxf7fhp03 2 | -------------------------------------------------------------------------------- /scenes/loading_screen/loading_screen_with_shader_caching.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://x4fx8gc1hiy1"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cd0jbh4metflb" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn" id="1_alqvd"] 4 | [ext_resource type="Script" uid="uid://bqmjwxf7fhp03" path="res://scenes/loading_screen/loading_screen_with_shader_caching.gd" id="2_n5fdm"] 5 | 6 | [sub_resource type="QuadMesh" id="QuadMesh_klnwy"] 7 | 8 | [node name="LoadingScreen" instance=ExtResource("1_alqvd")] 9 | script = ExtResource("2_n5fdm") 10 | _spatial_shader_material_dir = "" 11 | _cache_shaders_scene = "res://scenes/game_scene/game_ui.tscn" 12 | _mesh = SubResource("QuadMesh_klnwy") 13 | _matching_extensions = Array[String]([".tres", ".material", ".res"]) 14 | _ignore_subfolders = Array[String]([".", ".."]) 15 | _shader_delay_timer = 0.1 16 | 17 | [node name="SpatialShaderTypeCaches" type="Node3D" parent="." index="2"] 18 | unique_name_in_owner = true 19 | 20 | [node name="Camera3D" type="Camera3D" parent="SpatialShaderTypeCaches" index="0"] 21 | transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1.408) 22 | current = true 23 | -------------------------------------------------------------------------------- /scenes/menus/level_select_menu/level_select_menu.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | ## Loads a simple ItemList node within a margin container. SceneLister updates 4 | ## the available scenes in the directory provided. Activating a level will update 5 | ## the GameState's current_level, and emit a signal. The main menu node will trigger 6 | ## a load action from that signal. 7 | 8 | @onready var level_buttons_container: ItemList = %LevelButtonsContainer 9 | @onready var scene_lister: SceneLister = $SceneLister 10 | 11 | signal level_selected 12 | 13 | func _ready() -> void: 14 | add_levels_to_container() 15 | 16 | ## A fresh level list is propgated into the ItemList, and the file names are cleaned 17 | func add_levels_to_container() -> void: 18 | level_buttons_container.clear() 19 | var max_level_reached := GameState.get_max_level_reached() 20 | var level_iter := 0 21 | for file_path in scene_lister.files: 22 | if level_iter > max_level_reached : break 23 | level_iter += 1 24 | var file_name := file_path.get_file() # e.g., "level_1.tscn" 25 | file_name = file_name.trim_suffix(".tscn") # Remove the ".tscn" extension 26 | file_name = file_name.replace("_", " ") # Replace underscores with spaces 27 | file_name = file_name.capitalize() # Convert to proper case 28 | var button_name := str(file_name) 29 | level_buttons_container.add_item(button_name) 30 | 31 | func _on_level_buttons_container_item_activated(index: int) -> void: 32 | GameState.set_current_level(index) 33 | level_selected.emit() 34 | -------------------------------------------------------------------------------- /scenes/menus/level_select_menu/level_select_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dd0n3l7fe8hmu 2 | -------------------------------------------------------------------------------- /scenes/menus/main_menu/main_menu.gd: -------------------------------------------------------------------------------- 1 | extends MainMenu 2 | -------------------------------------------------------------------------------- /scenes/menus/main_menu/main_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://w0trtg53nc1y 2 | -------------------------------------------------------------------------------- /scenes/menus/main_menu/main_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=5 format=3 uid="uid://dboeh8i18e2sh"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://c6k5nnpbypshi" path="res://addons/maaacks_game_template/base/scenes/menus/main_menu/main_menu.tscn" id="1_peecx"] 4 | [ext_resource type="Script" uid="uid://w0trtg53nc1y" path="res://scenes/menus/main_menu/main_menu.gd" id="2_ub2bi"] 5 | [ext_resource type="PackedScene" uid="uid://boicxc6x4554n" path="res://scenes/menus/options_menu/master_options_menu_with_tabs.tscn" id="3_x31ro"] 6 | [ext_resource type="PackedScene" uid="uid://dlj8an1r0ynut" path="res://scenes/credits/credits.tscn" id="4_0jpat"] 7 | 8 | [node name="MainMenu" instance=ExtResource("1_peecx")] 9 | script = ExtResource("2_ub2bi") 10 | game_scene_path = "res://scenes/game_scene/game_ui.tscn" 11 | options_packed_scene = ExtResource("3_x31ro") 12 | credits_packed_scene = ExtResource("4_0jpat") 13 | -------------------------------------------------------------------------------- /scenes/menus/main_menu/main_menu_with_animations.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dqwkxqvo2k8yo 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/audio/audio_input_option_control.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends ListOptionControl 3 | 4 | func _set_input_device() -> void: 5 | var current_setting : Variant = _get_setting(default_value) 6 | if current_setting is bool: 7 | current_setting = &"Default" 8 | AudioServer.input_device = _get_setting(default_value) 9 | 10 | func _add_microphone_audio_stream() -> void: 11 | var instance := AudioStreamPlayer.new() 12 | instance.stream = AudioStreamMicrophone.new() 13 | instance.autoplay = true 14 | add_child.call_deferred(instance) 15 | instance.ready.connect(_set_input_device) 16 | 17 | func _ready() -> void: 18 | if ProjectSettings.get_setting("audio/driver/enable_input", false): 19 | if AudioServer.input_device.is_empty(): 20 | _add_microphone_audio_stream() 21 | else: 22 | _set_input_device() 23 | if not Engine.is_editor_hint(): 24 | option_values = AudioServer.get_input_device_list() 25 | else: 26 | hide() 27 | super._ready() 28 | 29 | func _on_setting_changed(value : Variant) -> void: 30 | if value >= option_values.size(): return 31 | AudioServer.input_device = option_values[value] 32 | super._on_setting_changed(value) 33 | 34 | func _value_title_map(value : Variant) -> String: 35 | if value is String: 36 | return value 37 | else: 38 | return super._value_title_map(value) 39 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/audio/audio_input_option_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://br2r65iuurcn5 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/audio/audio_input_option_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://i2dvpddcy2dt"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b6bl3n5mp3m1e" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn" id="1_lfo7w"] 4 | [ext_resource type="Script" uid="uid://br2r65iuurcn5" path="res://scenes/menus/options_menu/audio/audio_input_option_control.gd" id="2_m6bxx"] 5 | 6 | [node name="AudioInputOptionControl" instance=ExtResource("1_lfo7w")] 7 | script = ExtResource("2_m6bxx") 8 | option_name = "Input Device" 9 | option_section = 2 10 | key = "InputDevice" 11 | section = "AudioSettings" 12 | property_type = 4 13 | 14 | [node name="OptionLabel" parent="." index="0"] 15 | text = "Input Device :" 16 | 17 | [node name="OptionButton" parent="." index="1"] 18 | size_flags_horizontal = 3 19 | text_overrun_behavior = 1 20 | clip_text = true 21 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/audio/audio_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends AudioOptionsMenu 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/audio/audio_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cfijjwxaphr47 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/audio/audio_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://y6d0iuhtk6r"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://c8vnncjwqcpab" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/audio/audio_options_menu.tscn" id="1_vnecy"] 4 | [ext_resource type="Script" uid="uid://cfijjwxaphr47" path="res://scenes/menus/options_menu/audio/audio_options_menu.gd" id="2_td4gr"] 5 | [ext_resource type="PackedScene" uid="uid://i2dvpddcy2dt" path="res://scenes/menus/options_menu/audio/audio_input_option_control.tscn" id="3_jlqbf"] 6 | 7 | [node name="Audio" instance=ExtResource("1_vnecy")] 8 | script = ExtResource("2_td4gr") 9 | 10 | [node name="AudioInputOptionControl" parent="VBoxContainer" index="2" instance=ExtResource("3_jlqbf")] 11 | layout_mode = 2 12 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/game/game_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends Control 2 | 3 | func _on_ResetGameControl_reset_confirmed() -> void: 4 | GlobalState.reset() 5 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/game/game_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bh0wal0k35hnx 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/game/game_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://ynluticqqywd"] 2 | 3 | [ext_resource type="Script" uid="uid://bh0wal0k35hnx" path="res://scenes/menus/options_menu/game/game_options_menu.gd" id="1_hvcyg"] 4 | [ext_resource type="Script" uid="uid://1nf36h0gms3q" path="res://addons/maaacks_game_template/base/scripts/capture_focus.gd" id="2_t8t6j"] 5 | [ext_resource type="PackedScene" uid="uid://d25665kl0b64c" path="res://scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn" id="3_pfgxr"] 6 | 7 | [node name="Game" type="MarginContainer"] 8 | anchors_preset = 15 9 | anchor_right = 1.0 10 | anchor_bottom = 1.0 11 | theme_override_constants/margin_top = 24 12 | theme_override_constants/margin_bottom = 24 13 | script = ExtResource("1_hvcyg") 14 | 15 | [node name="VBoxContainer" type="VBoxContainer" parent="."] 16 | custom_minimum_size = Vector2(400, 0) 17 | layout_mode = 2 18 | size_flags_horizontal = 4 19 | alignment = 1 20 | script = ExtResource("2_t8t6j") 21 | search_depth = 2 22 | 23 | [node name="ResetGameControl" parent="VBoxContainer" instance=ExtResource("3_pfgxr")] 24 | layout_mode = 2 25 | 26 | [connection signal="reset_confirmed" from="VBoxContainer/ResetGameControl" to="." method="_on_ResetGameControl_reset_confirmed"] 27 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/game/reset_game_control/reset_game_control.gd: -------------------------------------------------------------------------------- 1 | extends HBoxContainer 2 | 3 | signal reset_confirmed 4 | 5 | func _on_ResetButton_pressed() -> void: 6 | $ConfirmResetDialog.popup_centered() 7 | $ResetButton.disabled = true 8 | 9 | func _on_ConfirmResetDialog_confirmed() -> void: 10 | reset_confirmed.emit() 11 | 12 | func _on_confirm_reset_dialog_canceled() -> void: 13 | $ResetButton.disabled = false 14 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/game/reset_game_control/reset_game_control.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cufxsojv3gqn1 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=2 format=3 uid="uid://d25665kl0b64c"] 2 | 3 | [ext_resource type="Script" uid="uid://cufxsojv3gqn1" path="res://scenes/menus/options_menu/game/reset_game_control/reset_game_control.gd" id="1_mkb8o"] 4 | 5 | [node name="ResetGameControl" type="HBoxContainer"] 6 | custom_minimum_size = Vector2(0, 32) 7 | offset_top = 210.0 8 | offset_right = 305.0 9 | offset_bottom = 242.0 10 | script = ExtResource("1_mkb8o") 11 | 12 | [node name="ResetLabel" type="Label" parent="."] 13 | layout_mode = 2 14 | size_flags_horizontal = 3 15 | text = "Reset Game :" 16 | 17 | [node name="ResetButton" type="Button" parent="."] 18 | custom_minimum_size = Vector2(72, 32) 19 | layout_mode = 2 20 | text = "Reset" 21 | 22 | [node name="ConfirmResetDialog" type="ConfirmationDialog" parent="."] 23 | dialog_text = "Do you want to reset your game data?" 24 | 25 | [connection signal="pressed" from="ResetButton" to="." method="_on_ResetButton_pressed"] 26 | [connection signal="canceled" from="ConfirmResetDialog" to="." method="_on_confirm_reset_dialog_canceled"] 27 | [connection signal="confirmed" from="ConfirmResetDialog" to="." method="_on_ConfirmResetDialog_confirmed"] 28 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/input/input_options_menu.gd: -------------------------------------------------------------------------------- 1 | @tool 2 | extends InputOptionsMenu 3 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/input/input_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cbw0aet7yttet 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/input/input_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://dr4wtgbceshug"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://dp3rgqaehb3xu" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/input/input_options_menu.tscn" id="1_i27v5"] 4 | [ext_resource type="Script" uid="uid://cbw0aet7yttet" path="res://scenes/menus/options_menu/input/input_options_menu.gd" id="2_hyv0n"] 5 | 6 | [node name="Controls" instance=ExtResource("1_i27v5")] 7 | script = ExtResource("2_hyv0n") 8 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/master_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends MasterOptionsMenu 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/master_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://t7qh588cri86 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/master_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://8fe5li8qsunf"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://bvwl11s2p0hd" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/master_options_menu.tscn" id="1_sa28m"] 4 | [ext_resource type="Script" uid="uid://t7qh588cri86" path="res://scenes/menus/options_menu/master_options_menu.gd" id="2_c0csl"] 5 | 6 | [node name="MasterOptionsMenu" instance=ExtResource("1_sa28m")] 7 | script = ExtResource("2_c0csl") 8 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/mini_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends MiniOptionsMenu 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/mini_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cyu5ekru6j656 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/mini_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cifpvma40k3d1"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="1_7wq3x"] 4 | [ext_resource type="Script" uid="uid://cyu5ekru6j656" path="res://scenes/menus/options_menu/mini_options_menu.gd" id="2_ryhko"] 5 | 6 | [node name="MiniOptionsMenu" instance=ExtResource("1_7wq3x")] 7 | script = ExtResource("2_ryhko") 8 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/mini_options_menu_with_reset.gd: -------------------------------------------------------------------------------- 1 | extends MiniOptionsMenu 2 | 3 | func _on_reset_game_control_reset_confirmed() -> void: 4 | GlobalState.reset() 5 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/mini_options_menu_with_reset.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cmvpxo564ijwt 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/mini_options_menu_with_reset.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://bxo8rxu1kjj4a"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://vh1ucj2rfbby" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/mini_options_menu.tscn" id="1_2hsax"] 4 | [ext_resource type="Script" uid="uid://cmvpxo564ijwt" path="res://scenes/menus/options_menu/mini_options_menu_with_reset.gd" id="2_d8n2j"] 5 | [ext_resource type="PackedScene" uid="uid://d25665kl0b64c" path="res://scenes/menus/options_menu/game/reset_game_control/reset_game_control.tscn" id="3_xphcu"] 6 | 7 | [node name="MiniOptionsMenu" instance=ExtResource("1_2hsax")] 8 | script = ExtResource("2_d8n2j") 9 | 10 | [node name="ResetGameControl" parent="." index="3" instance=ExtResource("3_xphcu")] 11 | layout_mode = 2 12 | 13 | [connection signal="reset_confirmed" from="ResetGameControl" to="." method="_on_reset_game_control_reset_confirmed"] 14 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/video/video_options_menu.gd: -------------------------------------------------------------------------------- 1 | extends VideoOptionsMenu 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/video/video_options_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bcp3so3r2gg37 2 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/video/video_options_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://7eacicj3ayra"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b2numvphf2kau" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.tscn" id="1_hcxmf"] 4 | [ext_resource type="Script" uid="uid://bcp3so3r2gg37" path="res://scenes/menus/options_menu/video/video_options_menu.gd" id="2_x0wgl"] 5 | 6 | [node name="Video" instance=ExtResource("1_hcxmf")] 7 | script = ExtResource("2_x0wgl") 8 | -------------------------------------------------------------------------------- /scenes/menus/options_menu/video/video_options_menu_with_extras.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://drluav5hr2gt2"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b2numvphf2kau" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/video/video_options_menu.tscn" id="1_r8snp"] 4 | [ext_resource type="Script" uid="uid://bcp3so3r2gg37" path="res://scenes/menus/options_menu/video/video_options_menu.gd" id="2_6rdlo"] 5 | [ext_resource type="PackedScene" uid="uid://b6bl3n5mp3m1e" path="res://addons/maaacks_game_template/base/scenes/menus/options_menu/option_control/list_option_control.tscn" id="3_86wx4"] 6 | 7 | [node name="Video" instance=ExtResource("1_r8snp")] 8 | script = ExtResource("2_6rdlo") 9 | 10 | [node name="AntiAliasingControl" parent="VBoxContainer" index="3" instance=ExtResource("3_86wx4")] 11 | layout_mode = 2 12 | lock_titles = true 13 | option_values = [0, 1, 2, 3] 14 | option_titles = Array[String](["Disabled (Fastest)", "2x", "4x", "8x (Slowest)"]) 15 | option_name = "Anti-Aliasing" 16 | option_section = 3 17 | key = "Anti-aliasing" 18 | section = "VideoSettings" 19 | property_type = 2 20 | default_value = 0 21 | 22 | [node name="CameraShakeControl" parent="VBoxContainer" index="4" instance=ExtResource("3_86wx4")] 23 | visible = false 24 | layout_mode = 2 25 | lock_titles = true 26 | option_values = [1.0, 0.75, 0.5, 0.0] 27 | option_titles = Array[String](["Normal", "Reduced", "Minimal", "None"]) 28 | option_name = "Camera Shake" 29 | option_section = 3 30 | key = "CameraShake" 31 | section = "VideoSettings" 32 | property_type = 3 33 | default_value = 1.0 34 | -------------------------------------------------------------------------------- /scenes/opening/opening.gd: -------------------------------------------------------------------------------- 1 | extends "res://addons/maaacks_game_template/base/scenes/opening/opening.gd" 2 | -------------------------------------------------------------------------------- /scenes/opening/opening.gd.uid: -------------------------------------------------------------------------------- 1 | uid://74g5r0yo5j63 2 | -------------------------------------------------------------------------------- /scenes/opening/opening.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://dcj6543epcavf"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://sikc02ddepyt" path="res://addons/maaacks_game_template/base/scenes/opening/opening.tscn" id="1_ke3tw"] 4 | [ext_resource type="Script" uid="uid://74g5r0yo5j63" path="res://scenes/opening/opening.gd" id="2_yhkvs"] 5 | 6 | [node name="Opening" instance=ExtResource("1_ke3tw")] 7 | script = ExtResource("2_yhkvs") 8 | next_scene = "res://scenes/menus/main_menu/main_menu_with_animations.tscn" 9 | -------------------------------------------------------------------------------- /scenes/opening/opening_with_logo.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://daasfxbq45yow"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://sikc02ddepyt" path="res://addons/maaacks_game_template/base/scenes/opening/opening.tscn" id="1_i1ftt"] 4 | [ext_resource type="Script" uid="uid://74g5r0yo5j63" path="res://scenes/opening/opening.gd" id="2_nk1kj"] 5 | [ext_resource type="Texture2D" uid="uid://ueskvtw0tymr" path="res://assets/godot_engine_logo/logo_vertical_color_dark.png" id="3_w60c0"] 6 | 7 | [node name="Opening" instance=ExtResource("1_i1ftt")] 8 | script = ExtResource("2_nk1kj") 9 | next_scene = "res://scenes/menus/main_menu/main_menu_with_animations.tscn" 10 | images = Array[Texture2D]([ExtResource("3_w60c0")]) 11 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/game_won_menu.gd: -------------------------------------------------------------------------------- 1 | extends GameWonMenu 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/game_won_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://b76ctvfa8lv82 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/game_won_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://bifqmlemht8b2"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://4brssbq1ghsw" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/game_won_menu.tscn" id="1_y33ao"] 4 | [ext_resource type="Script" uid="uid://b76ctvfa8lv82" path="res://scenes/overlaid_menus/game_won_menu.gd" id="2_o0fkt"] 5 | 6 | [node name="GameWonMenu" instance=ExtResource("1_y33ao")] 7 | script = ExtResource("2_o0fkt") 8 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/level_lost_menu.gd: -------------------------------------------------------------------------------- 1 | extends LevelLostMenu 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/level_lost_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cyj15a5d36q82 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/level_lost_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://cvr36eb0r2bje"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://dkq3nhkmhu4je" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/level_lost_menu.tscn" id="1_rq4sj"] 4 | [ext_resource type="Script" uid="uid://cyj15a5d36q82" path="res://scenes/overlaid_menus/level_lost_menu.gd" id="2_wvmyj"] 5 | 6 | [node name="LevelLostMenu" instance=ExtResource("1_rq4sj")] 7 | script = ExtResource("2_wvmyj") 8 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/level_won_menu.gd: -------------------------------------------------------------------------------- 1 | extends LevelWonMenu 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/level_won_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dteftaisqmva4 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/level_won_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://fi7nwkte06g2"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://y3vtx0e0shv4" path="res://addons/maaacks_game_template/extras/scenes/overlaid_menus/level_won_menu.tscn" id="1_u6s5d"] 4 | [ext_resource type="Script" uid="uid://dteftaisqmva4" path="res://scenes/overlaid_menus/level_won_menu.gd" id="2_wqvle"] 5 | 6 | [node name="LevelWonMenu" instance=ExtResource("1_u6s5d")] 7 | script = ExtResource("2_wqvle") 8 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/mini_options_overlaid_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://c12yb7hrfdhyp"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://cikf3o5omnunl" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/mini_options_overlaid_menu.tscn" id="1_q7e1f"] 4 | [ext_resource type="PackedScene" uid="uid://bxo8rxu1kjj4a" path="res://scenes/menus/options_menu/mini_options_menu_with_reset.tscn" id="2_e6soq"] 5 | 6 | [node name="MiniOptionsOverlaidMenu" instance=ExtResource("1_q7e1f")] 7 | menu_scene = ExtResource("2_e6soq") 8 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/overlaid_menu.gd: -------------------------------------------------------------------------------- 1 | extends OverlaidMenu 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/overlaid_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://bd2eta8vbys2h 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/overlaid_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://ds126vq82ocu8"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://wny2d8dvp3ok" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu.tscn" id="1_x1aey"] 4 | [ext_resource type="Script" uid="uid://bd2eta8vbys2h" path="res://scenes/overlaid_menus/overlaid_menu.gd" id="2_01cvp"] 5 | 6 | [node name="OverlaidMenu" instance=ExtResource("1_x1aey")] 7 | script = ExtResource("2_01cvp") 8 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/overlaid_menu_container.gd: -------------------------------------------------------------------------------- 1 | extends OverlaidMenuContainer 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/overlaid_menu_container.gd.uid: -------------------------------------------------------------------------------- 1 | uid://smm4b6lhu518 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/overlaid_menu_container.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=3 format=3 uid="uid://c173qjodv4ti7"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://bqqngki8bm3iq" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/overlaid_menu_container.tscn" id="1_y6ien"] 4 | [ext_resource type="Script" uid="uid://smm4b6lhu518" path="res://scenes/overlaid_menus/overlaid_menu_container.gd" id="2_7kq66"] 5 | 6 | [node name="OverlaidMenuContainer" instance=ExtResource("1_y6ien")] 7 | script = ExtResource("2_7kq66") 8 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/pause_menu.gd: -------------------------------------------------------------------------------- 1 | extends PauseMenu 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/pause_menu.gd.uid: -------------------------------------------------------------------------------- 1 | uid://dtj4yuy0g8p8m 2 | -------------------------------------------------------------------------------- /scenes/overlaid_menus/pause_menu.tscn: -------------------------------------------------------------------------------- 1 | [gd_scene load_steps=4 format=3 uid="uid://b51ffq7jnmic5"] 2 | 3 | [ext_resource type="PackedScene" uid="uid://b5cd6sa8qq4vc" path="res://addons/maaacks_game_template/base/scenes/overlaid_menu/menus/pause_menu.tscn" id="1_xqxoo"] 4 | [ext_resource type="Script" uid="uid://dtj4yuy0g8p8m" path="res://scenes/overlaid_menus/pause_menu.gd" id="2_jotxm"] 5 | [ext_resource type="PackedScene" uid="uid://c12yb7hrfdhyp" path="res://scenes/overlaid_menus/mini_options_overlaid_menu.tscn" id="3_ggfh4"] 6 | 7 | [node name="PauseMenu" instance=ExtResource("1_xqxoo")] 8 | script = ExtResource("2_jotxm") 9 | options_packed_scene = ExtResource("3_ggfh4") 10 | main_menu_scene = "res://scenes/menus/main_menu/main_menu_with_animations.tscn" 11 | -------------------------------------------------------------------------------- /scripts/game_state.gd.uid: -------------------------------------------------------------------------------- 1 | uid://c37p5y442frcd 2 | -------------------------------------------------------------------------------- /scripts/level_list_state_manager.gd: -------------------------------------------------------------------------------- 1 | extends LevelListManager 2 | 3 | func set_current_level_id(value : int) -> void: 4 | super.set_current_level_id(value) 5 | GameState.level_reached(value) 6 | 7 | func get_current_level_id() -> int: 8 | current_level_id = GameState.get_current_level() if force_level == -1 else force_level 9 | return current_level_id 10 | 11 | func _advance_level() -> bool: 12 | var _advanced := super._advance_level() 13 | GameState.set_current_level(current_level_id) 14 | return _advanced 15 | -------------------------------------------------------------------------------- /scripts/level_list_state_manager.gd.uid: -------------------------------------------------------------------------------- 1 | uid://ultbh4wcm8t5 2 | -------------------------------------------------------------------------------- /scripts/level_state.gd: -------------------------------------------------------------------------------- 1 | class_name LevelState 2 | extends Resource 3 | 4 | @export var color : Color 5 | @export var tutorial_read : bool = false 6 | -------------------------------------------------------------------------------- /scripts/level_state.gd.uid: -------------------------------------------------------------------------------- 1 | uid://cao8qecd102j2 2 | --------------------------------------------------------------------------------