62 lines
1.4 KiB
Ucode
62 lines
1.4 KiB
Ucode
/**
|
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
|
*/
|
|
|
|
class PBRuleNodeSplit extends PBRuleNodeBase
|
|
native(ProcBuilding)
|
|
collapsecategories
|
|
hidecategories(Object)
|
|
dependson(ProcBuildingRuleset);
|
|
|
|
|
|
var() EProcBuildingAxis SplitAxis;
|
|
|
|
struct native RBSplitInfo
|
|
{
|
|
var() bool bFixSize;
|
|
var() float FixedSize;
|
|
var() float ExpandRatio;
|
|
var() name SplitName;
|
|
|
|
structdefaultproperties
|
|
{
|
|
bFixSize=false
|
|
FixedSize=512.0
|
|
ExpandRatio=1.0
|
|
}
|
|
};
|
|
|
|
var() array<RBSplitInfo> SplitSetup;
|
|
|
|
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);
|
|
|
|
|
|
// PBRuleNodeSplit interface
|
|
|
|
/** Util to output array of size SplitSetup.Num(), indicating how to split a certain size using the splitting rules */
|
|
TArray<FLOAT> CalcSplitSizes(FLOAT TotalSize);
|
|
|
|
/** Update the NextRules array based on the RBSplitInfo array */
|
|
void UpdateRuleConnectors();
|
|
}
|
|
|
|
|
|
defaultproperties
|
|
{
|
|
SplitAxis=EPBAxis_Z
|
|
|
|
NextRules.Empty
|
|
NextRules[0]=(LinkName="Next")
|
|
NextRules[1]=(LinkName="0")
|
|
} |