From d732c8dfbd818e9b0b4a04620af40399b35c74ab Mon Sep 17 00:00:00 2001
From: est31 <MTest31@outlook.com>
Date: Thu, 18 Jun 2015 04:09:27 +0200
Subject: Add listring functionality

Add shift-click functionality
---
 technic/machines/HV/nuclear_reactor.lua    |  3 ++-
 technic/machines/LV/cnc.lua                |  5 ++++-
 technic/machines/LV/coal_alloy_furnace.lua | 16 ++++++++++++++--
 technic/machines/MV/tool_workshop.lua      |  9 ++++++++-
 technic/machines/other/injector.lua        |  3 ++-
 technic/machines/register/battery_box.lua  | 14 +++++++++++---
 technic/machines/register/generator.lua    |  9 ++++++---
 technic/machines/register/machine_base.lua | 12 ++++++++++--
 technic_chests/register.lua                |  3 ++-
 9 files changed, 59 insertions(+), 15 deletions(-)

diff --git a/technic/machines/HV/nuclear_reactor.lua b/technic/machines/HV/nuclear_reactor.lua
index 8ba0cb1..a9a13c2 100644
--- a/technic/machines/HV/nuclear_reactor.lua
+++ b/technic/machines/HV/nuclear_reactor.lua
@@ -32,7 +32,8 @@ local generator_formspec =
 	"invsize[8,9;]"..
 	"label[0,0;"..S("Nuclear Reactor Rod Compartment").."]"..
 	"list[current_name;src;2,1;3,2;]"..
-	"list[current_player;main;0,5;8,4;]"
+	"list[current_player;main;0,5;8,4;]"..
+	"listring[]"
 
 -- "Boxy sphere"
 local nodebox = {
diff --git a/technic/machines/LV/cnc.lua b/technic/machines/LV/cnc.lua
index 96df916..17d23d8 100644
--- a/technic/machines/LV/cnc.lua
+++ b/technic/machines/LV/cnc.lua
@@ -73,7 +73,10 @@ local cnc_formspec =
 	"label[4, 5.5;"..S("Out:").."]"..
 	"list[current_name;dst;5,5.5;4,1;]"..
 
-	"list[current_player;main;0,7;8,4;]"
+	"listring[current_name;dst]"..
+	"listring[current_player;main]"..
+	"listring[current_name;src]"..
+	"listring[current_player;main]"
 
 local size = 1;
 
diff --git a/technic/machines/LV/coal_alloy_furnace.lua b/technic/machines/LV/coal_alloy_furnace.lua
index 91450d8..58af679 100644
--- a/technic/machines/LV/coal_alloy_furnace.lua
+++ b/technic/machines/LV/coal_alloy_furnace.lua
@@ -20,7 +20,13 @@ local formspec =
 	"list[current_name;fuel;2,3;1,1;]"..
 	"list[current_name;src;2,1;2,1;]"..
 	"list[current_name;dst;5,1;2,2;]"..
-	"list[current_player;main;0,5;8,4;]"
+	"list[current_player;main;0,5;8,4;]"..
+	"listring[current_name;dst]"..
+	"listring[current_player;main]"..
+	"listring[current_name;src]"..
+	"listring[current_player;main]"..
+	"listring[current_name;fuel]"..
+	"listring[current_player;main]"
 
 minetest.register_node("technic:coal_alloy_furnace", {
 	description = machine_name,
@@ -125,7 +131,13 @@ minetest.register_abm({
 					"list[current_name;fuel;2,3;1,1;]"..
 					"list[current_name;src;2,1;2,1;]"..
 					"list[current_name;dst;5,1;2,2;]"..
-					"list[current_player;main;0,5;8,4;]")
+					"list[current_player;main;0,5;8,4;]"..
+					"listring[current_name;dst]"..
+					"listring[current_player;main]"..
+					"listring[current_name;src]"..
+					"listring[current_player;main]"..
+					"listring[current_name;fuel]"..
+					"listring[current_player;main]")
 			return
 		end
 
diff --git a/technic/machines/MV/tool_workshop.lua b/technic/machines/MV/tool_workshop.lua
index f94a88a..cc54001 100644
--- a/technic/machines/MV/tool_workshop.lua
+++ b/technic/machines/MV/tool_workshop.lua
@@ -23,7 +23,14 @@ local workshop_formspec =
 	"list[current_name;upgrade1;1,3;1,1;]"..
 	"list[current_name;upgrade2;2,3;1,1;]"..
 	"label[1,4;"..S("Upgrade Slots").."]"..
-	"list[current_player;main;0,5;8,4;]"
+	"list[current_player;main;0,5;8,4;]"..
+	"listring[current_player;main]"..
+	"listring[current_name;src]"..
+	"listring[current_player;main]"..
+	"listring[current_name;upgrade1]"..
+	"listring[current_player;main]"..
+	"listring[current_name;upgrade2]"..
+	"listring[current_player;main]"
 
 local run = function(pos, node)
 	local meta         = minetest.get_meta(pos)
diff --git a/technic/machines/other/injector.lua b/technic/machines/other/injector.lua
index e68760c..ec8966c 100644
--- a/technic/machines/other/injector.lua
+++ b/technic/machines/other/injector.lua
@@ -58,7 +58,8 @@ local function set_injector_formspec(meta)
 				"button[0,1;2,1;mode_item;"..S("Stackwise").."]" or
 				"button[0,1;2,1;mode_stack;"..S("Itemwise").."]")..
 			"list[current_name;main;0,2;8,2;]"..
-			"list[current_player;main;0,5;8,4;]")
+			"list[current_player;main;0,5;8,4;]"..
+			"listring[]")
 end
 
 minetest.register_node("technic:injector", {
diff --git a/technic/machines/register/battery_box.lua b/technic/machines/register/battery_box.lua
index 263b647..82edca0 100644
--- a/technic/machines/register/battery_box.lua
+++ b/technic/machines/register/battery_box.lua
@@ -71,13 +71,21 @@ function technic.register_battery_box(data)
 		"label[3,0;"..S("Charge").."]"..
 		"label[5,0;"..S("Discharge").."]"..
 		"label[1,3;"..S("Power level").."]"..
-		"list[current_player;main;0,5;8,4;]"
-	
+		"list[current_player;main;0,5;8,4;]"..
+		"listring[current_name;dst]"..
+		"listring[current_player;main]"..
+		"listring[current_name;src]"..
+		"listring[current_player;main]"
+
 	if data.upgrade then
 		formspec = formspec..
 			"list[current_name;upgrade1;3.5,3;1,1;]"..
 			"list[current_name;upgrade2;4.5,3;1,1;]"..
-			"label[3.5,4;"..S("Upgrade Slots").."]"
+			"label[3.5,4;"..S("Upgrade Slots").."]"..
+			"listring[current_name;upgrade1]"..
+			"listring[current_player;main]"..
+			"listring[current_name;upgrade2]"..
+			"listring[current_player;main]"
 	end
 
 	local run = function(pos, node)
diff --git a/technic/machines/register/generator.lua b/technic/machines/register/generator.lua
index 300b852..31c1cef 100644
--- a/technic/machines/register/generator.lua
+++ b/technic/machines/register/generator.lua
@@ -32,7 +32,8 @@ function technic.register_generator(data)
 		"label[0,0;"..S("Fuel-Fired %s Generator"):format(tier).."]"..
 		"list[current_name;src;3,1;1,1;]"..
 		"image[4,1;1,1;default_furnace_fire_bg.png]"..
-		"list[current_player;main;0,5;8,4;]"
+		"list[current_player;main;0,5;8,4;]"..
+		"listring[]"
 	
 	local desc = S("Fuel-Fired %s Generator"):format(tier)
 	
@@ -81,7 +82,8 @@ function technic.register_generator(data)
 				"list[current_name;src;3, 1;1, 1;]"..
 				"image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:"..
 				(percent)..":default_furnace_fire_fg.png]"..
-				"list[current_player;main;0, 5;8, 4;]")
+				"list[current_player;main;0, 5;8, 4;]"..
+				"listring[]")
 	end
 	
 	minetest.register_node("technic:"..ltier.."_generator", {
@@ -159,7 +161,8 @@ function technic.register_generator(data)
 				"list[current_name;src;3, 1;1, 1;]"..
 				"image[4, 1;1, 1;default_furnace_fire_bg.png^[lowpart:"..
 				(percent)..":default_furnace_fire_fg.png]"..
-				"list[current_player;main;0, 5;8, 4;]")
+				"list[current_player;main;0, 5;8, 4;]"..
+				"listring[]")
 			return true
 		end,
 	})
