1
0
This commit is contained in:
2020-12-13 18:01:13 +03:00
commit dd42f84140
3764 changed files with 596895 additions and 0 deletions

View File

@ -0,0 +1,62 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class ASVSkelComponent extends SkeletalMeshComponent
transient
native;
var native const pointer AnimSetViewerPtr;
/** If TRUE, render a wireframe skeleton of the mesh animated with the raw (uncompressed) animation data. */
var bool bRenderRawSkeleton;
/** If TRUE, render softbody tetrahedra */
var bool bShowSoftBodyTetra;
/** Holds onto the bone color that will be used to render the bones of its skeletal mesh */
var Color BoneColor;
/** If TRUE then the skeletal mesh associated with the component is drawn. */
var bool bDrawMesh;
/** Bone influences viewing */
var transient bool bDrawBoneInfluences;
/** Color render mode enum value - 0 - none, 1 - tangent, 2 - normal, 3 - mirror, 4 - bone weighting */
var native transient int ColorRenderMode;
/** Array of bone's to render bone weights for */
var transient array<int> BonesOfInterest;
/** Array of materials to restore when not rendering blend weights */
var transient array<MaterialInterface> SkelMaterials;
cpptext
{
// UPrimitiveComponent interface.
virtual FPrimitiveSceneProxy* CreateSceneProxy();
/**
* Function that returns whether or not CPU skinning should be applied
* Allows the editor to override the skinning state for editor tools
*/
virtual UBOOL ShouldCPUSkin();
/**
* Function to operate on mesh object after its created,
* but before it's attached.
* @param MeshObject - Mesh Object owned by this component
*/
virtual void PostInitMeshObject(class FSkeletalMeshObject* MeshObject);
/**
* Update material information depending on color render mode
* Refresh/replace materials
*/
void ApplyColorRenderMode(INT InColorRenderMode);
}
defaultproperties
{
bDrawMesh = true
bShowSoftBodyTetra = true
BoneColor = (R=230, G=230, B=255, A=255)
bUseOnePassLightingOnTranslucency=true
}

View File

@ -0,0 +1,24 @@
/**
* AnimNodeEditInfo
* Allows you to register extra editor functionality for a specific AnimNode class.
* One of each class of these will be instanced for each AnimTreeEditor context.
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class AnimNodeEditInfo extends Object
native
abstract;
var const class<AnimNode> AnimNodeClass;
cpptext
{
virtual void OnDoubleClickNode(UAnimNode* InNode, class WxAnimTreeEditor* InEditor) {}
virtual void OnCloseAnimTreeEditor() {}
virtual UBOOL ShouldDrawWidget() { return FALSE; }
virtual UBOOL IsRotationWidget() { return TRUE; }
virtual FMatrix GetWidgetTM() { return FMatrix::Identity; }
virtual void HandleWidgetDrag(const FQuat& DeltaQuat, const FVector& DeltaTranslate) {}
virtual void Draw3DInfo(const FSceneView* View, FPrimitiveDrawInterface* PDI) {}
}

View File

@ -0,0 +1,28 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class AnimNodeEditInfo_AimOffset extends AnimNodeEditInfo
native;
var native const pointer EditWindow{class WxAnimAimOffsetEditor};
var AnimNodeAimOffset EditNode;
cpptext
{
virtual void OnDoubleClickNode(UAnimNode* InNode, class WxAnimTreeEditor* InEditor);
virtual void OnCloseAnimTreeEditor();
virtual UBOOL ShouldDrawWidget();
virtual UBOOL IsRotationWidget();
virtual FMatrix GetWidgetTM();
virtual void HandleWidgetDrag(const FQuat& DeltaQuat, const FVector& DeltaTranslate);
virtual void Draw3DInfo(const FSceneView* View, FPrimitiveDrawInterface* PDI);
}
defaultproperties
{
AnimNodeClass=class'Engine.AnimNodeAimOffset'
}

View File

@ -0,0 +1,19 @@
/**
* This is the anim set label renderer
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class AnimSetLabelRenderer extends ThumbnailLabelRenderer
native;
cpptext
{
protected:
/**
* Adds the name of the object and anim set
*
* @param Object the object to build the labels for
* @param OutLabels the array that is added to
*/
void BuildLabelList(UObject* Object, const ThumbnailOptions& InOptions, TArray<FString>& OutLabels);
}

View File

@ -0,0 +1,16 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class AnimTreeEdSkelComponent extends SkeletalMeshComponent
native;
var transient native const pointer AnimTreeEdPtr;
cpptext
{
// UPrimitiveComponent interface.
virtual void Render(const FSceneView* View, class FPrimitiveDrawInterface* PDI);
// USkeletalMeshComponent interface.
virtual UBOOL LegLineCheck(const FVector& Start, const FVector& End, FVector& HitLocation, FVector& HitNormal, const FVector& Extent = FVector(0.f));
}

View File

@ -0,0 +1,19 @@
/**
* This is the anim tree label renderer
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class AnimTreeLabelRenderer extends ThumbnailLabelRenderer
native;
cpptext
{
protected:
/**
* Adds the name of the object and information about the anim tree
*
* @param Object the object to build the labels for
* @param OutLabels the array that is added to
*/
void BuildLabelList(UObject* Object, const ThumbnailOptions& InOptions, TArray<FString>& OutLabels);
}

View File

@ -0,0 +1,19 @@
/*=============================================================================
ApexClothingAssetLabelRenderer.uc: Apex integration for Clothing Assets.
Copyright 2008-2009 NVIDIA corporation..
=============================================================================*/
class ApexClothingAssetLabelRenderer extends ThumbnailLabelRenderer
native;
cpptext
{
protected:
/**
* Adds the name of the object and information about meshes, assets & chunks
*
* @param Object the object to build the labels for
* @param OutLabels the array that is added to
*/
void BuildLabelList(UObject* Object, const ThumbnailOptions& InOptions, TArray<FString>& OutLabels);
}

View File

@ -0,0 +1,19 @@
/*=============================================================================
ApexDestructibleAssetLabelRenderer.uc: Apex integration for Destructible Assets
Copyright 2008-2009 NVIDIA corporation..
=============================================================================*/
class ApexDestructibleAssetLabelRenderer extends ThumbnailLabelRenderer
native;
cpptext
{
protected:
/**
* Adds the name of the object and information about meshes, assets & chunks
*
* @param Object the object to build the labels for
* @param OutLabels the array that is added to
*/
void BuildLabelList(UObject* Object, const ThumbnailOptions& InOptions, TArray<FString>& OutLabels);
}

View File

@ -0,0 +1,31 @@
/*=============================================================================
ApexDestructibleThumbnailRenderer.uc: Apex integration for Destructible Assets
Copyright 2008-2009 NVIDIA corporation..
=============================================================================*/
class ApexDestructibleAssetThumbnailRenderer extends DefaultSizedThumbnailRenderer
native
config(Editor);
cpptext
{
/**
* Draws a thumbnail for the object that was specified
*
* @param Object the object to draw the thumbnail for
* @param PrimType ignored
* @param X the X coordinate to start drawing at
* @param Y the Y coordinate to start drawing at
* @param Width the width of the thumbnail to draw
* @param Height the height of the thumbnail to draw
* @param Viewport ignored
* @param Canvas the render interface to draw with
* @param BackgroundType type of background for the thumbnail
* @param PreviewBackgroundColor background color for material previews
* @param PreviewBackgroundColorTranslucent background color for translucent material previews
*/
virtual void Draw(UObject* Object,EThumbnailPrimType,INT X,INT Y,
DWORD Width,DWORD Height,FRenderTarget*,FCanvas* Canvas,
EThumbnailBackgroundType BackgroundType,
FColor PreviewBackgroundColor,
FColor PreviewBackgroundColorTranslucent);
}

View File

@ -0,0 +1,19 @@
/*=============================================================================
ApexGenericAssetLabelRenderer.uc: Apex integration for Generic Assets.
Copyright 2008-2009 NVIDIA corporation..
=============================================================================*/
class ApexGenericAssetLabelRenderer extends ThumbnailLabelRenderer
native;
cpptext
{
protected:
/**
* Adds the name of the object and information about meshes, assets & chunks
*
* @param Object the object to build the labels for
* @param OutLabels the array that is added to
*/
void BuildLabelList(UObject* Object, const ThumbnailOptions& InOptions, TArray<FString>& OutLabels);
}

View File

@ -0,0 +1,25 @@
/**
* This is a simple thumbnail renderer that uses a specified icon as the
* thumbnail view for a resource. It will only render UClass objects with
* the CLASS_Archetype flag
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class ArchetypeThumbnailRenderer extends IconThumbnailRenderer
native;
cpptext
{
/**
* Allows the thumbnail renderer object the chance to reject rendering a
* thumbnail for an object based upon the object's data. For instance, an
* archetype should only be rendered if it's flags have RF_ArchetypeObject.
*
* @param Object the object to inspect
* @param bCheckObjectState TRUE indicates that the object's state should be inspected to determine whether it can be supported;
* FALSE indicates that only the object's type should be considered (for caching purposes)
*
* @return TRUE if it needs a thumbnail, FALSE otherwise
*/
virtual UBOOL SupportsThumbnailRendering(UObject* Object,UBOOL bCheckObjectState=TRUE);
}

View File

@ -0,0 +1,146 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Basic stat visualizer for game statistics
*/
class BasicStatsVisualizer extends GameStatsVisualizer
native(GameStats)
config(Editor);
/** Array of drawing properties per stat type setup in .ini */
struct native StatDrawingProperties
{
var int EventID; //EventID associated with these properties
var color StatColor; //Color to draw the sprite
var float Size; //Size of the sprite
var string SpriteName; //Name of the sprite resource
var Texture2D StatSprite; //Actual sprite texture
};
/** Generic stat container */
struct native BasicStatEntry
{
var int EventID;
var string EventName;
var float EventTime;
var vector Location;
var rotator Rotation;
};
/** Stat container with enough data to draw player information */
struct native PlayerEntry extends BasicStatEntry
{
var int PlayerIndex;
var string PlayerName;
var string WeaponName;
};
/** Stat container for a player player interaction */
struct native PlayerPlayerEntry extends BasicStatEntry
{
var int Player1Index;
var string Player1Name;
var int Player2Index;
var string Player2Name;
var vector Player2Location;
var rotator Rotation2;
};
/** Stat container for a player targeting action (kill/melee/death/etc) */
struct native PlayerTargetEntry extends BasicStatEntry
{
var string KillType;
var string DamageType;
var int PlayerIndex;
var string PlayerName;
var int TargetIndex;
var string TargetName;
var vector TargetLocation;
var rotator TargetRotation;
};
cpptext
{
/** Given a chance to initialize */
virtual void Init();
/** Reset the visualizer to initial state */
virtual void Reset();
/**
* Visualizes all stats in a very basic way (sprite at a location with an orientation arrow typically)
* @param View - the view being drawn in
* @param PDI - draw interface for primitives
* @param ViewportType - type of viewport being draw (perspective, ortho)
*/
virtual void Visualize(const FSceneView* View, class FPrimitiveDrawInterface* PDI, ELevelViewportType ViewportType);
/**
* Draw your stuff as a canvas overlay
* @param ViewportClient - viewport client currently drawing
* @param View - the view being drawn in
* @param Canvas - overlay canvas
* @param ViewportType - type of viewport being draw (perspective, ortho)
*/
virtual void VisualizeCanvas(FEditorLevelViewportClient* ViewportClient, const FSceneView* View, FCanvas* Canvas, ELevelViewportType ViewportType);
/**
* Return the drawing properties defined for the given EventID
* @param EventID - EventID to get the drawing property for
*/
const FStatDrawingProperties& GetDrawingProperties(int EventID);
/** Called before any database entries are given to the visualizer */
virtual void BeginVisiting();
/** Called at the end of database entry traversal, returns success or failure */
virtual UBOOL EndVisiting();
/** Returns the number of data points the visualizer is actively working with */
virtual INT GetVisualizationSetCount() const;
/**
* Retrieve some metadata about an event
* @param EventIndex - some visualizer relative index about the data to get metadata about
* @param MetadataString - return string containing information about the event requested
*/
virtual void GetMetadata(INT EventIndex, FString& MetadataString);
/** Called when a hitproxy belonging to this visualizer is triggered */
virtual void HandleHitProxy(struct HGameStatsHitProxy* HitProxy);
/**
* Basic idea here is to just transfer/copy the stat information out of the database
* and into a form capable of displaying a sprite/arrow/color at a given position
*/
virtual void Visit(class GameStringEntry* Entry);
virtual void Visit(class GameIntEntry* Entry);
virtual void Visit(class GamePositionEntry* Entry);
virtual void Visit(class TeamIntEntry* Entry);
virtual void Visit(class PlayerStringEntry* Entry);
virtual void Visit(class PlayerIntEntry* Entry);
virtual void Visit(class PlayerFloatEntry* Entry);
virtual void Visit(class PlayerLoginEntry* Entry);
virtual void Visit(class PlayerSpawnEntry* Entry);
virtual void Visit(class PlayerKillDeathEntry* Entry);
virtual void Visit(class PlayerPlayerEntry * Entry);
virtual void Visit(class WeaponEntry* Entry);
virtual void Visit(class DamageEntry* Entry);
virtual void Visit(class ProjectileIntEntry* Entry);
}
/** Metadata to help draw the statistics */
var const config array<StatDrawingProperties> DrawingProperties;
/** All data to be drawn by this visualizer */
var array<BasicStatEntry> BasicEntries;
var array<PlayerEntry> PlayerEntries;
var array<PlayerPlayerEntry> PlayerPlayerEntries;
var array<PlayerTargetEntry> PlayerTargetEntries;
defaultproperties
{
FriendlyName="Basic Stats Visualizer"
}

View File

@ -0,0 +1,104 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* This class handles the registration, creation, and destruction of browser
* panes. All of the browser panes are registered in an INI file so that they
* can be late bound into the editor.
*
* @see UBrowserManager.h for the native definitions
*/
class BrowserManager extends Object
native
config(Editor);
/**
* Struct containing the information needed to register a browser window
*/
struct native BrowserPaneInfo
{
/**
* This is the browser pane id used for associating instantiated windows
* with their events, etc.
*/
var int PaneID;
/**
* The name of the wxWindow to create for the browser pane.
* NOTE: This must be a subclass of WxDockableWindow
*/
var String WxWindowClassName;
/**
* This is the friendly name used to find browsers by name instead of
* by id
*/
var String FriendlyName;
/**
* True if the browser pane should be hidden at first-time startup
*/
var const bool bInitiallyHidden;
/**
* Used to indicate that this pane is a clone of a "canonical" pane. This
* is used to allow the removal of a clone, but hiding of a "canonical"
* pane. This prevents the user from permanently deleting a pane from
* their configuration.
*/
var const int CloneOfPaneID;
/**
* Number for this clone so that the description can indicate it (Log-1)
*/
var const int CloneNumber;
/**
* This is a pointer to the window that has been created
*/
var const transient pointer WxBrowserPtr;
};
/**
* Holds the list of browser panes to create/support
*/
var config array<BrowserPaneInfo> BrowserPanes;
/**
* Whether the browser panes have been created or not
*/
var bool bHasCreatedPanes;
/**
* Whether the browser panes have been restored to their state from last frame
*/
var bool bHasStateBeenRestored;
/**
* Whether a browser window is being created/remove, or selection changing, interactively by the user. We use
* this state to prevent the Ctrl+Tab dialog from showing in some cases.
*/
var bool bIsBrowserLayoutChanging;
/**
* The last selected browser pane
*/
var config int LastSelectedPaneID;
/**
* Holds references to browser panes that were created
*/
var const transient pointer CreatedPanesPtr;
/**
* This is the docking container instance
*/
var const transient pointer DockingContainerPtr;
/**
* Holds the list of floating windows not docked in the docking container
*/
var const transient pointer FloatingWindowsArrayPtr;
/**
* Holds the pointer to the frame window's menus that are to be changed as
* browsers are created and removed.
*/
var const transient pointer BrowserMenuPtr;
defaultproperties
{
bIsBrowserLayoutChanging = false;
}

View File

@ -0,0 +1,69 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// BrushBuilder: Base class of UnrealEd brush builders.
//
// Tips for writing brush builders:
//
// * Always validate the user-specified and call BadParameters function
// if anything is wrong, instead of actually building geometry.
// If you build an invalid brush due to bad user parameters, you'll
// cause an extraordinary amount of pain for the poor user.
//
// * When generating polygons with more than 3 vertices, BE SURE all the
// polygon's vertices are coplanar! Out-of-plane polygons will cause
// geometry to be corrupted.
//=============================================================================
class BrushBuilder
extends Object
abstract
hidecategories(Object,BrushBuilder)
native;
var(BrushBuilder) string BitmapFilename;
/** Localized string that will be displayed as the name of this brush builder in the editor */
var(BrushBuilder) string ToolTip;
// Internal state, not accessible to script.
struct BuilderPoly
{
var array<int> VertexIndices;
var int Direction;
var name Item;
var int PolyFlags;
};
var private array<vector> Vertices;
var private array<BuilderPoly> Polys;
var deprecated private name Group;
var private name Layer;
var private bool MergeCoplanars;
// Native support.
native function BeginBrush( bool InMergeCoplanars, name InLayer );
native function bool EndBrush();
native function int GetVertexCount();
native function vector GetVertex( int i );
native function int GetPolyCount();
native function bool BadParameters( optional string msg );
native function int Vertexv( vector v );
native function int Vertex3f( float x, float y, float z );
native function Poly3i( int Direction, int i, int j, int k, optional name ItemName, optional bool bIsTwoSidedNonSolid );
native function Poly4i( int Direction, int i, int j, int k, int l, optional name ItemName, optional bool bIsTwoSidedNonSolid );
native function PolyBegin( int Direction, optional name ItemName );
native function Polyi( int i );
native function PolyEnd();
// Build interface.
event bool Build();
defaultproperties
{
BitmapFilename="BBGeneric"
ToolTip="BrushBuilderName_Generic"
}

