Files
UnrealEngineUWP/Engine/Plugins/Runtime/SmartObjects/Source/SmartObjectsModule/Public/Annotations/SmartObjectSlotLinkAnnotation.h
mikko mononen c06beb8571 SmartObject improvements
- Fixed hashing when adding shared fragment for smart object slot definition
- Added per slot Runtime Tags
- Added common event handling for Smart Object and Slot changes and events
- Added annotations, which are slot definition data that has visualization
- Added linked slot annotation which allows behavior reuse on slots
- Added editor only ID for each slot so that they can be identified during edits
- Added SmartObject slot reference type that can be used to reference other slots in the Smart Object
- Changed Smart Object bDisable to bEnabled
- Added separate enabled state for slots
- Changed Smart Object disable to send an event, not forcefully unclaim
- Added more visualization support for Smart Object editor (canvas, visualize annotations)
- Changed Smart Object editor to use the commonly transform for slots
- Remove Smart Object Component instance from the asset editor as it was not needed

#rb Stephen.Holmes
#preflight 6360f0cf63608aee36e01ba5

[CL 22888712 by mikko mononen in ue5-main branch]
2022-11-01 15:11:25 -04:00

31 lines
983 B
C

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "SmartObjectAnnotation.h"
#include "SmartObjectSlotLinkAnnotation.generated.h"
/**
* Annotation to allow to find slots based on a Gameplay Tag.
* This can be used to reuse same behavior on different slots, allowing to use a tag to identify a related slot.
*/
USTRUCT()
struct SMARTOBJECTSMODULE_API FSmartObjectSlotLinkAnnotation : public FSmartObjectSlotAnnotation
{
GENERATED_BODY()
virtual ~FSmartObjectSlotLinkAnnotation() override {}
#if UE_ENABLE_DEBUG_DRAWING
virtual void DrawVisualization(FSmartObjectVisualizationContext& VisContext) const override;
virtual void DrawVisualizationHUD(FSmartObjectVisualizationContext& VisContext) const override;
#endif
/** Tag to identify this slot. */
UPROPERTY(EditAnywhere, Category="Default")
FGameplayTag Tag;
/** The slot the annotation points at. */
UPROPERTY(EditAnywhere, Category="Default")
FSmartObjectSlotReference LinkedSlot;
};