Fixed cancelled fire interact from all directions.

Wouldn't this be handled if the fire block had a proper `CanBeHere()` handler? We want as few special cases outside of BlockHandlers as possible.

Also, a fire block attached to a block next to it ("vertical fire") still won't work with this change, will it?