nixnoxus a39a454c49
Move to MT 5.0.0+ translation system (#255)
* convert to `minetest.get_translator`

* fix material translation

* fix material translation

* Revert "fix material translation"

This reverts commit 35d0979d5828f481b6e53c04f20739983ba35087.

* update */locale/*

* `S("Chernobylite Block")`

* restore non-breaking spaces

* fix technic_chests/spec/api_spec.lua

* fix S(...)

* update technic/locale/

* update german translations

* fix placeholder `%s` in *.zh_CN.tr translations
2022-01-07 13:17:43 +01:00

84 lines
2.0 KiB
Lua

local S = technic.worldgen.gettext
minetest.override_item("default:steel_ingot", {
description = S("Wrought Iron Ingot"),
-- Make the color of the ingot a bit darker to separate it better from tin
inventory_image = "technic_wrought_iron_ingot.png^[multiply:#bbbbbbff",
})
-- Override description and textures of "steel" items
local excluded_words = {
"[Cc]arbon",
"[Ss]tainless",
"[Ff]lint",
}
local function is_steel(name, desc)
name = name:gsub(".+:(.+)", "%1") -- Ignore mod name
if name:match("[Ss]teel") or desc:match("[Ss]teel") then
for _, word in pairs(excluded_words) do
if name:match(word) or desc:match(word) then
return false
end
end
return true
end
end
local function edit_desc(desc, old, new)
desc = desc:gsub(old, new)
desc = desc:gsub(old:lower(), new:lower())
return desc
end
local function replace_texture(tile)
local new_tile
if type(tile) == "string" then
new_tile = tile:gsub("default_steel_block.png", "technic_wrought_iron_block.png")
else
new_tile = {}
for k, v in pairs(tile) do
if k == "name" then
new_tile[k] = v:gsub("default_steel_block.png", "technic_wrought_iron_block.png")
else
new_tile[k] = v
end
end
end
return new_tile
end
local function do_override(name, def)
local desc = def.description
if not is_steel(name, desc) then
return
end
local override = {}
if name:find("steelblock") then
override.description = edit_desc(desc, "Steel", "Wrought Iron")
else
override.description = edit_desc(desc, "Steel", "Iron")
end
if def.tiles then
override.tiles = {}
for _, tile in ipairs(def.tiles) do
table.insert(override.tiles, replace_texture(tile))
end
end
if def.inventory_image then
override.inventory_image = replace_texture(def.inventory_image)
end
if def.wield_image then
override.wield_image = replace_texture(def.wield_image)
end
minetest.override_item(name, override)
end
minetest.register_on_mods_loaded(function()
for name, def in pairs(minetest.registered_items) do
do_override(name, def)
end
end)