X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fenvironment.h;h=a25a12db37c9b3aba4b1e861eb086619841abc8d;hb=ab04b7fe941003cf33350d7def69e4c1cc751314;hp=9eb440c4241558d8225d372a4925e1350044e4f5;hpb=2079462e62b478555b1b614a90692b6bc9bb5d34;p=dragonfireclient.git diff --git a/src/environment.h b/src/environment.h index 9eb440c42..a25a12db3 100644 --- a/src/environment.h +++ b/src/environment.h @@ -32,6 +32,7 @@ with this program; if not, write to the Free Software Foundation, Inc., #include #include +#include #include #include "irr_v3d.h" #include "activeobject.h" @@ -81,22 +82,13 @@ class Environment u32 getDayNightRatio(); // 0-23999 - virtual void setTimeOfDay(u32 time) - { - m_time_of_day = time; - m_time_of_day_f = (float)time / 24000.0; - } - - u32 getTimeOfDay() - { return m_time_of_day; } - - float getTimeOfDayF() - { return m_time_of_day_f; } + virtual void setTimeOfDay(u32 time); + u32 getTimeOfDay(); + float getTimeOfDayF(); void stepTimeOfDay(float dtime); void setTimeOfDaySpeed(float speed); - float getTimeOfDaySpeed(); void setDayNightRatioOverride(bool enable, u32 value) @@ -134,7 +126,8 @@ class Environment bool m_cache_enable_shaders; private: - JMutex m_lock; + JMutex m_timeofday_lock; + JMutex m_time_lock; }; @@ -313,7 +306,7 @@ class ServerEnvironment : public Environment bool swapNode(v3s16 p, const MapNode &n); // Find all active objects inside a radius around a point - std::set getObjectsInsideRadius(v3f pos, float radius); + void getObjectsInsideRadius(std::vector &objects, v3f pos, float radius); // Clear all objects, loading and going through every MapBlock void clearAllObjects(); @@ -386,7 +379,7 @@ class ServerEnvironment : public Environment // Active object list std::map m_active_objects; // Outgoing network message buffer for active objects - std::list m_active_object_messages; + std::queue m_active_object_messages; // Some timers float m_send_recommended_timer; IntervalLimiter m_object_management_interval; @@ -401,7 +394,7 @@ class ServerEnvironment : public Environment u32 m_game_time; // A helper variable for incrementing the latter float m_game_time_fraction_counter; - std::list m_abms; + std::vector m_abms; // An interval for generally sending object positions and stuff float m_recommended_send_interval; // Estimate for general maximum lag as determined by server. @@ -529,7 +522,7 @@ class ClientEnvironment : public Environment IGameDef *m_gamedef; IrrlichtDevice *m_irr; std::map m_active_objects; - std::list m_simple_objects; + std::vector m_simple_objects; std::list m_client_event_queue; IntervalLimiter m_active_object_light_update_interval; IntervalLimiter m_lava_hurt_interval;