Jump to content
The Dark Mod Forums

Accessing DR layers via Python scripts


Recommended Posts

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.

Link to post
Share on other sites

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. 

Link to post
Share on other sites

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.

Link to post
Share on other sites
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!

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...