]> git.lizzy.rs Git - xdecor.git/commitdiff
Use unpack for nodebox defs & misc. tweaking
authorkilbith <jeanpatrick.guerrero@gmail.com>
Sat, 30 Jan 2016 23:00:23 +0000 (00:00 +0100)
committerkilbith <jeanpatrick.guerrero@gmail.com>
Sun, 31 Jan 2016 00:10:45 +0000 (01:10 +0100)
nodes.lua
worktable.lua

index aa3cc4b0b52ea2a984782c360474f926c94f46e0..20619bf686a24be272636300e161b6e4ab9e879c 100644 (file)
--- a/nodes.lua
+++ b/nodes.lua
@@ -427,10 +427,10 @@ xdecor.register("stonepath", {
        sounds = default.node_sound_stone_defaults(),
        sunlight_propagates = true,
        node_box = xdecor.pixelnodebox(16, {
-               {8,  0,  8, 6, 0.5, 6},
-               {1,  0,  1, 6, 0.5, 6},
-               {1,  0, 10, 5, 0.5, 5},
-               {10, 0,  2, 4, 0.5, 4}
+               {8,  0,  8, 6, .5, 6},
+               {1,  0,  1, 6, .5, 6},
+               {1,  0, 10, 5, .5, 5},
+               {10, 0,  2, 4, .5, 4}
        }),
        selection_box = xdecor.nodebox.slab_y(0.05)
 })
index e74bc1a5d75303a89b38eba85a5d979630978c58..8aa13bbf77facce13fcd15d18f7f3f2ce21fe20c 100644 (file)
@@ -3,12 +3,14 @@ screwdriver = screwdriver or {}
 
 -- Nodes allowed to be cut.
 -- Only the regular, solid blocks without formspec or explosivity can be cut.
-function worktable.nodes(ndef)
-       return (ndef.drawtype == "normal" or ndef.drawtype:find("glass")) and not
-               ndef.on_construct and not ndef.after_place_node and not
-               ndef.after_place_node and not ndef.on_rightclick and not
-               ndef.on_blast and not ndef.allow_metadata_inventory_take and
-               ndef.light_source == 0 and not ndef.groups["crumbly"]
+function worktable.nodes(def)
+       return (def.drawtype == "normal" or def.drawtype:find("glass")) and not
+               def.on_construct and not def.after_place_node and not
+               def.after_place_node and not def.on_rightclick and not
+               def.on_blast and not def.allow_metadata_inventory_take and not
+               def.groups["crumbly"] and not def.groups["not_in_creative_inventory"] and not
+               def.description:find("Ore") and def.light_source == 0 and
+               def.description
 end
 
 -- Nodeboxes definitions.
@@ -381,35 +383,35 @@ xdecor.register("worktable", {
 
 for _, d in pairs(worktable.defs) do
 for node in pairs(minetest.registered_nodes) do
-       local ndef = minetest.registered_nodes[node]
-       if worktable.nodes(ndef) and d[3] then
+       local def = minetest.registered_nodes[node]
+       if worktable.nodes(def) and d[3] then
                local groups, tiles = {}, {}
                groups.not_in_creative_inventory = 1
 
-               for k, v in pairs(ndef.groups) do
+               for k, v in pairs(def.groups) do
                        if k ~= "wood" and k ~= "stone" and k ~= "level" then
                                groups[k] = v
                        end
                end
 
-               if #ndef.tiles > 1 and not ndef.drawtype:find("glass") then
-                       tiles = ndef.tiles
+               if #def.tiles > 1 and not def.drawtype:find("glass") then
+                       tiles = def.tiles
                else
-                       tiles = {ndef.tiles[1]}
+                       tiles = {def.tiles[1]}
                end
 
                stairs.register_stair_and_slab(node:match(":(.*)"), node, groups, tiles,
-                       ndef.description.." Stair", ndef.description.." Slab", ndef.sounds)
+                       def.description.." Stair", def.description.." Slab", def.sounds)
 
                minetest.register_node(":"..node.."_"..d[1], {
-                       description = ndef.description.." "..d[1]:gsub("^%l", string.upper),
+                       description = def.description.." "..d[1]:gsub("^%l", string.upper),
                        paramtype = "light",
                        paramtype2 = "facedir",
                        drawtype = "nodebox",
-                       sounds = ndef.sounds,
+                       sounds = def.sounds,
                        tiles = tiles,
                        groups = groups,
-                       node_box = xdecor.pixelnodebox(16, {d[3], d[4], d[5]}),
+                       node_box = xdecor.pixelnodebox(16, {unpack(d, 3)}),
                        sunlight_propagates = true,
                        on_place = minetest.rotate_node,
                        on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
@@ -438,13 +440,13 @@ for node in pairs(minetest.registered_nodes) do
                                }
 
                                for _, x in pairs(T) do
-                                       if wield_item == ndef.name.."_"..x[1] then
+                                       if wield_item == def.name.."_"..x[1] then
                                                if not x[2] then x[2] = x[1] end
                                                if x[2] == pointed_nodebox then
                                                        if not x[3] then
-                                                               newnode = ndef.name
+                                                               newnode = def.name
                                                        else
-                                                               newnode = ndef.name.."_"..worktable.defs[x[3]][1]
+                                                               newnode = def.name.."_"..worktable.defs[x[3]][1]
                                                        end
                                                end
                                        end
@@ -471,7 +473,7 @@ for node in pairs(minetest.registered_nodes) do
                else
                        minetest.register_alias("stairs:"..d[1].."_meselamp", "stairs:"..d[1].."_glass")
                end
-       elseif worktable.nodes(ndef) and not d[3] then
+       elseif worktable.nodes(def) and not d[3] then
                minetest.register_alias(node.."_"..d[1], "stairs:"..d[1].."_"..node:match(":(.*)"))
        end
 end