forked from minetest-mods/moreblocks
		
	Big update: new stair types, code looks better.
This commit is contained in:
		
							
								
								
									
										103
									
								
								circular_saw.lua
									
									
									
									
									
								
							
							
						
						
									
										103
									
								
								circular_saw.lua
									
									
									
									
									
								
							@@ -13,7 +13,7 @@ circular_saw = {};
 | 
			
		||||
circular_saw.known_stairs = {}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Register known moreblocks stairs
 | 
			
		||||
-- Register known moreblocks stairs.
 | 
			
		||||
for i,v in ipairs({"default:wood", "default:stone", "default:cobble", "default:mossycobble", "default:brick", "default:sandstone",
 | 
			
		||||
				"default:steelblock", "default:desert_stone", "default:glass", "default:tree", "default:jungletree", "default:stonebrick",
 | 
			
		||||
				"default:obsidian", "default:obsidian_glass", "default:stone_bricks", "default:junglewood", "default:goldblock",
 | 
			
		||||
@@ -32,9 +32,9 @@ end
 | 
			
		||||
circular_saw.cost_in_microblocks = { 1, 1, 1, 1, 1, 1, 1, 2,
 | 
			
		||||
									 2, 3, 2, 4, 2, 4, 5, 6,
 | 
			
		||||
									 7, 1, 1, 2, 4, 6, 7, 8,
 | 
			
		||||
									 3, 4, 0, 0, 0, 0, 0, 0, };
 | 
			
		||||
									 3, 1, 1, 2, 4, 0, 0, 0, };
 | 
			
		||||
 | 
			
		||||
-- anz: amount of input material in microblocks
 | 
			
		||||
-- anz: amount of input material in microblocks.
 | 
			
		||||
circular_saw.get_stair_output_inv = function(modname, material, anz, max)
 | 
			
		||||
 | 
			
		||||
	local max_offered = 99;
 | 
			
		||||
@@ -46,7 +46,7 @@ circular_saw.get_stair_output_inv = function(modname, material, anz, max)
 | 
			
		||||
	end
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	-- If there is nothing inside display empty inventory
 | 
			
		||||
	-- If there is nothing inside display empty inventory.
 | 
			
		||||
	if(anz < 1) then
 | 
			
		||||
		return { "",  "",  "",  "",  "",  "",  "", 
 | 
			
		||||
				"",  "",  "",  "",  "",  "",  "", 
 | 
			
		||||
@@ -84,6 +84,9 @@ circular_saw.get_stair_output_inv = function(modname, material, anz, max)
 | 
			
		||||
	modname .. ":slab_"  .. material .. "_15 "                     .. math.min(math.floor(anz/8), max_offered),
 | 
			
		||||
 | 
			
		||||
	modname .. ":stair_" .. material .. "_half "                   .. math.min(math.floor(anz/3), max_offered),
 | 
			
		||||
	modname .. ":stair_" .. material .. "_alt_1 "                  .. math.min(math.floor(anz/1), max_offered),
 | 
			
		||||
	modname .. ":stair_" .. material .. "_alt_2 "                  .. math.min(math.floor(anz/1), max_offered),
 | 
			
		||||
	modname .. ":stair_" .. material .. "_alt_4 "                  .. math.min(math.floor(anz/2), max_offered),
 | 
			
		||||
	modname .. ":stair_" .. material .. "_alt "                    .. math.min(math.floor(anz/4), max_offered),
 | 
			
		||||
 | 
			
		||||
	"", 
 | 
			
		||||
@@ -91,7 +94,7 @@ circular_saw.get_stair_output_inv = function(modname, material, anz, max)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Reset empty circular_saw after last full block has been taken out (or the circular_saw has been placed the first tiem); note: max_offered is not reset
 | 
			
		||||
-- Reset empty circular_saw after last full block has been taken out (or the circular_saw has been placed the first tiem); note: max_offered is not reset.
 | 
			
		||||
circular_saw.reset_circular_saw = function(pos)
 | 
			
		||||
	local meta = minetest.env:get_meta(pos);
 | 
			
		||||
	local inv  = meta:get_inventory();
 | 
			
		||||
@@ -105,7 +108,7 @@ circular_saw.reset_circular_saw = function(pos)
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Player has taken something out of the box or placed something inside; that amounts to count microblocks
 | 
			
		||||
-- Player has taken something out of the box or placed something inside; that amounts to count microblocks.
 | 
			
		||||
circular_saw.update_inventory = function(pos, amount)
 | 
			
		||||
	local meta = minetest.env:get_meta(pos);
 | 
			
		||||
	local inv  = meta:get_inventory();
 | 
			
		||||
@@ -122,10 +125,10 @@ circular_saw.update_inventory = function(pos, amount)
 | 
			
		||||
	end
 | 
			
		||||
 
 | 
			
		||||
	local stack = inv:get_stack("input",  1);
 | 
			
		||||
	-- At least one "normal" block is necessary to see what kind of stairs are requested
 | 
			
		||||
	-- At least one "normal" block is necessary to see what kind of stairs are requested.
 | 
			
		||||
	if(stack:is_empty()) then
 | 
			
		||||
 | 
			
		||||
		-- Any microblocks not taken out yet are now lost (covers material loss in the machine)
 | 
			
		||||
		-- Any microblocks not taken out yet are now lost (covers material loss in the machine).
 | 
			
		||||
		circular_saw.reset_circular_saw(pos);
 | 
			
		||||
		return;
 | 
			
		||||
 | 
			
		||||
@@ -135,45 +138,45 @@ circular_saw.update_inventory = function(pos, amount)
 | 
			
		||||
	local modname  = liste[1];
 | 
			
		||||
	local material = liste[2];
 | 
			
		||||
	
 | 
			
		||||
	-- Display as many full blocks as possible
 | 
			
		||||
	-- Display as many full blocks as possible.
 | 
			
		||||
	inv:set_list("input",   { modname.. ":" .. material .. " " .. math.floor(   (akt + amount) / 8) });
 | 
			
		||||
 | 
			
		||||
	-- The stairnodes made of default nodes use moreblocks namespace, other mods keep own.
 | 
			
		||||
	if(modname == "default") then modname = "moreblocks"; end
 | 
			
		||||
	--print("circular_saw set to " ..modname.. " : " ..material.. " with " .. (akt+amount) .. " microblocks.");
 | 
			
		||||
 | 
			
		||||
	-- 0-7 microblocks may remain as a rest
 | 
			
		||||
	-- 0-7 microblocks may remain as a rest.
 | 
			
		||||
	inv:set_list("micro",   { modname.. ":micro_" .. material .. "_bottom " .. ((akt + amount) % 8) });
 | 
			
		||||
	-- Display 
 | 
			
		||||
	-- Display.
 | 
			
		||||
	inv:set_list("output",  circular_saw.get_stair_output_inv(modname, material,  (akt + amount), meta:get_string("max_offered")));
 | 
			
		||||
	-- Store how many microblocks are available
 | 
			
		||||
	-- Store how many microblocks are available.
 | 
			
		||||
	meta:set_int("anz",  (akt+amount));
 | 
			
		||||
 | 
			
		||||
	meta:set_string("infotext",  S("Circular saw, working with %s (owned by %s)"):format(material,(meta:get_string("owner") or "")));
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- The amount of items offered per shape can be configured
 | 
			
		||||
-- The amount of items offered per shape can be configured.
 | 
			
		||||
circular_saw.on_receive_fields = function(pos, formname, fields, sender)
 | 
			
		||||
	local meta = minetest.env:get_meta(pos);
 | 
			
		||||
	if tonumber(fields.max_offered) and tonumber(fields.max_offered) > 0 and tonumber(fields.max_offered) < 99 then
 | 
			
		||||
		meta:set_string("max_offered",  fields.max_offered);
 | 
			
		||||
		circular_saw.update_inventory(pos, 0); -- update to show the correct number of items
 | 
			
		||||
		circular_saw.update_inventory(pos, 0); -- Update to show the correct number of items.
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Moving the inventory of the circular_saw around is not allowed because it is a fictional inventory
 | 
			
		||||
-- Moving the inventory of the circular_saw around is not allowed because it is a fictional inventory.
 | 
			
		||||
circular_saw.allow_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
 | 
			
		||||
	-- Moving inventory around would be rather immpractical and make things more difficult to calculate
 | 
			
		||||
	-- Moving inventory around would be rather immpractical and make things more difficult to calculate.
 | 
			
		||||
	return 0;
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-- Only input- and recycle-slot are intended as input slots
 | 
			
		||||
-- Only input- and recycle-slot are intended as input slots.
 | 
			
		||||
circular_saw.allow_metadata_inventory_put = function(pos, listname, index, stack, player)
 | 
			
		||||
 
 | 
			
		||||
	-- The player is not allowed to put something in there
 | 
			
		||||
	-- The player is not allowed to put something in there.
 | 
			
		||||
	if(listname == "output" or listname == "micro") then
 | 
			
		||||
		return 0;
 | 
			
		||||
	end
 | 
			
		||||
@@ -181,12 +184,12 @@ circular_saw.allow_metadata_inventory_put = function(pos, listname, index, stack
 | 
			
		||||
	local meta = minetest.env:get_meta(pos);
 | 
			
		||||
	local inv  = meta:get_inventory();
 | 
			
		||||
			
 | 
			
		||||
	-- Only alow those items that are offered in the output inventory to be recycled
 | 
			
		||||
	-- Only alow those items that are offered in the output inventory to be recycled.
 | 
			
		||||
	if(listname == "recycle" and not(inv:contains_item("output",  stack:get_name()))) then
 | 
			
		||||
		return 0;
 | 
			
		||||
	end
 | 
			
		||||
 | 
			
		||||
	-- Only accept certain blocks as input which are known to be craftable into stairs
 | 
			
		||||
	-- Only accept certain blocks as input which are known to be craftable into stairs.
 | 
			
		||||
	if(listname == "input") then
 | 
			
		||||
	 
 | 
			
		||||
		for i,v in ipairs(circular_saw.known_stairs) do
 | 
			
		||||
@@ -203,16 +206,16 @@ circular_saw.allow_metadata_inventory_put = function(pos, listname, index, stack
 | 
			
		||||
	return stack:get_count()
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- Taking is allowed from all slots (even the internal microblock slot)
 | 
			
		||||
-- Taking is allowed from all slots (even the internal microblock slot).
 | 
			
		||||
 | 
			
		||||
-- Putting something in is slightly more complicated than taking anything because we have to make sure it is of a suitable material
 | 
			
		||||
-- Putting something in is slightly more complicated than taking anything because we have to make sure it is of a suitable material.
 | 
			
		||||
circular_saw.on_metadata_inventory_put = function(pos, listname, index, stack, player)
 | 
			
		||||
 | 
			
		||||
	-- We need to find out if the circular_saw is already set to a specific material or not
 | 
			
		||||
	-- We need to find out if the circular_saw is already set to a specific material or not.
 | 
			
		||||
	local meta = minetest.env:get_meta(pos);
 | 
			
		||||
	local inv  = meta:get_inventory();
 | 
			
		||||
 | 
			
		||||
	-- Putting something into the input slot is only possible if that had been empty before or did contain something of the same material
 | 
			
		||||
	-- Putting something into the input slot is only possible if that had been empty before or did contain something of the same material.
 | 
			
		||||
	if(    listname=="input") then
 | 
			
		||||
 | 
			
		||||
		if( not( inv:is_empty("input"))) then
 | 
			
		||||
@@ -223,12 +226,12 @@ circular_saw.on_metadata_inventory_put = function(pos, listname, index, stack, p
 | 
			
		||||
			end
 | 
			
		||||
		end
 | 
			
		||||
 | 
			
		||||
		-- Each new block is worth 8 microblocks
 | 
			
		||||
		-- Each new block is worth 8 microblocks.
 | 
			
		||||
		circular_saw.update_inventory(pos, 8 * stack:get_count());
 | 
			
		||||
		
 | 
			
		||||
	elseif(listname=="recycle") then
 | 
			
		||||
 
 | 
			
		||||
		-- Lets look which shape this represents
 | 
			
		||||
		-- Lets look which shape this represents.
 | 
			
		||||
		for i,v in ipairs(inv:get_list("output")) do
 | 
			
		||||
				
 | 
			
		||||
		 if(v:get_name() == stack:get_name()) then
 | 
			
		||||
@@ -236,36 +239,36 @@ circular_saw.on_metadata_inventory_put = function(pos, listname, index, stack, p
 | 
			
		||||
			local value = circular_saw.cost_in_microblocks[ i ] * stack:get_count();
 | 
			
		||||
			--print("\nRecycling " .. (v:get_name()) .. " into " ..value.. " microblocks.");
 | 
			
		||||
 | 
			
		||||
			-- We get value microblocks back
 | 
			
		||||
			-- We get value microblocks back.
 | 
			
		||||
			circular_saw.update_inventory(pos, value);
 | 
			
		||||
		 end
 | 
			
		||||
		end
 | 
			
		||||
	end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
-- The player takes something
 | 
			
		||||
-- The player takes something.
 | 
			
		||||
circular_saw.on_metadata_inventory_take = function(pos, listname, index, stack, player)
 | 
			
		||||
			
 | 
			
		||||
	-- If it is one of the offered stairs: find out how many microblocks have to be substracted
 | 
			
		||||
	if(listname=="output") then
 | 
			
		||||
	-- If it is one of the offered stairs: find out how many microblocks have to be substracted.
 | 
			
		||||
	if (listname=="output") then
 | 
			
		||||
 | 
			
		||||
		-- We do know how much each block at each position costs
 | 
			
		||||
		-- We do know how much each block at each position costs.
 | 
			
		||||
		local cost = circular_saw.cost_in_microblocks[ index ] * stack:get_count();
 | 
			
		||||
 | 
			
		||||
		circular_saw.update_inventory(pos, -1 * cost);
 | 
			
		||||
 | 
			
		||||
	elseif(listname=="micro") then
 | 
			
		||||
	elseif (listname=="micro") then
 | 
			
		||||
 | 
			
		||||
		-- Each microblock costs 1 microblock
 | 
			
		||||
		-- Each microblock costs 1 microblock.
 | 
			
		||||
		circular_saw.update_inventory(pos, -1 * 1 * stack:get_count());
 | 
			
		||||
 | 
			
		||||
	elseif(listname=="input") then
 | 
			
		||||
	elseif (listname=="input") then
 | 
			
		||||
	
 | 
			
		||||
		-- Each normal (= full) block taken costs 8 microblocks
 | 
			
		||||
		-- Each normal (= full) block taken costs 8 microblocks.
 | 
			
		||||
		circular_saw.update_inventory(pos, -1 * 8 * stack:get_count());
 | 
			
		||||
 | 
			
		||||
	end
 | 
			
		||||
	-- The recycle field plays no role here since it is processed immediately
 | 
			
		||||
	-- The recycle field plays no role here since it is processed immediately.
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -274,7 +277,7 @@ circular_saw.on_construct_init = function(pos, formspec)
 | 
			
		||||
	local meta = minetest.env:get_meta(pos)
 | 
			
		||||
	meta:set_string("formspec",  formspec); 
 | 
			
		||||
 | 
			
		||||
	meta:set_int(   "anz",          0); -- No microblocks inside yet
 | 
			
		||||
	meta:set_int(   "anz",          0); -- No microblocks inside yet.
 | 
			
		||||
	meta:set_string("max_offered",  99); -- How many items of this kind are offered by default?
 | 
			
		||||
	meta:set_string("infotext",     S("Circular saw, empty"))
 | 
			
		||||
 | 
			
		||||
@@ -310,14 +313,14 @@ minetest.register_node("moreblocks:circular_saw",  {
 | 
			
		||||
		node_box = {
 | 
			
		||||
			type = "fixed", 
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.4, -0.5, -0.4, -0.25, 0.25, -0.25}, -- Leg
 | 
			
		||||
				{0.25, -0.5, 0.25, 0.4, 0.25, 0.4}, -- Leg
 | 
			
		||||
				{-0.4, -0.5, 0.25, -0.25, 0.25, 0.4}, -- Leg 
 | 
			
		||||
				{0.25, -0.5, -0.4, 0.4, 0.25, -0.25}, -- Leg
 | 
			
		||||
				{-0.5, 0.25, -0.5, 0.5, 0.375, 0.5}, -- Tabletop
 | 
			
		||||
				{-0.01, 0.4375, -0.125, 0.01, 0.5, 0.125}, -- Saw blade (top)
 | 
			
		||||
				{-0.01, 0.375, -0.1875, 0.01, 0.4375, 0.1875}, -- Saw blade (bottom)
 | 
			
		||||
				{-0.25, -0.0625, -0.25, 0.25, 0.25, 0.25}, -- Motor case
 | 
			
		||||
				{-0.4, -0.5, -0.4, -0.25, 0.25, -0.25}, -- leg
 | 
			
		||||
				{0.25, -0.5, 0.25, 0.4, 0.25, 0.4}, -- leg
 | 
			
		||||
				{-0.4, -0.5, 0.25, -0.25, 0.25, 0.4}, -- leg 
 | 
			
		||||
				{0.25, -0.5, -0.4, 0.4, 0.25, -0.25}, -- leg
 | 
			
		||||
				{-0.5, 0.25, -0.5, 0.5, 0.375, 0.5}, -- tabletop
 | 
			
		||||
				{-0.01, 0.4375, -0.125, 0.01, 0.5, 0.125}, -- saw blade (top)
 | 
			
		||||
				{-0.01, 0.375, -0.1875, 0.01, 0.4375, 0.1875}, -- saw blade (bottom)
 | 
			
		||||
				{-0.25, -0.0625, -0.25, 0.25, 0.25, 0.25}, -- motor case
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		tiles = {"moreblocks_circular_saw_top.png",  "moreblocks_circular_saw_bottom.png",  "moreblocks_circular_saw_side.png"},
 | 
			
		||||
@@ -344,7 +347,7 @@ minetest.register_node("moreblocks:circular_saw",  {
 | 
			
		||||
			return circular_saw.can_dig(pos, player);
 | 
			
		||||
		end,
 | 
			
		||||
 | 
			
		||||
		-- Set owner of this circular saw
 | 
			
		||||
		-- Set owner of this circular saw.
 | 
			
		||||
		after_place_node = function(pos, placer)
 | 
			
		||||
			local meta = minetest.env:get_meta(pos);
 | 
			
		||||
			
 | 
			
		||||
@@ -352,7 +355,7 @@ minetest.register_node("moreblocks:circular_saw",  {
 | 
			
		||||
			meta:set_string("infotext",  S("Circular saw is empty (owned by %s)"):format((placer:get_player_name() or "")));
 | 
			
		||||
		end,
 | 
			
		||||
 | 
			
		||||
		-- The amount of items offered per shape can be configured
 | 
			
		||||
		-- The amount of items offered per shape can be configured.
 | 
			
		||||
		on_receive_fields = function(pos, formname, fields, sender)
 | 
			
		||||
			return circular_saw.on_receive_fields(pos, formname, fields, sender);
 | 
			
		||||
		end,
 | 
			
		||||
@@ -361,14 +364,14 @@ minetest.register_node("moreblocks:circular_saw",  {
 | 
			
		||||
			return circular_saw.allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player);     
 | 
			
		||||
		end,
 | 
			
		||||
 | 
			
		||||
		-- Only input- and recycle-slot are intended as input slots
 | 
			
		||||
		-- Only input- and recycle-slot are intended as input slots.
 | 
			
		||||
		allow_metadata_inventory_put = function(pos, listname, index, stack, player)
 | 
			
		||||
			return circular_saw.allow_metadata_inventory_put(pos, listname, index, stack, player); 
 | 
			
		||||
		end,
 | 
			
		||||
 | 
			
		||||
		-- Taking is allowed from all slots (even the internal microblock slot); moving is forbidden
 | 
			
		||||
		-- Taking is allowed from all slots (even the internal microblock slot); moving is forbidden.
 | 
			
		||||
 | 
			
		||||
		-- Putting something in is slightly more complicated than taking anything because we have to make sure it is of a suitable material
 | 
			
		||||
		-- Putting something in is slightly more complicated than taking anything because we have to make sure it is of a suitable material.
 | 
			
		||||
		on_metadata_inventory_put = function(pos, listname, index, stack, player)
 | 
			
		||||
			return circular_saw.on_metadata_inventory_put(pos, listname, index, stack, player);
 | 
			
		||||
		end,
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								init.lua
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								init.lua
									
									
									
									
									
								
							@@ -299,6 +299,7 @@ minetest.register_node("moreblocks:glow_glass", {
 | 
			
		||||
	groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
 | 
			
		||||
	sounds = default.node_sound_glass_defaults(),
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_node("moreblocks:trap_glow_glass", {
 | 
			
		||||
	description = S("Trap Glow Glass"),
 | 
			
		||||
	drawtype = "glasslike",
 | 
			
		||||
 
 | 
			
		||||
@@ -119,7 +119,7 @@ end
 | 
			
		||||
-- Default stairs/slabs/panels/microblocks.
 | 
			
		||||
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "wood", "default:wood",
 | 
			
		||||
	{snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
			
		||||
	{snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3},
 | 
			
		||||
	{"default_wood.png"},
 | 
			
		||||
	"Wooden",
 | 
			
		||||
	"wood",
 | 
			
		||||
@@ -154,14 +154,14 @@ register_stair_slab_panel_micro("moreblocks", "brick", "default:brick",
 | 
			
		||||
	0)
 | 
			
		||||
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "sandstone", "default:sandstone",
 | 
			
		||||
	{crumbly=2,cracky=2},
 | 
			
		||||
	{crumbly=2, cracky=2},
 | 
			
		||||
	{"default_sandstone.png"},
 | 
			
		||||
	"Sandstone",
 | 
			
		||||
	"sandstone",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "steelblock", "default:steelblock",
 | 
			
		||||
	{cracky=1,level=2},
 | 
			
		||||
	{cracky=1, level=2},
 | 
			
		||||
	{"default_steel_block.png"},
 | 
			
		||||
	"Steel Block",
 | 
			
		||||
	"steelblock",
 | 
			
		||||
@@ -175,21 +175,21 @@ register_stair_slab_panel_micro("moreblocks", "goldblock", "default:goldblock",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "copperblock", "default:copperblock",
 | 
			
		||||
	{cracky=1,level=2},
 | 
			
		||||
	{cracky=1, level=2},
 | 
			
		||||
	{"default_copper_block.png"},
 | 
			
		||||
	"Copper Block",
 | 
			
		||||
	"copperblock",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "bronzeblock", "default:bronzeblock",
 | 
			
		||||
	{cracky=1,level=2},
 | 
			
		||||
	{cracky=1, level=2},
 | 
			
		||||
	{"default_bronze_block.png"},
 | 
			
		||||
	"Bronze Block",
 | 
			
		||||
	"bronzeblock",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "diamondblock", "default:diamondblock",
 | 
			
		||||
	{cracky=1,level=3},
 | 
			
		||||
	{cracky=1, level=3},
 | 
			
		||||
	{"default_diamond_block.png"},
 | 
			
		||||
	"Diamond Block",
 | 
			
		||||
	"diamondblock",
 | 
			
		||||
@@ -203,35 +203,35 @@ register_stair_slab_panel_micro("moreblocks", "desert_stone", "default:desert_st
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "glass", "default:glass",
 | 
			
		||||
	{snappy=2,cracky=3,oddly_breakable_by_hand=3},
 | 
			
		||||
	{snappy=2, cracky=3, oddly_breakable_by_hand=3},
 | 
			
		||||
	{"moreblocks_glass_stairsplus.png"},
 | 
			
		||||
	"Glass",
 | 
			
		||||
	"glass",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "tree", "default:tree",
 | 
			
		||||
	{tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
 | 
			
		||||
	{tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2},
 | 
			
		||||
	{"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
 | 
			
		||||
	"Tree",
 | 
			
		||||
	"tree",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "jungletree", "default:jungletree",
 | 
			
		||||
	{tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
 | 
			
		||||
	{tree=1, snappy=1, choppy=2, oddly_breakable_by_hand=1, flammable=2},
 | 
			
		||||
	{"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
 | 
			
		||||
	"Jungle Tree",
 | 
			
		||||
	"jungletree",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "obsidian", "default:obsidian",
 | 
			
		||||
	{cracky=1,level=2},
 | 
			
		||||
	{cracky=1, level=2},
 | 
			
		||||
	{"default_obsidian.png"},
 | 
			
		||||
	"Obsidian",
 | 
			
		||||
	"obsidian",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "obsidian_glass", "default:obsidian_glass",
 | 
			
		||||
	{cracky=3,oddly_breakable_by_hand=3},
 | 
			
		||||
	{cracky=3, oddly_breakable_by_hand=3},
 | 
			
		||||
	{"moreblocks_obsidian_glass_stairsplus.png"},
 | 
			
		||||
	"Obsidian Glass",
 | 
			
		||||
	"obsidian_glass",
 | 
			
		||||
@@ -260,6 +260,13 @@ register_stair_slab_panel_micro("moreblocks", "sandstonebrick", "default:sandsto
 | 
			
		||||
 | 
			
		||||
-- More Blocks stairs/slabs/panels/microblocks
 | 
			
		||||
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "invisible", "air",
 | 
			
		||||
	{unbreakable=1, not_in_creative_inventory=1},
 | 
			
		||||
	{"invisible.png"},
 | 
			
		||||
	"Invisible",
 | 
			
		||||
	"invisible",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "circle_stone_bricks", "moreblocks:circle_stone_bricks",
 | 
			
		||||
	{cracky=3},
 | 
			
		||||
	{"moreblocks_circle_stone_bricks.png"},
 | 
			
		||||
@@ -377,14 +384,14 @@ register_stair_slab_panel_micro("moreblocks", "coal_glass", "moreblocks:coal_gla
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "iron_glass", "moreblocks:iron_glass",
 | 
			
		||||
	{snappy=2,cracky=3,oddly_breakable_by_hand=3},
 | 
			
		||||
	{snappy=2, cracky=3, oddly_breakable_by_hand=3},
 | 
			
		||||
	{"moreblocks_iron_glass_stairsplus.png"},
 | 
			
		||||
	"Iron Glass",
 | 
			
		||||
	"iron_glass",
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "wood_tile", "moreblocks:wood_tile",
 | 
			
		||||
	{snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
			
		||||
	{snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3},
 | 
			
		||||
	{"moreblocks_wood_tile.png", "moreblocks_wood_tile.png", "moreblocks_wood_tile.png",
 | 
			
		||||
	"moreblocks_wood_tile.png", "moreblocks_wood_tile.png^[transformR90", "moreblocks_wood_tile.png^[transformR90"},
 | 
			
		||||
	"Wooden Tile",
 | 
			
		||||
@@ -392,7 +399,7 @@ register_stair_slab_panel_micro("moreblocks", "wood_tile", "moreblocks:wood_tile
 | 
			
		||||
	0)
 | 
			
		||||
	
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "wood_tile_center", "moreblocks:wood_tile_center",
 | 
			
		||||
	{snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
			
		||||
	{snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3},
 | 
			
		||||
	{"moreblocks_wood_tile_center.png", "moreblocks_wood_tile_center.png", "moreblocks_wood_tile_center.png",
 | 
			
		||||
	"moreblocks_wood_tile_center.png", "moreblocks_wood_tile_center.png^[transformR90", "moreblocks_wood_tile_center.png^[transformR90"},
 | 
			
		||||
	"Centered Wooden Tile",
 | 
			
		||||
@@ -400,7 +407,7 @@ register_stair_slab_panel_micro("moreblocks", "wood_tile_center", "moreblocks:wo
 | 
			
		||||
	0)
 | 
			
		||||
 | 
			
		||||
register_stair_slab_panel_micro("moreblocks", "wood_tile_full", "moreblocks:wood_tile_full",
 | 
			
		||||
	{snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3},
 | 
			
		||||
	{snappy=1, choppy=2, oddly_breakable_by_hand=2, flammable=3},
 | 
			
		||||
	{"moreblocks_wood_tile_full.png", "moreblocks_wood_tile_full.png", "moreblocks_wood_tile_full.png",
 | 
			
		||||
	"moreblocks_wood_tile_full.png", "moreblocks_wood_tile_full.png^[transformR90", "moreblocks_wood_tile_full.png^[transformR90"},
 | 
			
		||||
	"Full Wooden Tile",
 | 
			
		||||
 
 | 
			
		||||
@@ -26,10 +26,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -48,10 +44,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -70,10 +62,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -92,10 +80,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -114,10 +98,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -136,10 +116,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -158,10 +134,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
@@ -26,10 +26,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
@@ -47,10 +43,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, -0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, -0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
@@ -68,10 +60,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, -0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, -0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
@@ -89,10 +77,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, -0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, -0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
@@ -110,10 +94,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
@@ -131,10 +111,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
@@ -152,10 +128,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, 0, 0.5, 0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,10 +26,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -47,10 +43,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -69,10 +61,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -91,10 +79,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0.25, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -113,10 +97,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -135,10 +115,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -157,10 +133,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0.375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -179,10 +151,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
 
 | 
			
		||||
@@ -28,13 +28,6 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
				{-0.5, 0, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
				{-0.5, 0, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -54,13 +47,6 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
				{-0.5, 0, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
				{-0.5, 0, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -81,13 +67,6 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
				{-0.5, 0, 0, 0, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.5, -0.5, 0, 0, 0.5},
 | 
			
		||||
				{-0.5, 0, 0, 0, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -108,13 +87,6 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
				{0, 0, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{0, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
				{0, 0, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -137,14 +109,6 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
				{-0.5, 0, -0.5, 0, 0.5, 0},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
				{-0.5, 0, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
				{-0.5, 0, -0.5, 0, 0.5, 0},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -166,13 +130,6 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
				{-0.5, 0, 0, 0, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		selection_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
 | 
			
		||||
				{-0.5, 0, 0, 0, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
@@ -197,6 +154,66 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
	minetest.register_node(":" .. modname .. ":stair_" .. subname .. "_alt_1", {
 | 
			
		||||
		description = S("%s Stairs"):format(S(description)),
 | 
			
		||||
		drawtype = "nodebox",
 | 
			
		||||
		tiles = images,
 | 
			
		||||
		light_source = light,
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
		paramtype2 = "facedir",
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		groups = groups,
 | 
			
		||||
		node_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.0625, -0.5, 0.5, 0, 0},
 | 
			
		||||
				{-0.5, 0.4375, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
	minetest.register_node(":" .. modname .. ":stair_" .. subname .. "_alt_2", {
 | 
			
		||||
		description = S("%s Stairs"):format(S(description)),
 | 
			
		||||
		drawtype = "nodebox",
 | 
			
		||||
		tiles = images,
 | 
			
		||||
		light_source = light,
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
		paramtype2 = "facedir",
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		groups = groups,
 | 
			
		||||
		node_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.125, -0.5, 0.5, 0, 0},
 | 
			
		||||
				{-0.5, 0.375, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
	
 | 
			
		||||
	minetest.register_node(":" .. modname .. ":stair_" .. subname .. "_alt_4", {
 | 
			
		||||
		description = S("%s Stairs"):format(S(description)),
 | 
			
		||||
		drawtype = "nodebox",
 | 
			
		||||
		tiles = images,
 | 
			
		||||
		light_source = light,
 | 
			
		||||
		paramtype = "light",
 | 
			
		||||
		paramtype2 = "facedir",
 | 
			
		||||
		sunlight_propagates = true,
 | 
			
		||||
		groups = groups,
 | 
			
		||||
		node_box = {
 | 
			
		||||
			type = "fixed",
 | 
			
		||||
			fixed = {
 | 
			
		||||
				{-0.5, -0.25, -0.5, 0.5, 0, 0},
 | 
			
		||||
				{-0.5, 0.25, 0, 0.5, 0.5, 0.5},
 | 
			
		||||
			},
 | 
			
		||||
		},
 | 
			
		||||
		sounds = default.node_sound_stone_defaults(),
 | 
			
		||||
		on_place = stairsplus_rotate_and_place
 | 
			
		||||
	})
 | 
			
		||||
 | 
			
		||||
	-- Unregister default recipes, optional, see _config.txt
 | 
			
		||||
 | 
			
		||||
if allow_stair_slab_crafting == false
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								textures/invisible.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								textures/invisible.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 151 B  | 
		Reference in New Issue
	
	Block a user