Glad it works as you wanted it too! I usually name temporary projects and objects after the usernames of the people I’m helping out
Tackling this issue got me thinking some more and I played around with a different way of achieving the same result. ATBTT uses two different methods for generating a walkability grid; one of them is manual by modifying edges directly, while the other one is procedural using line traces. I’ve become more and more a fan of the second method myself so I tried my hand at setting up a similar system using line traces. In the process I discovered a bug in my Trace for Walls function that causes the toolkit to ignore some walls in cases where there were multiple walls surrounding one tile. Here is the updated version, which will be included in the next update (a new trace channel, wall trace and a new public float, Trace for Walls height are added here as well):
This version needs to be set up like so in the event graph and construction scripts of BP_GridManager to work properly at startup:
Enabling Trace for Walls in BP_GridManager and setting Trace for Walls Height to something appropriate for your game (100 unreal units seems to work pretty well for the default toolkit) allows the toolkit to procedurally search for walls at startup and remove edges from any tiles surrounded by such walls. As such you would not need to program any functionality for modifying the edge array in your custom wall objects for them to block movement, and it would work for walls set in any direction. For spawning walls in game you could similarly spawn a very simple actor containing just a mesh that blocks WallTrace and then run the Trace for Walls function for that specific tile index and it should work instantly.
It is worth noting that this is a pretty costly operation, so I would not do this to a very large amount of tiles at the same time during gameplay. I would also check pregenerate gameplay grids before packaging the final build to cut down loading time.
This might not be the ideal solution for you, but it is perhaps the solution I would have used myself. This way you will not need to create a lot of different functions for various types of walls and buildings with various shapes and orientations, provided you keep the Trace for Walls function in mind when designing your meshes and levels.