]> git.lizzy.rs Git - dragonfireclient.git/blob - builtin/client/cheats/movement.lua
World Cheats improvements; Add BlockLava; Readd minetest.request_http_api for Compati...
[dragonfireclient.git] / builtin / client / cheats / movement.lua
1 local function register_keypress_cheat(cheat, keyname, condition)
2         local was_active = false
3         core.register_globalstep(function()
4                 local is_active = core.settings:get_bool(cheat) and (not condition or condition())
5                 if is_active then
6                         core.set_keypress(keyname, true)
7                 elseif was_active then
8                         core.set_keypress(keyname, false)
9                 end
10                 was_active = is_active
11         end)
12 end
13
14 register_keypress_cheat("autosneak", "sneak", function()
15         return core.localplayer:is_touching_ground()
16 end)
17 register_keypress_cheat("autosprint", "special1")
18
19 local legit_override
20
21 local function get_override_factor(name)
22         if core.settings:get_bool("override_" .. name) then
23                 return tonumber(core.settings:get("override_" .. name .. "_factor")) or 1
24         else
25                 return 1.0
26         end
27 end
28
29 core.register_globalstep(function()
30         if not legit_override then return end
31         local override = table.copy(legit_override)
32         override.speed = override.speed * get_override_factor("speed")
33         override.jump = override.jump * get_override_factor("jump")
34         override.gravity = override.gravity * get_override_factor("gravity")
35         core.localplayer:set_physics_override(override)
36 end)
37
38 core.register_on_recieve_physics_override(function(override)
39         legit_override = override
40     return true
41 end)