90 lines
3.8 KiB
Ucode
90 lines
3.8 KiB
Ucode
/**
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*
|
|
* This class is the base class for any kind of object that wants the following features:
|
|
* - be a subobject inside a class definition (called the owner class)
|
|
* - values of the component can be overridden in a subclass of the owner class, by
|
|
* defining a component in the subclass with the same name as the component in the base class
|
|
* definition. Note, you CANNOT GIVE IT A CLASS= DEFINITION! (See UDN page for more info)
|
|
* - Changes to the default values to the component will be propagated to components that are
|
|
* created inside a map, unless the value was changed away from the default value in the editor.
|
|
*/
|
|
class Component extends Object
|
|
native
|
|
abstract;
|
|
|
|
var const native Class TemplateOwnerClass;
|
|
var const native name TemplateName;
|
|
|
|
cpptext
|
|
{
|
|
/**
|
|
* Given a subobject and an owner class, save a refernce to it for retrieveing defaults on load
|
|
* @param OriginalSubObject The original template for this subobject (or another instance for a duplication?)
|
|
* @param OwnerClass The class that contains the original template
|
|
* @param SubObjectName If the OriginalSubObject is NULL, manually set the name of the subobject to this
|
|
*/
|
|
void LinkToSourceDefaultObject(UComponent* OriginalComponent, UClass* OwnerClass, FName ComponentName = NAME_None);
|
|
|
|
/**
|
|
* Copies the SourceDefaultObject onto our own memory to propagate any modified defaults
|
|
* @param Ar The archive used to serialize the pointer to the subobject template
|
|
*/
|
|
void PreSerialize(FArchive& Ar);
|
|
|
|
/**
|
|
* Copies the Source DefaultObject onto our own memory to propagate any modified defaults
|
|
* @return The object pointed to by the SourceDefaultActorClass and SourceDefaultSubObjectName
|
|
*/
|
|
UComponent* ResolveSourceDefaultObject();
|
|
|
|
/**
|
|
* Returns name to use for this component in component instancing maps.
|
|
*
|
|
* @return a name for this component which is unique within a single object graph.
|
|
*/
|
|
FName GetInstanceMapName() const;
|
|
|
|
/**
|
|
* Returns whether this component was instanced from a component template.
|
|
*
|
|
* @return TRUE if this component was instanced from a template. FALSE if this component was created manually at runtime.
|
|
*/
|
|
UBOOL IsInstanced() const;
|
|
|
|
/**
|
|
* Returns whether native properties are identical to the one of the passed in component.
|
|
*
|
|
* @param Other Other component to compare against
|
|
*
|
|
* @return TRUE if native properties are identical, FALSE otherwise
|
|
*/
|
|
virtual UBOOL AreNativePropertiesIdenticalTo( UComponent* Other ) const;
|
|
|
|
/**
|
|
* Callback for retrieving a textual representation of natively serialized properties. Child classes should implement this method if they wish
|
|
* to have natively serialized property values included in things like diffcommandlet output.
|
|
*
|
|
* @param out_PropertyValues receives the property names and values which should be reported for this object. The map's key should be the name of
|
|
* the property and the map's value should be the textual representation of the property's value. The property value should
|
|
* be formatted the same way that UProperty::ExportText formats property values (i.e. for arrays, wrap in quotes and use a comma
|
|
* as the delimiter between elements, etc.)
|
|
* @param ExportFlags bitmask of EPropertyPortFlags used for modifying the format of the property values
|
|
*
|
|
* @return return TRUE if property values were added to the map.
|
|
*/
|
|
virtual UBOOL GetNativePropertyValues( TMap<FString,FString>& out_PropertyValues, DWORD ExportFlags=0 ) const;
|
|
|
|
// UObject interface.
|
|
|
|
virtual UBOOL IsPendingKill() const;
|
|
|
|
/**
|
|
* @return if this object is a UComponent or subclass
|
|
*/
|
|
virtual UBOOL IsAComponent() const
|
|
{
|
|
return TRUE;
|
|
}
|
|
}
|