diff --git a/technic/machines/register/machine_base.lua b/technic/machines/register/machine_base.lua
index 8492643..f971c5a 100644
--- a/technic/machines/register/machine_base.lua
+++ b/technic/machines/register/machine_base.lua
@@ -42,12 +42,20 @@ function technic.register_base_machine(data)
 		"list[current_name;src;"..(4-input_size)..",1;"..input_size..",1;]"..
 		"list[current_name;dst;5,1;2,2;]"..
 		"list[current_player;main;0,5;8,4;]"..
-		"label[0,0;"..machine_desc:format(tier).."]"
+		"label[0,0;"..machine_desc:format(tier).."]"..
+		"listring[current_name;dst]"..
+		"listring[current_player;main]"..
+		"listring[current_name;src]"..
+		"listring[current_player;main]"
 	if data.upgrade then
 		formspec = formspec..
 			"list[current_name;upgrade1;1,3;1,1;]"..
 			"list[current_name;upgrade2;2,3;1,1;]"..
-			"label[1,4;"..S("Upgrade Slots").."]"
+			"label[1,4;"..S("Upgrade Slots").."]"..
+			"listring[current_name;upgrade1]"..
+			"listring[current_player;main]"..
+			"listring[current_name;upgrade2]"..
+			"listring[current_player;main]"
 	end
 
 	local run = function(pos, node)
diff --git a/technic_chests/register.lua b/technic_chests/register.lua
index dcd3fb3..25e4cde 100644
--- a/technic_chests/register.lua
+++ b/technic_chests/register.lua
@@ -209,7 +209,8 @@ function technic.chests:definition(name, data)
 			"list[current_player;main;"..data.loleft..","..data.lotop..";8,4;]"..
 			"background[-0.19,-0.25;"..(data.ovwidth+0.4)..","..(data.ovheight+0.75)..";technic_chest_form_bg.png]"..
 			"background["..data.hileft..",1;"..data.width..","..data.height..";technic_"..lname.."_chest_inventory.png]"..
-			"background["..data.loleft..","..data.lotop..";8,4;technic_main_inventory.png]"
+			"background["..data.loleft..","..data.lotop..";8,4;technic_main_inventory.png]"..
+			"listring[]"
 	if data.sort then
 		data.base_formspec = data.base_formspec.."button["..data.hileft..","..(data.height+1.1)..";1,0.8;sort;"..S("Sort").."]"
 	end
-- 
cgit v1.2.3