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 -- Taken from https://minecraft.gamepedia.com/Enchanting
local function increase_damage(damage_group, factor) local function increase_damage(damage_group, factor)
@ -10,14 +12,14 @@ end
-- requires engine change -- requires engine change
--[[mcl_enchanting.enchantments.aqua_affinity = { --[[mcl_enchanting.enchantments.aqua_affinity = {
name = "Aqua Affinity", name = S("Aqua Affinity"),
max_level = 1, max_level = 1,
primary = {armor_head = true}, primary = {armor_head = true},
secondary = {}, secondary = {},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Increases underwater mining speed.", description = S("Increases underwater mining speed."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -27,14 +29,14 @@ end
-- implemented via on_enchant and additions in mobs_mc; Slowness IV part unimplemented -- implemented via on_enchant and additions in mobs_mc; Slowness IV part unimplemented
mcl_enchanting.enchantments.bane_of_arthropods = { mcl_enchanting.enchantments.bane_of_arthropods = {
name = "Bane of Arthropods", name = S("Bane of Arthropods"),
max_level = 5, max_level = 5,
primary = {sword = true}, primary = {sword = true},
secondary = {axe = true}, secondary = {axe = true},
disallow = {}, disallow = {},
incompatible = {smite = true, shaprness = true}, incompatible = {smite = true, shaprness = true},
weight = 5, 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, curse = false,
on_enchant = increase_damage("anthropod", 2.5), on_enchant = increase_damage("anthropod", 2.5),
requires_tool = false, requires_tool = false,
@ -44,14 +46,14 @@ mcl_enchanting.enchantments.bane_of_arthropods = {
-- implemented in mcl_armor -- implemented in mcl_armor
mcl_enchanting.enchantments.blast_protection = { mcl_enchanting.enchantments.blast_protection = {
name = "Blast Protection", name = S("Blast Protection"),
max_level = 4, max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true}, primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {}, secondary = {},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {fire_protection = true, protection = true, projectile_protection = true}, incompatible = {fire_protection = true, protection = true, projectile_protection = true},
weight = 2, weight = 2,
description = "Reduces explosion damage and knockback.", description = S("Reduces explosion damage and knockback."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -61,14 +63,14 @@ mcl_enchanting.enchantments.blast_protection = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.channeling = { --[[mcl_enchanting.enchantments.channeling = {
name = "Channeling", name = S("Channeling"),
max_level = 1, max_level = 1,
primary = {trident = true}, primary = {trident = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {riptide = true}, incompatible = {riptide = true},
weight = 1, 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, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -78,14 +80,14 @@ mcl_enchanting.enchantments.blast_protection = {
-- implemented in mcl_armor -- implemented in mcl_armor
mcl_enchanting.enchantments.curse_of_binding = { mcl_enchanting.enchantments.curse_of_binding = {
name = "Curse of Binding", name = S("Curse of Binding"),
max_level = 1, max_level = 1,
primary = {}, primary = {},
secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true}, secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 1, 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, curse = true,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -95,14 +97,14 @@ mcl_enchanting.enchantments.curse_of_binding = {
-- implemented in mcl_death_drop -- implemented in mcl_death_drop
mcl_enchanting.enchantments.curse_of_vanishing = { mcl_enchanting.enchantments.curse_of_vanishing = {
name = "Curse of Vanishing", name = S("Curse of Vanishing"),
max_level = 1, max_level = 1,
primary = {}, primary = {},
secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true, tool = true, weapon = true}, secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true, tool = true, weapon = true},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 1, weight = 1,
description = "Item destroyed on death.", description = S("Item destroyed on death."),
curse = true, curse = true,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -112,14 +114,14 @@ mcl_enchanting.enchantments.curse_of_vanishing = {
-- unimplemented -- unimplemented
--[[mcl_enchanting.enchantments.depth_strider = { --[[mcl_enchanting.enchantments.depth_strider = {
name = "Depth Strider", name = S("Depth Strider"),
max_level = 3, max_level = 3,
primary = {}, primary = {},
secondary = {armor_feet = true}, secondary = {armor_feet = true},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {frost_walker = true}, incompatible = {frost_walker = true},
weight = 2, weight = 2,
description = "Increases underwater movement speed.", description = S("Increases underwater movement speed."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -129,14 +131,14 @@ mcl_enchanting.enchantments.curse_of_vanishing = {
-- implemented via on_enchant -- implemented via on_enchant
mcl_enchanting.enchantments.efficiency = { mcl_enchanting.enchantments.efficiency = {
name = "Efficiency", name = S("Efficiency"),
max_level = 5, max_level = 5,
primary = {pickaxe = true, shovel = true, axe = true, hoe = true}, primary = {pickaxe = true, shovel = true, axe = true, hoe = true},
secondary = {shears = true}, secondary = {shears = true},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 10, weight = 10,
description = "Increases mining speed.", description = S("Increases mining speed."),
curse = false, curse = false,
on_enchant = function(itemstack, level) on_enchant = function(itemstack, level)
local tool_capabilities = itemstack:get_tool_capabilities() local tool_capabilities = itemstack:get_tool_capabilities()
@ -156,14 +158,14 @@ mcl_enchanting.enchantments.efficiency = {
-- implemented in mcl_armor -- implemented in mcl_armor
mcl_enchanting.enchantments.feather_falling = { mcl_enchanting.enchantments.feather_falling = {
name = "Feather Falling", name = S("Feather Falling"),
max_level = 4, max_level = 4,
primary = {armor_feet = true}, primary = {armor_feet = true},
secondary = {}, secondary = {},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {}, incompatible = {},
weight = 5, weight = 5,
description = "Reduces fall damage.",curse = false, description = S("Reduces fall damage."),curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
treasure = false, treasure = false,
@ -172,14 +174,14 @@ mcl_enchanting.enchantments.feather_falling = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.fire_aspect = { --[[mcl_enchanting.enchantments.fire_aspect = {
name = "Fire Aspect", name = S("Fire Aspect"),
max_level = 2, max_level = 2,
primary = {sword = true}, primary = {sword = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Sets target on fire.", description = S("Sets target on fire."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -189,14 +191,14 @@ mcl_enchanting.enchantments.feather_falling = {
-- implemented in mcl_armor -- implemented in mcl_armor
mcl_enchanting.enchantments.fire_protection = { mcl_enchanting.enchantments.fire_protection = {
name = "Fire Protection", name = S("Fire Protection"),
max_level = 4, max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true}, primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {}, secondary = {},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, protection = true, projectile_protection = true}, incompatible = {blast_protection = true, protection = true, projectile_protection = true},
weight = 5, weight = 5,
description = "Reduces fire damage.", description = S("Reduces fire damage."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -206,14 +208,14 @@ mcl_enchanting.enchantments.fire_protection = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.flame = { --[[mcl_enchanting.enchantments.flame = {
name = "Flame", name = S("Flame"),
max_level = 1, max_level = 1,
primary = {bow = true}, primary = {bow = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Arrows set target on fire.", description = S("Arrows set target on fire."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -223,14 +225,14 @@ mcl_enchanting.enchantments.fire_protection = {
-- implemented in mcl_item_entity -- implemented in mcl_item_entity
mcl_enchanting.enchantments.fortune = { mcl_enchanting.enchantments.fortune = {
name = "Fortune", name = S("Fortune"),
max_level = 3, max_level = 3,
primary = {pickaxe = true, shovel = true, axe = true, hoe = true}, primary = {pickaxe = true, shovel = true, axe = true, hoe = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {silk_touch = true}, incompatible = {silk_touch = true},
weight = 2, weight = 2,
description = "Increases certain block drops.", description = S("Increases certain block drops."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -240,14 +242,14 @@ mcl_enchanting.enchantments.fortune = {
-- implemented via walkover.register_global -- implemented via walkover.register_global
mcl_enchanting.enchantments.frost_walker = { mcl_enchanting.enchantments.frost_walker = {
name = "Frost Walker", name = S("Frost Walker"),
max_level = 2, max_level = 2,
primary = {}, primary = {},
secondary = {armor_feet = true}, secondary = {armor_feet = true},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {depth_strider = true}, incompatible = {depth_strider = true},
weight = 2, 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, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -274,14 +276,14 @@ end)
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.impaling = { --[[mcl_enchanting.enchantments.impaling = {
name = "Impaling", name = S("Impaling"),
max_level = 5, max_level = 5,
primary = {trident = true}, primary = {trident = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, 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, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -291,14 +293,14 @@ end)
-- implemented in mcl_bows -- implemented in mcl_bows
mcl_enchanting.enchantments.infinity = { mcl_enchanting.enchantments.infinity = {
name = "Infinity", name = S("Infinity"),
max_level = 1, max_level = 1,
primary = {bow = true}, primary = {bow = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {mending = true}, incompatible = {mending = true},
weight = 1, weight = 1,
description = "Shooting consumes no regular arrows.", description = S("Shooting consumes no regular arrows."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -308,14 +310,14 @@ mcl_enchanting.enchantments.infinity = {
-- implemented via minetest.calculate_knockback -- implemented via minetest.calculate_knockback
mcl_enchanting.enchantments.knockback = { mcl_enchanting.enchantments.knockback = {
name = "Knockback", name = S("Knockback"),
max_level = 2, max_level = 2,
primary = {sword = true}, primary = {sword = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 5, weight = 5,
description = "Increases knockback.", description = S("Increases knockback."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -341,14 +343,14 @@ end
-- unimplemented -- unimplemented
--[[mcl_enchanting.enchantments.looting = { --[[mcl_enchanting.enchantments.looting = {
name = "Looting", name = S("Looting"),
max_level = 3, max_level = 3,
primary = {sword = true}, primary = {sword = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Increases mob loot.", description = S("Increases mob loot."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -358,14 +360,14 @@ end
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.loyalty = { --[[mcl_enchanting.enchantments.loyalty = {
name = "Loyalty", name = S("Loyalty"),
max_level = 3, max_level = 3,
primary = {trident = true}, primary = {trident = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {riptide = true}, incompatible = {riptide = true},
weight = 5, 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, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -375,14 +377,14 @@ end
-- unimplemented -- unimplemented
--[[mcl_enchanting.enchantments.luck_of_the_sea = { --[[mcl_enchanting.enchantments.luck_of_the_sea = {
name = "Luck of the Sea", name = S("Luck of the Sea"),
max_level = 3, max_level = 3,
primary = {fishing_rod = true}, primary = {fishing_rod = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Increases rate of good loot (enchanting books, etc.)", description = S("Increases rate of good loot (enchanting books, etc.)"),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -392,14 +394,14 @@ end
-- implemented in mcl_fishing -- implemented in mcl_fishing
mcl_enchanting.enchantments.lure = { mcl_enchanting.enchantments.lure = {
name = "Lure", name = S("Lure"),
max_level = 3, max_level = 3,
primary = {fishing_rod = true}, primary = {fishing_rod = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Decreases wait time until fish/junk/loot \"bites\".", description = S("Decreases time until rod catches something."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -409,14 +411,14 @@ mcl_enchanting.enchantments.lure = {
-- unimplemented -- unimplemented
--[[mcl_enchanting.enchantments.mending = { --[[mcl_enchanting.enchantments.mending = {
name = "Mending", name = S("Mending"),
max_level = 1, max_level = 1,
primary = {}, primary = {},
secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true, tool = true, weapon = true}, secondary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true, tool = true, weapon = true},
disallow = {}, disallow = {},
incompatible = {infinity = true}, incompatible = {infinity = true},
weight = 2, weight = 2,
description = "Repair the item while gaining XP orbs.", description = S("Repair the item while gaining XP orbs."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = true, requires_tool = true,
@ -426,14 +428,14 @@ mcl_enchanting.enchantments.lure = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.multishot = { --[[mcl_enchanting.enchantments.multishot = {
name = "Multishot", name = S("Multishot"),
max_level = 1, max_level = 1,
primary = {crossbow = true}, primary = {crossbow = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {piercing = true}, incompatible = {piercing = true},
weight = 2, weight = 2,
description = "Shoot 3 arrows at the cost of one.", description = S("Shoot 3 arrows at the cost of one."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -443,14 +445,14 @@ mcl_enchanting.enchantments.lure = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.piercing = { --[[mcl_enchanting.enchantments.piercing = {
name = "Piercing", name = S("Piercing"),
max_level = 4, max_level = 4,
primary = {crossbow = true}, primary = {crossbow = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {multishot = true}, incompatible = {multishot = true},
weight = 10, weight = 10,
description = "Arrows pass through multiple entities.", description = S("Arrows passes through multiple objects."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -460,14 +462,14 @@ mcl_enchanting.enchantments.lure = {
-- implemented in mcl_bows -- implemented in mcl_bows
mcl_enchanting.enchantments.power = { mcl_enchanting.enchantments.power = {
name = "Power", name = S("Power"),
max_level = 5, max_level = 5,
primary = {bow = true}, primary = {bow = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 10, weight = 10,
description = "Increases arrow damage.", description = S("Increases arrow damage."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -477,14 +479,14 @@ mcl_enchanting.enchantments.power = {
-- implemented in mcl_armor -- implemented in mcl_armor
mcl_enchanting.enchantments.projectile_protection = { mcl_enchanting.enchantments.projectile_protection = {
name = "Projectile Protection", name = S("Projectile Protection"),
max_level = 4, max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true}, primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {}, secondary = {},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, fire_protection = true, protection = true}, incompatible = {blast_protection = true, fire_protection = true, protection = true},
weight = 5, weight = 5,
description = "Reduces projectile damage.", description = S("Reduces projectile damage."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -494,14 +496,14 @@ mcl_enchanting.enchantments.projectile_protection = {
-- implemented in mcl_armor -- implemented in mcl_armor
mcl_enchanting.enchantments.protection = { mcl_enchanting.enchantments.protection = {
name = "Protection", name = S("Protection"),
max_level = 4, max_level = 4,
primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true}, primary = {armor_head = true, armor_torso = true, armor_legs = true, armor_feet = true},
secondary = {}, secondary = {},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true}, incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true},
weight = 10, 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, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -511,14 +513,14 @@ mcl_enchanting.enchantments.protection = {
-- implemented via minetest.calculate_knockback (together with the Knockback enchantment) and mcl_bows -- implemented via minetest.calculate_knockback (together with the Knockback enchantment) and mcl_bows
mcl_enchanting.enchantments.punch = { mcl_enchanting.enchantments.punch = {
name = "Punch", name = S("Punch"),
max_level = 2, max_level = 2,
primary = {}, primary = {},
secondary = {bow = true}, secondary = {bow = true},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Increases arrow knockback.", description = S("Increases arrow knockback."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -528,14 +530,14 @@ mcl_enchanting.enchantments.punch = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.quick_charge = { --[[mcl_enchanting.enchantments.quick_charge = {
name = "Quick Charge", name = S("Quick Charge"),
max_level = 3, max_level = 3,
primary = {crossbow = true}, primary = {crossbow = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 5, weight = 5,
description = "Decreases crossbow charging time.", description = S("Decreases crossbow charging time."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -545,14 +547,14 @@ mcl_enchanting.enchantments.punch = {
-- unimplemented -- unimplemented
--[[mcl_enchanting.enchantments.respiration = { --[[mcl_enchanting.enchantments.respiration = {
name = "Respiration", name = S("Respiration"),
max_level = 3, max_level = 3,
primary = {armor_head = true}, primary = {armor_head = true},
secondary = {}, secondary = {},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Extends underwater breathing time.", description = S("Extends underwater breathing time."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -562,14 +564,14 @@ mcl_enchanting.enchantments.punch = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.riptide = { --[[mcl_enchanting.enchantments.riptide = {
name = "Riptide", name = S("Riptide"),
max_level = 3, max_level = 3,
primary = {trident = true}, primary = {trident = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {channeling = true, loyalty = true}, incompatible = {channeling = true, loyalty = true},
weight = 2, 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, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -579,14 +581,14 @@ mcl_enchanting.enchantments.punch = {
-- implemented via on_enchant -- implemented via on_enchant
mcl_enchanting.enchantments.sharpness = { mcl_enchanting.enchantments.sharpness = {
name = "Sharpness", name = S("Sharpness"),
max_level = 5, max_level = 5,
primary = {sword = true}, primary = {sword = true},
secondary = {axe = true}, secondary = {axe = true},
disallow = {}, disallow = {},
incompatible = {bane_of_arthropods = true, smite = true}, incompatible = {bane_of_arthropods = true, smite = true},
weight = 5, weight = 5,
description = "Increases damage.", description = S("Increases damage."),
curse = false, curse = false,
on_enchant = increase_damage("fleshy", 0.5), on_enchant = increase_damage("fleshy", 0.5),
requires_tool = false, requires_tool = false,
@ -596,14 +598,14 @@ mcl_enchanting.enchantments.sharpness = {
-- implemented in mcl_item_entity -- implemented in mcl_item_entity
mcl_enchanting.enchantments.silk_touch = { mcl_enchanting.enchantments.silk_touch = {
name = "Silk Touch", name = S("Silk Touch"),
max_level = 1, max_level = 1,
primary = {pickaxe = true, shovel = true, axe = true, hoe = true}, primary = {pickaxe = true, shovel = true, axe = true, hoe = true},
secondary = {shears = true}, secondary = {shears = true},
disallow = {}, disallow = {},
incompatible = {fortune = true}, incompatible = {fortune = true},
weight = 1, weight = 1,
description = "Mined blocks drop themselves.", description = S("Mined blocks drop themselves."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -613,14 +615,14 @@ mcl_enchanting.enchantments.silk_touch = {
-- implemented via on_enchant and additions in mobs_mc -- implemented via on_enchant and additions in mobs_mc
mcl_enchanting.enchantments.smite = { mcl_enchanting.enchantments.smite = {
name = "Smite", name = S("Smite"),
max_level = 5, max_level = 5,
primary = {sword = true}, primary = {sword = true},
secondary = {axe = true}, secondary = {axe = true},
disallow = {}, disallow = {},
incompatible = {bane_of_arthropods = true, sharpness = true}, incompatible = {bane_of_arthropods = true, sharpness = true},
weight = 5, weight = 5,
description = "Increases damage to undead mobs.", description = S("Increases damage to undead mobs."),
curse = false, curse = false,
on_enchant = increase_damage("undead", 2.5), on_enchant = increase_damage("undead", 2.5),
requires_tool = false, requires_tool = false,
@ -630,14 +632,14 @@ mcl_enchanting.enchantments.smite = {
-- implemented in mcl_playerplus -- implemented in mcl_playerplus
mcl_enchanting.enchantments.soul_speed = { mcl_enchanting.enchantments.soul_speed = {
name = "Soul Speed", name = S("Soul Speed"),
max_level = 3, max_level = 3,
primary = {}, primary = {},
secondary = {armor_feet = true}, secondary = {armor_feet = true},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {frost_walker = true}, incompatible = {frost_walker = true},
weight = 2, weight = 2,
description = "Increases walking speed on soul sand.", description = S("Increases walking speed on soul sand."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -647,14 +649,14 @@ mcl_enchanting.enchantments.soul_speed = {
-- requires missing MineClone2 feature -- requires missing MineClone2 feature
--[[mcl_enchanting.enchantments.sweeping_edge = { --[[mcl_enchanting.enchantments.sweeping_edge = {
name = "Sweeping Edge", name = S("Sweeping Edge"),
max_level = 3, max_level = 3,
primary = {sword = true}, primary = {sword = true},
secondary = {}, secondary = {},
disallow = {}, disallow = {},
incompatible = {}, incompatible = {},
weight = 2, weight = 2,
description = "Increases sweeping attack damage.", description = S("Increases sweeping attack damage."),
curse = false, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, requires_tool = false,
@ -664,14 +666,14 @@ mcl_enchanting.enchantments.soul_speed = {
-- implemented in mcl_armor -- implemented in mcl_armor
mcl_enchanting.enchantments.thorns = { mcl_enchanting.enchantments.thorns = {
name = "Thorns", name = S("Thorns"),
max_level = 3, max_level = 3,
primary = {armor_head = true}, primary = {armor_head = true},
secondary = {armor_torso = true, armor_legs = true, armor_feet = true}, secondary = {armor_torso = true, armor_legs = true, armor_feet = true},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true}, incompatible = {blast_protection = true, fire_protection = true, projectile_protection = true},
weight = 1, 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, curse = false,
on_enchant = function() end, on_enchant = function() end,
requires_tool = false, 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 -- 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 = { mcl_enchanting.enchantments.unbreaking = {
name = "Unbreaking", name = S("Unbreaking"),
max_level = 3, 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}, 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}, secondary = {tool = true},
disallow = {non_combat_armor = true}, disallow = {non_combat_armor = true},
incompatible = {}, incompatible = {},
weight = 5, weight = 5,
description = "Increases item durability.", description = S("Increases item durability."),
curse = false, curse = false,
on_enchant = function(itemstack, level) on_enchant = function(itemstack, level)
local tool_capabilities = itemstack:get_tool_capabilities() 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) function mcl_enchanting.is_book(itemname)
return itemname == "mcl_books:book" or itemname == "mcl_enchanting:book_enchanted" return itemname == "mcl_books:book" or itemname == "mcl_enchanting:book_enchanted"
end end
@ -388,13 +391,13 @@ function mcl_enchanting.show_enchanting_formspec(player)
local formspec = "" local formspec = ""
.. "size[9.07,8.6;]" .. "size[9.07,8.6;]"
.. "formspec_version[3]" .. "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) .. mcl_formspec.get_itemslot_bg(0.2, 2.4, 1, 1)
.. "list[detached:" .. name .. "_enchanting;enchanting;0.2,2.4;1,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) .. mcl_formspec.get_itemslot_bg(1.1, 2.4, 1, 1)
.. "image[1.1,2.4;1,1;mcl_enchanting_lapis_background.png]" .. "image[1.1,2.4;1,1;mcl_enchanting_lapis_background.png]"
.. "list[detached:" .. name .. "_enchanting;enchanting;1.1,2.4;1,1;2]" .. "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, 4.5, 9, 3)
.. mcl_formspec.get_itemslot_bg(0, 7.74, 9, 1) .. mcl_formspec.get_itemslot_bg(0, 7.74, 9, 1)
.. "list[current_player;main;0,4.5;9,3;9]" .. "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") local hover_ending = (can_enchant and "_hovered" or "_off")
formspec = formspec formspec = formspec
.. "container[3.2," .. y .. "]" .. "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]" .. "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 .. ";]" .. "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 "") .. (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 modpath = minetest.get_modpath("mcl_enchanting")
local S = minetest.get_translator("mcl_enchanting")
mcl_enchanting = { mcl_enchanting = {
book_offset = vector.new(0, 0.75, 0), book_offset = vector.new(0, 0.75, 0),
@ -58,8 +59,8 @@ dofile(modpath .. "/engine.lua")
dofile(modpath .. "/enchantments.lua") dofile(modpath .. "/enchantments.lua")
minetest.register_chatcommand("enchant", { minetest.register_chatcommand("enchant", {
description = "Enchant an item.", description = S("Enchant an item"),
params = "<player> <enchantment> [<level>]", params = S("<player> <enchantment> [<level>]"),
privs = {give = true}, privs = {give = true},
func = function(_, param) func = function(_, param)
local sparam = param:split(" ") local sparam = param:split(" ")
@ -68,40 +69,40 @@ minetest.register_chatcommand("enchant", {
local level_str = sparam[3] local level_str = sparam[3]
local level = tonumber(level_str or "1") local level = tonumber(level_str or "1")
if not target_name or not enchantment then if not target_name or not enchantment then
return false, "Usage: /enchant <player> <enchantment> [<level>]" return false, S("Usage: /enchant <player> <enchantment> [<level>]")
end end
local target = minetest.get_player_by_name(target_name) local target = minetest.get_player_by_name(target_name)
if not target then if not target then
return false, "Player '" .. target_name .. "' cannot be found" return false, S("Player '@1' cannot be found.", target_name)
end end
local itemstack = target:get_wielded_item() 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 = mcl_enchanting.can_enchant(itemstack, enchantment, level)
if not can_enchant then if not can_enchant then
if errorstring == "enchantment invalid" 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 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 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 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 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 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 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 end
else else
target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level)) target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level))
return true, "Enchanting succeded" return true, S("Enchanting succeded.")
end end
end end
}) })
minetest.register_chatcommand("forceenchant", { minetest.register_chatcommand("forceenchant", {
description = "Forcefully enchant an item.", description = S("Forcefully enchant an item"),
params = "<player> <enchantment> [<level>]", params = S("<player> <enchantment> [<level>]"),
func = function(_, param) func = function(_, param)
local sparam = param:split(" ") local sparam = param:split(" ")
local target_name = sparam[1] local target_name = sparam[1]
@ -109,31 +110,31 @@ minetest.register_chatcommand("forceenchant", {
local level_str = sparam[3] local level_str = sparam[3]
local level = tonumber(level_str or "1") local level = tonumber(level_str or "1")
if not target_name or not enchantment then if not target_name or not enchantment then
return false, "Usage: /forceenchant <player> <enchantment> [<level>]" return false, S("Usage: /forceenchant <player> <enchantment> [<level>]")
end end
local target = minetest.get_player_by_name(target_name) local target = minetest.get_player_by_name(target_name)
if not target then if not target then
return false, "Player '" .. target_name .. "' cannot be found" return false, S("Player '@1' cannot be found.", target_name)
end end
local itemstack = target:get_wielded_item() 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 = mcl_enchanting.can_enchant(itemstack, enchantment, level)
if errorstring == "enchantment invalid" 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 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 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 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 else
target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level)) target:set_wielded_item(mcl_enchanting.enchant(itemstack, enchantment, level))
return true, "Enchanting succeded" return true, S("Enchanting succeded.")
end end
end end
}) })
minetest.register_craftitem("mcl_enchanting:book_enchanted", { minetest.register_craftitem("mcl_enchanting:book_enchanted", {
description = "Enchanted Book", description = S("Enchanted Book"),
inventory_image = "mcl_enchanting_book_enchanted.png" .. mcl_enchanting.overlay, inventory_image = "mcl_enchanting_book_enchanted.png" .. mcl_enchanting.overlay,
groups = {enchanted = 1, not_in_creative_inventory = 1, enchantability = 1}, groups = {enchanted = 1, not_in_creative_inventory = 1, enchantability = 1},
_mcl_enchanting_enchanted_tool = "mcl_enchanting:book_enchanted", _mcl_enchanting_enchanted_tool = "mcl_enchanting:book_enchanted",
@ -181,7 +182,7 @@ minetest.register_entity("mcl_enchanting:book", {
}) })
minetest.register_node("mcl_enchanting:table", { minetest.register_node("mcl_enchanting:table", {
description = "Enchanting Table", description = S("Enchanting Table"),
drawtype = "nodebox", 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 = {"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 = { node_box = {
@ -197,7 +198,7 @@ minetest.register_node("mcl_enchanting:table", {
local num_bookshelves = table_meta:get_int("mcl_enchanting:num_bookshelves") local num_bookshelves = table_meta:get_int("mcl_enchanting:num_bookshelves")
local table_name = table_meta:get_string("name") local table_name = table_meta:get_string("name")
if table_name == "" then if table_name == "" then
table_name = "Enchant" table_name = S("Enchant")
end end
player_meta:set_int("mcl_enchanting:num_bookshelves", num_bookshelves) player_meta:set_int("mcl_enchanting:num_bookshelves", num_bookshelves)
player_meta:set_string("mcl_enchanting:table_name", table_name) player_meta:set_string("mcl_enchanting:table_name", table_name)