Big update: new stair types, code looks better.

This commit is contained in:
Calinou 2014-01-20 19:49:40 +01:00
parent 2b01bd5cbc
commit 62f9f00fe8
8 changed files with 136 additions and 196 deletions

View File

@ -13,7 +13,7 @@ circular_saw = {};
circular_saw.known_stairs = {} 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", 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:steelblock", "default:desert_stone", "default:glass", "default:tree", "default:jungletree", "default:stonebrick",
"default:obsidian", "default:obsidian_glass", "default:stone_bricks", "default:junglewood", "default:goldblock", "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, circular_saw.cost_in_microblocks = { 1, 1, 1, 1, 1, 1, 1, 2,
2, 3, 2, 4, 2, 4, 5, 6, 2, 3, 2, 4, 2, 4, 5, 6,
7, 1, 1, 2, 4, 6, 7, 8, 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) circular_saw.get_stair_output_inv = function(modname, material, anz, max)
local max_offered = 99; local max_offered = 99;
@ -46,7 +46,7 @@ circular_saw.get_stair_output_inv = function(modname, material, anz, max)
end end
-- If there is nothing inside display empty inventory -- If there is nothing inside display empty inventory.
if(anz < 1) then if(anz < 1) then
return { "", "", "", "", "", "", "", 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 .. ":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 .. "_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), 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 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) circular_saw.reset_circular_saw = function(pos)
local meta = minetest.env:get_meta(pos); local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory(); local inv = meta:get_inventory();
@ -105,7 +108,7 @@ circular_saw.reset_circular_saw = function(pos)
end 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) circular_saw.update_inventory = function(pos, amount)
local meta = minetest.env:get_meta(pos); local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory(); local inv = meta:get_inventory();
@ -122,10 +125,10 @@ circular_saw.update_inventory = function(pos, amount)
end end
local stack = inv:get_stack("input", 1); 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 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); circular_saw.reset_circular_saw(pos);
return; return;
@ -135,45 +138,45 @@ circular_saw.update_inventory = function(pos, amount)
local modname = liste[1]; local modname = liste[1];
local material = liste[2]; 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) }); inv:set_list("input", { modname.. ":" .. material .. " " .. math.floor( (akt + amount) / 8) });
-- The stairnodes made of default nodes use moreblocks namespace, other mods keep own. -- The stairnodes made of default nodes use moreblocks namespace, other mods keep own.
if(modname == "default") then modname = "moreblocks"; end if(modname == "default") then modname = "moreblocks"; end
--print("circular_saw set to " ..modname.. " : " ..material.. " with " .. (akt+amount) .. " microblocks."); --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) }); 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"))); 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_int("anz", (akt+amount));
meta:set_string("infotext", S("Circular saw, working with %s (owned by %s)"):format(material,(meta:get_string("owner") or ""))); meta:set_string("infotext", S("Circular saw, working with %s (owned by %s)"):format(material,(meta:get_string("owner") or "")));
end 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) circular_saw.on_receive_fields = function(pos, formname, fields, sender)
local meta = minetest.env:get_meta(pos); 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 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); 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
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) 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; return 0;
end 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) 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 if(listname == "output" or listname == "micro") then
return 0; return 0;
end end
@ -181,12 +184,12 @@ circular_saw.allow_metadata_inventory_put = function(pos, listname, index, stack
local meta = minetest.env:get_meta(pos); local meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory(); 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 if(listname == "recycle" and not(inv:contains_item("output", stack:get_name()))) then
return 0; return 0;
end 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 if(listname == "input") then
for i,v in ipairs(circular_saw.known_stairs) do 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() return stack:get_count()
end 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) 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 meta = minetest.env:get_meta(pos);
local inv = meta:get_inventory(); 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( listname=="input") then
if( not( inv:is_empty("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
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()); circular_saw.update_inventory(pos, 8 * stack:get_count());
elseif(listname=="recycle") then 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 for i,v in ipairs(inv:get_list("output")) do
if(v:get_name() == stack:get_name()) then 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(); local value = circular_saw.cost_in_microblocks[ i ] * stack:get_count();
--print("\nRecycling " .. (v:get_name()) .. " into " ..value.. " microblocks."); --print("\nRecycling " .. (v:get_name()) .. " into " ..value.. " microblocks.");
-- We get value microblocks back -- We get value microblocks back.
circular_saw.update_inventory(pos, value); circular_saw.update_inventory(pos, value);
end end
end end
end end
end end
-- The player takes something -- The player takes something.
circular_saw.on_metadata_inventory_take = function(pos, listname, index, stack, player) 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 it is one of the offered stairs: find out how many microblocks have to be substracted.
if(listname=="output") then 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(); local cost = circular_saw.cost_in_microblocks[ index ] * stack:get_count();
circular_saw.update_inventory(pos, -1 * cost); 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()); 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()); circular_saw.update_inventory(pos, -1 * 8 * stack:get_count());
end 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 end
@ -274,7 +277,7 @@ circular_saw.on_construct_init = function(pos, formspec)
local meta = minetest.env:get_meta(pos) local meta = minetest.env:get_meta(pos)
meta:set_string("formspec", formspec); 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("max_offered", 99); -- How many items of this kind are offered by default?
meta:set_string("infotext", S("Circular saw, empty")) meta:set_string("infotext", S("Circular saw, empty"))
@ -310,14 +313,14 @@ minetest.register_node("moreblocks:circular_saw", {
node_box = { node_box = {
type = "fixed", type = "fixed",
fixed = { fixed = {
{-0.4, -0.5, -0.4, -0.25, 0.25, -0.25}, -- Leg {-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.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.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.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.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.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.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.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"}, 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); return circular_saw.can_dig(pos, player);
end, end,
-- Set owner of this circular saw -- Set owner of this circular saw.
after_place_node = function(pos, placer) after_place_node = function(pos, placer)
local meta = minetest.env:get_meta(pos); 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 ""))); meta:set_string("infotext", S("Circular saw is empty (owned by %s)"):format((placer:get_player_name() or "")));
end, 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) on_receive_fields = function(pos, formname, fields, sender)
return circular_saw.on_receive_fields(pos, formname, fields, sender); return circular_saw.on_receive_fields(pos, formname, fields, sender);
end, 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); return circular_saw.allow_metadata_inventory_move(pos, from_list, from_index, to_list, to_index, count, player);
end, 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) allow_metadata_inventory_put = function(pos, listname, index, stack, player)
return circular_saw.allow_metadata_inventory_put(pos, listname, index, stack, player); return circular_saw.allow_metadata_inventory_put(pos, listname, index, stack, player);
end, 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) on_metadata_inventory_put = function(pos, listname, index, stack, player)
return circular_saw.on_metadata_inventory_put(pos, listname, index, stack, player); return circular_saw.on_metadata_inventory_put(pos, listname, index, stack, player);
end, end,

