diff --git a/README.md b/README.md
index 3111165..c377a35 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,3 @@
-# Super Space Game
\ No newline at end of file
+# Super Space Game
+
+A full remake of my previous Space Game with far more features, content and functionality. The only borrowed assets from the original game are specific sound effects.
diff --git a/addons/godot-rapier2d/Fluid2D.svg b/addons/godot-rapier2d/Fluid2D.svg
deleted file mode 100644
index e55507f..0000000
--- a/addons/godot-rapier2d/Fluid2D.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-
diff --git a/addons/godot-rapier2d/Fluid2D.svg.import b/addons/godot-rapier2d/Fluid2D.svg.import
deleted file mode 100644
index 34918ff..0000000
--- a/addons/godot-rapier2d/Fluid2D.svg.import
+++ /dev/null
@@ -1,44 +0,0 @@
-[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/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=true
-editor/convert_colors_with_editor_theme=false
diff --git a/addons/godot-rapier2d/LICENSE b/addons/godot-rapier2d/LICENSE
deleted file mode 100644
index 556baa8..0000000
--- a/addons/godot-rapier2d/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-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
deleted file mode 100644
index e7f0c49..0000000
--- a/addons/godot-rapier2d/Radial2D.svg
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
diff --git a/addons/godot-rapier2d/Radial2D.svg.import b/addons/godot-rapier2d/Radial2D.svg.import
deleted file mode 100644
index 1c37720..0000000
--- a/addons/godot-rapier2d/Radial2D.svg.import
+++ /dev/null
@@ -1,44 +0,0 @@
-[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/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=true
-editor/convert_colors_with_editor_theme=false
diff --git a/addons/godot-rapier2d/THIRDPARTY.txt b/addons/godot-rapier2d/THIRDPARTY.txt
deleted file mode 100644
index d115c87..0000000
--- a/addons/godot-rapier2d/THIRDPARTY.txt
+++ /dev/null
@@ -1,288 +0,0 @@
-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/godot_rapier.wasm b/addons/godot-rapier2d/bin/godot_rapier.wasm
deleted file mode 100644
index e00b2bd..0000000
Binary files a/addons/godot-rapier2d/bin/godot_rapier.wasm and /dev/null 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
deleted file mode 100644
index fca0cf8..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.android.aarch64-linux-android.so and /dev/null 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
deleted file mode 100644
index 351b84b..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.android.armv7-linux-androideabi.so and /dev/null 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
deleted file mode 100644
index d92f131..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.android.i686-linux-android.so and /dev/null 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
deleted file mode 100644
index 79be0f6..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.android.x86_64-linux-android.so and /dev/null 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
deleted file mode 100644
index 18b336c..0000000
--- a/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/Info.plist
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- 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
deleted file mode 100644
index 30ac8ae..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.ios.arm64.framework/libgodot_rapier.ios.arm64 and /dev/null 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
deleted file mode 100644
index 747cf69..0000000
--- a/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/Info.plist
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
-
- 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
deleted file mode 100644
index a4ed24e..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.ios.x86_64.framework/libgodot_rapier.ios.x86_64 and /dev/null 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
deleted file mode 100644
index 6172ba8..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.so and /dev/null 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
deleted file mode 100644
index 96092a6..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.so and /dev/null 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
deleted file mode 100644
index 4aaeb60..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.linux.i686-unknown-linux-gnu.so and /dev/null 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
deleted file mode 100644
index 517162b..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.linux.x86_64-unknown-linux-gnu.so and /dev/null 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
deleted file mode 100644
index bde2089..0000000
--- a/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/Resources/Info.plist
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
- 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
deleted file mode 100644
index 1eaabd7..0000000
--- a/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/_CodeSignature/CodeResources
+++ /dev/null
@@ -1,128 +0,0 @@
-
-
-
-
- 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
deleted file mode 100644
index 03dcb6f..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.macos.framework/libgodot_rapier.macos.dylib and /dev/null 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
deleted file mode 100644
index 5946d16..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.windows.aarch64-pc-windows-msvc.dll and /dev/null 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
deleted file mode 100644
index 227ab72..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.windows.i686-pc-windows-msvc.dll and /dev/null 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
deleted file mode 100644
index 6796c05..0000000
Binary files a/addons/godot-rapier2d/bin/libgodot_rapier.windows.x86_64-pc-windows-msvc.dll and /dev/null differ
diff --git a/addons/godot-rapier2d/bin/wasm-nothreads/godot_rapier.wasm b/addons/godot-rapier2d/bin/wasm-nothreads/godot_rapier.wasm
deleted file mode 100644
index 4e4a03a..0000000
Binary files a/addons/godot-rapier2d/bin/wasm-nothreads/godot_rapier.wasm and /dev/null differ
diff --git a/addons/godot-rapier2d/circle_mesh.tres b/addons/godot-rapier2d/circle_mesh.tres
deleted file mode 100644
index 630e7ea..0000000
--- a/addons/godot-rapier2d/circle_mesh.tres
+++ /dev/null
@@ -1,15 +0,0 @@
-[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/custom_nodes/rapier_animatable_body_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_animatable_body_2d.gd
deleted file mode 100644
index e435f65..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_animatable_body_2d.gd
+++ /dev/null
@@ -1,16 +0,0 @@
-class_name RapierAnimatableBody2D
-extends AnimatableBody2D
-
-@export var body_skin: float = 0.0:
- get:
- return body_skin
- set(value):
- if value != body_skin:
- body_skin = value
- set_body_skin(value)
-
-func _ready() -> void:
- set_body_skin(body_skin)
-
-func set_body_skin(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_CONTACT_SKIN, value)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_animatable_body_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_animatable_body_2d.gd.uid
deleted file mode 100644
index 2839ce1..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_animatable_body_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://b1u335fltss66
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_area_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_area_2d.gd
deleted file mode 100644
index bd8ca0a..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_area_2d.gd
+++ /dev/null
@@ -1,16 +0,0 @@
-class_name RapierArea2D
-extends Area2D
-
-@export var body_skin: float = 0.0:
- get:
- return body_skin
- set(value):
- if value != body_skin:
- body_skin = value
- set_body_skin(value)
-
-func _ready() -> void:
- set_body_skin(body_skin)
-
-func set_body_skin(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_CONTACT_SKIN, value)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_area_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_area_2d.gd.uid
deleted file mode 100644
index 12bb5fa..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_area_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://cburu6b4ckehs
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_character_body_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_character_body_2d.gd
deleted file mode 100644
index b96c672..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_character_body_2d.gd
+++ /dev/null
@@ -1,16 +0,0 @@
-class_name RapierCharacterBody2D
-extends CharacterBody2D
-
-@export var body_skin: float = 0.0:
- get:
- return body_skin
- set(value):
- if value != body_skin:
- body_skin = value
- set_body_skin(value)
-
-func _ready() -> void:
- set_body_skin(body_skin)
-
-func set_body_skin(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_CONTACT_SKIN, value)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_character_body_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_character_body_2d.gd.uid
deleted file mode 100644
index 485a21b..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_character_body_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://c5qpdmvd63ugb
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_damped_spring_joint_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_damped_spring_joint_2d.gd
deleted file mode 100644
index a5b1328..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_damped_spring_joint_2d.gd
+++ /dev/null
@@ -1,107 +0,0 @@
-class_name RapierDampedSpringJoint2D
-extends DampedSpringJoint2D
-
-@export_enum("Impulse", "Multibody") var joint_type: int = 0:
- get:
- return joint_type
- set(value):
- if value != joint_type:
- joint_type = value
- set_joint_type(value)
-
-@export var ik_target: Node2D = null:
- set(value):
- ik_target = value
-
-@export_group("IK Constraints")
-
-@export var ik_constrain_x: bool = true:
- set(value):
- ik_constrain_x = value
-
-@export var ik_constrain_y: bool = true:
- set(value):
- ik_constrain_y = value
-
-@export var ik_constrain_rotation: bool = false:
- set(value):
- ik_constrain_rotation = value
-
-@export_group("IK Solver Settings")
-
-@export_range(0.0, 100.0, 0.01) var ik_damping: float = 1.0:
- set(value):
- ik_damping = value
- if is_inside_tree():
- _update_ik_options()
-
-@export_range(1, 100, 1) var ik_max_iterations: int = 10:
- set(value):
- ik_max_iterations = value
- if is_inside_tree():
- _update_ik_options()
-
-var _ik_constrained_axes: int = 3
-
-
-func _init() -> void:
- set_joint_type(joint_type)
-
-func _ready() -> void:
- _update_constrained_axes()
- _update_ik_options()
-
-func _physics_process(delta: float) -> void:
- _solve_ik_for_target()
-
-func _solve_ik_for_target() -> void:
- if not is_inside_tree() or ik_target == null:
- return
-
- if joint_type != 1 and joint_type != 2:
- return
-
- solve_ik(ik_target.global_transform)
-
-func _update_ik_options() -> void:
- if not is_inside_tree():
- return
-
- var joint_rid := get_rid()
- if not joint_rid.is_valid():
- return
-
- RapierPhysicsServer2D.joint_set_ik_options(
- joint_rid,
- ik_damping,
- ik_max_iterations,
- _ik_constrained_axes,
- 0.001,
- 0.001,
- )
-
-func _update_constrained_axes() -> void:
- _ik_constrained_axes = 0
- if ik_constrain_x:
- _ik_constrained_axes |= 1
- if ik_constrain_y:
- _ik_constrained_axes |= 2
- if ik_constrain_rotation:
- _ik_constrained_axes |= 4
-
- if is_inside_tree():
- _update_ik_options()
-
-
-func set_joint_type(type: int) -> void:
- RapierPhysicsServer2D.joint_set_extra_param(get_rid(), RapierPhysicsServer2D.JOINT_TYPE, type)
-
-func solve_ik(target_transform: Transform2D) -> void:
- if not is_inside_tree():
- return
-
- var joint_rid := get_rid()
- if not joint_rid.is_valid():
- return
-
- RapierPhysicsServer2D.joint_solve_inverse_kinematics(joint_rid, target_transform)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_damped_spring_joint_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_damped_spring_joint_2d.gd.uid
deleted file mode 100644
index 4496c90..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_damped_spring_joint_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://cpnkbppqchh48
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_groove_joint_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_groove_joint_2d.gd
deleted file mode 100644
index 0019685..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_groove_joint_2d.gd
+++ /dev/null
@@ -1,107 +0,0 @@
-class_name RapierGrooveJoint2D
-extends GrooveJoint2D
-
-@export_enum("Impulse", "Multibody") var joint_type: int = 0:
- get:
- return joint_type
- set(value):
- if value != joint_type:
- joint_type = value
- set_joint_type(value)
-
-@export var ik_target: Node2D = null:
- set(value):
- ik_target = value
-
-@export_group("IK Constraints")
-
-@export var ik_constrain_x: bool = true:
- set(value):
- ik_constrain_x = value
-
-@export var ik_constrain_y: bool = true:
- set(value):
- ik_constrain_y = value
-
-@export var ik_constrain_rotation: bool = false:
- set(value):
- ik_constrain_rotation = value
-
-@export_group("IK Solver Settings")
-
-@export_range(0.0, 100.0, 0.01) var ik_damping: float = 1.0:
- set(value):
- ik_damping = value
- if is_inside_tree():
- _update_ik_options()
-
-@export_range(1, 100, 1) var ik_max_iterations: int = 10:
- set(value):
- ik_max_iterations = value
- if is_inside_tree():
- _update_ik_options()
-
-var _ik_constrained_axes: int = 3
-
-
-func _init() -> void:
- set_joint_type(joint_type)
-
-func _ready() -> void:
- _update_constrained_axes()
- _update_ik_options()
-
-func _physics_process(delta: float) -> void:
- _solve_ik_for_target()
-
-func _solve_ik_for_target() -> void:
- if not is_inside_tree() or ik_target == null:
- return
-
- if joint_type != 1 and joint_type != 2:
- return
-
- solve_ik(ik_target.global_transform)
-
-func _update_ik_options() -> void:
- if not is_inside_tree():
- return
-
- var joint_rid := get_rid()
- if not joint_rid.is_valid():
- return
-
- RapierPhysicsServer2D.joint_set_ik_options(
- joint_rid,
- ik_damping,
- ik_max_iterations,
- _ik_constrained_axes,
- 0.001,
- 0.001,
- )
-
-func _update_constrained_axes() -> void:
- _ik_constrained_axes = 0
- if ik_constrain_x:
- _ik_constrained_axes |= 1
- if ik_constrain_y:
- _ik_constrained_axes |= 2
- if ik_constrain_rotation:
- _ik_constrained_axes |= 4
-
- if is_inside_tree():
- _update_ik_options()
-
-
-func set_joint_type(type: int) -> void:
- RapierPhysicsServer2D.joint_set_extra_param(get_rid(), RapierPhysicsServer2D.JOINT_TYPE, type)
-
-func solve_ik(target_transform: Transform2D) -> void:
- if not is_inside_tree():
- return
-
- var joint_rid := get_rid()
- if not joint_rid.is_valid():
- return
-
- RapierPhysicsServer2D.joint_solve_inverse_kinematics(joint_rid, target_transform)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_groove_joint_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_groove_joint_2d.gd.uid
deleted file mode 100644
index 4a7110e..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_groove_joint_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://bcr2ccv5ahren
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_physical_bone_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_physical_bone_2d.gd
deleted file mode 100644
index 9837431..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_physical_bone_2d.gd
+++ /dev/null
@@ -1,52 +0,0 @@
-class_name RapierPhysicalBone2D
-extends PhysicalBone2D
-
-@export var massless: bool = false:
- get:
- return massless
- set(value):
- if value != massless:
- massless = value
- set_massless(value)
-
-@export var body_skin: float = 0.0:
- get:
- return body_skin
- set(value):
- if value != body_skin:
- body_skin = value
- set_body_skin(value)
-
-@export var dominance: int = 0:
- get:
- return dominance
- set(value):
- if value != dominance:
- dominance = value
- set_dominance(value)
-
-@export var soft_ccd: float = 0.0:
- get:
- return soft_ccd
- set(value):
- if value != soft_ccd:
- soft_ccd = value
- set_soft_ccd(value)
-
-func _ready() -> void:
- set_massless(massless)
- set_body_skin(body_skin)
- set_dominance(dominance)
- set_soft_ccd(soft_ccd)
-
-func set_body_skin(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_CONTACT_SKIN, value)
-
-func set_dominance(value: int) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_DOMINANCE, value)
-
-func set_soft_ccd(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_SOFT_CCD, value)
-
-func set_massless(value: bool) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_MASSLESS, value)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_physical_bone_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_physical_bone_2d.gd.uid
deleted file mode 100644
index c5d41ed..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_physical_bone_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://cwl8hvchm21pr
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_pin_joint_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_pin_joint_2d.gd
deleted file mode 100644
index 0563948..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_pin_joint_2d.gd
+++ /dev/null
@@ -1,106 +0,0 @@
-class_name RapierPinJoint2D
-extends PinJoint2D
-
-@export_enum("Impulse", "Multibody") var joint_type: int = 0:
- get:
- return joint_type
- set(value):
- if value != joint_type:
- joint_type = value
- set_joint_type(value)
-
-@export var ik_target: Node2D = null:
- set(value):
- ik_target = value
-
-@export_group("IK Constraints")
-
-@export var ik_constrain_x: bool = true:
- set(value):
- ik_constrain_x = value
-
-@export var ik_constrain_y: bool = true:
- set(value):
- ik_constrain_y = value
-
-@export var ik_constrain_rotation: bool = false:
- set(value):
- ik_constrain_rotation = value
-
-@export_group("IK Solver Settings")
-
-@export_range(0.0, 100.0, 0.01) var ik_damping: float = 1.0:
- set(value):
- ik_damping = value
- if is_inside_tree():
- _update_ik_options()
-
-@export_range(1, 100, 1) var ik_max_iterations: int = 10:
- set(value):
- ik_max_iterations = value
- if is_inside_tree():
- _update_ik_options()
-
-var _ik_constrained_axes: int = 3
-
-
-func _init() -> void:
- set_joint_type(joint_type)
-
-func _ready() -> void:
- _update_constrained_axes()
- _update_ik_options()
-
-func _physics_process(delta: float) -> void:
- _solve_ik_for_target()
-
-func _solve_ik_for_target() -> void:
- if not is_inside_tree() or ik_target == null:
- return
-
- if joint_type != 1 and joint_type != 2:
- return
-
- solve_ik(ik_target.global_transform)
-
-func _update_ik_options() -> void:
- if not is_inside_tree():
- return
-
- var joint_rid := get_rid()
- if not joint_rid.is_valid():
- return
-
- RapierPhysicsServer2D.joint_set_ik_options(
- joint_rid,
- ik_damping,
- ik_max_iterations,
- _ik_constrained_axes,
- 0.001,
- 0.001,
- )
-
-func _update_constrained_axes() -> void:
- _ik_constrained_axes = 0
- if ik_constrain_x:
- _ik_constrained_axes |= 1
- if ik_constrain_y:
- _ik_constrained_axes |= 2
- if ik_constrain_rotation:
- _ik_constrained_axes |= 4
-
- if is_inside_tree():
- _update_ik_options()
-
-
-func set_joint_type(type: int) -> void:
- RapierPhysicsServer2D.joint_set_extra_param(get_rid(), RapierPhysicsServer2D.JOINT_TYPE, type)
-
-func solve_ik(target_transform: Transform2D) -> void:
- if not is_inside_tree():
- return
-
- var joint_rid := get_rid()
- if not joint_rid.is_valid():
- return
- RapierPhysicsServer2D.joint_solve_inverse_kinematics(joint_rid, target_transform)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_pin_joint_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_pin_joint_2d.gd.uid
deleted file mode 100644
index 934e4e2..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_pin_joint_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://bv2bc4lt5v7hu
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_rigid_body_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_rigid_body_2d.gd
deleted file mode 100644
index fc93883..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_rigid_body_2d.gd
+++ /dev/null
@@ -1,52 +0,0 @@
-class_name RapierRigidBody2D
-extends RigidBody2D
-
-@export var massless: bool = false:
- get:
- return massless
- set(value):
- if value != massless:
- massless = value
- set_massless(value)
-
-@export var body_skin: float = 0.0:
- get:
- return body_skin
- set(value):
- if value != body_skin:
- body_skin = value
- set_body_skin(value)
-
-@export var dominance: int = 0:
- get:
- return dominance
- set(value):
- if value != dominance:
- dominance = value
- set_dominance(value)
-
-@export var soft_ccd: float = 0.0:
- get:
- return soft_ccd
- set(value):
- if value != soft_ccd:
- soft_ccd = value
- set_soft_ccd(value)
-
-func _init() -> void:
- set_massless(massless)
- set_body_skin(body_skin)
- set_dominance(dominance)
- set_soft_ccd(soft_ccd)
-
-func set_body_skin(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_CONTACT_SKIN, value)
-
-func set_dominance(value: int) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_DOMINANCE, value)
-
-func set_soft_ccd(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_SOFT_CCD, value)
-
-func set_massless(value: bool) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_MASSLESS, value)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_rigid_body_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_rigid_body_2d.gd.uid
deleted file mode 100644
index 6ae6708..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_rigid_body_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://unwhnooi7g2c
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_static_body_2d.gd b/addons/godot-rapier2d/custom_nodes/rapier_static_body_2d.gd
deleted file mode 100644
index 0eaebb7..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_static_body_2d.gd
+++ /dev/null
@@ -1,16 +0,0 @@
-class_name RapierStaticBody2D
-extends StaticBody2D
-
-@export var body_skin: float = 0.0:
- get:
- return body_skin
- set(value):
- if value != body_skin:
- body_skin = value
- set_body_skin(value)
-
-func _ready() -> void:
- set_body_skin(body_skin)
-
-func set_body_skin(value: float) -> void:
- RapierPhysicsServer2D.body_set_extra_param(get_rid(), RapierPhysicsServer2D.BODY_PARAM_CONTACT_SKIN, value)
diff --git a/addons/godot-rapier2d/custom_nodes/rapier_static_body_2d.gd.uid b/addons/godot-rapier2d/custom_nodes/rapier_static_body_2d.gd.uid
deleted file mode 100644
index 4af0167..0000000
--- a/addons/godot-rapier2d/custom_nodes/rapier_static_body_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://busd3yfk5p1mx
diff --git a/addons/godot-rapier2d/faucet_2d.gd b/addons/godot-rapier2d/faucet_2d.gd
deleted file mode 100644
index 6fd8653..0000000
--- a/addons/godot-rapier2d/faucet_2d.gd
+++ /dev/null
@@ -1,27 +0,0 @@
-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
deleted file mode 100644
index 734fd1e..0000000
--- a/addons/godot-rapier2d/faucet_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://d4kq5akkly15i
diff --git a/addons/godot-rapier2d/fluid_2d_circle.gd b/addons/godot-rapier2d/fluid_2d_circle.gd
deleted file mode 100644
index 5c93e74..0000000
--- a/addons/godot-rapier2d/fluid_2d_circle.gd
+++ /dev/null
@@ -1,10 +0,0 @@
-@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
deleted file mode 100644
index 4f873db..0000000
--- a/addons/godot-rapier2d/fluid_2d_circle.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://dhvg3d8muf58l
diff --git a/addons/godot-rapier2d/fluid_2d_rectangle.gd b/addons/godot-rapier2d/fluid_2d_rectangle.gd
deleted file mode 100644
index d1eb6a2..0000000
--- a/addons/godot-rapier2d/fluid_2d_rectangle.gd
+++ /dev/null
@@ -1,17 +0,0 @@
-@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
deleted file mode 100644
index 71eea23..0000000
--- a/addons/godot-rapier2d/fluid_2d_rectangle.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://dw26ibcyam23p
diff --git a/addons/godot-rapier2d/fluid_2d_renderer.gd b/addons/godot-rapier2d/fluid_2d_renderer.gd
deleted file mode 100644
index dca76dd..0000000
--- a/addons/godot-rapier2d/fluid_2d_renderer.gd
+++ /dev/null
@@ -1,31 +0,0 @@
-@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
deleted file mode 100644
index 661433f..0000000
--- a/addons/godot-rapier2d/fluid_2d_renderer.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://c70amrnbdymwf
diff --git a/addons/godot-rapier2d/fluid_2d_shader_renderer.gd b/addons/godot-rapier2d/fluid_2d_shader_renderer.gd
deleted file mode 100644
index f2a4c0c..0000000
--- a/addons/godot-rapier2d/fluid_2d_shader_renderer.gd
+++ /dev/null
@@ -1,87 +0,0 @@
-@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
deleted file mode 100644
index 7f240a2..0000000
--- a/addons/godot-rapier2d/fluid_2d_shader_renderer.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://qo8bibm1ntwf
diff --git a/addons/godot-rapier2d/godot-rapier2d.gdextension b/addons/godot-rapier2d/godot-rapier2d.gdextension
deleted file mode 100644
index 07671de..0000000
--- a/addons/godot-rapier2d/godot-rapier2d.gdextension
+++ /dev/null
@@ -1,44 +0,0 @@
-[configuration]
-
-entry_symbol = "rapier_2d_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"
-linux.debug.x86_32 = "bin/libgodot_rapier.linux.i686-unknown-linux-gnu.so"
-linux.release.x86_32 = "bin/libgodot_rapier.linux.i686-unknown-linux-gnu.so"
-linux.debug.arm64 = "bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.so"
-linux.release.arm64 = "bin/libgodot_rapier.linux.aarch64-unknown-linux-gnu.so"
-linux.debug.arm32 = "bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.so"
-linux.release.arm32 = "bin/libgodot_rapier.linux.armv7-unknown-linux-gnueabihf.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
deleted file mode 100644
index bdc0fd7..0000000
--- a/addons/godot-rapier2d/godot-rapier2d.gdextension.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://cydvir118dli4
diff --git a/addons/godot-rapier2d/logo_square_2d.png b/addons/godot-rapier2d/logo_square_2d.png
deleted file mode 100644
index 3a0eb7f..0000000
Binary files a/addons/godot-rapier2d/logo_square_2d.png and /dev/null differ
diff --git a/addons/godot-rapier2d/plugin.info.cfg b/addons/godot-rapier2d/plugin.info.cfg
deleted file mode 100644
index cc2b45b..0000000
--- a/addons/godot-rapier2d/plugin.info.cfg
+++ /dev/null
@@ -1,8 +0,0 @@
-[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.24"
-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
deleted file mode 100644
index 309eeca..0000000
--- a/addons/godot-rapier2d/rapier_state_2d.gd
+++ /dev/null
@@ -1,108 +0,0 @@
-### 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"]))
- RapierPhysicsServer2D.space_flush_queries(space_rid)
- return hash(JSON.stringify(state, " "))
-
-
-## Export the state to file
-func export_state(file_name: String = "user://state.json"):
- var hash = save_state(false)
- FileAccess.open(file_name, FileAccess.WRITE).store_string(JSON.stringify(state, " "))
- return hash
-
-
-## 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())
- return load_state()
-
-
-#func _notification(what: int) -> void:
- #if what == NOTIFICATION_ENTER_TREE:
- #print("enter tree")
- # TODO reload state here?
- #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
deleted file mode 100644
index 0f13a18..0000000
--- a/addons/godot-rapier2d/rapier_state_2d.gd.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://b4u71ckduv8gr
diff --git a/addons/godot-rapier2d/water_shader.gdshader b/addons/godot-rapier2d/water_shader.gdshader
deleted file mode 100644
index ce31fd6..0000000
--- a/addons/godot-rapier2d/water_shader.gdshader
+++ /dev/null
@@ -1,22 +0,0 @@
-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
deleted file mode 100644
index fb18657..0000000
--- a/addons/godot-rapier2d/water_shader.gdshader.uid
+++ /dev/null
@@ -1 +0,0 @@
-uid://cgysptptloown
diff --git a/addons/godot-rapier2d/water_shader.tres b/addons/godot-rapier2d/water_shader.tres
deleted file mode 100644
index 1566b3c..0000000
--- a/addons/godot-rapier2d/water_shader.tres
+++ /dev/null
@@ -1,11 +0,0 @@
-[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/project.godot b/project.godot
index c43dad4..3ece3e0 100644
--- a/project.godot
+++ b/project.godot
@@ -132,7 +132,7 @@ interact={
[physics]
-2d/physics_engine="Rapier2D"
+2d/physics_engine="GodotPhysics2D"
2d/default_gravity=0.0
2d/default_gravity_vector=Vector2(0, 0)
diff --git a/scenes/game.tscn b/scenes/game.tscn
index 2f80753..610711c 100644
--- a/scenes/game.tscn
+++ b/scenes/game.tscn
@@ -15,6 +15,20 @@
[ext_resource type="Texture2D" uid="uid://hgfmjw6gbdnn" path="res://textures/blank.png" id="12_trtic"]
[ext_resource type="Script" uid="uid://d0txwo63hlrsy" path="res://scripts/enterable.gd" id="13_trtic"]
+[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ir15t"]
+texture = ExtResource("12_trtic")
+0:0/size_in_atlas = Vector2i(2, 2)
+0:0/0 = 0
+0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
+
+[sub_resource type="TileSet" id="TileSet_ca42v"]
+tile_size = Vector2i(32, 32)
+physics_layer_0/collision_layer = 1
+sources/0 = SubResource("TileSetAtlasSource_ir15t")
+
+[sub_resource type="RectangleShape2D" id="RectangleShape2D_kvuet"]
+size = Vector2(128, 32)
+
[sub_resource type="ConvexPolygonShape2D" id="ConvexPolygonShape2D_trtic"]
points = PackedVector2Array(-16, 16, 16, 16, 0, -16)
@@ -35,20 +49,6 @@ shader_parameter/use_lens_distortion = true
shader_parameter/overlay_color = Color(1, 1, 1, 10)
shader_parameter/lens_distortion_strength = 0.0
-[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ir15t"]
-texture = ExtResource("12_trtic")
-0:0/size_in_atlas = Vector2i(2, 2)
-0:0/0 = 0
-0:0/0/physics_layer_0/polygon_0/points = PackedVector2Array(-16, -16, 16, -16, 16, 16, -16, 16)
-
-[sub_resource type="TileSet" id="TileSet_ca42v"]
-tile_size = Vector2i(32, 32)
-physics_layer_0/collision_layer = 1
-sources/0 = SubResource("TileSetAtlasSource_ir15t")
-
-[sub_resource type="RectangleShape2D" id="RectangleShape2D_kvuet"]
-size = Vector2(128, 32)
-
[node name="Game" type="Node2D"]
script = ExtResource("1_u5sy4")
@@ -65,7 +65,28 @@ bus = &"Music"
[node name="Navring" type="Sprite2D" parent="."]
texture = ExtResource("10_dinhu")
+[node name="SpaceStation1" type="Sprite2D" parent="."]
+scale = Vector2(2, 2)
+texture = ExtResource("12_dinhu")
+script = ExtResource("13_trtic")
+
+[node name="Collision" type="TileMapLayer" parent="SpaceStation1"]
+scale = Vector2(0.5, 0.5)
+tile_map_data = PackedByteArray("AAD6/wgAAAAAAAAAAAD6/wkAAAAAAAAAAAD6/woAAAAAAAAAAAD6/wsAAAAAAAAAAAD6/wwAAAAAAAAAAAD6/w0AAAAAAAAAAAD6/w4AAAAAAAAAAAD6/w8AAAAAAAAAAAD7/w8AAAAAAAAAAAD8/w8AAAAAAAAAAAD9/w8AAAAAAAAAAAD9/w4AAAAAAAAAAAD8/w4AAAAAAAAAAAD7/w4AAAAAAAAAAAD7/w0AAAAAAAAAAAD7/wwAAAAAAAAAAAD7/wsAAAAAAAAAAAD7/woAAAAAAAAAAAD7/wkAAAAAAAAAAAD7/wgAAAAAAAAAAAD8/wgAAAAAAAAAAAD9/wgAAAAAAAAAAAD9/wkAAAAAAAAAAAD9/woAAAAAAAAAAAD9/wsAAAAAAAAAAAD9/wwAAAAAAAAAAAD8/wwAAAAAAAAAAAD8/w0AAAAAAAAAAAD8/wsAAAAAAAAAAAD8/woAAAAAAAAAAAD8/wkAAAAAAAAAAAD+/wkAAAAAAAAAAAD//wkAAAAAAAAAAAAAAAkAAAAAAAAAAAABAAkAAAAAAAAAAAACAAkAAAAAAAAAAAADAAkAAAAAAAAAAAABAAgAAAAAAAAAAAAAAAgAAAAAAAAAAAD//wgAAAAAAAAAAAD+/wgAAAAAAAAAAAD+/wcAAAAAAAAAAAD+/wYAAAAAAAAAAAD//wYAAAAAAAAAAAAAAAYAAAAAAAAAAAABAAYAAAAAAAAAAAABAAcAAAAAAAAAAAACAAgAAAAAAAAAAAADAAgAAAAAAAAAAAAEAAkAAAAAAAAAAAAEAAgAAAAAAAAAAAAFAAgAAAAAAAAAAAADAAoAAAAAAAAAAAACAAoAAAAAAAAAAAACAAsAAAAAAAAAAAACAAwAAAAAAAAAAAACAA0AAAAAAAAAAAACAA4AAAAAAAAAAAACAA8AAAAAAAAAAAADAA8AAAAAAAAAAAAEAA8AAAAAAAAAAAAFAA8AAAAAAAAAAAAFAA4AAAAAAAAAAAAEAA4AAAAAAAAAAAADAA4AAAAAAAAAAAADAA0AAAAAAAAAAAAEAA0AAAAAAAAAAAAFAA0AAAAAAAAAAAAFAAwAAAAAAAAAAAAEAAwAAAAAAAAAAAADAAwAAAAAAAAAAAADAAsAAAAAAAAAAAAEAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAFAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAFAAkAAAAAAAAAAAD4/wEAAAAAAAAAAAD4/wIAAAAAAAAAAAD4/wMAAAAAAAAAAAD4/wQAAAAAAAAAAAD5/wEAAAAAAAAAAAD5/wIAAAAAAAAAAAD5/wMAAAAAAAAAAAD5/wQAAAAAAAAAAAD6/wEAAAAAAAAAAAD6/wIAAAAAAAAAAAD6/wMAAAAAAAAAAAD6/wQAAAAAAAAAAAD7/wEAAAAAAAAAAAD7/wIAAAAAAAAAAAD7/wMAAAAAAAAAAAD7/wQAAAAAAAAAAAD8/wEAAAAAAAAAAAD8/wIAAAAAAAAAAAD8/wMAAAAAAAAAAAD8/wQAAAAAAAAAAAD9/wEAAAAAAAAAAAD9/wIAAAAAAAAAAAD9/wMAAAAAAAAAAAD9/wQAAAAAAAAAAAD+/wEAAAAAAAAAAAD+/wIAAAAAAAAAAAD+/wMAAAAAAAAAAAD+/wQAAAAAAAAAAAD//wEAAAAAAAAAAAD//wIAAAAAAAAAAAD//wMAAAAAAAAAAAD//wQAAAAAAAAAAAD//wUAAAAAAAAAAADz/wYAAAAAAAAAAADz/wcAAAAAAAAAAADz/wgAAAAAAAAAAADz/wkAAAAAAAAAAAD0/wYAAAAAAAAAAAD0/wcAAAAAAAAAAAD0/wgAAAAAAAAAAAD0/wkAAAAAAAAAAAD1/wYAAAAAAAAAAAD1/wcAAAAAAAAAAAD1/wgAAAAAAAAAAAD1/wkAAAAAAAAAAAD2/wYAAAAAAAAAAAD2/wcAAAAAAAAAAAD2/wgAAAAAAAAAAAD2/wkAAAAAAAAAAAD3/wYAAAAAAAAAAAD3/wcAAAAAAAAAAAD3/wgAAAAAAAAAAAD3/wkAAAAAAAAAAAD4/wYAAAAAAAAAAAD4/wcAAAAAAAAAAAD4/wgAAAAAAAAAAAD4/wkAAAAAAAAAAAD5/wcAAAAAAAAAAAD5/wgAAAAAAAAAAAD6/wcAAAAAAAAAAAD7/wcAAAAAAAAAAAD8/wcAAAAAAAAAAAD9/wcAAAAAAAAAAAD0//3/AAAAAAAAAAD0//7/AAAAAAAAAAD0////AAAAAAAAAAD0/wAAAAAAAAAAAAD0/wEAAAAAAAAAAAD0/wIAAAAAAAAAAAD0/wMAAAAAAAAAAAD0/wQAAAAAAAAAAAD0/wUAAAAAAAAAAAD1//3/AAAAAAAAAAD1//7/AAAAAAAAAAD1////AAAAAAAAAAD1/wAAAAAAAAAAAAD1/wEAAAAAAAAAAAD1/wIAAAAAAAAAAAD1/wMAAAAAAAAAAAD1/wQAAAAAAAAAAAD1/wUAAAAAAAAAAADx//3/AAAAAAAAAADy//3/AAAAAAAAAADz//3/AAAAAAAAAAD2//3/AAAAAAAAAADx//7/AAAAAAAAAADx/wIAAAAAAAAAAADx/wMAAAAAAAAAAADy//7/AAAAAAAAAADy////AAAAAAAAAADy/wAAAAAAAAAAAADy/wEAAAAAAAAAAADy/wIAAAAAAAAAAADy/wMAAAAAAAAAAADz//7/AAAAAAAAAADz////AAAAAAAAAADz/wAAAAAAAAAAAADz/wEAAAAAAAAAAADz/wIAAAAAAAAAAADz/wMAAAAAAAAAAAD2//7/AAAAAAAAAAD2////AAAAAAAAAAD2/wAAAAAAAAAAAAD2/wEAAAAAAAAAAAD2/wIAAAAAAAAAAAD2/wMAAAAAAAAAAADw//D/AAAAAAAAAADw//H/AAAAAAAAAADw//L/AAAAAAAAAADw//P/AAAAAAAAAADw//T/AAAAAAAAAADw//X/AAAAAAAAAADw//b/AAAAAAAAAADx//D/AAAAAAAAAADx//H/AAAAAAAAAADx//L/AAAAAAAAAADx//P/AAAAAAAAAADx//T/AAAAAAAAAADx//X/AAAAAAAAAADx//b/AAAAAAAAAADy//D/AAAAAAAAAADy//H/AAAAAAAAAADy//L/AAAAAAAAAADy//P/AAAAAAAAAADy//T/AAAAAAAAAADy//X/AAAAAAAAAADy//b/AAAAAAAAAADz//D/AAAAAAAAAADz//H/AAAAAAAAAADz//L/AAAAAAAAAADz//P/AAAAAAAAAADz//T/AAAAAAAAAADz//X/AAAAAAAAAADz//b/AAAAAAAAAAD0//D/AAAAAAAAAAD0//H/AAAAAAAAAAD0//L/AAAAAAAAAAD0//P/AAAAAAAAAAD0//T/AAAAAAAAAAD0//X/AAAAAAAAAAD0//b/AAAAAAAAAAD1//D/AAAAAAAAAAD1//H/AAAAAAAAAAD1//L/AAAAAAAAAAD1//P/AAAAAAAAAAD1//T/AAAAAAAAAAD1//X/AAAAAAAAAAD1//b/AAAAAAAAAAD2//D/AAAAAAAAAAD2//H/AAAAAAAAAAD2//L/AAAAAAAAAAD2//P/AAAAAAAAAAD2//T/AAAAAAAAAAD2//X/AAAAAAAAAAD2//b/AAAAAAAAAAD1//f/AAAAAAAAAAD1//j/AAAAAAAAAAD1//n/AAAAAAAAAAD1//r/AAAAAAAAAAD1//v/AAAAAAAAAAD1//z/AAAAAAAAAAD0//j/AAAAAAAAAAD0//n/AAAAAAAAAAD0//r/AAAAAAAAAAD0//v/AAAAAAAAAAD2//j/AAAAAAAAAAD2//n/AAAAAAAAAAD2//r/AAAAAAAAAAD2//v/AAAAAAAAAAD4//r/AAAAAAAAAAD4//v/AAAAAAAAAAD4//z/AAAAAAAAAAD4//3/AAAAAAAAAAD4//7/AAAAAAAAAAD4////AAAAAAAAAAD5//r/AAAAAAAAAAD5//v/AAAAAAAAAAD5//z/AAAAAAAAAAD5//3/AAAAAAAAAAD5//7/AAAAAAAAAAD5////AAAAAAAAAAD6//r/AAAAAAAAAAD6//v/AAAAAAAAAAD6//z/AAAAAAAAAAD6//3/AAAAAAAAAAD6//7/AAAAAAAAAAD6////AAAAAAAAAAD7//r/AAAAAAAAAAD7//v/AAAAAAAAAAD7//z/AAAAAAAAAAD7//3/AAAAAAAAAAD7//7/AAAAAAAAAAD7////AAAAAAAAAAD8//r/AAAAAAAAAAD8//v/AAAAAAAAAAD8//z/AAAAAAAAAAD8//3/AAAAAAAAAAD8//7/AAAAAAAAAAD8////AAAAAAAAAAD9//r/AAAAAAAAAAD9//v/AAAAAAAAAAD9//z/AAAAAAAAAAD9//3/AAAAAAAAAAD9//7/AAAAAAAAAAD9////AAAAAAAAAAD6/wAAAAAAAAAAAAD8/wAAAAAAAAAAAAD6//X/AAAAAAAAAAD6//b/AAAAAAAAAAD6//f/AAAAAAAAAAD6//j/AAAAAAAAAAD7//X/AAAAAAAAAAD7//b/AAAAAAAAAAD7//f/AAAAAAAAAAD7//j/AAAAAAAAAAD8//X/AAAAAAAAAAD8//b/AAAAAAAAAAD8//f/AAAAAAAAAAD8//j/AAAAAAAAAAD9//X/AAAAAAAAAAD9//b/AAAAAAAAAAD9//f/AAAAAAAAAAD9//j/AAAAAAAAAAD7//n/AAAAAAAAAAD+//z/AAAAAAAAAAD///z/AAAAAAAAAAAAAPz/AAAAAAAAAAABAPz/AAAAAAAAAAACAPz/AAAAAAAAAAADAPz/AAAAAAAAAAD///v/AAAAAAAAAAD///3/AAAAAAAAAAAAAPv/AAAAAAAAAAAAAP3/AAAAAAAAAAABAPv/AAAAAAAAAAABAP3/AAAAAAAAAAACAPv/AAAAAAAAAAACAP3/AAAAAAAAAAADAPv/AAAAAAAAAAADAP3/AAAAAAAAAAACAP7/AAAAAAAAAAAAAAIAAAAAAAAAAAAAAAMAAAAAAAAAAAABAAIAAAAAAAAAAAABAAMAAAAAAAAAAAACAAIAAAAAAAAAAAACAAMAAAAAAAAAAAADAAIAAAAAAAAAAAADAAMAAAAAAAAAAAAEAAIAAAAAAAAAAAAEAAMAAAAAAAAAAAAFAAIAAAAAAAAAAAAFAAMAAAAAAAAAAAAGAAIAAAAAAAAAAAAGAAMAAAAAAAAAAAABAP//AAAAAAAAAAABAAAAAAAAAAAAAAABAAEAAAAAAAAAAAABAAQAAAAAAAAAAAACAP//AAAAAAAAAAACAAAAAAAAAAAAAAACAAEAAAAAAAAAAAACAAQAAAAAAAAAAAADAP//AAAAAAAAAAADAAAAAAAAAAAAAAADAAEAAAAAAAAAAAADAAQAAAAAAAAAAAAEAP//AAAAAAAAAAAEAAAAAAAAAAAAAAAEAAEAAAAAAAAAAAAEAAQAAAAAAAAAAAAFAP//AAAAAAAAAAAFAAAAAAAAAAAAAAAFAAEAAAAAAAAAAAAFAAQAAAAAAAAAAAAGAP//AAAAAAAAAAAGAAAAAAAAAAAAAAAGAAEAAAAAAAAAAAAGAAQAAAAAAAAAAAA=")
+tile_set = SubResource("TileSet_ca42v")
+
+[node name="EnterHitbox" type="Area2D" parent="SpaceStation1"]
+position = Vector2(0, 176)
+
+[node name="CollisionShape2D" type="CollisionShape2D" parent="SpaceStation1/EnterHitbox"]
+shape = SubResource("RectangleShape2D_kvuet")
+
+[node name="ExitPoint" type="Node2D" parent="SpaceStation1"]
+position = Vector2(0, 245.5)
+rotation = 3.1415927
+
[node name="Player" type="RigidBody2D" parent="."]
+position = Vector2(-78, 957)
linear_damp = 6.247
script = ExtResource("1_yqjtg")
@@ -153,26 +174,6 @@ grow_horizontal = 2
grow_vertical = 2
color = Color(1, 1, 1, 0)
-[node name="SpaceStation1" type="Sprite2D" parent="."]
-scale = Vector2(2, 2)
-texture = ExtResource("12_dinhu")
-script = ExtResource("13_trtic")
-
-[node name="Collision" type="TileMapLayer" parent="SpaceStation1"]
-scale = Vector2(0.5, 0.5)
-tile_map_data = PackedByteArray("AAD6/wgAAAAAAAAAAAD6/wkAAAAAAAAAAAD6/woAAAAAAAAAAAD6/wsAAAAAAAAAAAD6/wwAAAAAAAAAAAD6/w0AAAAAAAAAAAD6/w4AAAAAAAAAAAD6/w8AAAAAAAAAAAD7/w8AAAAAAAAAAAD8/w8AAAAAAAAAAAD9/w8AAAAAAAAAAAD9/w4AAAAAAAAAAAD8/w4AAAAAAAAAAAD7/w4AAAAAAAAAAAD7/w0AAAAAAAAAAAD7/wwAAAAAAAAAAAD7/wsAAAAAAAAAAAD7/woAAAAAAAAAAAD7/wkAAAAAAAAAAAD7/wgAAAAAAAAAAAD8/wgAAAAAAAAAAAD9/wgAAAAAAAAAAAD9/wkAAAAAAAAAAAD9/woAAAAAAAAAAAD9/wsAAAAAAAAAAAD9/wwAAAAAAAAAAAD8/wwAAAAAAAAAAAD8/w0AAAAAAAAAAAD8/wsAAAAAAAAAAAD8/woAAAAAAAAAAAD8/wkAAAAAAAAAAAD+/wkAAAAAAAAAAAD//wkAAAAAAAAAAAAAAAkAAAAAAAAAAAABAAkAAAAAAAAAAAACAAkAAAAAAAAAAAADAAkAAAAAAAAAAAABAAgAAAAAAAAAAAAAAAgAAAAAAAAAAAD//wgAAAAAAAAAAAD+/wgAAAAAAAAAAAD+/wcAAAAAAAAAAAD+/wYAAAAAAAAAAAD//wYAAAAAAAAAAAAAAAYAAAAAAAAAAAABAAYAAAAAAAAAAAABAAcAAAAAAAAAAAACAAgAAAAAAAAAAAADAAgAAAAAAAAAAAAEAAkAAAAAAAAAAAAEAAgAAAAAAAAAAAAFAAgAAAAAAAAAAAADAAoAAAAAAAAAAAACAAoAAAAAAAAAAAACAAsAAAAAAAAAAAACAAwAAAAAAAAAAAACAA0AAAAAAAAAAAACAA4AAAAAAAAAAAACAA8AAAAAAAAAAAADAA8AAAAAAAAAAAAEAA8AAAAAAAAAAAAFAA8AAAAAAAAAAAAFAA4AAAAAAAAAAAAEAA4AAAAAAAAAAAADAA4AAAAAAAAAAAADAA0AAAAAAAAAAAAEAA0AAAAAAAAAAAAFAA0AAAAAAAAAAAAFAAwAAAAAAAAAAAAEAAwAAAAAAAAAAAADAAwAAAAAAAAAAAADAAsAAAAAAAAAAAAEAAsAAAAAAAAAAAAFAAsAAAAAAAAAAAAFAAoAAAAAAAAAAAAEAAoAAAAAAAAAAAAFAAkAAAAAAAAAAAA=")
-tile_set = SubResource("TileSet_ca42v")
-
-[node name="EnterHitbox" type="Area2D" parent="SpaceStation1"]
-position = Vector2(0, 176)
-
-[node name="CollisionShape2D" type="CollisionShape2D" parent="SpaceStation1/EnterHitbox"]
-shape = SubResource("RectangleShape2D_kvuet")
-
-[node name="ExitPoint" type="Node2D" parent="SpaceStation1"]
-position = Vector2(0, 245.5)
-rotation = 3.1415927
-
-[connection signal="body_shape_entered" from="Player/Hitbox" to="Player" method="_on_hitbox_body_shape_entered"]
[connection signal="area_entered" from="SpaceStation1/EnterHitbox" to="SpaceStation1" method="_on_enter_hitbox_area_entered"]
[connection signal="body_entered" from="SpaceStation1/EnterHitbox" to="SpaceStation1" method="_on_enter_hitbox_body_entered"]
+[connection signal="body_shape_entered" from="Player/Hitbox" to="Player" method="_on_hitbox_body_shape_entered"]
diff --git a/scenes/ground_test.tscn b/scenes/ground_test.tscn
index b0316fa..22d97a6 100644
--- a/scenes/ground_test.tscn
+++ b/scenes/ground_test.tscn
@@ -1,16 +1,78 @@
-[gd_scene load_steps=19 format=4 uid="uid://crc7t4acei3hj"]
+[gd_scene load_steps=24 format=4 uid="uid://crc7t4acei3hj"]
-[ext_resource type="Texture2D" uid="uid://c6s5n6xqoy353" path="res://textures/player.png" id="1_s58gg"]
[ext_resource type="Script" uid="uid://dowu512otgyyf" path="res://scripts/player_ground.gd" id="1_vgnaj"]
[ext_resource type="Script" uid="uid://b2sw6ymaf4t0s" path="res://scripts/game_ground.gd" id="1_wky5g"]
[ext_resource type="Texture2D" uid="uid://dtwo7g0ipc4k" path="res://textures/ship_1.png" id="3_gysiw"]
[ext_resource type="Texture2D" uid="uid://btcap3oh2dqt8" path="res://textures/wall_tile.png" id="3_jsun3"]
+[ext_resource type="Texture2D" uid="uid://c0cyhybh30ogt" path="res://textures/player-ground-sheet.png" id="3_ypt7u"]
[ext_resource type="Shader" uid="uid://bk7q00br1ms30" path="res://scripts/retro.gdshader" id="4_ppdof"]
[ext_resource type="Script" uid="uid://dnagg4t7wspan" path="res://addons/awesome_input_icons/classes/InputIconTextureRect.gd" id="6_c2suo"]
[ext_resource type="Shader" uid="uid://d3hoh7ec2w8q7" path="res://scripts/outline.gdshader" id="6_ypt7u"]
-[sub_resource type="CircleShape2D" id="CircleShape2D_ppdof"]
-radius = 32.0
+[sub_resource type="AtlasTexture" id="AtlasTexture_jo68p"]
+atlas = ExtResource("3_ypt7u")
+region = Rect2(0, 0, 64, 64)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_6gpfv"]
+atlas = ExtResource("3_ypt7u")
+region = Rect2(64, 0, 64, 64)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_fd1o3"]
+atlas = ExtResource("3_ypt7u")
+region = Rect2(192, 0, 64, 64)
+
+[sub_resource type="AtlasTexture" id="AtlasTexture_yqhs4"]
+atlas = ExtResource("3_ypt7u")
+region = Rect2(128, 0, 64, 64)
+
+[sub_resource type="SpriteFrames" id="SpriteFrames_aergo"]
+animations = [{
+"frames": [{
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_jo68p")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_6gpfv")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_fd1o3")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_yqhs4")
+}],
+"loop": true,
+"name": &"default",
+"speed": 5.0
+}, {
+"frames": [{
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_jo68p")
+}],
+"loop": true,
+"name": &"idle",
+"speed": 5.0
+}, {
+"frames": [{
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_jo68p")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_6gpfv")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_yqhs4")
+}, {
+"duration": 1.0,
+"texture": SubResource("AtlasTexture_fd1o3")
+}],
+"loop": true,
+"name": &"walk",
+"speed": 6.0
+}]
+
+[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_4ldj0"]
+radius = 16.0
+height = 126.0
[sub_resource type="RectangleShape2D" id="RectangleShape2D_gysiw"]
size = Vector2(40, 40)
@@ -78,14 +140,17 @@ color = Color(0.06666667, 0.06666667, 0.06666667, 1)
position = Vector2(349, -58)
script = ExtResource("1_vgnaj")
-[node name="Sprite" type="Sprite2D" parent="PlayerGround"]
-texture = ExtResource("1_s58gg")
+[node name="Sprite" type="AnimatedSprite2D" parent="PlayerGround"]
+scale = Vector2(2, 2)
+sprite_frames = SubResource("SpriteFrames_aergo")
+animation = &"walk"
+frame_progress = 0.122260205
[node name="Camera" type="Camera2D" parent="PlayerGround"]
position_smoothing_enabled = true
-[node name="CollisionShape2D" type="CollisionShape2D" parent="PlayerGround"]
-shape = SubResource("CircleShape2D_ppdof")
+[node name="CollisionShape" type="CollisionShape2D" parent="PlayerGround"]
+shape = SubResource("CapsuleShape2D_4ldj0")
[node name="ExitShip" type="Sprite2D" parent="."]
position = Vector2(87, 63)
diff --git a/scripts/player_ground.gd b/scripts/player_ground.gd
index 5e3618c..eae2c49 100644
--- a/scripts/player_ground.gd
+++ b/scripts/player_ground.gd
@@ -1,9 +1,24 @@
extends CharacterBody2D
+func _ready() -> void:
+ $Sprite.play()
+
func _process(delta: float) -> void:
var horizontial_movement = Input.get_axis("ground_left", "ground_right")
var vertical_movement = Input.get_axis("ground_up", "ground_down")
velocity = Vector2(256 * horizontial_movement, 256 * vertical_movement)
+ if horizontial_movement > 0.1:
+ $Sprite.scale.x = -2
+ if horizontial_movement < -0.1:
+ $Sprite.scale.x = 2
+
+ if velocity.length() > 8:
+ $Sprite.animation = "walk"
+ if abs(horizontial_movement) > abs(vertical_movement): $Sprite.speed_scale = abs(horizontial_movement)
+ else: $Sprite.speed_scale = abs(vertical_movement)
+ else:
+ $Sprite.animation = "idle"
+
move_and_slide()
diff --git a/textures/player-ground-sheet.png b/textures/player-ground-sheet.png
new file mode 100644
index 0000000..5ed70fc
Binary files /dev/null and b/textures/player-ground-sheet.png differ
diff --git a/addons/godot-rapier2d/logo_square_2d.png.import b/textures/player-ground-sheet.png.import
similarity index 72%
rename from addons/godot-rapier2d/logo_square_2d.png.import
rename to textures/player-ground-sheet.png.import
index b791ec3..1865369 100644
--- a/addons/godot-rapier2d/logo_square_2d.png.import
+++ b/textures/player-ground-sheet.png.import
@@ -2,16 +2,16 @@
importer="texture"
type="CompressedTexture2D"
-uid="uid://d1iwpd5epp8u6"
-path="res://.godot/imported/logo_square_2d.png-ee7cb55fd9c4d1815ce7e83cd5401198.ctex"
+uid="uid://c0cyhybh30ogt"
+path="res://.godot/imported/player-ground-sheet.png-227ddb96ed2997b2b0c3536b13dffc03.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"]
+source_file="res://textures/player-ground-sheet.png"
+dest_files=["res://.godot/imported/player-ground-sheet.png-227ddb96ed2997b2b0c3536b13dffc03.ctex"]
[params]
diff --git a/textures/player.png b/textures/player.png
index 6e344f2..9277dba 100644
Binary files a/textures/player.png and b/textures/player.png differ
diff --git a/textures/space_station_1.png b/textures/space_station_1.png
index 0212ba2..696068f 100644
Binary files a/textures/space_station_1.png and b/textures/space_station_1.png differ