From 03bb4dab469ddc9e37f7412fa979a0829cb3c953 Mon Sep 17 00:00:00 2001
From: auouymous <5005204+auouymous@users.noreply.github.com>
Date: Fri, 11 Sep 2020 19:15:51 +0200
Subject: [PATCH] Protect self-contained injector formspec buttons (#568)

---
 technic_worldgen/nodes.lua |  144 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 116 insertions(+), 28 deletions(-)

diff --git a/technic_worldgen/nodes.lua b/technic_worldgen/nodes.lua
index 7b9d385..d4d3e4c 100644
--- a/technic_worldgen/nodes.lua
+++ b/technic_worldgen/nodes.lua
@@ -1,64 +1,85 @@
+
+local S = technic.worldgen.gettext
+
 minetest.register_node( ":technic:mineral_uranium", {
-	description = "Uranium Ore",
+	description = S("Uranium Ore"),
 	tiles = { "default_stone.png^technic_mineral_uranium.png" },
 	is_ground_content = true,
-	groups = {cracky=3},
+	groups = {cracky=3, radioactive=1},
 	sounds = default.node_sound_stone_defaults(),
-	drop = 'craft "technic:uranium" 1',
-}) 
+	drop = "technic:uranium_lump",
+})
 
 minetest.register_node( ":technic:mineral_chromium", {
-	description = "Chromium Ore",
+	description = S("Chromium Ore"),
 	tiles = { "default_stone.png^technic_mineral_chromium.png" },
 	is_ground_content = true,
 	groups = {cracky=3},
 	sounds = default.node_sound_stone_defaults(),
-	drop = 'craft "technic:chromium_lump" 1',
-}) 
+	drop = "technic:chromium_lump",
+})
 
 minetest.register_node( ":technic:mineral_zinc", {
-	description = "Zinc Ore",
-	tile_images = { "default_stone.png^technic_mineral_zinc.png" },
+	description = S("Zinc Ore"),
+	tiles = { "default_stone.png^technic_mineral_zinc.png" },
 	is_ground_content = true,
 	groups = {cracky=3},
 	sounds = default.node_sound_stone_defaults(),
-	drop = 'craft "technic:zinc_lump" 1',
+	drop = "technic:zinc_lump",
+})
+
+minetest.register_node( ":technic:mineral_lead", {
+	description = S("Lead Ore"),
+	tiles = { "default_stone.png^technic_mineral_lead.png" },
+	is_ground_content = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults(),
+	drop = "technic:lead_lump",
+})
+
+minetest.register_node( ":technic:mineral_sulfur", {
+	description = S("Sulfur Ore"),
+	tiles = { "default_stone.png^technic_mineral_sulfur.png" },
+	is_ground_content = true,
+	groups = {cracky=3},
+	sounds = default.node_sound_stone_defaults(),
+	drop = "technic:sulfur_lump",
 })
 
 minetest.register_node( ":technic:granite", {
-	description = "Granite",
+	description = S("Granite"),
 	tiles = { "technic_granite.png" },
 	is_ground_content = true,
-	groups = {cracky=3},
+	groups = {cracky=1},
 	sounds = default.node_sound_stone_defaults(),
-}) 
+})
 
 minetest.register_node( ":technic:marble", {
-	description = "Marble",
+	description = S("Marble"),
 	tiles = { "technic_marble.png" },
 	is_ground_content = true,
-	groups = {cracky=3},
+	groups = {cracky=3, marble=1},
 	sounds = default.node_sound_stone_defaults(),
-}) 
+})
 
 minetest.register_node( ":technic:marble_bricks", {
-	description = "Marble Bricks",
+	description = S("Marble Bricks"),
 	tiles = { "technic_marble_bricks.png" },
 	is_ground_content = true,
 	groups = {cracky=3},
 	sounds = default.node_sound_stone_defaults(),
-}) 
+})
 
 minetest.register_node(":technic:uranium_block", {
-	description = "Uranium Block",
+	description = S("Uranium Block"),
 	tiles = { "technic_uranium_block.png" },
 	is_ground_content = true,
-	groups = {cracky=1, level=2},
+	groups = {uranium_block=1, cracky=1, level=2, radioactive=2},
 	sounds = default.node_sound_stone_defaults()
 })
 
 minetest.register_node(":technic:chromium_block", {
-	description = "Chromium Block",
+	description = S("Chromium Block"),
 	tiles = { "technic_chromium_block.png" },
 	is_ground_content = true,
 	groups = {cracky=1, level=2},
@@ -66,24 +87,47 @@
 })
 
 minetest.register_node(":technic:zinc_block", {
-	description = "Zinc Block",
+	description = S("Zinc Block"),
 	tiles = { "technic_zinc_block.png" },
 	is_ground_content = true,
 	groups = {cracky=1, level=2},
 	sounds = default.node_sound_stone_defaults()
 })
 
