From 3b0bff2f743a3abf100368f94efafa7c2843a9b7 Mon Sep 17 00:00:00 2001 From: Perttu Ahola Date: Tue, 21 Dec 2010 02:25:47 +0200 Subject: Cracking blocks while digging --- src/client.cpp | 88 +++++++++++----------------------------------------------- 1 file changed, 16 insertions(+), 72 deletions(-) (limited to 'src/client.cpp') diff --git a/src/client.cpp b/src/client.cpp index b612c9c44..4979829d1 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -398,45 +398,10 @@ void Client::step(float dtime) } } -#if 0 - /* - Clear old entries from fetchblock history - */ - { - JMutexAutoLock lock(m_fetchblock_mutex); - - core::list remove_queue; - core::map::Iterator i; - i = m_fetchblock_history.getIterator(); - for(; i.atEnd() == false; i++) - { - float value = i.getNode()->getValue(); - value += dtime; - i.getNode()->setValue(value); - if(value >= 60.0) - remove_queue.push_back(i.getNode()->getKey()); - } - core::list::Iterator j; - j = remove_queue.begin(); - for(; j != remove_queue.end(); j++) - { - m_fetchblock_history.remove(*j); - } - } -#endif - /*{ JMutexAutoLock lock(m_step_dtime_mutex); m_step_dtime += dtime; }*/ - - /* - BEGIN TEST CODE - */ - - /* - END OF TEST CODE - */ } float Client::asyncStep() @@ -975,7 +940,11 @@ void Client::ProcessData(u8 *data, u32 datasize, u16 sender_peer_id) if(abs_to_delete.find(p) != NULL) abs_to_delete.remove(p); - // Update objects of block + /* + Update objects of block + + NOTE: Be sure this is done in the main thread. + */ block->updateObjects(is, m_server_ser_ver, m_device->getSceneManager()); } @@ -1482,11 +1451,11 @@ void Client::addNodeFromInventory(v3s16 nodepos, u16 i) } #endif -void Client::pressGround(u8 button, v3s16 nodepos_undersurface, +void Client::groundAction(u8 action, v3s16 nodepos_undersurface, v3s16 nodepos_oversurface, u16 item) { if(connectedAndInitialized() == false){ - dout_client< data(datasize); writeU16(&data[0], TOSERVER_GROUND_ACTION); - writeU8(&data[2], button); + writeU8(&data[2], action); writeV3S16(&data[3], nodepos_undersurface); writeV3S16(&data[9], nodepos_oversurface); writeU16(&data[15], item); @@ -1540,37 +1509,6 @@ void Client::clickObject(u8 button, v3s16 blockpos, s16 id, u16 item) Send(0, data, true); } -void Client::stopDigging() -{ - if(connectedAndInitialized() == false){ - dout_client< data(datasize); - writeU16(&data[0], TOSERVER_GROUND_ACTION); - writeU8(&data[2], 2); - writeV3S16(&data[3], v3s16(0,0,0)); - writeV3S16(&data[9], v3s16(0,0,0)); - writeU16(&data[15], 0); - Send(0, data, true); -} - void Client::sendSignText(v3s16 blockpos, s16 id, std::string text) { /* @@ -1671,17 +1609,23 @@ MapNode Client::getNode(v3s16 p) return m_env.getMap().getNode(p); } +/*void Client::getNode(v3s16 p, MapNode n) +{ + JMutexAutoLock envlock(m_env_mutex); + m_env.getMap().setNode(p, n); +}*/ + /*f32 Client::getGroundHeight(v2s16 p) { JMutexAutoLock envlock(m_env_mutex); return m_env.getMap().getGroundHeight(p); }*/ -bool Client::isNodeUnderground(v3s16 p) +/*bool Client::isNodeUnderground(v3s16 p) { JMutexAutoLock envlock(m_env_mutex); return m_env.getMap().isNodeUnderground(p); -} +}*/ /*Player * Client::getLocalPlayer() { -- cgit v1.2.3