Refactored Dungeon to use the BlockStateDelegate