Progress in the last month had a few hiccups, but, in the end it all works out. The main problem of March-April has been the spline conduits. Getting them to link, both visually and otherwise.
The end result is splines with plugs that chase an invisible “Held item” and create new nodes on the walls were placed. It can link up to other conduits, splitters and sockets.
It’s not perfect but it functions. Until it comes time for polish, that’s a win.
After that, I just had to rebuild the Power Network to generate using the new reference path. I’m not sure if it will run faster than the old version or not but it seems at least less convoluted than before and should be more direct in optimizing.
The next step is going to be in having this system work in generation. I have to figure out a way to, for example, move a line of wires from one socket in one room alone the wall, through the door, down the hall, around the corner, and into another room where it needs to plug into something that needs power.
This needs to work every time, not have any visual or connection errors, and also generate reasonably quickly.
I think I have an idea but it’s not without it’s potential issues. basically I’m doing several passes where I randomly step between rooms until I reach the target, then I compare the passes to find out which is shortest, and use that one.
Once I have the path from room A to room B I need the paths of the conduits through each room. Either from the one door to the next or from the door to the power target.
Each time it labels a set of points as a path. After the first path is defined the next path can be created faster by linking with the existing one.
The “Paths” of the wires in the rooms are a bit trickier. I need to make a group of points that form a line which can be used for the Spline. The points need to recognize overlapping so they can form a more complete linkup of potential paths.
Once all of this is finished it will use the defined pathways to generate Conduits and Splitters to place.
So that’s the plan.
Oh and I made this: