1
0
KF2-Dev-Scripts/Engine/Classes/Brush.uc
2020-12-13 18:01:13 +03:00

126 lines
3.4 KiB
Ucode

//=============================================================================
// The brush class.
// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
//=============================================================================
class Brush extends Actor
hidecategories(Object)
hidecategories(Movement)
hidecategories(Display)
native;
//-----------------------------------------------------------------------------
// Variables.
// CSG operation performed in editor.
var() enum ECsgOper
{
CSG_Active, // Active brush.
CSG_Add, // Add to world.
CSG_Subtract, // Subtract from world.
CSG_Intersect, // Form from intersection with world.
CSG_Deintersect, // Form from negative intersection with world.
} CsgOper;
// Information.
var() color BrushColor;
var int PolyFlags;
var() bool bColored;
var bool bSolidWhenSelected;
/** If TRUE, this brush class can be placed using the class browser like other simple class types */
var bool bPlaceableFromClassBrowser;
var export const Model Brush;
var editconst const BrushComponent BrushComponent;
// Selection information for geometry mode
struct native export GeomSelection
{
var int Type; // EGeometrySelectionType_
var int Index; // Index into the geometry data structures
var int SelectionIndex; // The selection index of this item
};
/**
* Stores selection information from geometry mode. This is the only information that we can't
* regenerate by looking at the source brushes following an undo operation.
*/
var array<GeomSelection> SavedSelections;
//-----------------------------------------------------------------------------
// cpptext.
cpptext
{
// UObject interface.
virtual void PostLoad();
virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent);
/** Called after using geom mode to edit thie brush's geometry */
virtual void PostEditBrush() {}
virtual UBOOL IsABrush() const {return TRUE;}
/**
* Note that the object has been modified. If we are currently recording into the
* transaction buffer (undo/redo), save a copy of this object into the buffer and
* marks the package as needing to be saved.
*
* @param bAlwaysMarkDirty if TRUE, marks the package dirty even if we aren't
* currently recording an active undo/redo transaction
*/
virtual void Modify(UBOOL bAlwaysMarkDirty = FALSE);
/**
* Serialize function
*
* @param Ar Archive to serialize with
*/
virtual void Serialize(FArchive& Ar);
/**
* Return whether this actor is a builder brush or not.
*
* @return TRUE if this actor is a builder brush, FALSE otherwise
*/
virtual UBOOL IsABuilderBrush() const;
/**
* Return whether this actor is the current builder brush or not
*
* @return TRUE if htis actor is the current builder brush, FALSE otherwise
*/
virtual UBOOL IsCurrentBuilderBrush() const;
// ABrush interface.
virtual void CopyPosRotScaleFrom( ABrush* Other );
virtual void InitPosRotScale();
#if WITH_EDITOR
virtual void CheckForErrors();
#endif
/**
* Figures out the best color to use for this brushes wireframe drawing.
*/
virtual FColor GetWireColor() const;
}
defaultproperties
{
Begin Object Class=BrushComponent Name=BrushComponent0
End Object
BrushComponent=BrushComponent0
CollisionComponent=BrushComponent0
Components.Add(BrushComponent0)
bStatic=True
bHidden=True
bNoDelete=True
bEdShouldSnap=True
}