summaryrefslogtreecommitdiff
path: root/engine-ocean/Game/Environment/environmentsystem.cpp
blob: f94b804857c8904a74a66afb4ab4ad6301418a5d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include "environmentsystem.h"
#include "Game/Environment/grassenvironment.h"
#include "Game/Environment/skyboxenvironment.h"
#include "Game/Environment/water.h"

EnvironmentSystem::EnvironmentSystem(std::map<std::string, std::shared_ptr<GameObject>>& rigid_gameobjects,
                                     std::map<std::string, std::shared_ptr<GameObject>>& dynamic_gameobjects,
                                     std::shared_ptr<Camera> camera)
{
    addEnviron<GrassEnvironment>(std::make_shared<GrassEnvironment>(rigid_gameobjects, dynamic_gameobjects, camera));
    addEnviron<SkyboxEnvironment>(std::make_shared<SkyboxEnvironment>(camera));
    addEnviron<Water>(std::make_shared<Water>(camera));



}

void EnvironmentSystem::draw(){
    for (auto &environ : m_environs){
        environ.second->draw();
    }

}

void EnvironmentSystem::drawNonWater(){
    getEnviron<GrassEnvironment>()->draw();
    getEnviron<SkyboxEnvironment>()->draw();


}

void EnvironmentSystem::update(double deltaTime){
    for (auto &environ : m_environs){
        environ.second->update(deltaTime);
    }

}

void EnvironmentSystem::scrollEvent(double distance){}
void EnvironmentSystem::mousePosEvent(double xpos, double ypos) {}