summaryrefslogtreecommitdiff
path: root/streets/roadsigns/workshop.lua
diff options
context:
space:
mode:
Diffstat (limited to 'streets/roadsigns/workshop.lua')
-rw-r--r--streets/roadsigns/workshop.lua158
1 files changed, 0 insertions, 158 deletions
diff --git a/streets/roadsigns/workshop.lua b/streets/roadsigns/workshop.lua
deleted file mode 100644
index c11b167..0000000
--- a/streets/roadsigns/workshop.lua
+++ /dev/null
@@ -1,158 +0,0 @@
---[[
- StreetsMod: Create signs in the signworkshop
-]]
-local forms = {
- inactive = {
- "size[12,10]",
- "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;"..streets.S("Needed stuff:").."]",
- "list[context;streets:signworkshop_recipe;8,1;4,1]",
- "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;"..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;"..streets.S("Output:").."]",
- "list[context;streets:signworkshop_output;6,3;1,1]",
- "list[current_player;main;2,6;8,1]",
- "list[current_player;main;2,7.25;8,3;8]",
- default.gui_bg,
- default.gui_bg_img,
- default.gui_slots,
- default.get_hotbar_bg(2, 6)
- },
- active = {
- "size[12,10]",
- "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;"..streets.S("Needed stuff:").."]",
- "list[context;streets:signworkshop_recipe;8,1;4,1]",
- "label[9,2;"..streets.S("Put it here:").."]",
- "list[context;streets:signworkshop_input;8,3;4,1]",
- "label[5.8,0.5;"..streets.S("Selected:").."]",
- "list[context;streets:signworkshop_select;6,1;1,1]",
- "label[5.8,2.5;"..streets.S("Output:").."]",
- "list[context;streets:signworkshop_output;6,3;1,1]",
- "list[current_player;main;2,6;8,1]",
- "list[current_player;main;2,7.25;8,3;8]",
- default.gui_bg,
- default.gui_bg_img,
- default.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 = 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",
- after_place_node = function(pos)
- minetest.get_meta(pos):set_string("formspec",table.concat(forms.inactive))
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- inv:set_size("streets:signworkshop_list",5*4)
- inv:set_size("streets:signworkshop_recipe",3*2)
- inv:set_size("streets:signworkshop_input",4*1)
- inv:set_size("streets:signworkshop_select",1*1)
- inv:set_size("streets:signworkshop_output",1*1)
- -- Fill
- for k, v in pairs(streets.workshop.signs) do
- inv:add_item("streets:signworkshop_list", v)
- end
- -- Meta
- 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)
- if listname ~= "streets:signworkshop_input" then
- return 0
- else
- return 1
- end
- end,
- allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
- -- Move items inside input slots
- if to_list == "streets:signworkshop_input" and from_list == "streets:signworkshop_input" then
- return 1
- -- List -> selection
- elseif from_list == "streets:signworkshop_list" and to_list == "streets:signworkshop_select" then
- local inv = minetest.get_meta(pos):get_inventory()
- local selected = inv:get_stack("streets:signworkshop_list",from_index):to_table()
- local need = minetest.registered_nodes[selected.name].streets.signworkshop.recipe
- inv:set_list("streets:signworkshop_recipe",{need[1],need[2],need[3],need[4]})
- return 1
- -- selection -> list
- elseif from_list == "streets:signworkshop_select" and to_list == "streets:signworkshop_list" then
- local inv = minetest.get_meta(pos):get_inventory()
- inv:set_list("streets:signworkshop_recipe",{"","","",""})
- return 1
- -- Every other case
- else
- return 0
- end
- end,
- allow_metadata_inventory_take = function(pos, listname, index, stack, player)
- if listname == "streets:signworkshop_input" or listname == "streets:signworkshop_output" then
- return 99
- else
- return 0
- end
- end,
- on_receive_fields = function(pos, formname, fields, sender)
- local meta = minetest.get_meta(pos)
- local inv = meta:get_inventory()
- --
- if inv:is_empty("streets:signworkshop_input") ~= true and inv:is_empty("streets:signworkshop_select") ~= true and meta:get_string("idle") == "y" then
- local selection = inv:get_stack("streets:signworkshop_select",1):get_name()
- local def = minetest.registered_nodes[selection].streets.signworkshop
- local need = inv:get_list("streets:signworkshop_recipe")
- local has = inv:get_list("streets:signworkshop_input")
- 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",streets.S("Sign workshop working"))
- meta:set_string("idle","n")
- 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",streets.S("Sign workshop idle"))
- meta:set_string("idle","y")
- meta:set_string("formspec",table.concat(forms.inactive))
- -- Fill output
- inv:add_item("streets:signworkshop_output",selection)
- end)
- end
- end
- end
-})
-
-minetest.register_craft({
- output = "streets:signworkshop",
- recipe = {
- {"default:steel_ingot","default:glass","default:steel_ingot"},
- {"default:steel_ingot","default:diamond","default:steel_ingot"},
- {"default:cobble","default:cobble","default:cobble"}
- }
-})