View File

@ -0,0 +1,33 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// CascadeConfiguration
//
// Settings for Cascade that users are not allowed to alter.
//=============================================================================
class CascadeConfiguration extends Object
hidecategories(Object)
config(Editor)
native;
/** Module-to-TypeData mapping helper. */
struct native ModuleMenuMapper
{
var string ObjName;
var array<string> InvalidObjNames;
};
/**
* TypeData-to-base module mappings.
* These will disallow complete 'sub-menus' depending on the TypeData utilized.
*/
var(Configure) config array<ModuleMenuMapper> ModuleMenu_TypeDataToBaseModuleRejections;
/** Module-to-TypeData mappings. */
var(Configure) config array<ModuleMenuMapper> ModuleMenu_TypeDataToSpecificModuleRejections;
/** Modules that Cascade should ignore in the menu system. */
var(Configure) config array<string> ModuleMenu_ModuleRejections;
defaultproperties
{
}

View File

@ -0,0 +1,86 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// CascadeOptions
//
// A configuration class that holds information for the setup of Cascade.
// Supplied so that the editor 'remembers' the last setup the user had.
//=============================================================================
class CascadeOptions extends Object
hidecategories(Object)
config(EditorUserSettings)
native;
var(Options) config bool bShowModuleDump;
var(Options) config color BackgroundColor;
var(Options) config bool bUseSubMenus;
var(Options) config bool bUseSpaceBarReset;
var(Options) config bool bUseSpaceBarResetInLevel;
var(Options) config color Empty_Background;
var(Options) config color Emitter_Background;
var(Options) config color Emitter_Unselected;
var(Options) config color Emitter_Selected;
var(Options) config color ModuleColor_General_Unselected;
var(Options) config color ModuleColor_General_Selected;
var(Options) config color ModuleColor_TypeData_Unselected;
var(Options) config color ModuleColor_TypeData_Selected;
var(Options) config color ModuleColor_Beam_Unselected;
var(Options) config color ModuleColor_Beam_Selected;
var(Options) config color ModuleColor_Trail_Unselected;
var(Options) config color ModuleColor_Trail_Selected;
var(Options) config color ModuleColor_Spawn_Unselected;
var(Options) config color ModuleColor_Spawn_Selected;
var(Options) config color ModuleColor_Required_Unselected;
var(Options) config color ModuleColor_Required_Selected;
var(Options) config color ModuleColor_Event_Unselected;
var(Options) config color ModuleColor_Event_Selected;
var(Options) config bool bShowGrid;
var(Options) config color GridColor_Hi;
var(Options) config color GridColor_Low;
var(Options) config float GridPerspectiveSize;
var(Options) config bool bShowParticleCounts;
var(Options) config bool bShowParticleEvents;
var(Options) config bool bShowParticleTimes;
var(Options) config bool bShowParticleDistance;
var(Options) config bool bShowParticleMemory;
var(Options) config float ParticleMemoryUpdateTime;
var(Options) config bool bShowFloor;
var(Options) config string FloorMesh;
var(Options) config vector FloorPosition;
var(Options) config rotator FloorRotation;
var(Options) config float FloorScale;
var(Options) config vector FloorScale3D;
var(Options) config string PostProcessChainName;
var(Options) config int ShowPPFlags;
/** If TRUE, use the 'slimline' module drawing method in cascade. */
var(Options) config bool bUseSlimCascadeDraw;
/** The height to use for the 'slimline' module drawing method in cascade. */
var(Options) config int SlimCascadeDrawHeight;
/** If TRUE, center the module name and buttons in the module box. */
var(Options) config bool bCenterCascadeModuleText;
/** The number of units the mouse must move before considering the module as dragged. */
var(Options) config int Cascade_MouseMoveThreshold;
/**
* TypeData-to-base module mappings.
* These will disallow complete 'sub-menus' depending on the TypeData utilized.
*/
var deprecated config array<ModuleMenuMapper> ModuleMenu_TypeDataToBaseModuleRejections;
/** Module-to-TypeData mappings. */
var deprecated config array<ModuleMenuMapper> ModuleMenu_TypeDataToSpecificModuleRejections;
/** Modules that Cascade should ignore in the menu system. */
var deprecated config array<string> ModuleMenu_ModuleRejections;
/** The radius of the motion mode */
var(Options) config float MotionModeRadius;
defaultproperties
{
}

View File

@ -0,0 +1,22 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
// Used to provide an extended PSysComponent to allow collision to function in the preview window.
class CascadeParticleSystemComponent extends ParticleSystemComponent
native(Cascade)
hidecategories(Object)
hidecategories(Physics)
hidecategories(Collision)
editinlinenew;
var native const pointer CascadePreviewViewportPtr{class FCascadePreviewViewportClient};
cpptext
{
// Collision Handling...
virtual UBOOL SingleLineCheck(FCheckResult& Hit, AActor* SourceActor, const FVector& End, const FVector& Start, DWORD TraceFlags, const FVector& Extent);
protected:
virtual void UpdateLODInformation();
}

View File

@ -0,0 +1,16 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CascadePreviewComponent extends PrimitiveComponent
native
collapsecategories
hidecategories(Object)
editinlinenew;
var native transient const pointer CascadePtr{class WxCascade};
cpptext
{
virtual void Render(const FSceneView* View,FPrimitiveDrawInterface* PDI);
}

View File

@ -0,0 +1,82 @@
//=============================================================================
// ConeBuilder: Builds a 3D cone brush, compatible with cylinder of same size.
// Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
//=============================================================================
class ConeBuilder
extends BrushBuilder;
var() float Z <ClampMin=0.000001>;
var() float CapZ;
var() float OuterRadius <ClampMin=0.000001>;
var() float InnerRadius;
var() int Sides <ClampMin=3>;
var() name GroupName;
var() bool AlignToSide, Hollow;
function BuildCone( int Direction, bool InAlignToSide, int InSides, float InZ, float Radius, name Item )
{
local int n,i,Ofs;
n = GetVertexCount();
if( InAlignToSide )
{
Radius /= cos(pi/InSides);
Ofs = 1;
}
// Vertices.
for( i=0; i<InSides; i++ )
Vertex3f( Radius*sin((2*i+Ofs)*pi/InSides), Radius*cos((2*i+Ofs)*pi/InSides), 0 );
Vertex3f( 0, 0, InZ );
// Polys.
for( i=0; i<InSides; i++ )
Poly3i( Direction, n+i, n+InSides, n+((i+1)%InSides), Item );
}
event bool Build()
{
local int i;
if( Sides<3 )
return BadParameters();
if( Z<=0 || OuterRadius<=0 )
return BadParameters();
if( Hollow && (InnerRadius<=0 || InnerRadius>=OuterRadius) )
return BadParameters();
if( Hollow && CapZ>Z )
return BadParameters();
if( Hollow && (CapZ==Z && InnerRadius==OuterRadius) )
return BadParameters();
BeginBrush( false, GroupName );
BuildCone( +1, AlignToSide, Sides, Z, OuterRadius, 'Top' );
if( Hollow )
{
BuildCone( -1, AlignToSide, Sides, CapZ, InnerRadius, 'Cap' );
if( OuterRadius!=InnerRadius )
for( i=0; i<Sides; i++ )
Poly4i( 1, i, ((i+1)%Sides), Sides+1+((i+1)%Sides), Sides+1+i, 'Bottom' );
}
else
{
PolyBegin( 1, 'Bottom' );
for( i=0; i<Sides; i++ )
Polyi( i );
PolyEnd();
}
return EndBrush();
}
defaultproperties
{
Z=256
CapZ=256
OuterRadius=512
InnerRadius=384
Sides=8
GroupName=Cone
AlignToSide=true
Hollow=false
BitmapFilename="Btn_Cone"
ToolTip="BrushBuilderName_Cone"
}

View File

@ -0,0 +1,16 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class ConvertMapToNavMesh extends Commandlet
native;
cpptext
{
virtual INT Main(const FString& Params);
}
event int Main(string Params);
defaultproperties
{
}

View File

@ -0,0 +1,86 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// CubeBuilder: Builds a 3D cube brush.
//=============================================================================
class CubeBuilder
extends BrushBuilder
native;
var() float X <ClampMin=0.000001>;
var() float Y <ClampMin=0.000001>;
var() float Z <ClampMin=0.000001>;
var() float WallThickness;
var() name GroupName;
var() bool Hollow;
var() bool Tessellated;
function BuildCube( int Direction, float dx, float dy, float dz, bool _tessellated )
{
local int n,i,j,k;
n = GetVertexCount();
for( i=-1; i<2; i+=2 )
for( j=-1; j<2; j+=2 )
for( k=-1; k<2; k+=2 )
Vertex3f( i*dx/2, j*dy/2, k*dz/2 );
// If the user wants a Tessellated cube, create the sides out of tris instead of quads.
if( _tessellated )
{
Poly3i(Direction,n+0,n+1,n+3);
Poly3i(Direction,n+0,n+3,n+2);
Poly3i(Direction,n+2,n+3,n+7);
Poly3i(Direction,n+2,n+7,n+6);
Poly3i(Direction,n+6,n+7,n+5);
Poly3i(Direction,n+6,n+5,n+4);
Poly3i(Direction,n+4,n+5,n+1);
Poly3i(Direction,n+4,n+1,n+0);
Poly3i(Direction,n+3,n+1,n+5);
Poly3i(Direction,n+3,n+5,n+7);
Poly3i(Direction,n+0,n+2,n+6);
Poly3i(Direction,n+0,n+6,n+4);
}
else
{
Poly4i(Direction,n+0,n+1,n+3,n+2);
Poly4i(Direction,n+2,n+3,n+7,n+6);
Poly4i(Direction,n+6,n+7,n+5,n+4);
Poly4i(Direction,n+4,n+5,n+1,n+0);
Poly4i(Direction,n+3,n+1,n+5,n+7);
Poly4i(Direction,n+0,n+2,n+6,n+4);
}
}
event bool Build()
{
if( Z<=0 || Y<=0 || X<=0 )
return BadParameters();
if( Hollow && ((Z/2.0)<=WallThickness || (Y/2.0)<=WallThickness || (X/2.0)<=WallThickness) )
return BadParameters();
if( Hollow && Tessellated )
return BadParameters("The 'Tessellated' option can't be specified with the 'Hollow' option.");
BeginBrush( false, GroupName );
BuildCube( +1, X, Y, Z, Tessellated );
if( Hollow )
BuildCube( -1, X-WallThickness*2.0, Y-WallThickness*2.0, Z-WallThickness*2.0, Tessellated );
return EndBrush();
}
defaultproperties
{
X=256
Y=256
Z=256
WallThickness=16
GroupName=Cube
Hollow=false
Tessellated=false
BitmapFilename="Btn_Box"
ToolTip="BrushBuilderName_Cube"
}

View File

@ -0,0 +1,27 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// CurveEdOptions
//
// A configuration class that holds information for the setup of the CurveEd.
// Supplied so that the editor 'remembers' the last setup the user had.
//=============================================================================
class CurveEdOptions extends Object
hidecategories(Object)
config(EditorUserSettings)
native;
var(Options) config float MinViewRange;
var(Options) config float MaxViewRange;
var(Options) config linearcolor BackgroundColor;
var(Options) config linearcolor LabelColor;
var(Options) config linearcolor SelectedLabelColor;
var(Options) config linearcolor GridColor;
var(Options) config linearcolor GridTextColor;
var(Options) config linearcolor LabelBlockBkgColor;
var(Options) config linearcolor SelectedKeyColor;
defaultproperties
{
}

View File

@ -0,0 +1,72 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CurveEdPresetBase extends Object
abstract
native;
/** Virtual function to get the user-readable name for the curve */
function string GetDisplayName()
{
local string RetVal;
RetVal = "*** ERROR ***";
return RetVal;
}
/** Virtual function to verify the settings are valid */
function bool AreSettingsValid(bool bIsSaving)
{
return true;
}
/** Virtual function to get the required KeyIn times*/
function bool GetRequiredKeyInTimes(out array<float> RequiredKeyInTimes)
{
return false;
}
/** Virtual function to generate curve */
function bool GenerateCurve(out array<float> RequiredKeyInTimes, out array<PresetGeneratedPoint> GeneratedPoints)
{
local bool bRetval;
bRetval = true;
return bRetval;
}
/** Event to allow C++ to call GetDisplayName */
event FetchDisplayName(out string OutName)
{
OutName = GetDisplayName();
}
/** */
event bool CheckAreSettingsValid(bool bIsSaving)
{
return AreSettingsValid(bIsSaving);
}
/** */
event bool FetchRequiredKeyInTimes(out array<float> RequiredKeyInTimes)
{
return GetRequiredKeyInTimes(RequiredKeyInTimes);
}
/** Event to allow C++ to call GenerateCurve */
event bool GenerateCurveData(out array<float> RequiredKeyInTimes, out array<PresetGeneratedPoint> GeneratedPoints)
{
return GenerateCurve(RequiredKeyInTimes, GeneratedPoints);
}
/** */
cpptext
{
}
/** */
defaultproperties
{
}

View File

@ -0,0 +1,127 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CurveEdPreset_CosWave extends CurveEdPresetBase
native
editinlinenew
hidecategories(Object);
/** The frequency of the wave */
var() float Frequency;
/** The scale of the wave */
var() float Scale;
/** The offset of the wave */
var() float Offset;
/** Virtual function to get the user-readable name for the curve */
function string GetDisplayName()
{
local string RetVal;
RetVal = "CosWave";
return RetVal;
}
/** Virtual function to verify the settings are valid */
function bool AreSettingsValid(bool bIsSaving)
{
if ((Frequency <= 0.0) || (Scale == 0.0))
{
return false;
}
return true;
}
/** Virtual function to get the required KeyIn times*/
function bool GetRequiredKeyInTimes(out array<float> RequiredKeyInTimes)
{
local bool bRetval;
local int GenerateCount;
local int PointIndex;
local float StepSize;
local float Freq;
local float SourceValue;
bRetval = true;
GenerateCount = 0;
if (Frequency == 0)
{
Freq = 1;
}
else
{
Freq = Frequency;
}
GenerateCount = (2 * Freq) + 1;
RequiredKeyInTimes.Insert(0, GenerateCount);
StepSize = 1.0f / (GenerateCount - 1);
SourceValue = 0.0f;
for (PointIndex = 0; PointIndex < GenerateCount; PointIndex++)
{
RequiredKeyInTimes[PointIndex] = SourceValue;
SourceValue += StepSize;
}
return bRetval;
}
/** Virtual function to generate curve */
function bool GenerateCurve(out array<float> RequiredKeyInTimes, out array<PresetGeneratedPoint> GeneratedPoints)
{
local bool bRetval;
local int GenerateCount;
local int PointIndex;
local float Freq;
local float SourceValue;
bRetval = true;
if (Frequency == 0)
{
Freq = 1;
}
else
{
Freq = Frequency;
}
GenerateCount = RequiredKeyInTimes.Length;
GeneratedPoints.Insert(0, GenerateCount);
/***
`Log("Generated Data for " $ GetDisplayName());
***/
for (PointIndex = 0; PointIndex < GenerateCount; PointIndex++)
{
SourceValue = RequiredKeyInTimes[PointIndex];
GeneratedPoints[PointIndex].KeyIn = SourceValue;
GeneratedPoints[PointIndex].KeyOut = cos(360.0 * DegToRad * Freq * SourceValue) * Scale + Offset;
GeneratedPoints[PointIndex].TangentsValid = false;
GeneratedPoints[PointIndex].IntepMode = CIM_CurveAuto;
/***
`Log(" Key " $ PointIndex $ " - " $ SourceValue $ " - " $ GeneratedPoints[PointIndex].KeyOut);
***/
}
return bRetval;
}
/** */
cpptext
{
}
/** */
defaultproperties
{
Frequency=1.0
Scale=1.0
Offset=0.0
}

View File

