TL;DR
It's way too easy to accidentally make a connection between two power networks that were supposed to be separate; let's add an option that lets you 'lock' a power pole so that other poles cannot automatically connect to it.What ?
- Power poles and substations get an interface with a checkbox saying '[ ] Prevent automatic wire connections'
- When this checkbox is checked, other power poles built around it will never automatically create wire connections to it, nor will a pole with this option set when built auto-connect to other poles
- Setting this does not affect existing connections, and new connections to a locked pole can be created manually with a unit of copper wire or by pasting a blueprint that includes a connection from that pole (thank you, FFF #362!)
- There needs to be a shortcut for changing the locked/unlocked status of a pole without opening its interface GUI
- Allowing locked/unlocked status to be copied and pasted with shift-right-click and shift-left-click would work. However, this would conflict with the use of shift-clicking on a pole to remove all existing cable connections from it. One option would be to disable the 'shift-click a power pole to remove all connections' functionality when the player has a power pole's locked/unlocked status in their shift-right-click buffer, but that could lead to confusing errors since the contents of the buffer remain until you shift-right-click something else and there's no visible feedback on what's currently in it; a player could copy a power pole, then, 5 minute later, shift-click a power pole expecting to remove its connections and be confused when it doesn't work.
- Another option would be to add a keyboard shortcut which modifies a pole you are currently pointing the cursor at. You could either have one shortcut which toggles or two which lock and unlock; the second option would be better since it makes it easier to lock or unlock all of a bunch of power poles.
- Yet another option would be to add a new tool which can be applied over an area to change the settings, similar to the upgrade planner (or even as a new feature of the upgrade planner). Since such a tool would have its own dedicated GUI instead of using key combinations in the main game, it could support set, clear, and toggle operations, as well as being able to be filtered to only apply to a particular type of pole.
- Another useful utility would be the ability to lock or unlock all poles in a given power network at once (note that for this purpose, poles connected by a power switch would not count as being in the same network, even if the switch is currently closed)
- There needs to be feedback indicating a pole is locked
- Minimalist option: A semi-transparent grey padlock icon overlaying the pole
- Optional stretch goal: An alternate sprite for the pole itself
- In the power networks overlay of the map view, locked poles are marked with a different coloured dot than normal poles
- Optional stretch goal: if you auto-build new poles by clicking and dragging from an existing locked pole:
- The first new pole created will be connected to the existing pole you started on
- Each subsequent pole will be connected to the previous one
- All the newly created poles will have the locked setting set and will not auto-connect to any poles except the previous one, even if they are in range to do so.
Why ?
There are times in Factorio where it's valuable to make multiple, distinct power networks, e.g. so a power-hungry production line can be shut down when needed using a power switch, to connect a reserve steam or nuclear generator when your primary power source isn't sufficient, or to ensure a power plant satisfies its own power needs fully (and thus maintain full power output) even in the event of a brownout of the main grid. However, while you can build these isolated networks without too much trouble, it's damnably easy to accidentally create a connection between them and your main grid later on with just a single stray power pole. (This is particularly an issue with nuclear power plants, where the plant network may need to extend a fair distance in order to cover any pumps on the incoming water pipes, while right nearby is the main turbine array which needs to be connected to the main electrical grid.)
There have been suggestions before about fixing this issue using coloured power poles or network masks to create explicitly defined separate networks that will refuse to connect to each other. However, those are overkill for most purposes, and also have the limitation of only handling a finite number of distinct networks.
This suggestions is based around the observation that most of the time, isolated networks are static; generally, such networks are built in an isolated area, then pruned of any unwanted connections and subsequently left alone; rarely does one need the ability to organically add new power poles to them. The primary issue is that it's easy to accidentally build a pole later on which bridges the isolated and main networks without noticing, with a secondary concern that it would sometimes be convenient to be able to build main-network stuff near to the isolated network, or build two isolated networks in close proximity, without spending a lot of time manually disconnecting unwanted connections. Thus, being able to 'freeze' a network after it is built is sufficient.
The advantages of this system are that, once an isolated network is locked, accidental connections to it become impossible, and you can build poles connected to other networks near or even inside it without any extra effort. If using a blueprinted design, one can even build an isolated network inside your main base rather than in an isolated area.
(There are, admittedly, times when it would be genuinely useful to be able to designate two distinct networks and then build poles that will auto-connect to one network but not the other, such as when building accumulator arrays to allow rate-limited flow between two power networks, or if you need to build an isolated network inside your main base and don't have the option of designing it in a remote location first and then copying it in by blueprint. But these are, I feel, too rare to justify a more complex solution.)