Wall-Floor Integration — Merger Plugin
Wall-Floor Integration
This page explains how the Wall Plugin (CodPassionWall) and the Dynamic Floor Plugin (DynamicFloorPlugin) are connected inside the Coding Passion Plugin Merger.
Overview
The Merger Plugin does not change either dependency plugin. Instead it adds a layer of integration Blueprints that:
- Route player input to the correct plugin depending on which mode is active
- Connect the wall system to the floor plugin’s room detection (NodeSystem)
- Present both plugin UIs inside a single combined HUD
BP_PluginMergerController
The central controller that brings both plugins together.
- Holds one component for each plugin (Wall Plugin component + Floor Plugin component)
- On startup (
BeginPlay): creates the HUD widget and initializes in Wall System mode - Receives all player input and forwards it to the currently active plugin component
Key functions
| Function | Description |
|---|---|
BeginPlay | Sets up WBP_MergerUI widget and adds it to the viewport; initializes to Wall Plugin mode |
PluginSwitch | Sets the active plugin; all input forwarding depends on this value |
LeftMouseButton | Forwards left mouse click to the active plugin component |
RightMouseButton | Forwards right mouse click to the active plugin component |
LeftShift | Forwards Left Shift to the active plugin component |
Wall Plugin event graph — UIWallEvents
| Function | Description |
|---|---|
InitiatePlacementOfPlaceable | Triggers spawn of the correct placement tool for the selected wall object |
InitiateWallColoring | Triggers spawn of the wall coloring tool — TODO verify: shipped in v1.0? |
SetGridEnabled | Enables or disables the Wall Plugin’s placement grid |
Floor Plugin event graph — UIFloorEvents
| Function | Description |
|---|---|
PlaceFloor | Triggers spawn of the floor placement tool |
BP_EditorWallWithFloorsBP
This Blueprint is the key integration point between the two plugins.
It extends a wall Blueprint with awareness of the Floor Plugin’s NodeSystem, which is used for room detection and floor filling.
What it does
- On
BeginPlay: registers itself as a listener for wall construction events; initializes the NodeSystem - When walls change, the NodeSystem is updated so the floor system knows the current room geometry
Key functions
| Function | Description |
|---|---|
BeginPlay | Registers as wall event listener; initializes the NodeSystem |
ReportNewNodeSituation | Called when the node layout changes; updates the NodeSystem with the current wall state |
LeftClick (overwrite) | Overrides the base wall left-click to handle cleanup specific to the integrated setup |
WallConstructionChangeFinished | Called when a wall construction action is complete; triggers a NodeSystem cleanup pass |
WBP_MergerUI
A single HUD Widget Blueprint that presents both plugin UIs in one screen.
- Uses a Widget Switcher to show the correct sub-widget for the active plugin
- Two buttons at the top of the screen switch between Wall System and Floor System
- Communicates with
BP_PluginMergerControllervia theBI_UiToMergerControllerinterface
BI_UiToMergerController
A Blueprint Interface that defines the communication contract between the HUD and the controller.
| Function | Description |
|---|---|
PluginSwitch | Called by the UI when the user switches plugin; forwards the selection to BP_PluginMergerController |
Signal flow
Player clicks plugin switch button → WBP_MergerUI → BI_UiToMergerController :: PluginSwitch → BP_PluginMergerController :: PluginSwitch → active plugin component changesTODOs
TODO verify: is the NodeSystem a concept that exists in DynamicFloorPlugin, or is it new in the Merger?TODO: add diagram showing how PluginSwitch flows from WBP_MergerUI → BI_UiToMergerController → BP_PluginMergerControllerTODO: add a migration guide for attaching BP_EditorWallWithFloorsBP to custom wall Blueprints in a new project
→ Features · Build Mode · Examples