]> git.lizzy.rs Git - signs_lib.git/blob - standard_signs.lua
Fix broken/bad screwdriver rotation handling
[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                 default_color = "0",
40                 on_construct = signs_lib.construct_sign,
41                 on_destruct = signs_lib.destruct_sign,
42                 on_receive_fields = signs_lib.receive_fields,
43                 on_punch = signs_lib.update_sign,
44                 on_rotate = signs_lib.wallmounted_rotate,
45                 number_of_lines = signs_lib.standard_lines,
46                 horiz_scaling = signs_lib.standard_hscale,
47                 vert_scaling = signs_lib.standard_vscale,
48                 line_spacing = signs_lib.standard_lspace,
49                 font_size = signs_lib.standard_fsize,
50                 x_offset = signs_lib.standard_xoffs,
51                 y_offset = signs_lib.standard_yoffs,
52                 chars_per_line = signs_lib.standard_cpl,
53                 entity_info = {
54                         mesh = "signs_lib_standard_wall_sign_entity"..onpole..".obj",
55                         yaw = signs_lib.wallmounted_yaw
56                 },
57                 drop = "default:sign_wall_wood"
58         })
59         table.insert(signs_lib.lbm_restore_nodes, "default:sign_wall_wood"..onpole)
60
61         minetest.register_node(":default:sign_wall_steel"..onpole, {
62                 description = "Steel wall sign",
63                 paramtype = "light",
64                 sunlight_propagates = true,
65                 paramtype2 = "wallmounted",
66                 drawtype = "mesh",
67                 node_box = cbox,
68                 selection_box = cbox,
69                 mesh = "signs_lib_standard_wall_sign"..onpole..".obj",
70                 tiles = {
71                         "signs_lib_sign_wall_steel.png",
72                         "signs_lib_sign_wall_steel_edges.png",
73                         pole_mount_tex
74                 },
75                 inventory_image = "signs_lib_sign_wall_steel_inv.png",
76                 wield_image = "signs_lib_sign_wall_steel_inv.png",
77                 groups = wood_groups,
78                 default_color = "0",
79                 on_construct = signs_lib.construct_sign,
80                 on_destruct = signs_lib.destruct_sign,
81                 after_place_node = function(pos, placer, itemstack, pointed_thing)
82                         signs_lib.after_place_node(pos, placer, itemstack, pointed_thing, true)
83                 end,
84                 on_receive_fields = signs_lib.receive_fields,
85                 on_punch = signs_lib.update_sign,
86                 can_dig = signs_lib.can_modify,
87                 on_rotate = signs_lib.wallmounted_rotate,
88                 number_of_lines = signs_lib.standard_lines,
89                 horiz_scaling = signs_lib.standard_hscale,
90                 vert_scaling = signs_lib.standard_vscale,
91                 line_spacing = signs_lib.standard_lspace,
92                 font_size = signs_lib.standard_fsize,
93                 x_offset = signs_lib.standard_xoffs,
94                 y_offset = signs_lib.standard_yoffs,
95                 chars_per_line = signs_lib.standard_cpl,
96                 entity_info = {
97                         mesh = "signs_lib_standard_wall_sign_entity"..onpole..".obj",
98                         yaw = signs_lib.wallmounted_yaw
99                 },
100                 drop = "default:sign_wall_steel"
101         })
102         table.insert(signs_lib.lbm_restore_nodes, "default:sign_wall_steel"..onpole)
103 end