Basic description - I'm working on what is effectively a point and click project right now. I'm looking for ideas about structuring a piece of code for items which you can pick up behind other items. Not looking for code just the structure you might use. Here are some examples You walk up to a book shelf, click on some books to 'move the books' and behind the books there is an item which you can click on to pick up. You look at a vent, and behind the vent you can see an item. You remove the vent and can then pick up the item. You walk to a drawer and slide it open partially obscured is an item, you can click on it to pick it up. I think the above are the three primary scenarios but there might be more. The design difficulty comes mainly from how these things interact with each other. For example, in the first case, I could put the books on a layer in front of the item and make it so that you can't click on an item unless it is the 'topmost' item. So first click interacts with books, second click interacts with item. This would also work in the second case. However, it doesn't work in the third case unless the drawer is a multi-part sprite as for the item in the drawer to be partially obscured, it would have to be over a layer of the drawer and under another layer. Another example is I could make it so moving the books or opening the drawer 'spawns' in the the item. And closing despawns it. But then in the second example, the vent has to have separate art to 'show' the item behind it and not 'show' the item behind it. A third example would be to not actually have separate objects for this but have it be stages or states of the same object with different sprites and codes for each. This however could be complicated if there were multiple items or the 'hitbox' for the item was significantly different than the 'hitbox' for the object in front of the item as I would then have to allow for and define special regions for every instance of the object that I use. I could also just use all three depending upon which is easiest in each scenario. I'm wondering if other people have dealt with this and if so what they chose to do?