mirror of
https://codeberg.org/minenux/minetest-mod-xdecor
synced 2023-10-20 21:43:39 -07:00
Work Table : use pixel nodeboxes
This commit is contained in:
parent
8c59b1bf17
commit
77821b235e
@ -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]
|
||||
|
@ -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
|
||||
})
|
||||
|
Loading…
x
Reference in New Issue
Block a user