diff --git a/src/entities/Camera.cpp b/src/entities/Camera.cpp index d2b38cf..16a3ff9 100644 --- a/src/entities/Camera.cpp +++ b/src/entities/Camera.cpp @@ -33,12 +33,14 @@ namespace entities if (glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS) { - rotation.x -= ROT_SPEED; + //rotation.x -= ROT_SPEED; + position.y += 5; } if (glfwGetKey(window, GLFW_KEY_LEFT_SHIFT) == GLFW_PRESS) { - rotation.x += ROT_SPEED; + //rotation.x += ROT_SPEED; + position.y -= 5; } float dx = glm::cos(glm::radians(rotation.y + 90)) * movement_speed; diff --git a/src/entities/Camera.h b/src/entities/Camera.h index a47af65..46797f4 100644 --- a/src/entities/Camera.h +++ b/src/entities/Camera.h @@ -13,7 +13,7 @@ namespace entities { private: // The movement speed of the camera - const float SPEED = 0.52f; + const float SPEED = 2.0f; const float ROT_SPEED = 1.0f; glm::vec3 position; diff --git a/src/entities/HouseGenerator.cpp b/src/entities/HouseGenerator.cpp deleted file mode 100644 index 0767071..0000000 --- a/src/entities/HouseGenerator.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include "HouseGenerator.h" - -#include -#include - -#include "../renderEngine/obj_loader.h" -#include "../renderEngine/Loader.h" -#include "../toolbox/toolbox.h" -#include "collision_entity.h" - -namespace entities -{ - HouseGenerator::HouseGenerator() - { - models::RawModel raw_model = render_engine::LoadObjModel("res/HouseNew.obj"); - default_texture = { render_engine::loader::LoadTexture("res/Texture.png") }; - default_texture.shine_damper = 10; - house_model = { raw_model, default_texture }; - - GenerateFurnitureModels(); - } - - std::deque> HouseGenerator::GenerateHouse(const glm::vec3& position, float y_rotation) - { - std::deque> furniture; - - // Add house - furniture.push_front(std::make_shared(house_model, position, glm::vec3(0, y_rotation, 0), HOUSE_SIZE)); - - // Add furniture - models::TexturedModel couch = GetFurnitureModel(FurnitureType::COUCH); - glm::vec3 couchPos = glm::vec3(position.x, position.y + 20, position.z + 10); - collision::Box couchBox = { couchPos, couch.raw_model.model_size }; - couchBox.SetRotation(90); - furniture.push_back(std::make_shared(couch, couchPos, glm::vec3(0, 0, 0), HOUSE_SIZE, couchBox)); - - return furniture; - } - - models::TexturedModel HouseGenerator::GetFurnitureModel(FurnitureType furniture) - { - const auto found = furniture_models.find(furniture); - if (found == furniture_models.end()) - { - std::cerr << "OH NEEEEEEEEEEEEEEE"; - } - - auto models = found->second; - - const int modelNumber = toolbox::Random(0, models.size() - 1); - - return models[modelNumber]; - } - - void HouseGenerator::GenerateFurnitureModels() - { - // Couches - std::deque couches; - - models::RawModel couch_inside_model = render_engine::LoadObjModel("res/couchThree.obj"); - models::TexturedModel couch_inside = { couch_inside_model, default_texture }; - couches.push_back(couch_inside); - - furniture_models.insert(std::pair>(FurnitureType::COUCH, couches)); - } -} diff --git a/src/entities/house_generator.cpp b/src/entities/house_generator.cpp new file mode 100644 index 0000000..f868920 --- /dev/null +++ b/src/entities/house_generator.cpp @@ -0,0 +1,116 @@ +#include "house_generator.h" + +#include +#include + +#include "../renderEngine/obj_loader.h" +#include "../renderEngine/Loader.h" +#include "../toolbox/toolbox.h" +#include "collision_entity.h" + +namespace entities +{ + HouseGenerator::HouseGenerator() + { + models::RawModel raw_model = render_engine::LoadObjModel("res/HouseNew.obj"); + default_texture = { render_engine::loader::LoadTexture("res/Texture.png") }; + default_texture.shine_damper = 10; + house_model = { raw_model, default_texture }; + + GenerateFurnitureModels(); + } + + std::deque> HouseGenerator::GenerateHouse(const glm::vec3& position, float y_rotation) + { + std::deque> furniture; + + // Add house + furniture.push_front(std::make_shared(house_model, position, glm::vec3(0, y_rotation, 0), HOUSE_SIZE)); + + // Add furniture + models::TexturedModel couch = GetFurnitureModel(FurnitureType::COUCH); + glm::vec3 couch_pos = glm::vec3(position.x + 200, position.y, position.z + 10); + collision::Box couch_box = { couch_pos, couch.raw_model.model_size }; + couch_box.SetRotation(-90); + furniture.push_back(std::make_shared(couch, couch_pos, glm::vec3(0, -90, 0), HOUSE_SIZE * 2, couch_box)); + + models::TexturedModel table = GetFurnitureModel(FurnitureType::TABLE); + glm::vec3 table_pos = glm::vec3(position.x - 30, position.y, position.z); + collision::Box table_box = { table_pos, table.raw_model.model_size }; + furniture.push_back(std::make_shared(table, table_pos, glm::vec3(0, 0, 0), HOUSE_SIZE * 1.3, table_box)); + + models::TexturedModel chair = GetFurnitureModel(FurnitureType::CHAIR); + glm::vec3 chair_pos = glm::vec3(position.x - 50, position.y, position.z + 220); + collision::Box chair_box = { chair_pos, chair.raw_model.model_size }; + furniture.push_back(std::make_shared(chair, chair_pos, glm::vec3(0, 0, 0), HOUSE_SIZE, chair_box)); + + return furniture; + } + + models::TexturedModel HouseGenerator::GetFurnitureModel(FurnitureType furniture) + { + const auto found = furniture_models.find(furniture); + if (found == furniture_models.end()) + { + std::cerr << "OH NEEEEEEEEEEEEEEE"; + } + + auto models = found->second; + + const int modelNumber = toolbox::Random(0, models.size() - 1); + + return models[modelNumber]; + } + + void HouseGenerator::GenerateFurnitureModels() + { + // Couches + std::deque couches; + + models::RawModel couch_inside_model = render_engine::LoadObjModel("res/couchThree.obj"); + models::TexturedModel couch_inside = { couch_inside_model, default_texture }; + couches.push_back(couch_inside); + + models::RawModel couch_inside_model2 = render_engine::LoadObjModel("res/Coach.obj"); + models::TexturedModel couch_inside2 = { couch_inside_model2, default_texture }; + couches.push_back(couch_inside2); + + models::RawModel couch_inside_model3 = render_engine::LoadObjModel("res/lawnBenchOne.obj"); + models::TexturedModel couch_inside3 = { couch_inside_model3, default_texture }; + couches.push_back(couch_inside3); + + furniture_models.insert(std::pair>(FurnitureType::COUCH, couches)); + + // Tables + std::deque tables; + + models::RawModel table_model1 = render_engine::LoadObjModel("res/tableOne.obj"); + models::TexturedModel table1 = { table_model1, default_texture }; + tables.push_back(table1); + + models::RawModel table_model2 = render_engine::LoadObjModel("res/tableTwo.obj"); + models::TexturedModel table2 = { table_model2, default_texture }; + tables.push_back(table2); + + furniture_models.insert(std::pair>(FurnitureType::TABLE, tables)); + + // Chairs + std::deque chairs; + + models::RawModel chair_model1 = render_engine::LoadObjModel("res/launchchair.obj"); + models::TexturedModel chair1 = { chair_model1, default_texture }; + chairs.push_back(chair1); + + models::RawModel chair_model2 = render_engine::LoadObjModel("res/lawnChairOne.obj"); + models::TexturedModel chair2 = { chair_model2, default_texture }; + chairs.push_back(chair2); + + models::RawModel chair_model3 = render_engine::LoadObjModel("res/ugly_chair.obj"); + models::TexturedModel chair3 = { chair_model3, default_texture }; + chairs.push_back(chair3); + + // Plants + + furniture_models.insert(std::pair>(FurnitureType::CHAIR, chairs)); + } +} diff --git a/src/entities/HouseGenerator.h b/src/entities/house_generator.h similarity index 98% rename from src/entities/HouseGenerator.h rename to src/entities/house_generator.h index 7495f24..dad3f76 100644 --- a/src/entities/HouseGenerator.h +++ b/src/entities/house_generator.h @@ -10,7 +10,9 @@ namespace entities { enum class FurnitureType { - COUCH + COUCH, + TABLE, + CHAIR }; class HouseGenerator diff --git a/src/main.cpp b/src/main.cpp index b6f5604..cd145fe 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -37,16 +37,6 @@ scene::Scene* current_scene; int main(void) { - - collision::Box box = { glm::vec3(0, 0, 0), glm::vec3(5, 2, 10) }; - box.SetRotation(180); - std::cout << box.size.x << std::endl; - std::cout << box.size.y << std::endl; - std::cout << box.size.z << std::endl; - - return 0; - - #pragma region OPENGL_SETTINGS if (!glfwInit()) throw "Could not inditialize glwf"; diff --git a/src/scenes/in_Game_Scene.cpp b/src/scenes/in_Game_Scene.cpp index 9c3284d..7f53413 100644 --- a/src/scenes/in_Game_Scene.cpp +++ b/src/scenes/in_Game_Scene.cpp @@ -10,7 +10,7 @@ #include "../renderEngine/renderer.h" #include "../shaders/entity_shader.h" #include "../toolbox/toolbox.h" -#include "../entities/HouseGenerator.h" +#include "../entities/house_generator.h" #include #include #include @@ -31,7 +31,7 @@ namespace scene models::ModelTexture texture; shaders::EntityShader* shader; shaders::GuiShader* gui_shader; - entities::Camera camera(glm::vec3(0, 0, 0), glm::vec3(0, 0, 0)); + entities::Camera camera(glm::vec3(0, -50, 0), glm::vec3(0, 0, 0)); std::vector guis; diff --git a/wk2_fps.vcxproj b/wk2_fps.vcxproj index f5db84e..d8fb3c7 100644 --- a/wk2_fps.vcxproj +++ b/wk2_fps.vcxproj @@ -20,7 +20,7 @@ - + @@ -44,7 +44,7 @@ - + diff --git a/wk2_fps.vcxproj.filters b/wk2_fps.vcxproj.filters index 3057d3f..0ab51e8 100644 --- a/wk2_fps.vcxproj.filters +++ b/wk2_fps.vcxproj.filters @@ -75,7 +75,7 @@ Source Files - + Source Files @@ -158,7 +158,7 @@ Header Files - + Header Files