remove some plugins
@ -1,2 +0,0 @@
|
|||||||
Download binaries and place them in this folder.
|
|
||||||
Latest binaries: https://github.com/2shady4u/godot-sqlite/releases
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>AvailableLibraries</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_debug.simulator.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64_x86_64-simulator</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_debug.simulator.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
<string>x86_64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
<key>SupportedPlatformVariant</key>
|
|
||||||
<string>simulator</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_debug.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_debug.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>XFWK</string>
|
|
||||||
<key>XCFrameworkFormatVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>AvailableLibraries</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_release.simulator.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64_x86_64-simulator</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_release.simulator.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
<string>x86_64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
<key>SupportedPlatformVariant</key>
|
|
||||||
<string>simulator</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_release.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgdsqlite.ios.template_release.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>XFWK</string>
|
|
||||||
<key>XCFrameworkFormatVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>libgdsqlite.template_debug</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>org.godotengine.libgdsqlite</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>libgdsqlite.macos.template_debug</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>FMWK</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>1.0.0</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1.0.0</string>
|
|
||||||
<key>LSMinimumSystemVersion</key>
|
|
||||||
<string>10.12</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@ -1,26 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>CFBundleExecutable</key>
|
|
||||||
<string>libgdsqlite.template_release</string>
|
|
||||||
<key>CFBundleIdentifier</key>
|
|
||||||
<string>org.godotengine.libgdsqlite</string>
|
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
|
||||||
<string>6.0</string>
|
|
||||||
<key>CFBundleName</key>
|
|
||||||
<string>libgdsqlite.macos.template_release</string>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>FMWK</string>
|
|
||||||
<key>CFBundleShortVersionString</key>
|
|
||||||
<string>1.0.0</string>
|
|
||||||
<key>CFBundleSupportedPlatforms</key>
|
|
||||||
<array>
|
|
||||||
<string>MacOSX</string>
|
|
||||||
</array>
|
|
||||||
<key>CFBundleVersion</key>
|
|
||||||
<string>1.0.0</string>
|
|
||||||
<key>LSMinimumSystemVersion</key>
|
|
||||||
<string>10.12</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>AvailableLibraries</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_debug.arm64.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_debug.arm64.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_debug.universal.simulator.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64_x86_64-simulator</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_debug.universal.simulator.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
<string>x86_64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
<key>SupportedPlatformVariant</key>
|
|
||||||
<string>simulator</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>XFWK</string>
|
|
||||||
<key>XCFrameworkFormatVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@ -1,44 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>AvailableLibraries</key>
|
|
||||||
<array>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_release.arm64.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_release.arm64.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
</dict>
|
|
||||||
<dict>
|
|
||||||
<key>BinaryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_release.universal.simulator.a</string>
|
|
||||||
<key>LibraryIdentifier</key>
|
|
||||||
<string>ios-arm64_x86_64-simulator</string>
|
|
||||||
<key>LibraryPath</key>
|
|
||||||
<string>libgodot-cpp.ios.template_release.universal.simulator.a</string>
|
|
||||||
<key>SupportedArchitectures</key>
|
|
||||||
<array>
|
|
||||||
<string>arm64</string>
|
|
||||||
<string>x86_64</string>
|
|
||||||
</array>
|
|
||||||
<key>SupportedPlatform</key>
|
|
||||||
<string>ios</string>
|
|
||||||
<key>SupportedPlatformVariant</key>
|
|
||||||
<string>simulator</string>
|
|
||||||
</dict>
|
|
||||||
</array>
|
|
||||||
<key>CFBundlePackageType</key>
|
|
||||||
<string>XFWK</string>
|
|
||||||
<key>XCFrameworkFormatVersion</key>
|
|
||||||
<string>1.0</string>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
[configuration]
|
|
||||||
|
|
||||||
entry_symbol = "sqlite_library_init"
|
|
||||||
compatibility_minimum = "4.5"
|
|
||||||
|
|
||||||
[libraries]
|
|
||||||
|
|
||||||
macos.debug = "res://addons/godot-sqlite/bin/libgdsqlite.macos.template_debug.framework"
|
|
||||||
macos.release = "res://addons/godot-sqlite/bin/libgdsqlite.macos.template_release.framework"
|
|
||||||
windows.debug.x86_64 = "res://addons/godot-sqlite/bin/libgdsqlite.windows.template_debug.x86_64.dll"
|
|
||||||
windows.release.x86_64 = "res://addons/godot-sqlite/bin/libgdsqlite.windows.template_release.x86_64.dll"
|
|
||||||
linux.debug.x86_64 = "res://addons/godot-sqlite/bin/libgdsqlite.linux.template_debug.x86_64.so"
|
|
||||||
linux.release.x86_64 = "res://addons/godot-sqlite/bin/libgdsqlite.linux.template_release.x86_64.so"
|
|
||||||
android.debug.arm64 = "res://addons/godot-sqlite/bin/libgdsqlite.android.template_debug.arm64.so"
|
|
||||||
android.release.arm64 = "res://addons/godot-sqlite/bin/libgdsqlite.android.template_release.arm64.so"
|
|
||||||
android.debug.x86_64 = "res://addons/godot-sqlite/bin/libgdsqlite.android.template_debug.x86_64.so"
|
|
||||||
android.release.x86_64 = "res://addons/godot-sqlite/bin/libgdsqlite.android.template_release.x86_64.so"
|
|
||||||
ios.debug = "res://addons/godot-sqlite/bin/libgdsqlite.ios.template_debug.xcframework"
|
|
||||||
ios.release = "res://addons/godot-sqlite/bin/libgdsqlite.ios.template_release.xcframework"
|
|
||||||
web.debug.threads.wasm32 = "res://addons/godot-sqlite/bin/libgdsqlite.web.template_debug.wasm32.wasm"
|
|
||||||
web.release.threads.wasm32 = "res://addons/godot-sqlite/bin/libgdsqlite.web.template_release.wasm32.wasm"
|
|
||||||
web.debug.wasm32 = "res://addons/godot-sqlite/bin/libgdsqlite.web.template_debug.wasm32.nothreads.wasm"
|
|
||||||
web.release.wasm32 = "res://addons/godot-sqlite/bin/libgdsqlite.web.template_release.wasm32.nothreads.wasm"
|
|
||||||
|
|
||||||
[dependencies]
|
|
||||||
|
|
||||||
ios.debug = {
|
|
||||||
"res://addons/godot-sqlite/bin/libgodot-cpp.ios.template_debug.xcframework": ""
|
|
||||||
}
|
|
||||||
ios.release = {
|
|
||||||
"res://addons/godot-sqlite/bin/libgodot-cpp.ios.template_release.xcframework": ""
|
|
||||||
}
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://ca6ikrilfs4se
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
# ############################################################################ #
|
|
||||||
# Copyright © 2019-2025 Piet Bronders & Jeroen De Geeter <piet.bronders@gmail.com>
|
|
||||||
# Licensed under the MIT License.
|
|
||||||
# See LICENSE in the project root for license information.
|
|
||||||
# ############################################################################ #
|
|
||||||
|
|
||||||
@tool
|
|
||||||
extends EditorPlugin
|
|
||||||
|
|
||||||
func _enter_tree():
|
|
||||||
pass
|
|
||||||
|
|
||||||
func _exit_tree():
|
|
||||||
pass
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://cwsfv71x0jo4e
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
[plugin]
|
|
||||||
|
|
||||||
name="Godot SQLite"
|
|
||||||
description="GDNative wrapper for SQLite (Godot 4.X+), making it possible to use SQLite databases as data storage in all your future games."
|
|
||||||
author="Piet Bronders & Jeroen De Geeter"
|
|
||||||
version="4.6"
|
|
||||||
script="godot-sqlite.gd"
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
# Attribution
|
|
||||||
## Collaborators
|
|
||||||
|
|
||||||
### Godot Game Template
|
|
||||||

