#ifndef __CDMOVINGPLATFORMCOMPONENTTABLE__H__
#define __CDMOVINGPLATFORMCOMPONENTTABLE__H__

#include "CDTable.h"
#include "NiPoint3.h"

#include <optional>

typedef uint32_t ComponentID;

struct CDMovingPlatformTableEntry {
	NiPoint3 platformMove;
	float moveTime;
	bool platformIsSimpleMover;
	bool platformStartAtEnd;
};

class CDMovingPlatformComponentTable : public CDTable<CDMovingPlatformComponentTable> {
public:
	CDMovingPlatformComponentTable();

	void CachePlatformEntry(ComponentID id);
	const std::optional<CDMovingPlatformTableEntry> GetPlatformEntry(ComponentID id);
private:
	std::map<ComponentID, CDMovingPlatformTableEntry> m_Platforms;
};
#endif  //!__CDMOVINGPLATFORMCOMPONENTTABLE__H__