]> git.lizzy.rs Git - xdecor.git/blobdiff - nodes.lua
Drop connected walls, alias them to new Minetest Game walls
[xdecor.git] / nodes.lua
index c6b8224846613e1c6a4dff6aa41469a9312615a2..11ef0003393460f686dcb0e2f6778e446e0fedf6 100644 (file)
--- a/nodes.lua
+++ b/nodes.lua
@@ -20,7 +20,7 @@ xdecor.register("baricade", {
        walkable = false,
        inventory_image = "xdecor_baricade.png",
        tiles = {"xdecor_baricade.png"},
-       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=3},
+       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
        damage_per_second = 4,
        selection_box = xdecor.nodebox.slab_y(0.3)
 })
@@ -30,7 +30,7 @@ xdecor.register("barrel", {
        inventory = {size=24},
        infotext = "Barrel",
        tiles = {"xdecor_barrel_top.png", "xdecor_barrel_sides.png"},
-       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=3},
+       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
        sounds = default.node_sound_wood_defaults()
 })
 
@@ -38,7 +38,7 @@ xdecor.register("cabinet", {
        description = "Wood Cabinet",
        inventory = {size=24},
        infotext = "Wood Cabinet",
-       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=3},
+       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
        sounds = default.node_sound_wood_defaults(),
        on_rotate = screwdriver.rotate_simple,
        tiles = {"xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png",
@@ -50,7 +50,7 @@ xdecor.register("cabinet_half", {
        description = "Half Wood Cabinet",
        inventory = {size=8},
        infotext = "Half Wood Cabinet",
-       groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
+       groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2},
        sounds = default.node_sound_wood_defaults(),
        node_box = xdecor.nodebox.slab_y(0.5, 0.5),
        tiles = {"xdecor_cabinet_sides.png", "xdecor_cabinet_sides.png",
@@ -87,7 +87,7 @@ xdecor.register("chair", {
        description = "Chair",
        tiles = {"xdecor_wood.png"},
        sounds = default.node_sound_wood_defaults(),
-       groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
+       groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2},
        on_rotate = screwdriver.rotate_simple,
        node_box = xdecor.pixelbox(16, {
                {3,  0, 11,   2, 16, 2},
@@ -118,8 +118,6 @@ xpanes.register_pane("chainlink", {
                   {"default:steel_ingot", "", "default:steel_ingot"} }
 })
 
--- The following nodedef is licensed under WTFPL for granting a possible re-use
--- in Minetest Game (https://github.com/minetest/minetest_game). 
 xdecor.register("cobweb", {
        description = "Cobweb",
        drawtype = "plantlike",
@@ -208,32 +206,68 @@ xdecor.register("cushion_block", {
        groups = {snappy=3, flammable=3, fall_damage_add_percent=-75, not_in_creative_inventory=1}
 })
 
-local function door_access(door) return door:find("prison") end
-
-for _, d in pairs({"japanese", "prison", "rusty_prison",
-               "screen", "slide", "woodglass"}) do
-       if not doors.register then return end
-       doors.register(d.."_door", {
-               tiles = {{name = "xdecor_"..d.."_door.png", backface_culling=true}},
-               description = string.gsub(" "..d, "%W%l", string.upper):sub(2):gsub("_", " ").." Door",
-               inventory_image = "xdecor_"..d.."_door_inv.png",
-               protected = door_access(d),
-               groups = {choppy=3, cracky=3, oddly_breakable_by_hand=1, flammable=2, door=1},
-               material = ""
+local function door_access(name) return name:find("prison") end
+local xdecor_doors = {
+       japanese = {
+               {"group:wood", "default:paper"},
+               {"default:paper", "group:wood"},
+               {"group:wood", "default:paper"}
+       },
+       prison = {
+               {"xpanes:bar", "xpanes:bar"},
+               {"xpanes:bar", "xpanes:bar"},
+               {"xpanes:bar", "xpanes:bar"}
+       },
+       rusty_prison = {
+               {"xpanes:rusty_bar", "xpanes:rusty_bar"},
+               {"xpanes:rusty_bar", "xpanes:rusty_bar"},
+               {"xpanes:rusty_bar", "xpanes:rusty_bar"}
+       },
+       screen = {
+               {"group:wood", "group:wood"},
+               {"xpanes:chainlink", "xpanes:chainlink"},
+               {"group:wood", "group:wood"}
+       },
+       slide = {
+               {"default:paper", "default:paper"},
+               {"default:paper", "default:paper"},
+               {"group:wood", "group:wood"}
+       },
+       woodglass = {
+               {"default:glass", "default:glass"},
+               {"group:wood", "group:wood"},
+               {"group:wood", "group:wood"}
+       }
+}
+
+for name, recipe in pairs(xdecor_doors) do
+       if not doors.register then break end
+       doors.register(name.."_door", {
+               tiles = {{name = "xdecor_"..name.."_door.png", backface_culling=true}},
+               description = string.gsub(" "..name, "%W%l", string.upper):sub(2):gsub("_", " ").." Door",
+               inventory_image = "xdecor_"..name.."_door_inv.png",
+               protected = door_access(name),
+               groups = {choppy=2, cracky=2, oddly_breakable_by_hand=1, door=1},
+               recipe = recipe
        })
-       minetest.register_alias("xdecor:"..d.."_door", "doors:"..d.."_door")
-       minetest.register_alias("xdecor:"..d.."_door_a", "air")
-       minetest.register_alias("xdecor:"..d.."_door_b", "doors:"..d.."_door")
+       minetest.register_alias("xdecor:"..name.."_door", "doors:"..name.."_door")
+       minetest.register_alias("xdecor:"..name.."_door_t_1", "air")
+       minetest.register_alias("xdecor:"..name.."_door_t_2", "air")
+       minetest.register_alias("xdecor:"..name.."_door_b_1", "doors:"..name.."_door_a")
+       minetest.register_alias("xdecor:"..name.."_door_b_2", "doors:"..name.."_door_b")
 end
-
 minetest.register_alias("xdecor:prison_rust_door", "doors:rusty_prison_door")
+minetest.register_alias("xdecor:prison_rust_door_t_1", "air")
+minetest.register_alias("xdecor:prison_rust_door_t_2", "air")
+minetest.register_alias("xdecor:prison_rust_door_b_1", "doors:rusty_prison_door_a")
+minetest.register_alias("xdecor:prison_rust_door_b_2", "doors:rusty_prison_door_b")
 
 xdecor.register("empty_shelf", {
        description = "Empty Shelf",
        inventory = {size=24},
        infotext = "Empty Shelf",
        tiles = {"default_wood.png", "default_wood.png^xdecor_empty_shelf.png"},
-       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=3},
+       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
        sounds = default.node_sound_wood_defaults(),
        on_rotate = screwdriver.rotate_simple
 })
@@ -263,18 +297,11 @@ minetest.register_on_joinplayer(function(player)
        inv:set_size("enderchest", 8*4)
 end)
 
-xdecor.register("fire", {
-       description = "Fancy Fire",
-       drawtype = "plantlike",
-       light_source = 14,
-       walkable = false,
-       tiles = {{ name = "xdecor_fire_anim.png",
-                  animation = {type="vertical_frames", length=1.5 }}},
-       damage_per_second = 4,
-       drop = "",
-       selection_box = xdecor.pixelbox(16, {{4, 0, 4, 8, 3, 8}}),
-       groups = {dig_immediate=3, hot=3, not_in_creative_inventory=1}
-})
+if rawget(_G, "fire") then
+       minetest.register_alias("xdecor:fire", "fire:basic_flame")
+else
+       minetest.register_alias("xdecor:fire", "air")
+end
 
 xdecor.register("ivy", {
        description = "Ivy",
@@ -359,7 +386,7 @@ xdecor.register("painting_1", {
        legacy_wallmounted = true,
        wield_image = "xdecor_painting_empty.png",
        sunlight_propagates = true,
-       groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3, attached_node=1},
+       groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2, attached_node=1},
        sounds = default.node_sound_wood_defaults(),
        node_box = {
                type = "wallmounted",
@@ -382,7 +409,7 @@ for i = 2, 4 do
                legacy_wallmounted = true,
                drop = "xdecor:painting_1",
                sunlight_propagates = true,
-               groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3, attached_node=1, not_in_creative_inventory=1},
+               groups = {choppy=3, oddly_breakable_by_hand=2, flammable=2, attached_node=1, not_in_creative_inventory=1},
                sounds = default.node_sound_wood_defaults(),
                node_box = {
                        type = "wallmounted",
@@ -403,11 +430,10 @@ for _, b in pairs({{"cactus", "cactus"}, {"moon", "stone"}}) do
        })
        
        minetest.register_craft({
-       output = "xdecor:"..b[1].."brick",
-       recipe = {
-               {"default:brick", "default:"..b[2]}
-       }
-})
+               output = "xdecor:"..b[1].."brick",
+               type = "shapeless",
+               recipe = {"default:brick", "default:"..b[2]}
+       })
 end
 
 xdecor.register("multishelf", {
@@ -416,7 +442,7 @@ xdecor.register("multishelf", {
        infotext = "Multi Shelf",
        on_rotate = screwdriver.rotate_simple,
        tiles = {"default_wood.png", "default_wood.png^xdecor_multishelf.png"},
-       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=3},
+       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
        sounds = default.node_sound_wood_defaults()
 })
 
@@ -428,7 +454,7 @@ xpanes.register_pane("rusty_bar", {
        textures = {"xdecor_rusty_bars.png", "xdecor_rusty_bars.png", "xpanes_space.png"},
        inventory_image = "xdecor_rusty_bars.png",
        wield_image = "xdecor_rusty_bars.png",
-       groups = {cracky=3, oddly_breakable_by_hand=2, pane=1},
+       groups = {cracky=2, pane=1},
        recipe = { {"", "default:dirt", ""},
                   {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"},
                   {"default:steel_ingot", "default:steel_ingot", "default:steel_ingot"} }
@@ -469,7 +495,7 @@ end
 xdecor.register("table", {
        description = "Table",
        tiles = {"xdecor_wood.png"},
-       groups = {choppy=3, oddly_breakable_by_hand=2, flammable=3},
+       groups = {choppy=2, oddly_breakable_by_hand=1, flammable=2},
        sounds = default.node_sound_wood_defaults(),
        node_box = xdecor.pixelbox(16, {
                {0, 14, 0, 16, 2, 16}, {5.5, 0, 5.5, 5, 14, 6}
@@ -497,6 +523,11 @@ xdecor.register("tv", {
                 animation = {type="vertical_frames", length=80.0}} }
 })
 
+for _, n in pairs({"c0", "c1", "c2", "c3", "c4", "ln"}) do
+       minetest.register_alias("xdecor:cobble_wall_"..n, "walls:cobble")
+       minetest.register_alias("xdecor:mossycobble_wall_"..n, "walls:cobble")
+end
+
 xpanes.register_pane("wood_frame", {
        description = "Wood Frame",
        tiles = {"xdecor_wood_frame.png"},
@@ -505,7 +536,7 @@ xpanes.register_pane("wood_frame", {
        textures = {"xdecor_wood_frame.png", "xdecor_wood_frame.png", "xpanes_space.png"},
        inventory_image = "xdecor_wood_frame.png",
        wield_image = "xdecor_wood_frame.png",
-       groups = {choppy=3, oddly_breakable_by_hand=2, pane=1, flammable=3},
+       groups = {choppy=2, pane=1, flammable=2},
        sounds = default.node_sound_wood_defaults(),
        recipe = { {"group:wood", "group:stick", "group:wood"},
                   {"group:stick", "group:stick", "group:stick"},
@@ -516,7 +547,7 @@ xdecor.register("woodframed_glass", {
        description = "Wood Framed Glass",
        drawtype = "glasslike_framed",
        tiles = {"xdecor_woodframed_glass.png", "xdecor_woodframed_glass_detail.png"},
-       groups = {cracky=3, oddly_breakable_by_hand=2},
+       groups = {cracky=2, oddly_breakable_by_hand=1},
        sounds = default.node_sound_glass_defaults()
 })
 
@@ -524,6 +555,7 @@ xdecor.register("wood_tile", {
        description = "Wood Tile",
        tiles = {"xdecor_wood_tile.png"},
        drawtype = "normal",
-       groups = {choppy=1, oddly_breakable_by_hand=1, wood=1, flammable=2},
+       groups = {choppy=1, wood=1, flammable=2},
        sounds = default.node_sound_wood_defaults()
 })
+