├── .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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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 | 
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 | [](https://youtu.be/U9CB3vKINVw)
4 | [](https://youtu.be/-QWJnZ8bVdk)
5 | [](https://youtu.be/SBE4icfXYRA)
6 | [](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 |
--------------------------------------------------------------------------------