Одно очень простое решение - поместить объект поверх сундука в отдельный слой объектов.
Когда вы загружаете карту в свою игру, проверьте все объекты в этом слое и сохраните ее где-нибудь (например, в списке)
Во время игры вы можете легко проверить, перекрывает ли ваш игрок один из ваших сундуков.
Подсказка:
Вы можете дать вашим сундукам объекты идентификатор и другие параметры, чтобы определить их поведение.
Реализация выглядит примерно так:
Ваши объекты появляются в вашем .tmx
<objectgroup name="Container" offsetx="0" offsety="2">
<object id="148" name="Chest1" x="72" y="3654">
<properties>
<property name="state" value="chest_closed"/>
<property name="epic_Items" value="false"/>
...
</properties>
</object>
</objectgroup>
Теперь просто разбери их в своей игровой логике
List<ItemContainer> lootableContainers = new List<ItemContainer>();
foreach (var o in curMap.ObjectGroups["Container"].Objects)
lootableContainers.Add(new ItemContainer([o.params]));