Hi, so first issue is LFO here:
when u define like that:
the function is not going to be evaluated (e.g. update would not ever be called)
So if we change the definitions to be properly processed:
Note for C we need updated exposed:
We already see different picture:
Now, few words on gradient:
You see this cord is actually mutable, what that means, on the back side of process, you create a class process node, it’s a a singe item, it has an single item gradient texture (e.g. pointer), the texture pointer is the same for whatever invoke caller, so what happens when it called with different args the texture will change for all of them, but since it’s a same memory address you see only latest change (e.g. blue)
To fix that, if you want to have consider removing this part basically:
Instead you should do that like that:
And now you can see it’s correct on all of your cases:
InterfaceSharedLogicFix.vl (71.2 KB)
You see the things that are unobvious, is that VL is not going to do for you stuff you have to do, like memory allocations. E.g. the Gradient is not something that exists in a method Invoke, it’s something that exists in an Instance of Class e.g. Node.
For the other issue, with Create, the point here that node is something more then just Create like if you want something Updated, it should be made that way that Update is called. You can think about that like, everything inside a patch is already inside Update method, if you call Create something and you want it to update it should be a node inside a patch not a method.