aboutsummaryrefslogtreecommitdiff
path: root/src/environment.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2010-11-27 01:02:21 +0200
committerPerttu Ahola <celeron55@gmail.com>2010-11-27 01:02:21 +0200
commit4e249fb3fbf75f0359758760d88e22aa5b14533c (patch)
tree323087d05efbd2ace27b316d4f017cf812a31992 /src/environment.h
downloadhax-minetest-server-4e249fb3fbf75f0359758760d88e22aa5b14533c.tar.gz
hax-minetest-server-4e249fb3fbf75f0359758760d88e22aa5b14533c.zip
Initial files
Diffstat (limited to 'src/environment.h')
-rw-r--r--src/environment.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/src/environment.h b/src/environment.h
new file mode 100644
index 000000000..141511258
--- /dev/null
+++ b/src/environment.h
@@ -0,0 +1,50 @@
+#ifndef ENVIRONMENT_HEADER
+#define ENVIRONMENT_HEADER
+
+/*
+ This class is the game's environment.
+ It contains:
+ - The map
+ - Players
+ - Other objects
+ - The current time in the game, etc.
+*/
+
+#include <list>
+#include "common_irrlicht.h"
+#include "player.h"
+#include "map.h"
+#include <ostream>
+
+class Environment
+{
+public:
+ // Environment will delete the map passed to the constructor
+ Environment(Map *map, std::ostream &dout);
+ ~Environment();
+ /*
+ This can do anything to the environment, such as removing
+ timed-out players.
+ Also updates Map's timers.
+ */
+ void step(f32 dtime);
+
+ Map & getMap();
+ /*
+ Environment deallocates players after use.
+ */
+ void addPlayer(Player *player);
+ void removePlayer(u16 peer_id);
+ LocalPlayer * getLocalPlayer();
+ Player * getPlayer(u16 peer_id);
+ core::list<Player*> getPlayers();
+ void printPlayers(std::ostream &o);
+private:
+ Map *m_map;
+ core::list<Player*> m_players;
+ // Debug output goes here
+ std::ostream &m_dout;
+};
+
+#endif
+