aboutsummaryrefslogtreecommitdiff
path: root/builtin/client/cheats/combat.lua
diff options
context:
space:
mode:
authorElias Fleckenstein <eliasfleckenstein@web.de>2020-10-19 13:09:38 +0200
committerElias Fleckenstein <eliasfleckenstein@web.de>2020-10-19 13:09:38 +0200
commitf1ff05bf5932a7825509dbe896e60183a96a6d36 (patch)
tree73f2e361a7fd8010345880071aa29f0495171879 /builtin/client/cheats/combat.lua
parent35da7306dcd07fd43252468cdf71c9d8c09faeeb (diff)
downloaddragonfireclient-f1ff05bf5932a7825509dbe896e60183a96a6d36.tar.xz
Added ThroughWalls, InventoryActions API and AutoTotem
Diffstat (limited to 'builtin/client/cheats/combat.lua')
-rw-r--r--builtin/client/cheats/combat.lua72
1 files changed, 41 insertions, 31 deletions
diff --git a/builtin/client/cheats/combat.lua b/builtin/client/cheats/combat.lua
index 25aaaec34..b497c6c1b 100644
--- a/builtin/client/cheats/combat.lua
+++ b/builtin/client/cheats/combat.lua
@@ -1,47 +1,57 @@
local placed_crystal
local switched_to_totem = 0
local used_sneak = true
+local totem_move_action = InventoryAction("move")
+totem_move_action:to("current_player", "main", 8)
core.register_globalstep(function(dtime)
- if not minetest.settings:get_bool("crystal_pvp") then return end
local player = core.localplayer
if not player then return end
local control = player:get_control()
local pointed = core.get_pointed_thing()
local item = player:get_wielded_item():get_name()
- if placed_crystal then
- if core.switch_to_item("mobs_mc:totem") then
- switched_to_totem = 5
- end
- placed_crystal = false
- elseif switched_to_totem > 0 then
- if item ~= "mobs_mc:totem" then
- switched_to_totem = 0
- elseif pointed and pointed.type == "object" then
- pointed.ref:punch()
- switched_to_totem = 0
+ if core.settings:get_bool("crystal_pvp") then
+ if placed_crystal then
+ if core.switch_to_item("mobs_mc:totem") then
+ switched_to_totem = 5
+ end
+ placed_crystal = false
+ elseif switched_to_totem > 0 then
+ if item ~= "mobs_mc:totem" then
+ switched_to_totem = 0
+ elseif pointed and pointed.type == "object" then
+ pointed.ref:punch()
+ switched_to_totem = 0
+ else
+ switched_to_totem = switched_to_totem
+ end
+ elseif control.RMB and item == "mcl_end:crystal" then
+ placed_crystal = true
+ elseif control.sneak then
+ if pointed and pointed.type == "node" and not used_sneak then
+ local pos = core.get_pointed_thing_position(pointed)
+ local node = core.get_node_or_nil(pos)
+ if node and (node.name == "mcl_core:obsidian" or node.name == "mcl_core:bedrock") then
+ core.switch_to_item("mcl_end:crystal")
+ core.place_node(pos)
+ placed_crystal = true
+ end
+ end
+ used_sneak = true
else
- switched_to_totem = switched_to_totem
+ used_sneak = false
end
- elseif control.RMB and item == "mcl_end:crystal" then
- placed_crystal = true
- elseif control.sneak then
- if used_sneak then
- core.switch_to_item("mobs_mc:totem")
- return
- end
- core.switch_to_item("mcl_end:crystal")
- if pointed and pointed.type == "node" then
- local pos = core.get_pointed_thing_position(pointed)
- local node = core.get_node_or_nil(pos)
- if node and (node.name == "mcl_core:obsidian" or node.name == "mcl_core:bedrock") then
- core.place_node(pos)
- placed_crystal = true
+ end
+
+ if core.settings:get_bool("autototem") then
+ local totem_stack = core.get_inventory("current_player").main[9]
+ if totem_stack and totem_stack:get_name() ~= "mobs_mc:totem" then
+ local totem_index = core.find_item("mobs_mc:totem")
+ if totem_index then
+ totem_move_action:from("current_player", "main", totem_index - 1)
+ totem_move_action:apply()
+ player:set_wield_index(8)
end
end
- used_sneak = true
- else
- used_sneak = false
end
end)
-