Minetest-WorldEditAdditions/worldeditadditions_farwand/lib/movetool.lua

58 lines
1.5 KiB
Lua
Raw Normal View History

local weac = worldeditadditions_core
local function adjust_speed_relative(player, offset)
local overrides = weac.player_get_physics_override(
player, "worldeditadditions_movetool"
)
if overrides == nil then overrides = {} end
-- local overrides = player:get_physics_override()
local src_speed = overrides.speed or 1
local src_climb_speed = overrides.climb_speed or 1
weac.player_set_physics_override(
player, "worldeditadditions_movetool", {
speed = math.max(src_speed + offset, 0.5),
climb_speed = math.max(src_climb_speed + offset, 0.5)
}
)
-- player:set_physics_override({
-- })
-- Completely paranoid is me
local overrides_after = weac.player_get_physics_override(
player, "worldeditadditions_movetool"
)
worldedit.player_notify(player:get_player_name(), "Movement speed is now x" .. tostring(overrides_after.speed))
end
local function use_primary(player)
adjust_speed_relative(player, 0.5)
end
local function use_secondary(player)
adjust_speed_relative(player, -0.5)
end
minetest.register_tool(":worldeditadditions:movetool", {
description = "WorldEditAdditions movement speed adjustment tool",
inventory_image = "worldeditadditions_movement.png",
on_use = function(itemstack, player, pointed_thing)
-- Left click
use_primary(player)
end,
on_secondary_use = function(itemstack, player, pointed_thing)
-- Right click when pointed at nothing
use_secondary(player)
end,
on_place = function(itemstack, player, pointed_thing)
-- Right click when pointed at something
use_secondary(player)
end
})