diff --git a/enchantments.lua b/enchantments.lua index 379a18e..a0b5de2 100644 --- a/enchantments.lua +++ b/enchantments.lua @@ -11,7 +11,7 @@ local function increase_damage(damage_group, factor) end -- implemented via on_enchant and additions in mobs_mc; Slowness IV part unimplemented -mcl_enchanting.enchantments.bane_of_arthropods = { +redstone_enchanting.enchantments.bane_of_arthropods = { name = S("Bane of Arthropods"), max_level = 5, primary = {sword = true}, @@ -30,7 +30,7 @@ mcl_enchanting.enchantments.bane_of_arthropods = { } -- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.channeling = { +--[[redstone_enchanting.enchantments.channeling = { name = S("Channeling"), max_level = 1, primary = {trident = true}, @@ -49,7 +49,7 @@ mcl_enchanting.enchantments.bane_of_arthropods = { }]]-- -- implemented in mcl_death_drop -mcl_enchanting.enchantments.curse_of_vanishing = { +redstone_enchanting.enchantments.curse_of_vanishing = { name = S("Curse of Vanishing"), max_level = 1, primary = {}, @@ -68,7 +68,7 @@ mcl_enchanting.enchantments.curse_of_vanishing = { } -- implemented in mcl_playerplus -mcl_enchanting.enchantments.depth_strider = { +redstone_enchanting.enchantments.depth_strider = { name = S("Depth Strider"), max_level = 3, primary = {}, @@ -87,7 +87,7 @@ mcl_enchanting.enchantments.depth_strider = { } -- implemented via on_enchant -mcl_enchanting.enchantments.efficiency = { +redstone_enchanting.enchantments.efficiency = { name = S("Efficiency"), max_level = 5, primary = {pickaxe = true, shovel = true, axe = true, hoe = true}, @@ -109,7 +109,7 @@ mcl_enchanting.enchantments.efficiency = { } -- implemented in mcl_mobs and via register_on_punchplayer callback -mcl_enchanting.enchantments.fire_aspect = { +redstone_enchanting.enchantments.fire_aspect = { name = S("Fire Aspect"), max_level = 2, primary = {sword = true}, @@ -131,7 +131,7 @@ minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, if hitter and hitter:is_player() then local wielditem = hitter:get_wielded_item() if wielditem then - local fire_aspect_level = mcl_enchanting.get_enchantment(wielditem, "fire_aspect") + local fire_aspect_level = redstone_enchanting.get_enchantment(wielditem, "fire_aspect") if fire_aspect_level > 0 then local player_pos = player:get_pos() local hitter_pos = hitter:get_pos() @@ -143,7 +143,7 @@ minetest.register_on_punchplayer(function(player, hitter, time_from_last_punch, end end) -mcl_enchanting.enchantments.flame = { +redstone_enchanting.enchantments.flame = { name = S("Flame"), max_level = 1, primary = {bow = true}, @@ -162,7 +162,7 @@ mcl_enchanting.enchantments.flame = { } -- implemented in mcl_item_entity -mcl_enchanting.enchantments.fortune = { +redstone_enchanting.enchantments.fortune = { name = S("Fortune"), max_level = 3, primary = {pickaxe = true, shovel = true, axe = true, hoe = true}, @@ -181,7 +181,7 @@ mcl_enchanting.enchantments.fortune = { } -- implemented via walkover.register_global -mcl_enchanting.enchantments.frost_walker = { +redstone_enchanting.enchantments.frost_walker = { name = S("Frost Walker"), max_level = 2, primary = {}, @@ -201,7 +201,7 @@ mcl_enchanting.enchantments.frost_walker = { walkover.register_global(function(pos, _, player) local boots = player:get_inventory():get_stack("armor", 5) - local frost_walker = mcl_enchanting.get_enchantment(boots, "frost_walker") + local frost_walker = redstone_enchanting.get_enchantment(boots, "frost_walker") if frost_walker <= 0 then return end @@ -217,7 +217,7 @@ walkover.register_global(function(pos, _, player) end) -- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.impaling = { +--[[redstone_enchanting.enchantments.impaling = { name = S("Impaling"), max_level = 5, primary = {trident = true}, @@ -236,7 +236,7 @@ end) }]]-- -- implemented in mcl_bows -mcl_enchanting.enchantments.infinity = { +redstone_enchanting.enchantments.infinity = { name = S("Infinity"), max_level = 1, primary = {bow = true}, @@ -255,7 +255,7 @@ mcl_enchanting.enchantments.infinity = { } -- implemented via minetest.calculate_knockback -mcl_enchanting.enchantments.knockback = { +redstone_enchanting.enchantments.knockback = { name = S("Knockback"), max_level = 2, primary = {sword = true}, @@ -282,8 +282,8 @@ function minetest.calculate_knockback(player, hitter, time_from_last_punch, tool end if hitter and hitter:is_player() and distance <= 3 then local wielditem = hitter:get_wielded_item() - --knockback = knockback + 3 * mcl_enchanting.get_enchantment(wielditem, "knockback") - local enchant = mcl_enchanting.get_enchantment(wielditem, "knockback") + --knockback = knockback + 3 * redstone_enchanting.get_enchantment(wielditem, "knockback") + local enchant = redstone_enchanting.get_enchantment(wielditem, "knockback") knockback = knockback + 3.22 * enchant -- add vertical lift to knockback local v = player:get_velocity() @@ -352,7 +352,7 @@ function minetest.calculate_knockback(player, hitter, time_from_last_punch, tool end -- implemented in mcl_mobs and mobs_mc -mcl_enchanting.enchantments.looting = { +redstone_enchanting.enchantments.looting = { name = S("Looting"), max_level = 3, primary = {sword = true}, @@ -371,7 +371,7 @@ mcl_enchanting.enchantments.looting = { } -- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.loyalty = { +--[[redstone_enchanting.enchantments.loyalty = { name = S("Loyalty"), max_level = 3, primary = {trident = true}, @@ -390,7 +390,7 @@ mcl_enchanting.enchantments.looting = { }]]-- -- implemented in mcl_fishing -mcl_enchanting.enchantments.luck_of_the_sea = { +redstone_enchanting.enchantments.luck_of_the_sea = { name = S("Luck of the Sea"), max_level = 3, primary = {fishing_rod = true}, @@ -409,7 +409,7 @@ mcl_enchanting.enchantments.luck_of_the_sea = { } -- implemented in mcl_fishing -mcl_enchanting.enchantments.lure = { +redstone_enchanting.enchantments.lure = { name = S("Lure"), max_level = 3, primary = {fishing_rod = true}, @@ -428,7 +428,7 @@ mcl_enchanting.enchantments.lure = { } -- implemented in mcl_experience -mcl_enchanting.enchantments.mending = { +redstone_enchanting.enchantments.mending = { name = S("Mending"), max_level = 1, primary = {}, @@ -462,7 +462,7 @@ mcl_experience.register_on_add_xp(function(player, xp) for _, can in ipairs(candidates) do local stack = inv:get_stack(can.list, can.index) local wear = stack:get_wear() - if mcl_enchanting.has_enchantment(stack, "mending") and wear > 0 then + if redstone_enchanting.has_enchantment(stack, "mending") and wear > 0 then can.stack = stack can.wear = wear table.insert(final_candidates, can) @@ -492,7 +492,7 @@ mcl_experience.register_on_add_xp(function(player, xp) return xp end, 0) -mcl_enchanting.enchantments.multishot = { +redstone_enchanting.enchantments.multishot = { name = S("Multishot"), max_level = 1, primary = {crossbow = true}, @@ -511,7 +511,7 @@ mcl_enchanting.enchantments.multishot = { } -- requires missing MineClone2 feature -mcl_enchanting.enchantments.piercing = { +redstone_enchanting.enchantments.piercing = { name = S("Piercing"), max_level = 4, primary = {crossbow = true}, @@ -530,7 +530,7 @@ mcl_enchanting.enchantments.piercing = { } -- implemented in mcl_bows -mcl_enchanting.enchantments.power = { +redstone_enchanting.enchantments.power = { name = S("Power"), max_level = 5, primary = {bow = true}, @@ -549,7 +549,7 @@ mcl_enchanting.enchantments.power = { } -- implemented via minetest.calculate_knockback (together with the Knockback enchantment) and mcl_bows -mcl_enchanting.enchantments.punch = { +redstone_enchanting.enchantments.punch = { name = S("Punch"), max_level = 2, primary = {}, @@ -568,7 +568,7 @@ mcl_enchanting.enchantments.punch = { } -- requires missing MineClone2 feature -mcl_enchanting.enchantments.quick_charge = { +redstone_enchanting.enchantments.quick_charge = { name = S("Quick Charge"), max_level = 3, primary = {crossbow = true}, @@ -587,7 +587,7 @@ mcl_enchanting.enchantments.quick_charge = { } -- unimplemented ---[[mcl_enchanting.enchantments.respiration = { +--[[redstone_enchanting.enchantments.respiration = { name = S("Respiration"), max_level = 3, primary = {armor_head = true}, @@ -606,7 +606,7 @@ mcl_enchanting.enchantments.quick_charge = { }]]-- -- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.riptide = { +--[[redstone_enchanting.enchantments.riptide = { name = S("Riptide"), max_level = 3, primary = {trident = true}, @@ -625,7 +625,7 @@ mcl_enchanting.enchantments.quick_charge = { }]]-- -- implemented via on_enchant -mcl_enchanting.enchantments.sharpness = { +redstone_enchanting.enchantments.sharpness = { name = S("Sharpness"), max_level = 5, primary = {sword = true}, @@ -644,7 +644,7 @@ mcl_enchanting.enchantments.sharpness = { } -- implemented in mcl_item_entity -mcl_enchanting.enchantments.silk_touch = { +redstone_enchanting.enchantments.silk_touch = { name = S("Silk Touch"), max_level = 1, primary = {pickaxe = true, shovel = true, axe = true, hoe = true}, @@ -663,7 +663,7 @@ mcl_enchanting.enchantments.silk_touch = { } -- implemented via on_enchant and additions in mobs_mc -mcl_enchanting.enchantments.smite = { +redstone_enchanting.enchantments.smite = { name = S("Smite"), max_level = 5, primary = {sword = true}, @@ -682,7 +682,7 @@ mcl_enchanting.enchantments.smite = { } -- implemented in mcl_playerplus -mcl_enchanting.enchantments.soul_speed = { +redstone_enchanting.enchantments.soul_speed = { name = S("Soul Speed"), max_level = 3, primary = {}, @@ -701,7 +701,7 @@ mcl_enchanting.enchantments.soul_speed = { } -- requires missing MineClone2 feature ---[[mcl_enchanting.enchantments.sweeping_edge = { +--[[redstone_enchanting.enchantments.sweeping_edge = { name = S("Sweeping Edge"), max_level = 3, primary = {sword = true}, @@ -720,7 +720,7 @@ mcl_enchanting.enchantments.soul_speed = { }]]-- -- for tools & weapons implemented via on_enchant; for bows implemented in mcl_bows; for armor implemented in mcl_armor and mcl_tt; for fishing rods implemented in mcl_fishing -mcl_enchanting.enchantments.unbreaking = { +redstone_enchanting.enchantments.unbreaking = { name = S("Unbreaking"), max_level = 3, primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true, pickaxe = true, shovel = true, axe = true, hoe = true, sword = true, fishing_rod = true, bow = true}, diff --git a/engine.lua b/engine.lua index dd01d59..6e6eb07 100644 --- a/engine.lua +++ b/engine.lua @@ -1,19 +1,19 @@ local S = minetest.get_translator(minetest.get_current_modname()) local F = minetest.formspec_escape -function mcl_enchanting.is_book(itemname) - return itemname == "mcl_books:book" or itemname == "mcl_enchanting:book_enchanted" or +function redstone_enchanting.is_book(itemname) + return itemname == "mcl_books:book" or itemname == "redstone_enchanting:book_enchanted" or itemname == "mcl_books:book_enchanted" end -function mcl_enchanting.get_enchantments(itemstack) +function redstone_enchanting.get_enchantments(itemstack) if not itemstack then return {} end - return minetest.deserialize(itemstack:get_meta():get_string("mcl_enchanting:enchantments")) or {} + return minetest.deserialize(itemstack:get_meta():get_string("redstone_enchanting:enchantments")) or {} end -function mcl_enchanting.unload_enchantments(itemstack) +function redstone_enchanting.unload_enchantments(itemstack) local itemdef = itemstack:get_definition() local meta = itemstack:get_meta() if itemdef.tool_capabilities then @@ -26,80 +26,80 @@ function mcl_enchanting.unload_enchantments(itemstack) end end -function mcl_enchanting.load_enchantments(itemstack, enchantments) - if not mcl_enchanting.is_book(itemstack:get_name()) then - mcl_enchanting.unload_enchantments(itemstack) - for enchantment, level in pairs(enchantments or mcl_enchanting.get_enchantments(itemstack)) do - local enchantment_def = mcl_enchanting.enchantments[enchantment] +function redstone_enchanting.load_enchantments(itemstack, enchantments) + if not redstone_enchanting.is_book(itemstack:get_name()) then + redstone_enchanting.unload_enchantments(itemstack) + for enchantment, level in pairs(enchantments or redstone_enchanting.get_enchantments(itemstack)) do + local enchantment_def = redstone_enchanting.enchantments[enchantment] if enchantment_def.on_enchant then enchantment_def.on_enchant(itemstack, level) end end - mcl_enchanting.update_groupcaps(itemstack) + redstone_enchanting.update_groupcaps(itemstack) end tt.reload_itemstack_description(itemstack) end -function mcl_enchanting.set_enchantments(itemstack, enchantments) - itemstack:get_meta():set_string("mcl_enchanting:enchantments", minetest.serialize(enchantments)) - mcl_enchanting.load_enchantments(itemstack) +function redstone_enchanting.set_enchantments(itemstack, enchantments) + itemstack:get_meta():set_string("redstone_enchanting:enchantments", minetest.serialize(enchantments)) + redstone_enchanting.load_enchantments(itemstack) end -function mcl_enchanting.get_enchantment(itemstack, enchantment) - return mcl_enchanting.get_enchantments(itemstack)[enchantment] or 0 +function redstone_enchanting.get_enchantment(itemstack, enchantment) + return redstone_enchanting.get_enchantments(itemstack)[enchantment] or 0 end -function mcl_enchanting.has_enchantment(itemstack, enchantment) - return mcl_enchanting.get_enchantment(itemstack, enchantment) > 0 +function redstone_enchanting.has_enchantment(itemstack, enchantment) + return redstone_enchanting.get_enchantment(itemstack, enchantment) > 0 end -function mcl_enchanting.get_enchantment_description(enchantment, level) - local enchantment_def = mcl_enchanting.enchantments[enchantment] +function redstone_enchanting.get_enchantment_description(enchantment, level) + local enchantment_def = redstone_enchanting.enchantments[enchantment] return enchantment_def.name .. (enchantment_def.max_level == 1 and "" or " " .. mcl_util.to_roman(level)) end -function mcl_enchanting.get_colorized_enchantment_description(enchantment, level) - return minetest.colorize(mcl_enchanting.enchantments[enchantment].curse and mcl_colors.RED or mcl_colors.GRAY, - mcl_enchanting.get_enchantment_description(enchantment, level)) +function redstone_enchanting.get_colorized_enchantment_description(enchantment, level) + return minetest.colorize(redstone_enchanting.enchantments[enchantment].curse and mcl_colors.RED or mcl_colors.GRAY, + redstone_enchanting.get_enchantment_description(enchantment, level)) end -function mcl_enchanting.get_enchanted_itemstring(itemname) +function redstone_enchanting.get_enchanted_itemstring(itemname) local def = minetest.registered_items[itemname] - return def and def._mcl_enchanting_enchanted_tool + return def and def._redstone_enchanting_enchanted_tool end -function mcl_enchanting.set_enchanted_itemstring(itemstack) - itemstack:set_name(mcl_enchanting.get_enchanted_itemstring(itemstack:get_name())) +function redstone_enchanting.set_enchanted_itemstring(itemstack) + itemstack:set_name(redstone_enchanting.get_enchanted_itemstring(itemstack:get_name())) end -function mcl_enchanting.is_enchanted(itemname) +function redstone_enchanting.is_enchanted(itemname) return minetest.get_item_group(itemname, "enchanted") > 0 end -function mcl_enchanting.not_enchantable_on_enchanting_table(itemname) - return mcl_enchanting.get_enchantability(itemname) == -1 +function redstone_enchanting.not_enchantable_on_enchanting_table(itemname) + return redstone_enchanting.get_enchantability(itemname) == -1 end -function mcl_enchanting.is_enchantable(itemname) - return mcl_enchanting.get_enchantability(itemname) > 0 or - mcl_enchanting.not_enchantable_on_enchanting_table(itemname) +function redstone_enchanting.is_enchantable(itemname) + return redstone_enchanting.get_enchantability(itemname) > 0 or + redstone_enchanting.not_enchantable_on_enchanting_table(itemname) end -function mcl_enchanting.can_enchant_freshly(itemname) - return mcl_enchanting.is_enchantable(itemname) and not mcl_enchanting.is_enchanted(itemname) +function redstone_enchanting.can_enchant_freshly(itemname) + return redstone_enchanting.is_enchantable(itemname) and not redstone_enchanting.is_enchanted(itemname) end -function mcl_enchanting.get_enchantability(itemname) +function redstone_enchanting.get_enchantability(itemname) return minetest.get_item_group(itemname, "enchantability") end -function mcl_enchanting.item_supports_enchantment(itemname, enchantment, early) - if not mcl_enchanting.is_enchantable(itemname) then +function redstone_enchanting.item_supports_enchantment(itemname, enchantment, early) + if not redstone_enchanting.is_enchantable(itemname) then return false end - local enchantment_def = mcl_enchanting.enchantments[enchantment] - if mcl_enchanting.is_book(itemname) then + local enchantment_def = redstone_enchanting.enchantments[enchantment] + if redstone_enchanting.is_book(itemname) then return true, (not enchantment_def.treasure) end local itemdef = minetest.registered_items[itemname] @@ -124,8 +124,8 @@ function mcl_enchanting.item_supports_enchantment(itemname, enchantment, early) return false end -function mcl_enchanting.can_enchant(itemstack, enchantment, level) - local enchantment_def = mcl_enchanting.enchantments[enchantment] +function redstone_enchanting.can_enchant(itemstack, enchantment, level) + local enchantment_def = redstone_enchanting.enchantments[enchantment] if not enchantment_def then return false, "enchantment invalid" end @@ -133,7 +133,7 @@ function mcl_enchanting.can_enchant(itemstack, enchantment, level) if itemname == "" then return false, "item missing" end - local supported, primary = mcl_enchanting.item_supports_enchantment(itemname, enchantment) + local supported, primary = redstone_enchanting.item_supports_enchantment(itemname, enchantment) if not supported then return false, "item not supported" end @@ -145,44 +145,44 @@ function mcl_enchanting.can_enchant(itemstack, enchantment, level) elseif level < 1 then return false, "level too small", 1 end - local item_enchantments = mcl_enchanting.get_enchantments(itemstack) + local item_enchantments = redstone_enchanting.get_enchantments(itemstack) local enchantment_level = item_enchantments[enchantment] if enchantment_level then - return false, "incompatible", mcl_enchanting.get_enchantment_description(enchantment, enchantment_level) + return false, "incompatible", redstone_enchanting.get_enchantment_description(enchantment, enchantment_level) end - if not mcl_enchanting.is_book(itemname) then + if not redstone_enchanting.is_book(itemname) then for incompatible in pairs(enchantment_def.incompatible) do local incompatible_level = item_enchantments[incompatible] if incompatible_level then return false, "incompatible", - mcl_enchanting.get_enchantment_description(incompatible, incompatible_level) + redstone_enchanting.get_enchantment_description(incompatible, incompatible_level) end end end return true, nil, nil, primary end -function mcl_enchanting.enchant(itemstack, enchantment, level) - mcl_enchanting.set_enchanted_itemstring(itemstack) - local enchantments = mcl_enchanting.get_enchantments(itemstack) +function redstone_enchanting.enchant(itemstack, enchantment, level) + redstone_enchanting.set_enchanted_itemstring(itemstack) + local enchantments = redstone_enchanting.get_enchantments(itemstack) enchantments[enchantment] = level - mcl_enchanting.set_enchantments(itemstack, enchantments) + redstone_enchanting.set_enchantments(itemstack, enchantments) return itemstack end -function mcl_enchanting.combine(itemstack, combine_with) +function redstone_enchanting.combine(itemstack, combine_with) local itemname = itemstack:get_name() local combine_name = combine_with:get_name() - local enchanted_itemname = mcl_enchanting.get_enchanted_itemstring(itemname) + local enchanted_itemname = redstone_enchanting.get_enchanted_itemstring(itemname) if not enchanted_itemname or - enchanted_itemname ~= mcl_enchanting.get_enchanted_itemstring(combine_name) and - not mcl_enchanting.is_book(combine_name) then + enchanted_itemname ~= redstone_enchanting.get_enchanted_itemstring(combine_name) and + not redstone_enchanting.is_book(combine_name) then return false end - local enchantments = mcl_enchanting.get_enchantments(itemstack) + local enchantments = redstone_enchanting.get_enchantments(itemstack) local any_new_enchantment = false - for enchantment, combine_level in pairs(mcl_enchanting.get_enchantments(combine_with)) do - local enchantment_def = mcl_enchanting.enchantments[enchantment] + for enchantment, combine_level in pairs(redstone_enchanting.get_enchantments(combine_with)) do + local enchantment_def = redstone_enchanting.enchantments[enchantment] local enchantment_level = enchantments[enchantment] if enchantment_level then -- The enchantment already exist in the provided item if enchantment_level == combine_level then @@ -191,7 +191,7 @@ function mcl_enchanting.combine(itemstack, combine_with) enchantment_level = math.max(enchantment_level, combine_level) end any_new_enchantment = any_new_enchantment or ( enchantment_level ~= enchantments[enchantment] ) - elseif mcl_enchanting.item_supports_enchantment(itemname, enchantment) then -- this is a new enchantement to try to add + elseif redstone_enchanting.item_supports_enchantment(itemname, enchantment) then -- this is a new enchantement to try to add local supported = true for incompatible in pairs(enchantment_def.incompatible) do if enchantments[incompatible] then @@ -210,19 +210,19 @@ function mcl_enchanting.combine(itemstack, combine_with) end if any_new_enchantment then itemstack:set_name(enchanted_itemname) - mcl_enchanting.set_enchantments(itemstack, enchantments) + redstone_enchanting.set_enchantments(itemstack, enchantments) end return any_new_enchantment end -function mcl_enchanting.enchantments_snippet(_, _, itemstack) +function redstone_enchanting.enchantments_snippet(_, _, itemstack) if not itemstack then return end - local enchantments = mcl_enchanting.get_enchantments(itemstack) + local enchantments = redstone_enchanting.get_enchantments(itemstack) local text = "" for enchantment, level in pairs(enchantments) do - text = text .. mcl_enchanting.get_colorized_enchantment_description(enchantment, level) .. "\n" + text = text .. redstone_enchanting.get_colorized_enchantment_description(enchantment, level) .. "\n" end if text ~= "" then if not itemstack:get_definition()._tt_original_description then @@ -248,7 +248,7 @@ local function get_after_use_callback(itemdef) -- one too. return function(itemstack, user, node, digparams) itemdef.after_use(itemstack, user, node, digparams) - mcl_enchanting.update_groupcaps(itemstack) + redstone_enchanting.update_groupcaps(itemstack) end end @@ -259,22 +259,22 @@ local function get_after_use_callback(itemdef) itemstack:add_wear(digparams.wear) end - --local enchantments = mcl_enchanting.get_enchantments(itemstack) - mcl_enchanting.update_groupcaps(itemstack) + --local enchantments = redstone_enchanting.get_enchantments(itemstack) + redstone_enchanting.update_groupcaps(itemstack) end end -function mcl_enchanting.initialize() +function redstone_enchanting.initialize() local register_tool_list = {} local register_item_list = {} for itemname, itemdef in pairs(minetest.registered_items) do - if mcl_enchanting.can_enchant_freshly(itemname) and not mcl_enchanting.is_book(itemname) then + if redstone_enchanting.can_enchant_freshly(itemname) and not redstone_enchanting.is_book(itemname) then local new_name = itemname .. "_enchanted" - minetest.override_item(itemname, { _mcl_enchanting_enchanted_tool = new_name }) + minetest.override_item(itemname, { _redstone_enchanting_enchanted_tool = new_name }) local new_def = table.copy(itemdef) - new_def.inventory_image = itemdef.inventory_image .. mcl_enchanting.overlay + new_def.inventory_image = itemdef.inventory_image .. redstone_enchanting.overlay if new_def.wield_image then - new_def.wield_image = new_def.wield_image .. mcl_enchanting.overlay + new_def.wield_image = new_def.wield_image .. redstone_enchanting.overlay end new_def.groups.not_in_creative_inventory = 1 new_def.groups.not_in_craft_guide = 1 @@ -282,11 +282,11 @@ function mcl_enchanting.initialize() if new_def._mcl_armor_texture then if type(new_def._mcl_armor_texture) == "string" then - new_def._mcl_armor_texture = new_def._mcl_armor_texture .. mcl_enchanting.overlay + new_def._mcl_armor_texture = new_def._mcl_armor_texture .. redstone_enchanting.overlay end end - new_def._mcl_enchanting_enchanted_tool = new_name + new_def._redstone_enchanting_enchanted_tool = new_name new_def.after_use = get_after_use_callback(itemdef) local register_list = register_item_list if itemdef.type == "tool" then @@ -303,7 +303,7 @@ function mcl_enchanting.initialize() end end -function mcl_enchanting.random(pr, ...) +function redstone_enchanting.random(pr, ...) local r = pr and pr:next(...) or math.random(...) if pr and not ({ ... })[1] then @@ -313,11 +313,11 @@ function mcl_enchanting.random(pr, ...) return r end -function mcl_enchanting.get_random_enchantment(itemstack, treasure, weighted, exclude, pr) +function redstone_enchanting.get_random_enchantment(itemstack, treasure, weighted, exclude, pr) local possible = {} - for enchantment, enchantment_def in pairs(mcl_enchanting.enchantments) do - local can_enchant, _, _, primary = mcl_enchanting.can_enchant(itemstack, enchantment, 1) + for enchantment, enchantment_def in pairs(redstone_enchanting.enchantments) do + local can_enchant, _, _, primary = redstone_enchanting.can_enchant(itemstack, enchantment, 1) if can_enchant and (primary or treasure) and (not exclude or table.indexof(exclude, enchantment) == -1) then local weight = weighted and enchantment_def.weight or 1 @@ -328,27 +328,27 @@ function mcl_enchanting.get_random_enchantment(itemstack, treasure, weighted, ex end end - return #possible > 0 and possible[mcl_enchanting.random(pr, 1, #possible)] + return #possible > 0 and possible[redstone_enchanting.random(pr, 1, #possible)] end -function mcl_enchanting.generate_random_enchantments(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, +function redstone_enchanting.generate_random_enchantments(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, ignore_already_enchanted, pr) local itemname = itemstack:get_name() - if (not mcl_enchanting.can_enchant_freshly(itemname) and not ignore_already_enchanted) or - mcl_enchanting.not_enchantable_on_enchanting_table(itemname) then + if (not redstone_enchanting.can_enchant_freshly(itemname) and not ignore_already_enchanted) or + redstone_enchanting.not_enchantable_on_enchanting_table(itemname) then return end itemstack = ItemStack(itemstack) local enchantability = minetest.get_item_group(itemname, "enchantability") - enchantability = 1 + mcl_enchanting.random(pr, 0, math.floor(enchantability / 4)) + - mcl_enchanting.random(pr, 0, math.floor(enchantability / 4)) + enchantability = 1 + redstone_enchanting.random(pr, 0, math.floor(enchantability / 4)) + + redstone_enchanting.random(pr, 0, math.floor(enchantability / 4)) enchantment_level = enchantment_level + enchantability enchantment_level = enchantment_level + - enchantment_level * (mcl_enchanting.random(pr) + mcl_enchanting.random(pr) - 1) * 0.15 + enchantment_level * (redstone_enchanting.random(pr) + redstone_enchanting.random(pr) - 1) * 0.15 enchantment_level = math.max(math.floor(enchantment_level + 0.5), 1) local enchantments = {} @@ -363,13 +363,13 @@ function mcl_enchanting.generate_random_enchantments(itemstack, enchantment_leve break end - local selected_enchantment = mcl_enchanting.get_random_enchantment(itemstack, treasure, true, nil, pr) + local selected_enchantment = redstone_enchanting.get_random_enchantment(itemstack, treasure, true, nil, pr) if not selected_enchantment then break end - local enchantment_def = mcl_enchanting.enchantments[selected_enchantment] + local enchantment_def = redstone_enchanting.enchantments[selected_enchantment] local power_range_table = enchantment_def.power_range_table local enchantment_power @@ -387,62 +387,62 @@ function mcl_enchanting.generate_random_enchantments(itemstack, enchantment_leve return end - description = mcl_enchanting.get_enchantment_description(selected_enchantment, enchantment_power) + description = redstone_enchanting.get_enchantment_description(selected_enchantment, enchantment_power) end if enchantment_power then enchantments[selected_enchantment] = enchantment_power - mcl_enchanting.enchant(itemstack, selected_enchantment, enchantment_power) + redstone_enchanting.enchant(itemstack, selected_enchantment, enchantment_power) end - until not no_reduced_bonus_chance and mcl_enchanting.random(pr) >= (enchantment_level + 1) / 50 + until not no_reduced_bonus_chance and redstone_enchanting.random(pr) >= (enchantment_level + 1) / 50 return enchantments, description end -function mcl_enchanting.generate_random_enchantments_reliable(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, ignore_already_enchanted, pr) +function redstone_enchanting.generate_random_enchantments_reliable(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, ignore_already_enchanted, pr) local enchantments repeat - enchantments = mcl_enchanting.generate_random_enchantments(itemstack, enchantment_level, treasure, + enchantments = redstone_enchanting.generate_random_enchantments(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, ignore_already_enchanted, pr) until enchantments return enchantments end -function mcl_enchanting.enchant_randomly(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, +function redstone_enchanting.enchant_randomly(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, ignore_already_enchanted, pr) - local enchantments = mcl_enchanting.generate_random_enchantments_reliable(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, ignore_already_enchanted, pr) + local enchantments = redstone_enchanting.generate_random_enchantments_reliable(itemstack, enchantment_level, treasure, no_reduced_bonus_chance, ignore_already_enchanted, pr) - mcl_enchanting.set_enchanted_itemstring(itemstack) - mcl_enchanting.set_enchantments(itemstack, enchantments) + redstone_enchanting.set_enchanted_itemstring(itemstack) + redstone_enchanting.set_enchantments(itemstack, enchantments) return itemstack end -function mcl_enchanting.enchant_uniform_randomly(stack, exclude, pr) - local enchantment = mcl_enchanting.get_random_enchantment(stack, true, false, exclude, pr) +function redstone_enchanting.enchant_uniform_randomly(stack, exclude, pr) + local enchantment = redstone_enchanting.get_random_enchantment(stack, true, false, exclude, pr) if enchantment then - mcl_enchanting.enchant(stack, enchantment, - mcl_enchanting.random(pr, 1, mcl_enchanting.enchantments[enchantment].max_level)) + redstone_enchanting.enchant(stack, enchantment, + redstone_enchanting.random(pr, 1, redstone_enchanting.enchantments[enchantment].max_level)) end return stack end -function mcl_enchanting.get_random_glyph_row() +function redstone_enchanting.get_random_glyph_row() local glyphs = "" local x = 1.3 for i = 1, 9 do glyphs = glyphs .. - "image[" .. x .. ",0.1;0.5,0.5;mcl_enchanting_glyph_" .. math.random(18) .. ".png^[colorize:#675D49:255]" + "image[" .. x .. ",0.1;0.5,0.5;redstone_enchanting_glyph_" .. math.random(18) .. ".png^[colorize:#675D49:255]" x = x + 0.6 end return glyphs end -function mcl_enchanting.generate_random_table_slots(itemstack, num_bookshelves) +function redstone_enchanting.generate_random_table_slots(itemstack, num_bookshelves) local base = math.random(8) + math.floor(num_bookshelves / 2) + math.random(0, num_bookshelves) local required_levels = { math.max(base / 3, 1), @@ -452,12 +452,12 @@ function mcl_enchanting.generate_random_table_slots(itemstack, num_bookshelves) local slots = {} for i, enchantment_level in ipairs(required_levels) do local slot = false - local enchantments, description = mcl_enchanting.generate_random_enchantments(itemstack, enchantment_level) + local enchantments, description = redstone_enchanting.generate_random_enchantments(itemstack, enchantment_level) if enchantments then slot = { enchantments = enchantments, description = description, - glyphs = mcl_enchanting.get_random_glyph_row(), + glyphs = redstone_enchanting.get_random_glyph_row(), level_requirement = math.max(i, math.floor(enchantment_level)), } end @@ -466,23 +466,23 @@ function mcl_enchanting.generate_random_table_slots(itemstack, num_bookshelves) return slots end -function mcl_enchanting.get_table_slots(player, itemstack, num_bookshelves) +function redstone_enchanting.get_table_slots(player, itemstack, num_bookshelves) local itemname = itemstack:get_name() - if (not mcl_enchanting.can_enchant_freshly(itemname)) or mcl_enchanting.not_enchantable_on_enchanting_table(itemname) then + if (not redstone_enchanting.can_enchant_freshly(itemname)) or redstone_enchanting.not_enchantable_on_enchanting_table(itemname) then return { false, false, false } end local meta = player:get_meta() - local player_slots = minetest.deserialize(meta:get_string("mcl_enchanting:slots")) or {} + local player_slots = minetest.deserialize(meta:get_string("redstone_enchanting:slots")) or {} local player_bookshelves_slots = player_slots[num_bookshelves] or {} local player_bookshelves_item_slots = player_bookshelves_slots[itemname] if player_bookshelves_item_slots then return player_bookshelves_item_slots else - player_bookshelves_item_slots = mcl_enchanting.generate_random_table_slots(itemstack, num_bookshelves) + player_bookshelves_item_slots = redstone_enchanting.generate_random_table_slots(itemstack, num_bookshelves) if player_bookshelves_item_slots then player_bookshelves_slots[itemname] = player_bookshelves_item_slots player_slots[num_bookshelves] = player_bookshelves_slots - meta:set_string("mcl_enchanting:slots", minetest.serialize(player_slots)) + meta:set_string("redstone_enchanting:slots", minetest.serialize(player_slots)) return player_bookshelves_item_slots else return { false, false, false } @@ -490,17 +490,17 @@ function mcl_enchanting.get_table_slots(player, itemstack, num_bookshelves) end end -function mcl_enchanting.reset_table_slots(player) - player:get_meta():set_string("mcl_enchanting:slots", "") +function redstone_enchanting.reset_table_slots(player) + player:get_meta():set_string("redstone_enchanting:slots", "") end -function mcl_enchanting.show_enchanting_formspec(player) +function redstone_enchanting.show_enchanting_formspec(player) local C = minetest.get_color_escape_sequence local name = player:get_player_name() local meta = player:get_meta() local inv = player:get_inventory() - local num_bookshelves = meta:get_int("mcl_enchanting:num_bookshelves") - local table_name = meta:get_string("mcl_enchanting:table_name") + local num_bookshelves = meta:get_int("redstone_enchanting:num_bookshelves") + local table_name = meta:get_string("redstone_enchanting:table_name") local formspec = table.concat({ "formspec_version[4]", @@ -510,9 +510,9 @@ function mcl_enchanting.show_enchanting_formspec(player) mcl_formspec.get_itemslot_bg_v4(1, 3.25, 1, 1), "list[current_player;enchanting_item;1,3.25;1,1]", mcl_formspec.get_itemslot_bg_v4(2.25, 3.25, 1, 1), - "image[2.25,3.25;1,1;mcl_enchanting_lapis_background.png]", - "list[current_player;enchanting_lapis;2.25,3.25;1,1]", - "image[4.125,0.56;7.25,4.1;mcl_enchanting_button_background.png]", + "image[2.25,3.25;1,1;redstone_enchanting_redstone_background.png]", + "list[current_player;enchanting_redstone;2.25,3.25;1,1]", + "image[4.125,0.56;7.25,4.1;redstone_enchanting_button_background.png]", "label[0.375,4.7;" .. F(C(mcl_formspec.label_color) .. S("Inventory")) .. "]", mcl_formspec.get_itemslot_bg_v4(0.375, 5.1, 9, 3), "list[current_player;main;0.375,5.1;9,3;9]", @@ -524,7 +524,7 @@ function mcl_enchanting.show_enchanting_formspec(player) "listring[current_player;main]", "listring[current_player;enchanting]", "listring[current_player;main]", - "listring[current_player;enchanting_lapis]", + "listring[current_player;enchanting_redstone]", "listring[current_player;main]", }) @@ -532,12 +532,12 @@ function mcl_enchanting.show_enchanting_formspec(player) local player_levels = mcl_experience.get_level(player) local y = 0.65 local any_enchantment = false - local table_slots = mcl_enchanting.get_table_slots(player, itemstack, num_bookshelves) + local table_slots = redstone_enchanting.get_table_slots(player, itemstack, num_bookshelves) for i, slot in ipairs(table_slots) do any_enchantment = any_enchantment or slot - local enough_lapis = inv:contains_item("enchanting_lapis", ItemStack({ name = "mcl_core:lapis", count = i })) + local enough_redstone = inv:contains_item("enchanting_redstone", ItemStack({ name = "mesecons:redstone", count = i })) local enough_levels = slot and slot.level_requirement <= player_levels - local can_enchant = (slot and enough_lapis and enough_levels) + local can_enchant = (slot and enough_redstone and enough_levels) local ending = (can_enchant and "" or "_off") local hover_ending = (can_enchant and "_hovered" or "_off") formspec = formspec @@ -555,18 +555,18 @@ function mcl_enchanting.show_enchanting_formspec(player) " . . . ?\n\n" .. ( enough_levels and - C(enough_lapis and "#818181" or "#FC5454") .. - F(S("@1 Lapis Lazuli", i)) .. "\n" .. C("#818181") .. F(S("@1 Enchantment Levels", i)) or + C(enough_redstone and "#818181" or "#FC5454") .. + F(S("@1 Redstone", i)) .. "\n" .. C("#818181") .. F(S("@1 Enchantment Levels", i)) or C("#FC5454") .. F(S("Level requirement: @1", slot.level_requirement))) .. "]" or "") .. "style[button_" .. i .. - ";bgimg=mcl_enchanting_button" .. + ";bgimg=redstone_enchanting_button" .. ending .. - ".png;bgimg_hovered=mcl_enchanting_button" .. - hover_ending .. ".png;bgimg_pressed=mcl_enchanting_button" .. hover_ending .. ".png]" + ".png;bgimg_hovered=redstone_enchanting_button" .. + hover_ending .. ".png;bgimg_pressed=redstone_enchanting_button" .. hover_ending .. ".png]" .. "button[0,0;7.25,1.3;button_" .. i .. ";]" - .. (slot and "image[0,0;1.3,1.3;mcl_enchanting_number_" .. i .. ending .. ".png]" or "") + .. (slot and "image[0,0;1.3,1.3;redstone_enchanting_number_" .. i .. ending .. ".png]" or "") .. (slot and "label[6.8,1;" .. C(can_enchant and "#80FF20" or "#407F10") .. slot.level_requirement .. "]" or "") .. (slot and slot.glyphs or "") .. "container_end[]" @@ -578,12 +578,12 @@ function mcl_enchanting.show_enchanting_formspec(player) (any_enchantment and 1.1 or 1.67) .. ",1.2;" .. (any_enchantment and 2 or 0.87) .. - ",1.43;mcl_enchanting_book_" .. (any_enchantment and "open" or "closed") .. ".png]" - minetest.show_formspec(name, "mcl_enchanting:table", formspec) + ",1.43;redstone_enchanting_book_" .. (any_enchantment and "open" or "closed") .. ".png]" + minetest.show_formspec(name, "redstone_enchanting:table", formspec) end -function mcl_enchanting.handle_formspec_fields(player, formname, fields) - if formname == "mcl_enchanting:table" then +function redstone_enchanting.handle_formspec_fields(player, formname, fields) + if formname == "redstone_enchanting:table" then local button_pressed for i = 1, 3 do if fields["button_" .. i] then @@ -594,13 +594,13 @@ function mcl_enchanting.handle_formspec_fields(player, formname, fields) local name = player:get_player_name() local inv = player:get_inventory() local meta = player:get_meta() - local num_bookshelfes = meta:get_int("mcl_enchanting:num_bookshelves") + local num_bookshelfes = meta:get_int("redstone_enchanting:num_bookshelves") local itemstack = inv:get_stack("enchanting_item", 1) - local cost = ItemStack({ name = "mcl_core:lapis", count = button_pressed }) - if not inv:contains_item("enchanting_lapis", cost) then + local cost = ItemStack({ name = "mesecons:redstone", count = button_pressed }) + if not inv:contains_item("enchanting_redstone", cost) then return end - local slots = mcl_enchanting.get_table_slots(player, itemstack, num_bookshelfes) + local slots = redstone_enchanting.get_table_slots(player, itemstack, num_bookshelfes) local slot = slots[button_pressed] if not slot then return @@ -610,27 +610,27 @@ function mcl_enchanting.handle_formspec_fields(player, formname, fields) return end mcl_experience.set_level(player, player_level - button_pressed) - inv:remove_item("enchanting_lapis", cost) - mcl_enchanting.set_enchanted_itemstring(itemstack) - mcl_enchanting.set_enchantments(itemstack, slot.enchantments) + inv:remove_item("enchanting_redstone", cost) + redstone_enchanting.set_enchanted_itemstring(itemstack) + redstone_enchanting.set_enchantments(itemstack, slot.enchantments) inv:set_stack("enchanting_item", 1, itemstack) - minetest.sound_play("mcl_enchanting_enchant", { to_player = name, gain = 5.0 }) - mcl_enchanting.reset_table_slots(player) - mcl_enchanting.show_enchanting_formspec(player) + minetest.sound_play("redstone_enchanting_enchant", { to_player = name, gain = 5.0 }) + redstone_enchanting.reset_table_slots(player) + redstone_enchanting.show_enchanting_formspec(player) awards.unlock(player:get_player_name(), "mcl:enchanter") end end -function mcl_enchanting.initialize_player(player) +function redstone_enchanting.initialize_player(player) local inv = player:get_inventory() inv:set_size("enchanting", 1) inv:set_size("enchanting_item", 1) - inv:set_size("enchanting_lapis", 1) + inv:set_size("enchanting_redstone", 1) end -function mcl_enchanting.is_enchanting_inventory_action(action, inventory, inventory_info) +function redstone_enchanting.is_enchanting_inventory_action(action, inventory, inventory_info) if inventory:get_location().type == "player" then - local enchanting_lists = mcl_enchanting.enchanting_lists + local enchanting_lists = redstone_enchanting.enchanting_lists if action == "move" then local is_from = table.indexof(enchanting_lists, inventory_info.from_list) ~= -1 local is_to = table.indexof(enchanting_lists, inventory_info.to_list) ~= -1 @@ -643,21 +643,21 @@ function mcl_enchanting.is_enchanting_inventory_action(action, inventory, invent end end -function mcl_enchanting.allow_inventory_action(player, action, inventory, inventory_info) - local is_enchanting_action, do_limit = mcl_enchanting.is_enchanting_inventory_action(action, inventory, +function redstone_enchanting.allow_inventory_action(player, action, inventory, inventory_info) + local is_enchanting_action, do_limit = redstone_enchanting.is_enchanting_inventory_action(action, inventory, inventory_info) if is_enchanting_action and do_limit then if action == "move" then local listname = inventory_info.to_list local stack = inventory:get_stack(inventory_info.from_list, inventory_info.from_index) - if stack:get_name() == "mcl_core:lapis" and listname ~= "enchanting_item" then + if stack:get_name() == "mesecons:redstone" and listname ~= "enchanting_item" then local count = stack:get_count() - local old_stack = inventory:get_stack("enchanting_lapis", 1) + local old_stack = inventory:get_stack("enchanting_redstone", 1) if old_stack:get_name() ~= "" then count = math.min(count, old_stack:get_free_space()) end return count - elseif inventory:get_stack("enchanting_item", 1):get_count() == 0 and listname ~= "enchanting_lapis" then + elseif inventory:get_stack("enchanting_item", 1):get_count() == 0 and listname ~= "enchanting_redstone" then return 1 else return 0 @@ -668,49 +668,49 @@ function mcl_enchanting.allow_inventory_action(player, action, inventory, invent end end -function mcl_enchanting.on_inventory_action(player, action, inventory, inventory_info) - if mcl_enchanting.is_enchanting_inventory_action(action, inventory, inventory_info) then +function redstone_enchanting.on_inventory_action(player, action, inventory, inventory_info) + if redstone_enchanting.is_enchanting_inventory_action(action, inventory, inventory_info) then if action == "move" and inventory_info.to_list == "enchanting" then local stack = inventory:get_stack("enchanting", 1) local result_list - if stack:get_name() == "mcl_core:lapis" then - result_list = "enchanting_lapis" - stack:add_item(inventory:get_stack("enchanting_lapis", 1)) + if stack:get_name() == "mesecons:redstone" then + result_list = "enchanting_redstone" + stack:add_item(inventory:get_stack("enchanting_redstone", 1)) else result_list = "enchanting_item" end inventory:set_stack(result_list, 1, stack) inventory:set_stack("enchanting", 1, nil) end - mcl_enchanting.show_enchanting_formspec(player) + redstone_enchanting.show_enchanting_formspec(player) end end -function mcl_enchanting.schedule_book_animation(self, anim) +function redstone_enchanting.schedule_book_animation(self, anim) self.scheduled_anim = { timer = self.anim_length, anim = anim } end -function mcl_enchanting.set_book_animation(self, anim) - local anim_index = mcl_enchanting.book_animations[anim] - local start, stop = mcl_enchanting.book_animation_steps[anim_index], - mcl_enchanting.book_animation_steps[anim_index + 1] - self.object:set_animation({ x = start, y = stop }, mcl_enchanting.book_animation_speed, 0, - mcl_enchanting.book_animation_loop[anim] or false) +function redstone_enchanting.set_book_animation(self, anim) + local anim_index = redstone_enchanting.book_animations[anim] + local start, stop = redstone_enchanting.book_animation_steps[anim_index], + redstone_enchanting.book_animation_steps[anim_index + 1] + self.object:set_animation({ x = start, y = stop }, redstone_enchanting.book_animation_speed, 0, + redstone_enchanting.book_animation_loop[anim] or false) self.scheduled_anim = nil self.anim_length = (stop - start) / 40 end -function mcl_enchanting.check_animation_schedule(self, dtime) +function redstone_enchanting.check_animation_schedule(self, dtime) local schedanim = self.scheduled_anim if schedanim then schedanim.timer = schedanim.timer - dtime if schedanim.timer <= 0 then - mcl_enchanting.set_book_animation(self, schedanim.anim) + redstone_enchanting.set_book_animation(self, schedanim.anim) end end end -function mcl_enchanting.look_at(self, pos2) +function redstone_enchanting.look_at(self, pos2) local pos1 = self.object:get_pos() local vec = vector.subtract(pos1, pos2) local yaw = math.atan(vec.z / vec.x) - math.pi / 2 @@ -718,10 +718,10 @@ function mcl_enchanting.look_at(self, pos2) self.object:set_yaw(yaw + math.pi) end -function mcl_enchanting.get_bookshelves(pos) +function redstone_enchanting.get_bookshelves(pos) local absolute, relative = {}, {} - for i, rp in ipairs(mcl_enchanting.bookshelf_positions) do - local airp = vector.add(pos, mcl_enchanting.air_positions[i]) + for i, rp in ipairs(redstone_enchanting.bookshelf_positions) do + local airp = vector.add(pos, redstone_enchanting.air_positions[i]) local ap = vector.add(pos, rp) if minetest.get_node(ap).name == "mcl_books:bookshelf" and minetest.get_node(airp).name == "air" then table.insert(absolute, ap) diff --git a/groupcaps.lua b/groupcaps.lua index 2a83727..fe17673 100644 --- a/groupcaps.lua +++ b/groupcaps.lua @@ -41,14 +41,14 @@ end -- -- To make it more efficient it will first check a hash value to determine if -- the tool needs to be updated. -function mcl_enchanting.update_groupcaps(itemstack) +function redstone_enchanting.update_groupcaps(itemstack) local name = itemstack:get_name() if not minetest.registered_tools[name] or not minetest.registered_tools[name].tool_capabilities then return end - local efficiency = mcl_enchanting.get_enchantment(itemstack, "efficiency") - local unbreaking = mcl_enchanting.get_enchantment(itemstack, "unbreaking") + local efficiency = redstone_enchanting.get_enchantment(itemstack, "efficiency") + local unbreaking = redstone_enchanting.get_enchantment(itemstack, "unbreaking") if unbreaking == 0 and efficiency == 0 then return end diff --git a/init.lua b/init.lua index 02ed1ee..ba186e6 100644 --- a/init.lua +++ b/init.lua @@ -5,7 +5,7 @@ local S = minetest.get_translator(modname) local math = math local vector = vector -mcl_enchanting = { +redstone_enchanting = { book_offset = vector.new(0, 0.75, 0), book_animations = {["close"] = 1, ["opening"] = 2, ["open"] = 3, ["closing"] = 4}, book_animation_steps = {0, 640, 680, 700, 740}, @@ -14,7 +14,7 @@ mcl_enchanting = { enchantments = {}, overlay = "^[colorize:purple:50", --overlay = "^[invert:rgb^[multiply:#4df44d:50^[invert:rgb", - enchanting_lists = {"enchanting", "enchanting_item", "enchanting_lapis"}, + enchanting_lists = {"enchanting", "enchanting_item", "enchanting_redstone"}, bookshelf_positions = { {x = -2, y = 0, z = -2}, {x = -2, y = 1, z = -2}, {x = -1, y = 0, z = -2}, {x = -1, y = 1, z = -2}, @@ -83,7 +83,7 @@ minetest.register_chatcommand("enchant", { return false, S("Player '@1' cannot be found.", target_name) end local itemstack = target:get_wielded_item() - local can_enchant, errorstring, extra_info = mcl_enchanting.can_enchant(itemstack, enchantment, level) + local can_enchant, errorstring, extra_info = redstone_enchanting.can_enchant(itemstack, enchantment, level) if not can_enchant then if errorstring == "enchantment invalid" then return false, S("There is no such enchantment '@1'.", enchantment) @@ -98,10 +98,10 @@ minetest.register_chatcommand("enchant", { elseif errorstring == "level too small" then return false, S("The number you have entered (@1) is too small, it must be at least @2.", level_str, extra_info) elseif errorstring == "incompatible" then - return false, S("@1 can't be combined with @2.", mcl_enchanting.get_enchantment_description(enchantment, level), extra_info) + return false, S("@1 can't be combined with @2.", redstone_enchanting.get_enchantment_description(enchantment, level), extra_info) end else - target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level)) + target:set_wielded_item(redstone_enchanting.enchant(itemstack, enchantment, level)) return true, S("Enchanting succeded.") end end @@ -125,31 +125,31 @@ minetest.register_chatcommand("forceenchant", { return false, S("Player '@1' cannot be found.", target_name) end local itemstack = target:get_wielded_item() - local _, errorstring = mcl_enchanting.can_enchant(itemstack, enchantment, level) + local _, errorstring = redstone_enchanting.can_enchant(itemstack, enchantment, level) if errorstring == "enchantment invalid" then return false, S("There is no such enchantment '@1'.", enchantment) elseif errorstring == "item missing" then return false, S("The target doesn't hold an item.") - elseif errorstring == "item not supported" and not mcl_enchanting.is_enchantable(itemstack:get_name()) then + elseif errorstring == "item not supported" and not redstone_enchanting.is_enchantable(itemstack:get_name()) then return false, S("The target item is not enchantable.") elseif errorstring == "level invalid" then return false, S("'@1' is not a valid number.", level_str) else - target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level)) + target:set_wielded_item(redstone_enchanting.enchant(itemstack, enchantment, level)) return true, S("Enchanting succeded.") end end }) -minetest.register_craftitem("mcl_enchanting:book_enchanted", { +minetest.register_craftitem("redstone_enchanting:book_enchanted", { description = S("Enchanted Book"), - inventory_image = "mcl_enchanting_book_enchanted.png" .. mcl_enchanting.overlay, + inventory_image = "redstone_enchanting_book_enchanted.png" .. redstone_enchanting.overlay, groups = {enchanted = 1, not_in_creative_inventory = 1, enchantability = 1}, - _mcl_enchanting_enchanted_tool = "mcl_enchanting:book_enchanted", + _redstone_enchanting_enchanted_tool = "redstone_enchanting:book_enchanted", stack_max = 1, }) -minetest.register_alias("mcl_books:book_enchanted", "mcl_enchanting:book_enchanted") +minetest.register_alias("mcl_books:book_enchanted", "redstone_enchanting:book_enchanted") local function spawn_book_entity(pos, respawn) if respawn then @@ -158,14 +158,14 @@ local function spawn_book_entity(pos, respawn) for o=1, #objs do local obj = objs[o] local lua = obj:get_luaentity() - if lua and lua.name == "mcl_enchanting:book" then + if lua and lua.name == "redstone_enchanting:book" then if lua._table_pos and vector.equals(pos, lua._table_pos) then return end end end end - local obj = minetest.add_entity(vector.add(pos, mcl_enchanting.book_offset), "mcl_enchanting:book") + local obj = minetest.add_entity(vector.add(pos, redstone_enchanting.book_offset), "redstone_enchanting:book") if obj then local lua = obj:get_luaentity() if lua then @@ -174,45 +174,45 @@ local function spawn_book_entity(pos, respawn) end end -minetest.register_entity("mcl_enchanting:book", { +minetest.register_entity("redstone_enchanting:book", { initial_properties = { visual = "mesh", - mesh = "mcl_enchanting_book.b3d", + mesh = "redstone_enchanting_book.b3d", visual_size = {x = 12.5, y = 12.5}, collisionbox = {0, 0, 0}, pointable = false, physical = false, - textures = {"mcl_enchanting_book_entity.png", "mcl_enchanting_book_entity.png", "mcl_enchanting_book_entity.png", "mcl_enchanting_book_entity.png", "mcl_enchanting_book_entity.png"}, + textures = {"redstone_enchanting_book_entity.png", "redstone_enchanting_book_entity.png", "redstone_enchanting_book_entity.png", "redstone_enchanting_book_entity.png", "redstone_enchanting_book_entity.png"}, static_save = false, }, _player_near = false, _table_pos = nil, on_activate = function(self, staticdata) self.object:set_armor_groups({immortal = 1}) - mcl_enchanting.set_book_animation(self, "close") + redstone_enchanting.set_book_animation(self, "close") end, on_step = function(self, dtime) local old_player_near = self._player_near local player_near = false local player - for _, obj in pairs(minetest.get_objects_inside_radius(vector.subtract(self.object:get_pos(), mcl_enchanting.book_offset), 2.5)) do + for _, obj in pairs(minetest.get_objects_inside_radius(vector.subtract(self.object:get_pos(), redstone_enchanting.book_offset), 2.5)) do if obj:is_player() then player_near = true player = obj end end if player_near and not old_player_near then - mcl_enchanting.set_book_animation(self, "opening") - mcl_enchanting.schedule_book_animation(self, "open") + redstone_enchanting.set_book_animation(self, "opening") + redstone_enchanting.schedule_book_animation(self, "open") elseif old_player_near and not player_near then - mcl_enchanting.set_book_animation(self, "closing") - mcl_enchanting.schedule_book_animation(self, "close") + redstone_enchanting.set_book_animation(self, "closing") + redstone_enchanting.schedule_book_animation(self, "close") end if player then - mcl_enchanting.look_at(self, player:get_pos()) + redstone_enchanting.look_at(self, player:get_pos()) end self._player_near = player_near - mcl_enchanting.check_animation_schedule(self, dtime) + redstone_enchanting.check_animation_schedule(self, dtime) end, }) @@ -221,20 +221,20 @@ if minetest.get_modpath("screwdriver") then rotate = screwdriver.rotate_simple end -minetest.register_node("mcl_enchanting:table", { +minetest.register_node("redstone_enchanting:table", { description = S("Enchanting Table"), - _tt_help = S("Spend experience, and lapis to enchant various items."), - _doc_items_longdesc = S("Enchanting Tables will let you enchant armors, tools, weapons, and books with various abilities. But, at the cost of some experience, and lapis lazuli."), + _tt_help = S("Spend experience, and redstone to enchant various items."), + _doc_items_longdesc = S("Enchanting Tables will let you enchant armors, tools, weapons, and books with various abilities. But, at the cost of some experience, and redstone ."), _doc_items_usagehelp = S("Rightclick the Enchanting Table to open the enchanting menu.").."\n".. S("Place a tool, armor, weapon or book into the top left slot, and then place 1-3 Lapis Lazuli in the slot to the right.").."\n".."\n".. S("After placing your items in the slots, the enchanting options will be shown. Hover over the options to read what is available to you.").."\n".. S("These options are randomized, and dependent on experience level; but the enchantment strength can be increased.").."\n".."\n".. S("To increase the enchantment strength, place bookshelves around the enchanting table. However, you will need to keep 1 air node between the table, & the bookshelves to empower the enchanting table.").."\n".."\n".. - S("After finally selecting your enchantment; left-click on the selection, and you will see both the lapis lazuli and your experience levels consumed. And, an enchanted item left in its place."), + S("After finally selecting your enchantment; left-click on the selection, and you will see both the redstone and your experience levels consumed. And, an enchanted item left in its place."), _doc_items_hidden = false, drawtype = "nodebox", - tiles = {"mcl_enchanting_table_top.png", "mcl_enchanting_table_bottom.png", "mcl_enchanting_table_side.png", "mcl_enchanting_table_side.png", "mcl_enchanting_table_side.png", "mcl_enchanting_table_side.png"}, + tiles = {"redstone_enchanting_table_top.png", "redstone_enchanting_table_bottom.png", "redstone_enchanting_table_side.png", "redstone_enchanting_table_side.png", "redstone_enchanting_table_side.png", "redstone_enchanting_table_side.png"}, use_texture_alpha = minetest.features.use_texture_alpha_string_modes and "opaque" or false, node_box = { type = "fixed", @@ -246,15 +246,15 @@ minetest.register_node("mcl_enchanting:table", { on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) local player_meta = clicker:get_meta() --local table_meta = minetest.get_meta(pos) - --local num_bookshelves = table_meta:get_int("mcl_enchanting:num_bookshelves") + --local num_bookshelves = table_meta:get_int("redstone_enchanting:num_bookshelves") local table_name = minetest.get_meta(pos):get_string("name") if table_name == "" then table_name = S("Enchant") end - local bookshelves = mcl_enchanting.get_bookshelves(pos) - player_meta:set_int("mcl_enchanting:num_bookshelves", math.min(15, #bookshelves)) - player_meta:set_string("mcl_enchanting:table_name", table_name) - mcl_enchanting.show_enchanting_formspec(clicker) + local bookshelves = redstone_enchanting.get_bookshelves(pos) + player_meta:set_int("redstone_enchanting:num_bookshelves", math.min(15, #bookshelves)) + player_meta:set_string("redstone_enchanting:table_name", table_name) + redstone_enchanting.show_enchanting_formspec(clicker) -- Respawn book entity just in case it got lost spawn_book_entity(pos, true) end, @@ -266,7 +266,7 @@ minetest.register_node("mcl_enchanting:table", { if minetest.is_creative_enabled(dname) then return end - local itemstack = ItemStack("mcl_enchanting:table") + local itemstack = ItemStack("redstone_enchanting:table") local meta = minetest.get_meta(pos) local itemmeta = itemstack:get_meta() itemmeta:set_string("name", meta:get_string("name")) @@ -284,7 +284,7 @@ minetest.register_node("mcl_enchanting:table", { for o=1, #objs do local obj = objs[o] local lua = obj:get_luaentity() - if lua and lua.name == "mcl_enchanting:book" then + if lua and lua.name == "redstone_enchanting:book" then if lua._table_pos and vector.equals(pos, lua._table_pos) then obj:remove() end @@ -297,7 +297,7 @@ minetest.register_node("mcl_enchanting:table", { }) minetest.register_craft({ - output = "mcl_enchanting:table", + output = "redstone_enchanting:table", recipe = { {"", "mcl_books:book", ""}, {"mcl_core:diamond", "mcl_core:obsidian", "mcl_core:diamond"}, @@ -309,7 +309,7 @@ minetest.register_abm({ label = "Enchanting table bookshelf particles", interval = 1, chance = 1, - nodenames = "mcl_enchanting:table", + nodenames = "redstone_enchanting:table", action = function(pos) local playernames = {} for _, obj in pairs(minetest.get_objects_inside_radius(pos, 15)) do @@ -320,7 +320,7 @@ minetest.register_abm({ if #playernames < 1 then return end - local absolute, relative = mcl_enchanting.get_bookshelves(pos) + local absolute, relative = redstone_enchanting.get_bookshelves(pos) for i, ap in ipairs(absolute) do if math.random(5) == 1 then local rp = relative[i] @@ -330,7 +330,7 @@ minetest.register_abm({ local a = {x = 2*(-v.x*t - d.x)/t/t, y = 2*(-v.y*t - d.y)/t/t, z = 2*(-v.z*t - d.z)/t/t} --acceleration local s = math.random()+0.9 --size t = t - 0.1 --slightly decrease time to avoid texture overlappings - local tx = "mcl_enchanting_glyph_" .. math.random(18) .. ".png" + local tx = "redstone_enchanting_glyph_" .. math.random(18) .. ".png" for _, name in pairs(playernames) do minetest.add_particle({ pos = ap, @@ -350,8 +350,8 @@ minetest.register_abm({ minetest.register_lbm({ label = "(Re-)spawn book entity above enchanting table", - name = "mcl_enchanting:spawn_book_entity", - nodenames = {"mcl_enchanting:table"}, + name = "redstone_enchanting:spawn_book_entity", + nodenames = {"redstone_enchanting:table"}, run_at_every_load = true, action = function(pos) spawn_book_entity(pos, true) @@ -359,9 +359,9 @@ minetest.register_lbm({ }) -minetest.register_on_mods_loaded(mcl_enchanting.initialize) -minetest.register_on_joinplayer(mcl_enchanting.initialize_player) -minetest.register_on_player_receive_fields(mcl_enchanting.handle_formspec_fields) -minetest.register_allow_player_inventory_action(mcl_enchanting.allow_inventory_action) -minetest.register_on_player_inventory_action(mcl_enchanting.on_inventory_action) -tt.register_priority_snippet(mcl_enchanting.enchantments_snippet) +minetest.register_on_mods_loaded(redstone_enchanting.initialize) +minetest.register_on_joinplayer(redstone_enchanting.initialize_player) +minetest.register_on_player_receive_fields(redstone_enchanting.handle_formspec_fields) +minetest.register_allow_player_inventory_action(redstone_enchanting.allow_inventory_action) +minetest.register_on_player_inventory_action(redstone_enchanting.on_inventory_action) +tt.register_priority_snippet(redstone_enchanting.enchantments_snippet) diff --git a/locale/mcl_enchanting.de.tr b/locale/redstone_enchanting.de.tr similarity index 100% rename from locale/mcl_enchanting.de.tr rename to locale/redstone_enchanting.de.tr diff --git a/locale/mcl_enchanting.es.tr b/locale/redstone_enchanting.es.tr similarity index 100% rename from locale/mcl_enchanting.es.tr rename to locale/redstone_enchanting.es.tr diff --git a/locale/mcl_enchanting.fr.tr b/locale/redstone_enchanting.fr.tr similarity index 100% rename from locale/mcl_enchanting.fr.tr rename to locale/redstone_enchanting.fr.tr diff --git a/locale/mcl_enchanting.ja.tr b/locale/redstone_enchanting.ja.tr similarity index 100% rename from locale/mcl_enchanting.ja.tr rename to locale/redstone_enchanting.ja.tr diff --git a/locale/mcl_enchanting.pl.tr b/locale/redstone_enchanting.pl.tr similarity index 100% rename from locale/mcl_enchanting.pl.tr rename to locale/redstone_enchanting.pl.tr diff --git a/locale/mcl_enchanting.pt_BR.tr b/locale/redstone_enchanting.pt_BR.tr similarity index 100% rename from locale/mcl_enchanting.pt_BR.tr rename to locale/redstone_enchanting.pt_BR.tr diff --git a/locale/mcl_enchanting.ru.tr b/locale/redstone_enchanting.ru.tr similarity index 100% rename from locale/mcl_enchanting.ru.tr rename to locale/redstone_enchanting.ru.tr diff --git a/mod.conf b/mod.conf index d163fcd..8767e8f 100644 --- a/mod.conf +++ b/mod.conf @@ -1,5 +1,5 @@ -name = mcl_enchanting -description = Enchanting for MineClone2 -depends = tt, walkover, mcl_sounds, mcl_colors, mcl_experience, mcl_util +name = redstone_enchanting +description = Enchanting, using Redstone for MineClone2 +depends = tt, walkover, mcl_sounds, mcl_colors, mcl_experience, mcl_util, mesecons optional_depends = screwdriver -author = Fleckenstein +author = haui111 diff --git a/models/mcl_enchanting_book.b3d b/models/redstone_enchanting_book.b3d similarity index 100% rename from models/mcl_enchanting_book.b3d rename to models/redstone_enchanting_book.b3d diff --git a/sounds/mcl_enchanting_enchant.0.ogg b/sounds/redstone_enchanting_enchant.0.ogg similarity index 100% rename from sounds/mcl_enchanting_enchant.0.ogg rename to sounds/redstone_enchanting_enchant.0.ogg diff --git a/sounds/mcl_enchanting_enchant.1.ogg b/sounds/redstone_enchanting_enchant.1.ogg similarity index 100% rename from sounds/mcl_enchanting_enchant.1.ogg rename to sounds/redstone_enchanting_enchant.1.ogg diff --git a/sounds/mcl_enchanting_enchant.2.ogg b/sounds/redstone_enchanting_enchant.2.ogg similarity index 100% rename from sounds/mcl_enchanting_enchant.2.ogg rename to sounds/redstone_enchanting_enchant.2.ogg diff --git a/textures/enchanting_table_book.png b/textures/enchanting_table_book.png new file mode 100644 index 0000000..7a4c216 Binary files /dev/null and b/textures/enchanting_table_book.png differ diff --git a/textures/redstone_enchanting_book_closed.png b/textures/redstone_enchanting_book_closed.png new file mode 100644 index 0000000..6ff832d Binary files /dev/null and b/textures/redstone_enchanting_book_closed.png differ diff --git a/textures/redstone_enchanting_book_enchanted.png b/textures/redstone_enchanting_book_enchanted.png new file mode 100644 index 0000000..a67e1b8 Binary files /dev/null and b/textures/redstone_enchanting_book_enchanted.png differ diff --git a/textures/redstone_enchanting_book_entity.png b/textures/redstone_enchanting_book_entity.png new file mode 100644 index 0000000..9c5ce02 Binary files /dev/null and b/textures/redstone_enchanting_book_entity.png differ diff --git a/textures/redstone_enchanting_book_open.png b/textures/redstone_enchanting_book_open.png new file mode 100644 index 0000000..6b4d5a3 Binary files /dev/null and b/textures/redstone_enchanting_book_open.png differ diff --git a/textures/redstone_enchanting_button.png b/textures/redstone_enchanting_button.png new file mode 100644 index 0000000..c6765f7 Binary files /dev/null and b/textures/redstone_enchanting_button.png differ diff --git a/textures/redstone_enchanting_button_background.png b/textures/redstone_enchanting_button_background.png new file mode 100644 index 0000000..cd05418 Binary files /dev/null and b/textures/redstone_enchanting_button_background.png differ diff --git a/textures/redstone_enchanting_button_hovered.png b/textures/redstone_enchanting_button_hovered.png new file mode 100644 index 0000000..c6765f7 Binary files /dev/null and b/textures/redstone_enchanting_button_hovered.png differ diff --git a/textures/redstone_enchanting_button_off.png b/textures/redstone_enchanting_button_off.png new file mode 100644 index 0000000..c6765f7 Binary files /dev/null and b/textures/redstone_enchanting_button_off.png differ diff --git a/textures/redstone_enchanting_glyph_1.png b/textures/redstone_enchanting_glyph_1.png new file mode 100644 index 0000000..c449eae Binary files /dev/null and b/textures/redstone_enchanting_glyph_1.png differ diff --git a/textures/redstone_enchanting_glyph_10.png b/textures/redstone_enchanting_glyph_10.png new file mode 100644 index 0000000..9feb2a5 Binary files /dev/null and b/textures/redstone_enchanting_glyph_10.png differ diff --git a/textures/redstone_enchanting_glyph_11.png b/textures/redstone_enchanting_glyph_11.png new file mode 100644 index 0000000..adda78d Binary files /dev/null and b/textures/redstone_enchanting_glyph_11.png differ diff --git a/textures/redstone_enchanting_glyph_12.png b/textures/redstone_enchanting_glyph_12.png new file mode 100644 index 0000000..5d4c1ee Binary files /dev/null and b/textures/redstone_enchanting_glyph_12.png differ diff --git a/textures/redstone_enchanting_glyph_13.png b/textures/redstone_enchanting_glyph_13.png new file mode 100644 index 0000000..b57fbb7 Binary files /dev/null and b/textures/redstone_enchanting_glyph_13.png differ diff --git a/textures/redstone_enchanting_glyph_14.png b/textures/redstone_enchanting_glyph_14.png new file mode 100644 index 0000000..6862387 Binary files /dev/null and b/textures/redstone_enchanting_glyph_14.png differ diff --git a/textures/redstone_enchanting_glyph_15.png b/textures/redstone_enchanting_glyph_15.png new file mode 100644 index 0000000..cef995f Binary files /dev/null and b/textures/redstone_enchanting_glyph_15.png differ diff --git a/textures/redstone_enchanting_glyph_16.png b/textures/redstone_enchanting_glyph_16.png new file mode 100644 index 0000000..27e1807 Binary files /dev/null and b/textures/redstone_enchanting_glyph_16.png differ diff --git a/textures/redstone_enchanting_glyph_17.png b/textures/redstone_enchanting_glyph_17.png new file mode 100644 index 0000000..1dc41a0 Binary files /dev/null and b/textures/redstone_enchanting_glyph_17.png differ diff --git a/textures/redstone_enchanting_glyph_18.png b/textures/redstone_enchanting_glyph_18.png new file mode 100644 index 0000000..631973d Binary files /dev/null and b/textures/redstone_enchanting_glyph_18.png differ diff --git a/textures/redstone_enchanting_glyph_2.png b/textures/redstone_enchanting_glyph_2.png new file mode 100644 index 0000000..674fdea Binary files /dev/null and b/textures/redstone_enchanting_glyph_2.png differ diff --git a/textures/redstone_enchanting_glyph_3.png b/textures/redstone_enchanting_glyph_3.png new file mode 100644 index 0000000..6f16605 Binary files /dev/null and b/textures/redstone_enchanting_glyph_3.png differ diff --git a/textures/redstone_enchanting_glyph_4.png b/textures/redstone_enchanting_glyph_4.png new file mode 100644 index 0000000..e93f238 Binary files /dev/null and b/textures/redstone_enchanting_glyph_4.png differ diff --git a/textures/redstone_enchanting_glyph_5.png b/textures/redstone_enchanting_glyph_5.png new file mode 100644 index 0000000..1473ea4 Binary files /dev/null and b/textures/redstone_enchanting_glyph_5.png differ diff --git a/textures/redstone_enchanting_glyph_6.png b/textures/redstone_enchanting_glyph_6.png new file mode 100644 index 0000000..89de2cf Binary files /dev/null and b/textures/redstone_enchanting_glyph_6.png differ diff --git a/textures/redstone_enchanting_glyph_7.png b/textures/redstone_enchanting_glyph_7.png new file mode 100644 index 0000000..bf632f7 Binary files /dev/null and b/textures/redstone_enchanting_glyph_7.png differ diff --git a/textures/redstone_enchanting_glyph_8.png b/textures/redstone_enchanting_glyph_8.png new file mode 100644 index 0000000..acecebc Binary files /dev/null and b/textures/redstone_enchanting_glyph_8.png differ diff --git a/textures/redstone_enchanting_glyph_9.png b/textures/redstone_enchanting_glyph_9.png new file mode 100644 index 0000000..4b3e366 Binary files /dev/null and b/textures/redstone_enchanting_glyph_9.png differ diff --git a/textures/redstone_enchanting_lapis_background.png b/textures/redstone_enchanting_lapis_background.png new file mode 100644 index 0000000..646813f Binary files /dev/null and b/textures/redstone_enchanting_lapis_background.png differ diff --git a/textures/redstone_enchanting_number_1.png b/textures/redstone_enchanting_number_1.png new file mode 100644 index 0000000..8e5fc64 Binary files /dev/null and b/textures/redstone_enchanting_number_1.png differ diff --git a/textures/redstone_enchanting_number_1_off.png b/textures/redstone_enchanting_number_1_off.png new file mode 100644 index 0000000..c22f319 Binary files /dev/null and b/textures/redstone_enchanting_number_1_off.png differ diff --git a/textures/redstone_enchanting_number_2.png b/textures/redstone_enchanting_number_2.png new file mode 100644 index 0000000..0a89a9d Binary files /dev/null and b/textures/redstone_enchanting_number_2.png differ diff --git a/textures/redstone_enchanting_number_2_off.png b/textures/redstone_enchanting_number_2_off.png new file mode 100644 index 0000000..c22f319 Binary files /dev/null and b/textures/redstone_enchanting_number_2_off.png differ diff --git a/textures/redstone_enchanting_number_3.png b/textures/redstone_enchanting_number_3.png new file mode 100644 index 0000000..eee8032 Binary files /dev/null and b/textures/redstone_enchanting_number_3.png differ diff --git a/textures/redstone_enchanting_number_3_off.png b/textures/redstone_enchanting_number_3_off.png new file mode 100644 index 0000000..c22f319 Binary files /dev/null and b/textures/redstone_enchanting_number_3_off.png differ diff --git a/textures/redstone_enchanting_table_bottom.png b/textures/redstone_enchanting_table_bottom.png new file mode 100644 index 0000000..0bf476b Binary files /dev/null and b/textures/redstone_enchanting_table_bottom.png differ diff --git a/textures/redstone_enchanting_table_side.png b/textures/redstone_enchanting_table_side.png new file mode 100644 index 0000000..84cc9f2 Binary files /dev/null and b/textures/redstone_enchanting_table_side.png differ diff --git a/textures/redstone_enchanting_table_top.png b/textures/redstone_enchanting_table_top.png new file mode 100644 index 0000000..ef5eea5 Binary files /dev/null and b/textures/redstone_enchanting_table_top.png differ