Make mcl_enchantments translatable

This commit is contained in:
Wuzzy 2020-12-14 14:08:55 +01:00
parent e7aa873968
commit 5a7fc3774f
3 changed files with 109 additions and 103 deletions

View File

@ -1,3 +1,5 @@
local S = minetest.get_translator("mcl_enchanting")
-- Taken from https://minecraft.gamepedia.com/Enchanting
local function increase_damage(damage_group, factor)
@ -10,14 +12,14 @@ end
-- requires engine change
--[[mcl_enchanting.enchantments.aqua_affinity = {
name = "Aqua Affinity",
name = S("Aqua Affinity"),
max_level = 1,
primary = {armor_head = true},
secondary = {},
disallow = {non_combat_armor = true},
incompatible = {},
weight = 2,
description = "Increases underwater mining speed.",
description = S("Increases underwater mining speed."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -27,14 +29,14 @@ end
-- implemented via on_enchant and additions in mobs_mc; Slowness IV part unimplemented
mcl_enchanting.enchantments.bane_of_arthropods = {
name = "Bane of Arthropods",
name = S("Bane of Arthropods"),
max_level = 5,
primary = {sword = true},
secondary = {axe = true},
disallow = {},
incompatible = {smite = true, shaprness = true},
weight = 5,
description = "Increases damage and applies Slowness IV to arthropod mobs (spiders, cave spiders, silverfish and endermites).",
description = S("Increases damage and applies Slowness IV to arthropod mobs (spiders, cave spiders, silverfish and endermites)."),
curse = false,
on_enchant = increase_damage("anthropod", 2.5),
requires_tool = false,
@ -44,14 +46,14 @@ mcl_enchanting.enchantments.bane_of_arthropods = {
-- implemented in mcl_armor
mcl_enchanting.enchantments.blast_protection = {
name = "Blast Protection",
name = S("Blast Protection"),
max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {},
disallow = {non_combat_armor = true},
incompatible = {fire_protection = true, protection = true, projectile_protection = true},
weight = 2,
description = "Reduces explosion damage and knockback.",
description = S("Reduces explosion damage and knockback."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -61,14 +63,14 @@ mcl_enchanting.enchantments.blast_protection = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.channeling = {
name = "Channeling",
name = S("Channeling"),
max_level = 1,
primary = {trident = true},
secondary = {},
disallow = {},
incompatible = {riptide = true},
weight = 1,
description = "Trident \"channels\" a bolt of lightning toward a hit entity. Functions only during thunderstorms and if target is unobstructed with opaque blocks.",
description = S("Channels a bolt of lightning toward a target. Works only during thunderstorms and if target is unobstructed with opaque blocks."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -78,14 +80,14 @@ mcl_enchanting.enchantments.blast_protection = {
-- implemented in mcl_armor
mcl_enchanting.enchantments.curse_of_binding = {
name = "Curse of Binding",
name = S("Curse of Binding"),
max_level = 1,
primary = {},
secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
disallow = {},
incompatible = {},
weight = 1,
description = "Except when in creative mode, items cannot be removed from armor slots except due to death or breaking.",
description = S("Item cannot be removed from armor slots except due to death, breaking or in Creative Mode."),
curse = true,
on_enchant = function() end,
requires_tool = false,
@ -95,14 +97,14 @@ mcl_enchanting.enchantments.curse_of_binding = {
-- implemented in mcl_death_drop
mcl_enchanting.enchantments.curse_of_vanishing = {
name = "Curse of Vanishing",
name = S("Curse of Vanishing"),
max_level = 1,
primary = {},
secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true, tool = true, weapon = true},
disallow = {},
incompatible = {},
weight = 1,
description = "Item destroyed on death.",
description = S("Item destroyed on death."),
curse = true,
on_enchant = function() end,
requires_tool = false,
@ -112,14 +114,14 @@ mcl_enchanting.enchantments.curse_of_vanishing = {
-- unimplemented
--[[mcl_enchanting.enchantments.depth_strider = {
name = "Depth Strider",
name = S("Depth Strider"),
max_level = 3,
primary = {},
secondary = {armor_feet = true},
disallow = {non_combat_armor = true},
incompatible = {frost_walker = true},
weight = 2,
description = "Increases underwater movement speed.",
description = S("Increases underwater movement speed."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -129,14 +131,14 @@ mcl_enchanting.enchantments.curse_of_vanishing = {
-- implemented via on_enchant
mcl_enchanting.enchantments.efficiency = {
name = "Efficiency",
name = S("Efficiency"),
max_level = 5,
primary = {pickaxe = true, shovel = true, axe = true, hoe = true},
secondary = {shears = true},
disallow = {},
incompatible = {},
weight = 10,
description = "Increases mining speed.",
description = S("Increases mining speed."),
curse = false,
on_enchant = function(itemstack, level)
local tool_capabilities = itemstack:get_tool_capabilities()
@ -156,14 +158,14 @@ mcl_enchanting.enchantments.efficiency = {
-- implemented in mcl_armor
mcl_enchanting.enchantments.feather_falling = {
name = "Feather Falling",
name = S("Feather Falling"),
max_level = 4,
primary = {armor_feet = true},
secondary = {},
disallow = {non_combat_armor = true},
incompatible = {},
weight = 5,
description = "Reduces fall damage.",curse = false,
description = S("Reduces fall damage."),curse = false,
on_enchant = function() end,
requires_tool = false,
treasure = false,
@ -172,14 +174,14 @@ mcl_enchanting.enchantments.feather_falling = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.fire_aspect = {
name = "Fire Aspect",
name = S("Fire Aspect"),
max_level = 2,
primary = {sword = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 2,
description = "Sets target on fire.",
description = S("Sets target on fire."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -189,14 +191,14 @@ mcl_enchanting.enchantments.feather_falling = {
-- implemented in mcl_armor
mcl_enchanting.enchantments.fire_protection = {
name = "Fire Protection",
name = S("Fire Protection"),
max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {},
disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, protection = true, projectile_protection = true},
weight = 5,
description = "Reduces fire damage.",
description = S("Reduces fire damage."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -206,14 +208,14 @@ mcl_enchanting.enchantments.fire_protection = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.flame = {
name = "Flame",
name = S("Flame"),
max_level = 1,
primary = {bow = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 2,
description = "Arrows set target on fire.",
description = S("Arrows set target on fire."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -223,14 +225,14 @@ mcl_enchanting.enchantments.fire_protection = {
-- implemented in mcl_item_entity
mcl_enchanting.enchantments.fortune = {
name = "Fortune",
name = S("Fortune"),
max_level = 3,
primary = {pickaxe = true, shovel = true, axe = true, hoe = true},
secondary = {},
disallow = {},
incompatible = {silk_touch = true},
weight = 2,
description = "Increases certain block drops.",
description = S("Increases certain block drops."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -240,14 +242,14 @@ mcl_enchanting.enchantments.fortune = {
-- implemented via walkover.register_global
mcl_enchanting.enchantments.frost_walker = {
name = "Frost Walker",
name = S("Frost Walker"),
max_level = 2,
primary = {},
secondary = {armor_feet = true},
disallow = {non_combat_armor = true},
incompatible = {depth_strider = true},
weight = 2,
description = "Turns water beneath the player into frosted ice and prevents the damage the player would take from standing on magma blocks.",
description = S("Turns water beneath the player into frosted ice and prevents the damage from magma blocks."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -274,14 +276,14 @@ end)
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.impaling = {
name = "Impaling",
name = S("Impaling"),
max_level = 5,
primary = {trident = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 2,
description = "Trident deals additional damage to mobs that spawn naturally in the ocean.",
description = S("Trident deals additional damage to ocean mobs."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -291,14 +293,14 @@ end)
-- implemented in mcl_bows
mcl_enchanting.enchantments.infinity = {
name = "Infinity",
name = S("Infinity"),
max_level = 1,
primary = {bow = true},
secondary = {},
disallow = {},
incompatible = {mending = true},
weight = 1,
description = "Shooting consumes no regular arrows.",
description = S("Shooting consumes no regular arrows."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -308,14 +310,14 @@ mcl_enchanting.enchantments.infinity = {
-- implemented via minetest.calculate_knockback
mcl_enchanting.enchantments.knockback = {
name = "Knockback",
name = S("Knockback"),
max_level = 2,
primary = {sword = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 5,
description = "Increases knockback.",
description = S("Increases knockback."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -341,14 +343,14 @@ end
-- unimplemented
--[[mcl_enchanting.enchantments.looting = {
name = "Looting",
name = S("Looting"),
max_level = 3,
primary = {sword = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 2,
description = "Increases mob loot.",
description = S("Increases mob loot."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -358,14 +360,14 @@ end
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.loyalty = {
name = "Loyalty",
name = S("Loyalty"),
max_level = 3,
primary = {trident = true},
secondary = {},
disallow = {},
incompatible = {riptide = true},
weight = 5,
description = "Trident returns after being thrown. Higher levels reduce return time.",
description = S("Trident returns after being thrown. Higher levels reduce return time."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -375,14 +377,14 @@ end
-- unimplemented
--[[mcl_enchanting.enchantments.luck_of_the_sea = {
name = "Luck of the Sea",
name = S("Luck of the Sea"),
max_level = 3,
primary = {fishing_rod = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 2,
description = "Increases rate of good loot (enchanting books, etc.)",
description = S("Increases rate of good loot (enchanting books, etc.)"),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -392,14 +394,14 @@ end
-- implemented in mcl_fishing
mcl_enchanting.enchantments.lure = {
name = "Lure",
name = S("Lure"),
max_level = 3,
primary = {fishing_rod = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 2,
description = "Decreases wait time until fish/junk/loot \"bites\".",
description = S("Decreases time until rod catches something."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -409,14 +411,14 @@ mcl_enchanting.enchantments.lure = {
-- unimplemented
--[[mcl_enchanting.enchantments.mending = {
name = "Mending",
name = S("Mending"),
max_level = 1,
primary = {},
secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true, tool = true, weapon = true},
disallow = {},
incompatible = {infinity = true},
weight = 2,
description = "Repair the item while gaining XP orbs.",
description = S("Repair the item while gaining XP orbs."),
curse = false,
on_enchant = function() end,
requires_tool = true,
@ -426,14 +428,14 @@ mcl_enchanting.enchantments.lure = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.multishot = {
name = "Multishot",
name = S("Multishot"),
max_level = 1,
primary = {crossbow = true},
secondary = {},
disallow = {},
incompatible = {piercing = true},
weight = 2,
description = "Shoot 3 arrows at the cost of one.",
description = S("Shoot 3 arrows at the cost of one."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -443,14 +445,14 @@ mcl_enchanting.enchantments.lure = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.piercing = {
name = "Piercing",
name = S("Piercing"),
max_level = 4,
primary = {crossbow = true},
secondary = {},
disallow = {},
incompatible = {multishot = true},
weight = 10,
description = "Arrows pass through multiple entities.",
description = S("Arrows passes through multiple objects."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -460,14 +462,14 @@ mcl_enchanting.enchantments.lure = {
-- implemented in mcl_bows
mcl_enchanting.enchantments.power = {
name = "Power",
name = S("Power"),
max_level = 5,
primary = {bow = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 10,
description = "Increases arrow damage.",
description = S("Increases arrow damage."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -477,14 +479,14 @@ mcl_enchanting.enchantments.power = {
-- implemented in mcl_armor
mcl_enchanting.enchantments.projectile_protection = {
name = "Projectile Protection",
name = S("Projectile Protection"),
max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {},
disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, fire_protection = true, protection = true},
weight = 5,
description = "Reduces projectile damage.",
description = S("Reduces projectile damage."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -494,14 +496,14 @@ mcl_enchanting.enchantments.projectile_protection = {
-- implemented in mcl_armor
mcl_enchanting.enchantments.protection = {
name = "Protection",
name = S("Protection"),
max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {},
disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true},
weight = 10,
description = "Reduces most types of damage by 4% for each level.",
description = S("Reduces most types of damage by 4% for each level."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -511,14 +513,14 @@ mcl_enchanting.enchantments.protection = {
-- implemented via minetest.calculate_knockback (together with the Knockback enchantment) and mcl_bows
mcl_enchanting.enchantments.punch = {
name = "Punch",
name = S("Punch"),
max_level = 2,
primary = {},
secondary = {bow = true},
disallow = {},
incompatible = {},
weight = 2,
description = "Increases arrow knockback.",
description = S("Increases arrow knockback."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -528,14 +530,14 @@ mcl_enchanting.enchantments.punch = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.quick_charge = {
name = "Quick Charge",
name = S("Quick Charge"),
max_level = 3,
primary = {crossbow = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 5,
description = "Decreases crossbow charging time.",
description = S("Decreases crossbow charging time."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -545,14 +547,14 @@ mcl_enchanting.enchantments.punch = {
-- unimplemented
--[[mcl_enchanting.enchantments.respiration = {
name = "Respiration",
name = S("Respiration"),
max_level = 3,
primary = {armor_head = true},
secondary = {},
disallow = {non_combat_armor = true},
incompatible = {},
weight = 2,
description = "Extends underwater breathing time.",
description = S("Extends underwater breathing time."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -562,14 +564,14 @@ mcl_enchanting.enchantments.punch = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.riptide = {
name = "Riptide",
name = S("Riptide"),
max_level = 3,
primary = {trident = true},
secondary = {},
disallow = {},
incompatible = {channeling = true, loyalty = true},
weight = 2,
description = "Trident launches player with itself when thrown. Functions only in water or rain.",
description = S("Trident launches player with itself when thrown. Works only in water or rain."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -579,14 +581,14 @@ mcl_enchanting.enchantments.punch = {
-- implemented via on_enchant
mcl_enchanting.enchantments.sharpness = {
name = "Sharpness",
name = S("Sharpness"),
max_level = 5,
primary = {sword = true},
secondary = {axe = true},
disallow = {},
incompatible = {bane_of_arthropods = true, smite = true},
weight = 5,
description = "Increases damage.",
description = S("Increases damage."),
curse = false,
on_enchant = increase_damage("fleshy", 0.5),
requires_tool = false,
@ -596,14 +598,14 @@ mcl_enchanting.enchantments.sharpness = {
-- implemented in mcl_item_entity
mcl_enchanting.enchantments.silk_touch = {
name = "Silk Touch",
name = S("Silk Touch"),
max_level = 1,
primary = {pickaxe = true, shovel = true, axe = true, hoe = true},
secondary = {shears = true},
disallow = {},
incompatible = {fortune = true},
weight = 1,
description = "Mined blocks drop themselves.",
description = S("Mined blocks drop themselves."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -613,14 +615,14 @@ mcl_enchanting.enchantments.silk_touch = {
-- implemented via on_enchant and additions in mobs_mc
mcl_enchanting.enchantments.smite = {
name = "Smite",
name = S("Smite"),
max_level = 5,
primary = {sword = true},
secondary = {axe = true},
disallow = {},
incompatible = {bane_of_arthropods = true, sharpness = true},
weight = 5,
description = "Increases damage to undead mobs.",
description = S("Increases damage to undead mobs."),
curse = false,
on_enchant = increase_damage("undead", 2.5),
requires_tool = false,
@ -630,14 +632,14 @@ mcl_enchanting.enchantments.smite = {
-- implemented in mcl_playerplus
mcl_enchanting.enchantments.soul_speed = {
name = "Soul Speed",
name = S("Soul Speed"),
max_level = 3,
primary = {},
secondary = {armor_feet = true},
disallow = {non_combat_armor = true},
incompatible = {frost_walker = true},
weight = 2,
description = "Increases walking speed on soul sand.",
description = S("Increases walking speed on soul sand."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -647,14 +649,14 @@ mcl_enchanting.enchantments.soul_speed = {
-- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.sweeping_edge = {
name = "Sweeping Edge",
name = S("Sweeping Edge"),
max_level = 3,
primary = {sword = true},
secondary = {},
disallow = {},
incompatible = {},
weight = 2,
description = "Increases sweeping attack damage.",
description = S("Increases sweeping attack damage."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -664,14 +666,14 @@ mcl_enchanting.enchantments.soul_speed = {
-- implemented in mcl_armor
mcl_enchanting.enchantments.thorns = {
name = "Thorns",
name = S("Thorns"),
max_level = 3,
primary = {armor_head = true},
secondary = {armor_torso = true, armor_legs = true, armor_feet = true},
disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true},
weight = 1,
description = "Reflects some of the damage taken when hit, at the cost of reducing durability with each proc.",
description = S("Reflects some of the damage taken when hit, at the cost of reducing durability with each proc."),
curse = false,
on_enchant = function() end,
requires_tool = false,
@ -681,14 +683,14 @@ mcl_enchanting.enchantments.thorns = {
-- 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 = {
name = "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},
secondary = {tool = true},
disallow = {non_combat_armor = true},
incompatible = {},
weight = 5,
description = "Increases item durability.",
description = S("Increases item durability."),
curse = false,
on_enchant = function(itemstack, level)
local tool_capabilities = itemstack:get_tool_capabilities()

View File

@ -1,3 +1,6 @@
local S = minetest.get_translator("mcl_enchanting")
local F = minetest.formspec_escape
function mcl_enchanting.is_book(itemname)
return itemname == "mcl_books:book" or itemname == "mcl_enchanting:book_enchanted"
end
@ -388,13 +391,13 @@ function mcl_enchanting.show_enchanting_formspec(player)
local formspec = ""
.. "size[9.07,8.6;]"
.. "formspec_version[3]"
.. "label[0,0;" .. C("#313131") .. table_name .. "]"
.. "label[0,0;" .. C("#313131") .. F(table_name) .. "]"
.. mcl_formspec.get_itemslot_bg(0.2, 2.4, 1, 1)
.. "list[detached:" .. name .. "_enchanting;enchanting;0.2,2.4;1,1;1]"
.. mcl_formspec.get_itemslot_bg(1.1, 2.4, 1, 1)
.. "image[1.1,2.4;1,1;mcl_enchanting_lapis_background.png]"
.. "list[detached:" .. name .. "_enchanting;enchanting;1.1,2.4;1,1;2]"
.. "label[0,4;" .. C("#313131") .. "Inventory]"
.. "label[0,4;" .. C("#313131") .. F(S("Inventory")).."]"
.. mcl_formspec.get_itemslot_bg(0, 4.5, 9, 3)
.. mcl_formspec.get_itemslot_bg(0, 7.74, 9, 1)
.. "list[current_player;main;0,4.5;9,3;9]"
@ -417,7 +420,7 @@ function mcl_enchanting.show_enchanting_formspec(player)
local hover_ending = (can_enchant and "_hovered" or "_off")
formspec = formspec
.. "container[3.2," .. y .. "]"
.. (slot and "tooltip[button_" .. i .. ";" .. C("#818181") .. slot.description .. " " .. C("#FFFFFF") .. " . . . ?\n\n" .. (enough_levels and C(enough_lapis and "#818181" or "#FC5454") .. i .. " Lapis Lazuli\n" .. C("#818181") .. i .. " Enchantment Levels" or C("#FC5454") .. "Level Requirement: " .. slot.level_requirement) .. "]" or "")
.. (slot and "tooltip[button_" .. i .. ";" .. C("#818181") .. F(slot.description) .. " " .. C("#FFFFFF") .. " . . . ?\n\n" .. (enough_levels and C(enough_lapis and "#818181" or "#FC5454") .. F(S("@1 × Lapis Lazuli", i)) .. "\n" .. C("#818181") .. F(S("Enchantment levels: @1", i)) or C("#FC5454") .. F(S("Level requirement: @1", slot.level_requirement))) .. "]" or "")
.. "style[button_" .. i .. ";bgimg=mcl_enchanting_button" .. ending .. ".png;bgimg_hovered=mcl_enchanting_button" .. hover_ending .. ".png;bgimg_pressed=mcl_enchanting_button" .. hover_ending .. ".png]"
.. "button[0,0;7.5,1.3;button_" .. i .. ";]"
.. (slot and "image[0,0;1.3,1.3;mcl_enchanting_number_" .. i .. ending .. ".png]" or "")

View File

@ -1,4 +1,5 @@
local modpath = minetest.get_modpath("mcl_enchanting")
local S = minetest.get_translator("mcl_enchanting")
mcl_enchanting = {
book_offset = vector.new(0, 0.75, 0),
@ -58,8 +59,8 @@ dofile(modpath .. "/engine.lua")
dofile(modpath .. "/enchantments.lua")
minetest.register_chatcommand("enchant", {
description = "Enchant an item.",
params = "<player> <enchantment> [<level>]",
description = S("Enchant an item"),
params = S("<player> <enchantment> [<level>]"),
privs = {give = true},
func = function(_, param)
local sparam = param:split(" ")
@ -68,40 +69,40 @@ minetest.register_chatcommand("enchant", {
local level_str = sparam[3]
local level = tonumber(level_str or "1")
if not target_name or not enchantment then
return false, "Usage: /enchant <player> <enchantment> [<level>]"
return false, S("Usage: /enchant <player> <enchantment> [<level>]")
end
local target = minetest.get_player_by_name(target_name)
if not target then
return false, "Player '" .. target_name .. "' cannot be found"
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)
if not can_enchant then
if errorstring == "enchantment invalid" then
return false, "There is no such enchantment '" .. enchantment .. "'"
return false, S("There is no such enchantment '@1'.", enchantment)
elseif errorstring == "item missing" then
return false, "The target doesn't hold an item"
return false, S("The target doesn't hold an item.")
elseif errorstring == "item not supported" then
return false, "The selected enchantment can't be added to the target item"
return false, S("The selected enchantment can't be added to the target item.")
elseif errorstring == "level invalid" then
return false, "'" .. level_str .. "' is not a valid number"
return false, S("'@1' is not a valid number", level_str)
elseif errorstring == "level too high" then
return false, "The number you have entered (" .. level_str .. ") is too big, it must be at most " .. extra_info
return false, S("The number you have entered (@1) is too big, it must be at most @2.", level_str, extra_info)
elseif errorstring == "level too small" then
return false, "The number you have entered (" .. level_str .. ") is too small, it must be at least " .. extra_info
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, mcl_enchanting.get_enchantment_description(enchantment, level) .. " can't be combined with " .. extra_info
return false, S("@1 can't be combined with @2.", mcl_enchanting.get_enchantment_description(enchantment, level), extra_info)
end
else
target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level))
return true, "Enchanting succeded"
return true, S("Enchanting succeded.")
end
end
})
minetest.register_chatcommand("forceenchant", {
description = "Forcefully enchant an item.",
params = "<player> <enchantment> [<level>]",
description = S("Forcefully enchant an item"),
params = S("<player> <enchantment> [<level>]"),
func = function(_, param)
local sparam = param:split(" ")
local target_name = sparam[1]
@ -109,31 +110,31 @@ minetest.register_chatcommand("forceenchant", {
local level_str = sparam[3]
local level = tonumber(level_str or "1")
if not target_name or not enchantment then
return false, "Usage: /forceenchant <player> <enchantment> [<level>]"
return false, S("Usage: /forceenchant <player> <enchantment> [<level>]")
end
local target = minetest.get_player_by_name(target_name)
if not target then
return false, "Player '" .. target_name .. "' cannot be found"
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)
if errorstring == "enchantment invalid" then
return false, "There is no such enchantment '" .. enchantment .. "'"
return false, S("There is no such enchantment '@1'.", enchantment)
elseif errorstring == "item missing" then
return false, "The target doesn't hold an item"
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
return false, "The target item is not enchantable"
return false, S("The target item is not enchantable.")
elseif errorstring == "level invalid" then
return false, "'" .. level_str .. "' is not a valid number"
return false, S("'@1' is not a valid number.", level_str)
else
target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level))
return true, "Enchanting succeded"
return true, S("Enchanting succeded.")
end
end
})
minetest.register_craftitem("mcl_enchanting:book_enchanted", {
description = "Enchanted Book",
description = S("Enchanted Book"),
inventory_image = "mcl_enchanting_book_enchanted.png" .. mcl_enchanting.overlay,
groups = {enchanted = 1, not_in_creative_inventory = 1, enchantability = 1},
_mcl_enchanting_enchanted_tool = "mcl_enchanting:book_enchanted",
@ -181,7 +182,7 @@ minetest.register_entity("mcl_enchanting:book", {
})
minetest.register_node("mcl_enchanting:table", {
description = "Enchanting Table",
description = S("Enchanting Table"),
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"},
node_box = {
@ -197,7 +198,7 @@ minetest.register_node("mcl_enchanting:table", {
local num_bookshelves = table_meta:get_int("mcl_enchanting:num_bookshelves")
local table_name = table_meta:get_string("name")
if table_name == "" then
table_name = "Enchant"
table_name = S("Enchant")
end
player_meta:set_int("mcl_enchanting:num_bookshelves", num_bookshelves)
player_meta:set_string("mcl_enchanting:table_name", table_name)