]> git.lizzy.rs Git - signs_lib.git/blob - standard_signs.lua
abb55d183a0def65936a27498de468aeb6a5883e
[signs_lib.git] / standard_signs.lua
1 -- Definitions for standard minetest_game wooden and steel wall signs
2
3 for _, onpole in ipairs({"", "_onpole"}) do
4
5         local nci = nil
6         local on_rotate = signs_lib.wallmounted_rotate
7         local pole_mount_tex = nil
8
9         if onpole == "_onpole" then
10                 nci = 1
11                 on_rotate = nil
12                 pole_mount_tex = "signs_lib_pole_mount.png" -- the metal straps on back, if needed
13         end
14
15         local wood_groups =  table.copy(signs_lib.standard_wood_groups)
16         wood_groups.not_in_creative_inventory = nci
17         local steel_groups =  table.copy(signs_lib.standard_steel_groups)
18         steel_groups.not_in_creative_inventory = nci
19
20         cbox = signs_lib.make_selection_boxes(35, 25, onpole)
21
22         minetest.register_node(":default:sign_wall_wood"..onpole, {
23                 description = "Wooden wall sign",
24                 paramtype = "light",
25                 sunlight_propagates = true,
26                 paramtype2 = "wallmounted",
27                 drawtype = "mesh",
28                 node_box = cbox,
29                 selection_box = cbox,
30                 mesh = "signs_lib_standard_wall_sign"..onpole..".obj",
31                 tiles = {
32                         "signs_lib_sign_wall_wooden.png",
33                         "signs_lib_sign_wall_wooden_edges.png",
34                         pole_mount_tex
35                 },
36                 inventory_image = "signs_lib_sign_wall_wooden_inv.png",
37                 wield_image = "signs_lib_sign_wall_wooden_inv.png",
38                 groups = wood_groups,
39                 sounds = signs_lib.standard_wood_sign_sounds,
40                 default_color = "0",
41                 on_rightclick = signs_lib.construct_sign,
42                 on_construct = signs_lib.construct_sign,
43                 on_destruct = signs_lib.destruct_sign,
44                 on_receive_fields = signs_lib.receive_fields,
45                 on_punch = signs_lib.update_sign,
46                 on_rotate = signs_lib.wallmounted_rotate,
47                 number_of_lines = signs_lib.standard_lines,
48                 horiz_scaling = signs_lib.standard_hscale,
49                 vert_scaling = signs_lib.standard_vscale,
50                 line_spacing = signs_lib.standard_lspace,
51                 font_size = signs_lib.standard_fsize,
52                 x_offset = signs_lib.standard_xoffs,
53                 y_offset = signs_lib.standard_yoffs,
54                 chars_per_line = signs_lib.standard_cpl,
55                 entity_info = {
56                         mesh = "signs_lib_standard_wall_sign_entity"..onpole..".obj",
57                         yaw = signs_lib.wallmounted_yaw
58                 },
59                 drop = "default:sign_wall_wood"
60         })
61         table.insert(signs_lib.lbm_restore_nodes, "default:sign_wall_wood"..onpole)
62
63         minetest.register_node(":default:sign_wall_steel"..onpole, {
64                 description = "Steel wall sign",
65                 paramtype = "light",
66                 sunlight_propagates = true,
67                 paramtype2 = "wallmounted",
68                 drawtype = "mesh",
69                 node_box = cbox,
70                 selection_box = cbox,
71                 mesh = "signs_lib_standard_wall_sign"..onpole..".obj",
72                 tiles = {
73                         "signs_lib_sign_wall_steel.png",
74                         "signs_lib_sign_wall_steel_edges.png",
75                         pole_mount_tex
76                 },
77                 inventory_image = "signs_lib_sign_wall_steel_inv.png",
78                 wield_image = "signs_lib_sign_wall_steel_inv.png",
79                 groups = wood_groups,
80                 sounds = signs_lib.standard_steel_sign_sounds,
81                 default_color = "0",
82                 on_rightclick = signs_lib.construct_sign,
83                 on_construct = signs_lib.construct_sign,
84                 on_destruct = signs_lib.destruct_sign,
85                 after_place_node = function(pos, placer, itemstack, pointed_thing)
86                         signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, true)
87                 end,
88                 on_receive_fields = signs_lib.receive_fields,
89                 on_punch = signs_lib.update_sign,
90                 can_dig = signs_lib.can_modify,
91                 on_rotate = signs_lib.wallmounted_rotate,
92                 number_of_lines = signs_lib.standard_lines,
93                 horiz_scaling = signs_lib.standard_hscale,
94                 vert_scaling = signs_lib.standard_vscale,
95                 line_spacing = signs_lib.standard_lspace,
96                 font_size = signs_lib.standard_fsize,
97                 x_offset = signs_lib.standard_xoffs,
98                 y_offset = signs_lib.standard_yoffs,
99                 chars_per_line = signs_lib.standard_cpl,
100                 entity_info = {
101                         mesh = "signs_lib_standard_wall_sign_entity"..onpole..".obj",
102                         yaw = signs_lib.wallmounted_yaw
103                 },
104                 drop = "default:sign_wall_steel"
105         })
106         table.insert(signs_lib.lbm_restore_nodes, "default:sign_wall_steel"..onpole)
107 end