Announcement

Collapse
No announcement yet.

Make Blutility capable of turning asset dirty

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [FEATURE REQUEST] Make Blutility capable of turning asset dirty

    I use a lot of blutility functions to speed up my level design workflow, principally by running Find All Actors By Class in the editor (instead of in-game) to give my logic objects references to all the subordinate actors they'll need to locate and manipulate at runtime. It works fine, but I've found that blutilities don't actually mark the asset as dirty. If I open a level and run a blutility on my logic controller that locates, say, every traffic light in the level and fills an array with references to them, both the level and my logic controller will still look clean, and I have no way of saving the level to preserve that list. In order to enable saving, I have to do something like manually translate a prop and then undo it, which dirties the level and lets me save my newly-created table.

    There may be good reasons why blutilities can't dirty assets, but from my perspective it adds a small but mildly annoying bit of busywork to the workflow.

    #2
    You can call c++ code from blueprints. I do this with my texture properties.

    Comment


      #3
      I've had some really weird results calling native C++ code in the editor, and since I've never needed it for anything complicated (mostly for getting/setting variables or large numbers of references I don't want to iterate through while the game is playing), I settled on blutility as the simplest possible solution. It's probably not ideal, and this is an incredibly tiny gripe, but it is something that tends to get irritating over time

      Comment


        #4
        I have multiple blutility functions that call c++ code without any problems. There should't be anything that behaves weird.

        Comment


          #5
          It's probably something weird I'm doing wrong then. Either way, though, is there something about running the same functionality through C++ instead of blueprint that would dirty the asset? Because that's the source of my request; it works fine, I just get annoyed at having to constantly tweak and then un-tweak something in the level whenever I want it to save what my code did.

          Comment


            #6
            Code:
            UTexture2D* tex = ...
            ...
            tex->UpdateResource();
            tex->MarkPackageDirty();

            Comment


              #7
              Ooh I'm a moron, for some reason I misunderstood your point and thought you were implying that doing the same search/accession process in C++ would yield a different result, not that you were suggesting an additional step; I wasn't aware of either method, thank you for clarifying

              Comment

              Working...
              X