View File

@ -299,6 +299,7 @@ minetest.register_node("moreblocks:glow_glass", {
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3},
sounds = default.node_sound_glass_defaults(), sounds = default.node_sound_glass_defaults(),
}) })
minetest.register_node("moreblocks:trap_glow_glass", { minetest.register_node("moreblocks:trap_glow_glass", {
description = S("Trap Glow Glass"), description = S("Trap Glow Glass"),
drawtype = "glasslike", drawtype = "glasslike",

View File

@ -119,7 +119,7 @@ end
-- Default stairs/slabs/panels/microblocks. -- Default stairs/slabs/panels/microblocks.
register_stair_slab_panel_micro("moreblocks", "wood", "default:wood", 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"}, {"default_wood.png"},
"Wooden", "Wooden",
"wood", "wood",
@ -154,14 +154,14 @@ register_stair_slab_panel_micro("moreblocks", "brick", "default:brick",
0) 0)
register_stair_slab_panel_micro("moreblocks", "sandstone", "default:sandstone", register_stair_slab_panel_micro("moreblocks", "sandstone", "default:sandstone",
{crumbly=2,cracky=2}, {crumbly=2, cracky=2},
{"default_sandstone.png"}, {"default_sandstone.png"},
"Sandstone", "Sandstone",
"sandstone", "sandstone",
0) 0)
register_stair_slab_panel_micro("moreblocks", "steelblock", "default:steelblock", register_stair_slab_panel_micro("moreblocks", "steelblock", "default:steelblock",
{cracky=1,level=2}, {cracky=1, level=2},
{"default_steel_block.png"}, {"default_steel_block.png"},
"Steel Block", "Steel Block",
"steelblock", "steelblock",
@ -175,21 +175,21 @@ register_stair_slab_panel_micro("moreblocks", "goldblock", "default:goldblock",
0) 0)
register_stair_slab_panel_micro("moreblocks", "copperblock", "default:copperblock", register_stair_slab_panel_micro("moreblocks", "copperblock", "default:copperblock",
{cracky=1,level=2}, {cracky=1, level=2},
{"default_copper_block.png"}, {"default_copper_block.png"},
"Copper Block", "Copper Block",
"copperblock", "copperblock",
0) 0)
register_stair_slab_panel_micro("moreblocks", "bronzeblock", "default:bronzeblock", register_stair_slab_panel_micro("moreblocks", "bronzeblock", "default:bronzeblock",
{cracky=1,level=2}, {cracky=1, level=2},
{"default_bronze_block.png"}, {"default_bronze_block.png"},
"Bronze Block", "Bronze Block",
"bronzeblock", "bronzeblock",
0) 0)
register_stair_slab_panel_micro("moreblocks", "diamondblock", "default:diamondblock", register_stair_slab_panel_micro("moreblocks", "diamondblock", "default:diamondblock",
{cracky=1,level=3}, {cracky=1, level=3},
{"default_diamond_block.png"}, {"default_diamond_block.png"},
"Diamond Block", "Diamond Block",
"diamondblock", "diamondblock",
@ -203,35 +203,35 @@ register_stair_slab_panel_micro("moreblocks", "desert_stone", "default:desert_st
0) 0)
register_stair_slab_panel_micro("moreblocks", "glass", "default:glass", 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"}, {"moreblocks_glass_stairsplus.png"},
"Glass", "Glass",
"glass", "glass",
0) 0)
register_stair_slab_panel_micro("moreblocks", "tree", "default:tree", 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"}, {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
"Tree", "Tree",
"tree", "tree",
0) 0)
register_stair_slab_panel_micro("moreblocks", "jungletree", "default:jungletree", 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"}, {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
"Jungle Tree", "Jungle Tree",
"jungletree", "jungletree",
0) 0)
register_stair_slab_panel_micro("moreblocks", "obsidian", "default:obsidian", register_stair_slab_panel_micro("moreblocks", "obsidian", "default:obsidian",
{cracky=1,level=2}, {cracky=1, level=2},
{"default_obsidian.png"}, {"default_obsidian.png"},
"Obsidian", "Obsidian",
"obsidian", "obsidian",
0) 0)
register_stair_slab_panel_micro("moreblocks", "obsidian_glass", "default:obsidian_glass", 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"}, {"moreblocks_obsidian_glass_stairsplus.png"},
"Obsidian Glass", "Obsidian Glass",
"obsidian_glass", "obsidian_glass",
@ -259,6 +259,13 @@ register_stair_slab_panel_micro("moreblocks", "sandstonebrick", "default:sandsto
0) 0)
-- More Blocks stairs/slabs/panels/microblocks -- 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", register_stair_slab_panel_micro("moreblocks", "circle_stone_bricks", "moreblocks:circle_stone_bricks",
{cracky=3}, {cracky=3},
@ -377,14 +384,14 @@ register_stair_slab_panel_micro("moreblocks", "coal_glass", "moreblocks:coal_gla
0) 0)
register_stair_slab_panel_micro("moreblocks", "iron_glass", "moreblocks:iron_glass", 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"}, {"moreblocks_iron_glass_stairsplus.png"},
"Iron Glass", "Iron Glass",
"iron_glass", "iron_glass",
0) 0)
register_stair_slab_panel_micro("moreblocks", "wood_tile", "moreblocks:wood_tile", 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", "moreblocks_wood_tile.png",
"moreblocks_wood_tile.png", "moreblocks_wood_tile.png^[transformR90", "moreblocks_wood_tile.png^[transformR90"}, "moreblocks_wood_tile.png", "moreblocks_wood_tile.png^[transformR90", "moreblocks_wood_tile.png^[transformR90"},
"Wooden Tile", "Wooden Tile",
@ -392,7 +399,7 @@ register_stair_slab_panel_micro("moreblocks", "wood_tile", "moreblocks:wood_tile
0) 0)
register_stair_slab_panel_micro("moreblocks", "wood_tile_center", "moreblocks:wood_tile_center", 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", "moreblocks_wood_tile_center.png",
"moreblocks_wood_tile_center.png", "moreblocks_wood_tile_center.png^[transformR90", "moreblocks_wood_tile_center.png^[transformR90"}, "moreblocks_wood_tile_center.png", "moreblocks_wood_tile_center.png^[transformR90", "moreblocks_wood_tile_center.png^[transformR90"},
"Centered Wooden Tile", "Centered Wooden Tile",
@ -400,7 +407,7 @@ register_stair_slab_panel_micro("moreblocks", "wood_tile_center", "moreblocks:wo
0) 0)
register_stair_slab_panel_micro("moreblocks", "wood_tile_full", "moreblocks:wood_tile_full", 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", "moreblocks_wood_tile_full.png",
"moreblocks_wood_tile_full.png", "moreblocks_wood_tile_full.png^[transformR90", "moreblocks_wood_tile_full.png^[transformR90"}, "moreblocks_wood_tile_full.png", "moreblocks_wood_tile_full.png^[transformR90", "moreblocks_wood_tile_full.png^[transformR90"},
"Full Wooden Tile", "Full Wooden Tile",

