summaryrefslogtreecommitdiff
path: root/roadsigns/workshop.lua
diff options
context:
space:
mode:
Diffstat (limited to 'roadsigns/workshop.lua')
-rw-r--r--roadsigns/workshop.lua93
1 files changed, 52 insertions, 41 deletions
diff --git a/roadsigns/workshop.lua b/roadsigns/workshop.lua
index 08b94f2..b693222 100644
--- a/roadsigns/workshop.lua
+++ b/roadsigns/workshop.lua
@@ -4,39 +4,59 @@
local forms = {
inactive = {
"size[12,10]",
- "label[3.5,0;"..S("Sign workshop - Create signs for your roads!").."]",
- "label[0,0.5;"..S("Available signs:").."]",
+ "label[3.5,0;"..streets.S("Sign workshop - Create signs for your roads!").."]",
+ "label[0,0.5;"..streets.S("Available signs:").."]",
"list[context;streets:signworkshop_list;0,1;5,4]",
- "label[9,0.5;"..S("Needed stuff:").."]",
+ "label[9,0.5;"..streets.S("Needed stuff:").."]",
"list[context;streets:signworkshop_recipe;8,1;4,1]",
- "label[9,2;"..S("Put it here:").."]",
+ "label[9,2;"..streets.S("Put it here:").."]",
"list[context;streets:signworkshop_input;8,3;4,1]",
- "button[8,4;2,1;streets:signworkshop_send;"..S("Start!").."]",
- "label[5.8,0.5;"..S("Selected:").."]",
+ "button[8,4;2,1;streets:signworkshop_send;"..streets.S("Start!").."]",
+ "label[5.8,0.5;"..streets.S("Selected:").."]",
"list[context;streets:signworkshop_select;6,1;1,1]",
- "label[5.8,2.5;"..S("Output:").."]",
+ "label[5.8,2.5;"..streets.S("Output:").."]",
"list[context;streets:signworkshop_output;6,3;1,1]",
- "list[current_player;main;2,6;8,4]",
+ "list[current_player;main;2,6;8,1]",
+ "list[current_player;main;2,7.25;8,3;8]",
+ gui_bg,
+ gui_bg_img,
+ gui_slots,
+ default.get_hotbar_bg(2, 6)
},
active = {
"size[12,10]",
- "label[3.5,0;"..S("Sign workshop - Create signs for your roads!").."]",
- "label[0,0.5;"..S("Available signs:").."]",
+ "label[3.5,0;"..streets.S("Sign workshop - Create signs for your roads!").."]",
+ "label[0,0.5;"..streets.S("Available signs:").."]",
"list[context;streets:signworkshop_list;0,1;5,4]",
- "label[9,0.5;"..S("Needed stuff:").."]",
+ "label[9,0.5;"..streets.S("Needed stuff:").."]",
"list[context;streets:signworkshop_recipe;8,1;4,1]",
- "label[9,2;"..S("Put it here:").."]",
+ "label[9,2;"..streets.S("Put it here:").."]",
"list[context;streets:signworkshop_input;8,3;4,1]",
- "label[5.8,0.5;"..S("Selected:").."]",
+ "label[5.8,0.5;"..streets.S("Selected:").."]",
"list[context;streets:signworkshop_select;6,1;1,1]",
- "label[5.8,2.5;"..S("Output:").."]",
+ "label[5.8,2.5;"..streets.S("Output:").."]",
"list[context;streets:signworkshop_output;6,3;1,1]",
- "list[current_player;main;2,6;8,4]"
- --
+ "list[current_player;main;2,6;8,1]",
+ "list[current_player;main;2,7.25;8,3;8]",
+ gui_bg,
+ gui_bg_img,
+ gui_slots,
+ default.get_hotbar_bg(2, 6),
+ --
}
}
+
+streets.workshop.signs = {}
+minetest.after(0, function()
+ for k, v in pairs(minetest.registered_nodes) do
+ if v.streets and v.streets.signworkshop then
+ table.insert(streets.workshop.signs, k)
+ end
+ end
+end)
+
minetest.register_node(":streets:signworkshop",{
- description = S("Sign workshop"),
+ description = streets.S("Sign workshop"),
tiles = {"streets_signworkshop_top.png","streets_signworkshop_bottom.png","streets_signworkshop_side.png","streets_signworkshop_side.png","streets_signworkshop_side.png","streets_signworkshop_front.png"},
groups = {cracky = 1, level = 2},
paramtype2 = "facedir",
@@ -50,12 +70,11 @@ minetest.register_node(":streets:signworkshop",{
inv:set_size("streets:signworkshop_select",1*1)
inv:set_size("streets:signworkshop_output",1*1)
-- Fill
- inv:add_item("streets:signworkshop_list","streets:sign_blank")
- inv:add_item("streets:signworkshop_list","streets:sign_lava")
- inv:add_item("streets:signworkshop_list","streets:sign_water")
- inv:add_item("streets:signworkshop_list","streets:sign_construction")
+ for k, v in pairs(streets.workshop.signs) do
+ inv:add_item("streets:signworkshop_list", v)
+ end
-- Meta
- meta:set_string("infotext",S("Sign workshop idle"))
+ meta:set_string("infotext",streets.S("Sign workshop idle"))
meta:set_string("idle","y")
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
@@ -102,31 +121,23 @@ minetest.register_node(":streets:signworkshop",{
local def = minetest.registered_nodes[selection].streets.signworkshop
local need = inv:get_list("streets:signworkshop_recipe")
local has = inv:get_list("streets:signworkshop_input")
- need[1] = need[1]:to_table()
- need[2] = need[2]:to_table()
- need[3] = need[3]:to_table()
- need[4] = need[4]:to_table()
- has[1] = has[1]:to_table()
- has[2] = has[2]:to_table()
- has[3] = has[3]:to_table()
- has[4] = has[4]:to_table()
- if need[1] == nil then need[1] = { name = "" } end
- if need[2] == nil then need[2] = { name = "" } end
- if need[3] == nil then need[3] = { name = "" } end
- if need[4] == nil then need[4] = { name = "" } end
- if has[1] == nil then has[1] = { name = "" } end
- if has[2] == nil then has[2] = { name = "" } end
- if has[3] == nil then has[3] = { name = "" } end
- if has[4] == nil then has[4] = { name = "" } end
+ for k, v in pairs(need) do
+ need[k] = need[k]:to_table()
+ if need[k] == nil then need[k] = { name = "" } end
+ end
+ for k, v in pairs(has) do
+ has[k] = has[k]:to_table()
+ if has[k] == nil then has[k] = { name = "" } end
+ end
if need[1].name == has[1].name and need[2].name == has[2].name and need[3].name == has[3].name and need[4].name == has[4].name then
- meta:set_string("infotext",S("Sign workshop working"))
+ meta:set_string("infotext",streets.S("Sign workshop working"))
meta:set_string("idle","n")
- meta:set_string("formspec",table.concat(forms.active) .. "label[8,4;"..S("Please wait %s seconds..."):format(def.time).."]")
+ meta:set_string("formspec",table.concat(forms.active) .. "label[8,4;"..streets.S("Please wait %s seconds..."):format(def.time).."]")
-- Clear input
inv:set_list("streets:signworkshop_input",{"","","",""})
minetest.after(def.time,function()
-- Reset infotext and meta
- meta:set_string("infotext",S("Sign workshop idle"))
+ meta:set_string("infotext",streets.S("Sign workshop idle"))
meta:set_string("idle","y")
meta:set_string("formspec",table.concat(forms.inactive))
-- Fill output