GithubHelp home page GithubHelp logo

maktoobgar / scene_manager Goto Github PK

View Code? Open in Web Editor NEW
173.0 173.0 9.0 85.94 MB

A tool to manage, organize and ease transitions between different scenes.

License: MIT License

Python 5.94% GDScript 94.06%
gdscript godot godot-addon godot-engine godot-plugin scene-manager

scene_manager's Introduction

๐Ÿ’ซ About Me:

๐Ÿ˜Ž I'm a programmer who has the audacity of calling himself a fullstack developer.
๐Ÿ’ฐ I'm currently working on making a business.
๐Ÿ‘ฅ In need of having a hard work and always focused team.
โŒจ๏ธ Mainly use next.js and golang in web development.

๐ŸŒ Socials:

Discord LinkedIn Stack Overflow

๐Ÿ’ป Tech Stack:

C++ C# C CSS3 Go HTML5 JavaScript Python TypeScript GODOT Postgres Markdown NodeJS TypeScript React Next JS MongoDB Django DjangoREST Express.js FastAPI Nginx MySQL SQLite Adobe Photoshop Gimp Gnu Image Manipulation Program Figma LINUX Trello Postman Docker Swagger C++

๐Ÿ“Š GitHub Stats:



๐Ÿ† GitHub Trophies

โœ๏ธ Random Dev Quote


scene_manager's People

Contributors

maktoobgar avatar mashedd avatar palkiaa avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

scene_manager's Issues

Add open scene shortcut button

Would be nice to have a shortcut button next to each of the scene buttons (or even something like ctrl + click) to open that scene in the editor, instead of going through the project to find it again to look at it.

[Bug] Possible threadlock when using load_scene_interactive()

The load_scene_interactive() method of the SceneManager is hardcorded to use use_sub_threads = true when calling ResourceLoader.load_threaded_request(). In the newest versions of Godot there seems to be a bug that can cause a threadlock in the resource loader that will result in infinite loading of the scene without any error.

This is likely cause by use of the preload() function shortly prior to or at the same time as ResourceLoader.load_threaded_request() with use_sub_threads = true.

See the following two GitHub issues:
godotengine/godot#85255
godotengine/godot#84012

It would be cool to add a warning somewhere in the scene manager documentation about it until its fixed and maybe give the option to set use_sub_threads = false when calling load_scene_interactive().

Thank you very much, this plugin is awesome!

show_first_scene(): Scene is briefly visible

My first scene configured is "StartMenu".
Inside of this scene I have a node "GameStart". This node has a Script "GameStart.gd" with the following contents:

extends Node


## This is no real script.
## It is only used to fade in first game scene.
func _ready() -> void:
    var fadeIn = SceneManager.create_options(10, "fade", 0.1, false)
    var options = SceneManager.create_general_options("black", 0.0, false, true)
    SceneManager.show_first_scene(fadeIn, options)

When I click on Play the StartMenu scene is visible for like half a seconds and then it smoothly fades in.
I this the desired behavior or am I doing something wrong? I thought the first scene should not be visible before fading in.

Exported Transitions Not working.

So if you export the game with the default code the transitions will not work, as the files within the shader_patterns folder have all had a ".import" file type added.

Here's the code to work around this, but it does require the adding of a build feature called "standalone" to the export.
Line 30: scene_manager.gd

if not OS.has_feature("standalone"):
if file_folder.get_extension() == "png":
_patterns[file_folder.replace("."+file_folder.get_extension(), "")] = load(root_path + file_folder)
else:
if file_folder.get_extension() == "import":
_patterns[file_folder.replace("."+file_folder.get_extension(), "").replace(".png", "")] = load(root_path + file_folder.replace("."+file_folder.get_extension(), ""))

Not sure if this helps any, but I hope it does.

Enhancement: C#

So right now I am currently creating a button and then using a Group call to execute a transition, I don't currently have any option to call the transition directly from C#.
I have no real idea how to implement this, but I would love to not have to work around it in this manner.
There is this of course: https://docs.godotengine.org/en/stable/tutorials/scripting/cross_language_scripting.html Perhaps a simple C# wrapper that takes C# method calls and converts them to GDscript?

Of note, I'm not sure how to make this just an enhancement, the only option I seem to have is to make issues, I apologize.

