mirror of
https://github.com/AxioDL/PrimeWorldEditor.git
synced 2025-07-27 15:35:46 +00:00
51 lines
1.5 KiB
C++
51 lines
1.5 KiB
C++
#ifndef CDAMAGEABLETRIGGEREXTRA_H
|
|
#define CDAMAGEABLETRIGGEREXTRA_H
|
|
|
|
#include "CScriptExtra.h"
|
|
|
|
class CDamageableTriggerExtra : public CScriptExtra
|
|
{
|
|
// Render fluid planes for doors in MP1
|
|
enum ERenderSide
|
|
{
|
|
eNoRender = 0x0,
|
|
eNorth = 0x1,
|
|
eSouth = 0x2,
|
|
eWest = 0x4,
|
|
eEast = 0x8,
|
|
eUp = 0x10,
|
|
eDown = 0x20
|
|
};
|
|
|
|
TVector3Property *mpSizeProp;
|
|
TEnumProperty *mpRenderSideProp;
|
|
TAssetProperty *mpTextureProps[3];
|
|
|
|
CVector3f mPlaneSize;
|
|
ERenderSide mRenderSide;
|
|
TResPtr<CTexture> mpTextures[3];
|
|
|
|
CMaterial *mpMat;
|
|
CVector2f mCoordScale;
|
|
|
|
float mCachedRayDistance;
|
|
|
|
public:
|
|
explicit CDamageableTriggerExtra(CScriptObject *pInstance, CScene *pScene, CScriptNode *pParent = 0);
|
|
~CDamageableTriggerExtra();
|
|
void CreateMaterial();
|
|
void UpdatePlaneTransform();
|
|
ERenderSide RenderSideForDirection(const CVector3f& rkDir);
|
|
ERenderSide TransformRenderSide(ERenderSide Side);
|
|
void OnTransformed();
|
|
void PropertyModified(IProperty *pProperty);
|
|
bool ShouldDrawNormalAssets();
|
|
void AddToRenderer(CRenderer *pRenderer, const SViewInfo& rkViewInfo);
|
|
void Draw(FRenderOptions Options, int ComponentIndex, ERenderCommand Command, const SViewInfo& rkViewInfo);
|
|
void DrawSelection();
|
|
void RayAABoxIntersectTest(CRayCollisionTester& rTester, const SViewInfo& rkViewInfo);
|
|
SRayIntersection RayNodeIntersectTest(const CRay& rkRay, u32 ComponentIndex, const SViewInfo& rkViewInfo);
|
|
};
|
|
|
|
#endif // CDAMAGEABLETRIGGEREXTRA_H
|