@ -0,0 +1,141 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CurveEdPreset_LinearDecay extends CurveEdPresetBase
native
editinlinenew
hidecategories(Object);
var() float StartDecay;
var() float StartValue;
var() float EndDecay;
var() float EndValue;
/** Virtual function to get the user-readable name for the curve */
function string GetDisplayName()
{
local string RetVal;
RetVal = "LinearDecay";
return RetVal;
}
/** Virtual function to verify the settings are valid */
function bool AreSettingsValid(bool bIsSaving)
{
if (StartDecay >= EndDecay)
{
return false;
}
return true;
}
/** Virtual function to get the required KeyIn times*/
function bool GetRequiredKeyInTimes(out array<float> RequiredKeyInTimes)
{
local bool bRetval;
local int GenerateCount;
local int PointCount;
bRetval = true;
GenerateCount = 2;
if (StartDecay > 0.0)
{
GenerateCount += 1;
}
if (EndDecay < 1.0)
{
GenerateCount += 1;
}
RequiredKeyInTimes.Insert(0, GenerateCount);
RequiredKeyInTimes[PointCount] = 0.0;
PointCount++;
if (StartDecay != 0.0)
{
RequiredKeyInTimes[PointCount] = StartDecay;
PointCount++;
}
RequiredKeyInTimes[PointCount] = EndDecay;
PointCount++;
if (EndDecay < 1.0)
{
RequiredKeyInTimes[PointCount] = 1.0;
PointCount++;
}
return bRetval;
}
/** Virtual function to generate curve */
function bool GenerateCurve(out array<float> RequiredKeyInTimes, out array<PresetGeneratedPoint> GeneratedPoints)
{
local bool bRetval;
local int GenerateCount;
local int PointCount;
local float CurrentKeyIn;
local float Difference;
local float Alpha;
bRetval = true;
GenerateCount = RequiredKeyInTimes.Length;
GeneratedPoints.Insert(0, GenerateCount);
Difference = EndDecay - StartDecay;
/***
`Log("Generated Data for " $ GetDisplayName());
***/
for (PointCount = 0; PointCount < RequiredKeyInTimes.Length; PointCount++)
{
CurrentKeyIn = RequiredKeyInTimes[PointCount];
GeneratedPoints[PointCount].KeyIn = CurrentKeyIn;
GeneratedPoints[PointCount].TangentsValid = false;
GeneratedPoints[PointCount].IntepMode = CIM_CurveAuto;
if (CurrentKeyIn < StartDecay)
{
GeneratedPoints[PointCount].KeyOut = StartValue;
}
else
if (CurrentKeyIn > EndDecay)
{
GeneratedPoints[PointCount].KeyOut = EndValue;
}
else
{
Alpha = (CurrentKeyIn - StartDecay) / Difference;
GeneratedPoints[PointCount].KeyOut = Lerp(StartValue, EndValue, Alpha);
}
/***
`Log(" Key " $ PointCount $ " - " $ CurrentKeyIn $ " - " $ GeneratedPoints[PointCount].KeyOut);
***/
}
return bRetval;
}
/** */
cpptext
{
}
/** */
defaultproperties
{
StartDecay=0.0
StartValue=1.0
EndDecay=1.0
EndValue=0.0
}

View File

@ -0,0 +1,27 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CurveEdPreset_Nothing extends CurveEdPresetBase
native
editinlinenew
hidecategories(Object);
/** Virtual function to get the user-readable name for the curve */
function string GetDisplayName()
{
local string RetVal;
RetVal = "Do not preset";
return RetVal;
}
/** */
cpptext
{
}
/** */
defaultproperties
{
}

View File

@ -0,0 +1,127 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CurveEdPreset_SineWave extends CurveEdPresetBase
native
editinlinenew
hidecategories(Object);
/** The frequency of the wave */
var() float Frequency;
/** The scale of the wave */
var() float Scale;
/** The offset of the wave */
var() float Offset;
/** Virtual function to get the user-readable name for the curve */
function string GetDisplayName()
{
local string RetVal;
RetVal = "SineWave";
return RetVal;
}
/** Virtual function to verify the settings are valid */
function bool AreSettingsValid(bool bIsSaving)
{
if ((Frequency <= 0.0) || (Scale == 0.0))
{
return false;
}
return true;
}
/** Virtual function to get the required KeyIn times*/
function bool GetRequiredKeyInTimes(out array<float> RequiredKeyInTimes)
{
local bool bRetval;
local int GenerateCount;
local int PointIndex;
local float StepSize;
local float Freq;
local float SourceValue;
bRetval = true;
GenerateCount = 0;
if (Frequency == 0)
{
Freq = 1;
}
else
{
Freq = Frequency;
}
GenerateCount = (4 * Freq) + 1;
RequiredKeyInTimes.Insert(0, GenerateCount);
StepSize = 1.0f / (GenerateCount - 1);
SourceValue = 0.0f;
for (PointIndex = 0; PointIndex < GenerateCount; PointIndex++)
{
RequiredKeyInTimes[PointIndex] = SourceValue;
SourceValue += StepSize;
}
return bRetval;
}
/** Virtual function to generate curve */
function bool GenerateCurve(out array<float> RequiredKeyInTimes, out array<PresetGeneratedPoint> GeneratedPoints)
{
local bool bRetval;
local int GenerateCount;
local int PointIndex;
local float Freq;
local float SourceValue;
bRetval = true;
if (Frequency == 0)
{
Freq = 1;
}
else
{
Freq = Frequency;
}
GenerateCount = RequiredKeyInTimes.Length;
GeneratedPoints.Insert(0, GenerateCount);
/***
`Log("Generated Data for " $ GetDisplayName());
***/
for (PointIndex = 0; PointIndex < GenerateCount; PointIndex++)
{
SourceValue = RequiredKeyInTimes[PointIndex];
GeneratedPoints[PointIndex].KeyIn = SourceValue;
GeneratedPoints[PointIndex].KeyOut = sin(360.0 * DegToRad * Freq * SourceValue) * Scale + Offset;
GeneratedPoints[PointIndex].TangentsValid = false;
GeneratedPoints[PointIndex].IntepMode = CIM_CurveAuto;
/***
`Log(" Key " $ PointIndex $ " - " $ SourceValue $ " - " $ GeneratedPoints[PointIndex].KeyOut);
***/
}
return bRetval;
}
/** */
cpptext
{
}
/** */
defaultproperties
{
Frequency=1.0
Scale=1.0
Offset=0.0
}

View File

