How to Transfer erc1155 Token After Payment With erc20 Token

I’m building a game with erc1155 tokens as collectables as well as an erc20 token as in-game currency. Both are essentially standard OpenZeppelin contracts. Down the road, I’d like to create a third smart contract that transfers ownership of one specific 1155 once a user has burned / transferred a specified amount of erc20 to pay for the collectable. In this case, the specific 1155 token for sale would have already been minted and in the contract owner’s wallet address.

Is it possible to do this through a third contract that would listen for a transfer of the erc20 and then access the wallet holding the 1155 to initiate a safeTransferFrom? And if so, I’m not sure if I need to write additional functionality into the standard 20 & 1155 contracts before deploying. If anyone could point me in the right direction I would appreciate it.