63 lines
1.4 KiB
Ucode
63 lines
1.4 KiB
Ucode
/**
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
class PBRuleNodeEdgeAngle extends PBRuleNodeBase
|
|
native(ProcBuilding)
|
|
collapsecategories
|
|
hidecategories(Object);
|
|
|
|
/** Enum to indicate the various edges of a scope */
|
|
enum EProcBuildingEdge
|
|
{
|
|
EPBE_Top,
|
|
EPBE_Bottom,
|
|
EPBE_Left,
|
|
EPBE_Right
|
|
};
|
|
|
|
/** Edge of scope that we want to look at angle of */
|
|
var() EProcBuildingEdge Edge;
|
|
|
|
/** Struct containing info about each decision angle */
|
|
struct native RBEdgeAngleInfo
|
|
{
|
|
/** Angle (in degrees) */
|
|
var() float Angle;
|
|
|
|
structdefaultproperties
|
|
{
|
|
Angle=0.0
|
|
}
|
|
};
|
|
|
|
/** Set of angles of edge connection, each corresponds to an output of this node */
|
|
var() array<RBEdgeAngleInfo> Angles;
|
|
|
|
cpptext
|
|
{
|
|
// UObject interface
|
|
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
|
|
|
|
|
|
// PBRuleNodeBase interface
|
|
virtual void ProcessScope(FPBScope2D& InScope, INT TopLevelScopeIndex, AProcBuilding* BaseBuilding, AProcBuilding* ScopeBuilding, UStaticMeshComponent* LODParent);
|
|
|
|
// Editor
|
|
virtual FString GetRuleNodeTitle();
|
|
virtual FString GetRuleNodeOutputName(INT ConnIndex);
|
|
|
|
|
|
// PBRuleNodeEdgeAngle interface
|
|
|
|
/** Update the NextRules array based on the Angles array */
|
|
void UpdateRuleConnectors();
|
|
}
|
|
|
|
|
|
defaultproperties
|
|
{
|
|
Edge=EPBE_Left
|
|
|
|
NextRules.Empty
|
|
} |