diff --git a/assets b/assets index 26839b6..5d9a060 160000 --- a/assets +++ b/assets @@ -1 +1 @@ -Subproject commit 26839b66e2dd3e867332fde0bd20ec138a2a0247 +Subproject commit 5d9a060c492d62593435891c817de98ad6abdef7 diff --git a/src/GameWorld.cpp b/src/GameWorld.cpp index 07bab79..6c238fb 100755 --- a/src/GameWorld.cpp +++ b/src/GameWorld.cpp @@ -723,6 +723,21 @@ void GameWorld::CreateTerrain() CommitEntity(groundshape); } CommitEntity(water);*/ + + { + auto water = CreateEntity(); + auto transform = AddComponent(water); + + { + auto waves = CreateEntity(water); + auto transform = AddComponent(water); + auto model = AddComponent(water); + model->ModelFile = "Models/Water/Waves.obj"; + CommitEntity(waves); + } + + CommitEntity(water); + } } { @@ -754,6 +769,14 @@ void GameWorld::CreateTerrain() CommitEntity(ground_middle); } + { + auto decoration_middle = CreateEntity(); + auto transform = AddComponent(decoration_middle); + auto model = AddComponent(decoration_middle); + model->ModelFile = "Models/TerrainFiveIstles/Decoration/Middle.obj"; + CommitEntity(decoration_middle); + } + CreateBase(glm::quat(), 1); CreateBase(glm::quat(glm::vec3(0, glm::pi(), 0)), 2); @@ -830,6 +853,7 @@ void GameWorld::CreateBase(glm::quat orientation, int teamID) auto transform = AddComponent(base); transform->Orientation = orientation; #pragma region Terrain + { auto ground_small = CreateEntity(base); auto transform = AddComponent(ground_small); @@ -858,6 +882,14 @@ void GameWorld::CreateBase(glm::quat orientation, int teamID) CommitEntity(ground_small); } + { + auto decoration_small = CreateEntity(base); + auto transform = AddComponent(decoration_small); + auto model = AddComponent(decoration_small); + model->ModelFile = "Models/TerrainFiveIstles/Decoration/Small.obj"; + CommitEntity(decoration_small); + } + { auto road_small = CreateEntity(base); auto transform = AddComponent(road_small); @@ -952,6 +984,54 @@ void GameWorld::CreateBase(glm::quat orientation, int teamID) CommitEntity(bridge_middle); } + // Banners + std::string bannerModel = "Models/Banner/Blue/Blue.obj"; + if (teamID == 2) + { + bannerModel = "Models/Banner/Red/Red.obj"; + } + + { + auto banner = CreateEntity(base); + auto transform = AddComponent(banner); + transform->Position = glm::vec3(70.2f, 50.36f, -8.68f); + transform->Orientation = glm::quat(glm::vec3(0, glm::pi(), 0)); + auto model = AddComponent(banner); + model->ModelFile = bannerModel; + model->Transparent = true; + CommitEntity(banner); + } + { + auto banner = CreateEntity(base); + auto transform = AddComponent(banner); + transform->Position = glm::vec3(70.2f, 50.36f, 9.86f); + transform->Orientation = glm::quat(glm::vec3(0, glm::pi(), 0)); + auto model = AddComponent(banner); + model->ModelFile = bannerModel; + model->Transparent = true; + CommitEntity(banner); + } + { + auto banner = CreateEntity(base); + auto transform = AddComponent(banner); + transform->Position = glm::vec3(166.17f, 49.711f, -8.68f); + transform->Orientation = glm::quat(glm::vec3(0, glm::pi(), 0)); + auto model = AddComponent(banner); + model->ModelFile = bannerModel; + model->Transparent = true; + CommitEntity(banner); + } + { + auto banner = CreateEntity(base); + auto transform = AddComponent(banner); + auto model = AddComponent(banner); + transform->Position = glm::vec3(166.17f, 49.711f, 9.86f); + transform->Orientation = glm::quat(glm::vec3(0, glm::pi(), 0)); + model->ModelFile = bannerModel; + model->Transparent = true; + CommitEntity(banner); + } + { auto terrain_base = CreateEntity(base); @@ -1001,6 +1081,14 @@ void GameWorld::CreateBase(glm::quat orientation, int teamID) CommitEntity(ground_base); } + { + auto decoration_base = CreateEntity(base); + auto transform = AddComponent(decoration_base); + auto model = AddComponent(decoration_base); + model->ModelFile = "Models/TerrainFiveIstles/Decoration/Base.obj"; + CommitEntity(decoration_base); + } + { auto road_base = CreateEntity(base); auto transform = AddComponent(road_base); @@ -1086,7 +1174,22 @@ void GameWorld::CreateBase(glm::quat orientation, int teamID) } #pragma endregion Terrain - CreateGate(base, glm::vec3(273.f, 40.185f, 0.06f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0)), teamID); + // Small island + CreateGate(base, glm::vec3(113.59f, 29.02f, 0.32f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0)), teamID); + // Z + glm::quat yawRot = glm::angleAxis(glm::pi() / 2.f, glm::vec3(0, 1, 0)); + CreateWall(base, glm::vec3(113.59f, 28.79635f, 15.26201f), yawRot); // glm::quat(glm::vec3(glm::radians(-9.21f), 0, 0))); + CreateWall(base, glm::vec3(113.60f, 28.05425f, 24.41458f), glm::angleAxis(glm::radians(9.21f), glm::vec3(1, 0, 0)) * yawRot); + CreateWall(base, glm::vec3(113.61f, 25.42271f, 32.34383f), glm::angleAxis(glm::radians(27.f), glm::vec3(1, 0, 0)) * yawRot); + CreateWall(base, glm::vec3(113.62f, 20.54767f, 38.68277f), glm::angleAxis(glm::radians(47.9f), glm::vec3(1, 0, 0)) * yawRot); + // -Z + CreateWall(base, glm::vec3(113.59f, 28.734f, -13.85581f), glm::angleAxis(glm::radians(-3.634f), glm::vec3(1, 0, 0)) * yawRot); + CreateWall(base, glm::vec3(113.60f, 27.166f, -22.438f), glm::angleAxis(glm::radians(-17.202f), glm::vec3(1, 0, 0)) * yawRot); + CreateWall(base, glm::vec3(113.61f, 23.5952f, -30.50557f), glm::angleAxis(glm::radians(-30.638f), glm::vec3(1, 0, 0)) * yawRot); + CreateWall(base, glm::vec3(113.62f, 18.30851f, -36.56623f), glm::angleAxis(glm::radians(-51.542f), glm::vec3(1, 0, 0)) * yawRot); + + // -X + CreateGate(base, glm::vec3(273.f, 40.185f, 0.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0)), teamID); CreateWall(base, glm::vec3(273.f, 40.3f, -55.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); CreateWall(base, glm::vec3(273.f, 40.3f, -45.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); CreateWall(base, glm::vec3(273.f, 40.3f, -35.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); @@ -1095,6 +1198,37 @@ void GameWorld::CreateBase(glm::quat orientation, int teamID) CreateWall(base, glm::vec3(273.f, 40.3f, 15.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); CreateWall(base, glm::vec3(273.f, 40.3f, 25.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + // -Z + CreateWall(base, glm::vec3(280.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(290.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(300.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(310.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(320.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(330.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(340.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(350.f, 40.3f, -62.f), glm::quat(glm::vec3(0, 0, 0))); + + // X + CreateWall(base, glm::vec3(357.f, 40.3f, -55.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, -45.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, -35.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, -25.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, -15.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, -5.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, 5.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, 15.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + CreateWall(base, glm::vec3(357.f, 40.3f, 25.f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0))); + + // Z + CreateWall(base, glm::vec3(280.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(290.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(300.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(310.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(320.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(330.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(340.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateWall(base, glm::vec3(350.f, 40.3f, 32.f), glm::quat(glm::vec3(0, 0, 0))); + CreateGarage(base, glm::vec3(323.2f, 41.4f, -10.2f), glm::quat(glm::vec3(0, glm::pi() / 2.f, 0)), teamID); }