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

    • OrbWeaver

      Does anyone actually use the Normalise button in the Surface inspector? Even after looking at the code I'm not quite sure what it's for.
      · 2 replies
    • Ansome

      Turns out my 15th anniversary mission idea has already been done once or twice before! I've been beaten to the punch once again, but I suppose that's to be expected when there's over 170 FMs out there, eh? I'm not complaining though, I love learning new tricks and taking inspiration from past FMs. Best of luck on your own fan missions!
      · 4 replies
    • The Black Arrow

      I wanna play Doom 3, but fhDoom has much better features than dhewm3, yet fhDoom is old, outdated and probably not supported. Damn!
      Makes me think that TDM engine for Doom 3 itself would actually be perfect.
      · 6 replies
    • Petike the Taffer

      Maybe a bit of advice ? In the FM series I'm preparing, the two main characters have the given names Toby and Agnes (it's the protagonist and deuteragonist, respectively), I've been toying with the idea of giving them family names as well, since many of the FM series have named protagonists who have surnames. Toby's from a family who were usually farriers, though he eventually wound up working as a cobbler (this serves as a daylight "front" for his night time thieving). Would it make sense if the man's popularly accepted family name was Farrier ? It's an existing, though less common English surname, and it directly refers to the profession practiced by his relatives. Your suggestions ?
      · 9 replies
    • nbohr1more

      Looks like the "Reverse April Fools" releases were too well hidden. Darkfate still hasn't acknowledge all the new releases. Did you play any of the new April Fools missions?
      · 5 replies
×
×
  • Create New...