From: kilbith Date: Sat, 16 Jan 2016 12:21:35 +0000 (+0100) Subject: Work Table : use pixel nodeboxes X-Git-Tag: 1.0~185 X-Git-Url: https://git.lizzy.rs/?a=commitdiff_plain;h=77821b235e1c0e2a9de29326b3d0f8553de99499;p=xdecor.git Work Table : use pixel nodeboxes --- diff --git a/handlers/nodeboxes.lua b/handlers/nodeboxes.lua index 5ff9250..9cfa488 100644 --- a/handlers/nodeboxes.lua +++ b/handlers/nodeboxes.lua @@ -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] diff --git a/worktable.lua b/worktable.lua index 2a4cab8..11dcf3b 100644 --- a/worktable.lua +++ b/worktable.lua @@ -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 })