forked from VoxeLibre/VoxeLibre
fix for enchanted items
This commit is contained in:
parent
7c43c15fda
commit
6c107ce990
|
@ -91,7 +91,13 @@ local function get_armor_texture(textures, name, modname, itemname, itemstring)
|
||||||
mcl_armor.trims.core_textures[itemstring] = core_texture
|
mcl_armor.trims.core_textures[itemstring] = core_texture
|
||||||
local func = function(obj, itemstack)
|
local func = function(obj, itemstack)
|
||||||
local overlay = itemstack:get_meta():get_string("mcl_armor:trim_overlay")
|
local overlay = itemstack:get_meta():get_string("mcl_armor:trim_overlay")
|
||||||
local core_armor_texture = mcl_armor.trims.core_textures[itemstack:get_name()]
|
local core_armor_texture
|
||||||
|
local stack_name = mcl_grindstone.remove_enchant_name(itemstack) -- gets original itemstring if enchanted, no need to store (nearly) identical values
|
||||||
|
local core_armor_texture = mcl_armor.trims.core_textures[stack_name]
|
||||||
|
|
||||||
|
if mcl_enchanting.is_enchanted(itemstack:get_name()) then -- working with the original stack to know wether to apply enchanting overlay or not
|
||||||
|
core_armor_texture = core_armor_texture .. mcl_enchanting.overlay
|
||||||
|
end
|
||||||
|
|
||||||
if overlay == "" then return core_armor_texture end -- key not present; armor not trimmed
|
if overlay == "" then return core_armor_texture end -- key not present; armor not trimmed
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
name = mcl_armor
|
name = mcl_armor
|
||||||
author = stu
|
author = stu
|
||||||
description = Adds craftable armor that is visible to other players.
|
description = Adds craftable armor that is visible to other players.
|
||||||
depends = mcl_core, mcl_player, mcl_enchanting, mcl_damage
|
depends = mcl_core, mcl_player, mcl_enchanting, mcl_damage, mcl_grindstone
|
||||||
optional_depends = mcl_fire, ethereal, bakedclay
|
optional_depends = mcl_fire, ethereal, bakedclay
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
local mod_registername = minetest.get_current_modname() .. ":"
|
local mod_registername = minetest.get_current_modname() .. ":"
|
||||||
local S = minetest.get_translator(modname)
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
|
|
||||||
for _, template_name in pairs(mcl_armor.trims.overlays) do
|
for _, template_name in pairs(mcl_armor.trims.overlays) do
|
||||||
minetest.register_craftitem(mod_registername .. template_name, {
|
minetest.register_craftitem(mod_registername .. template_name, {
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
-- Code based from mcl_anvils
|
-- Code based from mcl_anvils
|
||||||
|
|
||||||
|
mcl_grindstone = {}
|
||||||
|
|
||||||
local S = minetest.get_translator(minetest.get_current_modname())
|
local S = minetest.get_translator(minetest.get_current_modname())
|
||||||
local F = minetest.formspec_escape
|
local F = minetest.formspec_escape
|
||||||
local C = minetest.colorize
|
local C = minetest.colorize
|
||||||
|
@ -55,7 +57,7 @@ local function create_new_item(name_item, meta, wear)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- If an item has an enchanment then remove "_enchanted" from the name
|
-- If an item has an enchanment then remove "_enchanted" from the name
|
||||||
local function remove_enchant_name(stack)
|
function mcl_grindstone.remove_enchant_name(stack)
|
||||||
if mcl_enchanting.is_enchanted(stack:get_name()) then
|
if mcl_enchanting.is_enchanted(stack:get_name()) then
|
||||||
local name = stack:get_name()
|
local name = stack:get_name()
|
||||||
return name.sub(name, 1, -11)
|
return name.sub(name, 1, -11)
|
||||||
|
@ -116,8 +118,8 @@ local function update_grindstone_slots(meta)
|
||||||
local def1 = input1:get_definition()
|
local def1 = input1:get_definition()
|
||||||
local def2 = input2:get_definition()
|
local def2 = input2:get_definition()
|
||||||
-- Remove enchant name if they have one
|
-- Remove enchant name if they have one
|
||||||
local name1 = remove_enchant_name(input1)
|
local name1 = mcl_grindstone.remove_enchant_name(input1)
|
||||||
local name2 = remove_enchant_name(input2)
|
local name2 = mcl_grindstone.remove_enchant_name(input2)
|
||||||
|
|
||||||
-- Calculate repair
|
-- Calculate repair
|
||||||
local function calculate_repair(dur1, dur2)
|
local function calculate_repair(dur1, dur2)
|
||||||
|
@ -143,7 +145,7 @@ local function update_grindstone_slots(meta)
|
||||||
local def1 = input1:get_definition()
|
local def1 = input1:get_definition()
|
||||||
local meta = input1:get_meta()
|
local meta = input1:get_meta()
|
||||||
if def1.type == "tool" and mcl_enchanting.is_enchanted(input1:get_name()) then
|
if def1.type == "tool" and mcl_enchanting.is_enchanted(input1:get_name()) then
|
||||||
local name = remove_enchant_name(input1)
|
local name = mcl_grindstone.remove_enchant_name(input1)
|
||||||
local wear = input1:get_wear()
|
local wear = input1:get_wear()
|
||||||
local new_item = create_new_item(name, meta, wear)
|
local new_item = create_new_item(name, meta, wear)
|
||||||
new_output = transfer_curse(input1, new_item)
|
new_output = transfer_curse(input1, new_item)
|
||||||
|
@ -157,7 +159,7 @@ local function update_grindstone_slots(meta)
|
||||||
local def2 = input2:get_definition()
|
local def2 = input2:get_definition()
|
||||||
local meta = input2:get_meta()
|
local meta = input2:get_meta()
|
||||||
if def2.type == "tool" and mcl_enchanting.is_enchanted(input2:get_name()) then
|
if def2.type == "tool" and mcl_enchanting.is_enchanted(input2:get_name()) then
|
||||||
local name = remove_enchant_name(input2)
|
local name = mcl_grindstone.remove_enchant_name(input2)
|
||||||
local wear = input2:get_wear()
|
local wear = input2:get_wear()
|
||||||
local new_item = create_new_item(name, meta, wear)
|
local new_item = create_new_item(name, meta, wear)
|
||||||
new_output = transfer_curse(input2, new_item)
|
new_output = transfer_curse(input2, new_item)
|
||||||
|
|
Loading…
Reference in New Issue