]> git.lizzy.rs Git - xdecor.git/blob - nodes.lua
Drop connected walls, alias them to new Minetest Game walls
[xdecor.git] / nodes.lua
1 screwdriver = screwdriver or {}
2
3 xpanes.register_pane("bamboo_frame", {
4         description = "Bamboo Frame",
5         tiles = {"xdecor_bamboo_frame.png"},
6         drawtype = "airlike",
7         paramtype = "light",
8         textures = {"xdecor_bamboo_frame.png", "xdecor_bamboo_frame.png", "xpanes_space.png"},
9         inventory_image = "xdecor_bamboo_frame.png",
10         wield_image = "xdecor_bamboo_frame.png",
11         groups = {choppy=3, oddly_breakable_by_hand=2, pane=1, flammable=2},
12         recipe = { {"default:papyrus", "default:papyrus", "default:papyrus"},
13                    {"default:papyrus", "farming:cotton",  "default:papyrus"},
14                    {"default:papyrus", "default:papyrus", "default:papyrus"} }
15 })
16
17 xdecor.register("baricade", {
18         description = "Baricade",
19         drawtype = "plantlike",
20         walkable = false,
21         inventory_image = "xdecor_baricade.png",
22         tiles = {"xdecor_baricade.png"},
23         groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
24         damage_per_second = 4,
25         selection_box = xdecor.nodebox.slab_y(0.3)
26 })
27
28 xdecor.register("barrel", {
29         description = "Barrel",
30         inventory = {size=24},
31         infotext = "Barrel",
32         tiles = {"xdecor_barrel_top.png", "xdecor_barrel_sides.png"},
33         groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
34         sounds = default.node_sound_wood_defaults()
35 })
36
37 xdecor.register("cabinet", {
38         description = "Wood Cabinet",
39         inventory = {size=24},
40         infotext = "Wood Cabinet",
41         groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
42         sounds = default.node_sound_wood_defaults(),
43         on_rotate = screwdriver.rotate_simple,
44         tiles = {"xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png",
45                  "xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png",
46                  "xdecor_cabinet_sides.png", "xdecor_cabinet_front.png"}
47 })
48
49 xdecor.register("cabinet_half", {
50         description = "Half Wood Cabinet",
51         inventory = {size=8},
52         infotext = "Half Wood Cabinet",
53         groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2},
54         sounds = default.node_sound_wood_defaults(),
55         node_box = xdecor.nodebox.slab_y(0.5, 0.5),
56         tiles = {"xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png",
57                  "xdecor_half_cabinet_sides.png", "xdecor_half_cabinet_sides.png",
58                  "xdecor_half_cabinet_sides.png", "xdecor_half_cabinet_front.png"}
59 })
60
61 xdecor.register("candle", {
62         description = "Candle",
63         light_source = 12,
64         drawtype = "torchlike",
65         inventory_image = "xdecor_candle_inv.png",
66         wield_image = "xdecor_candle_wield.png",
67         paramtype2 = "wallmounted",
68         legacy_wallmounted = true,
69         walkable = false,
70         groups = {dig_immediate=3, attached_node=1},
71         tiles = {{name = "xdecor_candle_floor.png",
72                         animation = {type="vertical_frames", length=1.5}},
73                 {name = "xdecor_candle_ceiling.png",
74                         animation = {type="vertical_frames", length=1.5}},
75                 {name = "xdecor_candle_wall.png",
76                         animation = {type="vertical_frames", length=1.5}}
77         },
78         selection_box = {
79                 type = "wallmounted",
80                 wall_top = {-0.3, -0.4, -0.3, 0.3, 0.5, 0.3},
81                 wall_bottom = {-0.25, -0.5, -0.25, 0.25, 0.1, 0.25},
82                 wall_side = {-0.5, -0.35, -0.15, -0.15, 0.4, 0.15}
83         }
84 })
85
86 xdecor.register("chair", {
87         description = "Chair",
88         tiles = {"xdecor_wood.png"},
89         sounds = default.node_sound_wood_defaults(),
90         groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2},
91         on_rotate = screwdriver.rotate_simple,
92         node_box = xdecor.pixelbox(16, {
93                 {3,  0, 11,   2, 16, 2},
94                 {11, 0, 11,   2, 16, 2},
95                 {5,  9, 11.5, 6,  6, 1},
96                 {3,  0,  3,   2,  6, 2},
97                 {11, 0,  3,   2,  6, 2},
98                 {3,  6,  3,   10, 2, 8}
99         }),
100         can_dig = xdecor.sit_dig,
101         on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
102                 pos.y = pos.y + 0  -- Sitting position.
103                 xdecor.sit(pos, node, clicker, pointed_thing)
104         end
105 })
106
107 xpanes.register_pane("chainlink", {
108         description = "Chain Link",
109         tiles = {"xdecor_chainlink.png"},
110         drawtype = "airlike",
111         paramtype = "light",
112         textures = {"xdecor_chainlink.png", "xdecor_chainlink.png", "xpanes_space.png"},
113         inventory_image = "xdecor_chainlink.png",
114         wield_image = "xdecor_chainlink.png",
115         groups = {cracky=3, oddly_breakable_by_hand=2, pane=1},
116         recipe = { {"default:steel_ingot", "", "default:steel_ingot"},
117                    {"", "default:steel_ingot", ""},
118                    {"default:steel_ingot", "", "default:steel_ingot"} }
119 })
120
121 xdecor.register("cobweb", {
122         description = "Cobweb",
123         drawtype = "plantlike",
124         tiles = {"xdecor_cobweb.png"},
125         inventory_image = "xdecor_cobweb.png",
126         liquid_viscosity = 8,
127         liquidtype = "source",
128         liquid_alternative_flowing = "xdecor:cobweb",
129         liquid_alternative_source = "xdecor:cobweb",
130         liquid_renewable = false,
131         liquid_range = 0,
132         walkable = false,
133         selection_box = {type = "regular"},
134         groups = {dig_immediate=3, liquid=3, flammable=3},
135         sounds = default.node_sound_leaves_defaults()
136 })
137
138 for _, c in pairs({"red"}) do  -- Add more curtains colors simply here.
139         xdecor.register("curtain_"..c, {
140                 description = c:gsub("^%l", string.upper).." Curtain",
141                 walkable = false,
142                 tiles = {"wool_white.png^[colorize:"..c..":170"},
143                 inventory_image = "wool_white.png^[colorize:"..c..":170^xdecor_curtain_open_overlay.png^[makealpha:255,126,126",
144                 wield_image = "wool_white.png^[colorize:"..c..":170",
145                 drawtype = "signlike",
146                 paramtype2 = "wallmounted",
147                 groups = {dig_immediate=3, flammable=3},
148                 selection_box = {type="wallmounted"},
149                 on_rightclick = function(pos, node)
150                         minetest.set_node(pos, {name="xdecor:curtain_open_"..c, param2=node.param2})
151                 end
152         })
153
154         xdecor.register("curtain_open_"..c, {
155                 tiles = {"wool_white.png^[colorize:"..c..":170^xdecor_curtain_open_overlay.png^[makealpha:255,126,126"},
156                 drawtype = "signlike",
157                 paramtype2 = "wallmounted",
158                 walkable = false,
159                 groups = {dig_immediate=3, flammable=3, not_in_creative_inventory=1},
160                 selection_box = {type="wallmounted"},
161                 drop = "xdecor:curtain_"..c,
162                 on_rightclick = function(pos, node)
163                         minetest.set_node(pos, {name="xdecor:curtain_"..c, param2=node.param2})
164                 end
165         })
166
167         minetest.register_craft({
168                 output = "xdecor:curtain_"..c.." 4",
169                 recipe = { {"", "wool:"..c, ""},
170                            {"", "wool:"..c, ""} }
171         })
172 end
173
174 minetest.register_alias("xdecor:crate", "default:chess")
175
176 xdecor.register("cushion", {
177         description = "Cushion",
178         tiles = {"xdecor_cushion.png"},
179         groups = {snappy=3, flammable=3, fall_damage_add_percent=-50},
180         on_place = minetest.rotate_node,
181         node_box = xdecor.nodebox.slab_y(0.5),
182         can_dig = xdecor.sit_dig,
183         on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
184                 pos.y = pos.y + 0
185                 xdecor.sit(pos, node, clicker, pointed_thing)
186
187                 local wield_item = clicker:get_wielded_item():get_name()
188                 if wield_item == "xdecor:cushion" and clicker:get_player_control().sneak then
189                         local player_name = clicker:get_player_name()
190                         if minetest.is_protected(pos, player_name) then
191                                 minetest.record_protection_violation(pos, player_name) return
192                         end
193
194                         minetest.set_node(pos, {name="xdecor:cushion_block", param2=node.param2})
195
196                         if not minetest.setting_getbool("creative_mode") then
197                                 itemstack:take_item()
198                         end
199                         return itemstack
200                 end
201         end
202 })
203
204 xdecor.register("cushion_block", {
205         tiles = {"xdecor_cushion.png"},
206         groups = {snappy=3, flammable=3, fall_damage_add_percent=-75, not_in_creative_inventory=1}
207 })
208
209 local function door_access(name) return name:find("prison") end
210 local xdecor_doors = {
211         japanese = {
212                 {"group:wood", "default:paper"},
213                 {"default:paper", "group:wood"},
214                 {"group:wood", "default:paper"}
215         },
216         prison = {
217                 {"xpanes:bar", "xpanes:bar"},
218                 {"xpanes:bar", "xpanes:bar"},
219                 {"xpanes:bar", "xpanes:bar"}
220         },
221         rusty_prison = {
222                 {"xpanes:rusty_bar", "xpanes:rusty_bar"},
223                 {"xpanes:rusty_bar", "xpanes:rusty_bar"},
224                 {"xpanes:rusty_bar", "xpanes:rusty_bar"}
225         },
226         screen = {
227                 {"group:wood", "group:wood"},
228                 {"xpanes:chainlink", "xpanes:chainlink"},
229                 {"group:wood", "group:wood"}
230         },
231         slide = {
232                 {"default:paper", "default:paper"},
233                 {"default:paper", "default:paper"},
234                 {"group:wood", "group:wood"}
235         },
236         woodglass = {
237                 {"default:glass", "default:glass"},
238                 {"group:wood", "group:wood"},
239                 {"group:wood", "group:wood"}
240         }
241 }
242
243 for name, recipe in pairs(xdecor_doors) do
244         if not doors.register then break end
245         doors.register(name.."_door", {
246                 tiles = {{name = "xdecor_"..name.."_door.png", backface_culling=true}},
247                 description = string.gsub(" "..name, "%W%l", string.upper):sub(2):gsub("_", " ").." Door",
248                 inventory_image = "xdecor_"..name.."_door_inv.png",
249                 protected = door_access(name),
250                 groups = {choppy=2, cracky=2, oddly_breakable_by_hand=1, door=1},
251                 recipe = recipe
252         })
253         minetest.register_alias("xdecor:"..name.."_door", "doors:"..name.."_door")
254         minetest.register_alias("xdecor:"..name.."_door_t_1", "air")
255         minetest.register_alias("xdecor:"..name.."_door_t_2", "air")
256         minetest.register_alias("xdecor:"..name.."_door_b_1", "doors:"..name.."_door_a")
257         minetest.register_alias("xdecor:"..name.."_door_b_2", "doors:"..name.."_door_b")
258 end
259 minetest.register_alias("xdecor:prison_rust_door", "doors:rusty_prison_door")
260 minetest.register_alias("xdecor:prison_rust_door_t_1", "air")
261 minetest.register_alias("xdecor:prison_rust_door_t_2", "air")
262 minetest.register_alias("xdecor:prison_rust_door_b_1", "doors:rusty_prison_door_a")
263 minetest.register_alias("xdecor:prison_rust_door_b_2", "doors:rusty_prison_door_b")
264
265 xdecor.register("empty_shelf", {
266         description = "Empty Shelf",
267         inventory = {size=24},
268         infotext = "Empty Shelf",
269         tiles = {"default_wood.png", "default_wood.png^xdecor_empty_shelf.png"},
270         groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
271         sounds = default.node_sound_wood_defaults(),
272         on_rotate = screwdriver.rotate_simple
273 })
274
275 xdecor.register("enderchest", {
276         description = "Ender Chest",
277         tiles = {"xdecor_enderchest_top.png", "xdecor_enderchest_top.png",
278                  "xdecor_enderchest_side.png", "xdecor_enderchest_side.png",
279                  "xdecor_enderchest_side.png", "xdecor_enderchest_front.png"},
280         groups = {cracky=1, choppy=1, oddly_breakable_by_hand=1},
281         sounds = default.node_sound_stone_defaults(),
282         on_rotate = screwdriver.rotate_simple,
283         on_construct = function(pos)
284                 local meta = minetest.get_meta(pos)
285                 meta:set_string("formspec", [[ size[8,9]
286                                 list[current_player;enderchest;0,0;8,4;]
287                                 list[current_player;main;0,5;8,4;]
288                                 listring[current_player;enderchest]
289                                 listring[current_player;main] ]]
290                                 ..xbg..default.get_hotbar_bg(0,5))
291                 meta:set_string("infotext", "Ender Chest")
292         end
293 })
294
295 minetest.register_on_joinplayer(function(player)
296         local inv = player:get_inventory()
297         inv:set_size("enderchest", 8*4)
298 end)
299
300 if rawget(_G, "fire") then
301         minetest.register_alias("xdecor:fire", "fire:basic_flame")
302 else
303         minetest.register_alias("xdecor:fire", "air")
304 end
305
306 xdecor.register("ivy", {
307         description = "Ivy",
308         drawtype = "signlike",
309         walkable = false,
310         climbable = true,
311         groups = {dig_immediate=3, flammable=3, plant=1},
312         paramtype2 = "wallmounted",
313         selection_box = {type="wallmounted"},
314         legacy_wallmounted = true,
315         tiles = {"xdecor_ivy.png"},
316         inventory_image = "xdecor_ivy.png",
317         wield_image = "xdecor_ivy.png",
318         sounds = default.node_sound_leaves_defaults()
319 })
320
321 xdecor.register("lantern", {
322         description = "Lantern",
323         light_source = 12,
324         drawtype = "torchlike",
325         inventory_image = "xdecor_lantern_floor.png",
326         wield_image = "xdecor_lantern_floor.png", 
327         paramtype2 = "wallmounted",
328         legacy_wallmounted = true,
329         walkable = false,
330         groups = {dig_immediate=3, attached_node=1},
331         tiles = {"xdecor_lantern_floor.png", "xdecor_lantern_ceiling.png", "xdecor_lantern.png"},
332         selection_box = {
333                 type = "wallmounted",
334                 wall_top = {-0.25, -0.4, -0.25, 0.25, 0.5, 0.25},
335                 wall_bottom = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25},
336                 wall_side = {-0.5, -0.5, -0.15, 0.5, 0.5, 0.15}
337         }
338 })
339
340 for _, l in pairs({"iron", "wooden"}) do
341         xdecor.register(l.."_lightbox", {
342                 description = l:gsub("^%l", string.upper).." Light Box",
343                 tiles = {"xdecor_"..l.."_lightbox.png"},
344                 groups = {cracky=3, choppy=3, oddly_breakable_by_hand=2},
345                 light_source = 13,
346                 sounds = default.node_sound_glass_defaults()
347         })
348 end
349
350 minetest.register_alias("xdecor:lightbox", "xdecor:wooden_lightbox")
351
352 xdecor.register("packed_ice", {
353         drawtype = "normal",
354         description = "Packed Ice",
355         tiles = {"xdecor_packed_ice.png"},
356         groups = {cracky=1, puts_out_fire=1},
357         sounds = default.node_sound_glass_defaults()
358 })
359
360 for _, f in pairs({"dandelion_white", "dandelion_yellow", "geranium",
361                 "rose", "tulip", "viola"}) do
362         xdecor.register("potted_"..f, {
363                 description = string.gsub("Potted Flowers ("..f..")", "_", " "),
364                 walkable = false,
365                 groups = {dig_immediate=3, flammable=3, plant=1, flower=1},
366                 tiles = {"xdecor_"..f.."_pot.png"},
367                 inventory_image = "xdecor_"..f.."_pot.png",
368                 drawtype = "plantlike",
369                 sounds = default.node_sound_leaves_defaults(),
370                 selection_box = xdecor.nodebox.slab_y(0.3)
371         })
372
373         minetest.register_craft({
374                 output = "xdecor:potted_"..f,
375                 recipe = { {"default:clay_brick", "flowers:"..f, "default:clay_brick"},
376                            {"", "default:clay_brick", ""} }
377         })
378 end
379
380 xdecor.register("painting_1", {
381         description = "Painting",
382         tiles = {"xdecor_painting_1.png"},
383         inventory_image = "xdecor_painting_empty.png",
384         wield_image = "xdecor_painting_empty.png",
385         paramtype2 = "wallmounted",
386         legacy_wallmounted = true,
387         wield_image = "xdecor_painting_empty.png",
388         sunlight_propagates = true,
389         groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2, attached_node=1},
390         sounds = default.node_sound_wood_defaults(),
391         node_box = {
392                 type = "wallmounted",
393                 wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125},
394                 wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
395                 wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}
396         },
397         on_construct = function(pos)
398                 local node = minetest.get_node(pos)
399                 local random = math.random(4)
400                 if random == 1 then return end
401                 minetest.set_node(pos, {name="xdecor:painting_"..random, param2=node.param2})
402         end
403 })
404
405 for i = 2, 4 do
406         xdecor.register("painting_"..i, {
407                 tiles = {"xdecor_painting_"..i..".png"},
408                 paramtype2 = "wallmounted",
409                 legacy_wallmounted = true,
410                 drop = "xdecor:painting_1",
411                 sunlight_propagates = true,
412                 groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2, attached_node=1, not_in_creative_inventory=1},
413                 sounds = default.node_sound_wood_defaults(),
414                 node_box = {
415                         type = "wallmounted",
416                         wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125},
417                         wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
418                         wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375}
419                 }
420         })
421 end
422
423 for _, b in pairs({{"cactus", "cactus"}, {"moon", "stone"}}) do
424         xdecor.register(b[1].."brick", {
425                 drawtype = "normal",
426                 description = b[1]:gsub("^%l", string.upper).." Brick",
427                 tiles = {"xdecor_"..b[1].."brick.png"},
428                 groups = {cracky=2},
429                 sounds = default.node_sound_stone_defaults(),
430         })
431         
432         minetest.register_craft({
433                 output = "xdecor:"..b[1].."brick",
434                 type = "shapeless",
435                 recipe = {"default:brick", "default:"..b[2]}
436         })
437 end
438
439 xdecor.register("multishelf", {
440         description = "Multi Shelf",
441         inventory = {size=24},
442         infotext = "Multi Shelf",
443         on_rotate = screwdriver.rotate_simple,
444         tiles = {"default_wood.png", "default_wood.png^xdecor_multishelf.png"},
445         groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
446         sounds = default.node_sound_wood_defaults()
447 })
448
449 xpanes.register_pane("rusty_bar", {
450         description = "Rusty Iron Bars",
451         tiles = {"xdecor_rusty_bars.png"},
452         drawtype = "airlike",
453         paramtype = "light",
454         textures = {"xdecor_rusty_bars.png", "xdecor_rusty_bars.png", "xpanes_space.png"},
455         inventory_image = "xdecor_rusty_bars.png",
456         wield_image = "xdecor_rusty_bars.png",
457         groups = {cracky=2, pane=1},
458         recipe = { {"", "default:dirt", ""},
459                    {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
460                    {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} }
461 })
462
463 minetest.register_alias("xpanes:rust_bar", "xpanes:rusty_bar")
464 for i = 1, 15 do
465         minetest.register_alias("xpanes:rust_bar_"..i, "xpanes:rusty_bar_"..i)
466 end
467
468 xdecor.register("stonepath", {
469         description = "Garden Stone Path",
470         tiles = {"default_stone.png"},
471         groups = {snappy=3},
472         on_rotate = screwdriver.rotate_simple,
473         sounds = default.node_sound_stone_defaults(),
474         sunlight_propagates = true,
475         node_box = xdecor.pixelbox(16, {
476                 {8,  0,  8, 6, .5, 6},
477                 {1,  0,  1, 6, .5, 6},
478                 {1,  0, 10, 5, .5, 5},
479                 {10, 0,  2, 4, .5, 4}
480         }),
481         selection_box = xdecor.nodebox.slab_y(0.05)
482 })
483
484 for _, t in pairs({"desertstone_tile", "stone_tile", "stone_rune",
485                 "coalstone_tile", "hard_clay"}) do
486         xdecor.register(t, {
487                 drawtype = "normal",
488                 description = string.gsub(" "..t, "%W%l", string.upper):sub(2):gsub("_", " "),
489                 tiles = {"xdecor_"..t..".png"},
490                 groups = {cracky=1},
491                 sounds = default.node_sound_stone_defaults()
492         })
493 end
494
495 xdecor.register("table", {
496         description = "Table",
497         tiles = {"xdecor_wood.png"},
498         groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
499         sounds = default.node_sound_wood_defaults(),
500         node_box = xdecor.pixelbox(16, {
501                 {0, 14, 0, 16, 2, 16}, {5.5, 0, 5.5, 5, 14, 6}
502         })
503 })
504
505 xdecor.register("tatami", {
506         description = "Tatami",
507         tiles = {"xdecor_tatami.png"},
508         wield_image = "xdecor_tatami.png",
509         groups = {snappy=3, flammable=3},
510         node_box = xdecor.nodebox.slab_y(0.0625)
511 })
512
513 xdecor.register("tv", {
514         description = "Television",
515         light_source = 11,
516         groups = {snappy=3},
517         on_rotate = screwdriver.rotate_simple,
518         tiles = { "xdecor_television_left.png^[transformR270",
519                   "xdecor_television_left.png^[transformR90",
520                   "xdecor_television_left.png^[transformFX",
521                   "xdecor_television_left.png", "xdecor_television_back.png",
522                 {name = "xdecor_television_front_animated.png",
523                  animation = {type="vertical_frames", length=80.0}} }
524 })
525
526 for _, n in pairs({"c0", "c1", "c2", "c3", "c4", "ln"}) do
527         minetest.register_alias("xdecor:cobble_wall_"..n, "walls:cobble")
528         minetest.register_alias("xdecor:mossycobble_wall_"..n, "walls:cobble")
529 end
530
531 xpanes.register_pane("wood_frame", {
532         description = "Wood Frame",
533         tiles = {"xdecor_wood_frame.png"},
534         drawtype = "airlike",
535         paramtype = "light",
536         textures = {"xdecor_wood_frame.png", "xdecor_wood_frame.png", "xpanes_space.png"},
537         inventory_image = "xdecor_wood_frame.png",
538         wield_image = "xdecor_wood_frame.png",
539         groups = {choppy=2, pane=1, flammable=2},
540         sounds = default.node_sound_wood_defaults(),
541         recipe = { {"group:wood", "group:stick", "group:wood"},
542                    {"group:stick", "group:stick", "group:stick"},
543                    {"group:wood", "group:stick", "group:wood"} }
544 })
545
546 xdecor.register("woodframed_glass", {
547         description = "Wood Framed Glass",
548         drawtype = "glasslike_framed",
549         tiles = {"xdecor_woodframed_glass.png", "xdecor_woodframed_glass_detail.png"},
550         groups = {cracky=2, oddly_breakable_by_hand=1},
551         sounds = default.node_sound_glass_defaults()
552 })
553
554 xdecor.register("wood_tile", {
555         description = "Wood Tile",
556         tiles = {"xdecor_wood_tile.png"},
557         drawtype = "normal",
558         groups = {choppy=1, wood=1, flammable=2},
559         sounds = default.node_sound_wood_defaults()
560 })
561