Skip to content

UAndromedaWorkstationPlacementValidatorComponent

Kind: class Source: Source/Andromeda/Workstation/AndromedaWorkstationPlacementValidatorComponent.h Base classes: UActorComponent

Details

Geometry validator for positive workstation placement volumes and anti-volumes.

Protected Properties

Member Type Summary
PlacementVolumeTag FName Editor-configurable tag for positive placement volumes.
PlacementAntiVolumeTag FName Editor-configurable tag for anti-volumes that reject overlap.

Public Methods

Member Type Summary
UAndromedaWorkstationPlacementValidatorComponent function Disables ticking because validation runs on explicit queries.
GetPlacementVolumeTag FName Returns the tag used for positive placement volumes.
GetPlacementAntiVolumeTag FName Returns the tag used for anti-volumes.
IsObjectCorrectlyPlacedAtTransform bool Tests a candidate object transform against positive and anti-volume geometry.
GetCorrectlyPlacedObjects TArray< UObject * > Finds currently placed objects that satisfy workstation geometry.
ConfigurePlacementQueryVolumes void Iterates over all the components of the owner and finds out those that are tagged as placement volumes or anti-volumes.

Private Methods

Member Type Summary
GetTaggedPlacementVolumeComponents TArray< const UPrimitiveComponent * > Collects supported placement volume primitives with the supplied tag.
FindFirstOverlappingVolumeAtTransform const UPrimitiveComponent * Runs the pair overlap query and returns the first matching volume.
ConfigurePlacementQueryVolume void Applies collision and visibility settings to a validation primitive.

Members

PlacementVolumeTag

FName PlacementVolumeTag

Editor-configurable tag for positive placement volumes.

PlacementAntiVolumeTag

FName PlacementAntiVolumeTag

Editor-configurable tag for anti-volumes that reject overlap.

UAndromedaWorkstationPlacementValidatorComponent

UAndromedaWorkstationPlacementValidatorComponent::UAndromedaWorkstationPlacementValidatorComponent()

Disables ticking because validation runs on explicit queries.

GetPlacementVolumeTag

FName UAndromedaWorkstationPlacementValidatorComponent::GetPlacementVolumeTag() const

Returns the tag used for positive placement volumes.

Returns:

Tag identifying positive placement volumes.

GetPlacementAntiVolumeTag

FName UAndromedaWorkstationPlacementValidatorComponent::GetPlacementAntiVolumeTag() const

Returns the tag used for anti-volumes.

Returns:

Tag identifying anti-volumes that reject overlap.

IsObjectCorrectlyPlacedAtTransform

bool UAndromedaWorkstationPlacementValidatorComponent::IsObjectCorrectlyPlacedAtTransform(UObject *Object, const FTransform &ItemTransform) const

Tests a candidate object transform against positive and anti-volume geometry.

Correct placement means the candidate overlaps at least one positive volume and zero anti-volumes.

Parameters:

Name Type Description
Object UObject * Carryable object to test.
ItemTransform const FTransform & Candidate world transform.

Returns:

True when the candidate is correctly placed for this validator.

GetCorrectlyPlacedObjects

TArray< UObject * > UAndromedaWorkstationPlacementValidatorComponent::GetCorrectlyPlacedObjects() const

Finds currently placed objects that satisfy workstation geometry.

Returns:

Unique carryable objects that pass current-transform validation.

ConfigurePlacementQueryVolumes

void UAndromedaWorkstationPlacementValidatorComponent::ConfigurePlacementQueryVolumes() const

Iterates over all the components of the owner and finds out those that are tagged as placement volumes or anti-volumes. Then configures tagged primitive components as hidden query-only validation volumes.

GetTaggedPlacementVolumeComponents

TArray< const UPrimitiveComponent * > UAndromedaWorkstationPlacementValidatorComponent::GetTaggedPlacementVolumeComponents(FName VolumeTag) const

Collects supported placement volume primitives with the supplied tag.

Parameters:

Name Type Description
VolumeTag FName Tag used to select validation volumes.

Returns:

Owner primitives tagged with VolumeTag.

FindFirstOverlappingVolumeAtTransform

const UPrimitiveComponent * UAndromedaWorkstationPlacementValidatorComponent::FindFirstOverlappingVolumeAtTransform(UObject *Object, const FTransform &ItemTransform, const TArray< const UPrimitiveComponent * > &Volumes) const

Runs the pair overlap query and returns the first matching volume.

Parameters:

Name Type Description
Object UObject * Carryable object whose bounds and ignored actor drive the query.
ItemTransform const FTransform & Candidate world transform.
Volumes const TArray< const UPrimitiveComponent * > & Candidate validation volumes to match against.

Returns:

First overlapping volume from Volumes, or nullptr.

ConfigurePlacementQueryVolume

void UAndromedaWorkstationPlacementValidatorComponent::ConfigurePlacementQueryVolume(UPrimitiveComponent *PrimitiveComponent) const

Applies collision and visibility settings to a validation primitive.

Unsupported primitives are ignored. Supported primitives become hidden query-only validation shapes that overlap world static, world dynamic, and physics body channels.

Parameters:

Name Type Description
PrimitiveComponent UPrimitiveComponent * Component to configure.