--[[ Helper Tool for setting the Replacer to new values when using mobile devices. Comes with a history. Copyright (C) 2022 Sokomine License: GPLv3.0 --]] replacer_setter = {} replacer_setter.history = {} -- no idea which other modes other replacers may support... replacer_setter.mode_descriptions = { "[ normal ] replace material, shape and orientation according to the stored pattern" } -- internal names for the above modes (will be stored in replacer.user_mode[ player_name ]) replacer_setter.mode_names = {"normal"} -- make sure all mode descriptions are properly escaped for the dropdown menu for i, v in ipairs(replacer_setter.mode_descriptions) do replacer_setter.mode_descriptions[i] = minetest.formspec_escape(v) end replacer_setter.user_mode = {} dofile(minetest.get_modpath("replacer_setter").."/fs_history.lua"); minetest.register_tool("replacer_setter:setter", { description = "Replacer Set Tool", groups = {}, inventory_image = "default_sign_wall_wood.png^replacer_replacer.png", wield_image = "", wield_scale = {x=1,y=1,z=1}, stack_max = 1, -- there is no reason to have more than one liquids_pointable = true, -- it is ok to painit in/with water node_placement_prediction = nil, on_use = function(itemstack, user, pointed_thing) if(not(user) or not(pointed_thing)) then return end local new_pattern = "" if(pointed_thing.type == "node") then local pos = minetest.get_pointed_thing_position( pointed_thing, false ) local node = minetest.get_node_or_nil( pos ) new_pattern = "default:dirt 0 0"; if( node ~= nil and node.name ) then -- there is very little point in storing the light value --new_pattern = node.name..' '..node.param1..' '..node.param2 new_pattern = node.name..' 0 '..node.param2 end end local pname = user:get_player_name() if(not(replacer_setter.history[pname])) then replacer_setter.history[pname] = {} end minetest.show_formspec(pname, "replacer:menu", replacer_setter.get_formspec(pname, new_pattern, user)) return nil end, }) minetest.register_craft({ output = 'replacer_setter:setter', recipe = { {"replacer:replacer"}, } })