Building System documentation - BuildParts EN|FR

Introducing:

BuildPart is for grouping builds using the same shapes, snaps and features.
BuildPart is used everywhere, for placing, snaping, sorting, in every building actor, build manager or build component.
BuildPart are defined in enum E_BuildPart (SurvivalBuildingSystem -> Core -> Enums) and data for each in Data_BuildPart (Using Struct_BuildPart)

Structure of Datatable:

Row Name -> Same as in E_BuildPart
GroundOffset -> Offset that used when it's place on ground (off snapping).
FoundationOffset -> Offset that used when it's place on floor (off snapping).
Actor -> Actor asset (BP_Building child)
BuildType -> BuildType from E_BuildType to group.
SupportType ->Array of E_BuildSupportType to define how to and where to place.
SnapOffset -> Offset that used when it's place on snap, only used for Door actualy, because the door uses its point of origin as the axis of rotation and therefore it needs to be offset.
SupportLost -> SupportLost is for define how many support point building lost from parent support point (Currently only for ceilings).
RotationType -> Using E_RotationType to determine snap minimum rotation angle.

BuildParts:

1] Foundations (Tiered):


BuildPart_SquareFoundation


Square Foundation is basique foundation, most of it is under the ground to avoid holes underneath, you can stack them one above the other.
Foundation is required for most of other buildings.
Size (UE unit): 400x400x400
SupportTypes: byBuildSnap, byGround
So they can be put on ground and snap to other foundations & pillars.
RotationType: Rotation90
So they can be rotate on snap by 90° (rotation on ground is not affected), if you have wooden foundation to make every plank in same direction.

BuildPart_TriangleFoundation


Same as Square Foundation, but in triangle shape.
SupportTypes: byBuildSnap, byGround
RotationType: Rotation120
So they can be rotate on snap by 120°, is equilateral triangle so is needed to rotate every 120°.

BuildPart_Pillar


Pillar is basique foundation too, you can stack them, snap with foundations, walls, use as pillar, support, or just for decoration on walls.
SupportTypes: byBuildSnap, byGround, byBuildFloor
Like foundations, but have byBuildFloor so tey can be put on ceiling or foundation freely without snaping
RotationType: NoRotation
So they can't be rotate on snap because it's same thing, but you can rotate on ground

2] Walls (Tiered):

BuildPart_Wall


It's wall ! Funny ... So basic wall, can be stacked one above the other, use as wall on foundation, or use directly on ground, or freely on floor
SupportTypes: byBuildSnap, byGround, byBuildFloor
RotationType: Rotation180
So they can be rotate on snap by 180° to use side you want

BuildPart_DoorFrame


Same as Wall but with hole for single door. SupportTypes: byBuildSnap, byGround, byBuildFloor
RotationType: Rotation180

BuildPart_WindowFrame


Same as Wall but with hole for window. SupportTypes: byBuildSnap, byGround, byBuildFloor
RotationType: Rotation180

BuildPart_DoubleDoorFrame


Same as Wall but with hole for double doors. SupportTypes: byBuildSnap, byGround, byBuildFloor
RotationType: Rotation180

BuildPart_SemiWall


Almost same as Wall but it's height is 1/2 of regular wall, so you can snap to 180° stairs, or use has wall fondation, or fence ?
It can be stack them or with regular walls.
SupportTypes: byBuildSnap, byGround, byBuildFloor
RotationType: Rotation180

BuildPart_SlopeWall


SlopeWall is for use with BuildPart_RoofTop or BuildPart_RoofWindow.
SupportTypes: byBuildSnap
RotationType: Rotation180

BuildPart_SlopeWallUp


SlopeWallUp is for use with roofs, you can rotate it at 180°, so we don't need right and left version, just rotate it.
SupportTypes: byBuildSnap
RotationType: Rotation180

BuildPart_SlopeWallDown


SlopeWallDown can only be attach to side of another wall, it's the only BuildPart that can be snap to side of wall, and can't rotate, because snap define rotation of it, so manualy rotation is not needed.
SupportTypes: byBuildSnap
RotationType: NoRotation