@ -0,0 +1,145 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CurveEdPreset_UserSet extends CurveEdPresetBase
native
editinlinenew
hidecategories(Object);
var() CurveEdPresetCurve UserCurve;
/** Virtual function to get the user-readable name for the curve */
function string GetDisplayName()
{
local string RetVal;
RetVal = "User-Set";
return RetVal;
}
/** Virtual function to verify the settings are valid */
function bool AreSettingsValid(bool bIsSaving)
{
if (bIsSaving)
{
if (UserCurve == None)
{
return false;
}
}
else
{
if (UserCurve == None)
{
return false;
}
}
return true;
}
/** Virtual function to get the required KeyIn times*/
function bool GetRequiredKeyInTimes(out array<float> RequiredKeyInTimes)
{
local bool bRetval;
local int GenerateCount;
local int PointCount;
bRetval = true;
if (UserCurve != None)
{
GenerateCount = UserCurve.Points.Length;
if (GenerateCount > 0)
{
RequiredKeyInTimes.Insert(0, GenerateCount);
for (PointCount = 0; PointCount < GenerateCount; PointCount++)
{
RequiredKeyInTimes[PointCount] = UserCurve.Points[PointCount].KeyIn;
}
}
else
{
bRetval = false;
}
}
else
{
bRetval = false;
}
return bRetval;
}
/** Virtual function to generate curve */
function bool GenerateCurve(out array<float> RequiredKeyInTimes, out array<PresetGeneratedPoint> GeneratedPoints)
{
local bool bRetval;
local int GenerateCount;
local int PointCount;
local float CurrentKeyIn;
bRetval = true;
GenerateCount = RequiredKeyInTimes.Length;
GeneratedPoints.Insert(0, GenerateCount);
for (PointCount = 0; PointCount < RequiredKeyInTimes.Length; PointCount++)
{
CurrentKeyIn = RequiredKeyInTimes[PointCount];
GeneratedPoints[PointCount].KeyIn = CurrentKeyIn;
GeneratedPoints[PointCount].TangentsValid = false;
GeneratedPoints[PointCount].IntepMode = CIM_CurveAuto;
GeneratedPoints[PointCount].KeyOut = UserCurve.Points[PointCount].KeyOut;
GeneratedPoints[PointCount].TangentIn = UserCurve.Points[PointCount].TangentIn;
GeneratedPoints[PointCount].TangentOut = UserCurve.Points[PointCount].TangentOut;
`Log(" Key " $ PointCount $ " - " $ CurrentKeyIn $ " - " $ GeneratedPoints[PointCount].KeyOut);
}
return bRetval;
}
/** Fill-in from a set curve */
function bool SetCurve(array<PresetGeneratedPoint> GeneratedPoints)
{
local bool bRetval;
bRetval = true;
return bRetval;
}
/** */
function bool LoadUserSetPointFile()
{
local bool bRetval;
bRetval = true;
return bRetval;
}
/** */
function bool SaveUserSetPointFile()
{
local bool bRetval;
bRetval = true;
return bRetval;
}
/** */
cpptext
{
}
/** */
defaultproperties
{
}

View File

@ -0,0 +1,127 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// CurvedStairBuilder: Builds a curved staircase.
//=============================================================================
class CurvedStairBuilder
extends BrushBuilder;
var() int InnerRadius <ClampMin=1>;
var() int StepHeight;
var() int StepWidth <ClampMin=1>;
var() int AngleOfCurve <ClampMin=1 | ClampMax=360>;
var() int NumSteps <ClampMin=1>;
var() int AddToFirstStep;
var() name GroupName;
var() bool CounterClockwise;
function BuildCurvedStair( int Direction )
{
local rotator RotStep;
local vector vtx, NewVtx;
local int x, InnerStart, OuterStart, BottomInnerStart, BottomOuterStart, Adjustment;
RotStep.Yaw = (65536.0f * (AngleOfCurve / 360.0f)) / NumSteps;
if( CounterClockwise )
{
RotStep.Yaw *= -1;
Direction *= -1;
}
// Generate the inner curve points.
InnerStart = GetVertexCount();
vtx.x = InnerRadius;
for( x = 0 ; x < (NumSteps + 1) ; x++ )
{
if( x == 0 )
Adjustment = AddToFirstStep;
else
Adjustment = 0;
NewVtx = vtx >> (RotStep * x);
Vertex3f( NewVtx.x, NewVtx.y, vtx.z - Adjustment );
vtx.z += StepHeight;
Vertex3f( NewVtx.x, NewVtx.y, vtx.z );
}
// Generate the outer curve points.
OuterStart = GetVertexCount();
vtx.x = InnerRadius + StepWidth;
vtx.z = 0;
for( x = 0 ; x < (NumSteps + 1) ; x++ )
{
if( x == 0 )
Adjustment = AddToFirstStep;
else
Adjustment = 0;
NewVtx = vtx >> (RotStep * x);
Vertex3f( NewVtx.x, NewVtx.y, vtx.z - Adjustment );
vtx.z += StepHeight;
Vertex3f( NewVtx.x, NewVtx.y, vtx.z );
}
// Generate the bottom inner curve points.
BottomInnerStart = GetVertexCount();
vtx.x = InnerRadius;
vtx.z = 0;
for( x = 0 ; x < (NumSteps + 1) ; x++ )
{
NewVtx = vtx >> (RotStep * x);
Vertex3f( NewVtx.x, NewVtx.y, vtx.z - AddToFirstStep );
}
// Generate the bottom outer curve points.
BottomOuterStart = GetVertexCount();
vtx.x = InnerRadius + StepWidth;
for( x = 0 ; x < (NumSteps + 1) ; x++ )
{
NewVtx = vtx >> (RotStep * x);
Vertex3f( NewVtx.x, NewVtx.y, vtx.z - AddToFirstStep );
}
for( x = 0 ; x < NumSteps ; x++ )
{
Poly4i( Direction, InnerStart + (x * 2) + 2, InnerStart + (x * 2) + 1, OuterStart + (x * 2) + 1, OuterStart + (x * 2) + 2, 'steptop' );
Poly4i( Direction, InnerStart + (x * 2) + 1, InnerStart + (x * 2), OuterStart + (x * 2), OuterStart + (x * 2) + 1, 'stepfront' );
Poly4i( Direction, BottomInnerStart + x, InnerStart + (x * 2) + 1, InnerStart + (x * 2) + 2, BottomInnerStart + x + 1, 'innercurve' );
Poly4i( Direction, OuterStart + (x * 2) + 1, BottomOuterStart + x, BottomOuterStart + x + 1, OuterStart + (x * 2) + 2, 'outercurve' );
Poly4i( Direction, BottomInnerStart + x, BottomInnerStart + x + 1, BottomOuterStart + x + 1, BottomOuterStart + x, 'Bottom' );
}
// Back panel.
Poly4i( Direction, BottomInnerStart + NumSteps, InnerStart + (NumSteps * 2), OuterStart + (NumSteps * 2), BottomOuterStart + NumSteps, 'back' );
}
event bool Build()
{
if( AngleOfCurve<1 || AngleOfCurve>360 )
return BadParameters("Angle is out of range.");
if( InnerRadius<1 || StepWidth<1 || NumSteps<1 )
return BadParameters();
BeginBrush( false, GroupName );
BuildCurvedStair( +1 );
return EndBrush();
}
defaultproperties
{
InnerRadius=240
StepHeight=16
StepWidth=256
AngleOfCurve=90
NumSteps=4
GroupName="CStair"
CounterClockwise=0
AddToFirstStep=0
BitmapFilename="Btn_CurvedStairs"
ToolTip="BrushBuilderName_CurvedStair"
}

View File

@ -0,0 +1,233 @@
/**
* This class is responsible for tracking custom property item draw and input proxies. It allows specifying a custom
* draw or input proxy for a particular property, or for a particular property type. This class is a singleton; to access
* the values stored in this class, use UCustomPropertyItemBindings::StaticClass()->GetDefaultObject<UCustomPropertyItemBinding>();
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class CustomPropertyItemBindings extends Object
native(Private)
config(Editor);
/**
* This struct is used for specifying custom draw or input proxies for a specific property.
*/
struct native PropertyItemCustomProxy
{
/**
* The complete pathname for the property that this custom proxy should be applied to. When the property window
* encounters a property with this path name, it will use the PropertyItemClassName to represent that property instead
* of the default property item class.
*/
var() config string PropertyPathName;
/**
* The complete path name for the class to use in the property item window for the associated property.
*/
var() config string PropertyItemClassName;
/**
* Only relevant when the property associated with this custom property item proxy is an array property. Indicates that this
* this custom property item proxy should be used when creating the item which corresponds to the array header item, rather than the
* normal array header item.
*/
var() config bool bReplaceArrayHeaders;
/**
* Only relevant when the property associated with this custom property item proxy control is an array property. Indicates that this
* custom property item proxy should not be used for individual array elements.
*/
var() config bool bIgnoreArrayElements;
/**
* The custom property item class specified by PropertyItemClassName. This value is filled in the first time this
* PropertyItemCustomProxy's custom property item class is requested.
*/
var transient class PropertyItemClass;
};
/**
* This struct is used for specifying custom draw or input proxies for a specific property type.
*/
struct native PropertyTypeCustomProxy
{
/**
* The name of the property that this custom proxy applies to (e.g. ObjectProperty, ComponentProperty, etc.).
*/
var() config name PropertyName;
/**
* The complete path name for the object class that this custom proxy should be used for (e.g. Engine.UITexture)
*/
var() config string PropertyObjectClassPathName;
/**
* The complete path name for the class to use in the property item window for the associated property.
*/
var() config string PropertyItemClassName;
/**
* Only relevant when the property associated with this custom property item proxy is an array property. Indicates that this
* this custom property item proxy should be used when creating the item which corresponds to the array header item, rather than the
* normal array header item.
*/
var() config bool bReplaceArrayHeaders;
/**
* Only relevant when the property associated with this custom property item proxy control is an array property. Indicates that this
* custom property item proxy should not be used for individual array elements.
*/
var() config bool bIgnoreArrayElements;
/**
* The custom property item class specified by PropertyItemClassName. This value is filled in the first time this
* PropertyTypeCustomProxy's custom property item class is requested.
*/
var transient class PropertyItemClass;
};
/**
* This struct is used for specifying custom property window item classes for a specific property or unrealscript struct.
*/
struct native PropertyItemCustomClass
{
/**
* The complete pathname for the property/script-struct that this property binding should be applied to. When the property window
* encounters a property that has this path name, it will use the PropertyItemClassName to represent that property instead
* of the default property item class.
*
* If PropertyPathName corresponds to a script struct, the custom property item class will be used for all struct properties for that struct.
*/
var() config string PropertyPathName;
/**
* The name of the WxItemPropertyControl subclass to use in the property item window for the associated property.
*/
var() config string PropertyItemClassName;
/**
* Only relevant when the property associated with this custom property editing control is an array property. Indicates that this
* this custom property item control should be used when creating the item which corresponds to the array header item, rather than the
* normal array header item.
*/
var() config bool bReplaceArrayHeaders;
/**
* Only relevant when the property associated with this custom property editing control is an array property. Indicates that this
* custom property item control should not be used for individual array elements.
*/
var() config bool bIgnoreArrayElements;
/**
* A pointer to the WxItemPropertyControl class corresponding to PropertyItemClassName. This value is filled the first
* time this PropertyItemCustomClass's custom property item class is requested.
*/
var transient native pointer WxPropertyItemClass{class wxClassInfo};
};
/**
* This struct is used for specifying custom property window item classes for a specific property type.
*/
struct native PropertyTypeCustomClass
{
/**
* The name of the property that this custom item class applies to (e.g. ObjectProperty, ComponentProperty, etc.).
*/
var() config name PropertyName;
/**
* The complete path name for the object class that this custom item class should be used for (e.g. Engine.UITexture)
*/
var() config string PropertyObjectClassPathName;
/**
* The name of the WxItemPropertyControl subclass to use in the property item window for the associated property.
*/
var() config string PropertyItemClassName;
/**
* Only relevant when the property associated with this custom property editing control is an array property. Indicates that this
* this custom property item control should be used when creating the item which corresponds to the array header item, rather than the
* normal array header item.
*/
var() config bool bReplaceArrayHeaders;
/**
* Only relevant when the property associated with this custom property editing control is an array property. Indicates that this
* custom property item control should not be used for individual array elements.
*/
var() config bool bIgnoreArrayElements;
/**
* A pointer to the WxItemPropertyControl class corresponding to PropertyItemClassName. This value is filled the first
* time this PropertyTypeCustomClass's custom property item class is requested.
*/
var transient native pointer WxPropertyItemClass{class wxClassInfo};
};
/** custom property item classes, for specific properties */
var() config array<PropertyItemCustomClass> CustomPropertyClasses;
/** custom property item classes, per property type */
var() config array<PropertyTypeCustomClass> CustomPropertyTypeClasses;
/** custom draw proxy classes, for specific properties */
var() config array<PropertyItemCustomProxy> CustomPropertyDrawProxies;
/** custom draw proxy classes, per property type */
var() config array<PropertyItemCustomProxy> CustomPropertyInputProxies;
/** custom input proxy classes, for specific properties */
var() config array<PropertyTypeCustomProxy> CustomPropertyTypeDrawProxies;
/** custom input proxy classes, per property type */
var() config array<PropertyTypeCustomProxy> CustomPropertyTypeInputProxies;
cpptext
{
/**
* Returns the custom draw proxy class that should be used for the property associated with
* the WxPropertyControl specified.
*
* @param ProxyOwnerItem the property window item that will be using this draw proxy
* @param ArrayIndex specifies which element of an array property that this property window will represent. Only valid
* when creating property window items for individual elements of an array.
*
* @return a pointer to a child of UPropertyDrawProxy that should be used as the draw proxy
* for the specified property, or NULL if there is no custom draw proxy configured for
* the property.
*/
class UClass* GetCustomDrawProxy( const class WxPropertyControl* ProxyOwnerItem, INT ArrayIndex=INDEX_NONE );
/**
* Returns the custom input proxy class that should be used for the property associated with
* the WxPropertyControl specified.
*
* @param ProxyOwnerItem the property window item that will be using this input proxy
* @param ArrayIndex specifies which element of an array property that this property window will represent. Only valid
* when creating property window items for individual elements of an array.
*
* @return a pointer to a child of UPropertyInputProxy that should be used as the input proxy
* for the specified property, or NULL if there is no custom input proxy configured for
* the property.
*/
class UClass* GetCustomInputProxy( const class WxPropertyControl* ProxyOwnerItem, INT ArrayIndex=INDEX_NONE );
/**
* Returns an instance of a custom property item class that should be used for the property specified.
*
* @param InProperty the property that will use the custom property item
* @param ArrayIndex specifies which element of an array property that this property window will represent. Only valid
* when creating property window items for individual elements of an array.
* @param ParentItem specified the property window item that will contain this new property window item. Only
* valid when creating property window items for individual array elements or struct member properties
*
* @return a pointer to a child of WxItemPropertyControl that should be used as the property
* item for the specified property, or NULL if there is no custom property item configured
* for the property.
*/
class WxItemPropertyControl* GetCustomPropertyWindow( class UProperty* InProperty, INT ArrayIndex=INDEX_NONE);
}
DefaultProperties
{
}

View File

@ -0,0 +1,84 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// CylinderBuilder: Builds a 3D cylinder brush.
//=============================================================================
class CylinderBuilder
extends BrushBuilder;
var() float Z <ClampMin=0.000001>;
var() float OuterRadius <ClampMin=0.000001>;
var() float InnerRadius;
var() int Sides <ClampMin=3>;
var() name GroupName;
var() bool AlignToSide, Hollow;
function BuildCylinder( int Direction, bool InAlignToSide, int InSides, float InZ, float Radius )
{
local int n,i,j,Ofs;
n = GetVertexCount();
if( InAlignToSide )
{
Radius /= cos(pi/InSides);
Ofs = 1;
}
// Vertices.
for( i=0; i<InSides; i++ )
for( j=-1; j<2; j+=2 )
Vertex3f( Radius*sin((2*i+Ofs)*pi/InSides), Radius*cos((2*i+Ofs)*pi/InSides), j*InZ/2 );
// Polys.
for( i=0; i<InSides; i++ )
Poly4i( Direction, n+i*2, n+i*2+1, n+((i*2+3)%(2*InSides)), n+((i*2+2)%(2*InSides)), 'Wall' );
}
event bool Build()
{
local int i,j;
if( Sides<3 )
return BadParameters();
if( Z<=0 || OuterRadius<=0 )
return BadParameters();
if( Hollow && (InnerRadius<=0 || InnerRadius>=OuterRadius) )
return BadParameters();
BeginBrush( false, GroupName );
BuildCylinder( +1, AlignToSide, Sides, Z, OuterRadius );
if( Hollow )
{
BuildCylinder( -1, AlignToSide, Sides, Z, InnerRadius );
for( j=-1; j<2; j+=2 )
for( i=0; i<Sides; i++ )
Poly4i( j, i*2+(1-j)/2, ((i+1)%Sides)*2+(1-j)/2, ((i+1)%Sides)*2+(1-j)/2+Sides*2, i*2+(1-j)/2+Sides*2, 'Cap' );
}
else
{
for( j=-1; j<2; j+=2 )
{
PolyBegin( j, 'Cap' );
for( i=0; i<Sides; i++ )
Polyi( i*2+(1-j)/2 );
PolyEnd();
}
}
return EndBrush();
}
defaultproperties
{
Z=256
OuterRadius=512
InnerRadius=384
Sides=8
GroupName=Cylinder
AlignToSide=true
Hollow=false
BitmapFilename="Btn_Cylinder"
ToolTip="BrushBuilderName_Cylinder"
}

View File

@ -0,0 +1,13 @@
/**
* MaterialEditorInstanceConstant.uc: This is derived class for material instance editor parameter represenation.
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class DEditorFontParameterValue extends DEditorParameterValue
native
hidecategories(Object)
dependson(UnrealEdTypes)
collapsecategories;
var() Font FontValue;
var() int FontPage;

View File

@ -0,0 +1,14 @@
/**
* MaterialEditorInstanceConstant.uc: This base class for material instance editor parameter represenation .
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class DEditorParameterValue extends Object
native
hidecategories(Object)
dependson(UnrealEdTypes)
collapsecategories
editinlinenew;
var() bool bOverride;
var() name ParameterName;
var Guid ExpressionId;

View File

@ -0,0 +1,17 @@
/**
* MaterialEditorInstanceConstant.uc: This is derived class for material instance editor parameter represenation.
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class DEditorScalarParameterValue extends DEditorParameterValue
native
hidecategories(Object)
dependson(UnrealEdTypes)
collapsecategories
editinlinenew;
var() float ParameterValue;
cpptext
{
}

View File

@ -0,0 +1,46 @@
/**
* MaterialEditorInstanceConstant.uc: This is derived class for material instance editor parameter represenation.
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class DEditorStaticComponentMaskParameterValue extends DEditorParameterValue
native
hidecategories(Object)
dependson(UnrealEdTypes)
collapsecategories;
struct native DComponentMaskParameter
{
structcpptext
{
public:
/** Constructor */
FDComponentMaskParameter(UBOOL InR, UBOOL InG, UBOOL InB, UBOOL InA) :
R(InR),
G(InG),
B(InB),
A(InA)
{
};
FDComponentMaskParameter(){};
}
var() bool R;
var() bool G;
var() bool B;
var() bool A;
};
var() DComponentMaskParameter ParameterValue;
cpptext
{
/** Constructor */
UDEditorStaticComponentMaskParameterValue(const FStaticComponentMaskParameter& InParameter) : ParameterValue(InParameter.R, InParameter.G, InParameter.B, InParameter.A)
{
//initialize base class members
bOverride = InParameter.bOverride;
ParameterName = InParameter.ParameterName;
ExpressionId = InParameter.ExpressionGUID;
}
NO_DEFAULT_CONSTRUCTOR(UDEditorStaticComponentMaskParameterValue)
}

View File

@ -0,0 +1,23 @@
/**
* MaterialEditorInstanceConstant.uc: This is derived class for material instance editor parameter represenation.
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class DEditorStaticSwitchParameterValue extends DEditorParameterValue
native
hidecategories(Object)
dependson(UnrealEdTypes)
collapsecategories;
var() bool ParameterValue;
cpptext
{
/** Constructor */
UDEditorStaticSwitchParameterValue(const FStaticSwitchParameter& InParameter) : ParameterValue(InParameter.Value)
{
//initialize base class members
bOverride = InParameter.bOverride;
ParameterName = InParameter.ParameterName;
ExpressionId = InParameter.ExpressionGUID;
}
NO_DEFAULT_CONSTRUCTOR(UDEditorStaticSwitchParameterValue)
}

View File

@ -0,0 +1,11 @@
/**
* MaterialEditorInstanceConstant.uc: This is derived class for material instance editor parameter represenation.
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class DEditorTextureParameterValue extends DEditorParameterValue
native
hidecategories(Object)
dependson(UnrealEdTypes)
collapsecategories;
var() Texture ParameterValue;

View File

@ -0,0 +1,12 @@
/**
* MaterialEditorInstanceConstant.uc: This is derived class for material instance editor parameter represenation.
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class DEditorVectorParameterValue extends DEditorParameterValue
native
hidecategories(Object)
dependson(UnrealEdTypes)
collapsecategories
editinlinenew;
var() LinearColor ParameterValue;

View File

@ -0,0 +1,34 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* This thumbnail renderer holds some commonly shared properties
*/
class DefaultSizedThumbnailRenderer extends ThumbnailRenderer
native
abstract
config(Editor);
/**
* The default width of this thumbnail
*/
var config int DefaultSizeX;
/**
* The default height of this thumbnail
*/
var config int DefaultSizeY;
cpptext
{
/**
* Calculates the size the thumbnail would be at the specified zoom level.
*
* @param Object the object the thumbnail is of
* @param PrimType ignored
* @param Zoom the current multiplier of size
* @param OutWidth the var that gets the width of the thumbnail
* @param OutHeight the var that gets the height
*/
virtual void GetThumbnailSize(UObject* Object,EThumbnailPrimType,
FLOAT Zoom,DWORD& OutWidth,DWORD& OutHeight);
}

View File

@ -0,0 +1,14 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class EdModeComponent extends EditorComponent
native
noexport;
/** These mirror the C++ side properties. I'm making a class here so
ModelComponent will get the defaultprops from the PrimitiveComponent base class */
// no properties

View File

@ -0,0 +1,49 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class EditorComponent extends PrimitiveComponent
native
noexport;
/** These mirror the C++ side properties. I'm making a class here so
ModelComponent will get the defaultprops from the PrimitiveComponent base class */
var const bool bDrawGrid;
var const bool bDrawPivot;
var const bool bDrawBaseInfo;
var const bool bDrawWorldBox;
var const bool bDrawColoredOrigin;
var const bool bDrawKillZ;
var const color GridColorHi;
var const color GridColorLo;
var const float PerspectiveGridSize;
var const color PivotColor;
var const float PivotSize;
var const color BaseBoxColor;
defaultproperties
{
DepthPriorityGroup=SDPG_UnrealEdBackground
bDrawGrid=true
bDrawPivot=true
bDrawBaseInfo=true
GridColorHi=(R=0,G=0,B=127)
GridColorLo=(R=0,G=0,B=63)
PerspectiveGridSize=262143.0 //HALF_WORLD_MAX1
bDrawWorldBox=true
bDrawColoredOrigin=false
bDrawKillZ=true
PivotColor=(R=255,G=0,B=0)
PivotSize=0.02
BaseBoxColor=(R=0,G=255,B=0)
}

View File

@ -0,0 +1,284 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// EditorEngine: The UnrealEd subsystem.
// This is a built-in Unreal class and it shouldn't be modified.
//=============================================================================
class EditorEngine extends Engine
native
config(Engine)
noexport
transient
implements(Interface_PylonGeometryProvider)
inherits(FCallbackEventDevice);
// Objects.
var const model TempModel;
var const model ConversionTempModel;
var const transbuffer Trans;
var const textbuffer Results;
var const array<pointer> ActorProperties;
var const pointer LevelProperties;
// Textures.
var const texture2D Bad, Bkgnd, BkgndHi, BadHighlight, MaterialArrow, MaterialBackdrop;
// Font used by Canvas-based editors
var const Font EditorFont;
// Audio
var const transient SoundCue PreviewSoundCue;
var const transient AudioComponent PreviewAudioComponent;
// Used in UnrealEd for showing materials
var staticmesh TexPropCube;
var staticmesh TexPropSphere;
var staticmesh TexPropPlane;
var staticmesh TexPropCylinder;
// Toggles.
var const bool bFastRebuild, bBootstrapping, bIsImportingT3D;
// Other variables.
var const int TerrainEditBrush, ClickFlags;
var const package ParentContext;
var const vector ClickLocation;
var const plane ClickPlane;
var const vector MouseMovement;
var const native array<pointer> ViewportClients;
/** Distance to far clipping plane for perspective viewports. If <= GNearClippingPlane, far plane is at infinity. */
var config float FarClippingPlane;
// Setting for the detail mode to show in the editor viewports
var EDetailMode DetailMode;
// BEGIN FEditorConstraints
var noexport const pointer ConstraintsVtbl;
// Grid.
var(Grid) noexport config bool GridEnabled;
var(Grid) noexport config bool SnapScaleEnabled;
var(Grid) noexport config bool SnapVertices;
var(Grid) noexport config int ScaleGridSize; // Integer percentage amount to snap scaling to.
var(Grid) noexport config float SnapDistance;
var(Grid) noexport config float GridSizes[11]; // FEditorConstraints::MAX_GRID_SIZES = 11 in native code
var(Grid) noexport config int CurrentGridSz; // Index into GridSizes
// Rotation grid.
var(RotationGrid) noexport config bool RotGridEnabled;
var(RotationGrid) noexport config rotator RotGridSize;
var(RotationGrid) noexport config int AngleSnapType;
// END FEditorConstraints
// Advanced.
var(Advanced) config bool UseSizingBox;
var(Advanced) config bool UseAxisIndicator;
var(Advanced) config float FOVAngle;
var(Advanced) config bool GodMode;
/** The location to autosave to. */
var(Advanced) config string AutoSaveDir;
var(Advanced) config bool InvertwidgetZAxis;
var(Advanced) config string GameCommandLine;
/** the list of package names to compile when building scripts */
var(Advanced) globalconfig array<string> EditPackages;
/** the base directory to use for finding .uc files to compile*/
var(Advanced) config string EditPackagesInPath;
/** the directory to save compiled .u files to */
var(Advanced) config string EditPackagesOutPath;
/** the directory to save compiled .u files to when script is compiled with the -FINAL_RELEASE switch */
var(Advanced) config string FRScriptOutputPath;
/** If TRUE, always show the terrain in the overhead 2D view. */
var(Advanced) config bool AlwaysShowTerrain;
/** If TRUE, use the gizmo for rotating actors. */
var(Advanced) config bool UseActorRotationGizmo;
/** If TRUE, show translucent marker polygons on the builder brush and volumes. */
var(Advanced) config bool bShowBrushMarkerPolys;
/** If TRUE, use Maya camera controls. */
var(Advanced) config bool bUseMayaCameraControls;
/** If TRUE, parts of prefabs cannot be individually selected/edited. */
var(Advanced) config bool bPrefabsLocked;
/** If TRUE, socket snapping is enabled in the main level viewports. */
var(Advanced) config bool bEnableSocketSnapping;
/** If TRUE, socket names are enabled in the main level viewports. */
var(Advanced) config bool bEnableSocketNames;
/** If TRUE, determines if reachspecs should be built for this level's pathnodes (may not be necessary if using navmesh) */
var(Advanced) config bool bBuildReachSpecs;
/** If TRUE, same type views will be camera tied, and ortho views will use perspective view for LOD parenting */
var bool bEnableLODLocking;
/** If TRUE, actors can be grouped and grouping rules will be maintained. When deactivated, any currently existing groups will still be preserved.*/
var(Advanced) config bool bGroupingActive;
var config string HeightMapExportClassName;
/** array of actor factory classes to ignore for the global list (i.e. because they're not relevant to this game) */
var config array<name> HiddenActorFactoryNames;
/** Array of actor factories created at editor startup and used by context menu etc. */
var const array<ActorFactory> ActorFactories;
/** Actors that are being deleted and should processed in the global re-attach*/
var array <Actor> ActorsForGlobalReattach;
/** String that maps one class name to another, used to create hook for game-specific actors created through shortcuts etc
* Pairing is "ORIGINALCLASS;DESIREDCLASS
* (ie APylon;AMyGamePylon)
*/
var config array<String> ClassMapPair;
/** The name of the file currently being opened in the editor. "" if no file is being opened. */
var string UserOpenedFile;
///////////////////////////////
// "Play From Here" properties
/** Additional per-user/per-game options set in the .ini file. Should be in the form "?option1=X?option2?option3=Y" */
var(Advanced) config string InEditorGameURLOptions;
/** A pointer to a UWorld that is the duplicated/saved-loaded to be played in with "Play From Here" */
var const World PlayWorld;
/** An optional location for the starting location for "Play From Here" */
var const vector PlayWorldLocation;
/** An optional rotation for the starting location for "Play From Here" */
var const rotator PlayWorldRotation;
/** Has a request for "Play From Here" been made? */
var const bool bIsPlayWorldQueued;
/** Has a request to spectate the map been made? */
var const bool bStartInSpectatorMode;
/** Did the request include the optional location and rotation? */
var const bool bHasPlayWorldPlacement;
/** True to enable mobile preview mode when launching the game from the editor on PC platform */
var const bool bUseMobilePreviewForPlayWorld;
/** Where did the person want to play? Where to play the game - -1 means in editor, 0 or more is an index into the GConsoleSupportContainer */
var const int PlayWorldDestination;
/** The current play world destination (I.E console). -1 means no current play world destination, 0 or more is an index into the GConsoleSupportContainer */
var const int CurrentPlayWorldDestination;
/** Mobile/PC preview settings for what features/resolution to use */
var config int PlayInEditorWidth;
/** Mobile/PC preview settings for what features/resolution to use */
var config int PlayInEditorHeight;
/** Mobile preview settings for what orientation to default to */
var config bool bMobilePreviewPortrait;
/** Currently targeted device for mobile previewer. */
var config int BuildPlayDevice;
/** Folders in which the editor looks for template map files */
var(Templates) config array<string> TemplateMapFolders;
/** When set to anything other than -1, indicates a specific In-Editor viewport index that PIE should use */
var const int PlayInEditorViewportIndex;
/** Play world url string edited by a user. */
var string UserEditedPlayWorldURL;
/** The width resolution that we want to use for the matinee capture */
var config int MatineeCaptureResolutionX;
/** The height resolution that we want to use for the matinee capture */
var config int MatineeCaptureResolutionY;
/** Contains a list of breakpoints that were hit while PlayWorld was active */
var transient array<string> KismetDebuggerBreakpointQueue;
/** If true, will cause a Kismet debugger window to be opened after the editor world has been restored */
var transient bool bIsKismetDebuggerRequested;
// possible object propagators
var const pointer InEditorPropagator;
var const pointer RemotePropagator;
var bool bIsPushingView;
var const transient bool bDecalUpdateRequested;
/** Temporary render target that can be used by the editor. */
var const transient TextureRenderTarget2D ScratchRenderTarget2048;
var const transient TextureRenderTarget2D ScratchRenderTarget1024;
var const transient TextureRenderTarget2D ScratchRenderTarget512;
var const transient TextureRenderTarget2D ScratchRenderTarget256;
/**
* Display StreamingBounds for textures
*/
var const transient Texture2D StreamingBoundsTexture;
/** Global instance of the editor user settings */
var const EditorUserSettings UserSettings;
/** Stores the class hierarchy generated from the make commandlet*/
var native const pointer EditorClassHierarchy {FEditorClassHierarchy};
/** The full paths to meshes used to preview a static mesh in editor. */
var array<string> PreviewMeshNames;
/** A mesh component used to preview in editor without spawning a static mesh actor. */
var const transient StaticMeshComponent PreviewMeshComp;
/** The index of the mesh to use from the list of preview meshes. */
var const int PreviewMeshIndex;
/** When TRUE, the preview mesh mode is activated. */
var const bool bPreviewPlayerHeight;
/** If "Camera Align" emitter handling uses a custom zoom or not */
var config bool bCustomCameraAlignEmitter;
/** The distance to place the camera from an emitter actor when custom zooming is enabled */
var config float CustomCameraAlignEmitterDistance;
/** If true, then draw sockets when socket snapping is enabled in 'g' mode */
var config bool bDrawSocketsInGMode;
/** If true, then draw particle debug helpers in editor viewports */
var transient bool bDrawParticleHelpers;
var array<GroupActor> ActiveGroupActors;
/** Actor list for the intermediary buffer level used for moving actors between levels */
var transient array<Actor> BufferLevelActors;
/** Force PIE to start in exact place suppressing kismet. It forces all levels to be streamed in, skips all level begin events and sets all matinees to skipable.*/
var bool bForcePlayFromHere;
/** Keeps track of the last actor that had the camera aligned to it in Exec_Camera() */
var transient Actor LastCameraAlignTarget;
/** If true, then do slow reference checks during map check */
var transient bool bDoReferenceChecks;
/**
* A mapping of all startup packages to whether or not we have warned the user about editing them
*/
var native transient map{UPackage*, UBOOL} StartupPackageToWarnState;
defaultproperties
{
Bad=Texture2D'EditorResources.Bad'
Bkgnd=Texture2D'EditorResources.Bkgnd'
BkgndHi=Texture2D'EditorResources.BkgndHi'
MaterialArrow=Texture2D'EditorResources.MaterialArrow'
MaterialBackdrop=Texture2D'EditorResources.MaterialBackdrop'
BadHighlight=Texture2D'EditorResources.BadHighlight'
TexPropCube=StaticMesh'EditorMeshes.TexPropCube'
TexPropSphere=StaticMesh'EditorMeshes.TexPropSphere'
TexPropPlane=StaticMesh'EditorMeshes.TexPropPlane'
TexPropCylinder=StaticMesh'EditorMeshes.TexPropCylinder'
EditorFont=Font'EditorResources.SmallFont'
DetailMode=3
PlayInEditorViewportIndex= -1;
CurrentPlayWorldDestination = -1;
}

View File

@ -0,0 +1,105 @@
/**
* This class handles hotkey binding management for the editor.
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class EditorUserSettings extends Object
hidecategories(Object)
config(EditorUserSettings)
native;
enum WASDType
{
WASD_Always,
WASD_RMBOnly,
WASD_Never,
};
/** Whether to automatically save after a time interval */
var(Options) config bool bAutoSaveEnable;
/** Whether to automatically save maps during an autosave */
var(Options) config bool bAutoSaveMaps;
/** Whether to automatically save content packages during an autosave */
var(Options) config bool bAutoSaveContent;
/** The time interval after which to auto save */
var(Options) config int AutoSaveTimeMinutes;
/** Enable the use of flight camera controls under various circumstances */
var(Options) config WASDType FlightCameraControlType;
/** The background color for material preview thumbnails in Generic Browser */
var(Options) config Color PreviewThumbnailBackgroundColor;
/** The background color for translucent material preview thumbnails in Generic Browser */
var(Options) config Color PreviewThumbnailTranslucentMaterialBackgroundColor;
/** Controls whether packages which are checked-out are automatically fully loaded at startup */
var(Options) config bool bAutoloadCheckedOutPackages;
/** If this is true, the user will not be asked to fully load a package before saving or before creating a new object */
var(Options) config bool bSuppressFullyLoadPrompt;
/** True if user should be allowed to select translucent objects in perspective viewports */
var(Options) config bool bAllowSelectTranslucent;
/** True if Play In Editor should only load currently-visible levels in PIE */
var(Options) config bool bOnlyLoadVisibleLevelsInPIE;
/** True if ortho-viewport box selection requires objects to be fully encompassed by the selection box to be selected */
var(Options) config bool bStrictBoxSelection;
/** Whether to automatically prompt for SCC checkout on package modification */
var(Options) config bool bPromptForCheckoutOnPackageModification;
/** If true audio will be enabled in the editor. Does not affect PIE **/
var(Options) config bool bEnableRealTimeAudio;
/** Global volume setting for the editor */
var(Options) config float EditorVolumeLevel;
/** True if we should move actors to their appropriate grid volume levels immediately after most operations */
var(Options) config bool bUpdateActorsInGridLevelsImmediately;
/** True if we should automatically restart playback Flash Movies that are reimported in the editor */
var(Options) config bool bAutoRestartReimportedFlashMovies;
/** True if we should automatically reimport textures when a change to source content is detected*/
var(Options) config bool bAutoReimportTextures;
/** True if we should automatically reimport apex assets when a change to source content is detected*/
var(Options) config bool bAutoReimportApexAssets;
/** True if we should automatically reimport animset assets when a change to source content is detected*/
var(Options) config bool bAutoReimportAnimSets;
/** If checked all orthographic viewports are linked to the same position and move together */
var(Options) config bool bUseLinkedOrthographicViewports;
/** If checked all show flags are more easily available in a menu straight off the viewport toolbar. */
var(Options) config bool bEnableShowFlagsShortcut;
/** If true perspective viewports will default to realtime mode. */
var(Options) config bool bStartInRealtimeMode;
/** How to constrain perspective viewport FOV */
var(Options) config EAspectRatioAxisConstraint AspectRatioAxisConstraint;
/** Whether to load a simple example map at startup */
var(Options) config bool bLoadSimpleLevelAtStartup;
/** Enables real-time hover feedback when mousing over objects in editor viewports */
var(Options) config bool bEnableViewportHoverFeedback;
/** Enables the editor perspective camera to be dropped at the last PlayInViewport cam position */
var(Options) config bool bEnableViewportCameraToUpdateFromPIV;
/** Toggles emulation of mobile input and rendering on PC (enables touch-based input, disables gamma correction, certain post-processes, directional light maps, etc.) */
var(Options) config bool bEmulateMobileFeatures;
/** When enabled, forces all content to be optimized for mobile platforms when possible (e.g. compress PVRTCs, flatten textures, etc) */
var(Options) config bool bAlwaysOptimizeContentForMobile;
/** List of packages to autosave if bAutoSaveContent is true, if none specified will saved all */
var(Options) config array<string> PackagesToSave;

View File

@ -0,0 +1,17 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class EditorViewportInput extends Input
transient
config(Input)
native;
var EditorEngine Editor;
cpptext
{
virtual UBOOL Exec(const TCHAR* Cmd,FOutputDevice& Ar);
}

View File

@ -0,0 +1,13 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class FaceFXStudioSkelComponent extends SkeletalMeshComponent
native;
var transient native const pointer RenderWidgetUE3Ptr;
cpptext
{
// UPrimitiveComponent interface.
virtual FPrimitiveSceneProxy* CreateSceneProxy();
}

View File

@ -0,0 +1,89 @@
/**
* Copyright 2010 Autodesk, Inc. All Rights Reserved.
*
* Fbx Importer UI options.
*/
class FbxImportUI extends Object
native
config(EditorUserSettings)
AutoExpandCategories( General, SkeletalMesh, StaticMesh, Materials)
DontSortCategories( General, SkeletalMesh, StaticMesh, Materials)
HideCategories(Object);
/** Import mesh type */
enum EFBXImportType
{
/** Static mesh */
FBXIT_StaticMesh<DisplayName=Static Mesh>,
/** Skeletal mesh */
FBXIT_SkeletalMesh<DisplayName=Skeletal Mesh>,
};
/** Type of asset to import from the FBX file */
var(General) EFBXImportType MeshTypeToImport<DisplayName=Import Type>;
/** Use the string in "Name" field as full name of mesh. The option only works when the scene contains one mesh. */
var(General) config bool bOverrideFullName;
/** Enables importing of mesh LODs from FBX LOD groups, if present in the FBX file */
var(General) config bool bImportMeshLODs;
/** Enabling this option will read the tangents(tangent,binormal,normal) from FBX file instead of generating them automatically. */
var(General) config bool bOverrideTangents<DisplayName=Import Tangents>;
/** True to import morph target meshes from the FBX file */
var(SkeletalMesh) config bool bImportMorphTargets;
/** True to import animations from the FBX File */
var(SkeletalMesh) config bool bImportAnimations;
/** Enables importing of 'rigid animation' (unskinned, hierarchy-based animation) from this FBX file */
var(SkeletalMesh) config bool bImportRigidAnimation<EditCondition=bImportAnimations>;
/** Enable this option to resample imported animation at 30 frames per second */
var(SkeletalMesh) config bool bResampleAnimations<EditCondition=bImportAnimations>;
/** Enable this option to use frame 0 as reference pose */
var(SkeletalMesh,Advanced) config bool bUseT0AsRefPose;
/** If checked, smoothing groups will be preserved */
var(SkeletalMesh,Advanced) config bool bSplitNonMatchingTriangles<DisplayName=Preserve Smoothing Groups>;
/** If checked, meshes nested in bone hierarchies will be imported instead of being converted to bones. */
var(SkeletalMesh,Advanced) bool bImportMeshesInBoneHierarchy;
/** For static meshes, enabling this option will combine all meshes in the FBX into a single monolithic mesh in Unreal */
var(StaticMesh) config bool bCombineMeshes;
/** If true, will replace the vertex colors on an existing mesh with the vertex colors from the FBX file */
var(StaticMesh) config bool bReplaceVertexColors;
/** For static meshes, enabling this option will read normals from the FBX file instead of calculating them. */
var(StaticMesh,Advanced) config bool bExplicitNormals;
/** Disabling this option will keep degenerate triangles found. In general you should leave this option on. */
var(StaticMesh,Advanced) bool bRemoveDegenerates;
/** If checked, one convex hull per UCX_ prefixed collison mesh will be generated instead of decomposing into multiple hulls */
var(StaticMesh,Advanced) config bool bOneConvexHullPerUCX;
/** Whether to automatically create Unreal materials for materials found in the FBX scene */
var(Materials) config bool bImportMaterials;
/** The option works only when option "Import Material" is OFF. If "Import Material" is ON, textures are always imported. */
var(Materials) config bool bImportTextures;
/** If either importing of textures (or materials) is enabled, this option will cause normal map values to be inverted */
var(Materials) config bool bInvertNormalMaps;
/** If enabled, materials and textures will be imported into sub-groups named "Materials" or "Textures" */
var(Materials) config bool bAutoCreateGroups<DisplayName=Create Groups Automatically>;
defaultproperties
{
bRemoveDegenerates=True;
bImportMeshesInBoneHierarchy=False;
}

View File

@ -0,0 +1,40 @@
/**
* This commandlet generates a list of functions which aren't referenced by any code in the game. This commandlet does not call the
* event "Main".
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class FindUnreferencedFunctionsCommandlet extends Commandlet
native;
/** Worker class which processes compiled bytecode. */
var transient const ByteCodeSerializer Serializer;
cpptext
{
/**
* Find the original function declaration from an interface class implemented by FunctionOwnerClass.
*
* @param FunctionOwnerClass the class containing the function being looked up.
* @param Function the function being looked up
*
* @return if Function is an implementation of a function declared in an interface class implemented by FunctionOwnerClass,
* returns a pointer to the function from the interface class; NULL if Function isn't an implementation of an interface
* function
*/
UFunction* GetInterfaceFunctionDeclaration( UClass* FunctionOwnerClass, UFunction* Function );
/**
* Commandlet entry point
*
* @param Params the command line parameters that were passed in.
*
* @return 0 if the commandlet succeeded; otherwise, an error code defined by the commandlet.
*/
virtual INT Main(const FString& Params);
}
DefaultProperties
{
}

View File

@ -0,0 +1,20 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* This is a simple thumbnail label renderer for fonts that
* lists info about the font that was imported
*/
class FontThumbnailLabelRenderer extends ThumbnailLabelRenderer
native;
cpptext
{
protected:
/**
* Adds the name of the object and font import info
*
* @param Object the object to build the labels for
* @param OutLabels the array that is added to
*/
void BuildLabelList(UObject* Object, const ThumbnailOptions& InOptions, TArray<FString>& OutLabels);
}

View File

@ -0,0 +1,43 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* This thumbnail renderer displays the texture for the object in question
*/
class FontThumbnailRenderer extends TextureThumbnailRenderer
native;
cpptext
{
/**
* Calculates the size the thumbnail would be at the specified zoom level
*
* @param Object the object the thumbnail is of
* @param PrimType ignored
* @param Zoom the current multiplier of size
* @param OutWidth the var that gets the width of the thumbnail
* @param OutHeight the var that gets the height
*/
virtual void GetThumbnailSize(UObject* Object,EThumbnailPrimType,
FLOAT Zoom,DWORD& OutWidth,DWORD& OutHeight);
/**
* Draws a thumbnail for the object that was specified
*
* @param Object the object to draw the thumbnail for
* @param PrimType ignored
* @param X the X coordinate to start drawing at
* @param Y the Y coordinate to start drawing at
* @param Width the width of the thumbnail to draw
* @param Height the height of the thumbnail to draw
* @param Viewport ignored
* @param Canvas the render interface to draw with
* @param BackgroundType type of background for the thumbnail
* @param PreviewBackgroundColor background color for material previews
* @param PreviewBackgroundColorTranslucent background color for translucent material previews
*/
virtual void Draw(UObject* Object,EThumbnailPrimType,INT X,INT Y,
DWORD Width,DWORD Height,FRenderTarget*,FCanvas* Canvas,
EThumbnailBackgroundType BackgroundType,
FColor PreviewBackgroundColor,
FColor PreviewBackgroundColorTranslucent);
}

View File

@ -0,0 +1,19 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* This is the fractured static mesh label renderer
*/
class FracturedStaticMeshLabelRenderer extends StaticMeshLabelRenderer
native;
cpptext
{
protected:
/**
* Adds the name of the object and information about the mesh
*
* @param Object the object to build the labels for
* @param OutLabels the array that is added to
*/
void BuildLabelList(UObject* Object, const ThumbnailOptions& InOptions, TArray<FString>& OutLabels);
}

View File

@ -0,0 +1,411 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Streams gameplay events recorded during a session to disk
*/
class GameStatsDatabase extends Object
native(GameStats)
config(Editor);
`if(`__TW_ )
/** Date Filters */
enum GameStatsDateFilters
{
GSDF_Today,
GSDF_Last3Days,
GSDF_LastWeek,
GSDF_LastYear
};
`else
/** Date Filters */
enum GameStatsDateFilters
{
GSDF_Today,
GSDF_Last3Days,
GSDF_LastWeek
};
`endif //__TW_
/** Cached mapping of all files found on editor load to the maps they represent */
var const private native transient MultiMap_Mirror MapNameToFilenameMapping{TMultiMap<FString, FString>};
/** All events in the database */
var const private native transient array<pointer> AllEvents{FIGameStatEntry};
/** Mapping of all session query indices by session ID */
var const private native transient Map_Mirror AllSessions{TMap<FString, struct FGameSessionEntry>};
/** Mapping of session id to local filename */
var const private native transient Map_Mirror SessionFilenamesBySessionID{TMap<FString, FString>};
/** Mapping of session metadata by session id */
var const private native transient Map_Mirror SessionInfoBySessionID{TMap<FString, struct FGameSessionInformation>};
/** Mapping of recorded player metadata by session id */
var const private native transient Map_Mirror PlayerListBySessionID{TMap<FString, TArray<struct FPlayerInformation> >};
/** Mapping of recorded team metadata by session id */
var const private native transient Map_Mirror TeamListBySessionID{TMap<FString, TArray<struct FTeamInformation> >};
/** Mapping of recorded event metadata by session id */
var const private native transient Map_Mirror SupportedEventsBySessionID{TMap<FString, TArray<struct FGameplayEventMetaData> >};
/** Mapping of recorded weapon class metadata by session id */
var const private native transient Map_Mirror WeaponClassesBySessionID{TMap<FString, TArray<struct FWeaponClassEventData> >};
/** Mapping of recorded damage class metadata by session id */
var const private native transient Map_Mirror DamageClassesBySessionID{TMap<FString, TArray<struct FDamageClassEventData> >};
/** Mapping of recorded projectile class metadata by session id */
var const private native transient Map_Mirror ProjectileClassesBySessionID{TMap<FString, TArray<struct FProjectileClassEventData> >};
/** Mapping of recorded pawn class metadata by session id */
var const private native transient Map_Mirror PawnClassesBySessionID{TMap<FString, TArray<struct FPawnClassEventData> >};
/** Unique gametypes found in the database */
var const transient array<string> AllGameTypes;
/** REMOTE IMPLEMENTATION **/
/** Pointer to the remote database interface */
var const private native transient pointer RemoteDB{struct FGameStatsRemoteDB};
/** Name of the class responsible for parsing stats file on disk */
var config string GameStatsFileReaderClassname;
/** Name of the class responsible for game state while parsing the stats file */
var config string GameStateClassname;
/** Representation of some session/value pair for database queries */
struct native SessionIndexPair
{
/** The session this index is relevant for */
var init string SessionId;
/** The index we're searching for */
var int Index;
structcpptext
{
FSessionIndexPair(EEventParm)
{
appMemzero(this, sizeof(FSessionIndexPair));
}
FSessionIndexPair(const FString& InSessionId, const INT InIndex)
: SessionId(InSessionId), Index(InIndex) {}
}
};
/** The struct containing the current notion of a game stats database query */
struct native GameStatsSearchQuery
{
/** Min time in query */
var int StartTime;
/** Max time in query */
var int EndTime;
/** Array of relevant session IDs */
var array<string> SessionIDs;
/** Array of relevant event IDs */
var array<int> EventIDs;
/** Array of relevant team indices */
var array<SessionIndexPair> TeamIndices;
/** Array of relevant player indices */
var array<SessionIndexPair> PlayerIndices;
structcpptext
{
/** Constructors */
FGameStatsSearchQuery() {}
FGameStatsSearchQuery(EEventParm)
{
appMemzero(this, sizeof(FGameStatsSearchQuery));
}
enum SearchQueryTypes
{
ALL_PLAYERS = INDEX_NONE,
ALL_TEAMS = INDEX_NONE,
ALL_EVENTS = INDEX_NONE,
};
}
};
/** Organizational notion of a stats session */
struct native GameSessionEntry
{
/** Mapping of session ID to events recorded */
var const init transient array<int> AllEvents;
/** Any event that isn't specific to a player or team */
var const transient array<int> GameEvents;
/** Mapping of player index to events recorded */
var const native transient MultiMap_Mirror EventsByPlayer{TMultiMap<INT, INT>};
/** Mapping of round index to events recorded */
var const native transient MultiMap_Mirror EventsByRound{TMultiMap<INT, INT>};
/** Mapping of event index to events of that type */
var const native transient MultiMap_Mirror EventsByType{TMultiMap<INT, INT>};
/** Mapping of team index to events recorded */
var const native transient MultiMap_Mirror EventsByTeam{TMultiMap<INT, INT>};
structcpptext
{
/** Constructors */
FGameSessionEntry() {}
FGameSessionEntry(EEventParm)
{
appMemzero(this, sizeof(FGameSessionEntry));
}
/* Clear out all contained data */
void Empty()
{
AllEvents.Empty();
GameEvents.Empty();
EventsByPlayer.Empty();
EventsByRound.Empty();
EventsByType.Empty();
EventsByTeam.Empty();
}
}
};
/** Base implementation of a "database" entry */
struct native IGameStatEntry
{
structcpptext
{
FIGameStatEntry() {}
FIGameStatEntry(const struct FGameEventHeader& GameEvent);
FIGameStatEntry(class FDataBaseRecordSet* RecordSet);
/**
* Every entry type must handle/accept the visitor interface
* @param Visitor - Interface class wanting access to the entry
*/
virtual void Accept(class IGameStatsDatabaseVisitor* Visitor)
{
ensureMsg(0, TEXT("Game stats database entry type didn't implement Accept function!"));
}
}
/** VTbl placeholder */
var native const noexport pointer Vtbl_IGameStatEntry;
/** Basic components of a game stat entry in the db */
var init string EventName;
var int EventID;
var float EventTime;
};
/** Implementation of a query result set */
struct native GameStatsRecordSet
{
var init array<int> LocalRecordSet;
var init native array<pointer> RemoteRecordSet{FIGameStatEntry};
structcpptext
{
INT GetNumResults() { return LocalRecordSet.Num() + RemoteRecordSet.Num(); }
}
};
cpptext
{
public:
/** @return TRUE if this database is able to access a remote database */
UBOOL HasRemoteConnection() { return RemoteDB != NULL; }
/**
* Query this database
* @param SearchQuery - the query to run on the database
* @param Events - out array of indices of relevant events in the database
* @return the number of results found for this query
*/
virtual INT QueryDatabase(const struct FGameStatsSearchQuery& Query, struct FGameStatsRecordSet& RecordSet);
/**
* Allows a visitor interface access to every database entry of interest
* @param SessionID - session we're interested in
* @param EventIndices - all events the visitor wants access to
* @param Visitor - the visitor interface that will be accessing the data
* @return TRUE if the visitor got what it needed from the visit, FALSE otherwise
*/
virtual UBOOL VisitEntries(const struct FGameStatsRecordSet& RecordSet, class IGameStatsDatabaseVisitor* Visitor);
/**
* Fill in database structures for a given sessionID if necessary
* @param SessionID - session to cache data for
*/
virtual void PopulateSessionData(const FString& SessionID);
protected:
/*
* Get all events associated with a given session
* @param SessionID - session we're interested in
* @param Events - array of indices related to relevant session events
*/
virtual INT GetEventsBySessionID(const FString& SessionID, TArray<INT>& Events);
/*
* Get all game events associated with a given session (neither player nor team)
* @param SessionID - session we're interested in
* @param Events - array of indices related to relevant game events
*/
virtual INT GetGameEventsBySession(const FString& SessionID, TArray<INT>& Events);
/*
* Get all events associated with a given team
* @param SessionID - session we're interested in
* @param TeamIndex - the team to return the events for (INDEX_NONE is all teams)
* @param Events - array of indices related to relevant team events
*/
virtual INT GetEventsByTeam(const FString& SessionID, INT TeamIndex, TArray<INT>& Events);
/*
* Get all events associated with a given player
* @param SessionID - session we're interested in
* @param PlayerIndex - the player to return the events for (INDEX_NONE is all players)
* @param Events - array of indices related to relevant player events
*/
virtual INT GetEventsByPlayer(const FString& SessionID, INT PlayerIndex, TArray<INT>& Events);
/*
* Get all events associated with a given round
* @param SessionID - session we're interested in
* @param RoundNumber - the round to return events for (INDEX_NONE is all rounds)
* @param Events - array of indices related to relevant round events
*/
virtual INT GetEventsByRound(const FString& SessionID, INT RoundNumber, TArray<INT>& Events);
/*
* Get all events associated with a given event ID
* @param SessionID - session we're interested in
* @param EventID - the event of interest (INDEX_NONE is all events)
* @param Events - array of indices related to relevant events
*/
virtual INT GetEventsByID(const FString& SessionID, INT EventID, TArray<INT>& Events);
/** Searches the stats directory for relevant data files and populates the database */
virtual void LoadLocalData(const FString& MapName, GameStatsDateFilters DateFilter);
/** Connects to the remote database and populates the db with data */
virtual void LoadRemoteData(const FString& MapName, GameStatsDateFilters DateFilter);
/**
* Open a game stats file for reading
* @param Filename - name of the file that will be open for serialization
* @return TRUE if successful, else FALSE
*/
virtual UBOOL OpenStatsFile(const FString& Filename);
};
/*
* Initialize the database session for a given map
* @param MapName - database will be populated with data relevant to this map
*/
native function Init(const string MapName, GameStatsDateFilters DateFilter);
/*
* Iterate over all valid files in the stats directory and create a mapping of map name to filename
*/
native function CacheLocalFilenames();
/*
* Get the gametypes in the database
* @param GameTypes - array of all gametypes in the database
*/
native function GetGameTypes(out array<string> GameTypes);
/*
* Get the session ids in the database
* @param DateFilter - Date enum to filter by
* @param GameTypeFilter - GameClass name or "ANY"
* @param SessionIDs - array of all sessions in the database
*/
native function GetSessionIDs(GameStatsDateFilters DateFilter, const string GameTypeFilter, out array<string> SessionIDs);
/*
* Is the session ID found in a local file or in the remote database
* @param SessionID - session of interest
* @return TRUE if this data is from a file on disk, FALSE if remote database
*/
native function bool IsSessionIDLocal(const string SessionID);
/**
* Get a list of the players by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of players
*/
native function GetSessionInfoBySessionID(const string SessionID, out GameSessionInformation OutSessionInfo);
/**
* Get a list of the players by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of players
*/
native function GetPlayersListBySessionID(const string SessionID, out array<PlayerInformation> OutPlayerList);
/**
* Get a list of the teams by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of teams
*/
native function GetTeamListBySessionID(const string SessionID, out array<TeamInformation> OutTeamList);
/**
* Get a list of the recorded events by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of events
*/
native function GetEventsListBySessionID(const string SessionID, out array<GameplayEventMetaData> OutGameplayEvents);
/**
* Get a list of the recorded weapons by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of weapons
*/
native function GetWeaponListBySessionID(const string SessionID, out array<WeaponClassEventData> OutWeaponList);
/**
* Get a list of the recorded damage types by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of damage types
*/
native function GetDamageListBySessionID(const string SessionID, out array<DamageClassEventData> OutDamageList);
/**
* Get a list of the recorded projectiles by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of projectiles
*/
native function GetProjectileListBySessionID(const string SessionID, out array<ProjectileClassEventData> OutProjectileList);
/**
* Get a list of the recorded pawn types by session ID
* @param SessionID - session ID to get the list for
* @param PlayerList - output array of pawn types
*/
native function GetPawnListBySessionID(const string SessionID, out array<PawnClassEventData> OutPawnList);
/*
* Get the total count of events of a given type
* @param SessionID - session we're interested in
* @param EventID - the event to return the count for
*/
native function int GetEventCountByType(const string SessionID, int EventID);
/*
* Empty all tables in the database
*/
native function ClearDatabase();
/*
* Upload a given session ID to the master database
* @SessionID - session ID to upload
* @return TRUE if successful, FALSE for any error condition
*/
native function bool UploadSession(const string SessionID);

View File

@ -0,0 +1,62 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Interface for visiting game stat database entries, must implement all database entry types
*/
interface GameStatsDatabaseVisitor
native(GameStats);
cpptext
{
/** Called before the visiting begins */
virtual void BeginVisiting() = 0;
/** Called after the visiting is over */
virtual UBOOL EndVisiting() = 0;
/**
* Abstract functions that defines a visitor's behavior when given a GameStatEntry
* There must be an entry for each possible concrete datatype stored in the database
* or else no visit action will occur.
*/
virtual void Visit(class GameStringEntry* Entry) = 0;
virtual void Visit(class GameIntEntry* Entry) = 0;
virtual void Visit(class GameFloatEntry* Entry) = 0;
virtual void Visit(class GamePositionEntry* Entry) = 0;
virtual void Visit(class TeamIntEntry* Entry) = 0;
virtual void Visit(class TeamStringEntry* Entry) = 0;
virtual void Visit(class TeamFloatEntry* Entry) = 0;
virtual void Visit(class PlayerStringEntry* Entry) = 0;
virtual void Visit(class PlayerIntEntry* Entry) = 0;
virtual void Visit(class PlayerFloatEntry* Entry) = 0;
virtual void Visit(class PlayerLoginEntry* Entry) = 0;
virtual void Visit(class PlayerSpawnEntry* Entry) = 0;
virtual void Visit(class PlayerKillDeathEntry* Entry) = 0;
virtual void Visit(class PlayerPlayerEntry * Entry) = 0;
virtual void Visit(class WeaponEntry* Entry) = 0;
virtual void Visit(class DamageEntry* Entry) = 0;
virtual void Visit(class ProjectileIntEntry* Entry) = 0;
virtual void Visit(class GenericParamListEntry* Entry) = 0;
/** Forward declarations so that games can create game specific events that can be visited */
virtual void Visit(class EntryEx1* Entry) = 0;
virtual void Visit(class EntryEx2* Entry) = 0;
virtual void Visit(class EntryEx3* Entry) = 0;
virtual void Visit(class EntryEx4* Entry) = 0;
virtual void Visit(class EntryEx5* Entry) = 0;
virtual void Visit(class EntryEx6* Entry) = 0;
virtual void Visit(class EntryEx7* Entry) = 0;
virtual void Visit(class EntryEx8* Entry) = 0;
virtual void Visit(class EntryEx9* Entry) = 0;
virtual void Visit(class EntryEx10* Entry) = 0;
virtual void Visit(class EntryEx11* Entry) = 0;
virtual void Visit(class EntryEx12* Entry) = 0;
virtual void Visit(class EntryEx13* Entry) = 0;
virtual void Visit(class EntryEx14* Entry) = 0;
virtual void Visit(class EntryEx15* Entry) = 0;
}

View File

@ -0,0 +1,56 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Streams gameplay events recorded during a session to disk
*/
class GameStatsFileReader extends GameplayEventsHandler
dependson(GameStatsDatabase)
native(GameStats);
// Stream processing helpers
var private GameStateObject GameState;
// All the relevant mappings after reading in a file
var GameSessionEntry SessionData;
// Amount all values in the indices are offset by (set by database before call to ProcessStream )
var int EventsOffset;
/** All events in the file */
var const private native transient array<pointer> AllEvents{FIGameStatEntry};
cpptext
{
public:
/**
* The function that does the actual handling of data (override with particular implementation)
* @param GameEvent - header of the current game event from disk
* @param GameEventData - payload immediately following the header
*/
virtual void HandleEvent(struct FGameEventHeader& GameEvent, class IGameEvent* GameEventData);
/*
* Set the game state this handler will use
* @param InGameState - game state object to use
*/
virtual void SetGameState(class UGameStateObject* InGameState);
/**
* Adds a new event created to the array of all events in the file
* @param NewEvent - new event to add
* @param TeamIndex - Team Index for team events (INDEX_NONE if not a team event)
* @param PlayerIndex - Player Index for player events (INDEX_NONE if not a player event)
* @param TargetIndex - Target Index for player events (INDEX_NONE if event has no target)
*/
void AddNewEvent(struct FIGameStatEntry* NewEvent, INT TeamIndex, INT PlayerIndex, INT TargetIndex);
};
/** Free up the temp data */
native event Cleanup();

View File

@ -0,0 +1,271 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Base class for generating reports from the game stats data
*/
class GameStatsReport extends Object
abstract
config(Editor)
native(GameStats);
enum EReportType
{
RT_SingleSession, // Single session recorded
RT_Game // All sessions related (all data under a single GUID)
};
/** Basic key value pair structure for XML output */
struct native MetaKeyValuePair
{
var init string Tag;
var init string Key;
var init string Value;
structcpptext
{
FMetaKeyValuePair()
{}
FMetaKeyValuePair(EEventParm)
{
appMemzero(this, sizeof(FMetaKeyValuePair));
}
FMetaKeyValuePair(const FString& InTag) : Tag(InTag) {}
}
};
/** Basic XML container, contains key value pairs and other sub categories */
struct native Category
{
var init string Tag;
var init string Header;
var int id;
var init array<MetaKeyValuePair> KeyValuePairs;
var init array<Category> SubCategories;
structcpptext
{
FCategory()
{}
FCategory(EEventParm)
{
appMemzero(this, sizeof(FCategory));
}
FCategory(const FString& InTag, const FString& InHeader) : Tag(InTag), Header(InHeader), Id(INDEX_NONE) {}
}
};
/** Heatmap queries to generate for this report */
struct native HeatmapQuery
{
/** Name to call this heatmap */
var string HeatmapName;
/** Events to include in the query */
var array<int> EventIDs;
/** Filename for the query output */
var string ImageFilename;
};
/** Copy of the session info */
var GameSessionInformation SessionInfo;
/** Instance of the game state */
var transient GameStateObject GameState;
/** Instance of the file reader */
var transient GameplayEventsReader StatsFileReader;
/** Game stats aggregator */
var transient GameStatsAggregator Aggregator;
/** Events to post in the special "highlights" sections of the report */
var array<int> HighlightEvents;
/** EventIDs to display as columns for game stats */
var array<int> GameStatsColumns;
/** EventIDs to display as columns for team stats */
var array<int> TeamStatsColumns;
/** EventIDs to display as columns for player stats */
var array<int> PlayerStatsColumns;
/** EventIDs to display as columns for weapon stats */
var array<int> WeaponStatsColumns;
/** EventIDs to display as columns for damage stats */
var array<int> DamageStatsColumns;
/** EventIDs to display as columns for projectile stats */
var array<int> ProjectileStatsColumns;
/** EventIDs to display as columns for pawn stats */
var array<int> PawnStatsColumns;
/** Base URL for report location */
var config string ReportBaseURL;
cpptext
{
/** Output the entire report in XML */
virtual void WriteReport(FArchive& Ar);
/**
* Write the session header information to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteSessionHeader(FArchive& Ar, INT IndentCount);
/**
* Write the any image reference information to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteImageMetadata(FArchive& Ar, INT IndentCount);
/**
* Write the session metadata to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteMetadata(FArchive& Ar, INT IndentCount);
/**
* Write the game stats data to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteGameValues(FArchive& Ar, INT IndentCount);
/**
* Write the team stats data to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteTeamValues(FArchive& Ar, INT IndentCount);
/**
* Fill out the information for a single team
* @param Team - XML object to fill in with data
* @param TeamIndex - team currently being written out
*/
virtual void WriteTeamValue(FCategory& Team, INT TeamIndex);
/**
* Write the player stats data to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WritePlayerValues(FArchive& Ar, INT IndentCount);
/**
* Fill out the information for a single player
* @param Player - XML object to fill in with data
* @param PlayerIndex - player currently being written out
*/
virtual void WritePlayerValue(FCategory& Player, INT PlayerIndex);
/**
* Write the weapon stats data to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteWeaponValues(FArchive& Ar, INT IndentCount);
/**
* Write the damage stats data to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteDamageValues(FArchive& Ar, INT IndentCount);
/**
* Write the projectile stats data to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteProjectileValues(FArchive& Ar, INT IndentCount);
/**
* Write the pawn stats data to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WritePawnValues(FArchive& Ar, INT IndentCount);
/**
* Write anything game specific to XML
* @param Ar - archive to write out
* @param IndentCount - number of tabs to indent this information
*/
virtual void WriteGameSpecificValues(FArchive& Ar, INT IndentCount) {}
/**
* Get an URL related this report
* @param ReportType - report type to generate
* @return URL passed to a browser to view the report
*/
virtual FString GetReportURL(EReportType ReportType) { return TEXT(""); }
/** @return the location of the file generated */
virtual FString GetReportFilename(const FString& FileExt);
/** @return list of heatmap queries to run on the database for this report */
virtual void GetHeatmapQueries(TArray<FHeatmapQuery>& HeatmapQueries);
/*
* Get all the event columns to be displayed in the whole report
* @param EventColumns - structure to add columns to
*/
virtual void GetAllEventColumns(TArray<INT>& EventColumns);
/*
* Get all the weapon events for a given time period (uses WeaponStatsColumns)
* @param ParentCategory - XML container to fill with the data
* @param TimePeriod - TimePeriod (0 game, 1+ round)
* @param WeaponEvents - the aggregate events structure to get the data from
* @param StatsReader - the file reader containing the weapon metadata
*/
void GetWeaponValuesForTimePeriod(FCategory& ParentCategory, INT TimePeriod, const struct FWeaponEvents& WeaponEvents, const class UGameplayEventsReader* StatsReader);
/*
* Get all the damage events for a given time period (uses DamageStatsColumns)
* @param ParentCategory - XML container to fill with the data
* @param TimePeriod - TimePeriod (0 game, 1+ round)
* @param DamageEvents - the aggregate events structure to get the data from
* @param StatsReader - the file reader containing the damage metadata
*/
void GetDamageValuesForTimePeriod(FCategory& ParentCategory, INT TimePeriod, const struct FDamageEvents& DamageEvents, const class UGameplayEventsReader* StatsReader);
/*
* Get all the projectile events for a given time period (uses ProjectileStatsColumns)
* @param ParentCategory - XML container to fill with the data
* @param TimePeriod - TimePeriod (0 game, 1+ round)
* @param ProjectileEvents - the aggregate events structure to get the data from
* @param StatsReader - the file reader containing the projectile metadata
*/
void GetProjectileValuesForTimePeriod(FCategory& ParentCategory, INT TimePeriod, const struct FProjectileEvents& ProjectileEvents, const class UGameplayEventsReader* StatsReader);
/*
* Get all the pawn events for a given time period (uses PawnStatsColumns)
* @param ParentCategory - XML container to fill with the data
* @param TimePeriod - TimePeriod (0 game, 1+ round)
* @param PawnEvents - the aggregate events structure to get the data from
* @param StatsReader - the file reader containing the pawn metadata
*/
void GetPawnValuesForTimePeriod(FCategory& ParentCategory, INT TimePeriod, const struct FPawnEvents& PawnEvents, const class UGameplayEventsReader* StatsReader);
};
defaultproperties
{
// Player events to highlight at top of report
HighlightEvents.Add(GAMEEVENT_AGGREGATED_PLAYER_KILLS);
HighlightEvents.Add(GAMEEVENT_AGGREGATED_PLAYER_DEATHS);
HighlightEvents.Add(GAMEEVENT_AGGREGATED_PAWN_SPAWN);
HighlightEvents.Add(GAMEEVENT_AGGREGATED_PLAYER_MATCH_WON);
// Team stats to display
TeamStatsColumns.Add(GAMEEVENT_AGGREGATED_TEAM_GAME_SCORE)
TeamStatsColumns.Add(GAMEEVENT_AGGREGATED_TEAM_MATCH_WON)
TeamStatsColumns.Add(GAMEEVENT_AGGREGATED_TEAM_ROUND_WON)
TeamStatsColumns.Add(GAMEEVENT_AGGREGATED_TEAM_KILLS)
TeamStatsColumns.Add(GAMEEVENT_AGGREGATED_TEAM_DEATHS)
// Player stats to display
PlayerStatsColumns.Add(GAMEEVENT_AGGREGATED_PLAYER_MATCH_WON)
PlayerStatsColumns.Add(GAMEEVENT_AGGREGATED_PLAYER_ROUND_WON)
PlayerStatsColumns.Add(GAMEEVENT_AGGREGATED_PLAYER_KILLS)
PlayerStatsColumns.Add(GAMEEVENT_AGGREGATED_PLAYER_DEATHS)
PlayerStatsColumns.Add(GAMEEVENT_AGGREGATED_PLAYER_TIMEALIVE)
// Weapon stats to display
WeaponStatsColumns.Add(GAMEEVENT_AGGREGATED_WEAPON_FIRED)
// Damage stats to display
DamageStatsColumns.Add(GAMEEVENT_AGGREGATED_DAMAGE_KILLS)
DamageStatsColumns.Add(GAMEEVENT_AGGREGATED_DAMAGE_DEATHS)
DamageStatsColumns.Add(GAMEEVENT_AGGREGATED_DAMAGE_DEALT_WEAPON_DAMAGE)
DamageStatsColumns.Add(GAMEEVENT_AGGREGATED_DAMAGE_RECEIVED_WEAPON_DAMAGE)
DamageStatsColumns.Add(GAMEEVENT_AGGREGATED_DAMAGE_DEALT_MELEE_DAMAGE)
DamageStatsColumns.Add(GAMEEVENT_AGGREGATED_DAMAGE_RECEIVED_MELEE_DAMAGE)
// Projectile stats to display
// Pawn stats to display
PawnStatsColumns.Add(GAMEEVENT_AGGREGATED_PAWN_SPAWN)
}

View File

@ -0,0 +1,61 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Generic implementation of the GameStatsDatabaseVisitor interface
*/
class GameStatsVisitorImpl extends Object
implements(GameStatsDatabaseVisitor)
abstract
native(GameStats)
config(Editor);
cpptext
{
/** Called before the visiting begins */
virtual void BeginVisiting() { /* Do nothing */ }
/** Called after the visiting is over */
virtual UBOOL EndVisiting() { return TRUE; }
/**
* Abstract functions that defines a visitor's behavior when given a GameStatEntry
* There must be an entry for each possible concrete datatype stored in the database
* or else no visit action will occur.
*/
virtual void Visit(class GameStringEntry* Entry) { /* Do nothing */ }
virtual void Visit(class GameIntEntry* Entry) { /* Do nothing */ }
virtual void Visit(class GameFloatEntry* Entry) { /* Do nothing */ }
virtual void Visit(class GamePositionEntry* Entry) { /* Do nothing */ }
virtual void Visit(class TeamIntEntry* Entry) { /* Do nothing */ }
virtual void Visit(class TeamFloatEntry* Entry) { /* Do nothing */ }
virtual void Visit(class TeamStringEntry* Entry) { /* Do nothing */ }
virtual void Visit(class PlayerStringEntry* Entry) { /* Do nothing */ }
virtual void Visit(class PlayerIntEntry* Entry) { /* Do nothing */ }
virtual void Visit(class PlayerFloatEntry* Entry) { /* Do nothing */ }
virtual void Visit(class PlayerLoginEntry* Entry) { /* Do nothing */ }
virtual void Visit(class PlayerSpawnEntry* Entry) { /* Do nothing */ }
virtual void Visit(class PlayerKillDeathEntry* Entry) { /* Do nothing */ }
virtual void Visit(class PlayerPlayerEntry * Entry) { /* Do nothing */ }
virtual void Visit(class WeaponEntry* Entry) { /* Do nothing */ }
virtual void Visit(class DamageEntry* Entry) { /* Do nothing */ }
virtual void Visit(class ProjectileIntEntry* Entry) { /* Do nothing */ }
virtual void Visit(class GenericParamListEntry* Entry){ /* Do SOMETHING! */ }
/** Forward declarations so that games can create game specific events that can be visited */
virtual void Visit(class EntryEx1* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx2* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx3* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx4* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx5* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx6* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx7* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx8* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx9* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx10* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx11* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx12* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx13* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx14* Entry) { /* Do nothing */ }
virtual void Visit(class EntryEx15* Entry) { /* Do nothing */ }
}

View File

@ -0,0 +1,97 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Visualization interface for game statistics
*/
class GameStatsVisualizer extends GameStatsVisitorImpl
abstract
native(GameStats);
cpptext
{
/** Given a chance to initialize */
virtual void Init() {}
/** Reset the visualizer to initial state */
virtual void Reset() {}
/** Given a chance to cleanup on destruction */
virtual void Cleanup() {}
/**
* Draw your stuff
* @param View - the view being drawn in
* @param PDI - draw interface for primitives
* @param ViewportType - type of viewport being draw (perspective, ortho)
*/
virtual void Visualize(const FSceneView* View, class FPrimitiveDrawInterface* PDI, ELevelViewportType ViewportType) {}
/**
* Draw your stuff as a canvas overlay
* @param ViewportClient - viewport client currently drawing
* @param View - the view being drawn in
* @param Canvas - overlay canvas
* @param ViewportType - type of viewport being draw (perspective, ortho)
*/
virtual void VisualizeCanvas(FEditorLevelViewportClient* ViewportClient, const FSceneView* View, FCanvas* Canvas, ELevelViewportType ViewportType) {}
/** Returns the number of data points the visualizer is actively working with */
virtual INT GetVisualizationSetCount() const { return 0; }
/**
* Retrieve some metadata about an event
* @param EventIndex - some visualizer relative index about the data to get metadata about
* @param MetadataString - return string containing information about the event requested
*/
virtual void GetMetadata(INT EventIndex, FString& MetadataString) {}
/**
* Called when a hitproxy belonging to this visualizer is triggered
* @param HitProxy - hitproxy the editor says was triggered
*/
virtual void HandleHitProxy(struct HGameStatsHitProxy* HitProxy) {}
/** Get the friendly name of the visualization type */
virtual const FString& GetFriendlyName() { return FriendlyName; }
/**
* Associates this visualization with the given GUI parent that created it
* @param InParent - Parent to associate with this visualizer
*/
virtual void SetParent(WxGameStatsVisualizer* InParent) { Parent = InParent; }
/**
* Returns a dialog box with options related to the visualizer
* @return NULL if no options for this visualizer, else pointer to dialog
*/
virtual class WxVisualizerOptionsDialog* GetOptionsDialog() { return NULL; }
/**
* Invalidates all viewports for the specified location/rotation
*
* @param Location the location to invalidate
* @param Rotation the rotation to invalidate
*/
void InvalidateViewportsForEvent(const FVector& Location,const FRotator& Rotation);
}
/** The parent gui */
var native private const pointer Parent{class WxGameStatsVisualizer};
/** Human readable name for this visualizer */
var string FriendlyName;
/** Name of the options dialog resource */
var string OptionsDialogName;
/** The options dialog (will be NULL before first call to options) */
var native private const pointer OptionsDialog{class WxVisualizerOptionsDialog};
/** Supported events by this visualizer */
var config array<int> SupportedEvents;
defaultproperties
{
FriendlyName="Base Visualizer"
OptionsDialogName=""
}

View File

@ -0,0 +1,316 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
// GenericBrowserType
//
// This class provides a generic interface for extending the generic browsers
// base list of resource types.
class GenericBrowserType
extends Object
abstract
hidecategories(Object,GenericBrowserType)
native;
// A human readable name for this modifier
var string Description;
/** Describes a command that a type of object supports */
struct transient native ObjectSupportedCommandType
{
/** The ID we'll use to identify this command. It's a constant. */
var int CommandID;
/** The index of the parent menu item */
var int ParentIndex;
/** How this command should appear in a context menu (localized!) */
var string LocalizedName;
/** Whether the command should appear enabled (true) or greyed-out (false) */
var bool bIsEnabled;
structcpptext
{
/** Constructor that initializes all elements */
FObjectSupportedCommandType( INT InCommandID, const FString& InLocalizedName, UBOOL bInIsEnabled = TRUE, INT InParentIndex = -1 )
: CommandID( InCommandID ),
LocalizedName( InLocalizedName ),
bIsEnabled( bInIsEnabled ),
ParentIndex( InParentIndex )
{
}
}
};
struct native GenericBrowserTypeInfo
{
/** the class associated with this browser type */
var const class Class;
/** the color to use for rendering objects of this type */
var const color BorderColor;
/** if specified, only objects that have these flags will be considered */
var native const qword RequiredFlags;
/** Pointer to the GenericBrowserType that should be called to handle events for this type. */
var GenericBrowserType BrowserType;
/** Callback used to determine whether object is Supported*/
var native pointer IsSupportedCallback;
structcpptext
{
typedef UBOOL (*GenericBrowserSupportCallback)(UObject* Object);
FGenericBrowserTypeInfo(
UClass* InClass,
const FColor& InBorderColor,
QWORD InRequiredFlags = 0,
UGenericBrowserType* InBrowserType = NULL,
GenericBrowserSupportCallback InIsSupportedCallback = NULL
)
: Class(InClass)
, RequiredFlags(InRequiredFlags)
, BorderColor(InBorderColor)
, BrowserType(InBrowserType)
, IsSupportedCallback(InIsSupportedCallback)
{}
UBOOL Supports( UObject* Object ) const
{
UBOOL bResult = FALSE;
//@HSL_BEGIN_XBOX
if ( Object && Object->IsA(Class) )
//@HSL_END_XBOX
{
bResult = TRUE;
if ( RequiredFlags != 0 )
{
bResult = Object->HasAllFlags(RequiredFlags);
}
if( bResult && IsSupportedCallback )
{
GenericBrowserSupportCallback Callback = (GenericBrowserSupportCallback) IsSupportedCallback;
bResult = Callback( Object );
}
}
return bResult;
}
inline UBOOL operator==( const FGenericBrowserTypeInfo& Other ) const
{
return ( Class == Other.Class && RequiredFlags == Other.RequiredFlags );
}
}
};
// A list of information that this type supports.
var native array<GenericBrowserTypeInfo> SupportInfo;
// The color of the border drawn around this type in the browser.
var color BorderColor;
cpptext
{
/**
* @return Returns the browser type description string.
*/
const FString& GetBrowserTypeDescription() const
{
return Description;
}
FColor GetBorderColor( UObject* InObject );
/**
* Does any initial set up that the type requires.
*/
virtual void Init()
{
}
/**
* Clear out any old data before calling Init() again
*/
virtual void Clear();
/**
* Checks to see if the specified class is handled by this type.
*
* @param InObject The object we need to check if we support
*/
UBOOL Supports( UObject* InObject ) const;
/**
* Creates a context menu specific to the type of objects that are selected.
*
* @param Selection The selected object set.
*/
class WxMBGenericBrowserContextBase* GetContextMenu( USelection* Selection );
/**
* Invokes the editor for an object. The default behaviour is to
* open a property window for the object. Dervied classes can override
* this with eg an editor which is specialized for the object's class.
*
* @param InObject The object to invoke the editor for.
*/
virtual UBOOL ShowObjectEditor( UObject* InObject )
{
return ShowObjectProperties( InObject );
}
/**
* Opens a property window for the specified object. By default, GEditor's
* notify hook is used on the property window. Derived classes can override
* this method in order to eg provide their own notify hook.
*
* @param InObject The object to invoke the property window for.
*/
virtual UBOOL ShowObjectProperties( UObject* InObject );
/**
* Opens a property window for the specified objects. By default, GEditor's
* notify hook is used on the property window. Derived classes can override
* this method in order to eg provide their own notify hook.
*
* @param InObjects The objects to invoke the property window for.
*/
virtual UBOOL ShowObjectProperties( const TArray<UObject*>& InObjects );
/**
* Invokes the editor for all selected objects.
*/
virtual UBOOL ShowObjectEditor();
/**
* Displays the object properties window for all selected objects that this
* GenericBrowserType supports.
*/
UBOOL ShowObjectProperties();
/**
* Static: Returns a list of standard context menu commands supported by the specified objects
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
static void QueryStandardSupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
/**
* Returns the default command to be executed given the selected object.
*
* @param InObject The objects to query the default command for
*
* @return The ID of the default action command (i.e. command that happens on double click or enter).
*/
virtual INT QueryDefaultCommand( TArray<UObject*>& InObjects ) const;
/**
* Invokes a custom menu item command for every selected object
* of a supported class.
*
* @param InCommand The command to execute
*/
virtual void InvokeCustomCommand( INT InCommand );
/**
* Invokes a custom menu item command.
*
* @param InCommand The command to execute
* @param InObject The object to invoke the command against
*/
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects )
{
}
/**
* Calls the virtual "DoubleClick" function for each object
* of a supported class.
*/
virtual void DoubleClick();
/**
* Allows each type to handle double clicking as they see fit.
*/
virtual void DoubleClick( UObject* InObject );
/**
* Retrieves a list of objects supported by this browser type which
* are currently selected in the generic browser.
*/
void GetSelectedObjects( TArray<UObject*>& Objects );
/**
* Determines whether the specified package is allowed to be saved.
*/
virtual UBOOL IsSavePackageAllowed( UPackage* PackageToSave );
protected:
/**
* Determines whether the specified package is allowed to be saved.
*
* @param PackageToSave the package that is about to be saved
* @param StandaloneObjects a list of objects from PackageToSave which were marked RF_Standalone
*/
virtual UBOOL IsSavePackageAllowed( UPackage* PackageToSave, TArray<UObject*>& StandaloneObjects )
{
return TRUE;
}
/**
* Static: Returns true if any of the specified objects have already been cooked
*/
static UBOOL AnyObjectsAreCooked( USelection* InObjects );
public:
/**
* Called when the user chooses to delete objects from the generic browser. Gives the resource type the opportunity
* to perform any special logic prior to the delete.
*
* @param ObjectToDelete the object about to be deleted.
*
* @return TRUE to allow the object to be deleted, FALSE to prevent the object from being deleted.
*/
virtual UBOOL NotifyPreDeleteObject( UObject* ObjectToDelete )
{
return TRUE;
}
/**
* Called when the user chooses to delete objects from the generic browser, after the object has been checked for referencers.
* Gives the resource type the opportunity to perform any special logic after the delete.
*
* @param ObjectToDelete the object that was deleted.
* @param bDeleteSuccessful TRUE if the object wasn't referenced and was successfully marked for deletion.
*/
virtual void NotifyPostDeleteObject()
{
}
}
defaultproperties
{
}

View File

@ -0,0 +1,22 @@
class GenericBrowserType_AkBank
extends GenericBrowserType
native;
cpptext
{
virtual void Init( void );
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="AkBank"
}

View File

@ -0,0 +1,22 @@
class GenericBrowserType_AkEvent
extends GenericBrowserType
native;
cpptext
{
virtual void Init( void );
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="AkEvent"
}

View File

@ -0,0 +1,20 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_All: All resource types
//=============================================================================
class GenericBrowserType_All
extends GenericBrowserType_Custom
native;
cpptext
{
virtual void Init();
}
defaultproperties
{
Description="_All_"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_AnimTree: Animation Blend Trees
//=============================================================================
class GenericBrowserType_AnimTree
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="Animation Trees"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_Animation: Animations
//=============================================================================
class GenericBrowserType_Animation
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="Animation Sets"
}

View File

@ -0,0 +1,20 @@
/*=============================================================================
GenericBrowserType_ApexClothingAsset.uc: Apex integration for Clothing Assets.
Copyright 2008-2009 NVIDIA corporation..
=============================================================================*/
class GenericBrowserType_ApexClothingAsset
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Apex clothing asset"
}

View File

@ -0,0 +1,20 @@
/*=============================================================================
GenericBrowserType_ApexDestructibleAsset.uc: Apex integration for Destructible Assets.
Copyright 2008-2009 NVIDIA corporation..
=============================================================================*/
class GenericBrowserType_ApexDestructibleAsset
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Apex destructible asset"
}

View File

@ -0,0 +1,14 @@
class GenericBrowserType_ApexDestructibleDamageParameters
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor(UObject *InObject);
}
defaultproperties
{
Description = "Apex Destructible Damage Parameters"
}

View File

@ -0,0 +1,26 @@
/*=============================================================================
GenericBrowserType_ApexGenericAsset.uc: Apex integration for Generic Assets.
Copyright 2008-2009 NVIDIA corporation..
=============================================================================*/
class GenericBrowserType_ApexGenericAsset
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand );
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
virtual void DoubleClick();
virtual void DoubleClick( UObject* InObject );
virtual INT QueryDefaultCommand( TArray<UObject*>& InObjects ) const;
virtual UBOOL ShowObjectEditor( UObject* InObject);
}
defaultproperties
{
Description="APEX Asset";
}

View File

@ -0,0 +1,45 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//-----------------------------------------------------------
// Browser type for archetype classes
//-----------------------------------------------------------
class GenericBrowserType_Archetype extends GenericBrowserType
native;
cpptext
{
virtual void Init();
/**
* Determines whether the specified object is an archetype that should be handled by this generic browser type.
*
* @param Object a pointer to a object with the RF_ArchetypeObject flag
*
* @return TRUE if this generic browser type supports to object specified.
*/
static UBOOL IsArchetypeSupported( UObject* Object );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
/**
* Returns the default command to be executed given the selected object.
*
* @param InObject The objects to query the default command for
*
* @return The ID of the default action command (i.e. command that happens on double click or enter).
*/
virtual INT QueryDefaultCommand( TArray<UObject*>& InObjects ) const;
}
DefaultProperties
{
Description="Archetypes"
}

View File

@ -0,0 +1,29 @@
/**
* Generic browser type for Camera animations
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class GenericBrowserType_CameraAnim extends GenericBrowserType
native;
cpptext
{
/**
* Initialize the supported classes for this browser type.
*/
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
DefaultProperties
{
Description="Camera Animations"
}

View File

@ -0,0 +1,20 @@
/**
* Generic browser type for editing UIScenes
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class GenericBrowserType_CurveEdPresetCurve extends GenericBrowserType
native;
cpptext
{
/**
* Initialize the supported classes for this browser type.
*/
virtual void Init();
}
DefaultProperties
{
Description="Preset curve for curve editor"
}

View File

@ -0,0 +1,71 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_Custom: Custom resource types
//=============================================================================
class GenericBrowserType_Custom
extends GenericBrowserType
native;
cpptext
{
/**
* Invokes the editor for all selected objects.
*
* This version loops through all of the supported classes for the custom type and
* calls the appropriate implementation of the function.
*/
virtual UBOOL ShowObjectEditor();
/**
* Invokes the editor for an object. The default behaviour is to
* open a property window for the object. Dervied classes can override
* this with eg an editor which is specialized for the object's class.
*
* This version loops through all of the supported classes for the custom type and
* calls the appropriate implementation of the function.
*
* @param InObject The object to invoke the editor for.
*/
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Opens a property window for the specified object. By default, GEditor's
* notify hook is used on the property window. Derived classes can override
* this method in order to eg provide their own notify hook.
*
* This version loops through all of the supported classes for the custom type and
* calls the appropriate implementation of the function.
*
* @param InObject The object to invoke the property window for.
*/
virtual UBOOL ShowObjectProperties( const TArray<UObject*>& InObjects );
/**
* Invokes a custom menu item command for every selected object
* of a supported class.
*
* This version loops through all of the supported classes for the custom type and
* calls the appropriate implementation of the function.
*
* @param InCommand The command to execute
*/
virtual void InvokeCustomCommand( INT InCommand );
/**
* Calls the virtual "DoubleClick" function for each object
* of a supported class.
*
* This version loops through all of the supported classes for the custom type and
* calls the appropriate implementation of the function.
*/
virtual void DoubleClick();
}
defaultproperties
{
Description="_Custom_"
}

View File

@ -0,0 +1,28 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class GenericBrowserType_DecalMaterial
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Decal Materials"
}

View File

@ -0,0 +1,31 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_FaceFXAnimSet: FaceFX AnimSets
//=============================================================================
class GenericBrowserType_FaceFXAnimSet
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects);
}
defaultproperties
{
Description="FaceFX Animations"
}

View File

@ -0,0 +1,33 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_FaceFXAsset: FaceFX Assets
//=============================================================================
class GenericBrowserType_FaceFXAsset
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
virtual UBOOL ShowObjectProperties( UObject* InObject );
virtual UBOOL ShowObjectProperties( const TArray<UObject*>& InObjects );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="FaceFX Assets"
}

View File

@ -0,0 +1,20 @@
/**
*
* Copyright 1998-2011 Epic Games, Inc. All Rights Reserved.
*/
class GenericBrowserType_FlexContainer
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor(UObject *InObject);
}
defaultproperties
{
Description = "Flex Container"
}

View File

@ -0,0 +1,45 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_Font: Fonts
//=============================================================================
class GenericBrowserType_Font
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
/**
* Displays the font properties window for editing & importing/exporting of
* font pages
*
* @param InObject the object being edited
*/
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
/**
* Invokes a custom menu item command.
*
* @param InCommand The command to execute
* @param InObject The object to invoke the command against
*/
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Fonts"
}

View File

@ -0,0 +1,17 @@
/**
*
* Copyright 2010 Epic Games, Inc. All Rights Reserved.
*/
class GenericBrowserType_FractureMaterial extends GenericBrowserType
native;
cpptext
{
virtual void Init();
}
defaultproperties
{
Description = "Fracture Material"
}

View File

@ -0,0 +1,30 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_FracturedStaticMesh: Fractured Static Meshes
//=============================================================================
class GenericBrowserType_FracturedStaticMesh
extends GenericBrowserType_StaticMesh
native;
cpptext
{
virtual void Init();
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Fractured Static Meshes"
}

View File

@ -0,0 +1,20 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_InstancedFoliageSettings: InstancedFoliageSettings
//=============================================================================
class GenericBrowserType_InstancedFoliageSettings
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
}
defaultproperties
{
Description="Instanced Foliage Settings"
}

View File

@ -0,0 +1,20 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_LandscapeLayer: LandscapeLayer
//=============================================================================
class GenericBrowserType_LandscapeLayer
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
}
defaultproperties
{
Description="Landscape Layers"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_LensFlare: LensFlare
//=============================================================================
class GenericBrowserType_LensFlare
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="Lens Flares"
}

View File

@ -0,0 +1,38 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_Material: Materials
//=============================================================================
class GenericBrowserType_Material
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& Objects );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
/**
* Callback to register whether or not the object should be displayed
* @param InObject - object that will be displayed in the GB
* @return TRUE if should be displayed
*/
static UBOOL ShouldDisplayCallback( UObject* InObject );
}
defaultproperties
{
Description="Materials"
}

View File

@ -0,0 +1,38 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_MaterialFunction: Material Functions
//=============================================================================
class GenericBrowserType_MaterialFunction
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& Objects );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
/**
* Callback to register whether or not the object should be displayed
* @param InObject - object that will be displayed in the GB
* @return TRUE if should be displayed
*/
static UBOOL ShouldDisplayCallback( UObject* InObject );
}
defaultproperties
{
Description="MaterialFunctions"
}

View File

@ -0,0 +1,31 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_MaterialInstance: Material Instances
//=============================================================================
class GenericBrowserType_MaterialInstanceConstant
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Material Instances (Constant)"
}

View File

@ -0,0 +1,31 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_MaterialInstance: Material Instances
//=============================================================================
class GenericBrowserType_MaterialInstanceTimeVarying
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Material Instances (Time Varying)"
}

View File

@ -0,0 +1,27 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//-----------------------------------------------------------
// Browser type for morph target sets
//-----------------------------------------------------------
class GenericBrowserType_MorphTargetSet extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
DefaultProperties
{
Description="Morph Target Sets"
}

View File

@ -0,0 +1,19 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//-----------------------------------------------------------
// Browser type for morph weight sequence
//-----------------------------------------------------------
class GenericBrowserType_MorphWeightSequence extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
}
DefaultProperties
{
Description="Morph Target Weights"
}

View File

@ -0,0 +1,31 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_ParticleSystem: ParticleSystems
//=============================================================================
class GenericBrowserType_ParticleSystem
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Particle Systems"
}

View File

@ -0,0 +1,19 @@
/**
*
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class GenericBrowserType_PhysXParticleSystem
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor(UObject *InObject);
}
defaultproperties
{
Description = "PhysX Particle Systems"
}

View File

@ -0,0 +1,21 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_PhysicalMaterial: Physical properties of a material
//=============================================================================
class GenericBrowserType_PhysicalMaterial
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
}
defaultproperties
{
Description="Physical Materials"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_PhysicsAsset: PhysicsAssets
//=============================================================================
class GenericBrowserType_PhysicsAsset
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="Physics Assets"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_PostProcess: Animation Blend Trees
//=============================================================================
class GenericBrowserType_PostProcess
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="Post-Process Chains"
}

View File

@ -0,0 +1,19 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//-----------------------------------------------------------
// Browser type for prefabs
//-----------------------------------------------------------
class GenericBrowserType_Prefab extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
}
DefaultProperties
{
Description="Prefabs"
}

View File

@ -0,0 +1,22 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_ProcBuildingRuleset
//=============================================================================
class GenericBrowserType_ProcBuildingRuleset
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
}
defaultproperties
{
Description="ProcBuilding Ruleset"
}

View File

@ -0,0 +1,30 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_RenderTexture: Render target textures
//=============================================================================
class GenericBrowserType_RenderTexture
extends GenericBrowserType_Texture
native;
cpptext
{
virtual void Init();
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Render Target Textures"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_Sequence: Sequences
//=============================================================================
class GenericBrowserType_Sequence
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
/**
* Determines whether the specified object is a USequence class that should be handled by this generic browser type.
*
* @param Object a pointer to a USequence object.
*
* @return TRUE if this generic browser type supports to object specified.
*/
static UBOOL IsSequenceTypeSupported( UObject* Object );
}
defaultproperties
{
Description="Sequences"
}

View File

@ -0,0 +1,31 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_SkeletalMesh: SkeletalMeshs
//=============================================================================
class GenericBrowserType_SkeletalMesh
extends GenericBrowserType
native;
cpptext
{
virtual void Init();
virtual UBOOL ShowObjectEditor( UObject* InObject );
/**
* Returns a list of commands that this object supports (or the object type supports, if InObject is NULL)
*
* @param InObjects The objects to query commands for (if NULL, query commands for all objects of this type.)
* @param OutCommands The list of custom commands to support
*/
virtual void QuerySupportedCommands( class USelection* InObjects, TArray< FObjectSupportedCommandType >& OutCommands ) const;
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Skeletal Meshes"
}

View File

@ -0,0 +1,22 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_SoundClass: Sound classes
//=============================================================================
class GenericBrowserType_SoundClass
extends GenericBrowserType_Sounds
native;
cpptext
{
virtual void Init();
virtual UBOOL NotifyPreDeleteObject( UObject* ObjectToDelete );
virtual void NotifyPostDeleteObject();
}
defaultproperties
{
Description="Sound Classes"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_SoundCue: SoundCues
//=============================================================================
class GenericBrowserType_SoundCue
extends GenericBrowserType_Sounds
native;
cpptext
{
virtual void Init( void );
/**
* Invokes a custom menu item command for every selected object
* of a supported class.
*
* @param InCommand The command to execute
* @param InObjects The objects to invoke the command against
*/
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects);
}
defaultproperties
{
Description="Sound Cues"
}

View File

@ -0,0 +1,22 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_SoundMode: Sound modes
//=============================================================================
class GenericBrowserType_SoundMode
extends GenericBrowserType_Sounds
native;
cpptext
{
virtual void Init();
virtual UBOOL NotifyPreDeleteObject( UObject* ObjectToDelete );
virtual void NotifyPostDeleteObject();
}
defaultproperties
{
Description="Sound Modes"
}

View File

@ -0,0 +1,29 @@
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
//=============================================================================
// GenericBrowserType_SoundWave: SoundWaves
//=============================================================================
class GenericBrowserType_SoundWave
extends GenericBrowserType_Sounds
native;
cpptext
{
virtual void Init( void );
/**
* Invokes a custom menu item command for every selected object
* of a supported class.
*
* @param InCommand The command to execute
* @param InObjects The objects to invoke the command against
*/
virtual void InvokeCustomCommand( INT InCommand, TArray<UObject*>& InObjects );
}
defaultproperties
{
Description="Sound Wave Data"
}

Some files were not shown because too many files have changed in this diff Show More