| | |
| | | -- Define slope boxes for the various nodes |
| | | ------------------------------------------- |
| | | technic.cnc.programs = { |
| | | {suffix = "technic_cnc_stick", |
| | | model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}, |
| | | desc = S("Stick")}, |
| | | { suffix = "technic_cnc_stick", |
| | | model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15}, |
| | | desc = S("Stick") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_end_double", |
| | | model = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5}, |
| | | desc = S("Element End Double")}, |
| | | { suffix = "technic_cnc_element_end_double", |
| | | model = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.5}, |
| | | desc = S("Element End Double") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_cross_double", |
| | | model = { |
| | | {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 = S("Element Cross Double")}, |
| | | { suffix = "technic_cnc_element_cross_double", |
| | | model = { |
| | | {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 = S("Element Cross Double") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_t_double", |
| | | model = { |
| | | {-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 = S("Element T Double")}, |
| | | { suffix = "technic_cnc_element_t_double", |
| | | model = { |
| | | {-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 = S("Element T Double") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_edge_double", |
| | | model = { |
| | | {-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 = S("Element Edge Double")}, |
| | | { suffix = "technic_cnc_element_edge_double", |
| | | model = { |
| | | {-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 = S("Element Edge Double") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_straight_double", |
| | | model = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, |
| | | desc = S("Element Straight Double")}, |
| | | { suffix = "technic_cnc_element_straight_double", |
| | | model = {-0.3, -0.5, -0.5, 0.3, 0.5, 0.5}, |
| | | desc = S("Element Straight Double") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_end", |
| | | model = {-0.3, -0.5, -0.3, 0.3, 0, 0.5}, |
| | | desc = S("Element End")}, |
| | | { suffix = "technic_cnc_element_end", |
| | | model = {-0.3, -0.5, -0.3, 0.3, 0, 0.5}, |
| | | desc = S("Element End") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_cross", |
| | | model = { |
| | | {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 = S("Element Cross")}, |
| | | { suffix = "technic_cnc_element_cross", |
| | | model = { |
| | | {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 = S("Element Cross") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_t", |
| | | model = { |
| | | {-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 = S("Element T")}, |
| | | { suffix = "technic_cnc_element_t", |
| | | model = { |
| | | {-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 = S("Element T") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_edge", |
| | | model = { |
| | | {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, |
| | | {-0.5, -0.5, -0.3, -0.3, 0, 0.3}}, |
| | | desc = S("Element Edge")}, |
| | | { suffix = "technic_cnc_element_edge", |
| | | model = { |
| | | {-0.3, -0.5, -0.5, 0.3, 0, 0.3}, |
| | | {-0.5, -0.5, -0.3, -0.3, 0, 0.3}}, |
| | | desc = S("Element Edge") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_element_straight", |
| | | model = {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, |
| | | desc = S("Element Straight")}, |
| | | { suffix = "technic_cnc_element_straight", |
| | | model = {-0.3, -0.5, -0.5, 0.3, 0, 0.5}, |
| | | desc = S("Element Straight") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_sphere", |
| | | model = "technic_oblatesphere.obj", |
| | | desc = S("Oblate Sphere")}, |
| | | { suffix = "technic_cnc_oblate_spheroid", |
| | | model = "technic_oblate_spheroid.obj", |
| | | desc = S("Oblate spheroid"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { -6/16, 4/16, -6/16, 6/16, 8/16, 6/16 }, |
| | | { -8/16, -4/16, -8/16, 8/16, 4/16, 8/16 }, |
| | | { -6/16, -8/16, -6/16, 6/16, -4/16, 6/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_cylinder_horizontal", |
| | | model = "technic_cylinder_horizontal.obj", |
| | | desc = S("Horizontal Cylinder")}, |
| | | { suffix = "technic_cnc_sphere", |
| | | model = "technic_sphere.obj", |
| | | desc = S("Sphere") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_cylinder", |
| | | model = "technic_cylinder.obj", |
| | | desc = S("Cylinder")}, |
| | | { suffix = "technic_cnc_cylinder_horizontal", |
| | | model = "technic_cylinder_horizontal.obj", |
| | | desc = S("Horizontal Cylinder") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_twocurvededge", |
| | | model = "technic_two_curved_edge.obj", |
| | | desc = S("Two Curved Edge/Corner Block")}, |
| | | { suffix = "technic_cnc_cylinder", |
| | | model = "technic_cylinder.obj", |
| | | desc = S("Cylinder") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_onecurvededge", |
| | | model = "technic_one_curved_edge.obj", |
| | | desc = S("One Curved Edge Block")}, |
| | | { suffix = "technic_cnc_twocurvededge", |
| | | model = "technic_two_curved_edge.obj", |
| | | desc = S("Two Curved Edge/Corner Block") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_spike", |
| | | model = "technic_pyramid_spike.obj", |
| | | desc = S("Spike")}, |
| | | { suffix = "technic_cnc_onecurvededge", |
| | | model = "technic_one_curved_edge.obj", |
| | | desc = S("One Curved Edge Block") |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_pyramid", |
| | | model = "technic_pyramid.obj", |
| | | desc = S("Pyramid")}, |
| | | { suffix = "technic_cnc_spike", |
| | | model = "technic_pyramid_spike.obj", |
| | | desc = S("Spike"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { -2/16, 4/16, -2/16, 2/16, 8/16, 2/16 }, |
| | | { -4/16, 0, -4/16, 4/16, 4/16, 4/16 }, |
| | | { -6/16, -4/16, -6/16, 6/16, 0, 6/16 }, |
| | | { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_slope_inner_edge_upsdown", |
| | | model = "technic_innercorner_upsdown.obj", |
| | | desc = S("Slope Upside Down Inner Edge/Corner")}, |
| | | { suffix = "technic_cnc_pyramid", |
| | | model = "technic_pyramid.obj", |
| | | desc = S("Pyramid"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { -2/16, -2/16, -2/16, 2/16, 0, 2/16 }, |
| | | { -4/16, -4/16, -4/16, 4/16, -2/16, 4/16 }, |
| | | { -6/16, -6/16, -6/16, 6/16, -4/16, 6/16 }, |
| | | { -8/16, -8/16, -8/16, 8/16, -6/16, 8/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_slope_edge_upsdown", |
| | | model = "technic_outercorner_upsdown.obj", |
| | | desc = S("Slope Upside Down Outer Edge/Corner")}, |
| | | { suffix = "technic_cnc_slope_inner_edge_upsdown", |
| | | model = "technic_innercorner_upsdown.obj", |
| | | desc = S("Slope Upside Down Inner Edge/Corner"), |
| | | sbox = { |
| | | type = "fixed", |
| | | fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } |
| | | }, |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { 0.25, -0.25, -0.5, 0.5, -0.5, 0.5 }, |
| | | { -0.5, -0.25, 0.25, 0.5, -0.5, 0.5 }, |
| | | { 0, 0, -0.5, 0.5, -0.25, 0.5 }, |
| | | { -0.5, 0, 0, 0.5, -0.25, 0.5 }, |
| | | { -0.25, 0.25, -0.5, 0.5, 0, -0.25 }, |
| | | { -0.5, 0.25, -0.25, 0.5, 0, 0.5 }, |
| | | { -0.5, 0.5, -0.5, 0.5, 0.25, 0.5 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_slope_inner_edge", |
| | | model = "technic_innercorner.obj", |
| | | desc = S("Slope Inner Edge/Corner")}, |
| | | { suffix = "technic_cnc_slope_edge_upsdown", |
| | | model = "technic_outercorner_upsdown.obj", |
| | | desc = S("Slope Upside Down Outer Edge/Corner"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 }, |
| | | { -4/16, 4/16, -4/16, 8/16, 0, 8/16 }, |
| | | { 0, 0, 0, 8/16, -4/16, 8/16 }, |
| | | { 4/16, -4/16, 4/16, 8/16, -8/16, 8/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_slope_edge", |
| | | model = "technic_outercorner.obj", |
| | | desc = S("Slope Outer Edge/Corner")}, |
| | | { suffix = "technic_cnc_slope_inner_edge", |
| | | model = "technic_innercorner.obj", |
| | | desc = S("Slope Inner Edge/Corner"), |
| | | sbox = { |
| | | type = "fixed", |
| | | fixed = { -0.5, -0.5, -0.5, 0.5, 0.5, 0.5 } |
| | | }, |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { -0.5, -0.5, -0.5, 0.5, -0.25, 0.5 }, |
| | | { -0.5, -0.25, -0.25, 0.5, 0, 0.5 }, |
| | | { -0.25, -0.25, -0.5, 0.5, 0, -0.25 }, |
| | | { -0.5, 0, 0, 0.5, 0.25, 0.5 }, |
| | | { 0, 0, -0.5, 0.5, 0.25, 0.5 }, |
| | | { -0.5, 0.25, 0.25, 0.5, 0.5, 0.5 }, |
| | | { 0.25, 0.25, -0.5, 0.5, 0.5, 0.5 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_slope_upsdown", |
| | | model = "technic_slope_upsdown.obj", |
| | | desc = S("Slope Upside Down")}, |
| | | { suffix = "technic_cnc_slope_edge", |
| | | model = "technic_outercorner.obj", |
| | | desc = S("Slope Outer Edge/Corner"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { 4/16, 4/16, 4/16, 8/16, 8/16, 8/16 }, |
| | | { 0, 0, 0, 8/16, 4/16, 8/16 }, |
| | | { -4/16, -4/16, -4/16, 8/16, 0, 8/16 }, |
| | | { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_slope_lying", |
| | | model = "technic_slope_horizontal.obj", |
| | | desc = S("Slope Lying")}, |
| | | { suffix = "technic_cnc_slope_upsdown", |
| | | model = "technic_slope_upsdown.obj", |
| | | desc = S("Slope Upside Down"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { -8/16, 8/16, -8/16, 8/16, 4/16, 8/16 }, |
| | | { -8/16, 4/16, -4/16, 8/16, 0, 8/16 }, |
| | | { -8/16, 0, 0, 8/16, -4/16, 8/16 }, |
| | | { -8/16, -4/16, 4/16, 8/16, -8/16, 8/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | {suffix = "technic_cnc_slope", |
| | | model = "technic_slope.obj", |
| | | desc = S("Slope")}, |
| | | { suffix = "technic_cnc_slope_lying", |
| | | model = "technic_slope_horizontal.obj", |
| | | desc = S("Slope Lying"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { 4/16, -8/16, 4/16, 8/16, 8/16, 8/16 }, |
| | | { 0, -8/16, 0, 4/16, 8/16, 8/16 }, |
| | | { -4/16, -8/16, -4/16, 0, 8/16, 8/16 }, |
| | | { -8/16, -8/16, -8/16, -4/16, 8/16, 8/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | { suffix = "technic_cnc_slope", |
| | | model = "technic_slope.obj", |
| | | desc = S("Slope"), |
| | | cbox = { |
| | | type = "fixed", |
| | | fixed = { |
| | | { -8/16, 4/16, 4/16, 8/16, 8/16, 8/16 }, |
| | | { -8/16, 0, 0, 8/16, 4/16, 8/16 }, |
| | | { -8/16, -4/16, -4/16, 8/16, 0, 8/16 }, |
| | | { -8/16, -8/16, -8/16, 8/16, -4/16, 8/16 } |
| | | } |
| | | } |
| | | }, |
| | | |
| | | } |
| | | |
| | | -- Allow disabling certain programs for some node. Default is allowing all types for all nodes |
| | | technic.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", |
| | | ["default:dirt"] = {"technic_cnc_oblate_spheroid", "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.register_program(recipeitem, suffix, model, groups, images, description) |
| | | function technic.cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox) |
| | | |
| | | local dtype |
| | | local nodeboxdef |
| | |
| | | meshdef = model |
| | | end |
| | | |
| | | if cbox and not sbox then sbox = cbox end |
| | | |
| | | minetest.register_node(":"..recipeitem.."_"..suffix, { |
| | | description = description, |
| | | drawtype = dtype, |
| | |
| | | paramtype2 = "facedir", |
| | | walkable = true, |
| | | groups = groups, |
| | | selection_box = sbox, |
| | | collision_box = cbox |
| | | }) |
| | | end |
| | | |
| | |
| | | end |
| | | -- Create the node if it passes the test |
| | | if do_register then |
| | | technic.cnc.register_program(recipeitem, data.suffix, data.model, groups, images, description.." "..data.desc) |
| | | technic.cnc.register_program(recipeitem, data.suffix, data.model, |
| | | groups, images, description.." "..data.desc, data.cbox, data.sbox) |
| | | end |
| | | end |
| | | end |
| | |
| | | |
| | | -- REGISTER NEW TECHNIC_CNC_API's PART 2: technic.cnc..register_element_end(subname, recipeitem, groups, images, desc_element_xyz) |
| | | ----------------------------------------------------------------------------------------------------------------------- |
| | | function technic.cnc.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) |
| | | function technic.cnc.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_spheroid, desc_element_straight, desc_element_edge, desc_element_t, desc_element_cross, desc_element_end) |
| | | |
| | | technic.cnc.register_slope(recipeitem, groups, images, desc_slope) |
| | | technic.cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying) |
| | |
| | | technic.cnc.register_twocurvededge(recipeitem, groups, images, desc_twocurvededge) |
| | | technic.cnc.register_cylinder(recipeitem, groups, images, desc_cylinder) |
| | | technic.cnc.register_cylinder_horizontal(recipeitem, groups, images, desc_cylinder_horizontal) |
| | | technic.cnc.register_sphere(recipeitem, groups, images, desc_sphere) |
| | | technic.cnc.register_spheroid(recipeitem, groups, images, desc_spheroid) |
| | | technic.cnc.register_element_straight(recipeitem, groups, images, desc_element_straight) |
| | | technic.cnc.register_element_edge(recipeitem, groups, images, desc_element_edge) |
| | | technic.cnc.register_element_t(recipeitem, groups, images, desc_element_t) |