[BLOCKING LIVE CONTENT] canbreak/can_place_on components dont work on variants
Release_749880 from 1.2.13.6
Summary: Having can_break and can_place_on components on items no longer apply to variants of specific blocks.
Impact: This breaks marketplace content that relies on the useage of these components. Jig's Guide: Redstone Basics, Infinity Plumber and Infinity Dungeon EX all rely on this mechanic in different ways. Infinity Plumber has can_break on stonebrick and one of the variants is retextured to a block that can be broken. If it doesn't work the player cannot progress in the map. in Jig's Guide the player is given redstone to place on red wool. As red wool is a variant, the player cannot place it.
Repro Steps:
1) give yourself an item with canbreak. for example /give @p diamond_pickaxe 1 0 {"minecraft:can_destroy":{"blocks":["stonebrick"]}}
2) setblock ~ ~ ~ stonebrick 1 to spawn a variant 1 of stonebrick
3) try to break the block
Observed Results: The player will be unable to break the block.
Expected Results: In java, the similar component will allow any item with the can_break tag to work on both the damage value of 0 but also every other variant of that block for example if you use set it to break wool, it will be able to break every color of wool. This is important as there is currently no way to define a specific variant to break.
Solution Proposal: If there is a can_break tag the item should be able to break every variant of that type of block. Alternatively, we could be able to specify the variant that can be broken. To preserve backwards compatibility, if the variant is undefined it should break every block of that type. If it is defined then it should only break that specific variant of that block type.
Video: https://www.youtube.com/watch?v=h8UuClCRha4
Bug reproduction world attached.