#pragma once
#include "GuiElement.h"
#include "Texture.h"
#include "Animations/Animation.h"

class TextureManager;

class GuiMeter final : public GuiElement
{
public:
	GuiMeter(const std::string& filePath, Vector2f pos, Vector2f frameSize, int frameCount, TextureManager* manager);
	GuiMeter(const std::string& filePath, Vector2f pos, Vector2f frameSize, Vector2f drawSize, int frameCount, TextureManager* manager);
	GuiMeter(GuiMeter& other) = delete;
	GuiMeter& operator=(const GuiMeter& other) = delete;
	GuiMeter(GuiMeter&& other) = delete;
	GuiMeter& operator=(GuiMeter&& other) = delete;
	virtual ~GuiMeter() override;

	virtual void Draw() const override;
	virtual void Update(float elapsedSec) override;

	void SetValue(float value);

private:
	Animation* m_Animation{ nullptr }; 
	Vector2f m_Position;
	Vector2f m_DrawSize;

	float m_Value{ 0.0f };
	const float m_MaxValue{ 100.0f };
	
	int m_FrameCount;
	
};
