TL;DR
Placing buildings on other buildings to combine them.What ?
Ever wanted lamps on your electric poles, or long handed variants of all inserters, but hate the clutter of new recipes for very similar items in your crafting menu? What if you could just place one on top of the other?This proposal is for the functionality to support this behavior - altering an entity's appearance and behavior by placing something onto it.
To illustrate what this may look like if added, I've made the following images to describe a hypothetical world, where you can make lampposts by placing lamps on electric poles - either as a vanilla feature or added through a mod using this mechanic. At the time of writing, this is what happens when you try to place a lamp on an electric pole. Drat, I can't have both the pole and lamp here!
This is not surprising. They share the same space! In this hypothetical though, electric poles can be turned into a lamppost by placing a lamp onto one. Here, the player is holding a lamp and hovering their mouse over a pole. Look, it's showing what it'll turn into if they place it! Finally, a lamppost!
And when placed, this is the result. When deconstructed, it will yield both the pole and the lamp used to make it. Ain't that nifty! Yes it's facing the wrong direction just ignore that
In this example I used MrBurd's Concrete Lamppost mod, as that provides a sufficient approximation of what the above feature would look like.
What about bots and blueprints?
The compound building could be either an actual new building (just without a recipe & item), or a new state of the original building. In either case, bots and blueprints shouldn't have any issue with knowing to place the base building down first, then the one to augment it. The constituent buildings would be included in the ingredients for a blueprint, and would be rendered as the compound building within the blueprint UI and as a ghost entity.
Accessibility
One issue is knowing what variants for a building even exist, if any. At least when something has a dedicated recipe you can actually see it in the crafting menu. A possible solution is, when hovering over a building in your inventory, to have a tooltip appear over the item if it has variants. It may look something like this: Loudspeaker added as example even if that one is a stretch.
While an imperfect solution (visually clunky, for one), this still communicates that combinations exist! Holding shift or alt could freeze the tooltip as well, and hovering over each icon in it shows what variant would be made using it.
Clunkiness
Having to place one building and then the other is... tedious. It should be possible then to just have the combined building in your hotbar, or selecting it from the above tooltip - or holding the base building and cycling through its variants.
Why ?
Combining buildings eliminates the need for new items/recipes. We could have long-handed variants of all inserter types, without needing to add several new recipes and items. Instead of a mod having 5 tiers of 10 different kinds of buildings for a total of 50 new recipes, it could just have 5 tiers of one building, and the other 9 buildings can be upgraded using those 5 tiers. Only 14 new recipes this time, an almost 75% reduction!If this behavior is made a component that could be added to anything, then far more than the above examples could be possible. Vehicles and units could be subject to upgrade, too. Slower but armored locomotives, tanks with rocket launchers, and even spidertrons with a flamethrower nozzle - all without needing their own dedicated item.
This functionality is probably possible through modding, but having it as a vanilla mechanic would introduce more options for implementing new buildings for Wube and modders alike.