diff --git a/worldeditadditions_farwand/edit/worldeditadditions_movement.piskel b/worldeditadditions_farwand/edit/worldeditadditions_movement.piskel new file mode 100644 index 0000000..edf3d67 --- /dev/null +++ b/worldeditadditions_farwand/edit/worldeditadditions_movement.piskel @@ -0,0 +1 @@ +{"modelVersion":2,"piskel":{"name":"New Piskel","description":"","fps":12,"height":16,"width":16,"layers":["{\"name\":\"Layer 1\",\"opacity\":1,\"frameCount\":1,\"chunks\":[{\"layout\":[[0]],\"base64PNG\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABNElEQVQ4T2NkoBAwouu/eGDD//VbtzI0dM9GkWsoTf0f6O3NoO8QgCKOYQDMQJAGmCHIbHQLGZ2MNf8jC+47ex1uqIoQL1juzrvPcDF09WADlmvdZWDXFmMIWs2LYsGj+0/AfDlFGRTxdaGfGX5efcUQeU2ZAe4CmCEgCRAASSIbAJIHAZBFMM0gPthpMFeANIFMhwGTro9g5pkyfrgYyJUgw0BqQd6FGwDTCFIAY6MbgCwHYqMYALIC2RvYvIDufLgBMG8ghxTIFcguQA9gWGyhpAPkGGF30WfQdTsENvPyLjuGn3suwgMPOaox4hcWRXz5rigGfJq4GyWqUVwASxwwzSBbxRf/YkROSC9j2cCJCjm9gMMA2dmw+IWZjp4SsanFSMogW5D9iByw6MkYnpAoydEAgo7FIqjtR/0AAAAASUVORK5CYII=\"}]}"]}} \ No newline at end of file diff --git a/worldeditadditions_farwand/init.lua b/worldeditadditions_farwand/init.lua index 0771d2f..d5da5e9 100644 --- a/worldeditadditions_farwand/init.lua +++ b/worldeditadditions_farwand/init.lua @@ -8,5 +8,7 @@ dofile(modpath.."/lib/do_raycast.lua") dofile(modpath.."/lib/farwand.lua") dofile(modpath.."/lib/cloudwand.lua") dofile(modpath.."/lib/multiwand.lua") +dofile(modpath.."/lib/movetool.lua") + dofile(modpath.."/lib/chatcommand.lua") dofile(modpath.."/lib/settings.lua") diff --git a/worldeditadditions_farwand/lib/movetool.lua b/worldeditadditions_farwand/lib/movetool.lua new file mode 100644 index 0000000..5acfd20 --- /dev/null +++ b/worldeditadditions_farwand/lib/movetool.lua @@ -0,0 +1,46 @@ +local function adjust_speed_relative(player, offset) + local overrides = player:get_physics_override() + + local src_speed = overrides.speed or 1 + local src_climb_speed = overrides.climb_speed or 1 + + player:set_physics_override({ + speed = math.max(src_speed + offset, 0.5), + climb_speed = math.max(src_climb_speed + offset, 0.5) + }) + + -- Completely paranoid is me + local overrides_after = player:get_physics_override() + 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 +}) \ No newline at end of file diff --git a/worldeditadditions_farwand/textures/worldeditadditions_movement.png b/worldeditadditions_farwand/textures/worldeditadditions_movement.png new file mode 100644 index 0000000..56a6f09 Binary files /dev/null and b/worldeditadditions_farwand/textures/worldeditadditions_movement.png differ