Laying tiled brick floors, walls, pillars, and other masonry

So I had a really neat idea like 5 or 6 years ago of using a brick laying function that would lay out Geometry instancing bricks out from a user defined design file. I originally had programmed this in my own game engine, but now coming to ue4 i think its time to transcribe this over but i cant figure where i should be doing this kind of logic. In my engine i was able to directly add a specific bsp type of brush that was separate from regular bsp, and have extra editor buttons, Clear BrickBSP and Fill BrickBSP easily. But how do i add new, windows, buttons and a new bsp type ? What would be more beneficial ? to keep on trucking like i am currently and directly editing the engine source or ?, maybe create a , or use an actor that spawns meshes in to the level, or something else entirely ? I’d eventually like this to be available for others to use and i don’t want to say, oh use my specific engine version, also, if i update to a new engine version i’ll basically have to reprogram everything to fit within the new editor in the case epic changes something. I wanted to make a , but there isnt allot of useful info on how to make functional plugins, maybe im just dumb but i cant get a to compile correctly i can make a blank with new buttons galore but when i start to add extra slate and some functionality everything breaks and i cry. Although the editor code, which currently im copy pasting and modifying in my engine source, i can make menus, buttons everything i need, but i seriously dont want to have to maintain my own engine version.

Let me lay out what im trying to create. (pun intended)

I’d like the user to set up a type of bsp brush or multiple bsp brushes within the level, It would take a design file with some layout grammar for example “longbrick, shortbrick” it’ll repeat it and lay down the bricks for each row if it is a wall or pillar, floors were always 1 brick rows. so you could create brick walkways, pillars, walls ect all with a single function. the function would lay down bricks in a designed fashion along and fill the brush(es) and then hollow out so there was only a shell left (in my game engine, it only places bricks ontop of the bsp faces brush, then creates a 2 triangle face on each bsp face to create a grout surface) but i could see why adding options to everything to have it filled or unfilled, grouted or ungrouted would be beneficial so you could have some epic usability and functionality.

My editor tool originally has allot of options to set sizes like only 1 pattern, a static grout width (the separation from brick to brick), a 2 brick sizes of Depth of 4 inch, Width of 9 inch, and Height of 3 inch, and the double brick, bsp locked sizes, meaning, when sizing the bsp brush it would lock on to specific sizes that the brick pattern would fit, also had brick logic like on bsp corners always place a brick end cap, on the northern most side (the top) place rows of brick caps if it was a pillar or wall, it also had wall, floor, and pillar radio button on the bsp shapes where you select the bsp shape in editor and had options for them so the generator knew what you wanted it to propagate with. other wise it would always default to wall. Also my tool used an instanced brick texture array so every brick didnt have the same material there were options to use a single array number too.

I think all the requirements for this are,

  • New BrickBSP Type, when selected the details have options like a masonry type radio buttons; wall, floor, pillar, a hollow and grout check-box, 3 buttons a button to open the BrickLayout Window, + Clear and Fill BrickBSP
  • BrickLayout Window - Containing the various Brick and Material options, and a text editor for the layout file

Need help on creating a new type of BSP brush and the window

I’ve figured out how to have another geometry brush. Now does anyone know where i can find the code for the details panel when it is selected ? Granted I pretty much copy pasta the box brush and added it in the source, but i cant seem to find the details for it, i have to be overlooking something fierce.

BrushDetails.cpp. Class name is FBrushDetails. Is that the one your looking for? The one that contains Brush Type, Brush Shape, etc.

Might be! I’ll have to wait till i am back home to see, I don’t have internet, so i must venture from the dev cave to post ! Can i ask you where its location is ? just for clarity :slight_smile:

Edit #1 Nvm im pretty sure i know where it is, thanks mate!

Edit #2 I forgot i had un-compiled source on this pc! I think this is it! Sweet, thanks again.

It was actually CubeBuilder and EditorBrushBuilder i was looking for!