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.lua |   42 +++++++++++++++++++++---------------------
 1 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/technic_cnc/cnc.lua b/technic_cnc/cnc.lua
index bc277d1..c032fcf 100644
--- a/technic_cnc/cnc.lua
+++ b/technic_cnc/cnc.lua
@@ -13,7 +13,7 @@
 local allow_metadata_inventory_take
 local allow_metadata_inventory_move
 local can_dig
-local voltage = ""
+local desc_tr = S("CNC Machine")
 
 if technic_cnc.use_technic then
 	minetest.register_craft({
@@ -29,8 +29,7 @@
 	allow_metadata_inventory_take = technic.machine_inventory_take
 	allow_metadata_inventory_move = technic.machine_inventory_move
 	can_dig = technic.machine_can_dig
-	voltage = "LV "
-
+	desc_tr = S("@1 CNC Machine", S("LV"))
 else
 	minetest.register_craft({
 		output = 'technic:cnc',
@@ -60,7 +59,7 @@
 		if minetest.is_protected(pos, player:get_player_name()) then
 			return 0
 		end
-		return stack:get_count()
+		return count
 	end
 
 	can_dig = function(pos, player)
@@ -73,7 +72,6 @@
 	end
 end
 
-local shape = {}
 local onesize_products = {
 	slope                    = 2,
 	slope_edge               = 1,
@@ -93,7 +91,7 @@
 	twocurvededge            = 1,
 }
 local twosize_products = {
-	element_straight         = 4,
+	element_straight         = 2,
 	element_end              = 2,
 	element_cross            = 1,
 	element_t                = 1,
@@ -132,9 +130,9 @@
 	"image_button[5,4;1,1;technic_cnc_element_t.png;element_t; ]"..
 	"image_button[6,4;1,1;technic_cnc_element_edge.png;element_edge; ]"..
 
-	"label[0, 5.5;"..S("In:").."]"..
+	"label[0, 5;"..S("In:").."]"..
 	"list[current_name;src;0.5,5.5;1,1;]"..
-	"label[4, 5.5;"..S("Out:").."]"..
+	"label[4, 5;"..S("Out:").."]"..
 	"list[current_name;dst;5,5.5;4,1;]"..
 
 	"list[current_player;main;0,7;8,4;]"..
@@ -143,32 +141,34 @@
 	"listring[current_name;src]"..
 	"listring[current_player;main]"
 
-local size = 1;
-
 -- 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 function form_handler(pos, formname, fields, sender)
+	local meta       = minetest.get_meta(pos)
+
 	-- REGISTER MILLING PROGRAMS AND OUTPUTS:
 	------------------------------------------
 	-- Program for half/full size
 	if fields["full"] then
-		size = 1
+		meta:set_int("size", 1)
 		return
 	end
 
 	if fields["half"] then
-		size = 2
+		meta:set_int("size", 2)
 		return
 	end
 
 	-- Resolve the node name and the number of items to make
-	local meta       = minetest.get_meta(pos)
 	local inv        = meta:get_inventory()
 	local inputstack = inv:get_stack("src", 1)
 	local inputname  = inputstack:get_name()
-	local multiplier = 0
+	local size       = meta:get_int("size")
+	if size < 1 then size = 1 end
+
 	for k, _ in pairs(fields) do
 		-- Set a multipier for the half/full size capable blocks
+		local multiplier
 		if twosize_products[k] ~= nil then
 			multiplier = size * twosize_products[k]
 		else
@@ -212,7 +212,7 @@
 	local meta         = minetest.get_meta(pos)
 	local inv          = meta:get_inventory()
 	local eu_input     = meta:get_int("LV_EU_input")
-	local machine_name = S("%sCNC Machine"):format(voltage)
+	local machine_name = desc_tr
 	local machine_node = "technic:cnc"
 	local demand       = 450
 
@@ -221,7 +221,7 @@
 	   (not minetest.registered_nodes[result]) or
 	   (not inv:room_for_item("dst", result)) then
 		technic.swap_node(pos, machine_node)
-		meta:set_string("infotext", S("%s Idle"):format(machine_name))
+		meta:set_string("infotext", S("@1 Idle", machine_name))
 		meta:set_string("cnc_product", "")
 		meta:set_int("LV_EU_demand", 0)
 		return
@@ -229,10 +229,10 @@
 
 	if eu_input < demand then
 		technic.swap_node(pos, machine_node)
-		meta:set_string("infotext", S("%s Unpowered"):format(machine_name))
+		meta:set_string("infotext", S("@1 Unpowered", machine_name))
 	elseif eu_input >= demand then
 		technic.swap_node(pos, machine_node.."_active")
-		meta:set_string("infotext", S("%s Active"):format(machine_name))
+		meta:set_string("infotext", S("@1 Active", machine_name))
 		meta:set_int("src_time", meta:get_int("src_time") + 1)
 		if meta:get_int("src_time") >= 3 then -- 3 ticks per output
 			meta:set_int("src_time", 0)
@@ -247,7 +247,7 @@
 
 -- The actual block inactive state
 minetest.register_node(":technic:cnc", {
-	description = S("%sCNC Machine"):format(voltage),
+	description = desc_tr,
 	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"},
 	groups = {cracky=2, technic_machine=1, technic_lv=1},
@@ -256,7 +256,7 @@
 	legacy_facedir_simple = true,
 	on_construct = function(pos)
 		local meta = minetest.get_meta(pos)
-		meta:set_string("infotext", S("%sCNC Machine"):format(voltage))
+		meta:set_string("infotext", desc_tr)
 		meta:set_float("technic_power_machine", 1)
 		meta:set_string("formspec", cnc_formspec)
 		local inv = meta:get_inventory()
@@ -275,7 +275,7 @@
 if technic_cnc.use_technic then
 
 	minetest.register_node(":technic:cnc_active", {
-		description = S("%sCNC Machine"):format(voltage),
+		description = desc_tr,
 		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"},
 		groups = {cracky=2, technic_machine=1, technic_lv=1, not_in_creative_inventory=1},

--
Gitblit v1.8.0