Ok, I finished my own mock up; here's how i imagine the advanced system, which would be completely focused on being dynamic, adaptive, and flexible, as apposed to being focused on being easy to use.
So there are varying types of logic based nodes, specific events and actions are selected on a per node basis. For example, if you want to detect a player collision, you would put down an "On Event" node and select Collision, and then specify that you want the specified collision to be with a player.
Like in Blender, each node has a number of color coded connectors, which i'm calling plugs, the different colors represent what nodes are compatible, due to the differences in data and uses that the plugs have.
So to explain the nodes and Plugs in the coming example, lets start with the plugs. I only needed a few in the example, but i'm sure there are one or two to come.
The event plug is what connects the logic. Chains of these create the spine of the event system, at their most basic they act as sort of a trigger to activate the next logic in the chain they're connected to.
Every brick has this plug, to make logic work, you simply plug it into the first node in the network. You'll see what I mean in the coming examples.
This transfers raw data from a brick or event to have specific information extracted. It's everything that there is to know about the brick or event it's being pulled from.
This transfers a single clean variable to be tested, used, or have logic applied to it in some way.
Now for nodes:
The Brick node is used for any and all references to bricks, the name field is important, because if it has a name applied to it, it will reference all bricks with that name, if there is no name applied, it will only reference the single brick that the event is taking place on, both with data output, and event logic. This is incredibly powerful, because a talented eventer could have a huge build, with loads of stuff going on, (My
old tycoon for example) but all logic (events) is being done in one brick, as appose to being all over the place.
And holy crap, if i could have only done that in my tycoon build, I had SO many 1x1x1f plates just because i needed logic relays, not to mention literally every single brick in every single tycoon having events, and tons of events going on in the admin room; I wish that was all handled by one brick per tycoon.
The On Event node would have something like a drop down menu to select actions, this would be akin to the input section of the legacy event system.
As long as it's getting a signal, when the event occurs it will output a signal for as long as it's occurring. For example, a brick activation would output for one frame, but a player collision would output for as long as the collision is happening.
The If Then Else node will take 2 variables and compare them if they're compatible. If it output's true, the Then plug will fire, if it's not, the Else plug will fire.
The Extract Data node will extract the selected information and pass it on as a usable variable.
There are many logic nodes, but Switch does exactly what it looks like, every time it gets a signal, it will switch which output it will transfer the signal to. The graphic displays which way the next signal will go next.
This one needs more work. Basically the Action node will do whatever action is selected to whatever item who's name/id is provided by the variable plug. If nothing is provided, it will only effect the bricks connected directly to the logic network via "Event Start"
So here's an example:
I want to make a light switch that lets me and only me turn a light on and off. I name the brick acting as the light switch "Light Switch" and the brick acting as the light "Light". I enter the light switch's event system and make this:
Keep in mind that i could have kept the "Light Switch" reference name empty, and it still would have worked, because the events are taking place inside the Light Switch brick, and if there is no name applied to the brick node, it will only reference the single brick that the event is taking place on.
This is powerful, I mean, imagine that i connected Event Start on the Light brick reference, to the On Event node, now that logic would also take place when i activate the light brick too, even though that brick has no logic of it's own.
Now there are contradictions and flaws in this example, like for example, getting information about what player is activating the brick from the brick itself as apposed to the On Event node, but this is just a first draft, still working everything out, but that information would come from the On Event node, not the brick itself.
Questions?