Spaghetti Belt Tools


Upgrade or remove an entire line of belts with one click, vital for spaghetti bases. Supports loaders. Supports many modded belts.

Utilities
2 days ago
2.0
7.92K
Logistics

i Could it work with pipes too?

4 months ago

It'd be great if this worked with pipes in addition to belts, for mods with multiples tiers of pipes.

4 months ago

I'm not sure what the point would be of supporting pipes. Pipe throughput is unaffected by tier/type. What would you expect in terms of functionality if pipes were to be supported?

4 months ago

The modpack I've been playing with recently has 3 tiers of pipes, where each tier has a greater underground length and extent. Most of my pipelines are relatively short, but I have some pipes going across the base which connect various producers and consumers which are beyond the range of the lowest tier extent. Being able to upgrade them would be useful for merging different pipe sections into a single extent to make managing fluid levels more convenient, and it'd also help reduce clutter since I could remove many of the underground pipes afterward and make connection paths more direct.

4 months ago

Ah, right... I think I get what you're asking. I'll have to check if that's possible. What mod provides the tiers of pipes? It'll be useful to clarify what they can do and have a usecase to start testing with.

24 days ago

Seconding the request for pipes. Even without an upgrade path, just being able to remove old spaghetti pipes with a single click would be great.

23 days ago

Right, apologies for the lengthy delay, @BetweenWalls. Took a while to figure out how to get the pipe graph built, with life being hectic. I haven't implemented the upgrade sequence yet -- I'm still debating the best way to do that in terms of where to put the functionality (w.r.t. user controls -- a separate tool, on top of the belt tools, etc.). But the graph is built and that's very easy to reuse once I figure out where I want to put the user control for the upgrades.

@TeabagNation, the removal of pipelines has been added to the existing remove tool in version 1.4.0, you will have to use the reverse_selection option (by default, right-click and drag). This should remove all pipelike entities (pipes, pumps, storage tanks, etc.), but no crafting buildings. Lemme know if you find errors.

23 days ago

Thanks for the quick turnaround! So far it seems to work exactly as you described. I'm sure it'll be useful as is, but I have some suggestions...

I think it would be easier for the user to also delete pipes with left click, though, just like for belts. I don't see the reasoning behind using reverse click for pipes.

Additionally, unlike the belt deletion mode, which stops at any junctions, pipe deletion is very aggressive and deletes the whole fluid network. I guess it's more difficult to have an algorithm that tracks the pipes to a junction, since it's all just "pipe" and not "belt" vs "splitter"? If possible, it would be nice to have pipe deletion stop at the closest junction on normal click, or delete the whole network (current behaviour) on shift-click.

19 days ago

Good points. Version 1.4.1 makes the default pipe removal be less aggressive, stopping at junctions. Note that tanks are not junctions unless they have three or more connections. Ditto for inline tanks. I have specifically made the decision for that definition of junction (looking at a very low level of the code) to make sure that my tool is compatible with any variant of pipe-like entity that mods might add. It's also significantly simpler than trying to be more specific. Alt_reverse_selection (by default, Shift+right mouse) is now the previous removal of the entire network.

At the moment, it is still on the reverse selections to both make it easy to distinguish when you're removing which network, but also, as per the seminal xkcd on tasks (https://xkcd.com/1425), if I had both networks on the same action, I'll need to do a lot more filtering and analysis of the selection. At the moment, I can filter to only specific types before the selection, which means I can ensure I'll only send the right network components to the relevant graph building functions. I am working on it, since I need to do it anyway for the upgrade option requested, but it'll take a while to do it without hardcoding stuff.

12 days ago

Looks like it's working great. Thanks again.

New response