Merge pull request #17 from kpoppel/master
Add more CNC stuff
2 files added
4 files modified
| | |
| | | end |
| | | end |
| | | |
| | | -- dischargin registered power tools |
| | | -- discharging registered power tools |
| | | if inv:is_empty("dst") == false then |
| | | srcstack = inv:get_stack("dst", 1) |
| | | src_item=srcstack:to_table() |
| | |
| | | local pos1={} |
| | | i=1 |
| | | repeat |
| | | if PR_nodes[i]==nil then break end -- gettin power from all connected producers |
| | | if PR_nodes[i]==nil then break end -- getting power from all connected producers |
| | | pos1.x=PR_nodes[i].x |
| | | pos1.y=PR_nodes[i].y |
| | | pos1.z=PR_nodes[i].z |
| | |
| | | -- Technic CNC v1.0 by kpo |
| | | -- Based on the NonCubic Blocks MOD v1.4 by yves_de_beck |
| | | |
| | | -- Idea: |
| | | -- Somehw have a tabbed/paged panel if the number of shapes should expand |
| | | -- beyond what is available in the panel today. |
| | | -- I could imagine some form of API allowing modders to come with their own node |
| | | -- box definitions and easily stuff it in the this machine for production. |
| | | local shape = {} |
| | | local onesize_products = { |
| | | slope = 2, |
| | |
| | | |
| | | local size = 1; |
| | | |
| | | minetest.register_node("technic:cnc", { |
| | | description = "CNC Milling Machine", |
| | | tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png", |
| | | "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"}, |
| | | drawtype = "nodebox", |
| | | paramtype = "light", |
| | | paramtype2 = "facedir", |
| | | node_box = { |
| | | type = "fixed", |
| | | fixed = { |
| | | {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, |
| | | |
| | | }, |
| | | }, |
| | | selection_box = { |
| | | type = "fixed", |
| | | fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, |
| | | }, |
| | | groups = {cracky=2}, |
| | | legacy_facedir_simple = true, |
| | | technic_power_machine=1, |
| | | internal_EU_buffer=0; |
| | | internal_EU_buffer_size=5000; |
| | | cnc_time = 0; |
| | | src_time = 0; -- fixme |
| | | |
| | | on_construct = function(pos) |
| | | local meta = minetest.env:get_meta(pos) |
| | | meta:set_string("infotext", "CNC machine") |
| | | meta:set_float("technic_power_machine", 1) |
| | | meta:set_float("internal_EU_buffer", 0) |
| | | meta:set_float("internal_EU_buffer_size", 5000) |
| | | meta:set_string("formspec", cnc_formspec..cnc_power_formspec) |
| | | meta:set_float("cnc_time", 0) |
| | | |
| | | local inv = meta:get_inventory() |
| | | inv:set_size("src", 1) |
| | | inv:set_size("dst", 4) |
| | | |
| | | meta:set_string("formspec", cnc_formspec) |
| | | meta:set_string("infotext", "CNC Milling Machine") |
| | | end, |
| | | |
| | | can_dig = function(pos,player) |
| | | local meta = minetest.env:get_meta(pos); |
| | | local inv = meta:get_inventory() |
| | | if not inv:is_empty("src") or not inv:is_empty("dst") then |
| | | minetest.chat_send_player(player:get_player_name(), "CNC machine cannot be removed because it is not empty"); |
| | | return false |
| | | end |
| | | return true |
| | | end, |
| | | |
| | | |
| | | on_receive_fields = function(pos, formname, fields, sender) |
| | | -- The form handler is declared here because we need it in both the inactive and active modes |
| | | -- in order to be able to change programs wile it is running. |
| | | local form_handler = function(pos, formname, fields, sender) |
| | | -- REGISTER MILLING PROGRAMS AND OUTPUTS: |
| | | ------------------------------------------ |
| | | -- Program for half/full size |
| | |
| | | |
| | | if onesize_products[k] ~= nil or (twosize_products[k] ~= nil and size==2) then |
| | | meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k) |
| | | print(inputname .. "_technic_cnc_" .. k) |
| | | break |
| | | end |
| | | |
| | | if twosize_products[k] ~= nil and size==1 then |
| | | meta:set_string("cnc_product", inputname .. "_technic_cnc_" .. k .. "_double") |
| | | print(inputname .. "_technic_cnc_" .. k .. "_double") |
| | | break |
| | | end |
| | | end |
| | | return |
| | | end, -- callback function |
| | | end -- callback function |
| | | |
| | | -- The actual block inactive state |
| | | minetest.register_node("technic:cnc", { |
| | | description = "CNC Milling Machine", |
| | | tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png", |
| | | "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front.png"}, |
| | | drawtype = "nodebox", |
| | | paramtype = "light", |
| | | paramtype2 = "facedir", |
| | | node_box = { |
| | | type = "fixed", |
| | | fixed = { |
| | | {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, |
| | | |
| | | }, |
| | | }, |
| | | selection_box = { |
| | | type = "fixed", |
| | | fixed = {-0.5, -0.5, -0.5, 0.5, 0.5, 0.5}, |
| | | }, |
| | | groups = {cracky=2}, |
| | | legacy_facedir_simple = true, |
| | | technic_power_machine=1, |
| | | internal_EU_buffer=0; |
| | | internal_EU_buffer_size=5000; |
| | | cnc_time = 0; |
| | | src_time = 0; -- fixme |
| | | |
| | | on_construct = function(pos) |
| | | local meta = minetest.env:get_meta(pos) |
| | | meta:set_string("infotext", "CNC Machine Inactive") |
| | | meta:set_float("technic_power_machine", 1) |
| | | meta:set_float("internal_EU_buffer", 0) |
| | | meta:set_float("internal_EU_buffer_size", 5000) |
| | | meta:set_string("formspec", cnc_formspec..cnc_power_formspec) |
| | | meta:set_float("cnc_time", 0) |
| | | |
| | | local inv = meta:get_inventory() |
| | | inv:set_size("src", 1) |
| | | inv:set_size("dst", 4) |
| | | end, |
| | | |
| | | can_dig = function(pos,player) |
| | | local meta = minetest.env:get_meta(pos); |
| | | local inv = meta:get_inventory() |
| | | if not inv:is_empty("src") or not inv:is_empty("dst") then |
| | | minetest.chat_send_player(player:get_player_name(), "CNC machine cannot be removed because it is not empty"); |
| | | return false |
| | | end |
| | | return true |
| | | end, |
| | | |
| | | on_receive_fields = form_handler, |
| | | }) |
| | | |
| | | -- Active state block |
| | | minetest.register_node("technic:cnc_active", { |
| | | description = "CNC Machine", |
| | | tiles = {"technic_cnc_top.png", "technic_cnc_bottom.png", "technic_cnc_side.png", |
| | | "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"}, |
| | | tiles = {"technic_cnc_top_active.png", "technic_cnc_bottom.png", "technic_cnc_side.png", |
| | | "technic_cnc_side.png", "technic_cnc_side.png", "technic_cnc_front_active.png"}, |
| | | paramtype2 = "facedir", |
| | | groups = {cracky=2,not_in_creative_inventory=1}, |
| | | legacy_facedir_simple = true, |
| | |
| | | end |
| | | return true |
| | | end, |
| | | on_receive_fields = form_handler, |
| | | }) |
| | | |
| | | -- Action code performing the transformation |
| | | minetest.register_abm( |
| | | { |
| | | nodenames = {"technic:cnc","technic:cnc_active"}, |
| | |
| | | ---------------------------------------- |
| | | technic_cnc_api.detail_level = 16 -- 16; 1-32 |
| | | |
| | | -- HERE YOU CAN DE/ACTIVATE BACKGROUND FOR CNC MENU: |
| | | -------------------------------------------------------- |
| | | technic_cnc_api.allow_menu_background = false |
| | | |
| | | -- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES: |
| | | ------------------------------------------------------ |
| | | 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 |
| | | |
| | | -- SLOPE |
| | | -------- |
| | | function technic_cnc_api.register_slope(recipeitem, groups, images, description) |
| | | 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 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} |
| | | 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 |
| | | |
| | | 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 |
| | | |
| | | 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 |
| | | |
| | | 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 |
| | | |
| | | 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 |
| | | |
| | | 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 |
| | | |
| | | 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 |
| | | |
| | | -- 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 |
| | | |
| | | 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, |
| | | }) |
| | | -- 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 |
| | | |
| | | |
| | | -- 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) |
| | | |
| | | 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 = { |
| | | -- 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, |
| | | }) |
| | | 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 |
| | | |
| | | 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 = { |
| | | {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, |
| | | }) |
| | | 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 |
| | | |
| | | |
| | | -- 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 |
| | | |
| | | |
| | | -- 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", ""}, |
| | | }, |
| | | }) |
| | | 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 |
| | | |
| | | |
| | | -- 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", ""}, |
| | | }, |
| | | }) |
| | | |
| | | 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 |
| | | |
| | | |
| | | -- 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, "", ""}, |
| | | }, |
| | | }) |
| | | end |
| | | |
| | | |
| | | |
| | | -- REGISTER NEW TECHNIC_CNC_API's PART 2: technic_cnc_api.register_element_end(subname, recipeitem, groups, images, desc_element_xyz) |
| | |
| | | -- 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") |
| | | "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"} |
| | | |
| | | -- 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}, |
| | | 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 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: |
| | | ------------------------------------------------ |
| | | "Wooden") |
| | | |
| | | -- WOOD |
| | | ------- |
| | | technic_cnc_api.register_stick_etc("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 Stick") |
| | | "Wooden") |
| | | -- STONE |
| | | -------- |
| | | technic_cnc_api.register_stick_etc("default:stone", |
| | | technic_cnc_api.register_all("default:stone", |
| | | {cracky=3,not_in_creative_inventory=1}, |
| | | {"default_stone.png"}, |
| | | "Stone Stick") |
| | | "Stone") |
| | | -- COBBLE |
| | | --------- |
| | | technic_cnc_api.register_stick_etc("default:cobble", |
| | | technic_cnc_api.register_all("default:cobble", |
| | | {cracky=3,not_in_creative_inventory=1}, |
| | | {"default_cobble.png"}, |
| | | "Cobble Stick") |
| | | "Cobble") |
| | | -- BRICK |
| | | -------- |
| | | technic_cnc_api.register_stick_etc("default:brick", |
| | | technic_cnc_api.register_all("default:brick", |
| | | {cracky=3,not_in_creative_inventory=1}, |
| | | {"default_brick.png"}, |
| | | "Brick Stick") |
| | | "Brick") |
| | | |
| | | -- SANDSTONE |
| | | ------------ |
| | | technic_cnc_api.register_stick_etc("default:sandstone", |
| | | technic_cnc_api.register_all("default:sandstone", |
| | | {crumbly=2,cracky=2,not_in_creative_inventory=1}, |
| | | {"default_sandstone.png"}, |
| | | "Sandstone Stick") |
| | | "Sandstone") |
| | | |
| | | -- LEAVES |
| | | --------- |
| | | technic_cnc_api.register_stick_etc("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 Stick") |
| | | "Leaves") |
| | | -- TREE |
| | | ------- |
| | | technic_cnc_api.register_stick_etc("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 Stick") |
| | | "Tree") |
| | | -- STEEL |
| | | -------- |
| | | technic_cnc_api.register_stick_etc("default:steelblock", |
| | | 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 Stick") |
| | | |
| | | -- REGISTER MATERIALS AND PROPERTIES FOR HALF AND NORMAL HEIGHT ELEMENTS: |
| | | ------------------------------------------------------------------------- |
| | | |
| | | -- WOOD |
| | | ------- |
| | | technic_cnc_api.register_elements("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") |
| | | -- STONE |
| | | -------- |
| | | technic_cnc_api.register_elements("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") |
| | | -- COBBLE |
| | | --------- |
| | | technic_cnc_api.register_elements("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") |
| | | -- BRICK |
| | | -------- |
| | | technic_cnc_api.register_elements("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") |
| | | -- SANDSTONE |
| | | ------------ |
| | | technic_cnc_api.register_elements("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") |
| | | -- LEAVES |
| | | --------- |
| | | technic_cnc_api.register_elements("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") |
| | | -- TREE |
| | | ------- |
| | | technic_cnc_api.register_elements("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") |
| | | -- STEEL |
| | | -------- |
| | | technic_cnc_api.register_elements("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") |