From 9f373d65281836b1bbfb0069707a8eaa1aeb0c53 Mon Sep 17 00:00:00 2001
From: SmallJoker <mk939@ymail.com>
Date: Sat, 03 Aug 2024 08:25:13 +0200
Subject: [PATCH] technic_cnc: Add group 'cracky'

---
 technic_cnc/cnc_api.lua |   89 ++++++++++++++++++++++----------------------
 1 files changed, 45 insertions(+), 44 deletions(-)

diff --git a/technic_cnc/cnc_api.lua b/technic_cnc/cnc_api.lua
index c801fbc..41fbe1b 100644
--- a/technic_cnc/cnc_api.lua
+++ b/technic_cnc/cnc_api.lua
@@ -1,16 +1,15 @@
 -- API for the technic CNC machine
 -- Again code is adapted from the NonCubic Blocks MOD v1.4 by yves_de_beck
 
-local S = technic.getter
-
-technic.cnc = {}
+local S = technic_cnc.getter
+local ALPHA_CLIP = minetest.features.use_texture_alpha_string_modes and "clip" or true
 
 -- REGISTER NONCUBIC FORMS, CREATE MODELS AND RECIPES:
 ------------------------------------------------------
 
 -- Define slope boxes for the various nodes
 -------------------------------------------
-technic.cnc.programs = {
+technic_cnc.programs = {
 	{ suffix  = "technic_cnc_stick",
 		model = {-0.15, -0.5, -0.15, 0.15, 0.5, 0.15},
 		desc  = S("Stick")
@@ -239,7 +238,7 @@
 			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 },				
+				{     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 }
 			}
@@ -259,11 +258,11 @@
 			}
 		}
 	},
-	
+
 }
 
 -- Allow disabling certain programs for some node. Default is allowing all types for all nodes
-technic.cnc.programs_disable = {
+technic_cnc.programs_disable = {
 	-- ["default:brick"] = {"technic_cnc_stick"}, -- Example: Disallow the stick for brick
 	-- ...
 	["default:dirt"] = {"technic_cnc_oblate_spheroid", "technic_cnc_slope_upsdown", "technic_cnc_edge",
@@ -273,7 +272,7 @@
 }
 
 -- Generic function for registering all the different node types
-function technic.cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox)
+function technic_cnc.register_program(recipeitem, suffix, model, groups, images, description, cbox, sbox)
 
 	local dtype
 	local nodeboxdef
@@ -300,6 +299,7 @@
 		tiles         = images,
 		paramtype     = "light",
 		paramtype2    = "facedir",
+		use_texture_alpha = ALPHA_CLIP,
 		walkable      = true,
 		groups        = groups,
 		selection_box = sbox,
@@ -308,12 +308,12 @@
 end
 
 -- function to iterate over all the programs the CNC machine knows
-function technic.cnc.register_all(recipeitem, groups, images, description)
-	for _, data in ipairs(technic.cnc.programs) do
+function technic_cnc.register_all(recipeitem, groups, images, description)
+	for _, data in ipairs(technic_cnc.programs) do
 		-- Disable node creation for disabled node types for some material
 		local do_register = true
-		if technic.cnc.programs_disable[recipeitem] ~= nil then
-			for __, disable in ipairs(technic.cnc.programs_disable[recipeitem]) do
+		if technic_cnc.programs_disable[recipeitem] ~= nil then
+			for __, disable in ipairs(technic_cnc.programs_disable[recipeitem]) do
 				if disable == data.suffix then
 					do_register = false
 				end
@@ -321,49 +321,50 @@
 		end
 		-- Create the node if it passes the test
 		if do_register then
-			technic.cnc.register_program(recipeitem, data.suffix, data.model,
+			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)
+-- 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_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_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown)
-         technic.cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge)
-         technic.cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge)
-         technic.cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge)
-         technic.cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
-         technic.cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
-         technic.cnc.register_spike(recipeitem, groups, images, desc_spike)
-         technic.cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
-         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_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)
-         technic.cnc.register_element_cross(recipeitem, groups, images, desc_element_cross)
-         technic.cnc.register_element_end(recipeitem, groups, images, 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)
+		-- TODO: Remove this evil sorcery
+         technic_cnc.register_slope(recipeitem, groups, images, desc_slope)
+         technic_cnc.register_slope_lying(recipeitem, groups, images, desc_slope_lying)
+         technic_cnc.register_slope_upsdown(recipeitem, groups, images, desc_slope_upsdown)
+         technic_cnc.register_slope_edge(recipeitem, groups, images, desc_slope_edge)
+         technic_cnc.register_slope_inner_edge(recipeitem, groups, images, desc_slope_inner_edge)
+         technic_cnc.register_slope_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_edge)
+         technic_cnc.register_slope_inner_edge_upsdown(recipeitem, groups, images, desc_slope_upsdwn_inner_edge)
+         technic_cnc.register_pyramid(recipeitem, groups, images, desc_pyramid)
+         technic_cnc.register_spike(recipeitem, groups, images, desc_spike)
+         technic_cnc.register_onecurvededge(recipeitem, groups, images, desc_onecurvededge)
+         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_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)
+         technic_cnc.register_element_cross(recipeitem, groups, images, desc_element_cross)
+         technic_cnc.register_element_end(recipeitem, groups, images, desc_element_end)
 end
 
 -- REGISTER STICKS: noncubic.register_xyz(recipeitem, groups, images, desc_element_xyz)
 ------------------------------------------------------------------------------------------------------------
-function technic.cnc.register_stick_etc(recipeitem, groups, images, desc_stick)
-         technic.cnc.register_stick(recipeitem, groups, images, desc_stick)
+function technic_cnc.register_stick_etc(recipeitem, groups, images, desc_stick)
+		-- TODO: Remove this evil sorcery
+         technic_cnc.register_stick(recipeitem, groups, images, desc_stick)
 end
 
-function technic.cnc.register_elements(recipeitem, groups, images, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double)
-         technic.cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double)
-         technic.cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double)
-         technic.cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double)
-         technic.cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double)
-         technic.cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double)
+function technic_cnc.register_elements(recipeitem, groups, images, desc_element_straight_double, desc_element_edge_double, desc_element_t_double, desc_element_cross_double, desc_element_end_double)
+		-- TODO: Remove this evil sorcery
+         technic_cnc.register_element_straight_double(recipeitem, groups, images, desc_element_straight_double)
+         technic_cnc.register_element_edge_double(recipeitem, groups, images, desc_element_edge_double)
+         technic_cnc.register_element_t_double(recipeitem, groups, images, desc_element_t_double)
+         technic_cnc.register_element_cross_double(recipeitem, groups, images, desc_element_cross_double)
+         technic_cnc.register_element_end_double(recipeitem, groups, images, desc_element_end_double)
 end
 

--
Gitblit v1.8.0