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.