2024-10-10 05:35:45 +02:00
|
|
|
local wea_c = worldeditadditions_core
|
|
|
|
local wea_t = worldeditadditions_tools
|
2023-12-30 14:12:10 +01:00
|
|
|
|
2023-12-26 15:59:46 +01:00
|
|
|
local function adjust_speed_relative(player, offset)
|
2024-10-10 05:35:45 +02:00
|
|
|
local overrides = wea_c.player_get_physics_override(
|
2023-12-30 14:12:10 +01:00
|
|
|
player, "worldeditadditions_movetool"
|
|
|
|
)
|
|
|
|
if overrides == nil then overrides = {} end
|
|
|
|
-- local overrides = player:get_physics_override()
|
2023-12-26 15:59:46 +01:00
|
|
|
|
|
|
|
local src_speed = overrides.speed or 1
|
|
|
|
local src_climb_speed = overrides.climb_speed or 1
|
|
|
|
|
2024-10-10 05:35:45 +02:00
|
|
|
wea_c.player_set_physics_override(
|
2023-12-30 14:12:10 +01:00
|
|
|
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({
|
|
|
|
-- })
|
2023-12-26 15:59:46 +01:00
|
|
|
|
|
|
|
-- Completely paranoid is me
|
2024-10-10 05:35:45 +02:00
|
|
|
local overrides_after = wea_c.player_get_physics_override(
|
2023-12-30 14:12:10 +01:00
|
|
|
player, "worldeditadditions_movetool"
|
|
|
|
)
|
2023-12-26 15:59:46 +01:00
|
|
|
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
|
|
|
|
|
|
|
|
|
2024-10-10 05:35:45 +02:00
|
|
|
wea_t.register_tool("movetool", {
|
2023-12-26 15:59:46 +01:00
|
|
|
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
|
|
|
|
})
|