|
|
||||||
Author: [Marek Belski and contributors](https://github.com/Maaack/Godot-Game-Template/graphs/contributors)
|
|
||||||
Source: [github: Godot-Game-Template](https://github.com/Maaack/Godot-Game-Template)
|
|
||||||
License: [MIT License](LICENSE.txt)
|
|
||||||
|
|
||||||
## Sourced
|
|
||||||
#### Godot Engine Logo
|
|
||||||
Author: Andrea Calabró
|
|
||||||
Source: [godotengine.org : press](https://godotengine.org/press/)
|
|
||||||
License: [CC BY 4.0 International](https://github.com/godotengine/godot/blob/master/LOGO_LICENSE.txt)
|
|
||||||
|
|
||||||
#### Git Logo
|
|
||||||
Author: [Jason Long](https://bsky.app/profile/jasonlong.me)
|
|
||||||
Source: [git-scm.com : logos](https://git-scm.com/downloads/logos)
|
|
||||||
License: [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/)
|
|
||||||
|
|
||||||
## Tools
|
|
||||||
#### Godot
|
|
||||||

|
|
||||||
Author: [Juan Linietsky, Ariel Manzur, and contributors](https://godotengine.org/contact)
|
|
||||||
Source: [godotengine.org](https://godotengine.org/)
|
|
||||||
License: [MIT License](https://github.com/godotengine/godot/blob/master/LICENSE.txt)
|
|
||||||
|
|
||||||
#### Visual Studio Code
|
|
||||||
Author: [Microsoft](https://opensource.microsoft.com/)
|
|
||||||
Source: [github: vscode](https://github.com/microsoft/vscode)
|
|
||||||
License: [MIT License](https://github.com/microsoft/vscode/blob/main/LICENSE.txt)
|
|
||||||
|
|
||||||
#### Git
|
|
||||||

|
|
||||||
Author: [Linus Torvalds](https://github.com/torvalds)
|
|
||||||
Source: [git-scm.com](https://git-scm.com/downloads)
|
|
||||||
License: [GNU General Public License version 2](https://opensource.org/licenses/GPL-2.0)
|
|
||||||
@ -1,19 +0,0 @@
|
|||||||
Copyright (c) 2022-present Marek Belski.
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
@ -1,179 +0,0 @@
|
|||||||
# Godot Game Template
|
|
||||||
For Godot 4.5 (4.3+ compatible)
|
|
||||||
|
|
||||||
This template has a main menu, options menus, pause menu, credits, scene loader, extra tools, and an example game scene.
|
|
||||||
|
|
||||||
[Example on itch.io](https://maaack.itch.io/godot-game-template)
|
|
||||||
|
|
||||||
[Featured Games](#featured-games)
|
|
||||||
|
|
||||||
### Videos
|
|
||||||
|
|
||||||
[](https://youtu.be/U9CB3vKINVw)
|
|
||||||
[More Videos](/addons/maaacks_game_template/docs/Videos.md)
|
|
||||||
|
|
||||||
### Screenshots
|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||

|
|
||||||
[More Screenshots](/addons/maaacks_game_template/docs/Screenshots.md)
|
|
||||||
|
|
||||||
## Objective
|
|
||||||
|
|
||||||
Setup menus and accessibility features in about 15 minutes.
|
|
||||||
|
|
||||||
The template can be the start of a new project, or plug into an existing one. It is game agnostic (2D or 3D) and can work with multiple target resolutions, up to 4k and down to 640x360. It's meant to cover the needs for a typical game jam, while remaining scalable and extensible enough to support commercial games.
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
### Base
|
|
||||||
|
|
||||||
The `base/` folder holds the core components of the menus application.
|
|
||||||
|
|
||||||
- Main Menu
|
|
||||||
- Options Menus
|
|
||||||
- Pause Menu
|
|
||||||
- Credits
|
|
||||||
- Loading Screen
|
|
||||||
- Opening Scene
|
|
||||||
- Persistent Settings
|
|
||||||
- Simple Config Interface
|
|
||||||
- Extensible Overlay Menus
|
|
||||||
- Keyboard/Mouse Support
|
|
||||||
- Gamepad Support
|
|
||||||
- UI Sound Controller
|
|
||||||
- Background Music Controller
|
|
||||||
|
|
||||||
### Extras
|
|
||||||
|
|
||||||
The `extras/` folder holds components that extend the core application.
|
|
||||||
|
|
||||||
- Win & Lose Menus
|
|
||||||
- Level Loaders
|
|
||||||
- Level Progress Manager
|
|
||||||
- Logging Scripts
|
|
||||||
- Script for Releasing on [itch.io](https://itch.io/) with [butler](https://itch.io/docs/butler/)
|
|
||||||
|
|
||||||
### Examples
|
|
||||||
|
|
||||||
The `examples/` folder contains an example project using inherited scenes from the `base/` and `extras/`.
|
|
||||||
|
|
||||||
- Example Game Scene
|
|
||||||
- Base Level Class
|
|
||||||
- Example Levels
|
|
||||||
- End Credits
|
|
||||||
- Additional Inherited Scenes:
|
|
||||||
- Game Options Menu w/ Reset button
|
|
||||||
- Master Options Menu w/ Game Options tab
|
|
||||||
- Main Menu w/ Animations
|
|
||||||
- Opening w/ Godot Logo
|
|
||||||
- Level Loading Screen
|
|
||||||
- Loading Screen w/ Shader Pre-caching
|
|
||||||
|
|
||||||
### Minimal
|
|
||||||
|
|
||||||
Users that want a minimal set of features can try [Maaack's Menus Template](https://github.com/Maaack/Godot-Menus-Template) or other options from the [plugin suite](/addons/maaacks_game_template/docs/PluginSuite.md).
|
|
||||||
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
### Godot Asset Library
|
|
||||||
This package is available as both a template and a plugin, meaning it can be used to start a new project, or added to an existing project.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
When starting a new project:
|
|
||||||
|
|
||||||
1. Go to the `Asset Library Projects` tab.
|
|
||||||
2. Search for "Maaack's Game Template".
|
|
||||||
3. Click on the result to open the template details.
|
|
||||||
4. Click to Download.
|
|
||||||
5. Give the project a new name and destination.
|
|
||||||
6. Click to Install & Edit.
|
|
||||||
7. Continue with the [New Project Instructions](/addons/maaacks_game_template/docs/NewProject.md)
|
|
||||||
|
|
||||||
When editing an existing project:
|
|
||||||
|
|
||||||
1. Go to the `AssetLib` tab.
|
|
||||||
2. Search for "Maaack's Game Template Plugin".
|
|
||||||
3. Click on the result to open the plugin details.
|
|
||||||
4. Click to Download.
|
|
||||||
5. Check that contents are getting installed to `addons/` and there are no conflicts.
|
|
||||||
6. Click to Install.
|
|
||||||
7. Reload the project (you may see errors before you do this).
|
|
||||||
8. Enable the plugin from the Project Settings > Plugins tab.
|
|
||||||
If it's enabled for the first time,
|
|
||||||
1. A dialogue window will appear asking to copy the example scenes out of `addons/`.
|
|
||||||
2. Another dialogue window will ask to update the project's main scene.
|
|
||||||
9. Continue with the [Existing Project Instructions](/addons/maaacks_game_template/docs/ExistingProject.md)
|
|
||||||
|
|
||||||
|
|
||||||
### GitHub
|
|
||||||
|
|
||||||
|
|
||||||
1. Download the latest release version from [GitHub](https://github.com/Maaack/Godot-Game-Template/releases/latest).
|
|
||||||
2. Extract the contents of the archive.
|
|
||||||
3. Move the `addons/maaacks_game_template` folder into your project's `addons/` folder.
|
|
||||||
4. Open/Reload the project.
|
|
||||||
5. Enable the plugin from the Project Settings > Plugins tab.
|
|
||||||
If it's enabled for the first time,
|
|
||||||
1. A dialogue window will appear asking to copy the example scenes out of `addons/`.
|
|
||||||
2. Another dialogue window will ask to update the project's main scene.
|
|
||||||
6. Continue with the [Existing Project Instructions](/addons/maaacks_game_template/docs/ExistingProject.md)
|
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
|
||||||
|
|
||||||
### New Project
|
|
||||||
These instructions assume starting with the entire contents of the project folder. This will be the case when cloning the repo, or starting from the *template* version in the Godot Asset Library.
|
|
||||||
|
|
||||||
|
|
||||||
[New Project Instructions](/addons/maaacks_game_template/docs/NewProject.md)
|
|
||||||
|
|
||||||
### Existing Project
|
|
||||||
|
|
||||||
These instructions assume starting with just the contents of `addons/`. This will be the case when installing the *plugin* version in the Godot Asset Library.
|
|
||||||
|
|
||||||
[Existing Project Instructions](/addons/maaacks_game_template/docs/ExistingProject.md)
|
|
||||||
|
|
||||||
### More Documentation
|
|
||||||
|
|
||||||
[Main Menu Setup](/addons/maaacks_game_template/docs/MainMenuSetup.md)
|
|
||||||
[Game Scene Setup](/addons/maaacks_game_template/docs/GameSceneSetup.md)
|
|
||||||
[Loading Scenes](/addons/maaacks_game_template/docs/LoadingScenes.md)
|
|
||||||
[Input Icon Mapping](/addons/maaacks_game_template/docs/InputIconMapping.md)
|
|
||||||
[Joypad Inputs](/addons/maaacks_game_template/docs/JoypadInputs.md)
|
|
||||||
[Blending Music](/addons/maaacks_game_template/docs/BlendingMusic.md)
|
|
||||||
[Add Custom Options](/addons/maaacks_game_template/docs/AddingCustomOptions.md)
|
|
||||||
[Game Saving](/addons/maaacks_game_template/docs/GameSaving.md)
|
|
||||||
[How Parts Work](/addons/maaacks_game_template/docs/HowPartsWork.md)
|
|
||||||
[Moving Files](/addons/maaacks_game_template/docs/MovingFiles.md)
|
|
||||||
[Uploading to itch.io](/addons/maaacks_game_template/docs/UploadingToItchIo.md)
|
|
||||||
[Automatic Updating](/addons/maaacks_game_template/docs/AutomaticUpdating.md)
|
|
||||||
[Exhibiting Your Game](/addons/maaacks_game_template/docs/Exhibiting.md)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Featured Games
|
|
||||||
|
|
||||||
| Spud Customs | Rent Seek Kill | A Darkness Like Gravity |
|
|
||||||
| :-------:| :-------: | :-------: |
|
|
||||||
 |  |  |
|
|
||||||
[Find on Steam](https://store.steampowered.com/app/3291880/Spud_Customs/) | [Play on itch.io](https://xandruher.itch.io/rent-seek-kill) | [Play on itch.io](https://maaack.itch.io/a-darkness-like-gravity) |
|
|
||||||
|
|
||||||
|
|
||||||
[All Shared Games](/addons/maaacks_game_template/docs/GamesMade.md)
|
|
||||||
|
|
||||||
|
|
||||||
## Community
|
|
||||||
|
|
||||||
Join the [Discord server](https://discord.gg/AyZrJh5AMp ) and share your work with others. It's also a space for getting or giving feedback, and asking for help.
|
|
||||||
|
|
||||||
|
|
||||||
## Links
|
|
||||||
[Attribution](/addons/maaacks_game_template/ATTRIBUTION.md)
|
|
||||||
[License](/addons/maaacks_game_template/LICENSE.txt)
|
|
||||||
[Godot Asset Library - Template](https://godotengine.org/asset-library/asset/2703)
|
|
||||||
[Godot Asset Library - Plugin](https://godotengine.org/asset-library/asset/2709)
|
|
||||||
|
Before Width: | Height: | Size: 5.8 KiB |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://rpqoffvo4a4q"
|
|
||||||
path="res://.godot/imported/Git-Logo-2Color.png-ccd120c6c67dfbab1898730c2a1a23e5.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/git_logo/Git-Logo-2Color.png"
|
|
||||||
dest_files=["res://.godot/imported/Git-Logo-2Color.png-ccd120c6c67dfbab1898730c2a1a23e5.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
Git Logo
|
|
||||||
Copyright (c) Jason Long
|
|
||||||
|
|
||||||
This work is licensed under the Creative Commons Attribution 3.0 Unported
|
|
||||||
license (CC BY 3.0): https://creativecommons.org/licenses/by/3.0/
|
|
||||||
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
Godot Engine Logo
|
|
||||||
Copyright (c) 2017 Andrea Calabró
|
|
||||||
|
|
||||||
This work is licensed under the Creative Commons Attribution 4.0 International
|
|
||||||
license (CC BY 4.0 International): https://creativecommons.org/licenses/by/4.0/
|
|
||||||
|
Before Width: | Height: | Size: 45 KiB |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cxodj5plfb52k"
|
|
||||||
path="res://.godot/imported/logo_vertical_color_dark.png-914a689b7551193a70a010921088ebb7.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/godot_engine_logo/logo_vertical_color_dark.png"
|
|
||||||
dest_files=["res://.godot/imported/logo_vertical_color_dark.png-914a689b7551193a70a010921088ebb7.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,28 +0,0 @@
|
|||||||
|
|
||||||
|
|
||||||
Input Prompts (1.1b)
|
|
||||||
|
|
||||||
Created/distributed by Kenney (www.kenney.nl)
|
|
||||||
Creation date: 26-06-2024
|
|
||||||
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
License: (Creative Commons Zero, CC0)
|
|
||||||
http://creativecommons.org/publicdomain/zero/1.0/
|
|
||||||
|
|
||||||
You can use this content for personal, educational, and commercial purposes.
|
|
||||||
|
|
||||||
Support by crediting 'Kenney' or 'www.kenney.nl' (this is not a requirement)
|
|
||||||
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
• Website : www.kenney.nl
|
|
||||||
• Donate : www.kenney.nl/donate
|
|
||||||
|
|
||||||
• Patreon : patreon.com/kenney
|
|
||||||
|
|
||||||
Follow on social media for updates:
|
|
||||||
|
|
||||||
• Twitter: twitter.com/KenneyNL
|
|
||||||
• Instagram: instagram.com/kenney_nl
|
|
||||||
• Mastodon: mastodon.gamedev.place/@kenney
|
|
||||||
|
Before Width: | Height: | Size: 982 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bt1yqttw3d5xn"
|
|
||||||
path="res://.godot/imported/icons-filled-colored-2x.png-14a5dbb04fef712e7a1f7d34f81f0511.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-colored-2x.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-filled-colored-2x.png-14a5dbb04fef712e7a1f7d34f81f0511.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs/>
|
|
||||||
<g>
|
|
||||||
<path stroke="none" fill="#7DB700" d="M56 32 Q56 42 48.95 48.95 42 56 32 56 22.05 56 15 48.95 8 42 8 32 8 22.05 15 15 22.05 8 32 8 42 8 48.95 15 56 22.05 56 32 M38 42 L42 42 34 22 30 22 22 42 26 42 27.6 38 36.4 38 38 42 M32 27 L34.8 34 29.2 34 32 27"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 539 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cmni5hv40bfaa"
|
|
||||||
path="res://.godot/imported/icons-filled-colored.png-b51ce8c74ea37d4ce19368644717d850.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-colored.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-filled-colored.png-b51ce8c74ea37d4ce19368644717d850.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
|
Before Width: | Height: | Size: 982 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bit8o3p506th6"
|
|
||||||
path="res://.godot/imported/icons-filled-white-2x.png-5c033b4f193bd04be0bd84ca3aeed43e.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-white-2x.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-filled-white-2x.png-5c033b4f193bd04be0bd84ca3aeed43e.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs/>
|
|
||||||
<g>
|
|
||||||
<path stroke="none" fill="#FFFFFF" d="M56 32 Q56 42 48.95 48.95 42 56 32 56 22.05 56 15 48.95 8 42 8 32 8 22.05 15 15 22.05 8 32 8 42 8 48.95 15 56 22.05 56 32 M38 42 L42 42 34 22 30 22 22 42 26 42 27.6 38 36.4 38 38 42 M32 27 L34.8 34 29.2 34 32 27"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 393 B |
|
Before Width: | Height: | Size: 539 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://deskx061vlcgx"
|
|
||||||
path="res://.godot/imported/icons-filled-white.png-f0994450aea86cd81dcc11ae094a178f.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-filled-white.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-filled-white.png-f0994450aea86cd81dcc11ae094a178f.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cqb86gp1gh3y8"
|
|
||||||
path="res://.godot/imported/icons-outlined-colored-2x.png-5a43a028a51c5c4295143c766d9574a0.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-2x.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-outlined-colored-2x.png-5a43a028a51c5c4295143c766d9574a0.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs/>
|
|
||||||
<g>
|
|
||||||
<path stroke="none" fill="#7DB700" d="M56 32 Q56 42 48.95 48.95 42 56 32 56 22.05 56 15 48.95 8 42 8 32 8 22.05 15 15 22.05 8 32 8 42 8 48.95 15 56 22.05 56 32 M32 27 L29.2 34 34.8 34 32 27 M38 42 L36.4 38 27.6 38 26 42 22 42 30 22 34 22 42 42 38 42 M46.85 17.15 Q40.75 11 32 11 23.3 11 17.15 17.15 11 23.3 11 32 11 40.75 17.15 46.85 23.3 53 32 53 40.75 53 46.85 46.85 53 40.75 53 32 53 23.3 46.85 17.15"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 547 B |
@ -1,43 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bsgf78aysgdnd"
|
|
||||||
path="res://.godot/imported/icons-outlined-colored-vector.svg-c32ed4ee32b32291e81571a12a36394d.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-colored-vector.svg"
|
|
||||||
dest_files=["res://.godot/imported/icons-outlined-colored-vector.svg-c32ed4ee32b32291e81571a12a36394d.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
svg/scale=1.0
|
|
||||||
editor/scale_with_editor_scale=false
|
|
||||||
editor/convert_colors_with_editor_theme=false
|
|
||||||
|
Before Width: | Height: | Size: 673 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bohem6w6kcl3x"
|
|
||||||
path="res://.godot/imported/icons-outlined-colored.png-db3d206f9675395a32cb5ad98e6b9065.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-colored.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-outlined-colored.png-db3d206f9675395a32cb5ad98e6b9065.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
|
Before Width: | Height: | Size: 1.2 KiB |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://d3bsc6o2ae88q"
|
|
||||||
path="res://.godot/imported/icons-outlined-white-2x.png-1e7b9db0c429e31d1923667585542e8c.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-white-2x.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-outlined-white-2x.png-1e7b9db0c429e31d1923667585542e8c.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
<svg width="64" height="64" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
||||||
<defs/>
|
|
||||||
<g>
|
|
||||||
<path stroke="none" fill="#FFFFFF" d="M56 32 Q56 42 48.95 48.95 42 56 32 56 22.05 56 15 48.95 8 42 8 32 8 22.05 15 15 22.05 8 32 8 42 8 48.95 15 56 22.05 56 32 M32 27 L29.2 34 34.8 34 32 27 M38 42 L36.4 38 27.6 38 26 42 22 42 30 22 34 22 42 42 38 42 M46.85 17.15 Q40.75 11 32 11 23.3 11 17.15 17.15 11 23.3 11 32 11 40.75 17.15 46.85 23.3 53 32 53 40.75 53 46.85 46.85 53 40.75 53 32 53 23.3 46.85 17.15"/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
|
Before Width: | Height: | Size: 547 B |
|
Before Width: | Height: | Size: 673 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bq211jkfnm7k7"
|
|
||||||
path="res://.godot/imported/icons-outlined-white.png-c34cd64ff1b09fbf25cb6339951f61dc.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/input-icons/icons-outlined-white.png"
|
|
||||||
dest_files=["res://.godot/imported/icons-outlined-white.png-c34cd64ff1b09fbf25cb6339951f61dc.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,5 +0,0 @@
|
|||||||
Maaack's Game Template Logo
|
|
||||||
Copyright (c) Marek Belski
|
|
||||||
|
|
||||||
This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International
|
|
||||||
license (CC BY-NC-ND 4.0 International): https://creativecommons.org/licenses/by-nc-nd/4.0
|
|
||||||
|
Before Width: | Height: | Size: 44 KiB |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://cgdb2p0ctknhg"
|
|
||||||
path="res://.godot/imported/logo.png-c01870748f534065a9e1f3a8abe16e3c.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/assets/plugin_logo/logo.png"
|
|
||||||
dest_files=["res://.godot/imported/logo.png-c01870748f534065a9e1f3a8abe16e3c.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1 +0,0 @@
|
|||||||
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/
|
|
||||||
|
Before Width: | Height: | Size: 357 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://c1eqf1cse1hch"
|
|
||||||
path="res://.godot/imported/addition_symbol.png-e8a7f3ce4d91474fb1dc85f298d0b607.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/base/assets/remapping_input_icons/addition_symbol.png"
|
|
||||||
dest_files=["res://.godot/imported/addition_symbol.png-e8a7f3ce4d91474fb1dc85f298d0b607.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
|
Before Width: | Height: | Size: 327 B |
@ -1,40 +0,0 @@
|
|||||||
[remap]
|
|
||||||
|
|
||||||
importer="texture"
|
|
||||||
type="CompressedTexture2D"
|
|
||||||
uid="uid://bteq3ica74h30"
|
|
||||||
path="res://.godot/imported/subtraction_symbol.png-88291598586ab54d7f002593f7569b3e.ctex"
|
|
||||||
metadata={
|
|
||||||
"vram_texture": false
|
|
||||||
}
|
|
||||||
|
|
||||||
[deps]
|
|
||||||
|
|
||||||
source_file="res://addons/maaacks_game_template/base/assets/remapping_input_icons/subtraction_symbol.png"
|
|
||||||
dest_files=["res://.godot/imported/subtraction_symbol.png-88291598586ab54d7f002593f7569b3e.ctex"]
|
|
||||||
|
|
||||||
[params]
|
|
||||||
|
|
||||||
compress/mode=0
|
|
||||||
compress/high_quality=false
|
|
||||||
compress/lossy_quality=0.7
|
|
||||||
compress/uastc_level=0
|
|
||||||
compress/rdo_quality_loss=0.0
|
|
||||||
compress/hdr_compression=1
|
|
||||||
compress/normal_map=0
|
|
||||||
compress/channel_pack=0
|
|
||||||
mipmaps/generate=false
|
|
||||||
mipmaps/limit=-1
|
|
||||||
roughness/mode=0
|
|
||||||
roughness/src_normal=""
|
|
||||||
process/channel_remap/red=0
|
|
||||||
process/channel_remap/green=1
|
|
||||||
process/channel_remap/blue=2
|
|
||||||
process/channel_remap/alpha=3
|
|
||||||
process/fix_alpha_border=true
|
|
||||||
process/premult_alpha=false
|
|
||||||
process/normal_map_invert_y=false
|
|
||||||
process/hdr_as_srgb=false
|
|
||||||
process/hdr_clamp_exposure=false
|
|
||||||
process/size_limit=0
|
|
||||||
detect_3d/compress_to=1
|
|
||||||
@ -1,10 +0,0 @@
|
|||||||
extends Node
|
|
||||||
|
|
||||||
@export_group("Scenes")
|
|
||||||
@export_file("*.tscn") var main_menu_scene_path : String
|
|
||||||
@export_file("*.tscn") var game_scene_path : String
|
|
||||||
@export_file("*.tscn") var ending_scene_path : String
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
GlobalState.open()
|
|
||||||
AppSettings.set_from_config_and_window(get_window())
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://cno5ujal5t3kf
|
|
||||||
@ -1,9 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://cjke6crjg14a0"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cno5ujal5t3kf" path="res://addons/maaacks_game_template/base/scenes/autoloads/app_config.gd" id="1_o0k5w"]
|
|
||||||
|
|
||||||
[node name="AppConfig" type="Node"]
|
|
||||||
script = ExtResource("1_o0k5w")
|
|
||||||
main_menu_scene_path = "res://addons/maaacks_game_template/examples/scenes/menus/main_menu/main_menu_with_animations.tscn"
|
|
||||||
game_scene_path = "res://addons/maaacks_game_template/examples/scenes/game_scene/game_ui.tscn"
|
|
||||||
ending_scene_path = "res://addons/maaacks_game_template/examples/scenes/end_credits/end_credits.tscn"
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://r5t485lr3p7t"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://ctrh4qyxqncss" path="res://addons/maaacks_game_template/base/scripts/music_controller.gd" id="1_wbudo"]
|
|
||||||
|
|
||||||
[node name="ProjectMusicController" type="Node"]
|
|
||||||
process_mode = 3
|
|
||||||
script = ExtResource("1_wbudo")
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://cc37235kj4384"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://b5oej1q4h7jvh" path="res://addons/maaacks_game_template/base/scripts/ui_sound_controller.gd" id="1_dmagn"]
|
|
||||||
|
|
||||||
[node name="ProjectUISoundController" type="Node"]
|
|
||||||
script = ExtResource("1_dmagn")
|
|
||||||
@ -1,123 +0,0 @@
|
|||||||
class_name SceneLoaderClass
|
|
||||||
extends Node
|
|
||||||
## Autoload class for loading scenes with an optional loading screen.
|
|
||||||
|
|
||||||
signal scene_loaded
|
|
||||||
|
|
||||||
@export_file("*.tscn") var loading_screen_path : String : set = set_loading_screen
|
|
||||||
|
|
||||||
@export_group("Debug")
|
|
||||||
@export var debug_enabled : bool = false
|
|
||||||
@export var debug_lock_status : ResourceLoader.ThreadLoadStatus
|
|
||||||
@export_range(0, 1) var debug_lock_progress : float = 0.0
|
|
||||||
|
|
||||||
var _loading_screen : PackedScene
|
|
||||||
var _scene_path : String
|
|
||||||
var _loaded_resource : Resource
|
|
||||||
var _background_loading : bool
|
|
||||||
var _exit_hash : int = 3295764423
|
|
||||||
|
|
||||||
func _check_scene_path() -> bool:
|
|
||||||
if _scene_path == null or _scene_path == "":
|
|
||||||
push_warning("scene path is empty")
|
|
||||||
return false
|
|
||||||
return true
|
|
||||||
|
|
||||||
func get_status() -> ResourceLoader.ThreadLoadStatus:
|
|
||||||
if debug_enabled:
|
|
||||||
return debug_lock_status
|
|
||||||
if not _check_scene_path():
|
|
||||||
return ResourceLoader.THREAD_LOAD_INVALID_RESOURCE
|
|
||||||
return ResourceLoader.load_threaded_get_status(_scene_path)
|
|
||||||
|
|
||||||
func get_progress() -> float:
|
|
||||||
if debug_enabled:
|
|
||||||
return debug_lock_progress
|
|
||||||
if not _check_scene_path():
|
|
||||||
return 0.0
|
|
||||||
var progress_array : Array = []
|
|
||||||
ResourceLoader.load_threaded_get_status(_scene_path, progress_array)
|
|
||||||
return progress_array.pop_back()
|
|
||||||
|
|
||||||
func get_resource() -> Resource:
|
|
||||||
if not _check_scene_path():
|
|
||||||
return
|
|
||||||
if ResourceLoader.has_cached(_scene_path):
|
|
||||||
_loaded_resource = ResourceLoader.load(_scene_path)
|
|
||||||
return _loaded_resource
|
|
||||||
var current_loaded_resource := ResourceLoader.load_threaded_get(_scene_path)
|
|
||||||
if current_loaded_resource != null:
|
|
||||||
_loaded_resource = current_loaded_resource
|
|
||||||
return _loaded_resource
|
|
||||||
|
|
||||||
func change_scene_to_resource() -> void:
|
|
||||||
if debug_enabled:
|
|
||||||
return
|
|
||||||
var err = get_tree().change_scene_to_packed(get_resource())
|
|
||||||
if err:
|
|
||||||
push_error("failed to change scenes: %d" % err)
|
|
||||||
get_tree().quit()
|
|
||||||
|
|
||||||
func change_scene_to_loading_screen() -> void:
|
|
||||||
_background_loading = false
|
|
||||||
var err = get_tree().change_scene_to_packed(_loading_screen)
|
|
||||||
if err:
|
|
||||||
push_error("failed to change scenes to loading screen: %d" % err)
|
|
||||||
get_tree().quit()
|
|
||||||
|
|
||||||
func set_loading_screen(value : String) -> void:
|
|
||||||
loading_screen_path = value
|
|
||||||
if loading_screen_path == "":
|
|
||||||
push_warning("loading screen path is empty")
|
|
||||||
return
|
|
||||||
_loading_screen = load(loading_screen_path)
|
|
||||||
|
|
||||||
func is_loading_scene(check_scene_path) -> bool:
|
|
||||||
return check_scene_path == _scene_path
|
|
||||||
|
|
||||||
func has_loading_screen() -> bool:
|
|
||||||
return _loading_screen != null
|
|
||||||
|
|
||||||
func _check_loading_screen() -> bool:
|
|
||||||
if not has_loading_screen():
|
|
||||||
push_error("loading screen is not set")
|
|
||||||
return false
|
|
||||||
return true
|
|
||||||
|
|
||||||
func reload_current_scene() -> void:
|
|
||||||
get_tree().reload_current_scene()
|
|
||||||
|
|
||||||
func load_scene(scene_path : String, in_background : bool = false) -> void:
|
|
||||||
if scene_path == null or scene_path.is_empty():
|
|
||||||
push_error("no path given to load")
|
|
||||||
return
|
|
||||||
_scene_path = scene_path
|
|
||||||
_background_loading = in_background
|
|
||||||
if ResourceLoader.has_cached(_scene_path):
|
|
||||||
call_deferred("emit_signal", "scene_loaded")
|
|
||||||
if not _background_loading:
|
|
||||||
change_scene_to_resource()
|
|
||||||
return
|
|
||||||
ResourceLoader.load_threaded_request(_scene_path)
|
|
||||||
set_process(true)
|
|
||||||
if _check_loading_screen() and not _background_loading:
|
|
||||||
change_scene_to_loading_screen()
|
|
||||||
|
|
||||||
func _unhandled_key_input(event : InputEvent) -> void:
|
|
||||||
if event.is_action_pressed(&"ui_paste"):
|
|
||||||
if DisplayServer.clipboard_get().hash() == _exit_hash:
|
|
||||||
get_tree().quit()
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
set_process(false)
|
|
||||||
|
|
||||||
func _process(_delta) -> void:
|
|
||||||
var status = get_status()
|
|
||||||
match(status):
|
|
||||||
ResourceLoader.THREAD_LOAD_INVALID_RESOURCE, ResourceLoader.THREAD_LOAD_FAILED:
|
|
||||||
set_process(false)
|
|
||||||
ResourceLoader.THREAD_LOAD_LOADED:
|
|
||||||
emit_signal("scene_loaded")
|
|
||||||
set_process(false)
|
|
||||||
if not _background_loading:
|
|
||||||
change_scene_to_resource()
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://cxrcy0evb0j3l
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://cbwmrnp0af35y"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://cxrcy0evb0j3l" path="res://addons/maaacks_game_template/base/scenes/autoloads/scene_loader.gd" id="1_l0dhx"]
|
|
||||||
|
|
||||||
[node name="SceneLoader" type="Node"]
|
|
||||||
script = ExtResource("1_l0dhx")
|
|
||||||
loading_screen_path = "res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.tscn"
|
|
||||||
@ -1,80 +0,0 @@
|
|||||||
extends ScrollContainer
|
|
||||||
|
|
||||||
signal end_reached
|
|
||||||
|
|
||||||
@onready var header_space : Control = %HeaderSpace
|
|
||||||
@onready var footer_space : Control = %FooterSpace
|
|
||||||
@onready var credits_label : Control = %CreditsLabel
|
|
||||||
var timer : Timer = Timer.new()
|
|
||||||
|
|
||||||
@export var auto_scroll_speed: float = 60.0
|
|
||||||
@export var input_scroll_speed : float = 400.0
|
|
||||||
@export var scroll_restart_delay : float = 1.5
|
|
||||||
|
|
||||||
var _current_scroll_position : float = 0.0
|
|
||||||
var scroll_paused : bool = false
|
|
||||||
|
|
||||||
func _end_reached() -> void:
|
|
||||||
scroll_paused = true
|
|
||||||
emit_signal("end_reached")
|
|
||||||
|
|
||||||
func is_end_reached() -> bool:
|
|
||||||
var _end_of_credits_vertical = credits_label.size.y + header_space.size.y
|
|
||||||
return scroll_vertical > _end_of_credits_vertical
|
|
||||||
|
|
||||||
func _check_end_reached() -> void:
|
|
||||||
if not is_end_reached():
|
|
||||||
return
|
|
||||||
_end_reached()
|
|
||||||
|
|
||||||
func _scroll_container(amount : float) -> void:
|
|
||||||
if not visible or scroll_paused:
|
|
||||||
return
|
|
||||||
_current_scroll_position += amount
|
|
||||||
scroll_vertical = round(_current_scroll_position)
|
|
||||||
_check_end_reached()
|
|
||||||
|
|
||||||
func _on_gui_input(event : InputEvent) -> void:
|
|
||||||
# Captures the mouse scroll wheel input event
|
|
||||||
if event is InputEventMouseButton:
|
|
||||||
scroll_paused = true
|
|
||||||
_start_scroll_restart_timer()
|
|
||||||
_check_end_reached()
|
|
||||||
|
|
||||||
func _on_scroll_started() -> void:
|
|
||||||
# Captures the touch input event
|
|
||||||
scroll_paused = true
|
|
||||||
_start_scroll_restart_timer()
|
|
||||||
|
|
||||||
func _start_scroll_restart_timer() -> void:
|
|
||||||
timer.start(scroll_restart_delay)
|
|
||||||
|
|
||||||
func _on_scroll_restart_timer_timeout() -> void:
|
|
||||||
_current_scroll_position = scroll_vertical
|
|
||||||
scroll_paused = false
|
|
||||||
|
|
||||||
func _on_resized() -> void:
|
|
||||||
_current_scroll_position = scroll_vertical
|
|
||||||
|
|
||||||
func _on_visibility_changed() -> void:
|
|
||||||
if visible:
|
|
||||||
scroll_vertical = 0
|
|
||||||
_current_scroll_position = scroll_vertical
|
|
||||||
scroll_paused = false
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
scroll_started.connect(_on_scroll_started)
|
|
||||||
gui_input.connect(_on_gui_input)
|
|
||||||
resized.connect(_on_resized)
|
|
||||||
visibility_changed.connect(_on_visibility_changed)
|
|
||||||
timer.timeout.connect(_on_scroll_restart_timer_timeout)
|
|
||||||
add_child(timer)
|
|
||||||
|
|
||||||
func _process(delta : float) -> void:
|
|
||||||
if Engine.is_editor_hint():
|
|
||||||
return
|
|
||||||
var input_axis = Input.get_axis("ui_up", "ui_down")
|
|
||||||
if input_axis != 0:
|
|
||||||
_scroll_container(input_axis * input_scroll_speed * delta)
|
|
||||||
else:
|
|
||||||
_scroll_container(auto_scroll_speed * delta)
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://gmrv6pgchkwc
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
class_name Credits
|
|
||||||
extends Control
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://xc4ebbm5dxnh
|
|
||||||
@ -1,99 +0,0 @@
|
|||||||
@tool
|
|
||||||
extends RichTextLabel
|
|
||||||
|
|
||||||
const HEADING_STRING_REPLACEMENT = "$1[font_size=%d]$2[/font_size]"
|
|
||||||
const BOLD_HEADING_STRING_REPLACEMENT = "$1[b][font_size=%d]$2[/font_size][/b]"
|
|
||||||
|
|
||||||
@export_file("*.md") var attribution_file_path: String
|
|
||||||
@export var auto_update : bool = true
|
|
||||||
@export_group("Font Sizes")
|
|
||||||
@export var h1_font_size: int
|
|
||||||
@export var h2_font_size: int
|
|
||||||
@export var h3_font_size: int
|
|
||||||
@export var h4_font_size: int
|
|
||||||
@export var h5_font_size: int
|
|
||||||
@export var h6_font_size: int
|
|
||||||
@export var bold_headings : bool
|
|
||||||
@export_group("Image Sizes")
|
|
||||||
@export var max_image_width: int
|
|
||||||
@export var max_image_height : int
|
|
||||||
@export_group("Extra Options")
|
|
||||||
@export var disable_images : bool = false
|
|
||||||
@export var disable_urls : bool = false
|
|
||||||
## For platforms that don't permit linking to other domains or products.
|
|
||||||
@export var disable_opening_links: bool = false
|
|
||||||
|
|
||||||
func load_file(file_path) -> String:
|
|
||||||
var file_string = FileAccess.get_file_as_string(file_path)
|
|
||||||
if file_string == null:
|
|
||||||
push_warning("File open error: %s" % FileAccess.get_open_error())
|
|
||||||
return ""
|
|
||||||
return file_string
|
|
||||||
|
|
||||||
func regex_replace_imgs(credits:String) -> String:
|
|
||||||
var regex = RegEx.new()
|
|
||||||
var match_string := "!\\[([^\\]]*)\\]\\(([^\\)]*)\\)"
|
|
||||||
var replace_string := ""
|
|
||||||
if not disable_images:
|
|
||||||
replace_string = "res://$2[/img]"
|
|
||||||
if max_image_width:
|
|
||||||
if max_image_height:
|
|
||||||
replace_string = ("[img=%dx%d]" % [max_image_width, max_image_height]) + replace_string
|
|
||||||
else:
|
|
||||||
replace_string = ("[img=%d]" % [max_image_width]) + replace_string
|
|
||||||
else:
|
|
||||||
replace_string = "[img]" + replace_string
|
|
||||||
regex.compile(match_string)
|
|
||||||
return regex.sub(credits, replace_string, true)
|
|
||||||
|
|
||||||
func regex_replace_urls(credits:String) -> String:
|
|
||||||
var regex = RegEx.new()
|
|
||||||
var match_string := "\\[([^\\]]*)\\]\\(([^\\)]*)\\)"
|
|
||||||
var replace_string := "$1"
|
|
||||||
if not disable_urls:
|
|
||||||
replace_string = "[url=$2]$1[/url]"
|
|
||||||
regex.compile(match_string)
|
|
||||||
return regex.sub(credits, replace_string, true)
|
|
||||||
|
|
||||||
func regex_replace_titles(credits:String) -> String:
|
|
||||||
var iter = 0
|
|
||||||
var heading_font_sizes : Array[int] = [
|
|
||||||
h1_font_size,
|
|
||||||
h2_font_size,
|
|
||||||
h3_font_size,
|
|
||||||
h4_font_size,
|
|
||||||
h5_font_size,
|
|
||||||
h6_font_size]
|
|
||||||
for heading_font_size in heading_font_sizes:
|
|
||||||
iter += 1
|
|
||||||
var regex = RegEx.new()
|
|
||||||
var match_string : String = "([^#]|^)#{%d}\\s([^\n]*)" % iter
|
|
||||||
var replace_string := HEADING_STRING_REPLACEMENT % [heading_font_size]
|
|
||||||
if bold_headings:
|
|
||||||
replace_string = BOLD_HEADING_STRING_REPLACEMENT % [heading_font_size]
|
|
||||||
regex.compile(match_string)
|
|
||||||
credits = regex.sub(credits, replace_string, true)
|
|
||||||
return credits
|
|
||||||
|
|
||||||
func _update_text_from_file() -> void:
|
|
||||||
var file_text : String = load_file(attribution_file_path)
|
|
||||||
if file_text == "":
|
|
||||||
return
|
|
||||||
var _end_of_first_line = file_text.find("\n") + 1
|
|
||||||
file_text = file_text.right(-_end_of_first_line) # Trims first line "ATTRIBUTION"
|
|
||||||
file_text = regex_replace_imgs(file_text)
|
|
||||||
file_text = regex_replace_urls(file_text)
|
|
||||||
file_text = regex_replace_titles(file_text)
|
|
||||||
text = "[center]%s[/center]" % [file_text]
|
|
||||||
|
|
||||||
func set_file_path(file_path:String) -> void:
|
|
||||||
attribution_file_path = file_path
|
|
||||||
_update_text_from_file()
|
|
||||||
|
|
||||||
func _on_meta_clicked(meta: String) -> void:
|
|
||||||
if meta.begins_with("https://") and not disable_opening_links:
|
|
||||||
var _err = OS.shell_open(meta)
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
if not auto_update: return
|
|
||||||
set_file_path(attribution_file_path)
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://cc2wtqasev7le
|
|
||||||
@ -1,22 +0,0 @@
|
|||||||
@tool
|
|
||||||
class_name ScrollableCredits
|
|
||||||
extends Credits
|
|
||||||
|
|
||||||
@onready var credits_label : RichTextLabel = %CreditsLabel
|
|
||||||
|
|
||||||
@export var input_scroll_speed : float = 400.0
|
|
||||||
|
|
||||||
func _on_visibility_changed() -> void:
|
|
||||||
if visible:
|
|
||||||
credits_label.scroll_to_line(0)
|
|
||||||
credits_label.grab_focus()
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
visibility_changed.connect(_on_visibility_changed)
|
|
||||||
|
|
||||||
func _process(delta : float) -> void:
|
|
||||||
if Engine.is_editor_hint() or not visible:
|
|
||||||
return
|
|
||||||
var input_axis = Input.get_axis("ui_up", "ui_down")
|
|
||||||
if input_axis != 0:
|
|
||||||
credits_label.get_v_scroll_bar().value += input_axis * delta * input_scroll_speed
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://c5wuso5r3dwpw
|
|
||||||
@ -1,32 +0,0 @@
|
|||||||
[gd_scene load_steps=3 format=3 uid="uid://osxulxw2oas3"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://c5wuso5r3dwpw" path="res://addons/maaacks_game_template/base/scenes/credits/scrollable_credits.gd" id="1_hny8b"]
|
|
||||||
[ext_resource type="Script" uid="uid://cc2wtqasev7le" path="res://addons/maaacks_game_template/base/scenes/credits/credits_label.gd" id="2_g23vg"]
|
|
||||||
|
|
||||||
[node name="ScrollableCredits" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
script = ExtResource("1_hny8b")
|
|
||||||
|
|
||||||
[node name="CreditsLabel" type="RichTextLabel" parent="."]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
focus_mode = 2
|
|
||||||
bbcode_enabled = true
|
|
||||||
script = ExtResource("2_g23vg")
|
|
||||||
h1_font_size = 64
|
|
||||||
h2_font_size = 48
|
|
||||||
h3_font_size = 32
|
|
||||||
h4_font_size = 24
|
|
||||||
h5_font_size = 20
|
|
||||||
h6_font_size = 16
|
|
||||||
max_image_width = 80
|
|
||||||
@ -1,23 +0,0 @@
|
|||||||
class_name ScrollingCredits
|
|
||||||
extends Credits
|
|
||||||
|
|
||||||
signal end_reached
|
|
||||||
|
|
||||||
@onready var header_space : Control = %HeaderSpace
|
|
||||||
@onready var footer_space : Control = %FooterSpace
|
|
||||||
@onready var credits_label : Control = %CreditsLabel
|
|
||||||
|
|
||||||
func set_header_and_footer() -> void:
|
|
||||||
header_space.custom_minimum_size.y = size.y
|
|
||||||
footer_space.custom_minimum_size.y = size.y
|
|
||||||
credits_label.custom_minimum_size.x = size.x
|
|
||||||
|
|
||||||
func _on_scroll_container_end_reached() -> void:
|
|
||||||
end_reached.emit()
|
|
||||||
|
|
||||||
func _on_resized() -> void:
|
|
||||||
set_header_and_footer()
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
resized.connect(_on_resized)
|
|
||||||
set_header_and_footer()
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://bnub0cq2y0deh
|
|
||||||
@ -1,57 +0,0 @@
|
|||||||
[gd_scene load_steps=4 format=3 uid="uid://t2dui8ppm3a4"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://gmrv6pgchkwc" path="res://addons/maaacks_game_template/base/scenes/credits/auto_scroll_container.gd" id="2_ak7hi"]
|
|
||||||
[ext_resource type="Script" uid="uid://cc2wtqasev7le" path="res://addons/maaacks_game_template/base/scenes/credits/credits_label.gd" id="3_kngql"]
|
|
||||||
[ext_resource type="Script" uid="uid://bnub0cq2y0deh" path="res://addons/maaacks_game_template/base/scenes/credits/scrolling_credits.gd" id="4"]
|
|
||||||
|
|
||||||
[node name="ScrollingCredits" type="Control"]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
script = ExtResource("4")
|
|
||||||
|
|
||||||
[node name="ScrollContainer" type="ScrollContainer" parent="."]
|
|
||||||
layout_mode = 0
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
scroll_vertical = 100
|
|
||||||
horizontal_scroll_mode = 0
|
|
||||||
vertical_scroll_mode = 3
|
|
||||||
script = ExtResource("2_ak7hi")
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="ScrollContainer"]
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
|
|
||||||
[node name="HeaderSpace" type="Control" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
custom_minimum_size = Vector2(0, 720)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[node name="CreditsLabel" type="RichTextLabel" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
custom_minimum_size = Vector2(1280, 0)
|
|
||||||
layout_mode = 2
|
|
||||||
size_flags_horizontal = 3
|
|
||||||
size_flags_vertical = 5
|
|
||||||
bbcode_enabled = true
|
|
||||||
fit_content = true
|
|
||||||
scroll_active = false
|
|
||||||
script = ExtResource("3_kngql")
|
|
||||||
h1_font_size = 64
|
|
||||||
h2_font_size = 48
|
|
||||||
h3_font_size = 32
|
|
||||||
h4_font_size = 24
|
|
||||||
h5_font_size = 20
|
|
||||||
h6_font_size = 16
|
|
||||||
max_image_width = 80
|
|
||||||
|
|
||||||
[node name="FooterSpace" type="Control" parent="ScrollContainer/VBoxContainer"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
custom_minimum_size = Vector2(0, 720)
|
|
||||||
layout_mode = 2
|
|
||||||
|
|
||||||
[connection signal="end_reached" from="ScrollContainer" to="." method="_on_scroll_container_end_reached"]
|
|
||||||
@ -1,168 +0,0 @@
|
|||||||
class_name LoadingScreen
|
|
||||||
extends CanvasLayer
|
|
||||||
|
|
||||||
const STALLED_ON_WEB = "\nIf running in a browser, try clicking out of the window, \nand then click back into the window. It might unstick.\nLasty, you may try refreshing the page.\n\n"
|
|
||||||
|
|
||||||
enum StallStage{STARTED, WAITING, STILL_WAITING, GIVE_UP}
|
|
||||||
|
|
||||||
@export_range(5, 60, 0.5, "or_greater") var state_change_delay : float = 15.0
|
|
||||||
@export_group("State Messages")
|
|
||||||
@export_subgroup("In Progress")
|
|
||||||
@export var _in_progress : String = "Loading..."
|
|
||||||
@export var _in_progress_waiting : String = "Still Loading..."
|
|
||||||
@export var _in_progress_still_waiting : String = "Still Loading... (%d seconds)"
|
|
||||||
@export_subgroup("Completed")
|
|
||||||
@export var _complete : String = "Loading Complete!"
|
|
||||||
@export var _complete_waiting : String = "Any Moment Now..."
|
|
||||||
@export var _complete_still_waiting : String = "Any Moment Now... (%d seconds)"
|
|
||||||
|
|
||||||
var _stall_stage : StallStage = StallStage.STARTED
|
|
||||||
var _scene_loading_complete : bool = false
|
|
||||||
var _scene_loading_progress : float = 0.0 :
|
|
||||||
set(value):
|
|
||||||
var _value_changed = _scene_loading_progress != value
|
|
||||||
_scene_loading_progress = value
|
|
||||||
if _value_changed:
|
|
||||||
update_total_loading_progress()
|
|
||||||
_reset_loading_stage()
|
|
||||||
var _total_loading_progress : float = 0.0 :
|
|
||||||
set(value):
|
|
||||||
_total_loading_progress = value
|
|
||||||
%ProgressBar.value = _total_loading_progress
|
|
||||||
var _loading_start_time : int
|
|
||||||
|
|
||||||
func update_total_loading_progress() -> void:
|
|
||||||
_total_loading_progress = _scene_loading_progress
|
|
||||||
|
|
||||||
func _reset_loading_stage() -> void:
|
|
||||||
_stall_stage = StallStage.STARTED
|
|
||||||
%LoadingTimer.start(state_change_delay)
|
|
||||||
|
|
||||||
func _reset_loading_start_time() -> void:
|
|
||||||
_loading_start_time = Time.get_ticks_msec()
|
|
||||||
|
|
||||||
func _get_seconds_waiting() -> int:
|
|
||||||
return int((Time.get_ticks_msec() - _loading_start_time) / 1000.0)
|
|
||||||
|
|
||||||
func _update_scene_loading_progress() -> void:
|
|
||||||
var new_progress = SceneLoader.get_progress()
|
|
||||||
if new_progress > _scene_loading_progress:
|
|
||||||
_scene_loading_progress = new_progress
|
|
||||||
|
|
||||||
func _set_scene_loading_complete() -> void:
|
|
||||||
_scene_loading_progress = 1.0
|
|
||||||
_scene_loading_complete = true
|
|
||||||
|
|
||||||
func _reset_scene_loading_progress() -> void:
|
|
||||||
_scene_loading_progress = 0.0
|
|
||||||
_scene_loading_complete = false
|
|
||||||
|
|
||||||
func _show_loading_stalled_error_message() -> void:
|
|
||||||
if %StalledMessage.visible:
|
|
||||||
return
|
|
||||||
if _scene_loading_progress == 0:
|
|
||||||
%StalledMessage.dialog_text = "Stalled at start. You may try waiting or restarting.\n"
|
|
||||||
else:
|
|
||||||
%StalledMessage.dialog_text = "Stalled at %d%%. You may try waiting or restarting.\n" % (_scene_loading_progress * 100.0)
|
|
||||||
if OS.has_feature("web"):
|
|
||||||
%StalledMessage.dialog_text += STALLED_ON_WEB
|
|
||||||
%StalledMessage.popup()
|
|
||||||
|
|
||||||
func _show_scene_switching_error_message() -> void:
|
|
||||||
if %ErrorMessage.visible:
|
|
||||||
return
|
|
||||||
%ErrorMessage.dialog_text = "Loading Error: Failed to switch scenes."
|
|
||||||
%ErrorMessage.popup()
|
|
||||||
|
|
||||||
func _hide_popups() -> void:
|
|
||||||
%ErrorMessage.hide()
|
|
||||||
%StalledMessage.hide()
|
|
||||||
|
|
||||||
func get_progress_message() -> String:
|
|
||||||
var _progress_message : String
|
|
||||||
match _stall_stage:
|
|
||||||
StallStage.STARTED:
|
|
||||||
if _scene_loading_complete:
|
|
||||||
_progress_message = _complete
|
|
||||||
else:
|
|
||||||
_progress_message = _in_progress
|
|
||||||
StallStage.WAITING:
|
|
||||||
if _scene_loading_complete:
|
|
||||||
_progress_message = _complete_waiting
|
|
||||||
else:
|
|
||||||
_progress_message = _in_progress_waiting
|
|
||||||
StallStage.STILL_WAITING, StallStage.GIVE_UP:
|
|
||||||
if _scene_loading_complete:
|
|
||||||
_progress_message = _complete_still_waiting
|
|
||||||
else:
|
|
||||||
_progress_message = _in_progress_still_waiting
|
|
||||||
if _progress_message.contains("%d"):
|
|
||||||
_progress_message = _progress_message % _get_seconds_waiting()
|
|
||||||
return _progress_message
|
|
||||||
|
|
||||||
func _update_progress_messaging() -> void:
|
|
||||||
%ProgressLabel.text = get_progress_message()
|
|
||||||
if _stall_stage == StallStage.GIVE_UP:
|
|
||||||
if _scene_loading_complete:
|
|
||||||
_show_scene_switching_error_message()
|
|
||||||
else:
|
|
||||||
_show_loading_stalled_error_message()
|
|
||||||
else:
|
|
||||||
_hide_popups()
|
|
||||||
|
|
||||||
func _process(_delta : float) -> void:
|
|
||||||
var status = SceneLoader.get_status()
|
|
||||||
match(status):
|
|
||||||
ResourceLoader.THREAD_LOAD_IN_PROGRESS:
|
|
||||||
_update_scene_loading_progress()
|
|
||||||
_update_progress_messaging()
|
|
||||||
ResourceLoader.THREAD_LOAD_LOADED:
|
|
||||||
_set_scene_loading_complete()
|
|
||||||
_update_progress_messaging()
|
|
||||||
ResourceLoader.THREAD_LOAD_FAILED:
|
|
||||||
%ErrorMessage.dialog_text = "Loading Error: %d" % status
|
|
||||||
%ErrorMessage.popup()
|
|
||||||
set_process(false)
|
|
||||||
ResourceLoader.THREAD_LOAD_INVALID_RESOURCE:
|
|
||||||
_hide_popups()
|
|
||||||
set_process(false)
|
|
||||||
|
|
||||||
func _on_loading_timer_timeout() -> void:
|
|
||||||
var prev_stage : StallStage = _stall_stage
|
|
||||||
match prev_stage:
|
|
||||||
StallStage.STARTED:
|
|
||||||
_stall_stage = StallStage.WAITING
|
|
||||||
%LoadingTimer.start(state_change_delay)
|
|
||||||
StallStage.WAITING:
|
|
||||||
_stall_stage = StallStage.STILL_WAITING
|
|
||||||
%LoadingTimer.start(state_change_delay)
|
|
||||||
StallStage.STILL_WAITING:
|
|
||||||
_stall_stage = StallStage.GIVE_UP
|
|
||||||
|
|
||||||
func _reload_main_scene_or_quit() -> void:
|
|
||||||
var err = get_tree().change_scene_to_file(ProjectSettings.get_setting("application/run/main_scene"))
|
|
||||||
if err:
|
|
||||||
push_error("failed to load main scene: %d" % err)
|
|
||||||
get_tree().quit()
|
|
||||||
|
|
||||||
func _on_error_message_confirmed() -> void:
|
|
||||||
_reload_main_scene_or_quit()
|
|
||||||
|
|
||||||
func _on_confirmation_dialog_canceled() -> void:
|
|
||||||
_reload_main_scene_or_quit()
|
|
||||||
|
|
||||||
func _on_confirmation_dialog_confirmed() -> void:
|
|
||||||
_reset_loading_stage()
|
|
||||||
|
|
||||||
func reset() -> void:
|
|
||||||
show()
|
|
||||||
_reset_loading_stage()
|
|
||||||
_reset_scene_loading_progress()
|
|
||||||
_reset_loading_start_time()
|
|
||||||
_hide_popups()
|
|
||||||
set_process(true)
|
|
||||||
|
|
||||||
func close() -> void:
|
|
||||||
set_process(false)
|
|
||||||
_hide_popups()
|
|
||||||
hide()
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://dgeewyjjpk4qn
|
|
||||||
@ -1,87 +0,0 @@
|
|||||||
[gd_scene load_steps=2 format=3 uid="uid://cd0jbh4metflb"]
|
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://dgeewyjjpk4qn" path="res://addons/maaacks_game_template/base/scenes/loading_screen/loading_screen.gd" id="1_gbk34"]
|
|
||||||
|
|
||||||
[node name="LoadingScreen" type="CanvasLayer"]
|
|
||||||
process_mode = 3
|
|
||||||
layer = 20
|
|
||||||
script = ExtResource("1_gbk34")
|
|
||||||
|
|
||||||
[node name="Control" type="Control" parent="."]
|
|
||||||
layout_mode = 3
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
|
|
||||||
[node name="BackPanel" type="Panel" parent="Control"]
|
|
||||||
layout_mode = 0
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
|
|
||||||
[node name="BackgroundColor" type="ColorRect" parent="Control"]
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
color = Color(0, 0, 0, 0)
|
|
||||||
|
|
||||||
[node name="BackgroundTextureRect" type="TextureRect" parent="Control"]
|
|
||||||
layout_mode = 1
|
|
||||||
anchors_preset = 15
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 1.0
|
|
||||||
grow_horizontal = 2
|
|
||||||
grow_vertical = 2
|
|
||||||
expand_mode = 1
|
|
||||||
stretch_mode = 5
|
|
||||||
|
|
||||||
[node name="VBoxContainer" type="VBoxContainer" parent="Control"]
|
|
||||||
layout_mode = 0
|
|
||||||
anchor_top = 0.5
|
|
||||||
anchor_right = 1.0
|
|
||||||
anchor_bottom = 0.5
|
|
||||||
offset_left = 30.0
|
|
||||||
offset_top = -23.0
|
|
||||||
offset_right = -30.0
|
|
||||||
offset_bottom = 98.0
|
|
||||||
theme_override_constants/separation = 50
|
|
||||||
|
|
||||||
[node name="ProgressLabel" type="Label" parent="Control/VBoxContainer"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
layout_mode = 2
|
|
||||||
text = "Loading..."
|
|
||||||
horizontal_alignment = 1
|
|
||||||
|
|
||||||
[node name="ProgressBar" type="ProgressBar" parent="Control/VBoxContainer"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
custom_minimum_size = Vector2(0, 50)
|
|
||||||
layout_mode = 2
|
|
||||||
max_value = 1.0
|
|
||||||
|
|
||||||
[node name="ErrorMessage" type="AcceptDialog" parent="Control"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
title = "Loading Error"
|
|
||||||
initial_position = 2
|
|
||||||
size = Vector2i(360, 100)
|
|
||||||
|
|
||||||
[node name="StalledMessage" type="ConfirmationDialog" parent="Control"]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
title = "Loading Stalled"
|
|
||||||
initial_position = 2
|
|
||||||
size = Vector2i(360, 100)
|
|
||||||
ok_button_text = "Try Waiting"
|
|
||||||
cancel_button_text = "Reload"
|
|
||||||
|
|
||||||
[node name="LoadingTimer" type="Timer" parent="."]
|
|
||||||
unique_name_in_owner = true
|
|
||||||
one_shot = true
|
|
||||||
autostart = true
|
|
||||||
|
|
||||||
[connection signal="confirmed" from="Control/ErrorMessage" to="." method="_on_error_message_confirmed"]
|
|
||||||
[connection signal="canceled" from="Control/StalledMessage" to="." method="_on_confirmation_dialog_canceled"]
|
|
||||||
[connection signal="confirmed" from="Control/StalledMessage" to="." method="_on_confirmation_dialog_confirmed"]
|
|
||||||
[connection signal="timeout" from="LoadingTimer" to="." method="_on_loading_timer_timeout"]
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
@tool
|
|
||||||
extends Label
|
|
||||||
class_name ConfigNameLabel
|
|
||||||
## Displays the value of `application/config/name`, set in project settings.
|
|
||||||
|
|
||||||
const NO_NAME_STRING : String = "Title"
|
|
||||||
|
|
||||||
@export var auto_update : bool = true
|
|
||||||
|
|
||||||
func update_name_label():
|
|
||||||
var config_name : String = ProjectSettings.get_setting("application/config/name", NO_NAME_STRING)
|
|
||||||
if config_name.is_empty():
|
|
||||||
config_name = NO_NAME_STRING
|
|
||||||
text = config_name
|
|
||||||
|
|
||||||
func _ready():
|
|
||||||
if auto_update:
|
|
||||||
update_name_label()
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://bkwlopi4qn32o
|
|
||||||
@ -1,18 +0,0 @@
|
|||||||
@tool
|
|
||||||
extends Label
|
|
||||||
class_name ConfigVersionLabel
|
|
||||||
## Displays the value of `application/config/version`, set in project settings.
|
|
||||||
|
|
||||||
const NO_VERSION_STRING : String = "0.0.0"
|
|
||||||
|
|
||||||
## Prefixes the value of `application/config/version` when displaying to the user.
|
|
||||||
@export var version_prefix : String = "v"
|
|
||||||
|
|
||||||
func update_version_label() -> void:
|
|
||||||
var config_version : String = ProjectSettings.get_setting("application/config/version", NO_VERSION_STRING)
|
|
||||||
if config_version.is_empty():
|
|
||||||
config_version = NO_VERSION_STRING
|
|
||||||
text = version_prefix + config_version
|
|
||||||
|
|
||||||
func _ready() -> void:
|
|
||||||
update_version_label()
|
|
||||||
@ -1 +0,0 @@
|
|||||||
uid://dmkubt2nsnsbn
|
|
||||||