1302 lines
33 KiB
Lua
1302 lines
33 KiB
Lua
|
-- NonCubic Blocks MOD v1.4
|
||
|
------------by yves_de_beck
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
-- HERE YOU CAN CHANGE THE DETAIL-LEVEL:
|
||
|
----------------------------------------
|
||
|
detail_level = 16
|
||
|
|
||
|
|
||
|
-- HERE YOU CAN DE/ACTIVATE BACKGROUND FOR MILLING MENU:
|
||
|
--------------------------------------------------------
|
||
|
allow_menu_background = false
|
||
|
|
||
|
|
||
|
-- VAR DECLARATION:
|
||
|
-------------------
|
||
|
noncubic = {}
|
||
|
|
||
|
|
||
|
-- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES:
|
||
|
------------------------------------------------------
|
||
|
|
||
|
-- SLOPE
|
||
|
--------
|
||
|
function noncubic.register_slope(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
local slopebox = {}
|
||
|
local detail = detail_level
|
||
|
for i = 0, detail-1 do
|
||
|
slopebox[i+1]={-0.5, (i/detail)-0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
|
||
|
end
|
||
|
minetest.register_node("noncubic:slope_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = slopebox,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_' .. subname .. ' 6',
|
||
|
recipe = {
|
||
|
{recipeitem, "", ""},
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_' .. subname .. ' 6',
|
||
|
recipe = {
|
||
|
{"", "", recipeitem},
|
||
|
{"", recipeitem, recipeitem},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- SLOPE Lying
|
||
|
----------------
|
||
|
function noncubic.register_slope_lying(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
local slopeboxlying = {}
|
||
|
local detail = detail_level
|
||
|
for i = 0, detail-1 do
|
||
|
slopeboxlying[i+1]={(i/detail)-0.5, -0.5, (i/detail)-0.5, (i/detail)-0.5+(1/detail), 0.5 , 0.5}
|
||
|
end
|
||
|
minetest.register_node("noncubic:slope_lying_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = slopeboxlying,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_lying_' .. subname .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:slope_' .. subname, ""},
|
||
|
{"", "", ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- SLOPE UPSIDE DOWN
|
||
|
--------------------
|
||
|
function noncubic.register_slope_upsdown(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
if subname == "dirt" then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local slopeupdwnbox = {}
|
||
|
local detail = detail_level
|
||
|
for i = 0, detail-1 do
|
||
|
slopeupdwnbox[i+1]={-0.5, (i/detail)-0.5, (-1*(i/detail))+0.5-(1/detail), 0.5, (i/detail)-0.5+(1/detail), 0.5}
|
||
|
end
|
||
|
minetest.register_node("noncubic:slope_upsdown_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = slopeupdwnbox,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_upsdown_' .. subname .. ' 6',
|
||
|
recipe = {
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
{"", recipeitem, recipeitem},
|
||
|
{"", "", recipeitem},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_upsdown_' .. subname .. ' 6',
|
||
|
recipe = {
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
{recipeitem, "", ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- SLOPE EDGE
|
||
|
-------------
|
||
|
function noncubic.register_slope_edge(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
local slopeboxedge = {}
|
||
|
local detail = detail_level
|
||
|
for i = 0, detail-1 do
|
||
|
slopeboxedge[i+1]={(i/detail)-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
|
||
|
end
|
||
|
minetest.register_node("noncubic:slope_edge_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = slopeboxedge,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{recipeitem, "", ""},
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", "", recipeitem},
|
||
|
{"", recipeitem, recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- SLOPE INNER EDGE
|
||
|
-------------------
|
||
|
function noncubic.register_slope_inner_edge(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
minetest.register_node("noncubic:slope_inner_edge_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
-- PART 1
|
||
|
{-0.5, -0.5, -0.5, 0.5, -0.45, 0.5},
|
||
|
{-0.45, -0.5, -0.5, 0.5, -0.4, 0.5},
|
||
|
{-0.4, -0.5, -0.5, 0.5, -0.35, 0.5},
|
||
|
{-0.35, -0.5, -0.5, 0.5, -0.3, 0.5},
|
||
|
{-0.3, -0.5, -0.5, 0.5, -0.25, 0.5},
|
||
|
{-0.25, -0.5, -0.5, 0.5, -0.2, 0.5},
|
||
|
{-0.2, -0.5, -0.5, 0.5, -0.15, 0.5},
|
||
|
{-0.15, -0.5, -0.5, 0.5, -0.1, 0.5},
|
||
|
{-0.1, -0.5, -0.5, 0.5, -0.05, 0.5},
|
||
|
{-0.05, -0.5, -0.5, 0.5, 0, 0.5},
|
||
|
{0, -0.5, -0.5, 0.5, 0.05, 0.5},
|
||
|
{0.05, -0.5, -0.5, 0.5, 0.1, 0.5},
|
||
|
{0.1, -0.5, -0.5, 0.5, 0.15, 0.5},
|
||
|
{0.15, -0.5, -0.5, 0.5, 0.2, 0.5},
|
||
|
{0.2, -0.5, -0.5, 0.5, 0.25, 0.5},
|
||
|
{0.25, -0.5, -0.5, 0.5, 0.3, 0.5},
|
||
|
{0.3, -0.5, -0.5, 0.5, 0.35, 0.5},
|
||
|
{0.35, -0.5, -0.5, 0.5, 0.4, 0.5},
|
||
|
{0.4, -0.5, -0.5, 0.5, 0.45, 0.5},
|
||
|
{0.45, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
-- PART 2
|
||
|
{-0.5, -0.5, -0.45, 0.5, -0.45, 0.5},
|
||
|
{-0.5, -0.5, -0.4, 0.5, -0.4, 0.5},
|
||
|
{-0.5, -0.5, -0.35, 0.5, -0.35, 0.5},
|
||
|
{-0.5, -0.5, -0.3, 0.5, -0.3, 0.5},
|
||
|
{-0.5, -0.5, -0.25, 0.5, -0.25, 0.5},
|
||
|
{-0.5, -0.5, -0.2, 0.5, -0.2, 0.5},
|
||
|
{-0.5, -0.5, -0.15, 0.5, -0.15, 0.5},
|
||
|
{-0.5, -0.5, -0.1, 0.5, -0.1, 0.5},
|
||
|
{-0.5, -0.5, -0.05, 0.5, -0.05, 0.5},
|
||
|
{-0.5, -0.5, 0, 0.5, 0, 0.5},
|
||
|
{-0.5, -0.5, 0.05, 0.5, 0.05, 0.5},
|
||
|
{-0.5, -0.5, 0.1, 0.5, 0.1, 0.5},
|
||
|
{-0.5, -0.5, 0.15, 0.5, 0.15, 0.5},
|
||
|
{-0.5, -0.5, 0.2, 0.5, 0.2, 0.5},
|
||
|
{-0.5, -0.5, .25, 0.5, 0.25, 0.5},
|
||
|
{-0.5, -0.5, 0.3, 0.5, 0.3, 0.5},
|
||
|
{-0.5, -0.5, 0.35, 0.5, 0.35, 0.5},
|
||
|
{-0.5, -0.5, 0.4, 0.5, 0.4, 0.5},
|
||
|
{-0.5, -0.5, 0.45, 0.5, 0.45, 0.5},
|
||
|
{-0.5, -0.5, 0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_inner_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{"", "", recipeitem},
|
||
|
{recipeitem, "", ""},
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_inner_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{recipeitem, "", ""},
|
||
|
{"", "", recipeitem},
|
||
|
{"", recipeitem, recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- SLOPE EDGE UPSIDE DOWN
|
||
|
-------------------------
|
||
|
function noncubic.register_slope_upsdown_edge(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
if subname == "dirt" then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local slopeupdwnboxedge = {}
|
||
|
local detail = detail_level
|
||
|
for i = 0, detail-1 do
|
||
|
slopeupdwnboxedge[i+1]={(-1*(i/detail))+0.5-(1/detail), (i/detail)-0.5, (-1*(i/detail))+0.5-(1/detail), 0.5, (i/detail)-0.5+(1/detail), 0.5}
|
||
|
end
|
||
|
minetest.register_node("noncubic:slope_upsdown_edge_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = slopeupdwnboxedge,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_upsdown_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{"", recipeitem, recipeitem},
|
||
|
{"", "", recipeitem},
|
||
|
{"", "", ""},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_upsdown_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
{recipeitem, "", ""},
|
||
|
{"", "", ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- SLOPE INNER EDGE UPSIDE DOWN
|
||
|
-------------------------------
|
||
|
function noncubic.register_slope_upsdown_inner_edge(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
if subname == "dirt" then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
minetest.register_node("noncubic:slope_upsdown_inner_edge_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{0.45, -0.5, -0.5, 0.5, -0.45, 0.5},
|
||
|
{0.4, -0.45, -0.5, 0.5, -0.4, 0.5},
|
||
|
{0.35, -0.4, -0.5, 0.5, -0.35, 0.5},
|
||
|
{0.3, -0.35, -0.5, 0.5, -0.3, 0.5},
|
||
|
{0.25, -0.3, -0.5, 0.5, -0.25, 0.5},
|
||
|
{0.2, -0.25, -0.5, 0.5, -0.2, 0.5},
|
||
|
{0.15, -0.2, -0.5, 0.5, -0.15, 0.5},
|
||
|
{0.1, -0.15, -0.5, 0.5, -0.1, 0.5},
|
||
|
{0.05, -0.1, -0.5, 0.5, -0.05, 0.5},
|
||
|
{0, -0.05, -0.5, 0.5, 0, 0.5},
|
||
|
{-0.05, 0, -0.5, 0.5, 0.05, 0.5},
|
||
|
{-0.1, 0.05, -0.5, 0.5, 0.1, 0.5},
|
||
|
{-0.15, 0.1, -0.5, 0.5, 0.15, 0.5},
|
||
|
{-0.2, 0.15, -0.5, 0.5, 0.2, 0.5},
|
||
|
{-0.25, 0.2, -0.5, 0.5, 0.25, 0.5},
|
||
|
{-0.3, 0.25, -0.5, 0.5, 0.3, 0.5},
|
||
|
{-0.35, 0.3, -0.5, 0.5, 0.35, 0.5},
|
||
|
{-0.4, 0.35, -0.5, 0.5, 0.4, 0.5},
|
||
|
{-0.45, 0.4, -0.5, 0.5, 0.45, 0.5},
|
||
|
{-0.5, 0.45, -0.5, 0.5, 0.5, 0.5},
|
||
|
|
||
|
{-0.5, -0.5, 0.45, 0.5, -0.45, 0.5},
|
||
|
{-0.5, -0.45, 0.4, 0.5, -0.4, 0.5},
|
||
|
{-0.5, -0.4, 0.35, 0.5, -0.35, 0.5},
|
||
|
{-0.5, -0.35, 0.3, 0.5, -0.3, 0.5},
|
||
|
{-0.5, -0.3, 0.25, 0.5, -0.25, 0.5},
|
||
|
{-0.5, -0.25, 0.2, 0.5, -0.2, 0.5},
|
||
|
{-0.5, -0.2, 0.15, 0.5, -0.15, 0.5},
|
||
|
{-0.5, -0.15, 0.1, 0.5, -0.1, 0.5},
|
||
|
{-0.5, -0.1, 0.05, 0.5, -0.05, 0.5},
|
||
|
{-0.5, -0.05, 0, 0.5, 0, 0.5},
|
||
|
{-0.5, 0, -0.05, 0.5, 0.05, 0.5},
|
||
|
{-0.5, 0.05, -0.1, 0.5, 0.1, 0.5},
|
||
|
{-0.5, 0.1, -0.15, 0.5, 0.15, 0.5},
|
||
|
{-0.5, 0.15, -0.2, 0.5, 0.2, 0.5},
|
||
|
{-0.5, 0.2, -0.25, 0.5, 0.25, 0.5},
|
||
|
{-0.5, 0.25, -0.3, 0.5, 0.3, 0.5},
|
||
|
{-0.5, 0.3, -0.35, 0.5, 0.35, 0.5},
|
||
|
{-0.5, 0.35, -0.4, 0.5, 0.4, 0.5},
|
||
|
{-0.5, 0.4, -0.45, 0.5, 0.45, 0.5},
|
||
|
{-0.5, 0.45, -0.5, 0.5, 0.5, 0.5},
|
||
|
|
||
|
},
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_upsdown_inner_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{"", recipeitem, recipeitem},
|
||
|
{"", "", recipeitem},
|
||
|
{recipeitem, "", ""},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:slope_upsdown_inner_edge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
{recipeitem, "", ""},
|
||
|
{"", "", recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- PYRAMID
|
||
|
----------
|
||
|
function noncubic.register_pyramid(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
local pyrabox = {}
|
||
|
local detail = detail_level/2
|
||
|
for i = 0, detail-1 do
|
||
|
pyrabox[i+1]={(i/detail/2)-0.5, (i/detail/2)-0.5, (i/detail/2)-0.5, 0.5-(i/detail/2), (i/detail/2)-0.5+(1/detail), 0.5-(i/detail/2)}
|
||
|
end
|
||
|
minetest.register_node("noncubic:pyramid_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = pyrabox,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:pyramid_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", recipeitem, ""},
|
||
|
{recipeitem, "", recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- SPIKE
|
||
|
--------
|
||
|
function noncubic.register_spike(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
if subname == "dirt" then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local spikebox = {}
|
||
|
local detail = detail_level
|
||
|
for i = 0, detail-1 do
|
||
|
spikebox[i+1]={(i/detail/2)-0.5, (i/detail/2)-0.5, (i/detail/2)-0.5, 0.5-(i/detail/2), (i/detail)-0.5+(1/detail), 0.5-(i/detail/2)}
|
||
|
end
|
||
|
minetest.register_node("noncubic:spike_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = spikebox,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:spike_' .. subname .. ' 5',
|
||
|
recipe = {
|
||
|
{"", recipeitem, ""},
|
||
|
{recipeitem, "", recipeitem},
|
||
|
{recipeitem, "", recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Block one curved edge
|
||
|
------------------------
|
||
|
function noncubic.register_onecurvededge(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
local quartercyclebox = {}
|
||
|
local detail = detail_level*2
|
||
|
local sehne
|
||
|
for i = (detail/2)-1, detail-1 do
|
||
|
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
|
||
|
quartercyclebox[i]={-0.5, -0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, 0.5}
|
||
|
end
|
||
|
minetest.register_node("noncubic:onecurvededge_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = quartercyclebox,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:onecurvededge_' .. subname .. ' 8',
|
||
|
recipe = {
|
||
|
{"", recipeitem, recipeitem},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Block two curved edges
|
||
|
-------------------------
|
||
|
function noncubic.register_twocurvededge(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
local quartercyclebox2 = {}
|
||
|
local detail = detail_level*2
|
||
|
local sehne
|
||
|
for i = (detail/2)-1, detail-1 do
|
||
|
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
|
||
|
quartercyclebox2[i]={-sehne, -0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, 0.5}
|
||
|
end
|
||
|
minetest.register_node("noncubic:twocurvededge_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = quartercyclebox2,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:twocurvededge_' .. subname .. ' 3',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{'noncubic:onecurvededge_' .. subname, "", ""},
|
||
|
{'noncubic:onecurvededge_' .. subname, 'noncubic:onecurvededge_' .. subname, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
|
||
|
-- Cylinder
|
||
|
-----------
|
||
|
function noncubic.register_cylinder(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
if subname == "dirt" then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local cylbox = {}
|
||
|
local detail = detail_level
|
||
|
local sehne
|
||
|
for i = 1, detail-1 do
|
||
|
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
|
||
|
cylbox[i]={(i/detail)-0.5, -0.5, -sehne, (i/detail)+(1/detail)-0.5, 0.5, sehne}
|
||
|
end
|
||
|
minetest.register_node("noncubic:cylinder_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = cylbox,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:cylinder_' .. subname .. ' 6',
|
||
|
recipe = {
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
{recipeitem, recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:cylinder_' .. subname .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:cylinder_horizontal_' .. subname, ""},
|
||
|
{"", "", ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Cylinder Horizontal
|
||
|
----------------------
|
||
|
function noncubic.register_cylinder_horizontal(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
if subname == "dirt" then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local cylbox_horizontal = {}
|
||
|
local detail = detail_level
|
||
|
local sehne
|
||
|
for i = 1, detail-1 do
|
||
|
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
|
||
|
cylbox_horizontal[i]={-0.5, (i/detail)-0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, sehne}
|
||
|
end
|
||
|
minetest.register_node("noncubic:cylinder_horizontal_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = cylbox_horizontal,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:cylinder_horizontal_' .. subname .. ' 6',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
},
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:cylinder_horizontal_' .. subname .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:cylinder_' .. subname, ""},
|
||
|
{"", "", ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Sphere
|
||
|
---------
|
||
|
function noncubic.register_sphere(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
if subname == "dirt" then
|
||
|
return
|
||
|
end
|
||
|
|
||
|
local spherebox = {}
|
||
|
local detail = detail_level
|
||
|
local sehne
|
||
|
for i = 1, detail-1 do
|
||
|
sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
|
||
|
spherebox[i]={-sehne, (i/detail)-0.5, -sehne, sehne, (i/detail)+(1/detail)-0.5, sehne}
|
||
|
end
|
||
|
minetest.register_node("noncubic:cylinder_sphere_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = spherebox,
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:cylinder_sphere_' .. subname .. ' 4',
|
||
|
recipe = {
|
||
|
{"", recipeitem, ""},
|
||
|
{recipeitem, "", recipeitem},
|
||
|
{"", recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element straight
|
||
|
-------------------
|
||
|
function noncubic.register_element_straight(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
minetest.register_node("noncubic:element_straight_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.3, -0.5, -0.5, 0.3, 0, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0, 0.5},
|
||
|
},
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_straight_' .. subname .. ' 12',
|
||
|
recipe = {
|
||
|
{"", recipeitem, ""},
|
||
|
{"", recipeitem, ""},
|
||
|
{"", recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element Edge
|
||
|
---------------
|
||
|
function noncubic.register_element_edge(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
minetest.register_node("noncubic:element_edge_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0, 0.3},
|
||
|
},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0, 0.3},
|
||
|
},
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_edge_' .. subname .. ' 10',
|
||
|
recipe = {
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
{"", "", recipeitem},
|
||
|
{"", "", recipeitem},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element T
|
||
|
------------
|
||
|
function noncubic.register_element_t(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
minetest.register_node("noncubic:element_t_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0, 0.3},
|
||
|
{0.3, -0.5, -0.3, 0.5, 0, 0.3},
|
||
|
},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0, 0.3},
|
||
|
{0.3, -0.5, -0.3, 0.5, 0, 0.3},
|
||
|
},
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_t_' .. subname .. ' 8',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
{"", recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element Cross
|
||
|
----------------
|
||
|
function noncubic.register_element_cross(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
minetest.register_node("noncubic:element_cross_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{0.3, -0.5, -0.3, 0.5, 0, 0.3},
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0, 0.5},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0, 0.3},
|
||
|
},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{0.3, -0.5, -0.3, 0.5, 0, 0.3},
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0, 0.5},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0, 0.3},
|
||
|
},
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_cross_' .. subname .. ' 10',
|
||
|
recipe = {
|
||
|
{"", recipeitem, ""},
|
||
|
{recipeitem, recipeitem, recipeitem},
|
||
|
{"", recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element End
|
||
|
--------------
|
||
|
function noncubic.register_element_end(subname, recipeitem, groups, images, description)
|
||
|
|
||
|
minetest.register_node("noncubic:element_end_" .. subname, {
|
||
|
description = description,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0, 0.5},
|
||
|
},
|
||
|
groups = groups,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_end_' .. subname .. ' 8',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", recipeitem, ""},
|
||
|
{"", recipeitem, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element straight DOUBLE
|
||
|
--------------------------
|
||
|
function noncubic.register_element_straight_double(subname3, recipeitem3, groups3, images3, description3)
|
||
|
|
||
|
minetest.register_node("noncubic:element_straight_double_" .. subname3, {
|
||
|
description = description3,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images3,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
|
||
|
},
|
||
|
},
|
||
|
groups = groups3,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_straight_double_' .. subname3 .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:element_straight_' .. recipeitem3, ""},
|
||
|
{"", 'noncubic:element_straight_' .. recipeitem3, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element Edge DOUBLE
|
||
|
----------------------
|
||
|
function noncubic.register_element_edge_double(subname3, recipeitem3, groups3, images3, description3)
|
||
|
|
||
|
minetest.register_node("noncubic:element_edge_double_" .. subname3, {
|
||
|
description = description3,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images3,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
|
||
|
},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
|
||
|
},
|
||
|
},
|
||
|
groups = groups3,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_edge_double_' .. subname3 .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:element_edge_' .. recipeitem3, ""},
|
||
|
{"", 'noncubic:element_edge_' .. recipeitem3, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element T DOUBLE
|
||
|
-------------------
|
||
|
function noncubic.register_element_t_double(subname3, recipeitem3, groups3, images3, description3)
|
||
|
|
||
|
minetest.register_node("noncubic:element_t_double_" .. subname3, {
|
||
|
description = description3,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images3,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
|
||
|
{0.3, -0.5, -0.3, 0.5, 0.5, 0.3},
|
||
|
},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
|
||
|
{0.3, -0.5, -0.3, 0.5, 0.5, 0.3},
|
||
|
},
|
||
|
},
|
||
|
groups = groups3,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_t_double_' .. subname3 .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:element_t_' .. recipeitem3, ""},
|
||
|
{"", 'noncubic:element_t_' .. recipeitem3, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element Cross Double
|
||
|
-----------------------
|
||
|
function noncubic.register_element_cross_double(subname3, recipeitem3, groups3, images3, description3)
|
||
|
|
||
|
minetest.register_node("noncubic:element_cross_double_" .. subname3, {
|
||
|
description = description3,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images3,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{0.3, -0.5, -0.3, 0.5, 0.5, 0.3},
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
|
||
|
},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {
|
||
|
{0.3, -0.5, -0.3, 0.5, 0.5, 0.3},
|
||
|
{-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
|
||
|
{-0.5, -0.5, -0.3, -0.3, 0.5, 0.3},
|
||
|
},
|
||
|
},
|
||
|
groups = groups3,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_cross_double_' .. subname3 .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:element_cross_' .. recipeitem3, ""},
|
||
|
{"", 'noncubic:element_cross_' .. recipeitem3, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Element End Double
|
||
|
---------------------
|
||
|
function noncubic.register_element_end_double(subname3, recipeitem3, groups3, images3, description3)
|
||
|
|
||
|
minetest.register_node("noncubic:element_end_double_" .. subname3, {
|
||
|
description = description3,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images3,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5},
|
||
|
},
|
||
|
groups = groups3,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:element_end_double_' .. subname3 .. ' 1',
|
||
|
recipe = {
|
||
|
{"", "", ""},
|
||
|
{"", 'noncubic:element_end_' .. recipeitem3, ""},
|
||
|
{"", 'noncubic:element_end_' .. recipeitem3, ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
-- STICK
|
||
|
--------
|
||
|
function noncubic.register_stick(subname2, recipeitem2, groups2, images2, description2)
|
||
|
|
||
|
minetest.register_node("noncubic:stick_" .. subname2, {
|
||
|
description = description2,
|
||
|
drawtype = "nodebox",
|
||
|
tiles = images2,
|
||
|
paramtype = "light",
|
||
|
paramtype2 = "facedir",
|
||
|
walkable = true,
|
||
|
selection_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
|
||
|
},
|
||
|
node_box = {
|
||
|
type = "fixed",
|
||
|
fixed = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
|
||
|
},
|
||
|
groups = groups2,
|
||
|
})
|
||
|
minetest.register_craft({
|
||
|
output = 'noncubic:stick_' .. subname2 .. ' 8',
|
||
|
recipe = {
|
||
|
{'default:stick', "", ""},
|
||
|
{"", "", ""},
|
||
|
{recipeitem2, "", ""},
|
||
|
},
|
||
|
})
|
||
|
|
||
|
end
|
||
|
|
||
|
|
||
|
local source_list = {
|
||
|
{"black", "Darkened", "292421", 40, 36, 33},
|
||
|
{"blue", "Blue", "0000FF", 0, 0, 255},
|
||
|
{"green", "Green", "00FF00", 0, 255, 0},
|
||
|
{"white", "White", "F5F5F5", 245, 245, 245},
|
||
|
{"orange", "Orange", "FF6103", 255, 97, 3},
|
||
|
{"red", "Red", "FF0000", 255, 0, 0},
|
||
|
{"yellow", "Yellow", "FFFF00", 255, 255, 0},
|
||
|
{"pink", "pink", "FF69B4", 255, 105, 180}
|
||
|
}
|
||
|
|
||
|
for i in ipairs(source_list) do
|
||
|
local color1 = source_list[i][1]
|
||
|
local color2 = source_list[i][2]
|
||
|
local color3 = source_list[i][3]
|
||
|
local red = source_list[i][4]
|
||
|
local green = source_list[i][5]
|
||
|
local blue = source_list[i][6]
|
||
|
|
||
|
-- REGISTER NEW NONCUBIC's PART 2: noncubic.register_element_end(subname, recipeitem, groups, images, desc_element_xyz)
|
||
|
-----------------------------------------------------------------------------------------------------------------------
|
||
|
function noncubic.register_slope_edge_etc(subname, recipeitem, groups, images, desc_slope, desc_slope_lying, desc_slope_upsdown, desc_slope_edge, desc_slope_inner_edge, desc_slope_upsdwn_edge, desc_slope_upsdwn_inner_edge, desc_pyramid, desc_spike, desc_onecurvededge, desc_twocurvededge, desc_cylinder, desc_cylinder_horizontal, desc_sphere, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end)
|
||
|
noncubic.register_slope(subname, recipeitem, groups, images, desc_slope)
|
||
|
noncubic.register_slope_lying(subname, recipeitem, groups, images, desc_slope_lying)
|
||
|
noncubic.register_slope_upsdown(subname, recipeitem, groups, images, desc_slope_upsdown)
|
||
|
noncubic.register_slope_edge(subname, recipeitem, groups, images, desc_slope_edge)
|
||
|
noncubic.register_slope_inner_edge(subname, recipeitem, groups, images, desc_slope_inner_edge)
|
||
|
noncubic.register_slope_upsdown_edge(subname, recipeitem, groups, images, desc_slope_upsdwn_edge)
|
||
|
noncubic.register_slope_upsdown_inner_edge(subname, recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
|
||
|
noncubic.register_pyramid(subname, recipeitem, groups, images, desc_pyramid)
|
||
|
noncubic.register_spike(subname, recipeitem, groups, images, desc_spike)
|
||
|
noncubic.register_onecurvededge(subname, recipeitem, groups, images, desc_onecurvededge)
|
||
|
noncubic.register_twocurvededge(subname, recipeitem, groups, images, desc_twocurvededge)
|
||
|
noncubic.register_cylinder(subname, recipeitem, groups, images, desc_cylinder)
|
||
|
noncubic.register_cylinder_horizontal(subname, recipeitem, groups, images, desc_cylinder_horizontal)
|
||
|
noncubic.register_sphere(subname, recipeitem, groups, images, desc_sphere)
|
||
|
noncubic.register_element_straight(subname, recipeitem, groups, images, desc_element_straight)
|
||
|
noncubic.register_element_edge(subname, recipeitem, groups, images, desc_element_edge)
|
||
|
noncubic.register_element_t(subname, recipeitem, groups, images, desc_element_t)
|
||
|
noncubic.register_element_cross(subname, recipeitem, groups, images, desc_element_cross)
|
||
|
noncubic.register_element_end(subname, recipeitem, groups, images, desc_element_end)
|
||
|
end
|
||
|
|
||
|
|
||
|
-- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS:
|
||
|
-----------------------------------------------------------
|
||
|
|
||
|
-- Red
|
||
|
-------
|
||
|
noncubic.register_slope_edge_etc("" .. color1 .. "", "color:" .. color1,
|
||
|
{snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||
|
{"color_" .. color1 .. ".png"},
|
||
|
"Red Slope",
|
||
|
color1 .. "Slope Lying",
|
||
|
color1 .. "Slope Upside Down",
|
||
|
color1 .. "Slope Edge",
|
||
|
color1 .. "Slope Inner Edge",
|
||
|
color1 .. "Slope Upside Down Edge",
|
||
|
color1 .. "Slope Upside Down Inner Edge",
|
||
|
color1 .. "Pyramid",
|
||
|
color1 .. "Spike",
|
||
|
color1 .. "One Curved Edge Block",
|
||
|
color1 .. "Two Curved Edge Block",
|
||
|
color1 .. "Cylinder",
|
||
|
color1 .. "Cylinder Horizontal",
|
||
|
color1 .. "Sphere",
|
||
|
color1 .. "Element Straight",
|
||
|
color1 .. "Element Edge",
|
||
|
color1 .. "Element T",
|
||
|
color1 .. "Element Cross",
|
||
|
color1 .. "Element End")
|
||
|
|
||
|
-- REGISTER STICKS: noncubic.register_xyz(subname2, recipeitem2, groups2, images2, desc_element_xyz)
|
||
|
------------------------------------------------------------------------------------------------------------
|
||
|
function noncubic.register_stick_etc(subname2, recipeitem2, groups2, images2, desc_stick)
|
||
|
noncubic.register_stick(subname2, recipeitem2, groups2, images2, desc_stick)
|
||
|
end
|
||
|
|
||
|
-- REGISTER MATERIALS AND PROPERTIES FOR STICKS:
|
||
|
------------------------------------------------
|
||
|
|
||
|
-- WOOD
|
||
|
-------
|
||
|
noncubic.register_stick_etc("wood", "default:wood",
|
||
|
{snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||
|
{"default_wood.png"},
|
||
|
"Wooden Stick")
|
||
|
-- STONE
|
||
|
--------
|
||
|
noncubic.register_stick_etc("stone", "default:stone",
|
||
|
{cracky=3},
|
||
|
{"default_stone.png"},
|
||
|
"Stone Stick")
|
||
|
-- COBBLE
|
||
|
---------
|
||
|
noncubic.register_stick_etc("cobble", "default:cobble",
|
||
|
{cracky=3},
|
||
|
{"default_cobble.png"},
|
||
|
"Cobble Stick")
|
||
|
-- BRICK
|
||
|
--------
|
||
|
noncubic.register_stick_etc("brick", "default:brick",
|
||
|
{cracky=3},
|
||
|
{"default_brick.png"},
|
||
|
"Brick Stick")
|
||
|
-- SANDSTONE
|
||
|
------------
|
||
|
noncubic.register_stick_etc("sandstone", "default:sandstone",
|
||
|
{crumbly=2,cracky=2},
|
||
|
{"default_sandstone.png"},
|
||
|
"Sandstone Stick")
|
||
|
-- LEAVES
|
||
|
---------
|
||
|
noncubic.register_stick_etc("leaves", "default:leaves",
|
||
|
{snappy=2,choppy=2,oddly_breakable_by_hand=3},
|
||
|
{"bucharest_tree.png"},
|
||
|
"Leaves Stick")
|
||
|
-- TREE
|
||
|
-------
|
||
|
noncubic.register_stick_etc("tree", "default:tree",
|
||
|
{snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
|
||
|
{"default_tree.png"},
|
||
|
"Tree Stick")
|
||
|
-- STEEL
|
||
|
--------
|
||
|
noncubic.register_stick_etc("steel", "default:steelblock",
|
||
|
{snappy=1,bendy=2,cracky=1,melty=2,level=2},
|
||
|
{"default_steel_block.png"},
|
||
|
"Steel Stick")
|
||
|
|
||
|
-- REGISTER DOUBLE ELEMNTS: noncubic.register_xyz(subname3, recipeitem3, groups3, images3, desc_element_xyz)
|
||
|
----------------------------------------------------------------------------------------------------
|
||
|
function noncubic.register_elements(subname3, recipeitem3, groups3, images3, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double)
|
||
|
noncubic.register_element_straight_double(subname3, recipeitem3, groups3, images3, desc_element_straight_double)
|
||
|
noncubic.register_element_edge_double(subname3, recipeitem3, groups3, images3, desc_element_edge_double)
|
||
|
noncubic.register_element_t_double(subname3, recipeitem3, groups3, images3, desc_element_t_double)
|
||
|
noncubic.register_element_cross_double(subname3, recipeitem3, groups3, images3, desc_element_cross_double)
|
||
|
noncubic.register_element_end_double(subname3, recipeitem3, groups3, images3, desc_element_end_double)
|
||
|
end
|
||
|
|
||
|
-- REGISTER MATERIALS AND PROPERTIES FOR HALF AND NORMAL HEIGHT ELEMENTS:
|
||
|
-------------------------------------------------------------------------
|
||
|
|
||
|
-- WOOD
|
||
|
-------
|
||
|
noncubic.register_elements(color1, "color:" ..color1,
|
||
|
{snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||
|
{"color_" .. color1 ..".png"},
|
||
|
color1 .. " Element Straight Double",
|
||
|
color1 .. "Element Edge Double",
|
||
|
color1 .. "Element T Double",
|
||
|
color1 .. "Element Cross Double",
|
||
|
color1 .. "Element End Double")
|
||
|
|
||
|
end
|