diff --git a/addons/godot-rapier2d/Fluid2D.svg b/addons/godot-rapier2d/Fluid2D.svg new file mode 100644 index 0000000..e55507f --- /dev/null +++ b/addons/godot-rapier2d/Fluid2D.svg @@ -0,0 +1,3 @@ + + + diff --git a/addons/godot-rapier2d/Fluid2D.svg.import b/addons/godot-rapier2d/Fluid2D.svg.import new file mode 100644 index 0000000..4a1f6c6 --- /dev/null +++ b/addons/godot-rapier2d/Fluid2D.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cv17s0qjrqj16" +path="res://.godot/imported/Fluid2D.svg-947567c51a8b586a0e695be7cba2d975.ctex" +metadata={ +"has_editor_variant": true, +"vram_texture": false +} + +[deps] + +source_file="res://addons/godot-rapier2d/Fluid2D.svg" +dest_files=["res://.godot/imported/Fluid2D.svg-947567c51a8b586a0e695be7cba2d975.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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=true +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-rapier2d/LICENSE b/addons/godot-rapier2d/LICENSE new file mode 100644 index 0000000..556baa8 --- /dev/null +++ b/addons/godot-rapier2d/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Fabrice Cipolla, Sp3ctralCat and Dragos Daian + +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-rapier2d/Radial2D.svg b/addons/godot-rapier2d/Radial2D.svg new file mode 100644 index 0000000..e7f0c49 --- /dev/null +++ b/addons/godot-rapier2d/Radial2D.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/addons/godot-rapier2d/Radial2D.svg.import b/addons/godot-rapier2d/Radial2D.svg.import new file mode 100644 index 0000000..317d9d1 --- /dev/null +++ b/addons/godot-rapier2d/Radial2D.svg.import @@ -0,0 +1,38 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://cho3shol3rky2" +path="res://.godot/imported/Radial2D.svg-4380d9841bddc115105cff2016be7c6a.ctex" +metadata={ +"has_editor_variant": true, +"vram_texture": false +} + +[deps] + +source_file="res://addons/godot-rapier2d/Radial2D.svg" +dest_files=["res://.godot/imported/Radial2D.svg-4380d9841bddc115105cff2016be7c6a.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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=true +editor/convert_colors_with_editor_theme=false diff --git a/addons/godot-rapier2d/THIRDPARTY.txt b/addons/godot-rapier2d/THIRDPARTY.txt new file mode 100644 index 0000000..d115c87 --- /dev/null +++ b/addons/godot-rapier2d/THIRDPARTY.txt @@ -0,0 +1,288 @@ +Godot Rapier 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/godotengine/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. + +rapier (https://github.com/dimforge/rapier) + + Copyright 2020 Sébastien Crozet + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +Godot Jolt (https://github.com/godot-jolt/godot-jolt) + + 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. + +salva (https://github.com/dimforge/salva) + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 Sébastien Crozet + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/addons/godot-rapier2d/bin/bin/libgodot_rapier.ios.arm64.framework/libgodot_rapier.a b/addons/godot-rapier2d/bin/bin/libgodot_rapier.ios.arm64.framework/libgodot_rapier.a new file mode 100644 index 0000000..77021d2 Binary files /dev/null and b/addons/godot-rapier2d/bin/bin/libgodot_rapier.ios.arm64.framework/libgodot_rapier.a differ diff --git a/addons/godot-rapier2d/bin/bin/libgodot_rapier.ios.x86_64.framework/libgodot_rapier.a b/addons/godot-rapier2d/bin/bin/libgodot_rapier.ios.x86_64.framework/libgodot_rapier.a new file mode 100644 index 0000000..b649862 Binary files /dev/null and b/addons/godot-rapier2d/bin/bin/libgodot_rapier.ios.x86_64.framework/libgodot_rapier.a differ diff --git a/addons/godot-rapier2d/bin/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.arm64.a b/addons/godot-rapier2d/bin/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.arm64.a new file mode 100644 index 0000000..2c029b6 Binary files /dev/null and b/addons/godot-rapier2d/bin/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.arm64.a differ diff --git a/addons/godot-rapier2d/bin/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.x86_64.a b/addons/godot-rapier2d/bin/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.x86_64.a new file mode 100644 index 0000000..b4df751 Binary files /dev/null and b/addons/godot-rapier2d/bin/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.x86_64.a differ diff --git a/addons/godot-rapier2d/bin/bin/wasm-nothreads/libgodot_rapier.a b/addons/godot-rapier2d/bin/bin/wasm-nothreads/libgodot_rapier.a new file mode 100644 index 0000000..adfa652 Binary files /dev/null and b/addons/godot-rapier2d/bin/bin/wasm-nothreads/libgodot_rapier.a differ diff --git a/addons/godot-rapier2d/bin/godot_rapier.wasm b/addons/godot-rapier2d/bin/godot_rapier.wasm new file mode 100644 index 0000000..5ee0d33 Binary files /dev/null and b/addons/godot-rapier2d/bin/godot_rapier.wasm differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.a b/addons/godot-rapier2d/bin/libgodot_rapier.a new file mode 100644 index 0000000..69a2fea Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.aarch64-linux-android.a b/addons/godot-rapier2d/bin/libgodot_rapier.android.aarch64-linux-android.a new file mode 100644 index 0000000..9f2137b Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.aarch64-linux-android.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.aarch64-linux-android.so b/addons/godot-rapier2d/bin/libgodot_rapier.android.aarch64-linux-android.so new file mode 100644 index 0000000..4941119 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.aarch64-linux-android.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.armv7-linux-androideabi.a b/addons/godot-rapier2d/bin/libgodot_rapier.android.armv7-linux-androideabi.a new file mode 100644 index 0000000..f10b024 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.armv7-linux-androideabi.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.armv7-linux-androideabi.so b/addons/godot-rapier2d/bin/libgodot_rapier.android.armv7-linux-androideabi.so new file mode 100644 index 0000000..2667ff5 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.armv7-linux-androideabi.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.i686-linux-android.a b/addons/godot-rapier2d/bin/libgodot_rapier.android.i686-linux-android.a new file mode 100644 index 0000000..07b58a1 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.i686-linux-android.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.i686-linux-android.so b/addons/godot-rapier2d/bin/libgodot_rapier.android.i686-linux-android.so new file mode 100644 index 0000000..4d8660e Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.i686-linux-android.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.x86_64-linux-android.a b/addons/godot-rapier2d/bin/libgodot_rapier.android.x86_64-linux-android.a new file mode 100644 index 0000000..b3178fe Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.x86_64-linux-android.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.android.x86_64-linux-android.so b/addons/godot-rapier2d/bin/libgodot_rapier.android.x86_64-linux-android.so new file mode 100644 index 0000000..aa2668e Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.android.x86_64-linux-android.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/Info.plist b/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/Info.plist new file mode 100644 index 0000000..18b336c --- /dev/null +++ b/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/Info.plist @@ -0,0 +1,42 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + libgodot_rapier.ios.arm64 + CFBundleName + Godot Rapier2D + CFBundleDisplayName + Godot Rapier2D + CFBundleIdentifier + org.godot-rapier2d.godot-rapier2d + NSHumanReadableCopyright + Copyright (c) 2023-present Fabrice Cipolla, Sp3ctralCat and Dragos Daian. + CFBundleVersion + 0.12.0 + CFBundleShortVersionString + 0.12.0 + CFBundlePackageType + FMWK + CSResourcesFileMapped + + DTPlatformName + iphoneos + MinimumOSVersion + 12.0 + + AvailableLibraries + + + BinaryPath + libgodot_rapier.ios.arm64.dylib + + + + diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/libgodot_rapier.ios.arm64 b/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/libgodot_rapier.ios.arm64 new file mode 100644 index 0000000..406eb0d Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/libgodot_rapier.ios.arm64 differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/Info.plist b/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/Info.plist new file mode 100644 index 0000000..747cf69 --- /dev/null +++ b/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/Info.plist @@ -0,0 +1,42 @@ + + + + + CFBundleInfoDictionaryVersion + 6.0 + CFBundleDevelopmentRegion + en + CFBundleExecutable + libgodot_rapier.ios.x86_64 + CFBundleName + Godot Rapier2D + CFBundleDisplayName + Godot Rapier2D + CFBundleIdentifier + org.godot-rapier2d.godot-rapier2d + NSHumanReadableCopyright + Copyright (c) 2023-present Fabrice Cipolla, Sp3ctralCat and Dragos Daian. + CFBundleVersion + 0.12.0 + CFBundleShortVersionString + 0.12.0 + CFBundlePackageType + FMWK + CSResourcesFileMapped + + DTPlatformName + iphoneos + MinimumOSVersion + 12.0 + + AvailableLibraries + + + BinaryPath + libgodot_rapier.ios.x86_64.dylib + + + + diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/libgodot_rapier.ios.x86_64 b/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/libgodot_rapier.ios.x86_64 new file mode 100644 index 0000000..debd749 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/libgodot_rapier.ios.x86_64 differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.a b/addons/godot-rapier2d/bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.a new file mode 100644 index 0000000..d26aa4c Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.so b/addons/godot-rapier2d/bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.so new file mode 100644 index 0000000..ccbce6c Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.a b/addons/godot-rapier2d/bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.a new file mode 100644 index 0000000..9d3ce48 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.so b/addons/godot-rapier2d/bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.so new file mode 100644 index 0000000..6837192 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.i686-unknown-linux-gnu.a b/addons/godot-rapier2d/bin/libgodot_rapier.linux.i686-unknown-linux-gnu.a new file mode 100644 index 0000000..19d94ba Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.i686-unknown-linux-gnu.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.i686-unknown-linux-gnu.so b/addons/godot-rapier2d/bin/libgodot_rapier.linux.i686-unknown-linux-gnu.so new file mode 100644 index 0000000..2636970 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.i686-unknown-linux-gnu.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.a b/addons/godot-rapier2d/bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.a new file mode 100644 index 0000000..30c38ea Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.so b/addons/godot-rapier2d/bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.so new file mode 100644 index 0000000..e69c92e Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.so differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/Resources/Info.plist b/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/Resources/Info.plist new file mode 100644 index 0000000..bde2089 --- /dev/null +++ b/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/Resources/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleExecutable + libgodot_rapier.macos.dylib + CFBundleIdentifier + org.godot-rapier2d.godot-rapier2d + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + Godot Rapier2D + CFBundlePackageType + FMWK + CFBundleShortVersionString + 1.0.0 + CFBundleSupportedPlatforms + + MacOSX + + NSHumanReadableCopyright + Copyright (c) 2023-present Fabrice Cipolla, Sp3ctralCat and Dragos Daian. + CFBundleVersion + 1.0.0 + LSMinimumSystemVersion + 10.12 + + diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/_CodeSignature/CodeResources b/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..1eaabd7 --- /dev/null +++ b/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/_CodeSignature/CodeResources @@ -0,0 +1,128 @@ + + + + + files + + Resources/Info.plist + + FZy7+eYDJuYSbntBY+mwtyopSvE= + + + files2 + + Resources/Info.plist + + hash2 + + MMDYIVdI76poLGbcF02jJpJ+oHcs7q1NjyfgsaN1jus= + + + + 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-rapier2d/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.dylib b/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.dylib new file mode 100644 index 0000000..5ec811e Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.dylib differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.a b/addons/godot-rapier2d/bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.a new file mode 100644 index 0000000..cd431af Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.dll b/addons/godot-rapier2d/bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.dll new file mode 100644 index 0000000..65c480c Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.dll differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.windows.i686-pc-windows-msvc.a b/addons/godot-rapier2d/bin/libgodot_rapier.windows.i686-pc-windows-msvc.a new file mode 100644 index 0000000..440f0f8 Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.windows.i686-pc-windows-msvc.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.windows.i686-pc-windows-msvc.dll b/addons/godot-rapier2d/bin/libgodot_rapier.windows.i686-pc-windows-msvc.dll new file mode 100644 index 0000000..a98a74d Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.windows.i686-pc-windows-msvc.dll differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.a b/addons/godot-rapier2d/bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.a new file mode 100644 index 0000000..aab2d1b Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.a differ diff --git a/addons/godot-rapier2d/bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.dll b/addons/godot-rapier2d/bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.dll new file mode 100644 index 0000000..c9de92c Binary files /dev/null and b/addons/godot-rapier2d/bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.dll differ diff --git a/addons/godot-rapier2d/bin/wasm-nothreads/godot_rapier.wasm b/addons/godot-rapier2d/bin/wasm-nothreads/godot_rapier.wasm new file mode 100644 index 0000000..5b748f2 Binary files /dev/null and b/addons/godot-rapier2d/bin/wasm-nothreads/godot_rapier.wasm differ diff --git a/addons/godot-rapier2d/circle_mesh.tres b/addons/godot-rapier2d/circle_mesh.tres new file mode 100644 index 0000000..630e7ea --- /dev/null +++ b/addons/godot-rapier2d/circle_mesh.tres @@ -0,0 +1,15 @@ +[gd_resource type="ArrayMesh" format=3 uid="uid://dahp28qij58i1"] + +[resource] +_surfaces = [{ +"2d": true, +"aabb": AABB(-16, -16, 0, 32, 32, 0), +"attribute_data": PackedByteArray(0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 0, 0, 0, 0, 128, 63, 0, 0, 128, 63), +"format": 34393296913, +"index_count": 6, +"index_data": PackedByteArray(3, 0, 0, 0, 1, 0, 1, 0, 2, 0, 3, 0), +"primitive": 3, +"uv_scale": Vector4(0, 0, 0, 0), +"vertex_count": 4, +"vertex_data": PackedByteArray(0, 0, 128, 193, 0, 0, 128, 65, 0, 0, 128, 193, 0, 0, 128, 193, 0, 0, 128, 65, 0, 0, 128, 193, 0, 0, 128, 65, 0, 0, 128, 65) +}] diff --git a/addons/godot-rapier2d/faucet_2d.gd b/addons/godot-rapier2d/faucet_2d.gd new file mode 100644 index 0000000..6fd8653 --- /dev/null +++ b/addons/godot-rapier2d/faucet_2d.gd @@ -0,0 +1,27 @@ +class_name Faucet2D +extends Fluid2D + +@export var interval := 0.06 +@export var max_particles: int = 1000 +@export var width: int = 4 +@export var height: int = 2 + +var points_new: PackedVector2Array +var velocities_new: PackedVector2Array + + +func _ready(): + points_new = create_rectangle_points(width, height) + velocities_new.resize(points_new.size()) + var gravity_value = ProjectSettings.get("physics/2d/default_gravity") + var gravity_dir = ProjectSettings.get("physics/2d/default_gravity_vector") + var dir = global_transform.basis_xform(gravity_dir * gravity_value) + velocities_new.fill(dir) + get_tree().create_timer(interval).timeout.connect(_on_timer_timeout) + + +func _on_timer_timeout(): + get_tree().create_timer(interval).timeout.connect(_on_timer_timeout) + if len(points) > max_particles: + return + add_points_and_velocities(points_new, velocities_new) diff --git a/addons/godot-rapier2d/faucet_2d.gd.uid b/addons/godot-rapier2d/faucet_2d.gd.uid new file mode 100644 index 0000000..b2dc99d --- /dev/null +++ b/addons/godot-rapier2d/faucet_2d.gd.uid @@ -0,0 +1 @@ +uid://b8dro054tajt5 diff --git a/addons/godot-rapier2d/fluid_2d_circle.gd b/addons/godot-rapier2d/fluid_2d_circle.gd new file mode 100644 index 0000000..5c93e74 --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_circle.gd @@ -0,0 +1,10 @@ +@tool +extends Fluid2D + +@export var circle_radius := 10: + set(value): + if circle_radius != value: + circle_radius = value + points = create_circle_points(circle_radius) + get: + return circle_radius diff --git a/addons/godot-rapier2d/fluid_2d_circle.gd.uid b/addons/godot-rapier2d/fluid_2d_circle.gd.uid new file mode 100644 index 0000000..37a19c9 --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_circle.gd.uid @@ -0,0 +1 @@ +uid://cjb5jc76sap11 diff --git a/addons/godot-rapier2d/fluid_2d_rectangle.gd b/addons/godot-rapier2d/fluid_2d_rectangle.gd new file mode 100644 index 0000000..d1eb6a2 --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_rectangle.gd @@ -0,0 +1,17 @@ +@tool +extends Fluid2D + +@export var height := 10: + set(value): + if height != value: + height = value + points = create_rectangle_points(width, height) + get: + return height +@export var width := 10: + set(value): + if width != value: + width = value + points = create_rectangle_points(width, height) + get: + return width diff --git a/addons/godot-rapier2d/fluid_2d_rectangle.gd.uid b/addons/godot-rapier2d/fluid_2d_rectangle.gd.uid new file mode 100644 index 0000000..e494172 --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_rectangle.gd.uid @@ -0,0 +1 @@ +uid://ft5j6kv87gu4 diff --git a/addons/godot-rapier2d/fluid_2d_renderer.gd b/addons/godot-rapier2d/fluid_2d_renderer.gd new file mode 100644 index 0000000..dca76dd --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_renderer.gd @@ -0,0 +1,31 @@ +@tool +class_name Fluid2DRenderer +extends MultiMeshInstance2D + +@export var fluid: Fluid2D +@export var color: Color = Color(0.8, 0.8, 0.8, 0.3) +@export var mesh_scale: Vector2 = Vector2(5, 5) + + +func _ready(): + if multimesh == null: + multimesh = MultiMesh.new() + multimesh.mesh = load("res://addons/godot-rapier2d/circle_mesh.tres").duplicate() + multimesh.use_colors = true + if texture == null: + texture = load("res://addons/godot-rapier2d/Radial2D.svg") + + +func _process(_delta): + if fluid == null: + return + global_transform = fluid.global_transform + var index = 0 + multimesh.instance_count = fluid.points.size() + var points = fluid.points + for i in points.size(): + var point = points[i] + var new_transform: Transform2D = Transform2D(0, mesh_scale, 0, point) + multimesh.set_instance_transform_2d(index, new_transform) + multimesh.set_instance_color(index, color) + index += 1 diff --git a/addons/godot-rapier2d/fluid_2d_renderer.gd.uid b/addons/godot-rapier2d/fluid_2d_renderer.gd.uid new file mode 100644 index 0000000..86f3fb3 --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_renderer.gd.uid @@ -0,0 +1 @@ +uid://bup36br5wi81t diff --git a/addons/godot-rapier2d/fluid_2d_shader_renderer.gd b/addons/godot-rapier2d/fluid_2d_shader_renderer.gd new file mode 100644 index 0000000..f2a4c0c --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_shader_renderer.gd @@ -0,0 +1,87 @@ +@tool +class_name Fluid2DShaderRenderer +extends CanvasLayer + +@export var fluid: Fluid2D: + set(value): + fluid = value + update_configuration_warnings() +@export var camera: Camera2D +@export var water_material: Material = load("res://addons/godot-rapier2d/water_shader.tres") +@export var mesh_scale: Vector2 = Vector2(5, 5) +var fluid_renderer: Fluid2DRenderer +var inside_camera: Camera2D: + set(value): + inside_camera = value + update_configuration_warnings() +var sub_viewport_container: SubViewportContainer +var sub_viewport: SubViewport + + +func _get_configuration_warnings(): + var warnings = [] + if camera == null: + warnings += ["Camera property is empty."] + if fluid == null: + warnings += ["Fluid property is empty."] + return warnings + + +func _create_subviewport_container(): + sub_viewport_container = SubViewportContainer.new() + sub_viewport_container.name = "SubViewportContainer" + add_child(sub_viewport_container) + sub_viewport_container.material = water_material + sub_viewport_container.size = Vector2( + ProjectSettings.get("display/window/size/viewport_width"), + ProjectSettings.get("display/window/size/viewport_height") + ) + + +func _create_subviewport(): + sub_viewport = SubViewport.new() + sub_viewport.name = "SubViewport" + sub_viewport_container.add_child(sub_viewport) + sub_viewport.transparent_bg = true + sub_viewport.size = sub_viewport_container.size + + +func _create_fluid_renderer(): + fluid_renderer = Fluid2DRenderer.new() + fluid_renderer.name = "Fluid2DRenderer" + fluid_renderer.color = Color(255, 0, 255) + fluid_renderer.mesh_scale = mesh_scale + fluid_renderer.fluid = fluid + sub_viewport.add_child(fluid_renderer) + + +func _create_inside_camera(): + inside_camera = Camera2D.new() + inside_camera.name = "Camera2D" + inside_camera.material = water_material + sub_viewport.add_child(inside_camera) + + +func _ready() -> void: + _create_subviewport_container() + _create_subviewport() + _create_fluid_renderer() + _create_inside_camera() + if fluid: + fluid.debug_draw = false + + +func _process(_delta: float) -> void: + if camera != null: + inside_camera.offset = camera.offset + inside_camera.zoom = camera.zoom + inside_camera.transform = camera.transform + sub_viewport_container.scale = Vector2(1.0 / camera.zoom.x, 1.0 / camera.zoom.y) + sub_viewport_container.position = camera.global_position + sub_viewport.size = sub_viewport_container.size + if camera.anchor_mode == Camera2D.AnchorMode.ANCHOR_MODE_FIXED_TOP_LEFT: + sub_viewport_container.position -= sub_viewport_container.size / 2 + if !camera.ignore_rotation: + sub_viewport_container.rotation = camera.global_rotation + else: + sub_viewport_container.rotation = 0 diff --git a/addons/godot-rapier2d/fluid_2d_shader_renderer.gd.uid b/addons/godot-rapier2d/fluid_2d_shader_renderer.gd.uid new file mode 100644 index 0000000..c1123ba --- /dev/null +++ b/addons/godot-rapier2d/fluid_2d_shader_renderer.gd.uid @@ -0,0 +1 @@ +uid://cbmryjyosy6rq diff --git a/addons/godot-rapier2d/godot-rapier2d.gdextension b/addons/godot-rapier2d/godot-rapier2d.gdextension new file mode 100644 index 0000000..679d42c --- /dev/null +++ b/addons/godot-rapier2d/godot-rapier2d.gdextension @@ -0,0 +1,38 @@ +[configuration] + +entry_symbol = "gdext_rust_init" +compatibility_minimum = 4.3 + + +[libraries] + +macos.debug = "bin/libgodot_rapier.macos.framework" +macos.release = "bin/libgodot_rapier.macos.framework" +windows.debug.x86_64 = "bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.dll" +windows.release.x86_64 = "bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.dll" +windows.debug.x86_32 = "bin/libgodot_rapier.windows.i686-pc-windows-msvc.dll" +windows.release.x86_32 = "bin/libgodot_rapier.windows.i686-pc-windows-msvc.dll" +windows.debug.arm64 = "bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.dll" +windows.release.arm64 = "bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.dll" +linux.debug.x86_64 = "bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.so" +linux.release.x86_64 = "bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.so" +android.debug.x86_64 = "bin/libgodot_rapier.android.x86_64-linux-android.so" +android.release.x86_64 = "bin/libgodot_rapier.android.x86_64-linux-android.so" +android.debug.x86_32 = "bin/libgodot_rapier.android.i686-linux-android.so" +android.release.x86_32 = "bin/libgodot_rapier.android.i686-linux-android.so" +android.debug.arm64 = "bin/libgodot_rapier.android.aarch64-linux-android.so" +android.release.arm64 = "bin/libgodot_rapier.android.aarch64-linux-android.so" +android.debug.arm32 = "bin/libgodot_rapier.android.armv7-linux-androideabi.so" +android.release.arm32 = "bin/libgodot_rapier.android.armv7-linux-androideabi.so" +ios.debug.arm64 = "bin/libgodot_rapier.ios.arm64.framework" +ios.release.arm64 = "bin/libgodot_rapier.ios.arm64.framework" +ios.debug.x86_64 = "bin/libgodot_rapier.ios.x86_64.framework" +ios.release.x86_64 = "bin/libgodot_rapier.ios.x86_64.framework" +web.debug.threads.wasm32 = "bin/godot_rapier.wasm" +web.release.threads.wasm32 = "bin/godot_rapier.wasm" +web.debug.wasm32 = "bin/wasm-nothreads/godot_rapier.wasm" +web.release.wasm32 = "bin/wasm-nothreads/godot_rapier.wasm" + +[icons] + +Fluid2D = "Fluid2D.svg" diff --git a/addons/godot-rapier2d/godot-rapier2d.gdextension.uid b/addons/godot-rapier2d/godot-rapier2d.gdextension.uid new file mode 100644 index 0000000..f16870a --- /dev/null +++ b/addons/godot-rapier2d/godot-rapier2d.gdextension.uid @@ -0,0 +1 @@ +uid://ctbgbysq5rk54 diff --git a/addons/godot-rapier2d/logo_square_2d.png b/addons/godot-rapier2d/logo_square_2d.png new file mode 100644 index 0000000..3a0eb7f Binary files /dev/null and b/addons/godot-rapier2d/logo_square_2d.png differ diff --git a/addons/godot-rapier2d/logo_square_2d.png.import b/addons/godot-rapier2d/logo_square_2d.png.import new file mode 100644 index 0000000..35dc183 --- /dev/null +++ b/addons/godot-rapier2d/logo_square_2d.png.import @@ -0,0 +1,34 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://d1iwpd5epp8u6" +path="res://.godot/imported/logo_square_2d.png-ee7cb55fd9c4d1815ce7e83cd5401198.ctex" +metadata={ +"vram_texture": false +} + +[deps] + +source_file="res://addons/godot-rapier2d/logo_square_2d.png" +dest_files=["res://.godot/imported/logo_square_2d.png-ee7cb55fd9c4d1815ce7e83cd5401198.ctex"] + +[params] + +compress/mode=0 +compress/high_quality=false +compress/lossy_quality=0.7 +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/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 diff --git a/addons/godot-rapier2d/plugin.cfg b/addons/godot-rapier2d/plugin.cfg new file mode 100644 index 0000000..9592f18 --- /dev/null +++ b/addons/godot-rapier2d/plugin.cfg @@ -0,0 +1,8 @@ +[plugin] + +name="Godot Rapier 2D" +description="A 2D and 3D drop-in replacement for the Godot engine that adds stability and fluids." +author="appsinacup" +version="0.8.10" +flavour="godot-rapier-2d-single-simd-parallel" +script="" diff --git a/addons/godot-rapier2d/plugin.info.cfg b/addons/godot-rapier2d/plugin.info.cfg new file mode 100644 index 0000000..9592f18 --- /dev/null +++ b/addons/godot-rapier2d/plugin.info.cfg @@ -0,0 +1,8 @@ +[plugin] + +name="Godot Rapier 2D" +description="A 2D and 3D drop-in replacement for the Godot engine that adds stability and fluids." +author="appsinacup" +version="0.8.10" +flavour="godot-rapier-2d-single-simd-parallel" +script="" diff --git a/addons/godot-rapier2d/rapier_state_2d.gd b/addons/godot-rapier2d/rapier_state_2d.gd new file mode 100644 index 0000000..ee5a98f --- /dev/null +++ b/addons/godot-rapier2d/rapier_state_2d.gd @@ -0,0 +1,105 @@ +### Supports [CollisionObject2D], [Joint2D] and [CollisionShape2D]. +@icon("res://addons/godot-rapier2d/logo_square_2d.png") +class_name Rapier2DState +extends Node + +var state: Dictionary = {} + + +func _is_physics_object(node: Node) -> bool: + return node is CollisionObject2D or node is Joint2D + + +func _get_all_physics_nodes(p_node: Node, path: String = "/root/") -> Array[String]: + var results: Array[String] = [] + if path == "/root/" && _is_physics_object(p_node): + results.append(path + p_node.name) + path += p_node.name + "/" + for node in p_node.get_children(): + if _is_physics_object(node): + results.append(path + node.name) + if node.get_child_count() > 0: + results.append_array(_get_all_physics_nodes(node, path)) + return results + + +## Save a node's physics state +func save_node(rid: RID, save_json: bool): + if save_json: + return JSON.parse_string(RapierPhysicsServer2D.export_json(rid)) + return RapierPhysicsServer2D.export_binary(rid) + + +## Load a node's physics state +func load_node(rid: RID, data: PackedByteArray): + RapierPhysicsServer2D.import_binary(rid, data) + + +## Save the state of whole world (single space) +func save_state(save_json: bool = false) -> int: + var physics_nodes := _get_all_physics_nodes(get_tree().current_scene) + for node_path in physics_nodes: + var node := get_node(node_path) + var rid: RID + if node is CollisionObject2D: + rid = node.get_rid() + for owner_id in node.get_shape_owners(): + for owner_shape_id in node.shape_owner_get_shape_count(owner_id): + var shape_rid = node.shape_owner_get_shape(owner_id, owner_shape_id).get_rid() + state[node_path + "/" + str(owner_id) + "/" + str(owner_shape_id)] = save_node( + shape_rid, save_json + ) + if node is Joint2D: + rid = node.get_rid() + state[node_path] = save_node(rid, save_json) + var space_rid = get_viewport().world_2d.space + state["space"] = save_node(space_rid, save_json) + state["id"] = RapierPhysicsServer2D.get_global_id() + return hash(JSON.stringify(state)) + + +## Load the state of whole world (single space) +func load_state() -> int: + var physics_nodes := _get_all_physics_nodes(get_tree().current_scene) + for node_path in physics_nodes: + var node := get_node(node_path) + var rid: RID + if node is CollisionObject2D: + rid = node.get_rid() + for owner_id in node.get_shape_owners(): + for owner_shape_id in node.shape_owner_get_shape_count(owner_id): + var shape_rid = node.shape_owner_get_shape(owner_id, owner_shape_id).get_rid() + var shape_state = state[ + node_path + "/" + str(owner_id) + "/" + str(owner_shape_id) + ] + load_node(shape_rid, JSON.parse_string(shape_state)) + if node is Joint2D: + rid = node.get_rid() + var node_state = state[node_path] + load_node(rid, JSON.parse_string(node_state)) + var space_rid = get_viewport().world_2d.space + load_node(space_rid, JSON.parse_string(state["space"])) + RapierPhysicsServer2D.set_global_id(int(state["id"])) + return hash(JSON.stringify(state)) + + +## Export the state to file +func export_state(file_name: String = "user://state.json"): + save_state(false) + FileAccess.open(file_name, FileAccess.WRITE).store_string(JSON.stringify(state, " ")) + + +## Import the state from file +func import_state(file_name: String = "user://state.json"): + state = JSON.parse_string(FileAccess.open(file_name, FileAccess.READ).get_as_text()) + load_state() + + +func _notification(what: int) -> void: + if what == NOTIFICATION_ENTER_TREE: + print("enter tree") + if what == NOTIFICATION_EXIT_TREE: + save_state(false) + FileAccess.open("user://save.json", FileAccess.WRITE).store_string( + JSON.stringify(state, " ") + ) diff --git a/addons/godot-rapier2d/rapier_state_2d.gd.uid b/addons/godot-rapier2d/rapier_state_2d.gd.uid new file mode 100644 index 0000000..7283a48 --- /dev/null +++ b/addons/godot-rapier2d/rapier_state_2d.gd.uid @@ -0,0 +1 @@ +uid://bb60yi0q4lrm5 diff --git a/addons/godot-rapier2d/water_shader.gdshader b/addons/godot-rapier2d/water_shader.gdshader new file mode 100644 index 0000000..ce31fd6 --- /dev/null +++ b/addons/godot-rapier2d/water_shader.gdshader @@ -0,0 +1,22 @@ +shader_type canvas_item; + +uniform float threshold = 0.8; +uniform vec4 water_color: source_color = vec4(0.12,0.24,0.45,0.65); +uniform vec4 test_color: source_color = vec4(1,0,1,1); + +uniform float speed = 0.1; // Speed of movement +uniform float amplitude = 0.1; // Amplitude of movement + +uniform sampler2D water_texture; + +void fragment(){ + float displacement = sin(TIME * speed) * amplitude; + vec4 screen_tex = texture(TEXTURE, SCREEN_UV).rgba; + + float color_distance = screen_tex.r; + if (color_distance > threshold) { + COLOR = texture(water_texture, SCREEN_UV + displacement).rgba * water_color; + } else { + COLOR = vec4(0.0); + } +} \ No newline at end of file diff --git a/addons/godot-rapier2d/water_shader.gdshader.uid b/addons/godot-rapier2d/water_shader.gdshader.uid new file mode 100644 index 0000000..4624c72 --- /dev/null +++ b/addons/godot-rapier2d/water_shader.gdshader.uid @@ -0,0 +1 @@ +uid://dkwdkpx5pacr4 diff --git a/addons/godot-rapier2d/water_shader.tres b/addons/godot-rapier2d/water_shader.tres new file mode 100644 index 0000000..1566b3c --- /dev/null +++ b/addons/godot-rapier2d/water_shader.tres @@ -0,0 +1,11 @@ +[gd_resource type="ShaderMaterial" load_steps=2 format=3 uid="uid://cysnk7s2ll173"] + +[ext_resource type="Shader" path="res://addons/godot-rapier2d/water_shader.gdshader" id="1_wgm3x"] + +[resource] +shader = ExtResource("1_wgm3x") +shader_parameter/threshold = 0.8 +shader_parameter/water_color = Color(0.12, 0.24, 0.45, 0.65) +shader_parameter/test_color = Color(1, 0, 1, 1) +shader_parameter/speed = 0.1 +shader_parameter/amplitude = 0.1 diff --git a/objects/horse/limb.gd b/objects/horse/limb.gd new file mode 100644 index 0000000..a738f40 --- /dev/null +++ b/objects/horse/limb.gd @@ -0,0 +1,2 @@ +class_name Limb +extends RigidBody2D diff --git a/objects/horse/limb.gd.uid b/objects/horse/limb.gd.uid new file mode 100644 index 0000000..88a71e1 --- /dev/null +++ b/objects/horse/limb.gd.uid @@ -0,0 +1 @@ +uid://bvyol20a7g4sb diff --git a/project.godot b/project.godot index dcd7fd4..8171b2a 100644 --- a/project.godot +++ b/project.godot @@ -21,3 +21,16 @@ window/size/viewport_width=640 window/size/viewport_height=480 window/stretch/mode="canvas_items" window/dpi/allow_hidpi=false + +[editor_plugins] + +enabled=PackedStringArray("res://addons/godot-rapier2d/plugin.cfg") + +[physics] + +2d/physics_engine="Rapier2D" + +[rendering] + +renderer/rendering_method="gl_compatibility" +renderer/rendering_method.mobile="gl_compatibility" diff --git a/test_scene_scholar.tscn b/test_scene_scholar.tscn new file mode 100644 index 0000000..9e01655 --- /dev/null +++ b/test_scene_scholar.tscn @@ -0,0 +1,68 @@ +[gd_scene load_steps=6 format=3 uid="uid://c5is82tirrhqf"] + +[ext_resource type="Texture2D" uid="uid://bnvm2tlvp0h7j" path="res://assets/takyoin.png" id="1_ii5g4"] + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_ii5g4"] +size = Vector2(151, 657) + +[sub_resource type="RectangleShape2D" id="RectangleShape2D_l5btf"] +size = Vector2(1288.5, 155.5) + +[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_l5btf"] +radius = 25.0 +height = 208.0 + +[sub_resource type="CircleShape2D" id="CircleShape2D_701xa"] +radius = 22.0907 + +[node name="TestSceneScholar" type="Node2D"] + +[node name="Outerwalls" type="StaticBody2D" parent="."] + +[node name="CollisionShape2D" type="CollisionShape2D" parent="Outerwalls"] +position = Vector2(-76, 321) +shape = SubResource("RectangleShape2D_ii5g4") + +[node name="CollisionShape2D2" type="CollisionShape2D" parent="Outerwalls"] +position = Vector2(716, 283) +shape = SubResource("RectangleShape2D_ii5g4") + +[node name="CollisionShape2D3" type="CollisionShape2D" parent="Outerwalls"] +position = Vector2(578.75, -77.25) +shape = SubResource("RectangleShape2D_l5btf") + +[node name="CollisionShape2D4" type="CollisionShape2D" parent="Outerwalls"] +position = Vector2(360, 525) +shape = SubResource("RectangleShape2D_l5btf") + +[node name="RigidBody2D" type="RigidBody2D" parent="."] +position = Vector2(306, 176) + +[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D"] +texture = ExtResource("1_ii5g4") +region_enabled = true +region_rect = Rect2(0, 56, 82, 206) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D"] +shape = SubResource("CapsuleShape2D_l5btf") + +[node name="RigidBody2D2" type="RigidBody2D" parent="."] +position = Vector2(306, 45) +linear_velocity = Vector2(10, 0) + +[node name="Sprite2D" type="Sprite2D" parent="RigidBody2D2"] +texture = ExtResource("1_ii5g4") +region_enabled = true +region_rect = Rect2(0, 0, 82, 56) + +[node name="CollisionShape2D" type="CollisionShape2D" parent="RigidBody2D2"] +position = Vector2(-3, 9) +shape = SubResource("CircleShape2D_701xa") + +[node name="PinJoint2D" type="PinJoint2D" parent="."] +position = Vector2(304, 74) +node_a = NodePath("../RigidBody2D") +node_b = NodePath("../RigidBody2D2") +angular_limit_enabled = true +angular_limit_lower = -0.349066 +angular_limit_upper = 0.349066