diff --git a/.gitignore b/.gitignore index 0af181c..bf83296 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,17 @@ +# ---> Godot # Godot 4+ specific ignores .godot/ -/android/ + +# Godot-specific ignores +.import/ +export.cfg +export_presets.cfg + +# Imported translations (automatically generated from CSV files) +*.translation + +# Mono-specific ignores +.mono/ +data_*/ +mono_crash.*.json + diff --git a/addons/godot-jolt/LICENSE.txt b/addons/godot-jolt/LICENSE.txt new file mode 100644 index 0000000..2675022 --- /dev/null +++ b/addons/godot-jolt/LICENSE.txt @@ -0,0 +1,18 @@ +Copyright (c) Mikael Hermansson and Godot Jolt contributors. + +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. diff --git a/addons/godot-jolt/THIRDPARTY.txt b/addons/godot-jolt/THIRDPARTY.txt new file mode 100644 index 0000000..e294095 --- /dev/null +++ b/addons/godot-jolt/THIRDPARTY.txt @@ -0,0 +1,91 @@ +Godot Jolt incorporates third-party material from the projects listed below. + +Godot Engine (https://github.com/godotengine/godot) + + Copyright (c) 2014-present Godot Engine contributors (see AUTHORS.md). + Copyright (c) 2007-2014 Juan Linietsky, Ariel Manzur. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. + +godot-cpp (https://github.com/godot-jolt/godot-cpp) + + Copyright (c) 2017-present Godot Engine contributors. + Copyright (c) 2022-present Mikael Hermansson. + + 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. + +Jolt Physics (https://github.com/godot-jolt/jolt) + + Copyright (c) 2021 Jorrit Rouwe. + + 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. + +mimalloc (https://github.com/godot-jolt/mimalloc) + + Copyright (c) 2018-2021 Microsoft Corporation, Daan Leijen. + + 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. diff --git a/addons/godot-jolt/android/libgodot-jolt_android-arm32.so b/addons/godot-jolt/android/libgodot-jolt_android-arm32.so new file mode 100644 index 0000000..20ae181 Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-arm32.so differ diff --git a/addons/godot-jolt/android/libgodot-jolt_android-arm32_editor.so b/addons/godot-jolt/android/libgodot-jolt_android-arm32_editor.so new file mode 100644 index 0000000..bfe3744 Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-arm32_editor.so differ diff --git a/addons/godot-jolt/android/libgodot-jolt_android-arm64.so b/addons/godot-jolt/android/libgodot-jolt_android-arm64.so new file mode 100644 index 0000000..a089ce6 Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-arm64.so differ diff --git a/addons/godot-jolt/android/libgodot-jolt_android-arm64_editor.so b/addons/godot-jolt/android/libgodot-jolt_android-arm64_editor.so new file mode 100644 index 0000000..95af658 Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-arm64_editor.so differ diff --git a/addons/godot-jolt/android/libgodot-jolt_android-x64.so b/addons/godot-jolt/android/libgodot-jolt_android-x64.so new file mode 100644 index 0000000..f764940 Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-x64.so differ diff --git a/addons/godot-jolt/android/libgodot-jolt_android-x64_editor.so b/addons/godot-jolt/android/libgodot-jolt_android-x64_editor.so new file mode 100644 index 0000000..43f9d2b Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-x64_editor.so differ diff --git a/addons/godot-jolt/android/libgodot-jolt_android-x86.so b/addons/godot-jolt/android/libgodot-jolt_android-x86.so new file mode 100644 index 0000000..e8d6cad Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-x86.so differ diff --git a/addons/godot-jolt/android/libgodot-jolt_android-x86_editor.so b/addons/godot-jolt/android/libgodot-jolt_android-x86_editor.so new file mode 100644 index 0000000..5583ff2 Binary files /dev/null and b/addons/godot-jolt/android/libgodot-jolt_android-x86_editor.so differ diff --git a/addons/godot-jolt/godot-jolt.gdextension b/addons/godot-jolt/godot-jolt.gdextension new file mode 100644 index 0000000..8a7e50b --- /dev/null +++ b/addons/godot-jolt/godot-jolt.gdextension @@ -0,0 +1,41 @@ +[godot-jolt] +version = "0.14.0-stable" +build = "3392156fab" + +[configuration] + +entry_symbol = "godot_jolt_main" +compatibility_minimum = "4.3" +compatibility_maximum = "4.3" + +[libraries] + +windows.release.single.x86_64 = "windows/godot-jolt_windows-x64.dll" +windows.debug.single.x86_64 = "windows/godot-jolt_windows-x64_editor.dll" + +windows.release.single.x86_32 = "windows/godot-jolt_windows-x86.dll" +windows.debug.single.x86_32 = "windows/godot-jolt_windows-x86_editor.dll" + +linux.release.single.x86_64 = "linux/godot-jolt_linux-x64.so" +linux.debug.single.x86_64 = "linux/godot-jolt_linux-x64_editor.so" + +linux.release.single.x86_32 = "linux/godot-jolt_linux-x86.so" +linux.debug.single.x86_32 = "linux/godot-jolt_linux-x86_editor.so" + +macos.release.single = "macos/godot-jolt_macos.framework" +macos.debug.single = "macos/godot-jolt_macos_editor.framework" + +ios.release.single = "ios/godot-jolt_ios.framework" +ios.debug.single = "ios/godot-jolt_ios_editor.framework" + +android.release.single.arm64 = "android/libgodot-jolt_android-arm64.so" +android.debug.single.arm64 = "android/libgodot-jolt_android-arm64_editor.so" + +android.release.single.arm32 = "android/libgodot-jolt_android-arm32.so" +android.debug.single.arm32 = "android/libgodot-jolt_android-arm32_editor.so" + +android.release.single.x86_64 = "android/libgodot-jolt_android-x64.so" +android.debug.single.x86_64 = "android/libgodot-jolt_android-x64_editor.so" + +android.release.single.x86_32 = "android/libgodot-jolt_android-x86.so" +android.debug.single.x86_32 = "android/libgodot-jolt_android-x86_editor.so" diff --git a/addons/godot-jolt/ios/godot-jolt_ios.framework/Info.plist b/addons/godot-jolt/ios/godot-jolt_ios.framework/Info.plist new file mode 100644 index 0000000..ae5f211 --- /dev/null +++ b/addons/godot-jolt/ios/godot-jolt_ios.framework/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + godot-jolt_ios + CFBundleName + Godot Jolt + CFBundleDisplayName + Godot Jolt + CFBundleIdentifier + org.godot-jolt.godot-jolt + NSHumanReadableCopyright + Copyright (c) Mikael Hermansson and Godot Jolt contributors. + CFBundleVersion + 0.14.0 + CFBundleShortVersionString + 0.14.0 + CFBundlePackageType + FMWK + CFBundleSupportedPlatforms + + iPhoneOS + + CSResourcesFileMapped + + DTPlatformName + iphoneos + MinimumOSVersion + 12.0 + + + AvailableLibraries + + + BinaryPath + godot-jolt_ios.dylib + + + + diff --git a/addons/godot-jolt/ios/godot-jolt_ios.framework/godot-jolt_ios b/addons/godot-jolt/ios/godot-jolt_ios.framework/godot-jolt_ios new file mode 100644 index 0000000..39d38b8 Binary files /dev/null and b/addons/godot-jolt/ios/godot-jolt_ios.framework/godot-jolt_ios differ diff --git a/addons/godot-jolt/ios/godot-jolt_ios_editor.framework/Info.plist b/addons/godot-jolt/ios/godot-jolt_ios_editor.framework/Info.plist new file mode 100644 index 0000000..44285c4 --- /dev/null +++ b/addons/godot-jolt/ios/godot-jolt_ios_editor.framework/Info.plist @@ -0,0 +1,51 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + godot-jolt_ios_editor + CFBundleName + Godot Jolt + CFBundleDisplayName + Godot Jolt + CFBundleIdentifier + org.godot-jolt.godot-jolt + NSHumanReadableCopyright + Copyright (c) Mikael Hermansson and Godot Jolt contributors. + CFBundleVersion + 0.14.0 + CFBundleShortVersionString + 0.14.0 + CFBundlePackageType + FMWK + CFBundleSupportedPlatforms + + iPhoneOS + + CSResourcesFileMapped + + DTPlatformName + iphoneos + MinimumOSVersion + 12.0 + + + AvailableLibraries + + + BinaryPath + godot-jolt_ios_editor.dylib + + + + diff --git a/addons/godot-jolt/ios/godot-jolt_ios_editor.framework/godot-jolt_ios_editor b/addons/godot-jolt/ios/godot-jolt_ios_editor.framework/godot-jolt_ios_editor new file mode 100644 index 0000000..33e172d Binary files /dev/null and b/addons/godot-jolt/ios/godot-jolt_ios_editor.framework/godot-jolt_ios_editor differ diff --git a/addons/godot-jolt/linux/godot-jolt_linux-x64.so b/addons/godot-jolt/linux/godot-jolt_linux-x64.so new file mode 100644 index 0000000..844f4a6 Binary files /dev/null and b/addons/godot-jolt/linux/godot-jolt_linux-x64.so differ diff --git a/addons/godot-jolt/linux/godot-jolt_linux-x64_editor.so b/addons/godot-jolt/linux/godot-jolt_linux-x64_editor.so new file mode 100644 index 0000000..ee33458 Binary files /dev/null and b/addons/godot-jolt/linux/godot-jolt_linux-x64_editor.so differ diff --git a/addons/godot-jolt/linux/godot-jolt_linux-x86.so b/addons/godot-jolt/linux/godot-jolt_linux-x86.so new file mode 100644 index 0000000..7271775 Binary files /dev/null and b/addons/godot-jolt/linux/godot-jolt_linux-x86.so differ diff --git a/addons/godot-jolt/linux/godot-jolt_linux-x86_editor.so b/addons/godot-jolt/linux/godot-jolt_linux-x86_editor.so new file mode 100644 index 0000000..18df932 Binary files /dev/null and b/addons/godot-jolt/linux/godot-jolt_linux-x86_editor.so differ diff --git a/addons/godot-jolt/macos/godot-jolt_macos.framework/Resources/Info.plist b/addons/godot-jolt/macos/godot-jolt_macos.framework/Resources/Info.plist new file mode 100644 index 0000000..a17a9b8 --- /dev/null +++ b/addons/godot-jolt/macos/godot-jolt_macos.framework/Resources/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + godot-jolt_macos + CFBundleName + Godot Jolt + CFBundleDisplayName + Godot Jolt + CFBundleIdentifier + org.godot-jolt.godot-jolt + NSHumanReadableCopyright + Copyright (c) Mikael Hermansson and Godot Jolt contributors. + CFBundleVersion + 0.14.0 + CFBundleShortVersionString + 0.14.0 + CFBundlePackageType + FMWK + CFBundleSupportedPlatforms + + MacOSX + + CSResourcesFileMapped + + DTPlatformName + macosx + LSMinimumSystemVersion + 10.12 + + diff --git a/addons/godot-jolt/macos/godot-jolt_macos.framework/_CodeSignature/CodeResources b/addons/godot-jolt/macos/godot-jolt_macos.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..bfa44d7 --- /dev/null +++ b/addons/godot-jolt/macos/godot-jolt_macos.framework/_CodeSignature/CodeResources @@ -0,0 +1,128 @@ + + + + + files + + Resources/Info.plist + + et0C7sxAlu4eIDcq2ihFQ2BhDSk= + + + files2 + + Resources/Info.plist + + hash2 + + ZnG0hD4DciikOVWrf1Ai1Qedz9hESuIFvUujZAebHRY= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/addons/godot-jolt/macos/godot-jolt_macos.framework/godot-jolt_macos b/addons/godot-jolt/macos/godot-jolt_macos.framework/godot-jolt_macos new file mode 100644 index 0000000..8e08a86 Binary files /dev/null and b/addons/godot-jolt/macos/godot-jolt_macos.framework/godot-jolt_macos differ diff --git a/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/Resources/Info.plist b/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/Resources/Info.plist new file mode 100644 index 0000000..1a54a40 --- /dev/null +++ b/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/Resources/Info.plist @@ -0,0 +1,36 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + godot-jolt_macos_editor + CFBundleName + Godot Jolt + CFBundleDisplayName + Godot Jolt + CFBundleIdentifier + org.godot-jolt.godot-jolt + NSHumanReadableCopyright + Copyright (c) Mikael Hermansson and Godot Jolt contributors. + CFBundleVersion + 0.14.0 + CFBundleShortVersionString + 0.14.0 + CFBundlePackageType + FMWK + CFBundleSupportedPlatforms + + MacOSX + + CSResourcesFileMapped + + DTPlatformName + macosx + LSMinimumSystemVersion + 10.12 + + diff --git a/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/_CodeSignature/CodeResources b/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..f7016fd --- /dev/null +++ b/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/_CodeSignature/CodeResources @@ -0,0 +1,128 @@ + + + + + files + + Resources/Info.plist + + oIAzxlQz4Hun6JnLVOu9jafYxGE= + + + files2 + + Resources/Info.plist + + hash2 + + FA6I/u5+Ww0DzXAvawYXs792eum+8Bim8uHBbg98jqY= + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Resources/Base\.lproj/ + + weight + 1010 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/godot-jolt_macos_editor b/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/godot-jolt_macos_editor new file mode 100644 index 0000000..6724cef Binary files /dev/null and b/addons/godot-jolt/macos/godot-jolt_macos_editor.framework/godot-jolt_macos_editor differ diff --git a/addons/godot-jolt/windows/godot-jolt_windows-x64.dll b/addons/godot-jolt/windows/godot-jolt_windows-x64.dll new file mode 100644 index 0000000..a427abe Binary files /dev/null and b/addons/godot-jolt/windows/godot-jolt_windows-x64.dll differ diff --git a/addons/godot-jolt/windows/godot-jolt_windows-x64_editor.dll b/addons/godot-jolt/windows/godot-jolt_windows-x64_editor.dll new file mode 100644 index 0000000..c05d288 Binary files /dev/null and b/addons/godot-jolt/windows/godot-jolt_windows-x64_editor.dll differ diff --git a/addons/godot-jolt/windows/godot-jolt_windows-x86.dll b/addons/godot-jolt/windows/godot-jolt_windows-x86.dll new file mode 100644 index 0000000..bdfe732 Binary files /dev/null and b/addons/godot-jolt/windows/godot-jolt_windows-x86.dll differ diff --git a/addons/godot-jolt/windows/godot-jolt_windows-x86_editor.dll b/addons/godot-jolt/windows/godot-jolt_windows-x86_editor.dll new file mode 100644 index 0000000..1a54df4 Binary files /dev/null and b/addons/godot-jolt/windows/godot-jolt_windows-x86_editor.dll differ diff --git a/addons/godot_resource_groups/csharp/ResourceGroup.cs b/addons/godot_resource_groups/csharp/ResourceGroup.cs new file mode 100644 index 0000000..aff648f --- /dev/null +++ b/addons/godot_resource_groups/csharp/ResourceGroup.cs @@ -0,0 +1,157 @@ +// ReSharper disable once CheckNamespace +namespace GodotResourceGroups +{ + using Godot; + using System.Collections.Generic; + using System; + + public class ResourceGroup + { + private readonly Resource _wrapped; + + private ResourceGroup(Resource wrapped) + { + _wrapped = wrapped; + } + + /// + /// Loads a resource group from the given path. + /// + public static ResourceGroup Of(string path) + { + var wrapped = GD.Load(path); + return Of(wrapped); + } + + + /// + /// Creates a typesafe wrapper for the given resource group. + /// + // ReSharper disable once MemberCanBePrivate.Global + public static ResourceGroup Of(Resource wrapped) + { + if (wrapped == null) + { + throw new ArgumentNullException(nameof(wrapped)); + } + + if (wrapped.GetScript().As