From: Elias Fleckenstein Date: Tue, 17 May 2022 18:05:52 +0000 (+0200) Subject: Add spider X-Git-Tag: 2022.05~6 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=b09fc5de5cdb021f43ad32b7e3f50dc75c0bc622;p=dragonfireclient.git Add spider --- diff --git a/builtin/client/cheats.lua b/builtin/client/cheats.lua index a1e00814e..b712d0f14 100644 --- a/builtin/client/cheats.lua +++ b/builtin/client/cheats.lua @@ -13,6 +13,7 @@ core.cheats = { ["JetPack"] = "jetpack", ["AntiSlip"] = "antislip", ["AirJump"] = "airjump", + ["Spider"] = "spider", }, ["Render"] = { ["Xray"] = "xray", diff --git a/builtin/settingtypes.txt b/builtin/settingtypes.txt index 8726012ff..e023aeab7 100644 --- a/builtin/settingtypes.txt +++ b/builtin/settingtypes.txt @@ -2375,3 +2375,5 @@ tool_range (Additional Tool Range) int 2 reach (Reach) bool false airjump (AirJump) bool false + +spider (Spider) bool false diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp index 0a0a57cce..ca61f3a11 100644 --- a/src/client/localplayer.cpp +++ b/src/client/localplayer.cpp @@ -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 diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp index 64335afff..0d509752b 100644 --- a/src/defaultsettings.cpp +++ b/src/defaultsettings.cpp @@ -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");