-
Notifications
You must be signed in to change notification settings - Fork 1
/
plans.lua
51 lines (44 loc) · 1.46 KB
/
plans.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
technology.registered_plans = {}
technology.register_plan = function (machine_name, machine_item, sketch_image, components)
local item_name = "technology:plan_"..machine_name
local sketch = sketch_image or "technology_plan_default.png"
minetest.register_node(":"..item_name, {
description = "overall plan for "..machine_name,
drawtype = "signlike",
tile_images = {sketch},
inventory_image = sketch,
wield_image = sketch,
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
metadata_name = "sign",
selection_box = {
type = "wallmounted",
--wall_top = <default>
--wall_bottom = <default>
--wall_side = <default>
},
groups = {choppy=2,dig_immediate=2,flammable=2},
legacy_wallmounted = true,
--sounds = default.node_sound_defaults(),
on_construct = function(pos)
local meta = minetest.env:get_meta(pos)
meta:set_string("formspec", "field[text;;${text}]")
meta:set_string("infotext", machine_name)
end,
on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.env:get_meta(pos)
fields.text = fields.text or ""
meta:set_string("text", fields.text)
meta:set_string("infotext", machine_name..' ['..fields.text..']')
end,
})
components[#components+1] = item_name
minetest.register_craft({
output = machine_item,
type = "shapeless",
recipe = components,
})
technology.registered_plans[machine_name] = {item_name, machine_item, components}
end