-- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES:
------------------------------------------------------
-
--- SLOPE
---------
-function technic_cnc_api.register_slope(recipeitem, groups, images, description)
-
-local slopebox = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_slope", {
- 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,
- })
-end
-
-
--- SLOPE Lying
-----------------
-function technic_cnc_api.register_slope_lying(recipeitem, groups, images, description)
-
-local slopeboxlying = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_slope_lying", {
- 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 = recipeitem .. "_technic_cnc_slope_lying 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_slope", ""},
- {"", "", ""},
- },
- })
-
-end
-
-
--- SLOPE UPSIDE DOWN
---------------------
-function technic_cnc_api.register_slope_upsdown(recipeitem, groups, images, description)
-
-if subname == "dirt" then
-return
-end
-
-local slopeupdwnbox = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_slope_upsdown", {
- 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,
- })
-end
-
-
--- SLOPE EDGE
--------------
-function technic_cnc_api.register_slope_edge(recipeitem, groups, images, description)
-
-local slopeboxedge = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_slope_edge", {
- 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,
- })
-end
-
-
--- SLOPE INNER EDGE
--------------------
-function technic_cnc_api.register_slope_inner_edge(recipeitem, groups, images, description)
- local slopeboxedge = {}
- local detail = technic_cnc_api.detail_level
- for i = 0, detail-1 do
- slopeboxedge[i+1]={(i/detail)-0.5, -0.5, -0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
- slopeboxedge[i+detail+1]={-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
+local cnc_sphere =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ local sehne
+ for i = 1, detail-1 do
+ sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
+ nodebox[i]={-sehne, (i/detail)-0.5, -sehne, sehne, (i/detail)+(1/detail)-0.5, sehne}
+ end
+ return nodebox
end
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_slope_inner_edge", {
- 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,
- })
-end
-
-
--- SLOPE EDGE UPSIDE DOWN
--------------------------
-function technic_cnc_api.register_slope_edge_upsdown(recipeitem, groups, images, description)
-
-if recipeitem == "default:dirt" then
- return
-end
-
-local slopeupdwnboxedge = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_slope_edge_upsdown", {
- 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,
- })
-end
-
-
--- SLOPE INNER EDGE UPSIDE DOWN
--------------------------------
-function technic_cnc_api.register_slope_inner_edge_upsdown(recipeitem, groups, images, description)
-
-if recipename == "default:dirt" then
-return
-end
-
-local slopeboxedge = {}
-local detail = technic_cnc_api.detail_level
-for i = 0, detail-1 do
- slopeboxedge[i+1]={0.5-(i/detail)-(1/detail), (i/detail)-0.5, -0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
- slopeboxedge[i+detail+1]={-0.5, (i/detail)-0.5, 0.5-(i/detail)-(1/detail), 0.5, (i/detail)-0.5+(1/detail), 0.5}
-end
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_slope_inner_edge_upsdown", {
- 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,
- })
-end
-
-
--- PYRAMID
-----------
-function technic_cnc_api.register_pyramid(recipeitem, groups, images, description)
-
-local pyrabox = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_pyramid", {
- 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,
- })
-end
-
-
--- SPIKE
---------
-function technic_cnc_api.register_spike(recipeitem, groups, images, description)
-
-if recipename == "default:dirt" then
- return
-end
-
-local spikebox = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_spike", {
- 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,
- })
-end
-
-
--- Block one curved edge
-------------------------
-function technic_cnc_api.register_onecurvededge(recipeitem, groups, images, description)
-
-local quartercyclebox = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_onecurvededge", {
- 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,
- })
-end
-
-
--- Block two curved edges
--------------------------
-function technic_cnc_api.register_twocurvededge(recipeitem, groups, images, description)
-
-local quartercyclebox2 = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_twocurvededge", {
- 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 = recipeitem .. "_technic_cnc_twocurvededge 3",
- recipe = {
- {"", "", ""},
- {recipeitem .. "_technic_cnc_onecurvededge", "", ""},
- {recipeitem .. "_technic_cnc_onecurvededge", recipeitem .. "_technic_cnc_onecurvededge", ""},
- },
- })
-
-end
-
--- Cylinder
------------
-function technic_cnc_api.register_cylinder(recipeitem, groups, images, description)
-
-if recipename == "default:dirt" then
-return
-end
-
-local cylbox = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_cylinder", {
- 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 = recipeitem .. "_technic_cnc_cylinder 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_cylinder_horizontal", ""},
- {"", "", ""},
- },
- })
-
-end
-
-
--- Cylinder Horizontal
-----------------------
-function technic_cnc_api.register_cylinder_horizontal(recipeitem, groups, images, description)
-
-if recipename == "default:dirt" then
- return
-end
-
-local cylbox_horizontal = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_cylinder_horizontal", {
- 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 = recipeitem .. "_technic_cnc_cylinder_horizontal 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_cylinder", ""},
- {"", "", ""},
- },
- })
-end
-
-
--- Sphere
----------
-function technic_cnc_api.register_sphere(recipeitem, groups, images, description)
-
-if recipename == "default:dirt" then
- return
-end
-
-local spherebox = {}
-local detail = technic_cnc_api.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(":" .. recipeitem .. "_technic_cnc_sphere", {
- 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,
- })
-end
-
-
--- Element straight
--------------------
-function technic_cnc_api.register_element_straight(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_straight", {
- 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,
- })
-end
-
-
--- Element Edge
----------------
-function technic_cnc_api.register_element_edge(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_edge", {
- 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,
- })
-end
-
-
--- Element T
-------------
-function technic_cnc_api.register_element_t(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_t", {
- 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,
- })
-end
-
-
--- Element Cross
-----------------
-function technic_cnc_api.register_element_cross(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_cross", {
- 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,
- })
-end
-
-
--- Element End
---------------
-function technic_cnc_api.register_element_end(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_end", {
- 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,
- })
-end
+local cnc_cylinder_horizontal =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ local sehne
+ for i = 1, detail-1 do
+ sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
+ nodebox[i]={-0.5, (i/detail)-0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, sehne}
+ end
+ return nodebox
+ end
+local cnc_cylinder =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ local sehne
+ for i = 1, detail-1 do
+ sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
+ nodebox[i]={(i/detail)-0.5, -0.5, -sehne, (i/detail)+(1/detail)-0.5, 0.5, sehne}
+ end
+ return nodebox
+ end
--- Element straight DOUBLE
---------------------------
-function technic_cnc_api.register_element_straight_double(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_straight_double", {
- 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.5, 0.5},
- },
- node_box = {
- type = "fixed",
- fixed = {
- {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
- },
- },
- groups = groups,
- })
- minetest.register_craft({
- output = recipeitem .. "_technic_cnc_element_straight_double 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_element_straight", ""},
- {"", recipeitem .. "_technic_cnc_element_straight", ""},
- },
- })
-end
+local cnc_twocurvededge =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level*2
+ local sehne
+ for i = (detail/2)-1, detail-1 do
+ sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
+ nodebox[i]={-sehne, -0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, 0.5}
+ end
+ return nodebox
+ end
+local cnc_onecurvededge =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level*2
+ local sehne
+ for i = (detail/2)-1, detail-1 do
+ sehne = math.sqrt(0.25 - (((i/detail)-0.5)^2))
+ nodebox[i]={-0.5, -0.5, -sehne, 0.5, (i/detail)+(1/detail)-0.5, 0.5}
+ end
+ return nodebox
+ end
--- Element Edge DOUBLE
-----------------------
-function technic_cnc_api.register_element_edge_double(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_edge_double", {
- 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.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 = groups,
- })
- minetest.register_craft({
- output = recipeitem .. "_technic_cnc_element_edge_double 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_element_edge", ""},
- {"", recipeitem .. "_technic_cnc_element_edge", ""},
- },
- })
+local cnc_spike =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[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
+ return nodebox
+ end
+local cnc_pyramid =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level/2
+ for i = 0, detail-1 do
+ nodebox[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
+ return nodebox
+ end
--- Element T DOUBLE
--------------------
-function technic_cnc_api.register_element_t_double(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_t_double", {
- 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.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 = groups,
- })
- minetest.register_craft({
- output = recipeitem .. "_technic_cnc_element_t_double 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_element_t", ""},
- {"", recipeitem .. "_technic_cnc_element_t", ""},
- },
- })
-end
+local cnc_slope_inner_edge_upsdown =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[i+1]={0.5-(i/detail)-(1/detail), (i/detail)-0.5, -0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
+ nodebox[i+detail+1]={-0.5, (i/detail)-0.5, 0.5-(i/detail)-(1/detail), 0.5, (i/detail)-0.5+(1/detail), 0.5}
+ end
+ return nodebox
+ end
+local cnc_slope_edge_upsdown =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[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
+ return nodebox
+ end
--- Element Cross Double
------------------------
-function technic_cnc_api.register_element_cross_double(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_cross_double", {
- 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.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 = groups,
- })
- minetest.register_craft({
- output = recipeitem .. "_technic_cnc_element_cross_double 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_element_cross", ""},
- {"", recipeitem .. "_technic_cnc_element_cross", ""},
- },
- })
+local cnc_slope_inner_edge =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[i+1]={(i/detail)-0.5, -0.5, -0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
+ nodebox[i+detail+1]={-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
+ end
+ return nodebox
+ end
-end
+local cnc_slope_edge =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[i+1]={(i/detail)-0.5, -0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
+ end
+ return nodebox
+ end
+local cnc_slope_upsdown =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[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
+ return nodebox
+ end
--- Element End Double
----------------------
-function technic_cnc_api.register_element_end_double(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_element_end_double", {
- 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.5, 0.5},
- },
- node_box = {
- type = "fixed",
- fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5},
- },
- groups = groups,
- })
- minetest.register_craft({
- output = recipeitem .. "_technic_cnc_element_end_double 1",
- recipe = {
- {"", "", ""},
- {"", recipeitem .. "_technic_cnc_element_end", ""},
- {"", recipeitem .. "_technic_cnc_element_end", ""},
- },
- })
-end
+local cnc_slope_lying =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[i+1]={(i/detail)-0.5, -0.5, (i/detail)-0.5, (i/detail)-0.5+(1/detail), 0.5 , 0.5}
+ end
+ return nodebox
+ end
+local cnc_slope =
+ function()
+ local nodebox = {}
+ local detail = technic_cnc_api.detail_level
+ for i = 0, detail-1 do
+ nodebox[i+1]={-0.5, (i/detail)-0.5, (i/detail)-0.5, 0.5, (i/detail)-0.5+(1/detail), 0.5}
+ end
+ return nodebox
+ end
--- STICK
---------
-function technic_cnc_api.register_stick(recipeitem, groups, images, description)
-
-minetest.register_node(":" .. recipeitem .. "_technic_cnc_stick", {
- description = description,
- drawtype = "nodebox",
- tiles = images,
- 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 = groups,
- })
- minetest.register_craft({
- output = recipeitem .. "_technic_cnc_stick 8",
- recipe = {
- {'default:stick', "", ""},
- {"", "", ""},
- {recipeitem, "", ""},
- },
- })
+-- Define slope boxes for the various nodes
+-------------------------------------------
+technic_cnc_api.cnc_programs = {
+ {suffix = "technic_cnc_stick",
+ nodebox = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
+ desc = "Stick"},
+
+ {suffix = "technic_cnc_element_end_double",
+ nodebox = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5},
+ desc = "Element End Double"},
+
+ {suffix = "technic_cnc_element_cross_double",
+ nodebox = {
+ {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}},
+ desc = "Element Cross Double"},
+
+ {suffix = "technic_cnc_element_t_double",
+ nodebox = {
+ {-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}},
+ desc = "Element T Double"},
+
+ {suffix = "technic_cnc_element_edge_double",
+ nodebox = {
+ {-0.3, -0.5, -0.5, 0.3, 0.5, 0.3},
+ {-0.5, -0.5, -0.3, -0.3, 0.5, 0.3}},
+ desc = "Element Edge Double"},
+
+ {suffix = "technic_cnc_element_straight_double",
+ nodebox = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5},
+ desc = "Element Straight Double"},
+
+ {suffix = "technic_cnc_element_end",
+ nodebox = {-0.3, -0.5, -0.3, 0.3, 0, 0.5},
+ desc = "Element End"},
+
+ {suffix = "technic_cnc_element_cross",
+ nodebox = {
+ {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}},
+ desc = "Element Cross"},
+
+ {suffix = "technic_cnc_element_t",
+ nodebox = {
+ {-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}},
+ desc = "Element T"},
+
+ {suffix = "technic_cnc_element_edge",
+ nodebox = {
+ {-0.3, -0.5, -0.5, 0.3, 0, 0.3},
+ {-0.5, -0.5, -0.3, -0.3, 0, 0.3}},
+ desc = "Element Edge"},
+
+ {suffix = "technic_cnc_element_straight",
+ nodebox = {-0.3, -0.5, -0.5, 0.3, 0, 0.5},
+ desc = "Element Straight"},
+
+ {suffix = "technic_cnc_sphere",
+ nodebox = cnc_sphere(),
+ desc = "Sphere"},
+
+ {suffix = "technic_cnc_cylinder_horizontal",
+ nodebox = cnc_cylinder_horizontal(),
+ desc = "Cylinder Horizontal"},
+
+ {suffix = "technic_cnc_cylinder",
+ nodebox = cnc_cylinder(),
+ desc = ""},
+
+ {suffix = "technic_cnc_twocurvededge",
+ nodebox = cnc_twocurvededge(),
+ desc = "One Curved Edge Block"},
+
+ {suffix = "technic_cnc_onecurvededge",
+ nodebox = cnc_onecurvededge(),
+ desc = "Two Curved Edge Block"},
+
+ {suffix = "technic_cnc_spike",
+ nodebox = cnc_spike(),
+ desc = "Spike"},
+
+ {suffix = "technic_cnc_pyramid",
+ nodebox = cnc_pyramid(),
+ desc = "Pyramid"},
+
+ {suffix = "technic_cnc_slope_inner_edge_upsdown",
+ nodebox = cnc_slope_inner_edge_upsdown(),
+ desc = "Slope Upside Down Inner Edge"},
+
+ {suffix = "technic_cnc_slope_edge_upsdown",
+ nodebox = cnc_slope_edge_upsdown(),
+ desc = "Slope Upside Down Edge"},
+
+ {suffix = "technic_cnc_slope_inner_edge",
+ nodebox = cnc_slope_inner_edge(),
+ desc = "Slope Inner Edge"},
+
+ {suffix = "technic_cnc_slope_edge",
+ nodebox = cnc_slope_edge(),
+ desc = "Slope Edge"},
+
+ {suffix = "technic_cnc_slope_upsdown",
+ nodebox = cnc_slope_upsdown(),
+ desc = "Slope Upside Down"},
+
+ {suffix = "technic_cnc_slope_lying",
+ nodebox = cnc_slope_lying(),
+ desc = "Slope Lying"},
+
+ {suffix = "technic_cnc_slope",
+ nodebox = cnc_slope(),
+ desc = "Slope"},
+-- {suffix = "",
+-- nodebox =},
+}
+
+-- Allow disabling certain programs for some node. Default is allowing all types for all nodes
+technic_cnc_api.cnc_programs_disable = {
+ -- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick
+ -- ...
+ ["default:dirt"] = {"technic_cnc_sphere", "technic_cnc_slope_upsdown", "technic_cnc_edge",
+ "technic_cnc_inner_edge", "technic_cnc_slope_edge_upsdown", "technic_cnc_slope_inner_edge_upsdown",
+ "technic_cnc_stick", "technic_cnc_cylinder_horizontal"}
+}
+
+-- Generic function for registering all the different node types
+function technic_cnc_api.register_cnc_program(recipeitem, suffix, nodebox, groups, images, description)
+ minetest.register_node(":" .. recipeitem .. "_" .. suffix, {
+ description = description,
+ drawtype = "nodebox",
+ tiles = images,
+ paramtype = "light",
+ paramtype2 = "facedir",
+ walkable = true,
+ selection_box = {
+ type = "fixed",
+ fixed = nodebox
+ },
+ node_box = {
+ type = "fixed",
+ fixed = nodebox
+ },
+ groups = groups,
+ })
+end
+
+-- function to iterate over all the programs the CNC machine knows
+function technic_cnc_api.register_all(recipeitem, groups, images, description)
+ for _, data in ipairs(technic_cnc_api.cnc_programs) do
+ -- Disable node creation for disabled node types for some material
+ local do_register = true
+ if technic_cnc_api.cnc_programs_disable[recipeitem] ~= nil then
+ for __, disable in ipairs(technic_cnc_api.cnc_programs_disable[recipeitem]) do
+ if disable == data.suffix then
+ do_register = false
+ end
+ end
+ end
+ -- Create the node if it passes the test
+ if do_register then
+ technic_cnc_api.register_cnc_program(recipeitem, data.suffix, data.nodebox, groups, images, description.." "..data.desc)
+ end
+ end
end
-
-- REGISTER NEW TECHNIC_CNC_API's PART 2: technic_cnc_api.register_element_end(subname, recipeitem, groups, images, desc_element_xyz)
-----------------------------------------------------------------------------------------------------------------------
function technic_cnc_api.register_slope_edge_etc(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)
-- REGISTER MATERIALS AND PROPERTIES FOR NONCUBIC ELEMENTS:
-----------------------------------------------------------
-
--- WOOD
--------
-technic_cnc_api.register_slope_edge_etc("default:wood",
- {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
- {"default_wood.png"},
- "Wooden Slope",
- "Wooden Slope Lying",
- "Wooden Slope Upside Down",
- "Wooden Slope Edge",
- "Wooden Slope Inner Edge",
- "Wooden Slope Upside Down Edge",
- "Wooden Slope Upside Down Inner Edge",
- "Wooden Pyramid",
- "Wooden Spike",
- "Wooden One Curved Edge Block",
- "Wooden Two Curved Edge Block",
- "Wooden Cylinder",
- "Wooden Cylinder Horizontal",
- "Wooden Sphere",
- "Wooden Element Straight",
- "Wooden Element Edge",
- "Wooden Element T",
- "Wooden Element Cross",
- "Wooden Element End")
--- STONE
---------
-technic_cnc_api.register_slope_edge_etc("default:stone",
- {cracky=3,not_in_creative_inventory=1},
- {"default_stone.png"},
- "Stone Slope",
- "Stone Slope Lying",
- "Stone Slope Upside Down",
- "Stone Slope Edge",
- "Stone Slope Inner Edge",
- "Stone Slope Upside Down Edge",
- "Stone Slope Upside Down Inner Edge",
- "Stone Pyramid",
- "Stone Spike",
- "Stone One Curved Edge Block",
- "Stone Two Curved Edge Block",
- "Stone Cylinder",
- "Stote Cylinder Horizontal",
- "Stone Sphere",
- "Stone Element Straight",
- "Stone Element Edge",
- "Stone Element T",
- "Stone Element Cross",
- "Stone Element End")
--- COBBLE
----------
-technic_cnc_api.register_slope_edge_etc("default:cobble",
- {cracky=3,not_in_creative_inventory=1},
- {"default_cobble.png"},
- "Cobble Slope",
- "Cobble Slope Lying",
- "Cobble Slope Upside Down",
- "Cobble Slope Edge",
- "Cobble Slope Inner Edge",
- "Cobble Slope Upside Down Edge",
- "Cobble Slope Upside Down Inner Edge",
- "Cobble Pyramid",
- "Cobble Spike",
- "Cobble One Curved Edge Block",
- "Cobble Two Curved Edge Block",
- "Cobble Cylinder",
- "Cobble Cylinder Horizontal",
- "Cobble Sphere",
- "Cobble Element Straight",
- "Cobble Element Edge",
- "Cobble Element T",
- "Cobble Element Cross",
- "Cobble Element End")
--- BRICK
---------
-technic_cnc_api.register_slope_edge_etc("default:brick",
- {cracky=3,not_in_creative_inventory=1},
- {"default_brick.png"},
- "Brick Slope",
- "Brick Slope Upside Down",
- "Brick Slope Edge",
- "Brick Slope Inner Edge",
- "Brick Slope Upside Down Edge",
- "Brick Slope Upside Down Inner Edge",
- "Brick Pyramid",
- "Brick Spike",
- "Brick One Curved Edge Block",
- "Brick Two Curved Edge Block",
- "Brick Cylinder",
- "Brick Cylinder Horizontal",
- "Brick Sphere",
- "Brick Element Straight",
- "Brick Element Edge",
- "Brick Element T",
- "Brick Element Cross",
- "Brick Element End")
--- SANDSTONE
-------------
-technic_cnc_api.register_slope_edge_etc("default:sandstone",
- {crumbly=2,cracky=2,not_in_creative_inventory=1},
- {"default_sandstone.png"},
- "Sandstone Slope",
- "Sandstone Slope Lying",
- "Sandstone Slope Upside Down",
- "Sandstone Slope Edge",
- "Sandstone Slope Inner Edge",
- "Sandstone Slope Upside Down Edge",
- "Sandstone Slope Upside Down Inner Edge",
- "Sandstone Pyramid",
- "Sandstone Spike",
- "Sandstone One Curved Edge Block",
- "Sandstone Two Curved Edge Block",
- "Sandstone Cylinder",
- "Sandstone Cylinder Horizontal",
- "Sandstone Sphere",
- "Sandstone Element Straight",
- "Sandstone Element Edge",
- "Sandstone Element T",
- "Sandstone Element Cross",
- "Sandstone Element End")
--- LEAVES
----------
-technic_cnc_api.register_slope_edge_etc("default:leaves",
- {snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
- {"bucharest_tree.png"},
- "Leaves Slope",
- "Leaves Slope Lying",
- "Leaves Slope Upside Down",
- "Leaves Slope Edge",
- "Leaves Slope Inner Edge",
- "Leaves Slope Upside Down Edge",
- "Leaves Slope Upside Down Inner Edge",
- "Leaves Pyramid",
- "Leaves Spike",
- "Leaves One Curved Edge Block",
- "Leaves Two Curved Edge Block",
- "Leaves Cylinder",
- "Leaves Cylinder Horizontal",
- "Leaves Sphere",
- "Leaves Element Straight",
- "Leaves Element Edge",
- "Leaves Element T",
- "Leaves Element Cross",
- "Leaves Element End")
-- DIRT
-------
-technic_cnc_api.register_slope_edge_etc("default:dirt",
+technic_cnc_api.register_all("default:dirt",
{snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
{"default_grass.png", "default_dirt.png", "default_grass.png"},
- "Dirt Slope",
- "Dirt Slope Lying",
- "Dirt Slope Upside Down",
- "Dirt Slope Edge",
- "Dirt Slope Inner Edge",
- "Dirt Slope Upside Down Edge",
- "Dirt Slope Upside Down Inner Edge",
- "Dirt Pyramid",
- "Dirt Spike",
- "Dirt One Curved Edge Block",
- "Dirt Two Curved Edge Block",
- "Dirt Cylinder",
- "Dirt Cylinder Horizontal",
- "Dirt Sphere",
- "Dirt Element Straight",
- "Dirt Element Edge",
- "Dirt Element T",
- "Dirt Element Cross",
- "Dirt Element End")
--- TREE
--------
-technic_cnc_api.register_slope_edge_etc("default:tree",
- {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,not_in_creative_inventory=1},
- {"default_tree.png"},
- "Tree Slope",
- "Tree Slope Lying",
- "Tree Slope Upside Down",
- "Tree Slope Edge",
- "Tree Slope Inner Edge",
- "Tree Slope Upside Down Edge",
- "Tree Slope Upside Down Inner Edge",
- "Tree Pyramid",
- "Tree Spike",
- "Tree One Curved Edge Block",
- "Tree Two Curved Edge Block",
- "Tree Cylinder",
- "Tree Cylinder Horizontal",
- "Tree Sphere",
- "Tree Element Straight",
- "Tree Element Edge",
- "Tree Element T",
- "Tree Element Cross",
- "Tree Element End")
--- STEEL
---------
-technic_cnc_api.register_slope_edge_etc("default:steelblock",
- {snappy=1,bendy=2,cracky=1,melty=2,level=2,not_in_creative_inventory=1},
- {"default_steel_block.png"},
- "Steel Slope",
- "Steel Slope Lying",
- "Steel Slope Upside Down",
- "Steel Slope Edge",
- "Steel Slope Inner Edge",
- "Steel Slope Upside Down Edge",
- "Steel Slope Upside Down Inner Edge",
- "Steel Pyramid",
- "Steel Spike",
- "Steel One Curved Edge Block",
- "Steel Two Curved Edge Block",
- "Steel Cylinder",
- "Steel Cylinder Horizontal",
- "Steel Sphere",
- "Steel Element Straight",
- "Steel Element Edge",
- "Steel Element T",
- "Steel Element Cross",
- "Steel Element End")
-
--- REGISTER MATERIALS AND PROPERTIES FOR STICKS:
-------------------------------------------------
+ "Dirt")
+technic_cnc_api.cnc_programs_disable["default:dirt"] = {"technic_cnc_sphere", "technic_cnc_slope_upsdown",
+ "technic_cnc_edge", "technic_cnc_inner_edge",
+ "technic_cnc_slope_edge_upsdown", "technic_cnc_slope_inner_edge_upsdown",
+ "technic_cnc_stick", "technic_cnc_cylinder_horizontal"}
--- WOOD
--------
-technic_cnc_api.register_stick_etc("default:wood",
- {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
- {"default_wood.png"},
- "Wooden Stick")
--- STONE
---------
-technic_cnc_api.register_stick_etc("default:stone",
- {cracky=3,not_in_creative_inventory=1},
- {"default_stone.png"},
- "Stone Stick")
--- COBBLE
----------
-technic_cnc_api.register_stick_etc("default:cobble",
- {cracky=3,not_in_creative_inventory=1},
- {"default_cobble.png"},
- "Cobble Stick")
--- BRICK
---------
-technic_cnc_api.register_stick_etc("default:brick",
- {cracky=3,not_in_creative_inventory=1},
- {"default_brick.png"},
- "Brick Stick")
--- SANDSTONE
-------------
-technic_cnc_api.register_stick_etc("default:sandstone",
- {crumbly=2,cracky=2,not_in_creative_inventory=1},
- {"default_sandstone.png"},
- "Sandstone Stick")
--- LEAVES
----------
-technic_cnc_api.register_stick_etc("default:leaves",
- {snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
- {"bucharest_tree.png"},
- "Leaves Stick")
-- TREE
-------
-technic_cnc_api.register_stick_etc("default:tree",
- {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,not_in_creative_inventory=1},
+technic_cnc_api.register_all("default:tree",
+ {snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
{"default_tree.png"},
- "Tree Stick")
--- STEEL
---------
-technic_cnc_api.register_stick_etc("default:steelblock",
- {snappy=1,bendy=2,cracky=1,melty=2,level=2,not_in_creative_inventory=1},
- {"default_steel_block.png"},
- "Steel Stick")
-
--- REGISTER MATERIALS AND PROPERTIES FOR HALF AND NORMAL HEIGHT ELEMENTS:
--------------------------------------------------------------------------
+ "Wooden")
-- WOOD
-------
-technic_cnc_api.register_elements("default:wood",
+technic_cnc_api.register_all("default:wood",
{snappy=2,choppy=2,oddly_breakable_by_hand=2,not_in_creative_inventory=1},
{"default_wood.png"},
- "Wooden Element Straight Double",
- "Wooden Element Edge Double",
- "Wooden Element T Double",
- "Wooden Element Cross Double",
- "Wooden Element End Double")
+ "Wooden")
-- STONE
--------
-technic_cnc_api.register_elements("default:stone",
+technic_cnc_api.register_all("default:stone",
{cracky=3,not_in_creative_inventory=1},
{"default_stone.png"},
- "Stone Element Straight Double",
- "Stone Element Edge Double",
- "Stone Element T Double",
- "Stone Element Cross Double",
- "Stone Element End Double")
+ "Stone")
-- COBBLE
---------
-technic_cnc_api.register_elements("default:cobble",
+technic_cnc_api.register_all("default:cobble",
{cracky=3,not_in_creative_inventory=1},
{"default_cobble.png"},
- "Cobble Element Straight Double",
- "Cobble Element Edge Double",
- "Cobble Element T Double",
- "Cobble Element Cross Double",
- "Cobble Element End Double")
+ "Cobble")
-- BRICK
--------
-technic_cnc_api.register_elements("default:brick",
+technic_cnc_api.register_all("default:brick",
{cracky=3,not_in_creative_inventory=1},
{"default_brick.png"},
- "Brick Element Straight Double",
- "Brick Element Edge Double",
- "Brick Element T Double",
- "Brick Element Cross Double",
- "Brick Element End Double")
+ "Brick")
+
-- SANDSTONE
------------
-technic_cnc_api.register_elements("default:sandstone",
+technic_cnc_api.register_all("default:sandstone",
{crumbly=2,cracky=2,not_in_creative_inventory=1},
{"default_sandstone.png"},
- "Sandstone Element Straight Double",
- "Sandstone Element Edge Double",
- "Sandstone Element T Double",
- "Sandstone Element Cross Double",
- "Sandstone Element End Double")
+ "Sandstone")
+
-- LEAVES
---------
-technic_cnc_api.register_elements("default:leaves",
+technic_cnc_api.register_all("default:leaves",
{snappy=2,choppy=2,oddly_breakable_by_hand=3,not_in_creative_inventory=1},
{"bucharest_tree.png"},
- "Leaves Element Straight Double",
- "Leaves Element Edge Double",
- "Leaves Element T Double",
- "Leaves Element Cross Double",
- "Leaves Element End Double")
+ "Leaves")
-- TREE
-------
-technic_cnc_api.register_elements("default:tree",
+technic_cnc_api.register_all("default:tree",
{snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1,not_in_creative_inventory=1},
{"default_tree.png"},
- "Tree Element Straight Double",
- "Tree Element Edge Double",
- "Tree Element T Double",
- "Tree Element Cross Double",
- "Tree Element End Double")
+ "Tree")
-- STEEL
--------
-technic_cnc_api.register_elements("default:steel",
+technic_cnc_api.register_all("default:steel",
{snappy=1,bendy=2,cracky=1,melty=2,level=2,not_in_creative_inventory=1},
{"default_steel_block.png"},
- "Steel Element Straight Double",
- "Steel Element Edge Double",
- "Steel Element T Double",
- "Steel Element Cross Double",
- "Steel Element End Double")
+ "Steel")