Added AutoSneak and improved X-Ray MapBlock updating

This commit is contained in:
Elias Fleckenstein 2020-10-04 22:22:55 +02:00
parent 0a2c90f4cf
commit c36ff3edb1
8 changed files with 33 additions and 4 deletions

View File

@ -0,0 +1,13 @@
local was_enabled = false
minetest.register_globalstep(function()
if minetest.settings:get_bool("autosneak") then
minetest.set_keypress("sneak", true)
was_enabled = true
elseif was_enabled then
was_enabled = false
minetest.set_keypress("sneak", false)
end
end)
minetest.register_cheat("AutoSneak", "Movement", "autosneak")

View File

@ -0,0 +1,3 @@
name = autosneak
desciption = Adds the AutoSneak feature to dragonfire.
author = Fleckenstein

View File

@ -0,0 +1 @@
autosneak (AutoSneak) bool false

View File

@ -8,3 +8,5 @@ minetest.register_globalstep(function(dtime)
local player = minetest.localplayer
minetest.send_chat_message(minetest.pos_to_string(vector.floor(player:get_pos())))
end)
minetest.register_cheat("Leak", "Player", "leak")

View File

@ -3,3 +3,5 @@ minetest.register_on_receiving_chat_message(function(message)
return true
end
end)
minetest.register_cheat("IgnoreStatus", "Player", "ignore_status_messages")

View File

@ -8,3 +8,4 @@ load_mod_schematicas = true
load_mod_pathfinding = true
load_mod_autoeat = true
load_mod_perlin = true
load_mod_autosneak = true

View File

@ -1667,15 +1667,20 @@ void Client::addUpdateMeshTaskForNode(v3s16 nodepos, bool ack_to_server, bool ur
void Client::updateAllMapBlocks()
{
v3s16 currentBlock = getNodeBlockPos(floatToInt(m_env.getLocalPlayer()->getPosition(), BS));
addUpdateMeshTaskWithEdge(currentBlock, false, true);
std::map<v2s16, MapSector*> *sectors = m_env.getMap().getSectorsPtr();
for (auto &sector_it : *sectors) {
MapSector *sector = sector_it.second;
MapBlockVect blocks;
sector->getBlocks(blocks);
for (MapBlock *block : blocks)
addUpdateMeshTask(block->getPos(), false, false);
for (MapBlock *block : blocks) {
addUpdateMeshTask(block->getPos(), false, true);
}
}
//addUpdateMeshTaskWithEdge(getObjectBlockPos(m_env.getLocalPlayer()->getPosition()), false, false);
}
ClientEvent *Client::getClientEvent()

View File

@ -80,8 +80,10 @@ void RenderingCore::draw3D()
if (!show_hud)
return;
hud->drawSelectionMesh();
if (draw_tracers)
if (draw_tracers) {
driver->setTransform(video::ETS_WORLD, core::IdentityMatrix);
tracers->draw(driver, client);
}
if (draw_wield_tool)
camera->drawWieldedTool();
}