jonri 72 Posted December 9, 2020 Report Share Posted December 9, 2020 I've got a dedicated DarkRadiant map that I've been using to create modular components. I've settled on a workflow of putting each module on its own layer (both for organization and for positioning relative to the origin). Exporting all these out to .ase files is a bit of a chore, so I had the idea to write a python batch export script. I'd like to select everything layer by layer and export it to a common directory, each file with the same name as the layer it came from. The only piece I'm missing is that I didn't see anything here about accessing layer information, and I was curious if there was any functionality that wasn't documented. I know a lot of people don't usually work with layers so I also considered using groups or func_statics, but the problem is you'd have to break them back down to brushes in order edit them, and in doing so you lose any name information you had set on the entity. My goal is to be able to iterate on my modules easily, batch-export them, and then reloadModels to see the changes. Any thoughts? I'm not opposed to coding up a new layer interface in DR (GlobalLayerManager?) if needed, as long as someone can point me in the right direction and work with me on what functions to build into it. Quote Link to post Share on other sites
jonri 72 Posted December 10, 2020 Author Report Share Posted December 10, 2020 Well, I decided to just jump in and do it. I took a good look through all the commands and didn't find anything, so I created and registered a LayerInterface class modeled off the existing SelectionGroupInterface class. I've added one method for proof-of-concept and now I can get the layer ID of any named layer from python. It shouldn't be any trouble for me to round this out, it's mostly just boilerplate code. Quote Link to post Share on other sites
greebo 86 Posted December 10, 2020 Report Share Posted December 10, 2020 Sorry for not replying earlier, but it seems you already took the initiative to implement a layer manager ScriptInterface. Scripting in DR is heavily under-used, that's probably the reason nobody noticed the lack of that functionality. Do you have a patch or pull request for me? I'm happy to integrate or expand the interface you created. Quote Link to post Share on other sites
jonri 72 Posted December 10, 2020 Author Report Share Posted December 10, 2020 10 hours ago, greebo said: Do you have a patch or pull request for me? I'm happy to integrate or expand the interface you created. I've got all the functions from the LayerManager class exposed to python, the last thing I want to do is make a test script that covers every function. Once I'm happy with it I'll make a PR on github. Thanks! Quote Link to post Share on other sites
jonri 72 Posted December 17, 2020 Author Report Share Posted December 17, 2020 Thanks for getting this merged into the upcoming 2.10.0! In case anyone is interested in my batch export script, I've put it up on github here. Quote Link to post Share on other sites
greebo 86 Posted December 17, 2020 Report Share Posted December 17, 2020 You're welcome, thanks again for the pull request Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.