1 xpanes.register_pane("bamboo_frame", {
2 description = "Bamboo Frame",
3 tiles = {"xdecor_bamboo_frame.png"},
6 sunlight_propagates = true,
7 textures = { "xdecor_bamboo_frame.png", "xdecor_bamboo_frame.png",
9 inventory_image = "xdecor_bamboo_frame.png",
10 wield_image = "xdecor_bamboo_frame.png",
11 groups = {snappy=3, pane=1},
13 {"default:papyrus", "default:papyrus", "default:papyrus"},
14 {"default:papyrus", "farming:cotton", "default:papyrus"},
15 {"default:papyrus", "default:papyrus", "default:papyrus"}
19 xdecor.register("baricade", {
20 description = "Baricade",
21 drawtype = "plantlike",
23 inventory_image = "xdecor_baricade.png",
24 tiles = {"xdecor_baricade.png"},
29 xdecor.register("barrel", {
30 description = "Barrel",
31 inventory = {size=24},
33 tiles = { "xdecor_barrel_top.png", "xdecor_barrel_sides.png" },
38 xdecor.register("cabinet", {
39 description = "Cabinet",
40 inventory = {size=24},
45 "default_wood.png", "default_wood.png",
46 "default_wood.png", "default_wood.png",
47 "default_wood.png","xdecor_cabinet_front.png"
51 xdecor.register("cabinet_half", {
52 description = "Half Cabinet",
54 infotext = "Half Cabinet",
57 node_box = xdecor.nodebox.slab_y(0.5, 0.5),
59 "default_wood.png", "default_wood.png",
60 "default_wood.png", "default_wood.png",
61 "default_wood.png", "xdecor_cabinet_half_front.png"
65 xdecor.register("candle", {
66 description = "Candle",
68 drawtype = "torchlike",
69 inventory_image = "xdecor_candle_inv.png",
70 wield_image = "xdecor_candle_inv.png",
71 paramtype2 = "wallmounted",
72 legacy_wallmounted = true,
74 groups = {dig_immediate=3, attached_node=1},
76 { name = "xdecor_candle_floor.png",
77 animation = {type="vertical_frames", length=1.5} },
78 { name = "xdecor_candle_wall.png",
79 animation = {type="vertical_frames", length=1.5} }
83 wall_bottom = {-0.25, -0.5, -0.25, 0.25, 0.1, 0.25},
84 wall_side = {-0.5, -0.35, -0.15, -0.15, 0.4, 0.15}
88 xdecor.register("cardboard_box", {
89 description = "Cardboard Box",
91 infotext = "Cardboard Box",
93 tiles = { "xdecor_cardbox_top.png", "xdecor_cardbox_top.png",
94 "xdecor_cardbox_sides.png" },
98 {-0.3125, -0.5, -0.3125, 0.3125, 0, 0.3125}
103 xdecor.register("cauldron", {
104 description = "Cauldron",
107 { name = "xdecor_cauldron_top_anim.png",
108 animation = {type="vertical_frames", length=3.0} },
109 "xdecor_cauldron_sides.png"
113 xdecor.register("chair", {
114 description = "Chair",
115 tiles = {"xdecor_wood.png"},
116 sounds = xdecor.wood,
121 {-0.3125, -0.5, 0.1875, -0.1875, 0.5, 0.3125},
122 {0.1875, -0.5, 0.1875, 0.3125, 0.5, 0.3125},
123 {-0.1875, 0.025, 0.22, 0.1875, 0.45, 0.28},
124 {-0.3125, -0.5, -0.3125, -0.1875, -0.125, -0.1875},
125 {0.1875, -0.5, -0.3125, 0.3125, -0.125, -0.1875},
126 {-0.3125, -0.125, -0.3125, 0.3125, 0, 0.1875}
131 xdecor.register("chandelier", {
132 description = "Chandelier",
133 drawtype = "plantlike",
135 inventory_image = "xdecor_chandelier.png",
136 tiles = {"xdecor_chandelier.png"},
137 groups = {dig_immediate=3},
141 xdecor.register("coalstone_tile", {
143 description = "Coalstone Tile",
144 tiles = {"xdecor_coalstone_tile.png"},
146 sounds = xdecor.stone
149 local colors = {"red"} -- Add more curtains colors simply here
151 for _, c in ipairs(colors) do
152 xdecor.register("curtain_"..c, {
153 description = "Curtain ("..c..")",
154 use_texture_alpha = true,
156 tiles = { "xdecor_curtain.png^[colorize:"..c..":130" },
157 inventory_image = "xdecor_curtain_open.png^[colorize:"..c..":130",
158 wield_image = "xdecor_curtain.png^[colorize:"..c..":130",
159 drawtype = "signlike",
160 paramtype2 = "wallmounted",
161 groups = {dig_immediate=3},
162 selection_box = {type="wallmounted"},
163 on_rightclick = function(pos, node, clicker, itemstack)
164 local fdir = node.param2
165 minetest.set_node(pos, { name="xdecor:curtain_open_"..c, param2=fdir })
169 xdecor.register("curtain_open_"..c, {
170 tiles = { "xdecor_curtain_open.png^[colorize:"..c..":130" },
171 drawtype = "signlike",
172 paramtype2 = "wallmounted",
173 use_texture_alpha = true,
175 groups = {dig_immediate=3, not_in_creative_inventory=1},
176 selection_box = {type="wallmounted"},
177 drop = "xdecor:curtain_"..c,
178 on_rightclick = function(pos, node, clicker, itemstack)
179 local fdir = node.param2
180 minetest.set_node(pos, { name="xdecor:curtain_"..c, param2=fdir })
184 minetest.register_craft({
185 output = "xdecor:curtain_"..c.." 4",
187 {"", "wool:"..c, ""},
188 {"", "wool:"..c, ""},
194 xdecor.register("cushion", {
195 description = "Cushion",
196 tiles = {"xdecor_cushion.png"},
198 on_place = minetest.rotate_node,
199 node_box = xdecor.nodebox.slab_y(-0.5, 0.5)
202 local door_types = {"woodglass", "japanese"}
204 for _, d in pairs(door_types) do
205 doors.register_door("xdecor:"..d.."_door", {
206 description = string.sub(string.upper(d), 0, 1)..
207 string.sub(d, 2).." Door",
208 inventory_image = "xdecor_"..d.."_door_inv.png",
209 groups = {snappy=3, door=1},
210 tiles_bottom = {"xdecor_"..d.."_door_b.png", "xdecor_brown.png"},
211 tiles_top = {"xdecor_"..d.."_door_a.png", "xdecor_brown.png"},
212 sounds = xdecor.wood,
216 xdecor.register("empty_shelf", {
217 description = "Empty Shelf",
218 inventory = {size=24},
219 infotext = "Empty Shelf",
220 tiles = { "default_wood.png", "xdecor_empty_shelf.png" },
227 fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}
230 xdecor.register("fence_wrought_iron", {
231 description = "Wrought Iron Fence",
232 drawtype = "fencelike",
234 tiles = { "xdecor_wrought_iron.png" },
235 selection_box = fence_sbox,
236 inventory_image = "default_fence_overlay.png^xdecor_wrought_iron.png^default_fence_overlay.png^[makealpha:255,126,126"
239 xdecor.register("fire", {
240 description = "Fake Fire",
244 { name = "xdecor_fire_anim.png",
245 animation = {type="vertical_frames", length=1.5} }
247 drawtype = "plantlike",
248 damage_per_second = 2,
250 groups = {dig_immediate=3, not_in_creative_inventory=1}
253 minetest.register_tool("xdecor:flint_steel", {
254 description = "Flint & Steel",
256 inventory_image = "xdecor_flint_steel.png",
257 tool_capabilities = {
259 flamable = {uses=65, maxlevel=1}
262 on_use = function(itemstack, user, pointed_thing)
263 if pointed_thing.type == "node"
264 and minetest.get_node(pointed_thing.above).name == "air" then
265 if not minetest.is_protected(pointed_thing.above, user:get_player_name()) then
266 minetest.set_node(pointed_thing.above, {name="xdecor:fire"})
268 minetest.chat_send_player(user:get_player_name(), "This area is protected!")
274 itemstack:add_wear(65535/65)
279 xdecor.register("lantern", {
280 description = "Lantern",
282 drawtype = "torchlike",
283 inventory_image = "xdecor_lantern_floor.png",
284 wield_image = "xdecor_lantern_floor.png",
285 paramtype2 = "wallmounted",
286 legacy_wallmounted = true,
288 groups = {dig_immediate=3, attached_node=1},
289 tiles = { "xdecor_lantern_floor.png", "xdecor_lantern_ceiling.png",
290 "xdecor_lantern.png" },
292 type = "wallmounted",
293 wall_top = {-0.25, -0.4, -0.25, 0.25, 0.5, 0.25},
294 wall_bottom = {-0.25, -0.5, -0.25, 0.25, 0.4, 0.25},
295 wall_side = {-0.5, -0.5, -0.15, 0.5, 0.5, 0.15}
299 local flowerstype = { "dandelion_white", "dandelion_yellow", "geranium",
300 "rose", "tulip", "viola" }
302 for _, f in ipairs(flowerstype) do
303 xdecor.register("potted_"..f, {
304 description = "Potted Flowers ("..f..")",
306 groups = {dig_immediate=3},
307 tiles = {"xdecor_"..f.."_pot.png"},
308 inventory_image = "xdecor_"..f.."_pot.png",
309 drawtype = "plantlike",
310 sounds = xdecor.leaves
313 minetest.register_craft({
314 type = "shapeless", output = "xdecor:potted_"..f.." 2",
315 recipe = { "flowers:"..f, "xdecor:plant_pot" }
319 xdecor.register("painting", {
320 description = "Painting",
321 drawtype = "signlike",
322 tiles = {"xdecor_painting.png"},
323 inventory_image = "xdecor_painting.png",
324 paramtype2 = "wallmounted",
325 legacy_wallmounted = true,
327 wield_image = "xdecor_painting.png",
328 selection_box = {type="wallmounted"},
329 groups = {dig_immediate=3, attached_node=1}
332 xdecor.register("plant_pot", {
333 description = "Plant Pot",
335 tiles = {"xdecor_plant_pot_top.png", "xdecor_plant_pot_bottom.png",
336 "xdecor_plant_pot_sides.png"}
339 xdecor.register("metal_cabinet", {
340 description = "Metal Cabinet",
341 inventory = {size=24},
343 infotext = "Metal Cabinet",
345 "xdecor_metal_cabinet_sides.png", "xdecor_metal_cabinet_sides.png",
346 "xdecor_metal_cabinet_sides.png", "xdecor_metal_cabinet_sides.png",
347 "xdecor_metal_cabinet_sides.png", "xdecor_metal_cabinet_front.png"
351 xdecor.register("moonbrick", {
353 description = "Moonbrick",
354 tiles = {"xdecor_moonbrick.png"},
356 sounds = xdecor.stone
359 xdecor.register("multishelf", {
360 description = "Multi Shelf",
361 inventory = {size=24},
362 infotext = "Multi Shelf",
363 tiles = {"default_wood.png", "xdecor_multishelf.png"},
370 fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}
373 xdecor.register("rope", {
374 description = "Rope",
377 groups = {dig_immediate=3},
378 selection_box = rope_sbox,
379 tiles = {"xdecor_rope.png"},
380 inventory_image = "xdecor_rope_inv.png",
381 wield_image = "xdecor_rope_inv.png",
382 drawtype = "plantlike"
385 xdecor.register("stereo", {
386 description = "Stereo",
389 "xdecor_stereo_top.png", "xdecor_stereo_bottom.png",
390 "xdecor_stereo_left.png^[transformFX", "xdecor_stereo_left.png",
391 "xdecor_stereo_back.png", "xdecor_stereo_front.png"
395 xdecor.register("stone_rune", {
396 description = "Stone Rune",
397 tiles = {"xdecor_stone_rune.png"},
400 sounds = xdecor.stone
403 xdecor.register("stonepath", {
404 description = "Garden Stone Path",
405 tiles = { "default_stone.png" },
406 groups = { snappy=3 },
407 sounds = xdecor.stone,
411 {-0.4375, -0.5, 0.3125, -0.3125, -0.48, 0.4375},
412 {-0.25, -0.5, 0.125, 0, -0.48, 0.375},
413 {0.125, -0.5, 0.125, 0.4375, -0.48, 0.4375},
414 {-0.4375, -0.5, -0.125, -0.25, -0.48, 0.0625},
415 {-0.0625, -0.5, -0.25, 0.25, -0.48, 0.0625},
416 {0.3125, -0.5, -0.25, 0.4375, -0.48, -0.125},
417 {-0.3125, -0.5, -0.375, -0.125, -0.48, -0.1875},
418 {0.125, -0.5, -0.4375, 0.25, -0.48, -0.3125}
423 fixed = { -0.4375, -0.5, -0.4375, 0.4375, -0.4, 0.4375 }
427 xdecor.register("stone_tile", {
428 description = "Stone Tile",
429 tiles = {"xdecor_stone_tile.png"},
432 sounds = xdecor.stone
435 xdecor.register("table", {
436 description = "Table",
437 tiles = {"xdecor_wood.png"},
439 sounds = xdecor.wood,
443 {-0.5, 0.4, -0.5, 0.5, 0.5, 0.5},
444 {-0.15, -0.5, -0.15, 0.15, 0.4, 0.15}
449 xdecor.register("tatami", {
450 description = "Tatami",
451 tiles = {"xdecor_tatami.png"},
456 {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
461 xdecor.register("tv", {
462 description = "Television",
466 "xdecor_television_left.png^[transformR270",
467 "xdecor_television_left.png^[transformR90",
468 "xdecor_television_left.png^[transformFX",
469 "xdecor_television_left.png", "xdecor_television_back.png",
470 { name = "xdecor_television_front_animated.png",
471 animation = {type="vertical_frames", length=80.0} }
475 xdecor.register("woodframed_glass", {
476 description = "Wood Framed Glass",
477 drawtype = "glasslike_framed",
478 tiles = { "xdecor_framed_glass.png", "xdecor_framed_glass_detail.png" },
480 sounds = xdecor.glass
483 xdecor.register("wood_tile", {
484 description = "Wood Tile",
485 tiles = {"xdecor_wood_tile.png"},
487 groups = {snappy=2, wood=1},