Develop into master #9

Merged
SemvdH merged 126 commits from develop into main 2021-06-18 15:56:41 +00:00
2 changed files with 57 additions and 33 deletions
Showing only changes of commit 24285b9714 - Show all commits

View File

@@ -35,34 +35,57 @@ namespace entities
return nullptr; return nullptr;
} }
const FurniturePiece* HouseGenerator::GetFurniturePiece(FurnitureType type)
{
for (std::deque<FurnitureModel>::iterator it = furniture_models.begin(); it != furniture_models.end(); ++it)
{
if (it->furniture.type == type)
{
return &it->furniture;
}
}
return nullptr;
}
std::deque<std::shared_ptr<Entity>> HouseGenerator::GenerateHouse(const glm::vec3& position, float y_rotation) std::deque<std::shared_ptr<Entity>> HouseGenerator::GenerateHouse(const glm::vec3& position, float y_rotation)
{ {
std::deque<std::shared_ptr<Entity>> furniture; std::deque<std::shared_ptr<Entity>> furniture;
// Add house // Add house
furniture.push_front(std::make_shared<Entity>(house_model, position, glm::vec3(0, y_rotation, 0), HOUSE_SIZE)); furniture.push_front(std::make_shared<Entity>(house_model, position, glm::vec3(0, y_rotation, 0), HOUSE_SIZE));
int house_size = house_model.raw_model.model_size.x * HOUSE_SIZE; int house_size_x = house_model.raw_model.model_size.x * HOUSE_SIZE;
int house_size_y = house_model.raw_model.model_size.x * HOUSE_SIZE;
int house_size_z = house_model.raw_model.model_size.x * HOUSE_SIZE;
int offset_x = house_model.raw_model.model_size.z * (HOUSE_SIZE / 2); int offset_x = house_model.raw_model.model_size.z * (HOUSE_SIZE / 2);
int offset_z = house_model.raw_model.model_size.x * (HOUSE_SIZE / 2); int offset_z = house_model.raw_model.model_size.x * (HOUSE_SIZE / 2);
double multiplier_x = house_size/2; double multiplier_x = house_size_x / 2;
double multiplier_z = house_size / 3; double multiplier_z = house_size_z / 3;
for (int z = 1; z < 4; z++) { for (int z = 1; z < 4; z++) {
for (int x = 1; x < 3; x++) for (int x = 1; x < 3; x++)
{ {
if (toolbox::Random(0, 100) < 50) { if (toolbox::Random(0, 100) < 90) {
const FurniturePiece* furniture_piece = GetRandomFurniturePiece(); const FurniturePiece* furniture_piece = GetRandomFurniturePiece();
if (furniture_piece->type != FurnitureType::CEILING_OBJECTS) {
models::TexturedModel model = GetFurnitureModel(furniture_piece); models::TexturedModel model = GetFurnitureModel(furniture_piece);
//if (//check of size van furniture nog past in huidige grid vlakje, of ie geen 2 size op t laatste vakje neerzet) { if (!(furniture_piece->size > 1 && x > 1)) {
glm::vec3 model_pos = glm::vec3(position.x + (x * multiplier_x) - (multiplier_x / 2) - offset_x, position.y, position.z + (z * multiplier_z) - (multiplier_z / 2) + offset_z); glm::vec3 model_pos = glm::vec3(position.x + (x * multiplier_x) - (multiplier_x / 2) - offset_x, position.y, position.z + (z * multiplier_z) - (multiplier_z / 2) + offset_z);
collision::Box model_box = { model_pos, model.raw_model.model_size }; collision::Box model_box = { model_pos, model.raw_model.model_size };
model_box.SetRotation(-90); model_box.SetRotation(-90);
furniture.push_back(std::make_shared<CollisionEntity>(model, model_pos, glm::vec3(0, -90, 0), HOUSE_SIZE, model_box)); furniture.push_back(std::make_shared<CollisionEntity>(model, model_pos, glm::vec3(0, -90, 0), HOUSE_SIZE, model_box));
//}
} }
} }
} }
}
}
models::TexturedModel model = GetFurnitureModel(GetFurniturePiece(FurnitureType::CEILING_OBJECTS));
glm::vec3 model_pos = glm::vec3(position.x, position.y + (house_size_y/5 *3), position.z);
collision::Box model_box = { model_pos, model.raw_model.model_size };
model_box.SetRotation(-90);
furniture.push_back(std::make_shared<CollisionEntity>(model, model_pos, glm::vec3(0, -90, 0), HOUSE_SIZE, model_box));
return furniture; return furniture;

View File

@@ -69,6 +69,7 @@ namespace entities
private: private:
const FurniturePiece* GetRandomFurniturePiece(); const FurniturePiece* GetRandomFurniturePiece();
const FurniturePiece* GetFurniturePiece(FurnitureType type);
/* /*
* @brief: This function loads all the 3D furniture models * @brief: This function loads all the 3D furniture models