I'm making a game where users place tiles from a tileset. My tiles are 16x32 (isometric) and the placement is not always how I would expect. When I am clicking on the side of an existing block, I want a new block placed on the side. When I am clicking on the top of a block, it should be placed on top. This seems impossible as my texture_origin is set to -8 to make sure it is at the top. In the first photo, you can see my mouse is in a grid cell, and a block is placed on top. But then if I hover over an edge, of course I would be in a new cell, and not placing next to the block edge. When I change the block's texture_origin back to -8 from 8, I get that problem but in reverse.
Essentially, a blocks position should be determined with other blocks, not just the grid. But I don't know how to do that.