Merge branch 'master' of github.com:sippeangelo/Return-to-the-Return-of-Return-Fire-2-Returngeance
Conflicts: src/Systems/PhysicsSystem.cpp
This commit is contained in:
@@ -11,6 +11,7 @@ namespace Events
|
|||||||
{
|
{
|
||||||
CreateExplosion() :
|
CreateExplosion() :
|
||||||
Color(glm::vec4(0)),
|
Color(glm::vec4(0)),
|
||||||
|
usePointLight(false),
|
||||||
UseGoalVector(false) {}
|
UseGoalVector(false) {}
|
||||||
|
|
||||||
glm::vec3 Position;
|
glm::vec3 Position;
|
||||||
@@ -21,6 +22,7 @@ namespace Events
|
|||||||
glm::quat RelativeUpOrientation;
|
glm::quat RelativeUpOrientation;
|
||||||
float Speed;
|
float Speed;
|
||||||
float SpreadAngle;
|
float SpreadAngle;
|
||||||
|
float usePointLight;
|
||||||
std::vector<float> ParticleScale;
|
std::vector<float> ParticleScale;
|
||||||
bool UseGoalVector;
|
bool UseGoalVector;
|
||||||
glm::vec3 GoalVelocity;
|
glm::vec3 GoalVelocity;
|
||||||
|
|||||||
@@ -268,6 +268,13 @@ bool Systems::ParticleSystem::CreateExplosion(const Events::CreateExplosion &e)
|
|||||||
auto templateComponent = m_World->AddComponent<Components::Template>(particleEnt);
|
auto templateComponent = m_World->AddComponent<Components::Template>(particleEnt);
|
||||||
auto TEMP = m_World->AddComponent<Components::Transform>(particleEnt);
|
auto TEMP = m_World->AddComponent<Components::Transform>(particleEnt);
|
||||||
auto spriteComponent = m_World->AddComponent<Components::Sprite>(particleEnt);
|
auto spriteComponent = m_World->AddComponent<Components::Sprite>(particleEnt);
|
||||||
|
if(e.usePointLight)
|
||||||
|
{
|
||||||
|
auto light = m_World->AddComponent<Components::PointLight>(particleEnt);
|
||||||
|
light->Diffuse = glm::vec3(231.f/255.f, 181.f/255.f, 48.f/255.f);
|
||||||
|
light->Specular = glm::vec3(0.5f, 0.5f, 0.5f);
|
||||||
|
light->Radius = 20.f;
|
||||||
|
}
|
||||||
spriteComponent->SpriteFile = e.spritePath;
|
spriteComponent->SpriteFile = e.spritePath;
|
||||||
m_World->CommitEntity(particleEnt);
|
m_World->CommitEntity(particleEnt);
|
||||||
emitter->ParticleTemplate = particleEnt;
|
emitter->ParticleTemplate = particleEnt;
|
||||||
|
|||||||
@@ -5,6 +5,7 @@
|
|||||||
#include "Systems/TransformSystem.h"
|
#include "Systems/TransformSystem.h"
|
||||||
#include "Components/Transform.h"
|
#include "Components/Transform.h"
|
||||||
#include "Components/ParticleEmitter.h"
|
#include "Components/ParticleEmitter.h"
|
||||||
|
#include "Components/PointLight.h"
|
||||||
#include "Components/Particle.h"
|
#include "Components/Particle.h"
|
||||||
#include "Components/Sprite.h"
|
#include "Components/Sprite.h"
|
||||||
#include "EventBroker.h"
|
#include "EventBroker.h"
|
||||||
|
|||||||
@@ -785,7 +785,22 @@ bool Systems::PhysicsSystem::OnApplyPointImpulse( const Events::ApplyPointImpuls
|
|||||||
void Systems::PhysicsSystem::OnComponentRemoved(EntityID entity, std::string type, Component* component)
|
void Systems::PhysicsSystem::OnComponentRemoved(EntityID entity, std::string type, Component* component)
|
||||||
{
|
{
|
||||||
|
|
||||||
if(m_RigidBodies.find(entity) != m_RigidBodies.end())
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Systems::PhysicsSystem::OnEntityRemoved( EntityID entity )
|
||||||
|
{
|
||||||
|
if (m_Vehicles.find(entity) != m_Vehicles.end())
|
||||||
|
{
|
||||||
|
m_PhysicsWorld->markForWrite();
|
||||||
|
m_Vehicles[entity]->removeFromWorld();
|
||||||
|
m_PhysicsWorld->unmarkForWrite();
|
||||||
|
m_Vehicles.erase(entity);
|
||||||
|
m_RigidBodyEntities.erase(m_RigidBodies[entity]);
|
||||||
|
m_RigidBodies.erase(entity);
|
||||||
|
}
|
||||||
|
else if (m_RigidBodies.find(entity) != m_RigidBodies.end())
|
||||||
{
|
{
|
||||||
m_PhysicsWorld->markForWrite();
|
m_PhysicsWorld->markForWrite();
|
||||||
m_RigidBodyEntities.erase(m_RigidBodies[entity]);
|
m_RigidBodyEntities.erase(m_RigidBodies[entity]);
|
||||||
@@ -793,11 +808,6 @@ void Systems::PhysicsSystem::OnComponentRemoved(EntityID entity, std::string typ
|
|||||||
m_RigidBodies.erase(entity);
|
m_RigidBodies.erase(entity);
|
||||||
m_PhysicsWorld->unmarkForWrite();
|
m_PhysicsWorld->unmarkForWrite();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Systems::PhysicsSystem::OnEntityRemoved( EntityID entity )
|
|
||||||
{
|
|
||||||
/*
|
/*
|
||||||
else if(m_RigidBodies.find(entity) != m_RigidBodies.end())
|
else if(m_RigidBodies.find(entity) != m_RigidBodies.end())
|
||||||
{
|
{
|
||||||
@@ -898,27 +908,28 @@ bool Systems::PhysicsSystem::OnDead( const Events::Dead &e )
|
|||||||
{
|
{
|
||||||
if(m_Vehicles.find(e.Entity) != m_Vehicles.end())
|
if(m_Vehicles.find(e.Entity) != m_Vehicles.end())
|
||||||
{
|
{
|
||||||
EntityID camera = m_World->GetProperty<EntityID>(e.Entity, "Camera");
|
m_World->RemoveEntity(e.Entity);
|
||||||
m_World->RemoveComponent<Components::Camera>(camera);
|
//EntityID camera = m_World->GetProperty<EntityID>(e.Entity, "Camera");
|
||||||
auto transform = m_World->GetComponent<Components::Transform>(e.Entity);
|
//m_World->RemoveComponent<Components::Camera>(camera);
|
||||||
transform->Position = glm::vec3(0, -10000.f, 0);
|
//auto transform = m_World->GetComponent<Components::Transform>(e.Entity);
|
||||||
//m_RigidBodies[e.Entity]->setPosition(hkVector4(0, -10000, 0));
|
//transform->Position = glm::vec3(0, -10000.f, 0);
|
||||||
|
////m_RigidBodies[e.Entity]->setPosition(hkVector4(0, -10000, 0));
|
||||||
|
|
||||||
/*m_Vehicles.erase(e.Entity);
|
///*m_Vehicles.erase(e.Entity);
|
||||||
m_RigidBodyEntities.erase(m_RigidBodies[e.Entity]);
|
//m_RigidBodyEntities.erase(m_RigidBodies[e.Entity]);
|
||||||
m_RigidBodies.erase(e.Entity);*/
|
//m_RigidBodies.erase(e.Entity);*/
|
||||||
|
|
||||||
auto jeep = m_World->GetComponent<Components::JeepSteering>(e.Entity);
|
//auto jeep = m_World->GetComponent<Components::JeepSteering>(e.Entity);
|
||||||
if(jeep)
|
//if(jeep)
|
||||||
{
|
//{
|
||||||
m_World->RemoveComponent<Components::JeepSteering>(e.Entity);
|
// m_World->RemoveComponent<Components::JeepSteering>(e.Entity);
|
||||||
}
|
//}
|
||||||
|
|
||||||
auto tank = m_World->GetComponent<Components::TankSteering>(e.Entity);
|
//auto tank = m_World->GetComponent<Components::TankSteering>(e.Entity);
|
||||||
if(tank)
|
//if(tank)
|
||||||
{
|
//{
|
||||||
m_World->RemoveComponent<Components::TankSteering>(e.Entity);
|
// m_World->RemoveComponent<Components::TankSteering>(e.Entity);
|
||||||
}
|
//}
|
||||||
|
|
||||||
auto listener = m_World->GetComponent<Components::Listener>(e.Entity);
|
auto listener = m_World->GetComponent<Components::Listener>(e.Entity);
|
||||||
if (listener)
|
if (listener)
|
||||||
|
|||||||
@@ -252,6 +252,7 @@ bool Systems::TankSteeringSystem::OnCollision(const Events::Collision &e)
|
|||||||
e.Speed = 6;
|
e.Speed = 6;
|
||||||
e.SpreadAngle = glm::pi<float>();
|
e.SpreadAngle = glm::pi<float>();
|
||||||
e.spritePath = "Textures/Sprites/Blast1.png";
|
e.spritePath = "Textures/Sprites/Blast1.png";
|
||||||
|
e.usePointLight = true;
|
||||||
e.Color = glm::vec4(2, 2, 2, 0.2);
|
e.Color = glm::vec4(2, 2, 2, 0.2);
|
||||||
EventBroker->Publish(e);
|
EventBroker->Publish(e);
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -78,16 +78,16 @@ bool World::ValidEntity(EntityID entity)
|
|||||||
|
|
||||||
void World::RemoveEntity(EntityID entity)
|
void World::RemoveEntity(EntityID entity)
|
||||||
{
|
{
|
||||||
|
m_EntitiesToRemove.insert(entity);
|
||||||
|
|
||||||
auto it = m_EntityChildren.find(entity);
|
auto it = m_EntityChildren.find(entity);
|
||||||
if (it != m_EntityChildren.end())
|
if (it != m_EntityChildren.end())
|
||||||
{
|
{
|
||||||
for (auto entity : it->second)
|
for (auto entity : it->second)
|
||||||
{
|
{
|
||||||
m_EntitiesToRemove.insert(entity);
|
RemoveEntity(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
m_EntitiesToRemove.insert(entity);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void World::ProcessEntityRemovals()
|
void World::ProcessEntityRemovals()
|
||||||
|
|||||||
Reference in New Issue
Block a user