void ParticleScene::Initialize(const GameContext& gameContext)
{
	UNREFERENCED_PARAMETER(gameContext);

	m_pRootObject = new GameObject();
	AddChild(m_pRootObject);

	auto particleObj = new GameObject();
	auto particleEmitter = new ParticleEmitterComponent(L"./Resources/Textures/Smoke.png", 60);
	particleEmitter->SetVelocity(XMFLOAT3(0, 6.0f, 0));
	particleEmitter->SetMinSize(1.0f);
	particleEmitter->SetMaxSize(2.0f);
	particleEmitter->SetMinEnergy(1.0f);
	particleEmitter->SetMaxEnergy(2.0f);
	particleEmitter->SetMinSizeGrow(3.5f);
	particleEmitter->SetMaxSizeGrow(5.5f);
	particleEmitter->SetMinEmitterRange(0.2f);
	particleEmitter->SetMaxEmitterRange(0.5f);
	particleEmitter->SetColor(XMFLOAT4(1.f, 1.f, 1.f, 0.6f));
	particleObj->AddComponent(particleEmitter);
	m_pRootObject->AddChild(particleObj);

	auto mat = new ColorMaterial();
	gameContext.pMaterialManager->AddMaterial(mat, 103);

	auto modelObj = new GameObject();
	auto model = new ModelComponent(L"./Resources/Meshes/Teapot.ovm");
	model->SetMaterial(103);
	modelObj->AddComponent(model);
	m_pRootObject->AddChild(modelObj);
	modelObj->GetTransform()->Scale(0.2f, 0.2f, 0.2f);
}
void Fire::Initialize(const GameContext& gameContext)
{
	auto particleObj = new GameObject();
	auto particleEmitter = new ParticleEmitterComponent(L"./Resources/Textures/Flames.png", 35);
	particleEmitter->SetVelocity(m_Velocity);
	particleEmitter->SetMinSize(3);
	particleEmitter->SetMaxSize(4);
	particleEmitter->SetMinEnergy(0.55f);
	particleEmitter->SetMaxEnergy(.85f);
	particleEmitter->SetMinSizeGrow(1.f);
	particleEmitter->SetMaxSizeGrow(1.5f);
	particleEmitter->SetMinEmitterRange(-1);
	particleEmitter->SetMaxEmitterRange(1);
	particleEmitter->SetColor(XMFLOAT4(1.f, 1.f, 1.f, 1.f));
	particleEmitter->SetActive(true);
	particleObj->AddComponent(particleEmitter);
	AddChild(particleObj);
}
void Laser::Initialize(const GameContext& gameContext)
{
	auto particleObj = new GameObject();
	auto particleEmitter = new ParticleEmitterComponent(L"./Resources/Textures/laser.png", 85);
	particleEmitter->SetVelocity(m_Velocity);
	particleEmitter->SetMinSize(1.75f);
	particleEmitter->SetMaxSize(1.75f);
	particleEmitter->SetMinEnergy(0.75f);
	particleEmitter->SetMaxEnergy(0.75f);
	particleEmitter->SetMinSizeGrow(1.f);
	particleEmitter->SetMaxSizeGrow(1.f);
	particleEmitter->SetMinEmitterRange(0);
	particleEmitter->SetMaxEmitterRange(0);
	particleEmitter->SetColor(XMFLOAT4(1.f, 1.f, 1.f, 1.f));
	particleEmitter->SetRandomRot(false);
	particleEmitter->SetActive(true);
	particleObj->AddComponent(particleEmitter);
	AddChild(particleObj);	
}