diff --git a/mods/stairs/README.txt b/mods/stairs/README.txt new file mode 100644 index 00000000..be6812d3 --- /dev/null +++ b/mods/stairs/README.txt @@ -0,0 +1,20 @@ +Based on Minetest Game mod: stairs +================================== + +Authors of source code +---------------------- +Originally by Kahrl (LGPLv2.1+) and +celeron55, Perttu Ahola (LGPLv2.1+) +Various Minetest developers and contributors (LGPLv2.1+) + +http://www.gnu.org/licenses/lgpl-2.1.html + +License of media (textures and sounds) +-------------------------------------- +Attribution-ShareAlike 3.0 Unported (CC BY-SA 3.0) +http://creativecommons.org/licenses/by-sa/3.0/ + +Note: This mod has been amended to add new features like transparent and glowing +stairs, sloped stairs, recipes to return stairs back into blocks and also to be +used as fuel for furnaces, and alternative placement functions that use +on_rotate and sneak key. diff --git a/mods/stairs/screenshot.png b/mods/stairs/screenshot.png new file mode 100644 index 00000000..5c329015 Binary files /dev/null and b/mods/stairs/screenshot.png differ diff --git a/mods/stairs/stairs.lua b/mods/stairs/stairs.lua new file mode 100644 index 00000000..b9f98c61 --- /dev/null +++ b/mods/stairs/stairs.lua @@ -0,0 +1,554 @@ + +local grp = {} -- Helper + +--= Default Minetest + +-- Wood types + +stairs.register_all("wood", "default:wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_wood.png"}, + "Wooden", + stairs.wood, false) + +stairs.register_all("junglewood", "default:junglewood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2}, + {"default_junglewood.png"}, + "Jungle Wood", + stairs.wood, false) + +stairs.register_all("pine_wood", "default:pinewood", + {choppy = 3, oddly_breakable_by_hand = 1, flammable = 3}, + {"default_pine_wood.png"}, + "Pine Wood", + stairs.wood, false) + +-- Register aliases for new pine node names +minetest.register_alias("stairs:stair_pinewood", "stairs:stair_pine_wood") +minetest.register_alias("stairs:slab_pinewood", "stairs:slab_pine_wood") + +stairs.register_all("acacia_wood", "default:acacia_wood", + {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_acacia_wood.png"}, + "Acacia Wood", + stairs.wood, false) + +stairs.register_all("aspen_wood", "default:aspen_wood", + {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3}, + {"default_aspen_wood.png"}, + "Aspen Wood", + stairs.wood, false) + +-- Stone types + +stairs.register_all("stone", "default:stone", + {cracky = 3}, + {"default_stone.png"}, + "Stone", + stairs.stone, true) + +stairs.register_all("stonebrick", "default:stonebrick", + {cracky = 2}, + {"default_stone_brick.png"}, + "Stone Brick", + stairs.stone, false) + +stairs.register_all("stone_block", "default:stone_block", + {cracky = 2}, + {"default_stone_block.png"}, + "Stone Block", + stairs.stone, true) + +stairs.register_all("cobble", "default:cobble", + {cracky = 3}, + {"default_cobble.png"}, + "Cobble", + stairs.stone, true) + +stairs.register_all("mossycobble", "default:mossycobble", + {cracky = 3}, + {"default_mossycobble.png"}, + "Mossy Cobble", + stairs.stone, true) + +stairs.register_all("desert_stone", "default:desert_stone", + {cracky = 3}, + {"default_desert_stone.png"}, + "Desert Stone", + stairs.stone, true) + +stairs.register_all("desert_stonebrick", "default:desert_stonebrick", + {cracky = 2}, + {"default_desert_stone_brick.png"}, + "Desert Stone Brick", + stairs.stone, false) + +stairs.register_all("desert_stone_block", "default:desert_stone_block", + {cracky = 2}, + {"default_desert_stone_block.png"}, + "Desert Stone Block", + stairs.stone, true) + +stairs.register_all("desert_cobble", "default:desert_cobble", + {cracky = 3}, + {"default_desert_cobble.png"}, + "Desert Cobble", + stairs.stone, true) + +-- Sandstone types + +stairs.register_all("sandstone", "default:sandstone", + {crumbly = 1, cracky = 3}, + {"default_sandstone.png"}, + "Sandstone", + stairs.stone, true) + +stairs.register_all("sandstonebrick", "default:sandstonebrick", + {cracky = 2}, + {"default_sandstone_brick.png"}, + "Sandstone Brick", + stairs.stone, false) + +stairs.register_all("sandstone_block", "default:sandstone_block", + {cracky = 2}, + {"default_sandstone_block.png"}, + "Sandstone Block", + stairs.stone, true) + +stairs.register_all("desert_sandstone", "default:desert_sandstone", + {crumbly = 1, cracky = 3}, + {"default_desert_sandstone.png"}, + "Desert Sandstone", + stairs.stone, true) + +stairs.register_all("desert_sandstone_brick", "default:desert_sandstone_brick", + {cracky = 2}, + {"default_desert_sandstone_brick.png"}, + "Desert Sandstone Brick", + stairs.stone, false) + +stairs.register_all("desert_sandstone_block", "default:desert_sandstone_block", + {cracky = 2}, + {"default_desert_sandstone_block.png"}, + "Desert Sandstone Block", + stairs.stone, true) + +stairs.register_all("silver_sandstone", "default:silver_sandstone", + {crumbly = 1, cracky = 3}, + {"default_silver_sandstone.png"}, + "Silver Sandstone", + stairs.stone, true) + +stairs.register_all("silver_sandstone_brick", "default:silver_sandstone_brick", + {cracky = 2}, + {"default_silver_sandstone_brick.png"}, + "Silver Sandstone Brick", + stairs.stone, false) + +stairs.register_all("silver_sandstone_block", "default:silver_sandstone_block", + {cracky = 2}, + {"default_silver_sandstone_block.png"}, + "Silver Sandstone Block", + stairs.stone, true) + +-- Obsidian + +stairs.register_all("obsidian", "default:obsidian", + {cracky = 1, level = 2}, + {"default_obsidian.png"}, + "Obsidian", + stairs.stone, true) + +stairs.register_all("obsidianbrick", "default:obsidianbrick", + {cracky = 1, level = 2}, + {"default_obsidian_brick.png"}, + "Obsidian Brick", + stairs.stone, false) + +stairs.register_all("obsidian_block", "default:obsidian_block", + {cracky = 1, level = 2}, + {"default_obsidian_block.png"}, + "Obsidian block", + stairs.stone, true) + +-- Cloud (with overrides) + +stairs.register_stair("cloud", "default:cloud", + {unbreakable = 1, not_in_creative_inventory = 1}, + {"default_cloud.png"}, + "Cloud Stair", + stairs.wool) + +minetest.override_item("stairs:stair_cloud", { + on_blast = function() end, + on_drop = function(itemstack, dropper, pos) end, + drop = {}, +}) + +stairs.register_slab("cloud", "default:cloud", + {unbreakable = 1, not_in_creative_inventory = 1}, + {"default_cloud.png"}, + "Cloud Slab", + stairs.wool) + +minetest.override_item("stairs:slab_cloud", { + on_blast = function() end, + on_drop = function(itemstack, dropper, pos) end, + drop = {}, +}) + +-- Ores + +stairs.register_all("coal", "default:coalblock", + {cracky = 3}, + {"default_coal_block.png"}, + "Coal", + stairs.stone, true) + +stairs.register_all("steelblock", "default:steelblock", + {cracky = 1, level = 2}, + {"default_steel_block.png"}, + "Steel", + stairs.metal, true) + +stairs.register_all("copperblock", "default:copperblock", + {cracky = 1, level = 2}, + {"default_copper_block.png"}, + "Copper", + stairs.metal, true) + +stairs.register_all("bronzeblock", "default:bronzeblock", + {cracky = 1, level = 2}, + {"default_bronze_block.png"}, + "Bronze", + stairs.metal, true) + +stairs.register_all("tinblock", "default:tinblock", + {cracky = 1, level = 2}, + {"default_tin_block.png"}, + "Tin", + stairs.metal, true) + +stairs.register_all("mese", "default:mese", + {cracky = 1, level = 2}, + {"default_mese_block.png"}, + "Mese", + stairs.stone) + +stairs.register_all("goldblock", "default:goldblock", + {cracky = 1}, + {"default_gold_block.png"}, + "Gold", + stairs.metal) + +stairs.register_all("diamondblock", "default:diamondblock", + {cracky = 1, level = 3}, + {"default_diamond_block.png"}, + "Diamond", + stairs.stone) + +-- Glass types + +stairs.register_all("glass", "default:glass", + {cracky = 3, oddly_breakable_by_hand = 3}, + {"default_glass.png"}, + "Glass", + stairs.glass) + +stairs.register_all("obsidian_glass", "default:obsidian_glass", + {cracky = 2}, + {"default_obsidian_glass.png"}, + "Obsidian Glass", + stairs.glass) + +-- Brick, Snow and Ice + +stairs.register_all("brick", "default:brick", + {cracky = 3}, + {"default_brick.png"}, + "Brick", + stairs.stone, false) + +stairs.register_all("snowblock", "default:snowblock", + {crumbly = 3, cools_lava = 1, snowy = 1}, + {"default_snow.png"}, + "Snow Block", + default.node_sound_snow_defaults(), true) + +stairs.register_all("ice", "default:ice", + {cracky = 3, cools_lava = 1}, + {"default_ice.png"}, + "Ice", + default.node_sound_glass_defaults(), true) + +--= More Ores Mod + +if minetest.get_modpath("moreores") then + +grp = {cracky = 1, level = 2} + +stairs.register_all("silver_block", "moreores:silver_block", + grp, + {"moreores_silver_block.png"}, + "Silver", + stairs.metal, true) + +stairs.register_all("mithril_block", "moreores:mithril_block", + grp, + {"moreores_mithril_block.png"}, + "Mithril", + stairs.metal, true) + +end + +--= Mobs Mod + +if minetest.registered_nodes["mobs:cheeseblock"] then + +grp = {crumbly = 3, flammable = 2} + +stairs.register_all("cheeseblock", "mobs:cheeseblock", + grp, + {"mobs_cheeseblock.png"}, + "Cheese Block", + stairs.dirt) + +stairs.register_all("honey_block", "mobs:honey_block", + grp, + {"mobs_honey_block.png"}, + "Honey Block", + stairs.dirt) + +end + +--= Lapis Mod + +if minetest.get_modpath("lapis") then + +grp = {cracky = 3} + +stairs.register_all("lapis_block", "lapis:lapis_block", + grp, + {"lapis_block_side.png"}, + "Lapis", + stairs.stone) + +stairs.register_all("lapis_brick", "lapis:lapis_brick", + grp, + {"lapis_brick.png"}, + "Lapis Brick", + stairs.stone) + +stairs.register_all("lapis_cobble", "lapis:lapis_cobble", + grp, + {"lapis_cobble.png"}, + "Lapis Cobble", + stairs.stone) + +end + +--= Homedecor Mod + +if minetest.get_modpath("homedecor") then + +local grp = {snappy = 3} + +stairs.register_all("shingles_asphalt", "homedecor:shingles_asphalt", + grp, + {"homedecor_shingles_asphalt.png"}, + "Asphalt Shingle", + stairs.leaves) + +stairs.register_all("shingles_terracotta", "homedecor:roof_tile_terracotta", + grp, + {"homedecor_shingles_terracotta.png"}, + "Terracotta Shingle", + stairs.leaves) + +stairs.register_all("shingles_wood", "homedecor:shingles_wood", + grp, + {"homedecor_shingles_wood.png"}, + "Wooden Shingle", + stairs.leaves) + +end + +--= Xanadu Mod + +if minetest.get_modpath("xanadu") then + +grp = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3} + +stairs.register_all("stained_wood_white", "xanadu:stained_wood_white", + grp, + {"stained_wood_white.png"}, + "White Wooden", + stairs.wood, false) + +stairs.register_all("stained_wood_red", "xanadu:stained_wood_red", + grp, + {"stained_wood_red.png"}, + "Red Wooden", + stairs.wood, false) + +-- Decorative blocks + +grp = {cracky = 3} + +stairs.register_all("stone1", "xanadu:stone1", + grp, + {"stone1.png"}, + "Decorative Stone 1", + stairs.stone) + +stairs.register_all("stone2", "xanadu:stone2", + grp, + {"stone2.png"}, + "Decorative Stone 2", + stairs.stone) + +stairs.register_all("stone3", "xanadu:stone3", + grp, + {"stone3.png"}, + "Decorative Stone 3", + stairs.stone) + +stairs.register_all("stone4", "xanadu:stone4", + grp, + {"stone4.png"}, + "Decorative Stone 4", + stairs.stone) + +stairs.register_all("stone5", "xanadu:stone5", + grp, + {"stone5.png"}, + "Decorative Stone 5", + stairs.stone) + +stairs.register_all("stone6", "xanadu:stone6", + grp, + {"stone6.png"}, + "Decorative Stone 6", + stairs.stone) + +stairs.register_all("sandstonebrick1", "xanadu:sandstonebrick1", + grp, + {"sandstonebrick1.png"}, + "Decorative Sandstone 1", + stairs.stone) + +stairs.register_all("sandstonebrick4", "xanadu:sandstonebrick4", + grp, + {"sandstonebrick4.png"}, + "Decorative Sandstone 4", + stairs.stone) + +stairs.register_slab("desert_cobble1", "xanadu:desert_cobble1", + grp, + {"desert_cobble1.png"}, + "Decorative desert cobble 1 slab", + stairs.stone) + +stairs.register_slab("desert_cobble5", "xanadu:desert_cobble5", + grp, + {"desert_cobble5.png"}, + "Decorative desert cobble 5 slab", + stairs.stone) + +stairs.register_slab("desert_stone1", "xanadu:desert_stone1", + grp, + {"desert_stone1.png"}, + "Decorative desert stone 1 slab", + stairs.stone) + +stairs.register_slab("desert_stone3", "xanadu:desert_stone3", + grp, + {"desert_stone3.png"}, + "Decorative desert stone 3 slab", + stairs.stone) + +stairs.register_slab("desert_stone4", "xanadu:desert_stone4", + grp, + {"desert_stone4.png"}, + "Decorative desert stone 4 slab", + stairs.stone) + +stairs.register_stair("desert_stone4", "xanadu:desert_stone4", + grp, + {"desert_stone4.png"}, + "Decorative desert stone 4 stair", + stairs.stone) + +stairs.register_slab("desert_stone5", "xanadu:desert_stone5", + grp, + {"desert_stone5.png"}, + "Decorative desert stone 5 slab", + stairs.stone) + +stairs.register_slab("red1", "xanadu:red1", + grp, + {"baked_clay_red1.png"}, + "Decorative baked red clay 1 slab", + stairs.stone) + +stairs.register_all("bred2", "xanadu:red2", + grp, + {"baked_clay_red2.png"}, + "Decorative baked red clay 2", + stairs.stone) + +end + +--= Castle Mod + +if minetest.get_modpath("castle") then + +grp = {cracky = 2} + +stairs.register_all("dungeon_stone", "castle:dungeon_stone", + grp, + {"castle_dungeon_stone.png"}, + "Dungeon", + stairs.stone) + +stairs.register_all("stonewall", "castle:stonewall", + grp, + {"castle_stonewall.png"}, + "Castle Wall", + stairs.stone) + +end + +--= Wool Mod + +if minetest.get_modpath("wool") then + +local colours = { + {"black", "Black", "#000000b0"}, + {"blue", "Blue", "#015dbb70"}, + {"brown", "Brown", "#a78c4570"}, + {"cyan", "Cyan", "#01ffd870"}, + {"dark_green", "Dark Green", "#005b0770"}, + {"dark_grey", "Dark Grey", "#303030b0"}, + {"green", "Green", "#61ff0170"}, + {"grey", "Grey", "#5b5b5bb0"}, + {"magenta", "Magenta", "#ff05bb70"}, + {"orange", "Orange", "#ff840170"}, + {"pink", "Pink", "#ff65b570"}, + {"red", "Red", "#ff000070"}, + {"violet", "Violet", "#2000c970"}, + {"white", "White", "#abababc0"}, + {"yellow", "Yellow", "#e3ff0070"}, +} + +for i = 1, #colours, 1 do + +stairs.register_all("wool_" .. colours[i][1], "wool:" .. colours[i][1], + {snappy = 2, choppy = 2, oddly_breakable_by_hand = 3, flammable = 3}, + {"wool_" .. colours[i][1] .. ".png"}, + colours[i][2] .. " Wool", + stairs.wool) + +end -- END for + +end