]> git.lizzy.rs Git - minetest.git/blobdiff - src/environment.h
Make m_media_fetch_threads to contain MediaFetchThread* instead of MediaFetchThread
[minetest.git] / src / environment.h
index 04df9be48b8a4d08f30fc1d96638094332d6f80f..0cc53f9a6dccea2dc8f215f720def5f275a2288e 100644 (file)
@@ -3,16 +3,16 @@ Minetest-c55
 Copyright (C) 2010-2011 celeron55, Perttu Ahola <celeron55@gmail.com>
 
 This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
+it under the terms of the GNU Lesser General Public License as published by
+the Free Software Foundation; either version 2.1 of the License, or
 (at your option) any later version.
 
 This program is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+GNU Lesser General Public License for more details.
 
-You should have received a copy of the GNU General Public License along
+You should have received a copy of the GNU Lesser General Public License along
 with this program; if not, write to the Free Software Foundation, Inc.,
 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
@@ -31,12 +31,14 @@ with this program; if not, write to the Free Software Foundation, Inc.,
 */
 
 #include <set>
-#include "common_irrlicht.h"
+#include "irrlichttypes_extrabloated.h"
 #include "player.h"
-#include "map.h"
 #include <ostream>
-#include "utility.h"
 #include "activeobject.h"
+#include "util/container.h"
+#include "util/numeric.h"
+#include "mapnode.h"
+#include "mapblock.h"
 
 class Server;
 class ServerEnvironment;
@@ -45,6 +47,8 @@ class ServerActiveObject;
 typedef struct lua_State lua_State;
 class ITextureSource;
 class IGameDef;
+class Map;
+class ServerMap;
 class ClientMap;
 
 class Environment
@@ -190,11 +194,9 @@ class ServerEnvironment : public Environment
                        IBackgroundBlockEmerger *emerger);
        ~ServerEnvironment();
 
-       Map & getMap()
-               { return *m_map; }
+       Map & getMap();
 
-       ServerMap & getServerMap()
-               { return *m_map; }
+       ServerMap & getServerMap();
 
        lua_State* getLua()
                { return m_lua; }
@@ -203,9 +205,7 @@ class ServerEnvironment : public Environment
                { return m_gamedef; }
 
        float getSendRecommendedInterval()
-       {
-               return 0.10;
-       }
+               { return m_recommended_send_interval; }
 
        /*
                Save players
@@ -310,7 +310,7 @@ class ServerEnvironment : public Environment
                Returns the id of the object.
                Returns 0 if not added and thus deleted.
        */
-       u16 addActiveObjectRaw(ServerActiveObject *object, bool set_changed);
+       u16 addActiveObjectRaw(ServerActiveObject *object, bool set_changed, u32 dtime_s);
        
        /*
                Remove all objects that satisfy (m_removed && m_known_by_count==0)
@@ -320,7 +320,7 @@ class ServerEnvironment : public Environment
        /*
                Convert stored objects from block to active
        */
-       void activateObjects(MapBlock *block);
+       void activateObjects(MapBlock *block, u32 dtime_s);
        
        /*
                Convert objects that are not in active blocks to static.
@@ -358,12 +358,15 @@ class ServerEnvironment : public Environment
        IntervalLimiter m_active_blocks_management_interval;
        IntervalLimiter m_active_block_modifier_interval;
        IntervalLimiter m_active_blocks_nodemetadata_interval;
+       int m_active_block_interval_overload_skip;
        // Time from the beginning of the game in seconds.
        // Incremented in step().
        u32 m_game_time;
        // A helper variable for incrementing the latter
        float m_game_time_fraction_counter;
        core::list<ABMWithState> m_abms;
+       // An interval for generally sending object positions and stuff
+       float m_recommended_send_interval;
 };
 
 #ifndef SERVER
@@ -460,6 +463,8 @@ class ClientEnvironment : public Environment
        
        // Get event from queue. CEE_NONE is returned if queue is empty.
        ClientEnvEvent getClientEvent();
+
+       std::vector<core::vector2d<int> > attachment_list; // X is child ID, Y is parent ID
        
 private:
        ClientMap *m_map;