ShapeBaseData

Engine/source/T3D/shapeBase.h

More...

Classes:

3rd Person Camera

Maximum distance from eye.

Minumumistance from eye.

Camera FOV

These are specified in degrees.

Default vertical FOV in degrees.

Min vertical FOV allowed in degrees.

Max vertical FOV allowed in degrees.

Camera Misc

bool

If the derrived class supports it, allow the camera to bank.

bool

Do mounted images bank along with the camera?

Data initialized on preload

Shape handle.

Shape's eye node index.

Shape's ear node index.

Shape's camera node index.

mountPointNode [SceneObject::NumMountPoints]

Node index of mountPoint.

Detail level used to generate debris.

Damage level decals.

Destroyed hulk.

Collision Data

Detail level used to collide with.

Detail level bounding boxes.

Detail level used to perform line-of-sight queries against.

Misc. Settings

bool

Do we allow only first person view of this image?

bool

Do we use this object's eye point to view from?

bool

If set, object cannot take damage (won't show up with damage bar either)

bool

If set, will not render this object when destroyed.

Infrastructure

The derived class should provide the following:

Callbacks

DECLARE_CALLBACK(void , onEnabled , (ShapeBase *obj, const char *lastState) )
DECLARE_CALLBACK(void , onDisabled , (ShapeBase *obj, const char *lastState) )
DECLARE_CALLBACK(void , onDestroyed , (ShapeBase *obj, const char *lastState) )
DECLARE_CALLBACK(void , onImpact , (ShapeBase *obj, SceneObject *collObj, VectorF vec, F32 len) )
DECLARE_CALLBACK(void , onCollision , (ShapeBase *obj, SceneObject *collObj, VectorF vec, F32 len) )
DECLARE_CALLBACK(void , onDamage , (ShapeBase *obj, F32 delta) )
DECLARE_CALLBACK(void , onTrigger , (ShapeBase *obj, S32 index, bool state) )
DECLARE_CALLBACK(void , onEndSequence , (ShapeBase *obj, S32 slot, const char *name) )
DECLARE_CALLBACK(void , onForceUncloak , (ShapeBase *obj, const char *reason) )

Public Types

enum
Constants {
  MaxCollisionShapes = 8
  AIRepairNode = 31
}

Various constants relating to the ShapeBaseData.

Private Types

Parent 

Private Static Functions

bool
_setMass(void * object, const char * index, const char * data)

Public Functions

bool
preload(bool server, String & errorStr)

Called to prepare the datablock for use, after it has been unpacked.

Detailed Description

Destruction

Everyone likes to blow things up!

DebrisData * debris 
S32 debrisID 
StringTableEntry debrisShapeName 
Resource< TSShape > debrisShape 
ExplosionData * explosion 
S32 explosionID 
ExplosionData * underwaterExplosion 
S32 underwaterExplosionID 

Physical Properties

F32 mass 
F32 drag 
F32 density 
F32 maxEnergy 
F32 maxDamage 
F32 repairRate 

Rate per tick.

F32 disabledLevel 
F32 destroyedLevel 

3rd Person Camera

F32 cameraMaxDist 

Maximum distance from eye.

F32 cameraMinDist 

Minumumistance from eye.

Camera FOV

These are specified in degrees.

F32 cameraDefaultFov 

Default vertical FOV in degrees.

F32 cameraMinFov 

Min vertical FOV allowed in degrees.

F32 cameraMaxFov 

Max vertical FOV allowed in degrees.

Camera Misc

bool cameraCanBank 

If the derrived class supports it, allow the camera to bank.

bool mountedImagesBank 

Do mounted images bank along with the camera?

Data initialized on preload

Resource< TSShape > mShape 

Shape handle.

U32 mCRC 
bool computeCRC 
S32 eyeNode 

Shape's eye node index.

S32 earNode 

Shape's ear node index.

S32 cameraNode 

Shape's camera node index.

S32 mountPointNode [SceneObject::NumMountPoints]

Node index of mountPoint.

S32 debrisDetail 

Detail level used to generate debris.

S32 damageSequence 

Damage level decals.

S32 hulkSequence 

Destroyed hulk.

bool observeThroughObject 

Collision Data

Vector< S32 > collisionDetails 

Detail level used to collide with.

These are detail IDs, see TSShape::findDetail() 

Vector< Box3F > collisionBounds 

Detail level bounding boxes.

Vector< S32 > LOSDetails 

Detail level used to perform line-of-sight queries against.

These are detail IDs, see TSShape::findDetail() 

Misc. Settings

bool firstPersonOnly 

Do we allow only first person view of this image?

bool useEyePoint 

Do we use this object's eye point to view from?

bool isInvincible 

If set, object cannot take damage (won't show up with damage bar either)

bool renderWhenDestroyed 

If set, will not render this object when destroyed.

bool inheritEnergyFromMount 

Infrastructure

The derived class should provide the following:

DECLARE_CONOBJECT(ShapeBaseData )

ShapeBaseData()

~ShapeBaseData()

packData(BitStream * stream)

Reimplemented from: SimDataBlock

Reimplemented by: RigidShapeData, HoverVehicleData, VActorData, afxCameraData, afxStaticShapeData, CameraData, ItemData, PathCameraData, PathShapeData, PlayerData, ProximityMineData, StaticShapeData, AITurretShapeData, TurretShapeData, FlyingVehicleData, VehicleData, WheeledVehicleData

unpackData(BitStream * stream)

Reimplemented from: GameBaseData

Reimplemented by: RigidShapeData, HoverVehicleData, VActorData, afxCameraData, afxStaticShapeData, CameraData, ItemData, PathCameraData, PathShapeData, PlayerData, ProximityMineData, StaticShapeData, AITurretShapeData, TurretShapeData, FlyingVehicleData, VehicleData, WheeledVehicleData

initPersistFields()

Callbacks

DECLARE_CALLBACK(void , onEnabled , (ShapeBase *obj, const char *lastState) )

DECLARE_CALLBACK(void , onDisabled , (ShapeBase *obj, const char *lastState) )

DECLARE_CALLBACK(void , onDestroyed , (ShapeBase *obj, const char *lastState) )

DECLARE_CALLBACK(void , onImpact , (ShapeBase *obj, SceneObject *collObj, VectorF vec, F32 len) )

DECLARE_CALLBACK(void , onCollision , (ShapeBase *obj, SceneObject *collObj, VectorF vec, F32 len) )

DECLARE_CALLBACK(void , onDamage , (ShapeBase *obj, F32 delta) )

DECLARE_CALLBACK(void , onTrigger , (ShapeBase *obj, S32 index, bool state) )

DECLARE_CALLBACK(void , onEndSequence , (ShapeBase *obj, S32 slot, const char *name) )

DECLARE_CALLBACK(void , onForceUncloak , (ShapeBase *obj, const char *reason) )

Public Types

Constants

Enumerator

MaxCollisionShapes = 8
AIRepairNode = 31

Various constants relating to the ShapeBaseData.

Private Types

typedef GameBaseData Parent 

Public Attributes

StringTableEntry cloakTexName 
U32 cubeDescId 
String cubeDescName 
ReflectorDesc * reflectorDesc 
char * remap_buffer 
StringTableEntry remap_txr_tags 
bool shadowEnable 
F32 shadowMaxVisibleDistance 
F32 shadowProjectionDistance 
U32 shadowSize 
F32 shadowSphereAdjust 
bool silent_bbox_check 
Vector< TextureTagRemapping > txr_tag_remappings