1
0
Fork 0
mirror of https://github.com/luanti-org/luanti.git synced 2025-06-27 16:36:03 +00:00

[CSM] Add on_dignode callback (#5140)

This commit is contained in:
red-001 2017-01-29 17:43:44 +00:00 committed by Loïc Blot
parent ba66fce833
commit 073f5cf03d
6 changed files with 57 additions and 13 deletions

View file

@ -3967,20 +3967,8 @@ void Game::handleDigging(GameRunData *runData,
client->setCrack(runData->dig_index, nodepos);
} else {
infostream << "Digging completed" << std::endl;
client->interact(2, pointed);
client->setCrack(-1, v3s16(0, 0, 0));
bool is_valid_position;
MapNode wasnode = map.getNodeNoEx(nodepos, &is_valid_position);
if (is_valid_position)
client->removeNode(nodepos);
if (m_cache_enable_particles) {
const ContentFeatures &features =
client->getNodeDefManager()->get(wasnode);
client->getParticleManager()->addDiggingParticles(client, smgr,
player, nodepos, wasnode, features);
}
runData->dig_time = 0;
runData->digging = false;
@ -3999,6 +3987,26 @@ void Game::handleDigging(GameRunData *runData,
if (runData->nodig_delay_timer < mindelay)
runData->nodig_delay_timer = mindelay;
bool is_valid_position;
MapNode wasnode = map.getNodeNoEx(nodepos, &is_valid_position);
if (is_valid_position) {
bool block = client->getScript()->on_dignode(nodepos, wasnode);
if (block) {
return;
}
client->removeNode(nodepos);
}
client->interact(2, pointed);
if (m_cache_enable_particles) {
const ContentFeatures &features =
client->getNodeDefManager()->get(wasnode);
client->getParticleManager()->addDiggingParticles(client, smgr,
player, nodepos, wasnode, features);
}
// Send event to trigger sound
MtEvent *e = new NodeDugEvent(nodepos, wasnode);
client->event()->put(e);