minetest-mods / moreblocks

More Blocks
https://content.minetest.net/packages/Calinou/moreblocks/
zlib License
45 stars 67 forks source link

Resolve aliases in cost calculation #175

Closed Caellian closed 3 years ago

Caellian commented 3 years ago

Fixes #174.

If stairs from stairs mod were crafted before moreblocks was enabled, the old (now aliased) stairs variant is kept in inventory. If the player tried to recycle that stair variant, inv:contains_item("output", stackname) would return true as contains_item resolves alias names, but circular_saw:get_cost would return nil as it's expecting exact stackname matches which would later crash due to nil arithmetic.

This PR fixes this issue by resolving alias using minetest.registered_aliases table. circular_saw:get_cost should work now in every scenario where inv:contains_item("output", stackname) returns true.