Merge remote-tracking branch 'origin/master' into gui
Conflicts: src/GameWorld.cpp src/Systems/FreeSteeringSystem.cpp src/Systems/PhysicsSystem.cpp vs11/Returngeance/Returngeance.vcxproj.filters
This commit is contained in:
+200
-48
@@ -27,10 +27,9 @@ void GameWorld::Initialize()
|
||||
auto transform = AddComponent<Components::Transform>(camera, "Transform");
|
||||
transform->Position.z = 20.f;
|
||||
transform->Position.y = 20.f;
|
||||
transform->Orientation = glm::quat(glm::vec3(glm::pi<float>() / 8.f, 0.f, 0.f));
|
||||
//transform->Orientation = glm::quat(glm::vec3(glm::pi<float>() / 8.f, 0.f, 0.f));
|
||||
auto cameraComp = AddComponent<Components::Camera>(camera, "Camera");
|
||||
cameraComp->FarClip = 2000.f;
|
||||
AddComponent(camera, "Input");
|
||||
auto freeSteering = AddComponent<Components::FreeSteering>(camera, "FreeSteering");
|
||||
CommitEntity(camera);
|
||||
}
|
||||
@@ -39,65 +38,219 @@ void GameWorld::Initialize()
|
||||
{
|
||||
auto ground = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(ground, "Transform");
|
||||
transform->Position = glm::vec3(0, 0, 0);
|
||||
transform->Scale = glm::vec3(1000.0f, 1.0f, 1000.0f);
|
||||
transform->Position = glm::vec3(0, -5, 0);
|
||||
transform->Scale = glm::vec3(400.0f, 10.0f, 400.0f);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||
auto model = AddComponent<Components::Model>(ground, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube.obj";
|
||||
auto box = AddComponent<Components::Box>(ground, "Box");
|
||||
box->Width = 500;
|
||||
box->Height = 0.5;
|
||||
box->Depth = 500;
|
||||
box->Width = 200;
|
||||
box->Height = 5;
|
||||
box->Depth = 200;
|
||||
|
||||
auto physics = AddComponent<Components::Physics>(ground, "Physics");
|
||||
physics->Mass = 10;
|
||||
physics->Static = true;
|
||||
|
||||
CommitEntity(ground);
|
||||
}
|
||||
|
||||
{
|
||||
auto TankTest = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(TankTest, "Transform");
|
||||
transform->Position = glm::vec3(1.5f, 0.7f, 5.f);
|
||||
|
||||
auto model = AddComponent<Components::Model>(TankTest, "Model");
|
||||
model->ModelFile = "Models/Placeholders/tank/Chassi.obj";
|
||||
CommitEntity(TankTest);
|
||||
{
|
||||
auto jeep = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(jeep, "Transform");
|
||||
transform->Position = glm::vec3(0, 2, 0);
|
||||
|
||||
auto physics = AddComponent<Components::Physics>(jeep, "Physics");
|
||||
physics->Mass = 1200;
|
||||
auto box = AddComponent<Components::Box>(jeep, "Box");
|
||||
box->Width = 1.487f;
|
||||
box->Height = 0.727f;
|
||||
box->Depth = 2.594f;
|
||||
auto vehicle = AddComponent<Components::Vehicle>(jeep, "Vehicle");
|
||||
|
||||
AddComponent<Components::Input>(jeep, "Input");
|
||||
|
||||
{
|
||||
auto chassis = CreateEntity(jeep);
|
||||
auto transform = AddComponent<Components::Transform>(chassis, "Transform");
|
||||
transform->Position = glm::vec3(0, -0.6577f, 0);
|
||||
auto model = AddComponent<Components::Model>(chassis, "Model");
|
||||
model->ModelFile = "Models/JeepV2/Chassi/chassi.OBJ";
|
||||
|
||||
}
|
||||
|
||||
{
|
||||
auto wheel = CreateEntity(jeep);
|
||||
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||
transform->Position = glm::vec3(1.4f, 0.5546f - 0.6577f - 0.2, -0.9242f);
|
||||
transform->Scale = glm::vec3(1.0f);
|
||||
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||
model->ModelFile = "Models/JeepV2/WheelFront/wheelFront.obj";
|
||||
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||
Wheel->AxleID = 0;
|
||||
Wheel->Mass = 50;
|
||||
Wheel->Radius = 0.837f;
|
||||
Wheel->Steering = true;
|
||||
Wheel->SuspensionStrength = 40.f;
|
||||
Wheel->Friction = 4.0f;
|
||||
Wheel->ConnectedToHandbrake = true;
|
||||
CommitEntity(wheel);
|
||||
}
|
||||
|
||||
{
|
||||
auto wheel = CreateEntity(jeep);
|
||||
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||
transform->Position = glm::vec3(-1.4f, 0.5546f - 0.6577f - 0.2, -0.9242f);
|
||||
transform->Scale = glm::vec3(1.0f);
|
||||
transform->Orientation = glm::angleAxis(glm::pi<float>(), glm::vec3(0, 0, 1));
|
||||
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||
model->ModelFile = "Models/JeepV2/WheelFront/wheelFront.obj";
|
||||
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||
Wheel->AxleID = 0;
|
||||
Wheel->Mass = 50;
|
||||
Wheel->Radius = 0.837f;
|
||||
Wheel->Steering = true;
|
||||
Wheel->SuspensionStrength = 40.f;
|
||||
Wheel->Friction = 4.0f;
|
||||
Wheel->ConnectedToHandbrake = true;
|
||||
CommitEntity(wheel);
|
||||
}
|
||||
|
||||
{
|
||||
auto wheel = CreateEntity(jeep);
|
||||
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||
transform->Position = glm::vec3(0.2726f, 0.2805f - 0.6577f, 1.9307f);
|
||||
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||
model->ModelFile = "Models/JeepV2/WheelBack/wheelBack.obj";
|
||||
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||
Wheel->AxleID = 1;
|
||||
Wheel->Mass = 10;
|
||||
Wheel->Radius = 0.737f;
|
||||
Wheel->Steering = false;
|
||||
Wheel->SuspensionStrength = 50.f;
|
||||
Wheel->Friction = 4.0f;
|
||||
CommitEntity(wheel);
|
||||
}
|
||||
|
||||
{
|
||||
auto wheel = CreateEntity(jeep);
|
||||
auto transform = AddComponent<Components::Transform>(wheel, "Transform");
|
||||
transform->Position = glm::vec3(-0.2726f, 0.2805f - 0.6577f, 1.9307f);
|
||||
transform->Orientation = glm::angleAxis(glm::pi<float>(), glm::vec3(0, 0, 1));
|
||||
auto model = AddComponent<Components::Model>(wheel, "Model");
|
||||
model->ModelFile = "Models/JeepV2/WheelBack/wheelBack.obj";
|
||||
auto Wheel = AddComponent<Components::Wheel>(wheel, "Wheel");
|
||||
Wheel->Hardpoint = transform->Position + glm::vec3(0.f, 1.f, 0.f);
|
||||
Wheel->AxleID = 1;
|
||||
Wheel->Mass = 10;
|
||||
Wheel->Radius = 0.737f;
|
||||
Wheel->Steering = false;
|
||||
Wheel->SuspensionStrength = 50.f;
|
||||
Wheel->Friction = 4.0f;
|
||||
CommitEntity(wheel);
|
||||
}
|
||||
CommitEntity(jeep);
|
||||
}
|
||||
|
||||
/*for(int i = 0; i < 83; i++)
|
||||
/*
|
||||
|
||||
{
|
||||
// Front Right Wheel
|
||||
auto ent = CreateEntity(car);
|
||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||
transform->Position = glm::vec3(1.1f, -1.5f, -1.3f);
|
||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, -1.3f);// HACK: make into component
|
||||
Wheel->AxleID = 0;
|
||||
Wheel->Mass = 10;
|
||||
Wheel->Radius = 0.5f;
|
||||
Wheel->Steering = true;
|
||||
Wheel->SuspensionStrength = 20.f;
|
||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||
CommitEntity(ent);
|
||||
}
|
||||
{
|
||||
// Front Left Wheel
|
||||
auto ent = CreateEntity(car);
|
||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||
transform->Position = glm::vec3(-1.1f, -1.5f, -1.3f);
|
||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, -1.3f);
|
||||
Wheel->AxleID = 0;
|
||||
Wheel->Mass = 10;
|
||||
Wheel->Radius = 0.5f;
|
||||
Wheel->Steering = true;
|
||||
Wheel->SuspensionStrength = 20.f;
|
||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||
CommitEntity(ent);
|
||||
}
|
||||
{
|
||||
// Back Right Wheel
|
||||
auto ent = CreateEntity(car);
|
||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||
transform->Position = glm::vec3(1.1f, -1.5f, 1.3f);
|
||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||
Wheel->Hardpoint = glm::vec3(1.1f, 0.f, 1.3f);
|
||||
Wheel->AxleID = 1;
|
||||
Wheel->Mass = 10;
|
||||
Wheel->Radius = 0.5f;
|
||||
Wheel->Steering = false;
|
||||
Wheel->ConnectedToHandbrake = true;
|
||||
Wheel->SuspensionStrength = 20.f;
|
||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||
CommitEntity(ent);
|
||||
}
|
||||
{
|
||||
// Back Left Wheel
|
||||
auto ent = CreateEntity(car);
|
||||
auto transform = AddComponent<Components::Transform>(ent, "Transform");
|
||||
transform->Scale = glm::vec3(1)/glm::vec3(3, 1, 5);
|
||||
transform->Position = glm::vec3(-1.1f, -1.5f, 1.3f);
|
||||
auto Wheel = AddComponent<Components::Wheel>(ent, "Wheel");
|
||||
Wheel->Hardpoint = glm::vec3(-1.1f, 0.f, 1.3f);
|
||||
Wheel->AxleID = 1;
|
||||
Wheel->Mass = 10;
|
||||
Wheel->Radius = 0.5f;
|
||||
Wheel->Steering = false;
|
||||
Wheel->ConnectedToHandbrake = true;
|
||||
Wheel->SuspensionStrength = 20.f;
|
||||
auto model = AddComponent<Components::Model>(ent, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||
CommitEntity(ent);
|
||||
}
|
||||
|
||||
CommitEntity(car);
|
||||
}
|
||||
*/
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
auto light = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(light, "Transform");
|
||||
transform->Position = glm::vec3((float)(2*i)*glm::sin((float)i), 3, (float)(2*i)*glm::cos((float)i));
|
||||
|
||||
auto pointLight = AddComponent<Components::PointLight>(light, "PointLight");
|
||||
pointLight->Specular = glm::vec3(0.1f, 0.1f, 0.1f);
|
||||
pointLight->Diffuse = glm::vec3(0.05f, 0.36f, 1.f);
|
||||
pointLight->constantAttenuation = 0.03f;
|
||||
pointLight->linearAttenuation = 0.009f;
|
||||
pointLight->quadraticAttenuation = 0.07f;
|
||||
pointLight->spotExponent = 0.0f;
|
||||
|
||||
auto model = AddComponent<Components::Model>(light, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/PointLight.obj";
|
||||
CommitEntity(light);
|
||||
}
|
||||
|
||||
for(int i = 0; i < 500; i++)
|
||||
{
|
||||
auto ball = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(ball, "Transform");
|
||||
transform->Position = glm::vec3(i/5.f, 5 + i*2, i/5.f);
|
||||
transform->Scale = glm::vec3(1.0f, 1.0f, 1.0f);
|
||||
auto cube = CreateEntity();
|
||||
auto transform = AddComponent<Components::Transform>(cube, "Transform");
|
||||
transform->Position = glm::vec3(20, 10 + i * 2, 0);
|
||||
transform->Scale = glm::vec3(1);
|
||||
transform->Orientation = glm::quat(glm::vec3(0.0f, 0.0f, 0.0f));
|
||||
auto model = AddComponent<Components::Model>(ball, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Sphere.obj";
|
||||
auto sphere = AddComponent<Components::Sphere>(ball, "Sphere");
|
||||
sphere->Radius = 0.5;
|
||||
auto physics = AddComponent<Components::Physics>(ball, "Physics");
|
||||
physics->Mass = 1;
|
||||
CommitEntity(ball);
|
||||
}*/
|
||||
auto model = AddComponent<Components::Model>(cube, "Model");
|
||||
model->ModelFile = "Models/Placeholders/PhysicsTest/Cube2.obj";
|
||||
|
||||
auto physics = AddComponent<Components::Physics>(cube, "Physics");
|
||||
physics->Mass = 100;
|
||||
auto box = AddComponent<Components::Box>(cube, "Box");
|
||||
box->Width = 0.5f;
|
||||
box->Height = 0.5f;
|
||||
box->Depth = 0.5f;
|
||||
CommitEntity(cube);
|
||||
}
|
||||
|
||||
{
|
||||
auto entity = CreateEntity();
|
||||
@@ -106,6 +259,7 @@ void GameWorld::Initialize()
|
||||
emitter->Path = "Sounds/korvring.wav";
|
||||
emitter->Loop = true;
|
||||
//GetSystem<Systems::SoundSystem>("SoundSystem")->PlaySound(emitter);
|
||||
CommitEntity(entity);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -118,8 +272,6 @@ void GameWorld::RegisterComponents()
|
||||
{
|
||||
m_ComponentFactory.Register("Transform", []() { return new Components::Transform(); });
|
||||
m_ComponentFactory.Register("Template", []() { return new Components::Template(); });
|
||||
m_ComponentFactory.Register("Sphere", []() { return new Components::Sphere(); });
|
||||
m_ComponentFactory.Register("Box", []() { return new Components::Box (); });
|
||||
}
|
||||
|
||||
void GameWorld::RegisterSystems()
|
||||
|
||||
Reference in New Issue
Block a user