DarkflameServer/dGame/dComponents/ModelBehaviorComponent.cpp

32 lines
1.3 KiB
C++
Raw Normal View History

#include "ModelBehaviorComponent.h"
#include "Entity.h"
ModelBehaviorComponent::ModelBehaviorComponent(Entity* parent) : Component(parent) {
m_OriginalPosition = m_OwningEntity->GetDefaultPosition();
m_OriginalRotation = m_OwningEntity->GetDefaultRotation();
m_userModelID = m_OwningEntity->GetVarAs<LWOOBJID>(u"userModelID");
}
void ModelBehaviorComponent::Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate, unsigned int& flags) {
// ItemComponent Serialization. Pets do not get this serialization.
if (!m_OwningEntity->HasComponent(eReplicaComponentType::PET)) {
outBitStream->Write1();
outBitStream->Write<LWOOBJID>(m_userModelID != LWOOBJID_EMPTY ? m_userModelID : m_OwningEntity->GetObjectID());
outBitStream->Write<int>(0);
outBitStream->Write0();
2022-07-28 13:39:57 +00:00
}
//actual model component:
outBitStream->Write1(); // Yes we are writing model info
2022-07-28 13:39:57 +00:00
outBitStream->Write0(); // Is pickable
outBitStream->Write<uint32_t>(2); // Physics type
outBitStream->Write(m_OriginalPosition); // Original position
outBitStream->Write(m_OriginalRotation); // Original rotation
outBitStream->Write1(); // We are writing behavior info
2022-07-28 13:39:57 +00:00
outBitStream->Write<uint32_t>(0); // Number of behaviors
outBitStream->Write1(); // Is this model paused
if (bIsInitialUpdate) outBitStream->Write0(); // We are not writing model editing info
}