Fabric API

Fabric API

106M Downloads

FabricBlockSettings.copy not copying all settings

xanthian opened this issue ยท 3 comments

commented
public static final Block COPPER_GRATE = new OxidizableGrateBlock(Oxidizable.OxidationLevel.UNAFFECTED, 
FabricBlockSettings.of(Material.METAL)
.strength(3.0F, 6.0F)
.sounds(ModSounds.COPPER_GRATE)
.mapColor(MapColor.ORANGE)
.nonOpaque()
.requiresTool()
.allowsSpawning(Blocks::never)
.solidBlock(Blocks::never)
.suffocates(Blocks::never)
.blockVision(Blocks::never));

registration for copper grate (which works)

public static final Block WAXED_COPPER_GRATE = new GrateBlock(FabricBlockSettings.copy(COPPER_GRATE));

registration for waxed variant, copying the above
however, the .solidBlock(Blocks::never) is not copied over resulting in the block transmitting redstone.
Also not copying is .suffocates(Blocks::never)
I've not tested but I would also presume the following are not copied :
.allowsSpawning(Blocks::never)
.blockVision(Blocks::never)

Copper_grate.mp4

Even if i create a custom never boolean without using an AW on the Blocks::never it still doesn't copy over

commented

What Fabric API version are you using?

We have also deprecated FBS, you should be using AbstractBlock.Settings#copy

commented

I think I'm a numpty and should be using copyOf and not copy
But will await a reply regardless

commented

In newer versions (1.20.4?) vanilla copy copies every attribute, copyShallow copies only some. (copy used to only copy some in older versions.) FAPI has never changed the behavior of copy, only the static copyOf.