Getting nowhere with dew collectors. Tell me, is it impossible to insert the "<downgradeblock>" value into a block using "<set>"? If not, that means I would likely need to make a copy of every block we need to use and add it manually in the modlets blocks.xml, which I am hoping to avoid.
If it doesn't have the downgradeblock property already in there, set won't work. You would need to do something like insertAfter like this
example: adding health loss after drinking murky water in Alpha 20
<insertAfter xpath="/items/item[@name='drinkJarRiverWater']/effect_group[@name='Drink Tier 0']/triggered_effect[@cvar='$waterAmountAdd']">
<triggered_effect trigger="onSelfPrimaryActionEnd" action="ModifyStats" stat="Health" operation="add" value="-5"/><display_value name="foodHealthAmount" value="-5"/>
</insertAfter>
If downgradeblock is already in there, then set can be used to change the value
example - Alpha 19 potato plant
<block name="plantedPotato3HarvestPlayer">
<property name="Extends" value="plantedPotato3Harvest"/>
<property name="DescriptionKey" value="plantedPotato3HarvestDesc"/>
<property name="CustomIcon" value="plantedPotato1"/>
<property name="CreativeMode" value="None"/>
<drop event="Harvest" name="foodCropPotato" count="1" tag="cropHarvest"/>
<property name="DowngradeBlock" value="plantedPotato1"/>
</block>
Code:
<set xpath="//block[@name='plantedPotato3HarvestPlayer']/prperty[@name='DowngradeBlock']/@value">BFTbakedPotatoPlant</set>
Also, capitalization is key. If you path to downgradeblock, it won't find it even though it is in there as DowngradeBlock.
If you are going back to the previous state like in A19, you might also want to remove the destroy portion that has a chance of creating a seed.