]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Added AutoSneak and improved X-Ray MapBlock updating
authorElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 4 Oct 2020 20:22:55 +0000 (22:22 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Sun, 4 Oct 2020 20:22:55 +0000 (22:22 +0200)
clientmods/dragonfire/autosneak/init.lua [new file with mode: 0644]
clientmods/dragonfire/autosneak/mod.conf [new file with mode: 0644]
clientmods/dragonfire/autosneak/settingtypes.txt [new file with mode: 0644]
clientmods/dragonfire/chat/leak.lua
clientmods/dragonfire/chat/status.lua
clientmods/mods.conf
src/client/client.cpp
src/client/render/core.cpp

diff --git a/clientmods/dragonfire/autosneak/init.lua b/clientmods/dragonfire/autosneak/init.lua
new file mode 100644 (file)
index 0000000..9531551
--- /dev/null
@@ -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")
diff --git a/clientmods/dragonfire/autosneak/mod.conf b/clientmods/dragonfire/autosneak/mod.conf
new file mode 100644 (file)
index 0000000..f922455
--- /dev/null
@@ -0,0 +1,3 @@
+name = autosneak
+desciption = Adds the AutoSneak feature to dragonfire.
+author = Fleckenstein
diff --git a/clientmods/dragonfire/autosneak/settingtypes.txt b/clientmods/dragonfire/autosneak/settingtypes.txt
new file mode 100644 (file)
index 0000000..6b58814
--- /dev/null
@@ -0,0 +1 @@
+autosneak (AutoSneak) bool false 
index a11704d5598b3b5eef30a5581c8a77902ff8af40..b99ee0301e4d07db973c2d29c8df88f8e1a5198b 100644 (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")
index 4cf56a09e3b71dae12a1d8598a071c8572b80a65..ba79048f8442558d33a17c830f91573ac22a1cfe 100644 (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")
index 4234591b173d9f3ec389cb7ec4a6cca346e386ff..6c9a0f5919768680358d274dd7a51d57130d5800 100644 (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
index d65dc510fa7645b2cf50d3bdcdae5a4663110225..bbc32c6d45e67cb92b845ace69030a6897cac294 100644 (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()
index 3c5aa8eff9edf5cfdbb561a62dd0ae88cf6d2459..44aef6408a16fbf90f0a4bad60840aafa158b8c8 100644 (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();
 }