#include "util/numeric.h"
#include "mapnode.h"
#include "mapblock.h"
-#include "jthread/jmutex.h"
+#include "threading/mutex.h"
+#include "network/networkprotocol.h" // for AccessDeniedCode
class ServerEnvironment;
class ActiveBlockModifier;
bool m_cache_enable_shaders;
private:
- JMutex m_timeofday_lock;
- JMutex m_time_lock;
+ Mutex m_timeofday_lock;
+ Mutex m_time_lock;
};
float getSendRecommendedInterval()
{ return m_recommended_send_interval; }
+ void kickAllPlayers(AccessDeniedCode reason,
+ const std::string &str_reason, bool reconnect);
// Save players
void saveLoadedPlayers();
void savePlayer(const std::string &playername);
std::set<v3s16>* getForceloadedBlocks() { return &m_active_blocks.m_forceloaded_list; };
+ // Sets the static object status all the active objects in the specified block
+ // This is only really needed for deleting blocks from the map
+ void setStaticForActiveObjectsInBlock(v3s16 blockpos,
+ bool static_exists, v3s16 static_block=v3s16(0,0,0));
+
private:
/*
#ifndef SERVER
#include "clientobject.h"
+#include "content_cao.h"
+
class ClientSimpleObject;
/*
ActiveObjects
*/
+ GenericCAO* getGenericCAO(u16 id);
ClientActiveObject* getActiveObject(u16 id);
/*
// Get event from queue. CEE_NONE is returned if queue is empty.
ClientEnvEvent getClientEvent();
- u16 m_attachements[USHRT_MAX];
+ u16 attachement_parent_ids[USHRT_MAX + 1];
std::list<std::string> getPlayerNames()
{ return m_player_names; }
IrrlichtDevice *m_irr;
std::map<u16, ClientActiveObject*> m_active_objects;
std::vector<ClientSimpleObject*> m_simple_objects;
- std::list<ClientEnvEvent> m_client_event_queue;
+ std::queue<ClientEnvEvent> m_client_event_queue;
IntervalLimiter m_active_object_light_update_interval;
IntervalLimiter m_lava_hurt_interval;
IntervalLimiter m_drowning_interval;