]> git.lizzy.rs Git - dragonfireclient.git/commitdiff
Add spider
authorElias Fleckenstein <eliasfleckenstein@web.de>
Tue, 17 May 2022 18:05:52 +0000 (20:05 +0200)
committerElias Fleckenstein <eliasfleckenstein@web.de>
Tue, 17 May 2022 18:05:52 +0000 (20:05 +0200)
builtin/client/cheats.lua
builtin/settingtypes.txt
src/client/localplayer.cpp
src/defaultsettings.cpp

index a1e00814ec32856d47ab06288e5ff4e73ea9fb90..b712d0f1400ad53fab9ea819a28e534530a92e68 100644 (file)
@@ -13,6 +13,7 @@ core.cheats = {
                ["JetPack"] = "jetpack",
                ["AntiSlip"] = "antislip",
                ["AirJump"] = "airjump",
+               ["Spider"] = "spider",
        },
        ["Render"] = {
                ["Xray"] = "xray",
index 8726012ffd84be571556b0a52e093be820cbd367..e023aeab7416d442ee0acb996597104c6646428a 100644 (file)
@@ -2375,3 +2375,5 @@ tool_range (Additional Tool Range) int 2
 reach (Reach) bool false
 
 airjump (AirJump) bool false
+
+spider (Spider) bool false
index 0a0a57cce989025d5bbe53cd804b475ee00779dd..ca61f3a11e81beff96b654c66a8e307ae6994e66 100644 (file)
@@ -279,6 +279,25 @@ void LocalPlayer::move(f32 dtime, Environment *env, f32 pos_max_d,
                        nodemgr->get(node2.getContent()).climbable) && !free_move;
        }
 
+       if (!is_climbing && !free_move && g_settings->getBool("spider")) {
+               v3s16 spider_positions[4] = {
+                       floatToInt(position + v3f(+1.0f, +0.0f,  0.0f) * BS, BS),
+                       floatToInt(position + v3f(-1.0f, +0.0f,  0.0f) * BS, BS),
+                       floatToInt(position + v3f( 0.0f, +0.0f, +1.0f) * BS, BS),
+                       floatToInt(position + v3f( 0.0f, +0.0f, -1.0f) * BS, BS),
+               };
+
+               for (v3s16 sp : spider_positions) {
+                       bool is_valid;
+                       MapNode node = map->getNode(sp, &is_valid);
+
+                       if (is_valid && nodemgr->get(node.getContent()).walkable) {
+                               is_climbing = true;
+                               break;
+                       }
+               }
+       }
+
        /*
                Collision uncertainty radius
                Make it a bit larger than the maximum distance of movement
index 64335afffecb7a951b4e55ceb109ea725bf67995..0d509752bd61c1f4d1e40119febf9950d1528046 100644 (file)
@@ -126,6 +126,7 @@ void set_default_settings()
        settings->setDefault("scaffold", "false");
        settings->setDefault("killaura", "false");
        settings->setDefault("airjump", "false");
+       settings->setDefault("spider", "false");
 
        // Keymap
        settings->setDefault("remote_port", "30000");