Add support for translations via intllib

This commit is contained in:
ShadowNinja
2013-10-30 13:45:32 -04:00
parent d8e02eb2dd
commit be2f30a1a2
35 changed files with 541 additions and 308 deletions

View File

@ -1,3 +1,6 @@
local S = technic.getter
-- Register alloy recipes
technic.alloy_recipes = {}
@ -79,7 +82,7 @@ function technic.register_alloy_furnace(data)
local formspec =
"invsize[8,10;]"..
"label[0,0;"..tier.." Alloy Furnace]"..
"label[0,0;"..S("%s Alloy Furnace"):format(tier).."]"..
"list[current_name;src;3,1;1,2;]"..
"list[current_name;dst;5,1;2,2;]"..
"list[current_player;main;0,6;8,4;]"
@ -107,7 +110,7 @@ function technic.register_alloy_furnace(data)
}
minetest.register_node("technic:"..ltier.."_alloy_furnace", {
description = tier.." Alloy Furnace",
description = S("%s Alloy Furnace"):format(tier),
tiles = {"technic_"..ltier.."_alloy_furnace_top.png",
"technic_"..ltier.."_alloy_furnace_bottom.png",
tube_side_texture,
@ -126,7 +129,7 @@ function technic.register_alloy_furnace(data)
local data = minetest.registered_nodes[name].technic
meta:set_string("infotext", data.tier.." Alloy furnace")
meta:set_string("infotext", S("%s Alloy Furnace"):format(data.tier))
meta:set_string("formspec", data.formspec)
meta:set_int("tube_time", 0)
local inv = meta:get_inventory()
@ -141,7 +144,7 @@ function technic.register_alloy_furnace(data)
if not inv:is_empty("src") or not inv:is_empty("dst") or
not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty");
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -150,7 +153,7 @@ function technic.register_alloy_furnace(data)
})
minetest.register_node("technic:"..ltier.."_alloy_furnace_active",{
description = tier.." Alloy Furnace",
description = S(tier.." Alloy Furnace"),
tiles = {"technic_"..ltier.."_alloy_furnace_top.png",
"technic_"..ltier.."_alloy_furnace_bottom.png",
tube_side_texture,
@ -171,7 +174,7 @@ function technic.register_alloy_furnace(data)
if not inv:is_empty("src") or not inv:is_empty("dst") or
not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty");
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -208,7 +211,7 @@ function technic.register_alloy_furnace(data)
local eu_input = meta:get_int(data.tier.."_EU_input")
-- Machine information
local machine_name = data.tier.." Alloy Furnace"
local machine_name = S("%s Alloy Furnace"):format(data.tier)
local machine_node = "technic:"..string.lower(data.tier).."_alloy_furnace"
local machine_demand = data.demand
@ -243,7 +246,7 @@ function technic.register_alloy_furnace(data)
if not result or
not inv:room_for_item("dst", result) then
hacky_swap_node(pos, machine_node)
meta:set_string("infotext", machine_name.." Idle")
meta:set_string("infotext", S("%s Idle"):format(machine_name))
meta:set_int(data.tier.."_EU_demand", 0)
return
end
@ -251,11 +254,11 @@ function technic.register_alloy_furnace(data)
if eu_input < machine_demand[EU_upgrade+1] then
-- Unpowered - go idle
hacky_swap_node(pos, machine_node)
meta:set_string("infotext", machine_name.." Unpowered")
meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
elseif eu_input >= machine_demand[EU_upgrade+1] then
-- Powered
hacky_swap_node(pos, machine_node.."_active")
meta:set_string("infotext", machine_name.." Active")
meta:set_string("infotext", S("%s Active"):format(machine_name))
meta:set_int("src_time", meta:get_int("src_time") + 1)
if meta:get_int("src_time") == data.cook_time then
meta:set_int("src_time", 0)

View File

@ -1,27 +1,29 @@
technic.battery_box_formspec =
"invsize[8,9;]"..
"image[1,1;1,2;technic_power_meter_bg.png]"..
"list[current_name;src;3,1;1,1;]"..
"image[4,1;1,1;technic_battery_reload.png]"..
"list[current_name;dst;5,1;1,1;]"..
"label[0,0;Battery Box]"..
"label[3,0;Charge]"..
"label[5,0;Discharge]"..
"label[1,3;Power level]"..
"list[current_player;main;0,5;8,4;]"
local S = technic.getter
function technic.register_battery_box(data)
local tier = data.tier
local ltier = string.lower(tier)
data.formspec =
"invsize[8,9;]"..
"image[1,1;1,2;technic_power_meter_bg.png]"..
"list[current_name;src;3,1;1,1;]"..
"image[4,1;1,1;technic_battery_reload.png]"..
"list[current_name;dst;5,1;1,1;]"..
"label[0,0;"..S("%s Battery Box"):format(tier).."]"..
"label[3,0;"..S("Charge").."]"..
"label[5,0;"..S("Discharge").."]"..
"label[1,3;"..S("Power level").."]"..
"list[current_player;main;0,5;8,4;]"
for i = 0, 8 do
local groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}
if i ~= 0 then
groups.not_in_creative_inventory = 1
end
minetest.register_node("technic:"..ltier.."_battery_box"..i, {
description = tier.." Battery Box",
description = S("%s Battery Box"):format(tier),
tiles = {"technic_"..ltier.."_battery_box_top.png",
"technic_"..ltier.."_battery_box_bottom.png",
"technic_"..ltier.."_battery_box_side.png^technic_power_meter"..i..".png",
@ -38,8 +40,8 @@ function technic.register_battery_box(data)
local node = minetest.get_node(pos)
local data = minetest.registered_nodes[node.name].technic
meta:set_string("infotext", data.tier.." Battery Box")
meta:set_string("formspec", battery_box_formspec)
meta:set_string("infotext", S("%s Battery Box"):format(data.tier))
meta:set_string("formspec", data.formspec)
meta:set_int(data.tier.."_EU_demand", 0)
meta:set_int(data.tier.."_EU_supply", 0)
meta:set_int(data.tier.."_EU_input", 0)
@ -47,12 +49,12 @@ function technic.register_battery_box(data)
inv:set_size("src", 1)
inv:set_size("dst", 1)
end,
can_dig = function(pos,player)
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty("src") or not inv:is_empty("dst") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty");
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -115,14 +117,14 @@ function technic.register_battery_box(data)
local charge_percent = math.floor(current_charge / max_charge * 100)
meta:set_string("formspec",
technic.battery_box_formspec..
"image[1,1;1,2;technic_power_meter_bg.png^[lowpart:"
..charge_percent..":technic_power_meter_fg.png]")
data.formspec..
"image[1,1;1,2;technic_power_meter_bg.png"
.."^[lowpart:"..charge_percent
..":technic_power_meter_fg.png]")
local infotext = data.tier.." battery box: "
..current_charge.."/"..max_charge
local infotext = S("%s Battery Box: %d/%d"):format(data.tier, current_charge, max_charge)
if eu_input == 0 then
infotext = infotext.." (idle)"
infotext = S("%s Idle"):format(infotext)
end
meta:set_string("infotext", infotext)
end

View File

@ -1,7 +1,8 @@
local S = technic.getter
technic.cables = {}
function technic.register_cable(tier, size)
local ltier = string.lower(tier)
@ -21,7 +22,7 @@ function technic.register_cable(tier, size)
end
minetest.register_node("technic:"..ltier.."_cable"..id, {
description = tier.." Cable",
description = S("%s Cable"):format(tier),
tiles = {"technic_"..ltier.."_cable.png"},
inventory_image = "technic_"..ltier.."_cable_wield.png",
wield_image = "technic_"..ltier.."_cable_wield.png",

View File

@ -1,4 +1,6 @@
local S = technic.getter
function technic.register_electric_furnace(data)
local tier = data.tier
local ltier = string.lower(tier)
@ -25,7 +27,7 @@ function technic.register_electric_furnace(data)
"list[current_name;src;3,1;1,1;]"..
"list[current_name;dst;5,1;2,2;]"..
"list[current_player;main;0,6;8,4;]"..
"label[0,0;"..tier.." Electric Furnace]"
"label[0,0;"..S("%s Electric Furnace"):format(tier).."]"
if data.upgrade then
formspec = formspec..
"list[current_name;upgrade1;1,4;1,1;]"..
@ -36,7 +38,7 @@ function technic.register_electric_furnace(data)
data.formspec = formspec
minetest.register_node("technic:"..ltier.."_electric_furnace", {
description = tier.." Electric furnace",
description = S("%s Electric furnace"):format(tier),
tiles = {"technic_"..ltier.."_electric_furnace_top.png",
"technic_"..ltier.."_electric_furnace_bottom.png",
tube_side_texture,
@ -53,7 +55,7 @@ function technic.register_electric_furnace(data)
local meta = minetest.get_meta(pos)
local name = minetest.get_node(pos).name
local data = minetest.registered_nodes[name].technic
meta:set_string("infotext", data.tier.." Electric furnace")
meta:set_string("infotext", S("%s Electric furnace"):format(data.tier))
meta:set_int("tube_time", 0)
meta:set_string("formspec", data.formspec)
local inv = meta:get_inventory()
@ -62,13 +64,13 @@ function technic.register_electric_furnace(data)
inv:set_size("upgrade1", 1)
inv:set_size("upgrade2", 1)
end,
can_dig = function(pos,player)
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty("src") or not inv:is_empty("dst") or
not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty");
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -95,7 +97,7 @@ function technic.register_electric_furnace(data)
local meta = minetest.get_meta(pos)
local name = minetest.get_node(pos).name
local data = minetest.registered_nodes[name].technic
meta:set_string("infotext", data.tier.." Electric furnace")
meta:set_string("infotext", S("%s Electric furnace", data.tier))
meta:set_int("tube_time", 0)
meta:set_string("formspec", data.formspec)
local inv = meta:get_inventory()
@ -104,13 +106,13 @@ function technic.register_electric_furnace(data)
inv:set_size("upgrade1", 1)
inv:set_size("upgrade2", 1)
end,
can_dig = function(pos,player)
can_dig = function(pos, player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
if not inv:is_empty("src") or not inv:is_empty("dst") or
not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty");
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -148,7 +150,7 @@ function technic.register_electric_furnace(data)
local eu_input = meta:get_int(data.tier.."_EU_input")
-- Machine information
local machine_name = data.tier.." Electric Furnace"
local machine_name = S("%s Electric Furnace"):format(data.tier)
local machine_node = "technic:"..string.lower(data.tier).."_electric_furnace"
local machine_demand = data.demand
@ -172,18 +174,18 @@ function technic.register_electric_furnace(data)
not inv:room_for_item("dst", result.item) then
meta:set_int(data.tier.."_EU_demand", 0)
hacky_swap_node(pos, machine_node)
meta:set_string("infotext", machine_name.." Idle")
meta:set_string("infotext", S("%s Idle"):format(machine_name))
return
end
if eu_input < machine_demand[EU_upgrade+1] then
-- Unpowered - go idle
hacky_swap_node(pos, machine_node)
meta:set_string("infotext", machine_name.." Unpowered")
meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
elseif eu_input >= machine_demand[EU_upgrade+1] then
-- Powered
hacky_swap_node(pos, machine_node.."_active")
meta:set_string("infotext", machine_name.." Active")
meta:set_string("infotext", S("%s Active"):format(machine_name))
technic.smelt_item(meta, result, data.speed)
end

View File

@ -1,16 +1,18 @@
local S = technic.getter
function technic.register_generator(data)
local tier = data.tier
local ltier = string.lower(tier)
local generator_formspec =
"invsize[8,9;]"..
"label[0,0;Generator]"..
"label[0,0;"..S("%s Generator"):format(tier).."]"..
"list[current_name;src;3,1;1,1;]"..
"image[4,1;1,1;default_furnace_fire_bg.png]"..
"list[current_player;main;0,5;8,4;]"
local desc = tier.." Generator"
local desc = S("%s Generator"):format(tier)
minetest.register_node("technic:"..ltier.."_generator", {
description = desc,
tiles = {"technic_"..ltier.."_generator_top.png", "technic_machine_bottom.png",
@ -34,7 +36,7 @@ function technic.register_generator(data)
local inv = meta:get_inventory()
if not inv:is_empty("src") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty")
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -57,7 +59,7 @@ function technic.register_generator(data)
local inv = meta:get_inventory()
if not inv:is_empty("src") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty")
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -85,7 +87,7 @@ function technic.register_generator(data)
local fuellist = inv:get_list("src")
fuel = minetest.get_craft_result({method = "fuel", width = 1, items = fuellist})
if not fuel or fuel.time == 0 then
meta:set_string("infotext", "Generator out of fuel")
meta:set_string("infotext", S("%s Out Of Fuel"):format(desc))
hacky_swap_node(pos, "technic:"..ltier.."_generator")
return
end
@ -116,3 +118,4 @@ function technic.register_generator(data)
technic.register_machine(data.tier, "technic:"..ltier.."_generator", technic.producer)
technic.register_machine(data.tier, "technic:"..ltier.."_generator", technic.producer)
end

View File

@ -1,4 +1,6 @@
local S = technic.getter
function technic.register_grinder(data)
local tier = data.tier
local ltier = string.lower(tier)
@ -31,7 +33,7 @@ function technic.register_grinder(data)
data.formspec = formspec
minetest.register_node("technic:"..ltier.."_grinder", {
description = tier.." Grinder",
description = S("%s Grinder"):format(tier),
tiles = {"technic_"..ltier.."_grinder_top.png", "technic_"..ltier.."_grinder_bottom.png",
"technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_side.png",
"technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_front.png"},
@ -45,7 +47,7 @@ function technic.register_grinder(data)
local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
local data = minetest.registered_nodes[node.name].technic
meta:set_string("infotext", data.tier.." Grinder")
meta:set_string("infotext", S("%s Grinder"):format(data.tier))
meta:set_int("tube_time", 0)
meta:set_string("formspec", data.formspec)
local inv = meta:get_inventory()
@ -55,12 +57,12 @@ function technic.register_grinder(data)
inv:set_size("upgrade2", 1)
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
if not inv:is_empty("src") or not inv:is_empty("dst") or
not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty");
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -69,7 +71,7 @@ function technic.register_grinder(data)
})
minetest.register_node("technic:"..ltier.."_grinder_active",{
description = tier.." Grinder",
description = S("%s Grinder"):format(tier),
tiles = {"technic_"..ltier.."_grinder_top.png", "technic_"..ltier.."_grinder_bottom.png",
"technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_side.png",
"technic_"..ltier.."_grinder_side.png", "technic_"..ltier.."_grinder_front_active.png"},
@ -85,7 +87,7 @@ function technic.register_grinder(data)
if not inv:is_empty("src") or not inv:is_empty("dst") or
not inv:is_empty("upgrade1") or not inv:is_empty("upgrade2") then
minetest.chat_send_player(player:get_player_name(),
"Machine cannot be removed because it is not empty");
S("Machine cannot be removed because it is not empty"))
return false
else
return true
@ -116,12 +118,12 @@ function technic.register_grinder(data)
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local data = minetest.registered_nodes[node.name].technic
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local eu_input = meta:get_int(data.tier.."_EU_input")
local data = minetest.registered_nodes[node.name].technic
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
local eu_input = meta:get_int(data.tier.."_EU_input")
local machine_name = data.tier.." Grinder"
local machine_name = S("%s Grinder"):format(data.tier)
local machine_node = "technic:"..string.lower(data.tier).."_grinder"
local machine_demand = data.demand
@ -147,7 +149,7 @@ function technic.register_grinder(data)
if not result then
hacky_swap_node(pos, machine_node)
meta:set_string("infotext", machine_name.." Idle")
meta:set_string("infotext", S("%s Idle"):format(machine_name))
meta:set_int(data.tier.."_EU_demand", 0)
return
end
@ -155,11 +157,11 @@ function technic.register_grinder(data)
if eu_input < machine_demand[EU_upgrade+1] then
-- Unpowered - go idle
hacky_swap_node(pos, machine_node)
meta:set_string("infotext", machine_name.." Unpowered")
meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
elseif eu_input >= machine_demand[EU_upgrade+1] then
-- Powered
hacky_swap_node(pos, machine_node.."_active")
meta:set_string("infotext", machine_name.." Active")
meta:set_string("infotext", S("%s Active"):format(machine_name))
meta:set_int("src_time", meta:get_int("src_time") + 1)
if meta:get_int("src_time") >= result.time / data.speed then

View File

@ -1,4 +1,6 @@
local S = technic.getter
technic.grinder_recipes = {}
function technic.register_grinder_recipe(data)
@ -63,7 +65,7 @@ local function register_dust(name, ingot)
local lname = string.lower(name)
lname = string.gsub(lname, ' ', '_')
minetest.register_craftitem("technic:"..lname.."_dust", {
description = name.." Dust",
description = S("%s Dust"):format(name),
inventory_image = "technic_"..lname.."_dust.png",
on_place_on_ground = minetest.craftitem_place_item,
})
@ -77,24 +79,26 @@ local function register_dust(name, ingot)
end
-- Sorted alphibeticaly
register_dust("Akalin", "glooptest:akalin_ingot")
register_dust("Alatro", "glooptest:alatro_ingot")
register_dust("Arol", "glooptest:arol_ingot")
register_dust("Brass", "technic:brass_ingot")
register_dust("Bronze", "default:bronze_ingot")
register_dust("Chromium", "technic:chromium_ingot")
register_dust("Coal", nil)
register_dust("Copper", "default:copper_ingot")
register_dust("Gold", "default:gold_ingot")
register_dust("Iron", "default:steel_ingot")
register_dust("Mithril", "moreores:mithril_ingot")
register_dust("Silver", "moreores:silver_ingot")
register_dust("Stainless Steel", "technic:stainless_steel_ingot")
register_dust("Talinite", "glooptest:talinite_ingot")
register_dust("Tin", "moreores:tin_ingot")
register_dust("Zinc", "technic:zinc_ingot")
register_dust(S("Akalin"), "glooptest:akalin_ingot")
register_dust(S("Alatro"), "glooptest:alatro_ingot")
register_dust(S("Arol"), "glooptest:arol_ingot")
register_dust(S("Brass"), "technic:brass_ingot")
register_dust(S("Bronze"), "default:bronze_ingot")
register_dust(S("Chromium"), "technic:chromium_ingot")
register_dust(S("Coal"), nil)
register_dust(S("Copper"), "default:copper_ingot")
register_dust(S("Gold"), "default:gold_ingot")
register_dust(S("Iron"), "default:steel_ingot")
register_dust(S("Mithril"), "moreores:mithril_ingot")
register_dust(S("Silver"), "moreores:silver_ingot")
register_dust(S("Stainless Steel"), "technic:stainless_steel_ingot")
register_dust(S("Talinite"), "glooptest:talinite_ingot")
register_dust(S("Tin"), "moreores:tin_ingot")
register_dust(S("Zinc"), "technic:zinc_ingot")
minetest.register_craft({
type = "fuel",
recipe = "technic:coal_dust",
burntime = 50,
})

View File

@ -1,14 +1,17 @@
local S = technic.getter
function technic.register_solar_array(data)
local tier = data.tier
local ltier = string.lower(tier)
minetest.register_node("technic:solar_array_"..ltier, {
tiles = {"technic_"..ltier.."_solar_array_top.png", "technic_"..ltier.."_solar_array_bottom.png",
"technic_"..ltier.."_solar_array_side.png", "technic_"..ltier.."_solar_array_side.png",
"technic_"..ltier.."_solar_array_side.png", "technic_"..ltier.."_solar_array_side.png"},
groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2},
sounds = default.node_sound_wood_defaults(),
description = tier.." Solar Array",
description = S("%s Solar Array"):format(tier),
active = false,
drawtype = "nodebox",
paramtype = "light",
@ -39,6 +42,8 @@ function technic.register_solar_array(data)
-- To take care of some of it solar panels do not work outside daylight hours or if
-- built below -10m
local pos1 = {}
local data = minetest.registered_nodes[node.name].technic
local machine_name = S("%s Solar Array"):format(data.tier)
pos1.y = pos.y + 1
pos1.x = pos.x
pos1.z = pos.z
@ -46,7 +51,6 @@ function technic.register_solar_array(data)
local time_of_day = minetest.get_timeofday()
local meta = minetest.get_meta(pos)
light = light or 0
local data = minetest.registered_nodes[node.name].technic
-- turn on array only during day time and if sufficient light
@ -55,10 +59,10 @@ function technic.register_solar_array(data)
local charge_to_give = math.floor((light + pos.y) * data.power)
charge_to_give = math.max(charge_to_give, 0)
charge_to_give = math.min(charge_to_give, data.power * 50)
meta:set_string("infotext", "Solar Array is active ("..charge_to_give.."EU)")
meta:set_string("infotext", S("%s Active"):format(machine_name).." ("..charge_to_give.."EU)")
meta:set_int(data.tier.."_EU_supply", charge_to_give)
else
meta:set_string("infotext", "Solar Array is inactive");
meta:set_string("infotext", S("%s Idle"):format(machine_name))
meta:set_int(data.tier.."_EU_supply", 0)
end
end,