From aaed0a2ea81a51f36a7eb35cb30c57ddf646fe1b Mon Sep 17 00:00:00 2001 From: Vanessa Dannenberg Date: Sat, 8 Sep 2018 12:12:15 -0400 Subject: updated castles, coloredwood, digistuff, locks, mesecons, pipeworks, steel, unified dyes, unified mesecons, and worldedit --- anvil/init.lua | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) (limited to 'anvil/init.lua') diff --git a/anvil/init.lua b/anvil/init.lua index 1567894..e4bc8bd 100644 --- a/anvil/init.lua +++ b/anvil/init.lua @@ -5,14 +5,18 @@ -- * the hammer gets dammaged a bit at each repair step --------------------------------------------------------------------------------------- +anvil = { + setting = { + item_displacement = 7/16, + } +} + minetest.register_alias("castle:anvil", "anvil:anvil") -- internationalization boilerplate local MP = minetest.get_modpath(minetest.get_current_modname()) local S, NS = dofile(MP.."/intllib.lua") -local item_displacement = 7/16 - -- the hammer for the anvil minetest.register_tool("anvil:hammer", { description = S("Steel blacksmithing hammer"), @@ -69,7 +73,7 @@ minetest.register_entity("anvil:item",{ }) local remove_item = function(pos, node) - local objs = minetest.env:get_objects_inside_radius({x = pos.x, y = pos.y + item_displacement, z = pos.z}, .5) + local objs = minetest.get_objects_inside_radius({x = pos.x, y = pos.y + anvil.setting.item_displacement, z = pos.z}, .5) if objs then for _, obj in ipairs(objs) do if obj and obj:get_luaentity() and obj:get_luaentity().name == "anvil:item" then @@ -80,13 +84,13 @@ local remove_item = function(pos, node) end local update_item = function(pos, node) - local meta = minetest.env:get_meta(pos) + local meta = minetest.get_meta(pos) local inv = meta:get_inventory() if not inv:is_empty("input") then - pos.y = pos.y + item_displacement + pos.y = pos.y + anvil.setting.item_displacement tmp.nodename = node.name tmp.texture = inv:get_stack("input", 1):get_name() - local e = minetest.env:add_entity(pos,"anvil:item") + local e = minetest.add_entity(pos,"anvil:item") local yaw = math.pi*2 - node.param2 * math.pi/2 e:setyaw(yaw) end @@ -157,6 +161,7 @@ minetest.register_node("anvil:anvil", { end if (listname=='input' and(stack:get_wear() == 0 + or minetest.get_item_group(stack:get_name(), "not_repaired_by_anvil") ~= 0 or stack:get_name() == "technic:water_can" or stack:get_name() == "technic:lava_can" )) then @@ -179,12 +184,13 @@ minetest.register_node("anvil:anvil", { on_rightclick = function(pos, node, clicker, itemstack) if itemstack:get_count() == 0 then - local meta = minetest.env:get_meta(pos) + local meta = minetest.get_meta(pos) local inv = meta:get_inventory() if not inv:is_empty("input") then local return_stack = inv:get_stack("input", 1) inv:set_stack("input", 1, nil) - clicker:get_inventory():add_item("main", return_stack) + local wield_index = clicker:get_wield_index() + clicker:get_inventory():set_stack("main", wield_index, return_stack) remove_item(pos, node) return return_stack end @@ -192,7 +198,7 @@ minetest.register_node("anvil:anvil", { local this_def = minetest.registered_nodes[node.name] if this_def.allow_metadata_inventory_put(pos, "input", 1, itemstack:peek_item(), clicker) > 0 then local s = itemstack:take_item() - local meta = minetest.env:get_meta(pos) + local meta = minetest.get_meta(pos) local inv = meta:get_inventory() inv:add_item("input", s) update_item(pos,node) @@ -213,7 +219,8 @@ minetest.register_node("anvil:anvil", { if not inv:is_empty("input") then local return_stack = inv:get_stack("input", 1) inv:set_stack("input", 1, nil) - puncher:get_inventory():add_item("main", return_stack) + local wield_index = puncher:get_wield_index() + puncher:get_inventory():set_stack("main", wield_index, return_stack) remove_item(pos, node) end end @@ -280,7 +287,7 @@ minetest.register_node("anvil:anvil", { minetest.chat_send_player( puncher:get_player_name(), S('Your @1 has been repaired successfully.', tool_desc)) return else - pos.y = pos.y + item_displacement + pos.y = pos.y + anvil.setting.item_displacement minetest.sound_play({name="anvil_clang"}, {pos=pos}) minetest.add_particlespawner({ amount = 10, @@ -318,7 +325,7 @@ minetest.register_lbm({ nodenames = { "anvil:anvil" }, run_at_every_load = true, action = function(pos, node, active_object_count, active_object_count_wider) - local test_pos = {x=pos.x, y=pos.y + item_displacement, z=pos.z} + local test_pos = {x=pos.x, y=pos.y + anvil.setting.item_displacement, z=pos.z} if #minetest.get_objects_inside_radius(test_pos, 0.5) > 0 then return end update_item(pos, node) end @@ -361,6 +368,6 @@ minetest.register_craft({ recipe = { {"default:steel_ingot","default:steel_ingot","default:steel_ingot"}, {"default:steel_ingot","default:steel_ingot","default:steel_ingot"}, - {'', "group:stick", '' } } + {"group:stick", '', ''} }, }) -- cgit v1.2.3