From 43acec290067f9aca534647d46ba1f13cfeb377a Mon Sep 17 00:00:00 2001
From: TechDudie <73961295+TechDudie@users.noreply.github.com>
Date: Tue, 09 Feb 2021 19:03:55 +0100
Subject: [PATCH] Add Rubber Goo as replacement for the grinder (#578)

---
 technic/machines/HV/nuclear_reactor.lua |   40 +++++++++++++++++++++++++---------------
 1 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/technic/machines/HV/nuclear_reactor.lua b/technic/machines/HV/nuclear_reactor.lua
index c6ed4df..abaeb74 100644
--- a/technic/machines/HV/nuclear_reactor.lua
+++ b/technic/machines/HV/nuclear_reactor.lua
@@ -217,24 +217,33 @@
 
 
 local function start_reactor(pos, meta)
+	local correct_fuel_count = 6
+	local msg_fuel_missing = "Error: You need to insert " .. correct_fuel_count .. " pieces of Uranium Fuel."
+
 	if minetest.get_node(pos).name ~= "technic:hv_nuclear_reactor_core" then
-		return false
+		return msg_fuel_missing
 	end
 	local inv = meta:get_inventory()
 	if inv:is_empty("src") then
-		return false
+		return msg_fuel_missing
 	end
 	local src_list = inv:get_list("src")
-	local correct_fuel_count = 0
+	local fuel_count = 0
 	for _, src_stack in pairs(src_list) do
 		if src_stack and src_stack:get_name() == fuel_type then
-			correct_fuel_count = correct_fuel_count + 1
+			fuel_count = fuel_count + 1
 		end
 	end
-	-- Check that the reactor is complete and has the correct fuel
-	if correct_fuel_count ~= 6 or reactor_structure_badness(pos) ~= 0 then
-		return false
+	-- Check that the has the correct fuel
+	if fuel_count ~= correct_fuel_count then
+		return msg_fuel_missing
 	end
+
+	-- Check that the reactor is complete
+	if reactor_structure_badness(pos) ~= 0 then
+		return "Error: The power plant seems to be built incorrectly."
+	end
+
 	meta:set_int("burn_time", 1)
 	technic.swap_node(pos, "technic:hv_nuclear_reactor_core_active")
 	meta:set_int("HV_EU_supply", power_supply)
@@ -242,7 +251,8 @@
 		src_stack:take_item()
 		inv:set_stack("src", idx, src_stack)
 	end
-	return true
+
+	return nil
 end
 
 
@@ -281,7 +291,7 @@
 					"fuel used", 6, true)
 		end
 		if meta:get_string("autostart") == "true" then
-			if start_reactor(pos, meta) then
+			if not start_reactor(pos, meta) then
 				return
 			end
 		end
@@ -313,11 +323,11 @@
 		meta:set_string("remote_channel", fields.remote_channel)
 	end
 	if fields.start then
-		local b = start_reactor(pos, meta)
-		if b then
+		local start_error_msg = start_reactor(pos, meta)
+		if not start_error_msg then
 			minetest.chat_send_player(player_name, "Start successful")
 		else
-			minetest.chat_send_player(player_name, "Error")
+			minetest.chat_send_player(player_name, start_error_msg)
 		end
 	end
 	if fields.autostart then
@@ -385,11 +395,11 @@
 			melt_down_reactor(pos)
 		end
 	elseif msg.command == "start" then
-		local b = start_reactor(pos, meta)
-		if b then
+		local start_error_msg = start_reactor(pos, meta)
+		if not start_error_msg then
 			digiline_remote.send_to_node(pos, channel, "Start successful", 6, true)
 		else
-			digiline_remote.send_to_node(pos, channel, "Error", 6, true)
+			digiline_remote.send_to_node(pos, channel, start_error_msg, 6, true)
 		end
 	end
 end

--
Gitblit v1.8.0