3] Ceilings (Tiered):

BuildPart_SquareCeiling


Square Ceiling if using as ceiling and as floor, it's only BuildPart with TriangleCeiling that have SupportLost, that use for bearing, to know if each ceiling can support other building before wall/pillar needed (to make bridge for example)
SupportTypes: byBuildSnap
RotationType: Rotation90

BuildPart_TriangleCeiling


Same as Square one but triangle ...
SupportTypes: byBuildSnap
RotationType: Rotation120

4] Roofs (Tiered):

BuildPart_Roof


Basic roof, roofs can support only other roofs or ceilings.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofWindow


Roof with part to adapt to SlopeWall or RootTops.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofTriangle


Triangle roof, used to walls on triangle foundation/ceiling.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofCornerOuter


Corner roof for corner part, like some building need. Need only one wall to support it.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofCornerInner


Roof corner for inner corner, and this roof can only supported by another roof, it can't be supported by wall contrary to almost all other roofs.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofTopStraight


RoofTop with 2 opposite sides that are open.
A straight RoofTop, need only one support.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofTopT


RoofTop with 3 sides that are open.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofTopCorner


RoofTop with 2 connected sides that are open.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofTopEnd


RoofTop with one side that are open.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofTopCross


RoofTop with 4 sides that are open, basically a crossing part.
Like RoofCornerInner, this roof can only supported by another roof, it can't be supported by wall contrary to almost all other roofs.
SupportTypes: byBuildSnap
RotationType: NoRotation

BuildPart_RoofTopFull


RoofTop fully closed, for top of tower roof for example.
SupportTypes: byBuildSnap
RotationType: NoRotation

5] Doors/Windows (Tiered):

BuildPart_Door


Door is only one that use SnapOffset because it's origin point is used as axis for rotation, and for that, origin point on door need to be offset from center, and need offset for snap placing because snap use center of his box to place.
It can be rotated to 180° to make handle in other side
SupportTypes: byBuildSnap
RotationType: Rotation180

BuildPart_DoubleDoor


Double Door don't need offset like door, because it's static mesh is only use for placement, because actor for DoubleDoor, use single door static mesh.
It's can't be rotated, because is double door, handle always on center SupportTypes: byBuildSnap
RotationType: Rotation180

BuildPart_Window


Window is the only part that use transparent part in staticmesh, is that why static mesh of window don't have nanite enabled. SupportTypes: byBuildSnap
RotationType: NoRotation

6] Stairs (Tiered):

BuildPart_StraightStairs


Basic striaght stairs.
SupportTypes: byBuildSnap, byGround
RotationType: Rotation90

BuildPart_180Stairs


2 small stairs connected by 1 step to make 180° stairs like stairs on some school or city building.
SupportTypes: byBuildSnap, byGround
RotationType: Rotation90

BuildPart_Ramp


Basicly is just ramp but it need snap contrary to stairs.
SupportTypes: byBuildSnap
RotationType: NoRotation

7] Railings (Tiered):

BuildPart_Railing


Railing as fence or for bridge or stairs etc.
Railing is only one building that use shape, to adapt mesh to stairs like BuildPart_180Stairs, each shape need to be stored in Data_Buildings, but only the shape 1 is show on Build Window
It can be put on ground on even on building floor
SupportTypes: byBuildSnap, byGround, byBuildFloor
RotationType: NoRotation

8] Lights:

BuildPart_CeilingLight


CeilingLight can only be place on ceiling, and have light on them.
CeilingLight don't need snap, so it can therefore be rotated as we see fit
Lights are not tiered, that mean, it's not bound to one tier.
SupportTypes: byBuildCeiling
RotationType: NoRotation

BuildPart_WallLight


WallLight can only be place on wall, and have light on them.
WallLight don't need snap, so it can therefore be rotated as we see fit
SupportTypes: byBuildWall
RotationType: NoRotation