Bomberman-OverlordEngine-x64 / BombermanGame / Prefabs / Bomberman / Crystal.h
Crystal.h
Raw
#pragma once

class Crystal : public GameObject
{
public:
	enum class Type : UINT
	{
		Yellow,
		Blue,
		Red,
		Count,
		Random
	};

	Crystal(const XMFLOAT3& startPos, Crystal::Type type = Crystal::Type::Random);
	~Crystal() override = default;

	Crystal(const Crystal& other) = delete;
	Crystal(Crystal&& other) noexcept = delete;
	Crystal& operator=(const Crystal& other) = delete;
	Crystal& operator=(Crystal&& other) noexcept = delete;

	void DrawImGui();
	Type GetType() { return m_Type; }

	//void PickupCrystal(GameObject* pTriggerObject, GameObject* pOtherObject, PxTriggerAction action);

protected:
	void Initialize(const SceneContext&) override;
	void Update(const SceneContext&) override;

private:

	static PxMaterial* m_pPxMaterial;
	GameObject* m_pShadow{ nullptr };

	static std::vector<UINT> m_MaterialIds;
	const float m_RotationSpeed{ 90.f };
	static int m_Count;

	Type m_Type;

	XMFLOAT3 m_StartPos;
	GameObject* m_pCrystalGo;
	int m_MaterialId;
	float m_RotationAngle{};
	float m_OffsetY{};
};