-
-
Notifications
You must be signed in to change notification settings - Fork 32
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Map Import Plugin #56
base: master
Are you sure you want to change the base?
Conversation
Ooh okay - found a pretty large issue. If a user has more than a couple maps, a race condition occurs and hard freezes Godot. This can occur even with one map if you have an auto-save folder left over from Trenchbroom. The crash arises from loading resources (e.g. textures, entities, materials) from multiple threads. I did not realize that |
Sorry I wasn't able to respond earlier. This looks super cool! Didn't even realize you could do this with addons/extensions 😱 I'll have to dive into the code a bit later for a proper review. As for the compilation database, it might be best to leave that out for now (and do that for a separate PR?), because I'm not at all familiar with that so it would be good to have a separate discussion about it. |
Thank you! I will remove the compilation database gen from the branch and create a separate PR some other time - it's not super urgent. |
After looking at it again, the freeze arises from a call to |
I've been able to make this work by disabling multi-threaded importing in Godot's project settings. Is that a viable workaround in your opinion? |
Unfortunately, I do not think it is a viable workaround for actual production builds, as requiring multi-threading importing to be off to use this plugin would be, in my opinion, odd behavior. Although, if it makes my branch usable, feel free to keep it off. A viable workaround could be putting the trimesh generation in flight and polling the generation, as referenced in godotengine/godot#69076 (comment), but I do not have the time to build and test something like that currently. Sorry. |
Allows users to drag and drop maps into the filesystem, similar to the 3D asset import process.
I made this mostly to gain familiarity with the code base, excuse me if there are any style regressions or other issues. I added compilation database generation to the buildsystem as I use Neovim with coc.nvim, please tell me if this should be omitted.