-
Notifications
You must be signed in to change notification settings - Fork 17
Home
Welcome to the wiki! As the plugin grows, this wiki will replace the README.md file, which is already getting too big to manage.
Are you lost? Click here to get started!
This plugin was originally made to serve a few use-cases in our team's workflow. It's purpose is to have a simple library that solves problems related to Scene changes. Right now, this means easy transitions and keeping references to unique nodes, but that may change in the future.
Our main goal is to provide a general-use, focused and simple API. This means a couple of things:
- All functions of this library should be related to issues related to changes in scenes.
- This is subjective. Discussions regarding what should or should not be added are always up for debate.
- All API parameters that are not strictly necessary should be optional.
- For example: If I want to reload the scene, I should just need to call
SceneManager.reload_scene()
. We can add an options object or something, but using it without parameters should work with some default values
- For example: If I want to reload the scene, I should just need to call
- No overly specific functions, to keep the library easy to maintain.
- This is obviously subjective. If enough people request a feature we believe is overly specific, we will add it.
- Always prefer inversion of control.
- Instead of implementing a very specific solution to a problem, give the user more control so they can do it themselves.
- A good example of this is the Custom Animations feature: we could've added more animations ourselves, or make a preset AnimationPlayer file that the user would need to change, but instead we opted for any user to just make the AnimationPlayer by themselves (following a couple of rules). This should in theory allow for future problems to be solved by the users and keep the library cleaner.
We accept and encourage code contributions. Make sure to create an issue beforehand detailing the changes you want to make, since they may or may not align with our goals for this library. Anyone who shares our goals and contributes can become a maintainer if they wish to.
Since Godot 4 is now released, the main branch has switched to the Godot 4 version, and all releases after 1.0 target Godot 4. Godot 3 is still supported in our legacy-godot-3.x
branch, and further releases targeting Godot 3 will be 0.x