So, I want to build the interior of a house almost entirely out of brushes (partially for my own amusement, and partially because the game I’m using doesn’t have appropriate door models). So, I created a fancy little brush based door using a few brush entities and some I/O, and so far, it’s worked beautifully. However, I’ve run into a situation where the door needs to be rotated 180 degrees. So I just copied the func_instance from before and rotated it 180 degrees. When I open it from one side, it does what you’d expect it to do, rotating away from me at 90 degrees. However, if you attempt to open it from the other side, it tries to spin towards the player, going through all the walls I placed, just to get in the right position. And if you close it while its’ open in that position, it’ll do the same buggy movement in reverse!
I tried creating four door instances at different angles, to see what angles affected what (in a vain attempt to find a solution to the problem). This is what I found:
- 0 degrees: Functions as expected
- 90 degrees: Always ends up in the same position, but will rotate their in a different way depending on where the player is (always rotates away from player to get to the one position, even if that requires a 270 degree turn)
-180 degrees: When opened from one side, it acts as normal. When opened from the other side, it will rotate 450 degrees (yes, 450 :why:), but will end up in the correct position.
- 270 degrees: Works normally, but only opens in one direction.
The doors do have solid objects around them, but deleting them doesn’t fix the issue.
How would I get around this? I’m going to need to place a lot of these doors in my map, but setting up the IO separately for each one would be painful, and I want the ability to update all the doors at once (as pretty much everything is still WIP).