summaryrefslogtreecommitdiff
path: root/roadsigns
diff options
context:
space:
mode:
Diffstat (limited to 'roadsigns')
-rw-r--r--roadsigns/init.lua3
-rw-r--r--roadsigns/pole.lua70
-rw-r--r--roadsigns/signs.lua16
-rw-r--r--roadsigns/workshop.lua93
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