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 comment
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 comment
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 comment
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 comment
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.

  • Recent Status Updates

    • Petike the Taffer

      I've finally managed to log in to The Dark Mod Wiki. I'm back in the saddle and before the holidays start in full, I'll be adding a few new FM articles and doing other updates. Written in Stone is already done.
      · 0 replies
    • nbohr1more

      TDM 15th Anniversary Contest is now active! Please declare your participation: https://forums.thedarkmod.com/index.php?/topic/22413-the-dark-mod-15th-anniversary-contest-entry-thread/
       
      · 0 replies
    • JackFarmer

      @TheUnbeholden
      You cannot receive PMs. Could you please be so kind and check your mailbox if it is full (or maybe you switched off the function)?
      · 1 reply
    • OrbWeaver

      I like the new frob highlight but it would nice if it was less "flickery" while moving over objects (especially barred metal doors).
      · 4 replies
    • nbohr1more

      Please vote in the 15th Anniversary Contest Theme Poll
       
      · 0 replies
×
×
  • Create New...