-minetest.register_node(":technic:stainless_steel_block", {
-	description = "Stainless Steel Block",
-	tiles = { "technic_stainless_steel_block.png" },
+minetest.register_node(":technic:lead_block", {
+	description = S("Lead Block"),
+	tiles = { "technic_lead_block.png" },
 	is_ground_content = true,
 	groups = {cracky=1, level=2},
 	sounds = default.node_sound_stone_defaults()
 })
 
-minetest.register_node(":technic:brass_block", {
-	description = "Brass Block",
-	tiles = { "technic_brass_block.png" },
+minetest.register_alias("technic:wrought_iron_block", "default:steelblock")
+
+minetest.override_item("default:steelblock", {
+	description = S("Wrought Iron Block"),
+	tiles = { "technic_wrought_iron_block.png" },
+})
+
+minetest.register_node(":technic:cast_iron_block", {
+	description = S("Cast Iron Block"),
+	tiles = { "technic_cast_iron_block.png" },
+	is_ground_content = true,
+	groups = {cracky=1, level=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node(":technic:carbon_steel_block", {
+	description = S("Carbon Steel Block"),
+	tiles = { "technic_carbon_steel_block.png" },
+	is_ground_content = true,
+	groups = {cracky=1, level=2},
+	sounds = default.node_sound_stone_defaults()
+})
+
+minetest.register_node(":technic:stainless_steel_block", {
+	description = S("Stainless Steel Block"),
+	tiles = { "technic_stainless_steel_block.png" },
 	is_ground_content = true,
 	groups = {cracky=1, level=2},
 	sounds = default.node_sound_stone_defaults()
@@ -98,3 +142,47 @@
 })
 
 minetest.register_alias("technic:diamond_block", "default:diamondblock")
+minetest.register_alias("technic:diamond", "default:diamond")
+minetest.register_alias("technic:mineral_diamond", "default:stone_with_diamond")
+
+local function for_each_registered_node(action)
+	local really_register_node = minetest.register_node
+	minetest.register_node = function(name, def)
+		really_register_node(name, def)
+		action(name:gsub("^:", ""), def)
+	end
+	for name, def in pairs(minetest.registered_nodes) do
+		action(name, def)
+	end
+end
+
+for_each_registered_node(function(node_name, node_def)
+	if node_name ~= "default:steelblock" and
+			node_name:find("steelblock", 1, true) and
+			node_def.description:find("Steel", 1, true) then
+		minetest.override_item(node_name, {
+			description = node_def.description:gsub("Steel", S("Wrought Iron")),
+		})
+	end
+	local tiles = node_def.tiles or node_def.tile_images
+	if tiles then
+		local new_tiles = {}
+		local do_override = false
+		if type(tiles) == "string" then
+			tiles = {tiles}
+		end
+		for i, t in ipairs(tiles) do
+			if type(t) == "string" and t == "default_steel_block.png" then
+				do_override = true
+				t = "technic_wrought_iron_block.png"
+			end
+			table.insert(new_tiles, t)
+		end
+		if do_override then
+			minetest.override_item(node_name, {
+				tiles = new_tiles
+			})
+		end
+	end
+end)
+

--
Gitblit v1.8.0