-- internationalization boilerplate
local MP = minetest.get_modpath(minetest.get_current_modname())
local S, NS = dofile(MP.."/intllib.lua")

-- MCL2 compatibility
local moditems = {}

if core.get_modpath("mcl_core") and mcl_core then -- means MineClone 2 is loaded, this is its core mod
	moditems.IRON_ITEM = "mcl_core:iron_ingot"  -- MCL iron
else         -- fallback, assume default (MineTest Game) is loaded, otherwise it will error anyway here.
	moditems.IRON_ITEM = "default:steel_ingot"  -- MCL iron
end


local pontoons_override_logs = minetest.settings:get_bool("pontoons_override_logs") -- default false

local pontoons_override_wood = minetest.settings:get_bool("pontoons_override_wood") -- default false

local pontoons_wood_pontoons = minetest.settings:get_bool("pontoons_wood_pontoons")
if pontoons_wood_pontoons == nil then pontoons_wood_pontoons = true end -- default true

local pontoons_steel_pontoons = minetest.settings:get_bool("pontoons_steel_pontoons")
if pontoons_steel_pontoons == nil then pontoons_steel_pontoons = true end -- default true

local default_modpath = minetest.get_modpath("default")

if pontoons_override_logs or pontoons_override_wood then
	local override_def = {liquids_pointable = true}
	
	for node_name, node_def in pairs(minetest.registered_nodes) do
		if pontoons_override_logs and minetest.get_item_group(node_name, "tree") > 0 then
			minetest.override_item(node_name, override_def)
		end
		if pontoons_override_wood and minetest.get_item_group(node_name, "wood") > 0 then
			minetest.override_item(node_name, override_def)
		end
	end
end

if pontoons_wood_pontoons then
	local default_sound
	local wood_burn_time
	if default_modpath then
		if mcl_sounds then
			default_sound = mcl_sounds.node_sound_wood_defaults()
		else
			default_sound = default.node_sound_wood_defaults()
		end
		wood_burn_time = minetest.get_craft_result({method="fuel", width=1, items={ItemStack("group:wood")}}).time
	end
	if not wood_burn_time then wood_burn_time = 7 end

	minetest.register_node("pontoons:wood_pontoon", {
		description = S("Wood Pontoon"),
		_doc_items_longdesc = S("A hollow wooden block designed to be built on the surface of liquids."),
		tiles = {"pontoon_wood.png"},
		paramtype2 = "facedir",
		place_param2 = 0,
		is_ground_content = false,
		liquids_pointable = true,
		groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
		sounds = default_sound,
	})

-- modify recipe, if "airtank" mod is loaded as it has similar recipe and conflicts with pontoons.

if core.get_modpath("airtanks") and airtanks then
	minetest.register_craft({
		output = 'pontoons:wood_pontoon 4',
		recipe = {
			{"group:wood","group:wood","group:wood"},
			{"","",""},
			{"","","group:wood"},
		}
	})
else
	minetest.register_craft({
		output = 'pontoons:wood_pontoon 4',
		recipe = {
			{"","group:wood",""},
			{"group:wood","","group:wood"},
			{"","group:wood",""},
		}
	})
end

	minetest.register_craft({
		type = "fuel",
		recipe = "pontoons:wood_pontoon",
		burntime = wood_burn_time,
	})
	
end

if pontoons_steel_pontoons then
	local default_sound
	if default_modpath then
		if mcl_sounds then
			default_sound = mcl_sounds.node_sound_metal_defaults()
		else
			if default.node_sound_metal_defaults then
				default_sound = default.node_sound_metal_defaults()
			else
				default_sound = default.node_sound_wood_defaults()
			end
		end
	end
	
	minetest.register_node("pontoons:steel_pontoon", {
		description = S("Steel Pontoon"),
		_doc_items_longdesc = S("A hollow steel block designed to be built on the surface of liquids. Magma-safe."),
		is_ground_content = false,
		tiles = {"pontoon_steel.png"},
		liquids_pointable = true,
		is_ground_content = false,
		groups = {cracky = 1, level = 2},
		sounds = default_sound,
	})
	
	if default_modpath then
		if core.get_modpath("airtanks") and airtanks then
			minetest.register_craft({
				output = 'pontoons:steel_pontoon',
				recipe = {
					{"",moditems.IRON_ITEM,""},
					{moditems.IRON_ITEM,"",moditems.IRON_ITEM},
					{"","",moditems.IRON_ITEM},
				}
			})
	  else		
			minetest.register_craft({
				output = 'pontoons:steel_pontoon',
				recipe = {
					{"",moditems.IRON_ITEM,""},
					{moditems.IRON_ITEM,"",moditems.IRON_ITEM},
					{"",moditems.IRON_ITEM,""},
				}
			})
		end
	end
end