--[[

	TechAge
	=======

	Copyright (C) 2020-2021 Joachim Stolberg

	AGPL v3
	See LICENSE.txt for more information

	techage node registrations

]]--

local function register_alias(name)
	--minetest.register_alias("stairs:slab_" ..name, "techage:slab_" ..name)
	minetest.register_alias("stairs:slab_" ..name.. "_inverted", "techage:slab_" ..name.. "_inverted")
	minetest.register_alias("stairs:slab_" ..name.. "_wall", "techage:slab_" ..name.. "_wall")
	minetest.register_alias("stairs:slab_" ..name.. "_quarter", "techage:slab_" ..name.. "_quarter")
	minetest.register_alias("stairs:slab_" ..name.. "_quarter_inverted", "techage:slab_" ..name.. "_quarter_inverted")
	minetest.register_alias("stairs:slab_" ..name.. "_quarter_wall", "techage:slab_" ..name.. "_quarter_wall")
	minetest.register_alias("stairs:slab_" ..name.. "_three_quarter", "techage:slab_" ..name.. "_three_quarter")
	minetest.register_alias("stairs:slab_" ..name.. "_three_quarter_inverted", "techage:slab_" ..name.. "_three_quarter_inverted")
	minetest.register_alias("stairs:slab_" ..name.. "_three_quarter_wall", "techage:slab_" ..name.. "_three_quarter_wall")
	--minetest.register_alias("stairs:stair_" ..name, "techage:stair_" ..name)
	minetest.register_alias("stairs:stair_" ..name.. "_inverted", "techage:stair_" ..name.. "_inverted")
	minetest.register_alias("stairs:stair_" ..name.. "_wall", "techage:stair_" ..name.. "_wall")
	minetest.register_alias("stairs:stair_" ..name.. "_wall_half", "techage:stair_" ..name.. "_wall_half")
	minetest.register_alias("stairs:stair_" ..name.. "_wall_half_inverted", "techage:stair_" ..name.. "_wall_half_inverted")
	minetest.register_alias("stairs:stair_" ..name.. "_half", "techage:stair_" ..name.. "_half")
	minetest.register_alias("stairs:stair_" ..name.. "_half_inverted", "techage:stair_" ..name.. "_half_inverted")
	minetest.register_alias("stairs:stair_" ..name.. "_right_half", "techage:stair_" ..name.. "_right_half")
	minetest.register_alias("stairs:stair_" ..name.. "_right_half_inverted", "techage:stair_" ..name.. "_right_half_inverted")
	minetest.register_alias("stairs:stair_" ..name.. "_wall_half", "techage:stair_" ..name.. "_wall_half")
	minetest.register_alias("stairs:stair_" ..name.. "_wall_half_inverted", "techage:stair_" ..name.. "_wall_half_inverted")
	minetest.register_alias("stairs:stair_" ..name.. "_inner", "techage:stair_" ..name.. "_inner")
	minetest.register_alias("stairs:stair_" ..name.. "_inner_inverted", "techage:stair_" ..name.. "_inner_inverted")
	minetest.register_alias("stairs:stair_" ..name.. "_outer", "techage:stair_" ..name.. "_outer")
	minetest.register_alias("stairs:stair_" ..name.. "_outer_inverted", "techage:stair_" ..name.. "_outer_inverted")
end

local NodeNames = {
	"techage:compressed_gravel",
	"techage:red_stone",
	"techage:red_stone_block",
	"techage:red_stone_brick",

	"techage:basalt_cobble",
	"techage:basalt_stone",
	"techage:basalt_stone_block",
	"techage:basalt_stone_brick",
	"techage:sieved_basalt_gravel",

	"techage:basalt_glass",
	"techage:basalt_glass2",
	"techage:bauxite_cobble",
	"techage:bauxite_stone",

	"techage:cement_block",
}

if(minetest.get_modpath("moreblocks")) then
    for _,name in ipairs(NodeNames) do
		local ndef = minetest.registered_nodes[name]
		if ndef then
			ndef = table.copy(ndef)
			if ndef.drop then -- this fixes https://github.com/fluxionary/minetest-moreblocks/issues/19
				ndef.drop = nil
			end
			local subname = string.split(name, ":")[2]
			ndef.sunlight_propagates = true
			ndef.groups.not_in_creative_inventory = 1
			stairsplus:register_all("techage", subname, name, ndef)
			if techage.stair_aliases_enabled then
				register_alias(subname)
			end
		end
	end
else
    for _,name in ipairs(NodeNames) do
		local ndef = minetest.registered_nodes[name]
		if ndef then
			local subname = string.split(name, ":")[2]
			stairs.register_stair_and_slab(
				subname,
				name,
				ndef.groups,
				ndef.tiles,
				ndef.description.." Stair",
				ndef.description.." Slab",
				ndef.sound,
				false
			)
			if techage.stair_aliases_enabled then
				register_alias(subname)
			end
		end
	end
end
