diff options
Diffstat (limited to 'roadsigns/workshop.lua')
-rw-r--r-- | roadsigns/workshop.lua | 93 |
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 |