diff options
Diffstat (limited to 'roadsigns')
-rw-r--r-- | roadsigns/init.lua | 3 | ||||
-rw-r--r-- | roadsigns/pole.lua | 70 | ||||
-rw-r--r-- | roadsigns/signs.lua | 16 | ||||
-rw-r--r-- | roadsigns/workshop.lua | 93 |
4 files changed, 62 insertions, 120 deletions
diff --git a/roadsigns/init.lua b/roadsigns/init.lua index 38e8692..73401fa 100644 --- a/roadsigns/init.lua +++ b/roadsigns/init.lua @@ -1,6 +1,7 @@ --[[ StreetsMod: Poles and signs ]] -dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/pole.lua") +streets.workshop = {} + dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/signs.lua") dofile(minetest.get_modpath(minetest.get_current_modname()) .. "/workshop.lua")
\ No newline at end of file diff --git a/roadsigns/pole.lua b/roadsigns/pole.lua deleted file mode 100644 index 417ecdf..0000000 --- a/roadsigns/pole.lua +++ /dev/null @@ -1,70 +0,0 @@ ---[[ - StreetsMod: Poles and signs -]] -minetest.register_node(":streets:pole_bottom",{ - description = S("Pole"), - tiles = {"streets_pole.png"}, - groups = {cracky=2}, - inventory_image = "streets_pole_inv.png", - wield_image = "streets_pole_inv.png", - paramtype = "light", - paramtype2 = "facedir", - drawtype = "nodebox", - node_box = { - type = "fixed", - fixed = { - {-0.1,-0.5,-0.5,0.1,0.5,-0.4}, - {-0.125,-0.5,-0.525,0.125,-0.3,-0.375} - } - }, - selection_box = { - type = "fixed", - fixed = { - {-0.1,-0.5,-0.5,0.1,0.5,-0.4} - } - }, - after_place_node = function(pos,placer,itemstack) - pos.y = pos.y +1 - if minetest.get_node(pos).name == "air" then - minetest.add_node(pos,{name = "streets:pole_top", param2 = minetest.dir_to_facedir(placer:get_look_dir())}) - else - minetest.chat_send_player(placer:get_player_name(),"Not enough free space! A pole has a height of 2 blocks!") - pos.y = pos.y -1 - minetest.remove_node(pos) - end - end, - after_dig_node = function(pos, oldnode, oldmetadata, digger) - pos.y = pos.y +1 - if minetest.get_node(pos).name == "streets:pole_top" then - minetest.remove_node(pos) - end - end -}) - -minetest.register_node(":streets:pole_top",{ - description = S("Y u no play minetest without cheating?"), - tiles = {"streets_pole.png"}, - groups = {cracky=2,not_in_creative_inventory=1}, - paramtype = "light", - paramtype2 = "facedir", - drawtype = "nodebox", - drop = "", - can_dig = function() - return false - end, - node_box = { - type = "fixed", - fixed = { - {-0.1,-0.5,-0.5,0.1,0.5,-0.4} - } - } -}) - -minetest.register_craft({ - output = "streets:pole_bottom 3", - recipe = { - {"","default:steel_ingot",""}, - {"","default:steel_ingot",""}, - {"","default:steel_ingot",""} - } -})
\ No newline at end of file diff --git a/roadsigns/signs.lua b/roadsigns/signs.lua index 3b8beb4..03b4139 100644 --- a/roadsigns/signs.lua +++ b/roadsigns/signs.lua @@ -1,5 +1,5 @@ minetest.register_node(":streets:sign_blank",{ - description = S("Empty sign"), + description = streets.S("Empty sign"), tiles = {"streets_sign_back.png"}, inventory_image = "streets_sign_back.png", wield_image = "streets_sign_back.png", @@ -27,11 +27,11 @@ minetest.register_node(":streets:sign_blank",{ after_place_node = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("infotext", S("Empty Sign")) + meta:set_string("infotext", streets.S("Empty Sign")) end }) minetest.register_node(":streets:sign_lava",{ - description = S("Warning sign (lava)"), + description = streets.S("Warning sign (lava)"), tiles = {"streets_sign_lava.png"}, inventory_image = "streets_sign_lava.png", wield_image = "streets_sign_lava.png", @@ -59,12 +59,12 @@ minetest.register_node(":streets:sign_lava",{ after_place_node = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("infotext", S("Warning: Careful of lava")) + meta:set_string("infotext", streets.S("Warning: Careful of lava")) end }) minetest.register_node(":streets:sign_water",{ - description = S("Warning sign (water)"), + description = streets.S("Warning sign (water)"), tiles = {"streets_sign_water.png"}, inventory_image = "streets_sign_water.png", wield_image = "streets_sign_water.png", @@ -92,12 +92,12 @@ minetest.register_node(":streets:sign_water",{ after_place_node = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("infotext", S("Warning: Water nearby")) + meta:set_string("infotext", streets.S("Warning: Water nearby")) end }) minetest.register_node(":streets:sign_construction",{ - description = S("Warning sign (Construction area)"), + description = streets.S("Warning sign (Construction area)"), tiles = {"streets_sign_construction.png"}, inventory_image = "streets_sign_construction.png", wield_image = "streets_sign_construction.png", @@ -125,6 +125,6 @@ minetest.register_node(":streets:sign_construction",{ after_place_node = function(pos) local meta = minetest.get_meta(pos) - meta:set_string("infotext", S("Warning: Construction area, possible deep excavations")) + meta:set_string("infotext", streets.S("Warning: Construction area, possible deep excavations")) end }) 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 |