Added "similar structures" concept to blueprints. #3599
+176
−6
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Work done
The new blueprint widget is awesome, but there's a problem that it's locked into a specific faction. I can't use my wind farm blueprint for Cortex because it has Armada turbines. There are similar issues for walls, claws/maws, llts, energy converters, con turrets, spambulatories etc. One solution is to have multiple blueprints, one for each faction, but this is cumbersome to have 3x as many blueprints which do not differ in purpose. This PR fixes that by adding logic to swap unbuildable structures with counterparts the selected constructors can build.
I determined if units are counterparts by their tags. If two units' tags differ only by the prefix, they're considered counterparts. i.e. "armX", "corX" and "legX" are considered to be counterparts to eachother (with the addition of legeconv being the legion counterpart to arm/cormakr.)
Test steps
This is my first time contributing directly to BAR. If there's any testing harness for widgets, or CI tests, I'm happy to add some, but I'm not aware of any.