FlexBE / flexbe_app

The classic user interface (editor + runtime control) for the FlexBE behavior engine. See the flexbe_webui for latest
BSD 3-Clause "New" or "Revised" License
48 stars 49 forks source link

Use one behavior's userdata in another behavior without re-creating them #28

Open FanhuiJ opened 5 years ago

FanhuiJ commented 5 years ago

Hi, I want to use the same userdata for two different behaviors, does it possible to save a behavior's state machine userdata, then load them into another behavior?

I tried to copy the content of the first behavior's create function (for example: _state_machine.userdata.global_planner = "GlobalPlanner"), then past the content into the [MANUAL_CREATE] section of the second behavior's create function. With this operation, while opening the second behavior, I get these userdata in the State Machine Interface section (such as : Input Keys: global_planner), but nothing in the State Machine Userdata section.

I would like to know if it is possible to copy the userdata value as well, to avoid re-create again those userdata.

Thanks in advance.

FanhuiJ commented 5 years ago

I want to edit the issue content, I just couldn't.. For using one behavior's userdata into another behavior, a way is to change the behavior's name, so that another behavior will be created, which is the same as this one but with different name.

When using a container, we need to re-write input and output keys that will be used inside the container, and which are already declared in the Behavior Dashboard. When it concerns many input and output keys, it takes time to re-write them.

Also, sometimes, some output keys of a container should be declared as its input keys as well. Otherwise, warning messages will appear when saving the behavior.

Does it possible to use directly userdata that declared in the Behavior Dashboard inside a container, without re-write them?

Thanks.