]> git.lizzy.rs Git - xdecor.git/commitdiff
Work Table : use pixel nodeboxes
authorkilbith <jeanpatrick.guerrero@gmail.com>
Sat, 16 Jan 2016 12:21:35 +0000 (13:21 +0100)
committerkilbith <jeanpatrick.guerrero@gmail.com>
Sat, 16 Jan 2016 12:21:35 +0000 (13:21 +0100)
handlers/nodeboxes.lua
worktable.lua

index 5ff9250ff7698c80d57cbeea4e823ba5a9c3e80c..9cfa4889382608a9a9b2ae09598d70e14f68c8d1 100644 (file)
@@ -18,6 +18,22 @@ xdecor.nodebox = {
        null = { type = "fixed", fixed = { 0, 0, 0, 0, 0, 0 } }
 }
 
+xdecor.pixelnodebox = function(size, boxes)
+       local fixed = {}
+       for _, box in pairs(boxes) do
+               local x, y, z, w, h, l = unpack(box)
+               fixed[#fixed+1] = {
+                       (x / size) - 0.5,
+                       (y / size) - 0.5,
+                       (z / size) - 0.5,
+                       (w / size) - 0.5,
+                       (h / size) - 0.5,
+                       (l / size) - 0.5
+               }
+       end
+       return { type = "fixed", fixed = fixed }
+end
+
 local mt = {}
 mt.__index = function(table, key)
        local ref = xdecor.box[key]
index 2a4cab850eb56be741df0cb6db87d6ab96636ddf..11dcf3b312795a7fb1dca536c55c22a90f6c8b5c 100644 (file)
@@ -26,19 +26,27 @@ local nodes = { -- Nodes allowed to be cut. Registration format: [mod name] = [[
        ]],
 }
 
-local defs = { -- Nodebox name, yield, definition.
-       {"nanoslab",    16, {-.5,-.5,-.5,0,-.4375,0}},
-       {"micropanel",  16, {-.5,-.5,-.5,.5,-.4375,0}},
-       {"microslab",   8,  {-.5,-.5,-.5,.5,-.4375,.5}},
-       {"thinstair",   8,  {{-.5,-.0625,-.5,.5,0,0},{-.5,.4375,0,.5,.5,.5}}},
-       {"cube",        4,  {-.5,-.5,0,0,0,.5}},
-       {"panel",       4,  {-.5,-.5,-.5,.5,0,0}},
-       {"slab",        2,  {-.5,-.5,-.5,.5,0,.5}},
-       {"doublepanel", 2,  {{-.5,-.5,-.5,.5,0,0},{-.5,0,0,.5,.5,.5}}},
-       {"halfstair",   2,  {{-.5,-.5,-.5,0,0,.5},{-.5,0,0,0,.5,.5}}},
-       {"outerstair",  1,  {{-.5,-.5,-.5,.5,0,.5},{-.5,0,0,0,.5,.5}}},
-       {"stair",       1,  {{-.5,-.5,-.5,.5,0,.5},{-.5,0,0,.5,.5,.5}}},
-       {"innerstair",  1,  {{-.5,-.5,-.5,.5,0,.5},{-.5,0,0,.5,.5,.5},{-.5,0,-.5,0,.5,0}}}
+local defs = {
+       --  Name       Yield   X   Y   Z   W   H   L
+       {"nanoslab",    16, {{ 0,  0,  0,  8,  1,  8  }}},
+       {"micropanel",  16, {{ 0,  0,  0,  16, 1,  8  }}},
+       {"microslab",   8,  {{ 0,  0,  0,  16, 1,  16 }}},
+       {"thinstair",   8,  {{ 0,  7,  0,  16, 8,  8  },{
+                              0,  15, 8,  16, 16, 16 }}},
+       {"cube",        4,  {{ 0,  0,  8,  8,  8,  16 }}},
+       {"panel",       4,  {{ 0,  0,  0,  16, 8,  8  }}},
+       {"slab",        2,  {{ 0,  0,  0,  16, 8,  16 }}},
+       {"doublepanel", 2,  {{ 0,  0,  0,  16, 8,  8  },{
+                              0,  8,  8,  16, 16, 16 }}},
+       {"halfstair",   2,  {{ 0,  0,  0,  8,  8,  16 },{
+                              0,  8,  8,  8,  16, 16 }}},
+       {"outerstair",  1,  {{ 0,  0,  0,  16, 8,  16 },{
+                              0,  8,  8,  8,  16, 16 }}},
+       {"stair",       1,  {{ 0,  0,  0,  16, 8,  16 },{
+                              0,  8,  8,  16, 16, 16 }}},
+       {"innerstair",  1,  {{ 0,  0,  0,  16, 8,  16 },{
+                              0,  8,  8,  16, 16, 16 },{
+                              0,  8,  0,  8,  16, 8  }}}
 }
 
 function worktable.get_recipe(item)
@@ -415,7 +423,7 @@ for name in n:gmatch("[%w_]+") do
                        sounds = ndef.sounds,
                        tiles = tiles,
                        groups = groups,
-                       node_box = {type = "fixed", fixed = d[3]},
+                       node_box = xdecor.pixelnodebox(16, d[3]),
                        sunlight_propagates = true,
                        on_place = minetest.rotate_node
                })