DarkflameServer/dGame/dComponents/LUPExhibitComponent.h
Aaron Kimbrell e524b86e12
breakout the component types into a scoped enum (#1002)
* breakout the component types into a scoped enum

tested that things are the same as they were before

* fix missed rename

* fix brick-by-brick name to be crafting
because that's what it is
2023-03-04 01:16:37 -06:00

46 lines
1.0 KiB
C++

#pragma once
#include "Component.h"
#include "Entity.h"
#include "eReplicaComponentType.h"
/**
* Component that handles the LOT that is shown in the LUP exhibit in the LUP world. Works by setting a timer and
* switching the LOTs around that we'd like to display.
*/
class LUPExhibitComponent : public Component
{
public:
static const eReplicaComponentType ComponentType = eReplicaComponentType::EXHIBIT;
LUPExhibitComponent(Entity* parent);
~LUPExhibitComponent();
void Update(float deltaTime) override;
void Serialize(RakNet::BitStream* outBitStream, bool bIsInitialUpdate, uint32_t& flags);
/**
* After the timer runs out, this changes the currently exhibited LOT to the next one
*/
void NextExhibit();
private:
/**
* The LOT that's currently on exhibit
*/
LOT m_Exhibit;
/**
* The time since we've last updated the exhibit
*/
float m_UpdateTimer;
/**
* The list of possible exhibits to show
*/
std::vector<LOT> m_Exhibits;
/**
* The current index in the exhibit list
*/
size_t m_ExhibitIndex;
};