aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-07-01 21:25:31 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-07-01 21:25:31 +0300
commit7b290660ead5e9cfc7ee2762217212ff995a6c85 (patch)
tree02418d6b8b00aafa719e89d4c6cfc5234b71c6b1 /src
parent71f5d4b3443c6ea770463838a2c84b85d9fa3b21 (diff)
downloadminetest-7b290660ead5e9cfc7ee2762217212ff995a6c85.tar.gz
minetest-7b290660ead5e9cfc7ee2762217212ff995a6c85.tar.bz2
minetest-7b290660ead5e9cfc7ee2762217212ff995a6c85.zip
made screen go slightly blue when underwater
Diffstat (limited to 'src')
-rw-r--r--src/client.h9
-rw-r--r--src/environment.cpp16
-rw-r--r--src/environment.h3
-rw-r--r--src/game.cpp7
4 files changed, 35 insertions, 0 deletions
diff --git a/src/client.h b/src/client.h
index bd838fee0..0150b687e 100644
--- a/src/client.h
+++ b/src/client.h
@@ -292,6 +292,15 @@ public:
{
return m_access_denied_reason;
}
+
+ /*
+ This should only be used for calling the special drawing stuff in
+ ClientEnvironment
+ */
+ ClientEnvironment * getEnv()
+ {
+ return &m_env;
+ }
private:
diff --git a/src/environment.cpp b/src/environment.cpp
index ac78107a3..d55aa38d1 100644
--- a/src/environment.cpp
+++ b/src/environment.cpp
@@ -1865,6 +1865,22 @@ ClientEnvEvent ClientEnvironment::getClientEvent()
return m_client_event_queue.pop_front();
}
+void ClientEnvironment::drawPostFx(video::IVideoDriver* driver, v3f camera_pos)
+{
+ /*LocalPlayer *player = getLocalPlayer();
+ assert(player);
+ v3f pos_f = player->getPosition() + v3f(0,BS*1.625,0);*/
+ v3f pos_f = camera_pos;
+ v3s16 p_nodes = floatToInt(pos_f, BS);
+ MapNode n = m_map->getNodeNoEx(p_nodes);
+ if(n.d == CONTENT_WATER || n.d == CONTENT_WATERSOURCE)
+ {
+ v2u32 ss = driver->getScreenSize();
+ core::rect<s32> rect(0,0, ss.X, ss.Y);
+ driver->draw2DRectangle(video::SColor(64, 100, 100, 200), rect);
+ }
+}
+
#endif // #ifndef SERVER
diff --git a/src/environment.h b/src/environment.h
index ce6b5ae1e..b6767858a 100644
--- a/src/environment.h
+++ b/src/environment.h
@@ -406,6 +406,9 @@ public:
// Get event from queue. CEE_NONE is returned if queue is empty.
ClientEnvEvent getClientEvent();
+
+ // Post effects
+ void drawPostFx(video::IVideoDriver* driver, v3f camera_pos);
private:
ClientMap *m_map;
diff --git a/src/game.cpp b/src/game.cpp
index 30206bf40..faadd0fe7 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -2241,6 +2241,13 @@ void the_game(
core::rect<s32>(0,0,screensize.X,screensize.Y),
NULL);
}
+
+ /*
+ Environment post fx
+ */
+ {
+ client.getEnv()->drawPostFx(driver, camera_position);
+ }
/*
End scene