Hi, my username is azekill_DIABLO and i'm an exelent bug-maker(yeah...i know...i have a bad reputation)azekill_DIABLO wrote:depends default <<<!!important!!
and then make the texture = default_whatyouwanthere
Napiophelios wrote:There are many mods that do this.
From Minetest game check out the walls mod.
its pretty simple and straight forward.
The first line:
walls.register = function(wall_name, wall_desc, wall_texture, wall_mat, wall_sounds)
tells the walls.register what info it needs to register the node:
walls.register("walls:cobble", "Cobblestone Wall", "default_cobble.png","default:cobble", default.node_sound_stone_defaults())
I'll give this a try, thanks.
Ahhhh, I didn't think of calling the 2d node a "slab". That is a better idea, I only named it angled_step_two :P
and you do this for each material you want to use.
for the angled stairs mod, having an angled stair and an angled slab;
stairs mod would be a better example to experiment with.
-- Minetest 0.4 mod: stairs
-- See README.txt for licensing and other information.
-- Global namespace for functions
angledstairs = {}
-- Register angledstairs.
-- Node will be called angledstairs:stair_<subname>
function angledstairs.register_stair(subname, recipeitem, groups, images, description, sounds)
groups.stair = 1
minetest.register_node(":angledstairs:stair_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0, 0.0625, 0.5, 0.5},
{0.0625, -0.5, 0.0625, 0.125, 0.5, 0.5},
{0.125, -0.5, 0.125, 0.1875, 0.5, 0.5},
{0.1875, -0.5, 0.1875, 0.25, 0.5, 0.5},
{0.25, -0.5, 0.25, 0.3125, 0.5, 0.5},
{0.3125, -0.5, 0.3125, 0.375, 0.5, 0.5},
{0.375, -0.5, 0.375, 0.4375, 0.5, 0.5},
{0.4375, -0.5, 0.4375, 0.5, 0.5, 0.5},
{-0.5, -0.5, -0.5, -0.4375, 0.5, -0.4375},
{-0.5, -0.5, -0.4375, -0.375, 0.5, -0.375},
{-0.5, -0.5, -0.375, -0.3125, 0.5, -0.3125},
{-0.5, -0.5, -0.3125, -0.25, 0.5, -0.25},
{-0.5, -0.5, -0.25, -0.1875, 0.5, -0.1875},
{-0.5, -0.5, -0.1875, -0.125, 0.5, -0.125},
{-0.5, -0.5, -0.125, -0.0625, 0.5, -0.0625},
{-0.5, -0.5, -0.0625, 0, 0.5, 0},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
},
},
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack
end
local p0 = pointed_thing.under
local p1 = pointed_thing.above
local param2 = 0
local placer_pos = placer:getpos()
if placer_pos then
local dir = {
x = p1.x - placer_pos.x,
y = p1.y - placer_pos.y,
z = p1.z - placer_pos.z
}
param2 = minetest.dir_to_facedir(dir)
end
if p0.y - 1 == p1.y then
param2 = param2 + 20
if param2 == 21 then
param2 = 23
elseif param2 == 23 then
param2 = 21
end
end
return minetest.item_place(itemstack, placer, pointed_thing, param2)
end,
})
minetest.register_craft({
output = 'angledstairs:stair_' .. subname .. ' 6',
recipe = {
{recipeitem, "", ""},
{recipeitem, "", ""},
{recipeitem, recipeitem, recipeitem},
},
})
end
-- Register angledslabs.
-- Node will be called angledstairs:slab_<subname>
function angledstairs.register_slab(subname, recipeitem, groups, images, description, sounds)
groups.slab = 1
minetest.register_node(":angledstairs:slab_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0, 0.0625, 0, 0.5},
{0.0625, -0.5, 0.0625, 0.125, 0, 0.5},
{0.125, -0.5, 0.125, 0.1875, 0, 0.5},
{0.1875, -0.5, 0.1875, 0.25, 0, 0.5},
{0.25, -0.5, 0.25, 0.3125, 0, 0.5},
{0.3125, -0.5, 0.3125, 0.375, 0, 0.5},
{0.375, -0.5, 0.375, 0.4375, 0, 0.5},
{0.4375, -0.5, 0.4375, 0.5, 0, 0.5},
{-0.5, -0.5, -0.5, -0.4375, 0, -0.4375},
{-0.5, -0.5, -0.4375, -0.375, 0, -0.375},
{-0.5, -0.5, -0.375, -0.3125, 0, -0.3125},
{-0.5, -0.5, -0.3125, -0.25, 0, -0.25},
{-0.5, -0.5, -0.25, -0.1875, 0, -0.1875},
{-0.5, -0.5, -0.1875, -0.125, 0, -0.125},
{-0.5, -0.5, -0.125, -0.0625, 0, -0.0625},
{-0.5, -0.5, -0.0625, 0, 0, 0},
},
},
on_place = function(itemstack, placer, pointed_thing)
if pointed_thing.type ~= "node" then
return itemstack
end
-- If it's being placed on an another similar one, replace it with
-- a full block
local slabpos = nil
local slabnode = nil
local p0 = pointed_thing.under
local p1 = pointed_thing.above
local n0 = minetest.get_node(p0)
local n1 = minetest.get_node(p1)
local param2 = 0
local n0_is_upside_down = (n0.name == "angledstairs:slab_" .. subname and
n0.param2 >= 20)
if n0.name == "angledstairs:slab_" .. subname and not n0_is_upside_down and
p0.y + 1 == p1.y then
slabpos = p0
slabnode = n0
elseif n1.name == "angledstairs:slab_" .. subname then
slabpos = p1
slabnode = n1
end
if slabpos then
-- Remove the slab at slabpos
minetest.remove_node(slabpos)
-- Make a fake stack of a single item and try to place it
local fakestack = ItemStack(recipeitem)
fakestack:set_count(itemstack:get_count())
pointed_thing.above = slabpos
local success
fakestack, success = minetest.item_place(fakestack, placer,
pointed_thing)
-- If the item was taken from the fake stack, decrement original
if success then
itemstack:set_count(fakestack:get_count())
-- Else put old node back
else
minetest.set_node(slabpos, slabnode)
end
return itemstack
end
-- Upside down slabs
if p0.y - 1 == p1.y then
-- Turn into full block if pointing at a existing slab
if n0_is_upside_down then
-- Remove the slab at the position of the slab
minetest.remove_node(p0)
-- Make a fake stack of a single item and try to place it
local fakestack = ItemStack(recipeitem)
fakestack:set_count(itemstack:get_count())
pointed_thing.above = p0
local success
fakestack, success = minetest.item_place(fakestack, placer,
pointed_thing)
-- If the item was taken from the fake stack, decrement original
if success then
itemstack:set_count(fakestack:get_count())
-- Else put old node back
else
minetest.set_node(p0, n0)
end
return itemstack
end
-- Place upside down slab
param2 = 20
end
-- If pointing at the side of a upside down slab
if n0_is_upside_down and p0.y + 1 ~= p1.y then
param2 = 20
end
return minetest.item_place(itemstack, placer, pointed_thing, param2)
end,
})
minetest.register_craft({
output = 'angledstairs:slab_' .. subname .. ' 6',
recipe = {
{recipeitem, recipeitem, recipeitem},
{recipeitem, "", ""},
{recipeitem, "", ""},
},
})
end
-- Stair/slab registration function.
-- Nodes will be called angledstairs:{stair,slab}_<subname>
function angledstairs.register_stair_and_slab(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds)
angledstairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds)
angledstairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds)
end
-- Register default stairs and slabs
angledstairs.register_stair_and_slab("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_and_slab("junglewood", "default:junglewood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_junglewood.png"},
"Junglewood Angled-Stair",
"Junglewood Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_and_slab("pine_wood", "default:pine_wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_pine_wood.png"},
"Pine Wood Angled-Stair",
"Pine Wood Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_and_slab("acacia_wood", "default:acacia_wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_acacia_wood.png"},
"Acacia Wood Angled-Stair",
"Acacia Wood Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_and_slab("aspen_wood", "default:aspen_wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_aspen_wood.png"},
"Aspen Wood Angled-Stair",
"Aspen Wood Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_and_slab("stone", "default:stone",
{cracky = 3},
{"default_stone.png"},
"Stone Angled-Stair",
"Stone Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("cobble", "default:cobble",
{cracky = 3},
{"default_cobble.png"},
"Cobblestone Angled-Stair",
"Cobblestone Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("stonebrick", "default:stonebrick",
{cracky = 3},
{"default_stone_brick.png"},
"Stone Brick Angled-Stair",
"Stone Brick Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("desert_stone", "default:desert_stone",
{cracky = 3},
{"default_desert_stone.png"},
"Desertstone Angled-Stair",
"Desertstone Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("desert_cobble", "default:desert_cobble",
{cracky = 3},
{"default_desert_cobble.png"},
"Desert Cobblestone Angled-Stair",
"Desert Cobblestone Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("desert_stonebrick", "default:desert_stonebrick",
{cracky = 3},
{"default_desert_stone_brick.png"},
"Desert Stone Brick Angled-Stair",
"Desert Stone Brick Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("sandstone", "default:sandstone",
{crumbly = 1, cracky = 3},
{"default_sandstone.png"},
"Sandstone Angled-Stair",
"Sandstone Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("sandstonebrick", "default:sandstonebrick",
{cracky = 2},
{"default_sandstone_brick.png"},
"Sandstone Brick Angled-Stair",
"Sandstone Brick Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("obsidian", "default:obsidian",
{cracky = 1, level = 2},
{"default_obsidian.png"},
"Obsidian Angled-Stair",
"Obsidian Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("obsidianbrick", "default:obsidianbrick",
{cracky = 1, level = 2},
{"default_obsidian_brick.png"},
"Obsidian Brick Angled-Stair",
"Obsidian Brick Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("brick", "default:brick",
{cracky = 3},
{"default_brick.png"},
"Brick Angled-Stair",
"Brick Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("straw", "farming:straw",
{snappy = 3, flammable = 4},
{"farming_straw.png"},
"Straw Angled-Stair",
"Straw Angled-Slab",
default.node_sound_leaves_defaults())
angledstairs.register_stair_and_slab("steelblock", "default:steelblock",
{cracky = 1, level = 2},
{"default_steel_block.png"},
"Steel Block Angled-Stair",
"Steel Block Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("copperblock", "default:copperblock",
{cracky = 1, level = 2},
{"default_copper_block.png"},
"Copper Block Angled-Stair",
"Copper Block Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("bronzeblock", "default:bronzeblock",
{cracky = 1, level = 2},
{"default_bronze_block.png"},
"Bronze Block Angled-Stair",
"Bronze Block Angled-Slab",
default.node_sound_stone_defaults())
angledstairs.register_stair_and_slab("goldblock", "default:goldblock",
{cracky = 1},
{"default_gold_block.png"},
"Gold Block Angled-Stair",
"Gold Block Angled-Slab",
default.node_sound_stone_defaults())
-- [Mod] Angled Stairs [angledstairs] (1.0) by TumeniNodes 05-31-2016
angledstairs = {}
-- Register angledstairs.
-- Node will be called angledstairs:angled_stair_<subname>
function angledstairs.register_angled_stair(subname, recipeitem, groups, images, description, sounds)
groups.angledstair = 1
minetest.register_node(":angledstairs:angled_stair_" .. subname, {
description = description,
tiles = images,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0, 0.0625, 0.5, 0.5},
{0.0625, -0.5, 0.0625, 0.125, 0.5, 0.5},
{0.125, -0.5, 0.125, 0.1875, 0.5, 0.5},
{0.1875, -0.5, 0.1875, 0.25, 0.5, 0.5},
{0.25, -0.5, 0.25, 0.3125, 0.5, 0.5},
{0.3125, -0.5, 0.3125, 0.375, 0.5, 0.5},
{0.375, -0.5, 0.375, 0.4375, 0.5, 0.5},
{0.4375, -0.5, 0.4375, 0.5, 0.5, 0.5},
{-0.5, -0.5, -0.5, -0.4375, 0.5, -0.4375},
{-0.5, -0.5, -0.4375, -0.375, 0.5, -0.375},
{-0.5, -0.5, -0.375, -0.3125, 0.5, -0.3125},
{-0.5, -0.5, -0.3125, -0.25, 0.5, -0.25},
{-0.5, -0.5, -0.25, -0.1875, 0.5, -0.1875},
{-0.5, -0.5, -0.1875, -0.125, 0.5, -0.125},
{-0.5, -0.5, -0.125, -0.0625, 0.5, -0.0625},
{-0.5, -0.5, -0.0625, 0, 0.5, 0},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
}
}
})
end
-- Register angledstairs.
-- Node will be called angledstairs:angled_slab_<subname>
function angledstairs.register_angled_slab(subname, recipeitem, groups, images, description, sounds)
groups.angledslab = 1
minetest.register_node(":angledstairs:angled_slab_" .. subname, {
description = description,
tiles = images,
drawtype = "nodebox",
paramtype = "light",
paramtype2 = "facedir",
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0, 0.0625, 0, 0.5},
{0.0625, -0.5, 0.0625, 0.125, 0, 0.5},
{0.125, -0.5, 0.125, 0.1875, 0, 0.5},
{0.1875, -0.5, 0.1875, 0.25, 0, 0.5},
{0.25, -0.5, 0.25, 0.3125, 0, 0.5},
{0.3125, -0.5, 0.3125, 0.375, 0, 0.5},
{0.375, -0.5, 0.375, 0.4375, 0, 0.5},
{0.4375, -0.5, 0.4375, 0.5, 0, 0.5},
{-0.5, -0.5, -0.5, -0.4375, 0, -0.4375},
{-0.5, -0.5, -0.4375, -0.375, 0, -0.375},
{-0.5, -0.5, -0.375, -0.3125, 0, -0.3125},
{-0.5, -0.5, -0.3125, -0.25, 0, -0.25},
{-0.5, -0.5, -0.25, -0.1875, 0, -0.1875},
{-0.5, -0.5, -0.1875, -0.125, 0, -0.125},
{-0.5, -0.5, -0.125, -0.0625, 0, -0.0625},
{-0.5, -0.5, -0.0625, 0, 0, 0},
}
}
})
end
-- Angled stair/slab registration function.
-- Nodes will be called angledstairs:{angled_stair,angled_slab}_<subname>
function angledstairs.register_angled_stair_and_angled_slab(subname, recipeitem, groups, images,desc_angled_stair, desc_angled_slab, sounds)
angledstairs.register_angled_stair(subname, recipeitem, groups, images, desc_angled_stair, sounds)
angledstairs.register_angled_slab(subname, recipeitem, groups, images, desc_angled_slab, sounds)
end
-- Register angled stairs and slabs
angledstairs.register_angled_stair_and_angled_slab("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled Stair",
"Wooden Angled Slab",
default.node_sound_wood_defaults())
angledstairs.register_angled_stair_and_angled_slab("junglewood", "default:junglewood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_junglewood.png"},
"Junglewood Angled Stair",
"Junglewood Angled Slab",
default.node_sound_wood_defaults())
angledstairs.register_angled_stair_and_angled_slab("pine_wood", "default:pine_wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_pine_wood.png"},
"Pine Wood Stair",
"Pine Wood Slab",
default.node_sound_wood_defaults())
angledstairs.register_angled_stair_and_angled_slab("acacia_wood", "default:acacia_wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_acacia_wood.png"},
"Acacia Wood Stair",
"Acacia Wood Slab",
default.node_sound_wood_defaults())
angledstairs.register_angled_stair_and_angled_slab("aspen_wood", "default:aspen_wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_aspen_wood.png"},
"Aspen Wood Stair",
"Aspen Wood Slab",
default.node_sound_wood_defaults())
angledstairs.register_angled_stair_and_angled_slab("stone", "default:stone",
{cracky = 3},
{"default_stone.png"},
"Stone Stair",
"Stone Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("cobble", "default:cobble",
{cracky = 3},
{"default_cobble.png"},
"Cobblestone Stair",
"Cobblestone Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("stonebrick", "default:stonebrick",
{cracky = 3},
{"default_stone_brick.png"},
"Stone Brick Stair",
"Stone Brick Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("desert_stone", "default:desert_stone",
{cracky = 3},
{"default_desert_stone.png"},
"Desertstone Stair",
"Desertstone Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("desert_cobble", "default:desert_cobble",
{cracky = 3},
{"default_desert_cobble.png"},
"Desert Cobblestone Stair",
"Desert Cobblestone Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("desert_stonebrick", "default:desert_stonebrick",
{cracky = 3},
{"default_desert_stone_brick.png"},
"Desert Stone Brick Stair",
"Desert Stone Brick Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("sandstone", "default:sandstone",
{crumbly = 1, cracky = 3},
{"default_sandstone.png"},
"Sandstone Stair",
"Sandstone Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("sandstonebrick", "default:sandstonebrick",
{cracky = 2},
{"default_sandstone_brick.png"},
"Sandstone Brick Stair",
"Sandstone Brick Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("obsidian", "default:obsidian",
{cracky = 1, level = 2},
{"default_obsidian.png"},
"Obsidian Stair",
"Obsidian Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("obsidianbrick", "default:obsidianbrick",
{cracky = 1, level = 2},
{"default_obsidian_brick.png"},
"Obsidian Brick Stair",
"Obsidian Brick Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("brick", "default:brick",
{cracky = 3},
{"default_brick.png"},
"Brick Stair",
"Brick Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("steelblock", "default:steelblock",
{cracky = 1, level = 2},
{"default_steel_block.png"},
"Steel Block Stair",
"Steel Block Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("copperblock", "default:copperblock",
{cracky = 1, level = 2},
{"default_copper_block.png"},
"Copper Block Stair",
"Copper Block Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("bronzeblock", "default:bronzeblock",
{cracky = 1, level = 2},
{"default_bronze_block.png"},
"Bronze Block Stair",
"Bronze Block Slab",
default.node_sound_stone_defaults())
angledstairs.register_angled_stair_and_angled_slab("goldblock", "default:goldblock",
{cracky = 1},
{"default_gold_block.png"},
"Gold Block Stair",
"Gold Block Slab",
default.node_sound_stone_defaults())TumeniNodes wrote:Only issue I face now is a texture issue
I want to fix this so that no matter which angle the node is placed, the textures will align. (is this facedir issue?)
Napiophelios wrote:TumeniNodes wrote:Only issue I face now is a texture issue
I want to fix this so that no matter which angle the node is placed, the textures will align. (is this facedir issue?)
you would have to register another node that is a mirror image of the first node's coordinates.
Napiophelios wrote:Actually, that just covers from the front view.
you would need two more that are reverses of those nodes.
So for perfect texture alignment you will need four nodes. :(
hardly worth the effort...but it does look nicer.
Napiophelios wrote:hardly worth the effort...but it does look nicer.
-- Minetest 0.4 mod: stairs
-- See README.txt for licensing and other information.
-- Global namespace for functions
angledstairs = {}
-- Register angledstairs.
-- Node will be called angledstairs:stair_<subname>
function angledstairs.register_stair_alts(subname, recipeitem, groups, images, description, sounds)
groups.not_in_creative_inventory = 1
minetest.register_node(":angledstairs:stair_1ne_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:stair_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.4375, 0, -0.5, -0.375, 0.5, 0.375},
{-0.375, 0, -0.5, -0.3125, 0.5, 0.3125},
{-0.3125, 0, -0.5, -0.25, 0.5, 0.25},
{-0.25, 0, -0.5, -0.1875, 0.5, 0.1875},
{-0.1875, 0, -0.5, -0.125, 0.5, 0.125},
{-0.125, 0, -0.5, -0.0625, 0.5, 0.0625},
{-0.0625, 0, -0.5, -0, 0.5, -0},
{-0, 0, -0.5, 0.0625, 0.5, -0.0625},
{0.0625, 0, -0.5, 0.125, 0.5, -0.125},
{0.125, 0, -0.5, 0.1875, 0.5, -0.1875},
{0.1875, 0, -0.5, 0.25, 0.5, -0.25},
{0.25, 0, -0.5, 0.3125, 0.5, -0.3125},
{0.3125, 0, -0.5, 0.375, 0.5, -0.375},
{0.375, 0, -0.5, 0.4375, 0.5, -0.4375},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, -0.5, -0.4375, 0.5, 0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_1ne_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_2se_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:stair_2se_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:stair_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.4375, 0, -0.375, -0.375, 0.5, 0.5},
{-0.375, 0, -0.3125, -0.3125, 0.5, 0.5},
{-0.3125, 0, -0.25, -0.25, 0.5, 0.5},
{-0.25, 0, -0.1875, -0.1875, 0.5, 0.5},
{-0.1875, 0, -0.125, -0.125, 0.5, 0.5},
{-0.125, 0, -0.0625, -0.0625, 0.5, 0.5},
{-0.0625, 0, 0, -0, 0.5, 0.5},
{-0, 0, 0.0625, 0.0625, 0.5, 0.5},
{0.0625, 0, 0.125, 0.125, 0.5, 0.5},
{0.125, 0, 0.1875, 0.1875, 0.5, 0.5},
{0.1875, 0, 0.25, 0.25, 0.5, 0.5},
{0.25, 0, 0.3125, 0.3125, 0.5, 0.5},
{0.3125, 0, 0.375, 0.375, 0.5, 0.5},
{0.375, 0, 0.4375, 0.4375, 0.5, 0.5},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, -0.4375, -0.4375, 0.5, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_2se_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:stair_4nw_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:stair_" .. subname,
node_box = {
type = "fixed",
fixed = {
{0.375, 0, -0.5, 0.4375, 0.5, 0.375},
{0.3125, 0, -0.5, 0.375, 0.5, 0.3125},
{0.25, 0, -0.5, 0.3125, 0.5, 0.25},
{0.1875, 0, -0.5, 0.25, 0.5, 0.1875},
{0.125, 0, -0.5, 0.1875, 0.5, 0.125},
{0.0625, 0, -0.5, 0.125, 0.5, 0.0625},
{0, 0, -0.5, 0.0625, 0.5, -0},
{-0.0625, 0, -0.5, 0, 0.5, -0.0625},
{-0.125, 0, -0.5, -0.0625, 0.5, -0.125},
{-0.1875, 0, -0.5, -0.125, 0.5, -0.1875},
{-0.25, 0, -0.5, -0.1875, 0.5, -0.25},
{-0.3125, 0, -0.5, -0.25, 0.5, -0.3125},
{-0.375, 0, -0.5, -0.3125, 0.5, -0.375},
{-0.4375, 0, -0.5, -0.375, 0.5, -0.4375},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{0.4375, 0, -0.5, 0.5, 0.5, 0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_4nw_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_1ne_" .. subname, param2 = node.param2})
end
end,
})
end
function angledstairs.register_stair(subname, recipeitem, groups, images, description, sounds)
groups.stair=1
minetest.register_node(":angledstairs:stair_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{0.375, 0, -0.375, 0.4375, 0.5, 0.5},
{0.3125, 0, -0.3125, 0.375, 0.5, 0.5},
{0.25, 0, -0.25, 0.3125, 0.5, 0.5},
{0.1875, 0, -0.1875, 0.25, 0.5, 0.5},
{0.125, 0, -0.125, 0.1875, 0.5, 0.5},
{0.0625, 0, -0.0625, 0.125, 0.5, 0.5},
{0, 0, 0, 0.0625, 0.5, 0.5},
{-0.0625, 0, 0.0625, 0, 0.5, 0.5},
{-0.125, 0, 0.125, -0.0625, 0.5, 0.5},
{-0.1875, 0, 0.1875, -0.125, 0.5, 0.5},
{-0.25, 0, 0.25, -0.1875, 0.5, 0.5},
{-0.3125, 0, 0.3125, -0.25, 0.5, 0.5},
{-0.375, 0, 0.375, -0.3125, 0.5, 0.5},
{-0.4375, 0, 0.4375, -0.375, 0.5, 0.5},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{0.4375, 0, -0.4375, 0.5, 0.5, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_4nw_" .. subname, param2 = node.param2})
end
end,
})
end
-- Register angledslabs.
-- Node will be called angledstairs:slab_<subname>
function angledstairs.register_slab_alts(subname, recipeitem, groups, images, description, sounds)
groups.not_in_creative_inventory = 1
minetest.register_node(":angledstairs:slab_1ne_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:slab_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, -0.4375},
{-0.5, -0.5, -0.4375, 0.4375, 0, -0.375},
{-0.5, -0.5, -0.375, 0.375, 0, -0.3125},
{-0.5, -0.5, -0.3125, 0.3125, 0, -0.25},
{-0.5, -0.5, -0.25, 0.25, 0, -0.1875},
{-0.5, -0.5, -0.1875, 0.1875, 0, -0.125},
{-0.5, -0.5, -0.125, 0.125, 0, -0.0625},
{-0.5, -0.5, -0.0625, 0.0625, 0, -0},
{-0.5, -0.5, -0, -0, 0, 0.0625},
{-0.5, -0.5, 0.0625, -0.0625, 0, 0.125},
{-0.5, -0.5, 0.125, -0.125, 0, 0.1875},
{-0.5, -0.5, 0.1875, -0.1875, 0, 0.25},
{-0.5, -0.5, 0.25, -0.25, 0, 0.3125},
{-0.5, -0.5, 0.3125, -0.3125, 0, 0.375},
{-0.5, -0.5, 0.375, -0.375, 0, 0.4375},
{-0.5, -0.5, 0.4375, -0.4375, 0, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_1ne_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_2se_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:slab_2se_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:slab_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4375, 0.5, 0, 0.5},
{-0.5, -0.5, 0.375, 0.4375, 0, 0.4375},
{-0.5, -0.5, 0.3125, 0.375, 0, 0.375},
{-0.5, -0.5, 0.25, 0.3125, 0, 0.3125},
{-0.5, -0.5, 0.1875, 0.25, 0, 0.25},
{-0.5, -0.5, 0.125, 0.1875, 0, 0.1875},
{-0.5, -0.5, 0.0625, 0.125, 0, 0.125},
{-0.5, -0.5, 0, 0.0625, 0, 0.0625},
{-0.5, -0.5, -0.0625, -0, 0, 0},
{-0.5, -0.5, -0.125, -0.0625, 0, -0.0625},
{-0.5, -0.5, -0.1875, -0.125, 0, -0.125},
{-0.5, -0.5, -0.25, -0.1875, 0, -0.1875},
{-0.5, -0.5, -0.3125, -0.25, 0, -0.25},
{-0.5, -0.5, -0.375, -0.3125, 0, -0.3125},
{-0.5, -0.5, -0.4375, -0.375, 0, -0.375},
{-0.5, -0.5, -0.5, -0.4375, 0, -0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_2se_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:slab_4nw_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:slab_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, -0.4375},
{-0.4375, -0.5, -0.4375, 0.5, 0, -0.375},
{-0.375, -0.5, -0.375, 0.5, 0, -0.3125},
{-0.3125, -0.5, -0.3125, 0.5, 0, -0.25},
{-0.25, -0.5, -0.25, 0.5, 0, -0.1875},
{-0.1875, -0.5, -0.1875, 0.5, 0, -0.125},
{-0.125, -0.5, -0.125, 0.5, 0, -0.0625},
{-0.0625, -0.5, -0.0625, 0.5, 0, -0},
{0, -0.5, -0, 0.5, 0, 0.0625},
{0.0625, -0.5, 0.0625, 0.5, 0, 0.125},
{0.125, -0.5, 0.125, 0.5, 0, 0.1875},
{0.1875, -0.5, 0.1875, 0.5, 0, 0.25},
{0.25, -0.5, 0.25, 0.5, 0, 0.3125},
{0.3125, -0.5, 0.3125, 0.5, 0, 0.375},
{0.375, -0.5, 0.375, 0.5, 0, 0.4375},
{0.4375, -0.5, 0.4375, 0.5, 0, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_4nw_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_1ne_" .. subname, param2 = node.param2})
end
end,
})
end
function angledstairs.register_slab(subname, recipeitem, groups, images, description, sounds)
groups.slab =1
minetest.register_node(":angledstairs:slab_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4375, 0.5, 0, 0.5},
{-0.4375, -0.5, 0.375, 0.5, 0, 0.4375},
{-0.375, -0.5, 0.3125, 0.5, 0, 0.375},
{-0.3125, -0.5, 0.25, 0.5, 0, 0.3125},
{-0.25, -0.5, 0.1875, 0.5, 0, 0.25},
{-0.1875, -0.5, 0.125, 0.5, 0, 0.1875},
{-0.125, -0.5, 0.0625, 0.5, 0, 0.125},
{-0.0625, -0.5, 0, 0.5, 0, 0.0625},
{0, -0.5, -0.0625, 0.5, 0, 0},
{0.0625, -0.5, -0.125, 0.5, 0, -0.0625},
{0.125, -0.5, -0.1875, 0.5, 0, -0.125},
{0.1875, -0.5, -0.25, 0.5, 0, -0.1875},
{0.25, -0.5, -0.3125, 0.5, 0, -0.25},
{0.3125, -0.5, -0.375, 0.5, 0, -0.3125},
{0.375, -0.5, -0.4375, 0.5, 0, -0.375},
{0.4375, -0.5, -0.5, 0.5, 0, -0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_4nw_" .. subname, param2 = node.param2})
end
end,
})
end
-- Stair/slab registration function.
-- Nodes will be called angledstairs:{stair,slab}_<subname>
angledstairs.register_stair("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_alts("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_slab("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_slab_alts("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
Napiophelios wrote:Like I said, hardly worth the effort :)
Hi, my username is azekill_DIABLO and i'm an exelent bug-maker(yeah...i know...i have a bad reputation)Napiophelios wrote:@TumeniNodes :
I found a way to have all your nodes without cluttering up the inventory.
Place a node then punch it with the same type node and it will "rotate"
Keep punching the node till you have it positioned the way you want it.
It works pretty good tho and allows for the texture alignment you were going for.
There will be only one node per material in the inventory,
however to do this I had to go the long way about it with the code.
I am not a coder so this is just more regurgitated code from other mods.
Take a look and maybe you can refine this.
For testing purposes, the code below only registers default woodYour phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
-- Minetest 0.4 mod: stairs
-- See README.txt for licensing and other information.
-- Global namespace for functions
angledstairs = {}
-- Register angledstairs.
-- Node will be called angledstairs:stair_<subname>
function angledstairs.register_stair_alts(subname, recipeitem, groups, images, description, sounds)
groups.not_in_creative_inventory = 1
minetest.register_node(":angledstairs:stair_1ne_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:stair_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.4375, 0, -0.5, -0.375, 0.5, 0.375},
{-0.375, 0, -0.5, -0.3125, 0.5, 0.3125},
{-0.3125, 0, -0.5, -0.25, 0.5, 0.25},
{-0.25, 0, -0.5, -0.1875, 0.5, 0.1875},
{-0.1875, 0, -0.5, -0.125, 0.5, 0.125},
{-0.125, 0, -0.5, -0.0625, 0.5, 0.0625},
{-0.0625, 0, -0.5, -0, 0.5, -0},
{-0, 0, -0.5, 0.0625, 0.5, -0.0625},
{0.0625, 0, -0.5, 0.125, 0.5, -0.125},
{0.125, 0, -0.5, 0.1875, 0.5, -0.1875},
{0.1875, 0, -0.5, 0.25, 0.5, -0.25},
{0.25, 0, -0.5, 0.3125, 0.5, -0.3125},
{0.3125, 0, -0.5, 0.375, 0.5, -0.375},
{0.375, 0, -0.5, 0.4375, 0.5, -0.4375},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, -0.5, -0.4375, 0.5, 0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_1ne_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_2se_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:stair_2se_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:stair_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.4375, 0, -0.375, -0.375, 0.5, 0.5},
{-0.375, 0, -0.3125, -0.3125, 0.5, 0.5},
{-0.3125, 0, -0.25, -0.25, 0.5, 0.5},
{-0.25, 0, -0.1875, -0.1875, 0.5, 0.5},
{-0.1875, 0, -0.125, -0.125, 0.5, 0.5},
{-0.125, 0, -0.0625, -0.0625, 0.5, 0.5},
{-0.0625, 0, 0, -0, 0.5, 0.5},
{-0, 0, 0.0625, 0.0625, 0.5, 0.5},
{0.0625, 0, 0.125, 0.125, 0.5, 0.5},
{0.125, 0, 0.1875, 0.1875, 0.5, 0.5},
{0.1875, 0, 0.25, 0.25, 0.5, 0.5},
{0.25, 0, 0.3125, 0.3125, 0.5, 0.5},
{0.3125, 0, 0.375, 0.375, 0.5, 0.5},
{0.375, 0, 0.4375, 0.4375, 0.5, 0.5},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{-0.5, 0, -0.4375, -0.4375, 0.5, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_2se_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:stair_4nw_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:stair_" .. subname,
node_box = {
type = "fixed",
fixed = {
{0.375, 0, -0.5, 0.4375, 0.5, 0.375},
{0.3125, 0, -0.5, 0.375, 0.5, 0.3125},
{0.25, 0, -0.5, 0.3125, 0.5, 0.25},
{0.1875, 0, -0.5, 0.25, 0.5, 0.1875},
{0.125, 0, -0.5, 0.1875, 0.5, 0.125},
{0.0625, 0, -0.5, 0.125, 0.5, 0.0625},
{0, 0, -0.5, 0.0625, 0.5, -0},
{-0.0625, 0, -0.5, 0, 0.5, -0.0625},
{-0.125, 0, -0.5, -0.0625, 0.5, -0.125},
{-0.1875, 0, -0.5, -0.125, 0.5, -0.1875},
{-0.25, 0, -0.5, -0.1875, 0.5, -0.25},
{-0.3125, 0, -0.5, -0.25, 0.5, -0.3125},
{-0.375, 0, -0.5, -0.3125, 0.5, -0.375},
{-0.4375, 0, -0.5, -0.375, 0.5, -0.4375},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{0.4375, 0, -0.5, 0.5, 0.5, 0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_4nw_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_1ne_" .. subname, param2 = node.param2})
end
end,
})
end
function angledstairs.register_stair(subname, recipeitem, groups, images, description, sounds)
groups.stair=1
minetest.register_node(":angledstairs:stair_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{0.375, 0, -0.375, 0.4375, 0.5, 0.5},
{0.3125, 0, -0.3125, 0.375, 0.5, 0.5},
{0.25, 0, -0.25, 0.3125, 0.5, 0.5},
{0.1875, 0, -0.1875, 0.25, 0.5, 0.5},
{0.125, 0, -0.125, 0.1875, 0.5, 0.5},
{0.0625, 0, -0.0625, 0.125, 0.5, 0.5},
{0, 0, 0, 0.0625, 0.5, 0.5},
{-0.0625, 0, 0.0625, 0, 0.5, 0.5},
{-0.125, 0, 0.125, -0.0625, 0.5, 0.5},
{-0.1875, 0, 0.1875, -0.125, 0.5, 0.5},
{-0.25, 0, 0.25, -0.1875, 0.5, 0.5},
{-0.3125, 0, 0.3125, -0.25, 0.5, 0.5},
{-0.375, 0, 0.375, -0.3125, 0.5, 0.5},
{-0.4375, 0, 0.4375, -0.375, 0.5, 0.5},
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
{0.4375, 0, -0.4375, 0.5, 0.5, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:stair_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:stair_" .. subname then
minetest.add_node(pos, {name = "angledstairs:stair_4nw_" .. subname, param2 = node.param2})
end
end,
})
end
-- Register angledslabs.
-- Node will be called angledstairs:slab_<subname>
function angledstairs.register_slab_alts(subname, recipeitem, groups, images, description, sounds)
groups.not_in_creative_inventory = 1
minetest.register_node(":angledstairs:slab_1ne_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:slab_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, -0.4375},
{-0.5, -0.5, -0.4375, 0.4375, 0, -0.375},
{-0.5, -0.5, -0.375, 0.375, 0, -0.3125},
{-0.5, -0.5, -0.3125, 0.3125, 0, -0.25},
{-0.5, -0.5, -0.25, 0.25, 0, -0.1875},
{-0.5, -0.5, -0.1875, 0.1875, 0, -0.125},
{-0.5, -0.5, -0.125, 0.125, 0, -0.0625},
{-0.5, -0.5, -0.0625, 0.0625, 0, -0},
{-0.5, -0.5, -0, -0, 0, 0.0625},
{-0.5, -0.5, 0.0625, -0.0625, 0, 0.125},
{-0.5, -0.5, 0.125, -0.125, 0, 0.1875},
{-0.5, -0.5, 0.1875, -0.1875, 0, 0.25},
{-0.5, -0.5, 0.25, -0.25, 0, 0.3125},
{-0.5, -0.5, 0.3125, -0.3125, 0, 0.375},
{-0.5, -0.5, 0.375, -0.375, 0, 0.4375},
{-0.5, -0.5, 0.4375, -0.4375, 0, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_1ne_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_2se_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:slab_2se_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:slab_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4375, 0.5, 0, 0.5},
{-0.5, -0.5, 0.375, 0.4375, 0, 0.4375},
{-0.5, -0.5, 0.3125, 0.375, 0, 0.375},
{-0.5, -0.5, 0.25, 0.3125, 0, 0.3125},
{-0.5, -0.5, 0.1875, 0.25, 0, 0.25},
{-0.5, -0.5, 0.125, 0.1875, 0, 0.1875},
{-0.5, -0.5, 0.0625, 0.125, 0, 0.125},
{-0.5, -0.5, 0, 0.0625, 0, 0.0625},
{-0.5, -0.5, -0.0625, -0, 0, 0},
{-0.5, -0.5, -0.125, -0.0625, 0, -0.0625},
{-0.5, -0.5, -0.1875, -0.125, 0, -0.125},
{-0.5, -0.5, -0.25, -0.1875, 0, -0.1875},
{-0.5, -0.5, -0.3125, -0.25, 0, -0.25},
{-0.5, -0.5, -0.375, -0.3125, 0, -0.3125},
{-0.5, -0.5, -0.4375, -0.375, 0, -0.375},
{-0.5, -0.5, -0.5, -0.4375, 0, -0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_2se_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_" .. subname, param2 = node.param2})
end
end,
})
minetest.register_node(":angledstairs:slab_4nw_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
drop = "angledstairs:slab_" .. subname,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, 0, -0.4375},
{-0.4375, -0.5, -0.4375, 0.5, 0, -0.375},
{-0.375, -0.5, -0.375, 0.5, 0, -0.3125},
{-0.3125, -0.5, -0.3125, 0.5, 0, -0.25},
{-0.25, -0.5, -0.25, 0.5, 0, -0.1875},
{-0.1875, -0.5, -0.1875, 0.5, 0, -0.125},
{-0.125, -0.5, -0.125, 0.5, 0, -0.0625},
{-0.0625, -0.5, -0.0625, 0.5, 0, -0},
{0, -0.5, -0, 0.5, 0, 0.0625},
{0.0625, -0.5, 0.0625, 0.5, 0, 0.125},
{0.125, -0.5, 0.125, 0.5, 0, 0.1875},
{0.1875, -0.5, 0.1875, 0.5, 0, 0.25},
{0.25, -0.5, 0.25, 0.5, 0, 0.3125},
{0.3125, -0.5, 0.3125, 0.5, 0, 0.375},
{0.375, -0.5, 0.375, 0.5, 0, 0.4375},
{0.4375, -0.5, 0.4375, 0.5, 0, 0.5},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_4nw_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_1ne_" .. subname, param2 = node.param2})
end
end,
})
end
function angledstairs.register_slab(subname, recipeitem, groups, images, description, sounds)
groups.slab =1
minetest.register_node(":angledstairs:slab_" .. subname, {
description = description,
drawtype = "nodebox",
tiles = images,
paramtype = "light",
paramtype2 = "facedir",
is_ground_content = false,
groups = groups,
sounds = sounds,
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, 0.4375, 0.5, 0, 0.5},
{-0.4375, -0.5, 0.375, 0.5, 0, 0.4375},
{-0.375, -0.5, 0.3125, 0.5, 0, 0.375},
{-0.3125, -0.5, 0.25, 0.5, 0, 0.3125},
{-0.25, -0.5, 0.1875, 0.5, 0, 0.25},
{-0.1875, -0.5, 0.125, 0.5, 0, 0.1875},
{-0.125, -0.5, 0.0625, 0.5, 0, 0.125},
{-0.0625, -0.5, 0, 0.5, 0, 0.0625},
{0, -0.5, -0.0625, 0.5, 0, 0},
{0.0625, -0.5, -0.125, 0.5, 0, -0.0625},
{0.125, -0.5, -0.1875, 0.5, 0, -0.125},
{0.1875, -0.5, -0.25, 0.5, 0, -0.1875},
{0.25, -0.5, -0.3125, 0.5, 0, -0.25},
{0.3125, -0.5, -0.375, 0.5, 0, -0.3125},
{0.375, -0.5, -0.4375, 0.5, 0, -0.375},
{0.4375, -0.5, -0.5, 0.5, 0, -0.4375},
},
},
on_punch = function(pos, node, puncher)
if node.name == "angledstairs:slab_" .. subname and
puncher:get_wielded_item():get_name() == "angledstairs:slab_" .. subname then
minetest.add_node(pos, {name = "angledstairs:slab_4nw_" .. subname, param2 = node.param2})
end
end,
})
end
-- Stair/slab registration function.
-- Nodes will be called angledstairs:{stair,slab}_<subname>
angledstairs.register_stair("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_alts("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_slab("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_slab_alts("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
-- Stair/slab registration function.
-- Nodes will be called angledstairs:{stair,slab}_<subname>
function angledstairs.register_stair_slab(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds)
angledstairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds)
angledstairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds)
end
function angledstairs.register_stair_slab_alts(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds)
angledstairs.register_stair_alts(subname, recipeitem, groups, images, desc_stair, sounds)
angledstairs.register_slab_alts(subname, recipeitem, groups, images, desc_slab, sounds)
end
angledstairs.register_stair_slab("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_slab_alts("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())Napiophelios wrote:Like I said earlier, I went the long way about it.
The node registration can be condensed a little like so:Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
-- Stair/slab registration function.
-- Nodes will be called angledstairs:{stair,slab}_<subname>
function angledstairs.register_stair_slab(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds)
angledstairs.register_stair(subname, recipeitem, groups, images, desc_stair, sounds)
angledstairs.register_slab(subname, recipeitem, groups, images, desc_slab, sounds)
end
function angledstairs.register_stair_slab_alts(subname, recipeitem, groups, images,
desc_stair, desc_slab, sounds)
angledstairs.register_stair_alts(subname, recipeitem, groups, images, desc_stair, sounds)
angledstairs.register_slab_alts(subname, recipeitem, groups, images, desc_slab, sounds)
end
angledstairs.register_stair_slab("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
angledstairs.register_stair_slab_alts("wood", "default:wood",
{snappy = 2, choppy = 2, oddly_breakable_by_hand = 2, flammable = 3},
{"default_wood.png"},
"Wooden Angled-Stair",
"Wooden Angled-Slab",
default.node_sound_wood_defaults())
And if you can find a way to keep the alternate nodes out of the inventory
without changing the default groups for the materials used;
You can probably condense it even more, this was just a rough idea to begin with.
Good Luck with your mod!! :)
Users browsing this forum: No registered users and 7 guests