Fade out, do something, fade in

Hi there,

is the following possible?

  1. fade out
  2. do something game related. For example hide/show some Nodes...
  3. fade back in

So it's like change_scene() with null or ignore but split into two calls.

If not, would it be possible to implement?
Thanks in advance ๐Ÿ™

Callback methods?

Not really issue, but have no other way to ask questions.

Is there currently any way to initiate a callback after a transition has finished, or about to finish? Or a signal that is emitted after a transition has finished? There's a few scenarios I'm looking to trigger after a transition has finished and it would be useful if this was something built-in (if it's not already) rather than trying to work around it. Apologies in advance if this is already possible and I'm just overlooking it.

[Feature request] add a loading screen behavior configuration

Hi, first of all, thanks for this amazing addon, helps me a lot !

As you mentionned in your code examples, it's not that hard to add a loading screen, change_scene to your loading screen scene, then inside the loading screen, call change_scene again.

The issue with this is if the second scene is taking some time to load (like a procedurally generated world for instance), in which case you'll have the following:

  • Start scene
  • Transition to loading screen
  • Loading screen
  • Transition to black screen
  • Stays in black screen until scene is ready
  • Transition to target scene
  • Target scene is now current scene

I'm pretty new to Godot so I might be missing something obvious here but it looks like having the Loading screen add a given scene to the tree to then check when it's ready before triggering transition isn't possible, and that would be amazing as it'd allow for more detailed loading screen, showing data from the scene that's currently being set up.

consideration for stack size for newer versions after 2.0.1

hello, I have been using scene manager 2.0.1 for Godot 3.x game that will make it to android game market as a puzzle. I have read all the work that you have put into this, I must say I was amazed by this addon. (it is the best tool out there in godot plugin market)

one thing I realized is, the stack size keeps growing unless I reset the scene, in later versions of 2.0.1, have you considered adding a stack cleaning/pruning default limit? like 50-100 default and after that many transitions, the stack does remove on the [0] element like a buffer size.

Deprecated parameter names in scene_manager.gdshader

scene_manager: master branch (3.4.1)
Godot: v4.0.rc6.official [0cd148313]
OS: Windows 10

After starting a simple demo app after pressing F5 I get a lot of warnings:

_set: This material (containing shader with path: 'res://addons/scene_manager/scene_manager.gdshader') uses an old deprecated parameter names. Consider re-saving this resource (or scene which contains it) in order for it to continue working in future versions.

Help with usage

Hey, there. Do you have a more detailed explanation of how to use this addon somewhere? Or a youtube video? I've installed it and assigned some of my scenes as Character, Menu, and created a new Category "Districts" for my maps. But I'm trying to assign a Subcategory. I've created one called Pois, but I can't add anything to it or use it at all.

Custom file for saved data

Hi!

It would be useful to have a possibility to set the path for the res://addons/scene_manager/scenes.gd file.

The file has to be stored in the git, however with fixed path it requires the who addon to be stored.

I've faced with that issue on my own. I'm using gd-plug to manage dependencies, so my whole addons/ folder is added to .gitignore, meaning the file is not tracked.

There are a lot of tools which requieres data storage, so I have a dedicated folder for that.

A quick workaround is to manually modify path in the files plugin.gd and manager.gd

Crashing on Scene changes in build, but going into build and hitting Save fixes it?

So, I made a game jam game over the last week, and in the build when transitioning from a game level to another game level, or to a death screen, but it does not occur when transitioning from the main menu to the level scene, or vice versa, but when transitioning to the death scene. I went back in and hit save on the Scene Manager and it resolved this, even though no scene changes were made. Not sure what is going on, but I uploaded to github BEFORE hitting save, so theoretically if you download the source, and hit export, and export it to windows it SHOULD break when you die in game.

I know this is not exactly an issue, per say, it could be if I didn't resolve it, but I wanted to let you know so you could resolve it if you are able.

Repo:
https://github.com/Bonkahe/WildJam53-Pattern-Blue

Be advised; I built it with Godot 4 Beta 11-mono, entirely unsure if it will occur in other versions.

If you want to go ahead and hit resolved on this, and just use it as a source of info, that's perfect.
Thank you for the addon regardless, it's excellent and does exactly what I need it to do.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.