Bomberman-OverlordEngine-x64 / BombermanGame / Materials / DiffuseOpacityMaterial.h
DiffuseOpacityMaterial.h
Raw
#pragma once

class DiffuseOpacityMaterial final : public Material<DiffuseOpacityMaterial>
{
public:
	DiffuseOpacityMaterial();
	~DiffuseOpacityMaterial() override = default;

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

	void SetDiffuseTexture(const std::wstring& assetFile);
	void SetOpacityTexture(const std::wstring& assetFile);
	TextureData* GetOpacityTexture() override;

	void SetIgnoreLightDirection(bool ignoreLightDir)
	{
		SetVariable_Scalar(L"gIgnoreLightDirection", ignoreLightDir);
	}

protected:
	void InitializeEffectVariables() override;
	void OnUpdateModelVariables(const SceneContext&, const ModelComponent*) const override;

private:
	TextureData* m_pDiffuseTexture{};
	TextureData* m_pOpacityTexture{};
};