notes about nodes

a new node system will make scripting easier.

 

Nodes can be of type action, trigger or object and have different in- and output connectors.

  • object nodes show their connections to their triggers
  • triggers and actions show connections to their actions
  • property window shows up upon double clicking a node (same window as before)

 

a connecting line between two connectors only visualizes that action A has a link to action B. How that link works is up to the actions in question. One action might modify another action’s properties directly (‘push-mode’) while another action reads a property of a connected action (‘pull-mode’). Both cases would simply display a line or curve between the two connectors.

a first attempt at rendering nodes inside a clipped area:

along with this change, the base action might be expanded:

each action might get the ability to trigger a remote action, just like the ‘execute’-action did before.

This works exactly like a follow-up action, except that the executed action can be a remote action and doesn’t have to be an immediate child.

the big issue that needs to be resolved before  I can start working on this:

rendering clipped gui-areas.

The node-view needs to be able to display partially occluded areas at the borders of the containing window (so that panning and scaling can be enabled) .

The easiest way to do that would be to simply render the area into an offscreen-buffer, then render the (clipped) buffer onto the window.

I’m not entirely sure how I can achieve this since offscreen-buffers are only supported up to a certain size. If the buffer gets too large, we won’t be able to fetch it and thus lose the ability to display anything.

Another option would be to clip manually.  This option is not recommended since it would be a general pain in the butt to apply clipping to gui rects (adapting tex coords…) and lines&curves (finding intersection points with viewport can be tough when it comes to curved connectors…)

 

Leave a Reply