1
0
KF2-Dev-Scripts/Engine/Classes/ForceFieldShapeSphere.uc

60 lines
1.3 KiB
Ucode
Raw Normal View History

2020-12-13 15:01:13 +00:00
/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*/
class ForceFieldShapeSphere extends ForceFieldShape
native(ForceField);
var DrawSphereComponent Shape;
event float GetRadius()
{
return Shape.SphereRadius;
}
event FillBySphere(float Radius)
{
Shape.SphereRadius = Radius;
}
event FillByBox(vector Extent)
{
Shape.SphereRadius = vsize(Extent);
}
event FillByCapsule(float Height, float Radius)
{
Shape.SphereRadius = Height/2 + Radius;
}
event FillByCylinder(float BottomRadius, float TopRadius, float Height, float HeightOffset)
{
local float topDistance, bottomDistance, centerBelowTop, centerAboveBottom;
centerBelowTop = Height/2 + HeightOffset;
centerAboveBottom = Height/2 - HeightOffset;
topDistance = Sqrt(TopRadius*TopRadius + centerBelowTop*centerBelowTop);
bottomDistance = Sqrt(BottomRadius*BottomRadius + centerAboveBottom*centerAboveBottom);
Shape.SphereRadius = FMax(topDistance, bottomDistance);
}
event PrimitiveComponent GetDrawComponent()
{
return Shape;
}
cpptext
{
#if WITH_NOVODEX
virtual class NxForceFieldShapeDesc * CreateNxDesc();
#endif
}
defaultproperties
{
Begin Object Class=DrawSphereComponent Name=DrawSphere0
SphereRadius=200.0
End Object
Shape = DrawSphere0
}