diff --git a/assets b/assets index 637f866..c2ee1b0 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 637f866e2d220a1c063f7de2d9f64863643d686f +Subproject commit c2ee1b0198931f1fc62f07533aa5d25dfa86ecc8 diff --git a/src/GameWorld.cpp b/src/GameWorld.cpp index 4f3d9fd..acf8db1 100755 --- a/src/GameWorld.cpp +++ b/src/GameWorld.cpp @@ -513,12 +513,15 @@ void GameWorld::BindGamepadButton(Gamepad::Button button, std::string command, f EventBroker->Publish(e); } -void GameWorld::CreateGate(glm::vec3 Position) +void GameWorld::CreateGate(EntityID parent, glm::vec3 position, glm::quat orientation) { + auto gateParent = CreateEntity(parent); + auto transform = AddComponent(gateParent); + transform->Position = position; + transform->Orientation = orientation; { - auto gateBase = CreateEntity(); + auto gateBase = CreateEntity(gateParent); auto transform = AddComponent(gateBase); - transform->Position = Position; auto model = AddComponent(gateBase); model->ModelFile = "Models/Gate/Lift/Lift.obj"; auto physics = AddComponent(gateBase); @@ -577,10 +580,9 @@ void GameWorld::CreateGate(glm::vec3 Position) CommitEntity(gateBase); } + auto gate = CreateEntity(gateParent); { - auto gate = CreateEntity(); auto transform = AddComponent(gate); - transform->Position = Position; auto model = AddComponent(gate); model->ModelFile = "Models/Gate/Gate/Gate.obj"; auto physics = AddComponent(gate); @@ -588,8 +590,8 @@ void GameWorld::CreateGate(glm::vec3 Position) physics->CollisionLayer = (int)Components::Physics::CollisionLayer::STATIC; auto move = AddComponent(gate); move->Speed = 5.f; - move->GoalPosition = glm::vec3(Position.x, Position.y + 9.02345f, Position.z); - move->StartPosition = glm::vec3(Position.x, Position.y, Position.z); + move->GoalPosition = glm::vec3(0, 9.02345f, 0); + move->StartPosition = glm::vec3(0, 0, 0); { auto mainShape = CreateEntity(gate); auto transform = AddComponent(mainShape); @@ -611,29 +613,27 @@ void GameWorld::CreateGate(glm::vec3 Position) CommitEntity(lowerShape); } CommitEntity(gate); + } + + { + auto gateTrigger = CreateEntity(gateParent); + auto transform = AddComponent(gateTrigger); + transform->Position = glm::vec3(0, 2.8241, 0); + auto trigger = AddComponent(gateTrigger); + auto triggerMove = AddComponent(gateTrigger); + triggerMove->Entity = gate; { - auto gateTrigger = CreateEntity(); - auto transform = AddComponent(gateTrigger); - transform->Position = glm::vec3(Position.x, Position.y + 2.8241, Position.z); - auto trigger = AddComponent(gateTrigger); - auto triggerMove = AddComponent(gateTrigger); - triggerMove->Entity = gate; - - - { - auto shape = CreateEntity(gateTrigger); - auto transform = AddComponent(shape); - transform->Position = glm::vec3(0.f, 2.8241f, 0.f); - auto box = AddComponent(shape); - box->Width = 6.963f; - box->Height = 3.104f; - box->Depth = 10.356f; - CommitEntity(shape); - } - CommitEntity(gateTrigger); + auto shape = CreateEntity(gateTrigger); + auto transform = AddComponent(shape); + transform->Position = glm::vec3(0.f, 2.8241f, 0.f); + auto box = AddComponent(shape); + box->Width = 6.963f; + box->Height = 3.104f; + box->Depth = 10.356f; + CommitEntity(shape); } - + CommitEntity(gateTrigger); } } @@ -949,7 +949,7 @@ void GameWorld::CreateBase(glm::quat orientation, int playerID) auto base = CreateEntity(); auto transform = AddComponent(base); transform->Orientation = orientation; - +#pragma region Terrain { auto ground_small = CreateEntity(base); auto transform = AddComponent(ground_small); @@ -1012,7 +1012,7 @@ void GameWorld::CreateBase(glm::quat orientation, int playerID) auto shape = CreateEntity(bridge_middle); auto transformshape = AddComponent(shape); auto meshShape = AddComponent(shape); - meshShape->ResourceName = "Models/TerrainFiveIstles/Bridges/MiddleBridge.obj"; + meshShape->ResourceName = "Models/TerrainFiveIstles/Bridges/MiddleBridgeCollision.obj"; CommitEntity(shape); } CommitEntity(bridge_middle); @@ -1105,6 +1105,9 @@ void GameWorld::CreateBase(glm::quat orientation, int playerID) } CommitEntity(bridge_base); } +#pragma endregion Terrain + + CreateGate(base, glm::vec3(273.f, 40.185f, 0.06f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); CreateGarage(base, glm::vec3(323.2f, 41.4f, -10.2f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0)), playerID); } diff --git a/src/GameWorld.h b/src/GameWorld.h index 20b3e98..15a4fd9 100755 --- a/src/GameWorld.h +++ b/src/GameWorld.h @@ -78,7 +78,7 @@ private: void BindGamepadAxis(Gamepad::Axis axis, std::string command, float value); void BindGamepadButton(Gamepad::Button button, std::string command, float value); - void CreateGate(glm::vec3 Position); + void CreateGate(EntityID parent, glm::vec3 position, glm::quat orientation); void AddTankWheelPair(EntityID tankEntity, glm::vec3 position, int axleID, bool steering); EntityID CreateJeep(int playerID); EntityID CreateWall(glm::vec3 pos, glm::quat orientation);