2021-12-05 17:54:36 +00:00
|
|
|
#include "ShootingGalleryComponent.h"
|
|
|
|
#include "EntityManager.h"
|
|
|
|
#include "ScriptedActivityComponent.h"
|
|
|
|
|
2023-06-27 05:39:15 +00:00
|
|
|
ShootingGalleryComponent::ShootingGalleryComponent(Entity* parent, int32_t componentId) : ActivityComponent(parent, componentId) {
|
2021-12-05 17:54:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
ShootingGalleryComponent::~ShootingGalleryComponent() = default;
|
|
|
|
|
|
|
|
void ShootingGalleryComponent::SetStaticParams(const StaticShootingGalleryParams& params) {
|
|
|
|
m_StaticParams = params;
|
|
|
|
}
|
|
|
|
|
|
|
|
void ShootingGalleryComponent::SetDynamicParams(const DynamicShootingGalleryParams& params) {
|
|
|
|
m_DynamicParams = params;
|
|
|
|
m_Dirty = true;
|
2023-06-09 09:46:01 +00:00
|
|
|
EntityManager::Instance()->SerializeEntity(m_ParentEntity);
|
2021-12-05 17:54:36 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void ShootingGalleryComponent::Serialize(RakNet::BitStream* outBitStream, bool isInitialUpdate, uint32_t& flags) const {
|
|
|
|
// Start ScriptedActivityComponent
|
|
|
|
outBitStream->Write<bool>(true);
|
|
|
|
if (m_CurrentPlayerID == LWOOBJID_EMPTY) {
|
|
|
|
outBitStream->Write<uint32_t>(0);
|
|
|
|
} else {
|
|
|
|
outBitStream->Write<uint32_t>(1);
|
|
|
|
for (size_t i = 0; i < 10; i++) {
|
|
|
|
outBitStream->Write<float_t>(0.0f);
|
|
|
|
}
|
|
|
|
|
2022-07-28 13:39:57 +00:00
|
|
|
}
|
2021-12-05 17:54:36 +00:00
|
|
|
// End ScriptedActivityComponent
|
|
|
|
|
|
|
|
if (isInitialUpdate) {
|
|
|
|
outBitStream->Write<float_t>(m_StaticParams.cameraPosition.GetX());
|
|
|
|
outBitStream->Write<float_t>(m_StaticParams.cameraPosition.GetY());
|
|
|
|
outBitStream->Write<float_t>(m_StaticParams.cameraPosition.GetZ());
|
|
|
|
|
|
|
|
outBitStream->Write<float_t>(m_StaticParams.cameraLookatPosition.GetX());
|
|
|
|
outBitStream->Write<float_t>(m_StaticParams.cameraLookatPosition.GetY());
|
|
|
|
outBitStream->Write<float_t>(m_StaticParams.cameraLookatPosition.GetZ());
|
2022-07-28 13:39:57 +00:00
|
|
|
}
|
2021-12-05 17:54:36 +00:00
|
|
|
|
|
|
|
outBitStream->Write<bool>(m_Dirty || isInitialUpdate);
|
|
|
|
if (m_Dirty || isInitialUpdate) {
|
|
|
|
outBitStream->Write<double_t>(m_DynamicParams.cannonVelocity);
|
|
|
|
outBitStream->Write<double_t>(m_DynamicParams.cannonRefireRate);
|
|
|
|
outBitStream->Write<double_t>(m_DynamicParams.cannonMinDistance);
|
|
|
|
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.cameraBarrelOffset.GetX());
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.cameraBarrelOffset.GetY());
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.cameraBarrelOffset.GetZ());
|
|
|
|
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.cannonAngle);
|
|
|
|
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.facing.GetX());
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.facing.GetY());
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.facing.GetZ());
|
2022-07-28 13:39:57 +00:00
|
|
|
|
2021-12-05 17:54:36 +00:00
|
|
|
outBitStream->Write<LWOOBJID>(m_CurrentPlayerID);
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.cannonTimeout);
|
|
|
|
outBitStream->Write<float_t>(m_DynamicParams.cannonFOV);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|