Merge branch 'master' into LevelSystemAndSuch

This commit is contained in:
PlatinumSkink
2015-10-13 13:37:08 +02:00
5 changed files with 50 additions and 9 deletions
+47 -9
View File
@@ -690,10 +690,12 @@ bool dd::Systems::PhysicsSystem::OnContact(const dd::Events::Contact &event)
{
//Check if it is a brick colliding
auto brick = m_World->GetComponent<Components::Brick>(event.Entity1);
EntityID entity = event.Entity1;
Components::Model* model;
if (!brick) {
brick = m_World->GetComponent<Components::Brick>(event.Entity2);
EntityID entity = event.Entity2;
if (!brick) {
return false;
}
@@ -704,21 +706,57 @@ bool dd::Systems::PhysicsSystem::OnContact(const dd::Events::Contact &event)
else {
model = m_World->GetComponent<Components::Model>(event.Entity1);
}
//Spawn a particle when a brick collides with somthing
Events::CreateParticleSequence e;
e.EmitterLifeTime = 4;
//- glm::atan(event.Normal.x, event.Normal.y
e.EmitterLifeTime = 3;
e.EmittingAngle = glm::half_pi<float>();
e.Spread = 0.5f;
e.Spread = 0.f;
e.NumberOfTicks = 1;
e.ParticleLifeTime = 1.f;
e.ParticlesPerTick = 15;
e.Position = glm::vec3(event.IntersectionPoint.x, event.IntersectionPoint.y, -10);
e.Radius = 0.2f;
e.SpriteFile = "Textures/Particles/Cloud_Particle.png";
e.Color = model->Color + glm::vec4(0.5f);
e.Speed = 100;
e.ParticlesPerTick = 1;
e.Position = glm::vec3(event.IntersectionPoint.x, event.IntersectionPoint.y, -7);
e.Color = glm::vec4(1.f);
e.Radius = 1.f;
e.Speed = 0;
auto PowerFriend = m_World->GetComponent<Components::MultiBallBrick>(entity);
auto PowerSaviour = m_World->GetComponent<Components::LifebuoyBrick>(entity);
auto PowerSticky = m_World->GetComponent<Components::StickyBrick>(entity);
auto PowerInkBlaster = m_World->GetComponent<Components::InkBlasterBrick>(entity);
auto PowerKraken = m_World->GetComponent<Components::KrakenAttackBrick>(entity);
if (PowerFriend) {
e.SpriteFile = "Textures/PowerUps/Friends.png";
} else if (PowerSaviour) {
e.SpriteFile = "Textures/PowerUps/Saviour.png";
} else if (PowerSticky) {
e.SpriteFile = "Textures/PowerUps/Sticky.png";
} else if (PowerInkBlaster){
e.SpriteFile = "Textures/PowerUps/InkBlaster.png";
} else if (PowerKraken) {
e.SpriteFile = "Textures/PowerUps/RealeaseTheKraken.png";
}
else {
e.EmitterLifeTime = 4;
e.EmittingAngle = glm::half_pi<float>();
e.Spread = 0.5f;
e.NumberOfTicks = 1;
e.ParticleLifeTime = 1.f;
e.ParticlesPerTick = 15;
e.Position = glm::vec3(event.IntersectionPoint.x, event.IntersectionPoint.y, -10);
e.Radius = 0.2f;
e.SpriteFile = "Textures/Particles/Cloud_Particle.png";
e.Color = model->Color + glm::vec4(0.5f);
e.Speed = 100;
}
EventBroker->Publish(e);
return true;
}