logo hyperPad Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Login

    JSON vs Behaviour Array "types"

    Scheduled Pinned Locked Moved
    Help and Support
    2
    12
    373
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • D
      Deeeds
      last edited by Deeeds

      From the Modify Array Behaviour:

      The first question is "what type of array?"

      What does this mean?

      The documentation is, to me, ambiguous, at best.

      Behaviour: Perform the function on an Array behaviour.
      JSON: Perform the function on a JSON formatted value. When entering a dictionary JSON value, the array will be the list of keys in the dictionary.

      WTF does this mean?

      There are no functions in hyperPad. What are you talking about? Do you mean something more along the lines of "Perform THIS modification on a NORMAL array"?

      You can enter a dictionary JSON value? Why would anyone do that?

      How did arrays ever become behaviours? Behaviour, as a word, describes a trait or activity of an object, not an object.

      Arrays are probably the most important source of speed in game code architecture for iterating over multiple objects.

      Why don't your arrays store objects instead of (or as well as) JSON dictionaries?

      Jack8680J 1 Reply Last reply Reply Quote -1
      • Jack8680J
        Jack8680 @Deeeds
        last edited by

        @Deeeds by "the function" they do mean the modify array behaviour.

        Array behaviours let you make the array manually, whereas the json format is ["value1","value2","value3",etc.]. Allowing us to use json means it can be used on arrays saved with save values, or sent through broadcast message. The output of an array behaviour is in json.

        I never actually read the documentation and did not know it works on a dictionary, that's actually really useful for looping through if you wanted to reverse a dictionary, which is exactly what I wanted to do a while ago.

        D 1 Reply Last reply Reply Quote 0
        • D
          Deeeds @Jack8680
          last edited by

          @Jack8680 Sorry, this hasn't made it any clearer.

          Let's start with the basics.

          I can choose an Array of type "Behaviour". This is VERY strange use of language, to me.

          What does Behaviour mean in this context?

          And what is an "Array Behaviour"?

          Sorry, I come from other worlds where this lexicon doesn't parse so well.

          Jack8680J 1 Reply Last reply Reply Quote 0
          • Jack8680J
            Jack8680 @Deeeds
            last edited by

            @Deeeds all the nodes are called behaviours. E.g. Add values behaviour, move to point behaviour, etc. The array behaviour is the behaviour under custom called Array.

            D 1 Reply Last reply Reply Quote 0
            • D
              Deeeds @Jack8680
              last edited by

              @Jack8680 Ok, so the word you're misusing might be "make", then... in this sentence:

              Array behaviours let you make the array manually,

              I think you might have meant "modify", "edit", "alter", "change" or something like that, right?

              Because I've looked for a way to make things with code in hyperPad, and only found Spawn. Or am I missing something amazing?

              Jack8680J 1 Reply Last reply Reply Quote 0
              • Jack8680J
                Jack8680 @Deeeds
                last edited by

                @Deeeds yeah I meant you can use the 'array' behaviour to make a predefined array, rather than typing it out into something like a box container.

                D 1 Reply Last reply Reply Quote 0
                • D
                  Deeeds @Jack8680
                  last edited by

                  @Jack8680 Argh, ok. So I'm seeing what's going on. It's not a type change, it's a mode of operation for the "Modify Array" Behaviour that's changed by selecting whether to use the behaviour in JSON editing mode or hyperPad Array editing mode. Frankly, given that ANYTHING can be dragged into the slot for the chosen array, I'd have thought the mode should change based on the content its given.

                  But I'm talking in ideals. So ignore my opinions.

                  Jack8680J 1 Reply Last reply Reply Quote 0
                  • Jack8680J
                    Jack8680 @Deeeds
                    last edited by

                    @Deeeds if you use modify array on an 'array' behaviour, it will update the array. For other values you have to set them to the output of 'modify array' to update them; for example, using 'modify array' on a box container doesn't change the box container, it just returns the modified array.

                    What do you mean by change based on the content it's given? You either select a behaviour or use a json value. You can use the array behaviour as a json value, but it won't update it.

                    There's a pointer switch, but I don't remember what it does since it doesn't seem to work on box containers and arrays update anyway.

                    D 1 Reply Last reply Reply Quote 0
                    • D
                      Deeeds @Jack8680
                      last edited by

                      @Jack8680 What do you mean by operate a Modify Array Behaviour on a Box Container?

                      I'm lost there.

                      Jack8680J 1 Reply Last reply Reply Quote 0
                      • Jack8680J
                        Jack8680 @Deeeds
                        last edited by

                        @Deeeds you could for example put the following in a box container or an attribute:
                        ["value1","value2"]
                        And then 'modify array' can use this json string as its input array.

                        D 2 Replies Last reply Reply Quote 0
                        • D
                          Deeeds @Jack8680
                          last edited by

                          @Jack8680 argh, I see what's going on. There's been an attempt to create a visual means of doing network communication. Intriguing. I'll get to that, in time, no doubt. And then have much to say about it ;)

                          1 Reply Last reply Reply Quote 0
                          • D
                            Deeeds @Jack8680
                            last edited by Deeeds

                            @Jack8680 I've just tested this, and it doesn't behave the way I'd expect.

                            Array Type = Value
                            Selected myArray (named LapTimes)
                            Modification is Append
                            Value to Append is a laptime

                            Do this, and there is never anything added to the array, despite everything else working correctly.

                            I would expect this adds a value to the array, and extends the length of the array in doing so.

                            Array Type is one that stores values, I've picked the right one, I've chosen to modify it by appending a value and selected a valid value

                            Now, here's the weird part... what does work as I'd expect the above to work is this:

                            Array Type = Behaviour
                            Selected myLapTimes Array
                            Modification is Append Value
                            Value is a lap time

                            Why?

                            WTF?

                            Am I completely misunderstanding what an array of type Values is?

                            Am I misunderstanding what "type" means in this context?


                            EDIT:

                            And what exactly is array of type JSON?

                            Why is this responding like a normal array of values if it's of type JSON?

                            1 Reply Last reply Reply Quote 0
                            • First post
                              Last post