DarkflameServer/dGame/dComponents/MultiZoneEntranceComponent.h

40 lines
1.2 KiB
C
Raw Normal View History

2022-05-03 20:05:29 +00:00
#pragma once
#include "Entity.h"
#include "Component.h"
#include "eReplicaComponentType.h"
2022-05-03 20:05:29 +00:00
/**
* Component that handles the LUP/WBL rocket launchpad that can be interacted with to travel to WBL worlds.
*
*/
class MultiZoneEntranceComponent final : public Component {
2022-05-03 20:05:29 +00:00
public:
static constexpr eReplicaComponentType ComponentType = eReplicaComponentType::MULTI_ZONE_ENTRANCE;
2022-05-03 20:05:29 +00:00
/**
* Constructor for this component, builds the m_LUPWorlds vector
* @param parent parent that contains this component
*/
MultiZoneEntranceComponent(Entity* parent);
~MultiZoneEntranceComponent() override;
2022-05-03 20:05:29 +00:00
2022-05-04 23:24:28 +00:00
/**
* Handles an OnUse event from some entity, preparing it for launch to some other world
* @param originator the entity that triggered the event
*/
2022-05-03 20:05:29 +00:00
void OnUse(Entity* originator) override;
2022-05-04 23:24:28 +00:00
/**
* Handles an OnUse event from some entity, preparing it for launch to some other world
* @param originator the entity that triggered the event
* @param index index of the world that was selected
*/
void OnSelectWorld(Entity* originator, uint32_t index);
2022-05-03 20:05:29 +00:00
private:
/**
* vector of the LUP World Zone IDs, built from CDServer's LUPZoneIDs table
*/
2022-07-28 13:39:57 +00:00
std::vector<LWOMAPID> m_LUPWorlds{};
2022-05-03 20:05:29 +00:00
};