I had a sliding bookshelf class waiting to be used for the game so I will use that to create a puzzle level for the project however the class has some shortcomings that I have since learnt from and know how to deal with such as the collision box being the root component so if you want to change its location you have to move the entire blueprint
In the new system I have changed the heigharchy of the components so that the collision box is no longer the root component, this means that you can move the collision box instead of having to move everything around it

I have changed the way that the sliding block system checks which point (Start or End) its closest too, because it only checks once the movement is completed I only need to see if its closer to one than it is to the other, as well it seems my previous implementation was nonsensical as it runs an if statement with opposite checks to the ones needed to get to the if itself. Instead it will now run the if once the timer, that the object moves according to, ends

I’m going to change the way that the sliding block handles interaction, currently it has a variable called object to move which is a single object however for the puzzle that I want to make I will change it so that it has an array of objects which will give me the ability to have each interaction zone affect as many sliding blocks as I want
This overhaul has caused a problem to arise involving my system to check if the object is at the start or end point, I should be able to exchange this previous system with just having the bool swap on timer end
Suddenly realised during this process that the way that I have gone about changing this will not work as it only supports one start and end point, I will need something external to handle all of the different start and end points, I will instead make something that will manage the sliding blocks (calling blocks from now on) and give the blocks a bool which dictates if it will be handled by something else (removing its collider) or not

When it came to designing the room, I split it into two halves and for each door I’d give it a purpose before I placed it (first door is there to teach about buttons) top door is there to teach about single bookshelf buttons + hiding buttons, right door blocks a single and is a path to the final first half button (behind another shelf) etc, I do not believe there is a wasted door that the player will not have to think about

When I got to the second half of the room, to spice it up a little I added shelfs that would permenently move so that the player has to time their passes through