Enum as Flag actions

Forums 💬 NodeCanvas 🗨️ General Discussion Enum as Flag actions

Viewing 12 posts - 1 through 12 (of 12 total)
  • Author
    Posts
  • #13338
    xtro
    Participant

      Is there any chance you can add these flag enum actions to NodeCanvas by default?

      I was surprised that the built-in enum actions doesn’t handle flag enums so I implemented them in couple of hours but I think they really need to be part of NodeCanvas.

       

      #13349
      Gavalakis
      Keymaster

        Hey,

        The SetEnum and CheckEnum included also work for setting and checking a flags enum.

        Have you tried them out?

        Let me know. Thanks 🙂

        #13348
        xtro
        Participant

          I tried them and looked at their implementations. They don’t look like designed for flag enums. For example, they don’t have the actual flag selection parameter. Without a flag selection and set/clear option, how can they work with flag enums?

          I am confused.

          Did you look at my implementations?

          #13347
          Gavalakis
          Keymaster

            Hello again,

            I did check your implementations but in practice works the same way as the included ones in the end unless I am missing something.

            Can you please clarify what was the problem you faced (or differences) with the ones included?

            Here is an enum flags I’ve tested.

            Thank you.

            #13346
            xtro
            Participant

              Hi again.

              The purpose of flag enum is to be able to set, clear and check each bit (sometimes multiple bits) of the enum on demand via bitwise operations and to be able to do that, the action needs a bit selection parameter.

              Your built-in enum action doesn’t have such parameter but my version has.

              Have you added my action onto a BT and see how it looks and is used?

              I’ll send you a screenshot.

              #13345
              xtro
              Participant

                Here is the screenshot. This is how we use flag enums. It’s just same as C# but instead, it’s in a BT canvas.

                #13344
                Gavalakis
                Keymaster

                  Hello again and sorry for the late reply!

                  Oooh. I see now 🙂 Thanks a lot for the details.
                  I was confused by the naming of the tasks for some reason, expecting to check if the enum is exactly the same (flags) as the check value, or in case of set, set the target enum to be the same as the source. But I see now this is not the case at all and your tasks are actually very useful.
                  I will certainly add them in for the next version.

                  Thank you and sorry for my misunderstanding!

                  #13343
                  xtro
                  Participant

                    Amazing! I’m glad to help improve the Node Canvas.

                    Btw, in my screenshot, do you see what I did in “Skip after load” group?

                    I think it would be very nice to have a new composite node for “skip” logic instead of being have to add a “no task” action to the true leg of binary selector. By doing that, I prevent the binary selector to return fail status when the condition is true and I don’t wanna perform an action.

                    So basically, the new composite would be a selector with only one leg. If the condition is good (or bad), it runs (or skips) the leg.

                    I repeat this skip logic many times in my BTs. It would be amazing to have a single composite instead of two nodes and a group around them to explain.

                    #13342
                    Gavalakis
                    Keymaster

                      Hello again and sorry for the super late reply!

                      I see it now 🙂
                      There is a similar node to what you are looking for (I think), which is the Conditional Decorator. It has only one child and takes a condition (which can be inverted of course like all conditions can). So it can be used like “If NOT [condition]” then it returns. The main difference here is that it will return Failure (instead of Success like in your case), but I could add an option in the Conditional Decorator inspector for what to return in case the condition is false (instead of always returning Failure as it is now).

                      Let me know.
                      Thanks!

                      #13341
                      xtro
                      Participant

                        Hello again.

                        I am aware of the Conditional decorator but as you mentioned, it returns a failure. It would be AMAZING if you could add an option to prevent failure.

                        Thank you very much.

                         

                        When can I expect to see a new version on asset store which includes the new flag actions and non-failure conditional decorator?

                        Do you send unreleased packages for users with invoice?

                        #13340
                        Gavalakis
                        Keymaster

                          Hello again and sorry for the super late reply!

                          I have just modified Conditional Decorator to have the option to return Success or Failure (default is of course Failure like before). I have attached the modified file for you here as well.

                          A new version will appear online as soon as I complete working on a new planned feature to warrant a new version, unless some important bug is found in which case an immediate hotfix will take place (thankfully none right now) :).

                          Also yes, I do send local versions to users with invoice over email no problem. Let me know if you want to 🙂 (support_AT_paradoxnotion.com).

                          Thanks!

                           

                          #13339
                          xtro
                          Participant

                            This is awesome news and you are an amazing asset store publisher!

                          Viewing 12 posts - 1 through 12 (of 12 total)
                          • You must be logged in to reply to this topic.