BubbleBobbleRemake / DuvelEngine / ColliderComponent.h
ColliderComponent.h
Raw
#pragma once
#include "Component.h"

namespace dae
{
	struct ColliderData
	{
		int width;
		int height;
		int offsetX;
		int offsetY;
	};

	struct CollisionRect
	{
		float p0x, p0y;
		float p1x, p1y;
		float p2x, p2y;
		float p3x, p3y;
	};

	class ColliderComponent : public Component
	{
	public:
		ColliderComponent(int width, int height, bool isTrigger = false, int offsetX = 0, int offsetY = 0);
		~ColliderComponent();

		bool GetIgnoreFlag() const { return m_bIgnoreFlag; }
		void SetIgnoreFlag(bool value) { m_bIgnoreFlag = value; }

		const ColliderData& GetColliderData() { return m_ColliderData; }
		CollisionRect GetCollisionRect() const;

		bool IsTrigger() { return m_IsTrigger; }

		void Update(float deltaTime) override;
		void FixedUpdate(float deltaTime) override;
		void Render() const override;

	private:
		ColliderData m_ColliderData{};
		bool m_IsTrigger;

		bool m_bIgnoreFlag{ false };
	};
}