View File

@ -26,10 +26,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0, 0, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -48,10 +44,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0, -0.4375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -70,10 +62,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0, -0.375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -92,10 +80,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0, -0.25, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -114,10 +98,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0, 0.25, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -136,10 +116,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0, 0.375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -158,10 +134,6 @@ function register_micro(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0, 0.4375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })

View File

@ -26,10 +26,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, 0, 0.5}, 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 on_place = stairsplus_rotate_and_place
}) })
@ -47,10 +43,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, -0.4375, 0.5}, 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 on_place = stairsplus_rotate_and_place
}) })
@ -68,10 +60,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, -0.375, 0.5}, 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 on_place = stairsplus_rotate_and_place
}) })
@ -89,10 +77,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, -0.25, 0.5}, 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 on_place = stairsplus_rotate_and_place
}) })
@ -110,10 +94,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, 0.25, 0.5}, 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 on_place = stairsplus_rotate_and_place
}) })
@ -131,10 +111,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, 0.375, 0.5}, 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 on_place = stairsplus_rotate_and_place
}) })
@ -152,10 +128,6 @@ function register_panel(modname, subname, recipeitem, groups, images, descriptio
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, 0, 0.5, 0.4375, 0.5}, 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 on_place = stairsplus_rotate_and_place
}) })

View File

@ -26,10 +26,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -47,10 +43,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -69,10 +61,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -0.25, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -91,10 +79,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -113,10 +97,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -0.4375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -135,10 +115,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, -0.375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -157,10 +133,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0.375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -179,10 +151,6 @@ function register_slab(modname, subname, recipeitem, groups, images, description
type = "fixed", type = "fixed",
fixed = {-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5}, 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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })

View File

@ -28,13 +28,6 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
{-0.5, 0, 0, 0.5, 0.5, 0.5}, {-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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place 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}, {-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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place 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}, {-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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place 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}, {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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place 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}, {-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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place 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}, {-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(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place on_place = stairsplus_rotate_and_place
}) })
@ -196,6 +153,66 @@ function register_stair(modname, subname, recipeitem, groups, images, descriptio
sounds = default.node_sound_stone_defaults(), sounds = default.node_sound_stone_defaults(),
on_place = stairsplus_rotate_and_place 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 -- Unregister default recipes, optional, see _config.txt

BIN
textures/invisible.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 B