You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
* Collection entry holds the Transform, Bounds and Index to the shared configuration. This removes the dependency on components being loaded to create runtime data for partitioned worlds. * Removed commented references to SparseClassData since that approach won't be used (actor component not supported) * Runtime data now points to a shared configuration from the collection instead of holding a copy * Subsystem tracks components registered at runtime so the collection can be updated accordingly since those entries won't persist outside of loading range * Moved most initialization code for the subsystem to the OnWorldComponentsUpdated callback since active level collection is set and actors from the persistent level registered. [WorldPartitionBuilder] * Added OnPartitionBuildStarted/OnPartitionBuildCompleted virtual methods * New UWorldPartitionSmartObjectCollectionBuilder to build SmartObjectCollection in partitioned worlds #preflight 61814a46fc786a0001447995 #jira UE-105113 #rb maxime.mercier #ROBOMERGE-AUTHOR: yoan.stamant #ROBOMERGE-COMMAND: FnMain #ROBOMERGE-SOURCE: CL 18019580 in //UE5/Main/... #ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v885-17909292) #ROBOMERGE[STARSHIP]: UE5-Release-Engine-Staging Release-5.0 #ROBOMERGE[bot1]: Main [CL 18019655 by yoan stamant in ue5-release-engine-test branch]
42 lines
1.6 KiB
C++
42 lines
1.6 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Components/SceneComponent.h"
|
|
#include "SmartObjectTypes.h"
|
|
#include "SmartObjectConfig.h"
|
|
#include "SmartObjectComponent.generated.h"
|
|
|
|
UCLASS(Blueprintable, ClassGroup = Gameplay, meta = (BlueprintSpawnableComponent), config = Game, HideCategories = (Activation, AssetUserData, Collision, Cooking, HLOD, Lighting, LOD, Mobile, Mobility, Navigation, Physics, RayTracing, Rendering, Tags, TextureStreaming))
|
|
class SMARTOBJECTSMODULE_API USmartObjectComponent : public USceneComponent
|
|
{
|
|
GENERATED_BODY()
|
|
|
|
public:
|
|
explicit USmartObjectComponent(const FObjectInitializer& ObjectInitializer = FObjectInitializer::Get());
|
|
|
|
FBox GetSmartObjectBounds() const;
|
|
|
|
const FSmartObjectConfig& GetConfig() const { return Config; }
|
|
|
|
FSmartObjectID GetRegisteredID() const { return RegisteredID; }
|
|
void SetRegisteredID(const FSmartObjectID Value) { RegisteredID = Value; }
|
|
|
|
/** Returns whether or not this component is used as a config template in the collection. */
|
|
bool IsTemplateFromCollection() const;
|
|
|
|
/** Adds and returns a reference to a defaulted slot (used for testing purposes) */
|
|
void DebugSetConfig(const FSmartObjectConfig& NewConfig) { Config = NewConfig; }
|
|
|
|
protected:
|
|
virtual void OnRegister() override;
|
|
virtual void OnUnregister() override;
|
|
|
|
UPROPERTY(EditDefaultsOnly, Category = SmartObject, meta = (ShowOnlyInnerProperties))
|
|
FSmartObjectConfig Config;
|
|
|
|
/** RegisteredID != FSmartObject::InvalidID when registered into a collection by SmartObjectSubsystem */
|
|
UPROPERTY(Transient, VisibleAnywhere, Category = SmartObject)
|
|
FSmartObjectID RegisteredID;
|
|
};
|