#include "environment.h"
#include "common_irrlicht.h"
#include <string>
+#include "utility.h"
#ifdef _WIN32
#include <windows.h>
JMutex m_mutex;
};
-class SimpleThread : public JThread
-{
- bool run;
- JMutex run_mutex;
-
-public:
-
- SimpleThread():
- JThread(),
- run(true)
- {
- run_mutex.Init();
- }
-
- virtual ~SimpleThread()
- {}
-
- virtual void * Thread() = 0;
-
- bool getRun()
- {
- JMutexAutoLock lock(run_mutex);
- return run;
- }
- void setRun(bool a_run)
- {
- JMutexAutoLock lock(run_mutex);
- run = a_run;
- }
-
- void stop()
- {
- setRun(false);
- while(IsRunning())
- sleep_ms(100);
- }
-};
-
class Server;
class ServerThread : public SimpleThread
RemoteClient():
m_time_from_building(9999)
- //m_num_blocks_in_emerge_queue(0)
{
peer_id = 0;
serialization_version = SER_FMT_VER_INVALID;
pending_serialization_version = SER_FMT_VER_INVALID;
m_nearest_unsent_d = 0;
+ m_nearest_unsent_reset_timer = 0.0;
m_blocks_sent_mutex.Init();
m_blocks_sending_mutex.Init();
+
+ m_dig_mutex.Init();
+ m_dig_time_remaining = 0;
+ m_dig_tool_item = -1;
}
~RemoteClient()
{
JMutexAutoLock l2(m_blocks_sent_mutex);
JMutexAutoLock l3(m_blocks_sending_mutex);
o<<"RemoteClient "<<peer_id<<": "
- /*<<"m_num_blocks_in_emerge_queue="
- <<m_num_blocks_in_emerge_queue.get()*/
<<", m_blocks_sent.size()="<<m_blocks_sent.size()
<<", m_blocks_sending.size()="<<m_blocks_sending.size()
<<", m_nearest_unsent_d="<<m_nearest_unsent_d
// Time from last placing or removing blocks
MutexedVariable<float> m_time_from_building;
+ JMutex m_dig_mutex;
+ float m_dig_time_remaining;
+ // -1 = not digging
+ s16 m_dig_tool_item;
+ v3s16 m_dig_position;
+
private:
/*
All members that are accessed by many threads should
core::map<v3s16, bool> m_blocks_sent;
s16 m_nearest_unsent_d;
v3s16 m_last_center;
+ float m_nearest_unsent_reset_timer;
JMutex m_blocks_sent_mutex;
/*
Blocks that are currently on the line.
void UpdateBlockWaterPressure(MapBlock *block,
core::map<v3s16, MapBlock*> &modified_blocks);
+ float m_flowwater_timer;
+ float m_print_info_timer;
+ float m_objectdata_timer;
+ float m_emergethread_trigger_timer;
+ float m_savemap_timer;
+
// NOTE: If connection and environment are both to be locked,
// environment shall be locked first.
JMutex m_env_mutex;