From a4da93cc6379f97840b394953e2eaa936c217615 Mon Sep 17 00:00:00 2001 From: Joshua Deville Date: Wed, 8 Jul 2026 16:25:06 -0400 Subject: [PATCH] Add block-slot stat aggregation to BP_ShipPawn (Phase 2a) Four typed slot variables (Slot_Hull/Thruster/Power/Storage, one per block class) plus a RecalculateStats event that reads each slot (via IsValid + external-member Get on the slot's block instance) and derives MaxHull, ShipMovement.MaxSpeed, MaxPower/Power, and StorageCapacity from base values plus whatever's attached. Called at the end of BeginPlay. All slots empty = base values, matching current gameplay exactly. New technique discovered: VariableGet/VariableSet support an external member reference via a "variable_class" field (full asset path required for Blueprint-generated classes, not just the short class name) -- this is how block-instance properties and component properties (e.g. FloatingPawnMovement.MaxSpeed) get read/written at runtime without needing a formal Function or the broken array/loop path. --- Content/Blueprints/BP_ShipPawn.uasset | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Content/Blueprints/BP_ShipPawn.uasset b/Content/Blueprints/BP_ShipPawn.uasset index f9e9eb5..e0e2299 100644 --- a/Content/Blueprints/BP_ShipPawn.uasset +++ b/Content/Blueprints/BP_ShipPawn.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f1bed6ee5de9ca99e48e620ee3c895d3c1f840f01e0c8172807291c452137b7d -size 222193 +oid sha256:bc4d417339a110899158a1152f0c0669e24d04cf948b80616a1a10bb3009480b +size 309200