Pyrogenesis HEAD
Pyrogenesis, a RTS Engine
|
Fairly basic decay implementation, for units and buildings etc. More...
Public Member Functions | |
int | GetComponentTypeId () const override |
void | Init (const CParamNode ¶mNode) override |
void | Deinit () override |
void | Serialize (ISerializer &serialize) override |
void | Deserialize (const CParamNode ¶mNode, IDeserializer &deserialize) override |
void | HandleMessage (const CMessage &msg, bool global) override |
Public Member Functions inherited from IComponent | |
virtual | ~IComponent () |
virtual void | Init (const CParamNode ¶mNode)=0 |
virtual void | Deinit ()=0 |
virtual void | HandleMessage (const CMessage &msg, bool global) |
CEntityHandle | GetEntityHandle () const |
void | SetEntityHandle (CEntityHandle ent) |
entity_id_t | GetEntityId () const |
CEntityHandle | GetSystemEntity () const |
const CSimContext & | GetSimContext () const |
void | SetSimContext (const CSimContext &context) |
virtual void | Serialize (ISerializer &serialize)=0 |
virtual void | Deserialize (const CParamNode ¶mNode, IDeserializer &deserialize)=0 |
virtual bool | NewJSObject (const ScriptInterface &scriptInterface, JS::MutableHandleObject out) const |
Returns false by default, indicating that a scripted wrapper of this IComponent is not supported. More... | |
virtual JS::Value | GetJSInstance () const |
virtual int | GetComponentTypeId () const =0 |
Static Public Member Functions | |
static void | ClassInit (CComponentManager &componentManager) |
static IComponent * | Allocate (const ScriptInterface &, JS::HandleValue) |
static void | Deallocate (IComponent *cmp) |
static std::string | GetSchema () |
Static Public Member Functions inherited from IComponent | |
static std::string | GetSchema () |
static void | RegisterComponentType (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema) |
static void | RegisterComponentTypeScriptWrapper (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema) |
static u8 | GetSerializationVersion () |
Public Attributes | |
bool | m_Active |
bool | m_ShipSink |
float | m_DelayTime |
float | m_SinkRate |
float | m_SinkAccel |
entity_pos_t | m_InitialXRotation |
entity_pos_t | m_InitialZRotation |
float | m_SinkingAngleX |
float | m_SinkingAngleZ |
float | m_CurrentTime |
float | m_TotalSinkDepth |
Additional Inherited Members | |
Public Types inherited from IComponent | |
using | AllocFunc = IComponent *(*)(const ScriptInterface &scriptInterface, JS::HandleValue ctor) |
using | DeallocFunc = void(*)(IComponent *) |
Fairly basic decay implementation, for units and buildings etc.
The decaying entity remains stationary for some time period, then falls downwards with some initial speed and some acceleration, until it has fully sunk. The sinking depth is determined from the actor's bounding box and the terrain.
This currently doesn't work with entities whose ICmpPosition has an initial Y offset.
This isn't very efficient (we'll store data and iterate every frame for every entity, not just for corpse entities) - it could be designed more optimally if that's a real problem.
Eventually we might want to adjust the decay rate based on user configuration (low-spec machines could have fewer corpses), number of corpses, etc.
Must not be used on network-synchronised entities, unless <Inactive> is present.
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlineoverridevirtual |
Implements IComponent.
|
inlineoverridevirtual |
Implements IComponent.
|
inlineoverridevirtual |
Implements IComponent.
|
inlinestatic |
|
inlineoverridevirtual |
Reimplemented from IComponent.
|
inlineoverridevirtual |
Implements IComponent.
|
inlineoverridevirtual |
Implements IComponent.
bool CCmpDecay::m_Active |
float CCmpDecay::m_CurrentTime |
float CCmpDecay::m_DelayTime |
entity_pos_t CCmpDecay::m_InitialXRotation |
entity_pos_t CCmpDecay::m_InitialZRotation |
bool CCmpDecay::m_ShipSink |
float CCmpDecay::m_SinkAccel |
float CCmpDecay::m_SinkingAngleX |
float CCmpDecay::m_SinkingAngleZ |
float CCmpDecay::m_SinkRate |
float CCmpDecay::m_TotalSinkDepth |