Skip to content

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:

  1. Route player input to the correct plugin depending on which mode is active
  2. Connect the wall system to the floor plugin’s room detection (NodeSystem)
  3. 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

FunctionDescription
BeginPlaySets up WBP_MergerUI widget and adds it to the viewport; initializes to Wall Plugin mode
PluginSwitchSets the active plugin; all input forwarding depends on this value
LeftMouseButtonForwards left mouse click to the active plugin component
RightMouseButtonForwards right mouse click to the active plugin component
LeftShiftForwards Left Shift to the active plugin component

Wall Plugin event graph — UIWallEvents

FunctionDescription
InitiatePlacementOfPlaceableTriggers spawn of the correct placement tool for the selected wall object
InitiateWallColoringTriggers spawn of the wall coloring tool — TODO verify: shipped in v1.0?
SetGridEnabledEnables or disables the Wall Plugin’s placement grid

Floor Plugin event graph — UIFloorEvents

FunctionDescription
PlaceFloorTriggers 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

FunctionDescription
BeginPlayRegisters as wall event listener; initializes the NodeSystem
ReportNewNodeSituationCalled 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
WallConstructionChangeFinishedCalled 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_PluginMergerController via the BI_UiToMergerController interface

BI_UiToMergerController

A Blueprint Interface that defines the communication contract between the HUD and the controller.

FunctionDescription
PluginSwitchCalled 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 changes

TODOs

  • 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_PluginMergerController
  • TODO: add a migration guide for attaching BP_EditorWallWithFloorsBP to custom wall Blueprints in a new project

Features · Build Mode · Examples