forked from Mineclonia/Mineclonia
Anvils: Don't allow rename if name is unchanged
This commit is contained in:
parent
0b80b60cf1
commit
ef471a67fa
|
@ -60,6 +60,7 @@ local function update_anvil_slots(meta)
|
||||||
local new_wear = calculate_repair(input1:get_wear(), input2:get_wear(), SAME_TOOL_REPAIR_BOOST)
|
local new_wear = calculate_repair(input1:get_wear(), input2:get_wear(), SAME_TOOL_REPAIR_BOOST)
|
||||||
input1:set_wear(new_wear)
|
input1:set_wear(new_wear)
|
||||||
name_item = input1
|
name_item = input1
|
||||||
|
new_output = name_item
|
||||||
-- Tool + repair item
|
-- Tool + repair item
|
||||||
else
|
else
|
||||||
-- Any tool can have a repair item. This may be defined in the tool's item definition
|
-- Any tool can have a repair item. This may be defined in the tool's item definition
|
||||||
|
@ -90,6 +91,7 @@ local function update_anvil_slots(meta)
|
||||||
local new_wear = calculate_repair(tool:get_wear(), MAX_WEAR, MATERIAL_TOOL_REPAIR_BOOST)
|
local new_wear = calculate_repair(tool:get_wear(), MAX_WEAR, MATERIAL_TOOL_REPAIR_BOOST)
|
||||||
tool:set_wear(new_wear)
|
tool:set_wear(new_wear)
|
||||||
name_item = tool
|
name_item = tool
|
||||||
|
new_output = name_item
|
||||||
else
|
else
|
||||||
new_output = ""
|
new_output = ""
|
||||||
end
|
end
|
||||||
|
@ -100,9 +102,6 @@ local function update_anvil_slots(meta)
|
||||||
-- Exactly 1 input slot occupied
|
-- Exactly 1 input slot occupied
|
||||||
elseif (not input1:is_empty() and input2:is_empty()) or (input1:is_empty() and not input2:is_empty()) then
|
elseif (not input1:is_empty() and input2:is_empty()) or (input1:is_empty() and not input2:is_empty()) then
|
||||||
-- Just rename item
|
-- Just rename item
|
||||||
if new_name == nil then
|
|
||||||
new_name = ""
|
|
||||||
end
|
|
||||||
if input1:is_empty() then
|
if input1:is_empty() then
|
||||||
name_item = input2
|
name_item = input2
|
||||||
else
|
else
|
||||||
|
@ -118,9 +117,15 @@ local function update_anvil_slots(meta)
|
||||||
if minetest.get_item_group(name_item:get_name(), "no_rename") == 1 then
|
if minetest.get_item_group(name_item:get_name(), "no_rename") == 1 then
|
||||||
new_output = ""
|
new_output = ""
|
||||||
else
|
else
|
||||||
|
if new_name == nil then
|
||||||
|
new_name = ""
|
||||||
|
end
|
||||||
local meta = name_item:get_meta()
|
local meta = name_item:get_meta()
|
||||||
|
local old_name = meta:get_string("name")
|
||||||
-- Limit name length
|
-- Limit name length
|
||||||
new_name = string.sub(new_name, 1, MAX_NAME_LENGTH)
|
new_name = string.sub(new_name, 1, MAX_NAME_LENGTH)
|
||||||
|
-- Don't rename if names are identical
|
||||||
|
if new_name ~= old_name then
|
||||||
-- Rename item
|
-- Rename item
|
||||||
meta:set_string("description", new_name)
|
meta:set_string("description", new_name)
|
||||||
-- Double-save the name internally, too
|
-- Double-save the name internally, too
|
||||||
|
@ -128,6 +133,7 @@ local function update_anvil_slots(meta)
|
||||||
new_output = name_item
|
new_output = name_item
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Set the new output slot
|
-- Set the new output slot
|
||||||
if new_output ~= nil then
|
if new_output ~= nil then
|
||||||
|
|
Loading…
Reference in New Issue