From 8337a6c192b9961f8947767690c13951696c3c1e Mon Sep 17 00:00:00 2001 From: Calinou Date: Sun, 9 Mar 2014 10:38:18 +0100 Subject: Merge ShadowNinja's rewrite. --- nodes.lua | 319 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 319 insertions(+) create mode 100644 nodes.lua (limited to 'nodes.lua') diff --git a/nodes.lua b/nodes.lua new file mode 100644 index 0000000..b1ecc40 --- /dev/null +++ b/nodes.lua @@ -0,0 +1,319 @@ + +local S = moreblocks.gettext + +local sound_wood = default.node_sound_wood_defaults() +local sound_stone = default.node_sound_stone_defaults() +local sound_glass = default.node_sound_glass_defaults() +local sound_leaves = default.node_sound_leaves_defaults() + +local function tile_tiles(name) + local tex = "moreblocks_"..name..".png" + return {tex, tex, tex, tex, tex.."^[transformR90", tex.."^[transformR90"} +end + +local nodes = { + ["wood_tile"] = { + description = S("Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile"), + sounds = sound_wood, + }, + ["wood_tile_flipped"] = { + description = S("Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile_flipped"), + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_center"] = { + description = S("Centered Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile_center"), + sounds = sound_wood, + }, + ["wood_tile_full"] = { + description = S("Full Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile_full"), + sounds = sound_wood, + }, + ["wood_tile_up"] = { + description = S("Up Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile_up"), + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_down"] = { + description = S("Down Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile_down"), + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_left"] = { + description = S("Left Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile_left"), + sounds = sound_wood, + no_stairs = true, + }, + ["wood_tile_right"] = { + description = S("Right Wooden Tile"), + groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3}, + paramtype2 = "facedir", + tiles = tile_tiles("wood_tile_right"), + sounds = sound_wood, + no_stairs = true, + }, + ["circle_stone_bricks"] = { + description = S("Circle Stone Bricks"), + groups = {cracky=3}, + sounds = sound_stone, + }, + ["coal_stone_bricks"] = { + description = S("Coal Stone Bricks"), + groups = {cracky=3}, + sounds = sound_stone, + }, + ["iron_stone_bricks"] = { + description = S("Iron Stone Bricks"), + groups = {cracky=3}, + sounds = sound_stone, + }, + ["stone_tile"] = { + description = S("Stone Tile"), + groups = {cracky=3}, + sounds = sound_stone, + }, + ["split_stone_tile"] = { + description = S("Split Stone Tile"), + tiles = {"moreblocks_split_stone_tile_top.png", + "moreblocks_split_stone_tile.png"}, + groups = {cracky=3}, + sounds = sound_stone, + }, + ["plankstone"] = { + description = S("Plankstone"), + groups = {cracky=3}, + tiles = tile_tiles("plankstone"), + sounds = sound_stone, + }, + ["iron_glass"] = { + description = S("Iron Glass"), + drawtype = "glasslike", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + }, + ["coal_glass"] = { + description = S("Coal Glass"), + drawtype = "glasslike", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + }, + ["clean_glass"] = { + description = S("Clean Glass"), + drawtype = "glasslike", + paramtype = "light", + sunlight_propagates = true, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + }, + ["cactus_brick"] = { + description = S("Cactus Brick"), + groups = {cracky=3}, + sounds = sound_stone, + }, + ["cactus_checker"] = { + description = S("Cactus Checker"), + groups = {cracky=3}, + paramtype2 = "facedir", + tiles = tile_tiles("cactus_checker"), + sounds = sound_stone, + }, + ["empty_bookshelf"] = { + description = S("Empty Bookshelf"), + tiles = {"default_wood.png", "default_wood.png", + "moreblocks_empty_bookshelf.png"}, + groups = {snappy=2,choppy=3,oddly_breakable_by_hand=2,flammable=3}, + sounds = sound_wood, + no_stairs = true, + }, + ["coal_stone"] = { + description = S("Coal Stone"), + groups = {cracky=3}, + sounds = sound_stone, + }, + ["iron_stone"] = { + description = S("Iron Stone"), + groups = {cracky=3}, + sounds = sound_stone, + }, + ["coal_checker"] = { + description = S("Coal Checker"), + tiles = tile_tiles("coal_checker"), + paramtype2 = "facedir", + groups = {cracky=3}, + sounds = sound_stone, + }, + ["iron_checker"] = { + description = S("Iron Checker"), + tiles = tile_tiles("iron_checker"), + paramtype2 = "facedir", + groups = {cracky=3}, + sounds = sound_stone, + }, + ["trap_stone"] = { + description = S("Trap Stone"), + walkable = false, + groups = {cracky=3}, + sounds = sound_stone, + no_stairs = true, + }, + ["trap_glass"] = { + description = S("Trap Glass"), + drawtype = "glasslike", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + no_stairs = true, + }, + ["fence_jungle_wood"] = { + description = S("Jungle Wood Fence"), + drawtype = "fencelike", + tiles = {"moreblocks_jungle_wood.png"}, + inventory_image = "moreblocks_fence_jungle_wood.png", + wield_image = "moreblocks_fence_jungle_wood.png", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {-1/7, -1/2, -1/7, 1/7, 1/2, 1/7}, + }, + groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2,flammable=2}, + sounds = sound_wood, + no_stairs = true, + }, + ["all_faces_tree"] = { + description = S("All-faces Tree"), + tiles = {"default_tree_top.png"}, + groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = sound_wood, + furnace_burntime = 30, + }, + ["all_faces_jungle_tree"] = { + description = S("All-faces Tree"), + tiles = {"default_jungletree_top.png"}, + groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2}, + sounds = sound_wood, + furnace_burntime = 30, + }, + ["glow_glass"] = { + description = S("Glow Glass"), + drawtype = "glasslike", + paramtype = "light", + sunlight_propagates = true, + light_source = 11, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + }, + ["trap_glow_glass"] = { + description = S("Trap Glow Glass"), + drawtype = "glasslike", + tiles = {"moreblocks_glow_glass.png"}, + paramtype = "light", + sunlight_propagates = true, + light_source = 11, + walkable = false, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + no_stairs = true, + }, + ["super_glow_glass"] = { + description = S("Super Glow Glass"), + drawtype = "glasslike", + paramtype = "light", + sunlight_propagates = true, + light_source = 15, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + }, + ["trap_super_glow_glass"] = { + description = S("Trap Super Glow Glass"), + drawtype = "glasslike", + tiles = {"moreblocks_super_glow_glass.png"}, + paramtype = "light", + sunlight_propagates = true, + light_source = 11, + walkable = false, + groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3}, + sounds = sound_glass, + no_stairs = true, + }, + ["rope"] = { + description = S("Rope"), + drawtype = "signlike", + inventory_image = "moreblocks_rope.png", + wield_image = "moreblocks_rope.png", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + climbable = true, + selection_box = { + type = "wallmounted", + }, + groups = {snappy=3,flammable=2}, + sounds = sound_leaves, + no_stairs = true, + }, +} + +for name, def in pairs(nodes) do + def.tiles = def.tiles or {"moreblocks_"..name..".png"} + minetest.register_node("moreblocks:"..name, def) + minetest.register_alias(name, "moreblocks:"..name) + if not def.no_stairs then + local groups = {} + for k, v in pairs(def.groups) do groups[k] = v end + stairsplus:register_all("moreblocks", name, "moreblocks:"..name, { + description = def.description, + groups = groups, + tiles = def.tiles, + sunlight_propagates = def.sunlight_propagates, + light_source = def.light_source, + sounds = def.sounds, + }) + end +end + + +-- Items + +minetest.register_craftitem("moreblocks:sweeper", { + description = S("Sweeper"), + inventory_image = "moreblocks_sweeper.png", +}) + +minetest.register_craftitem("moreblocks:jungle_stick", { + description = S("Jungle Stick"), + inventory_image = "moreblocks_junglestick.png", + groups = {stick=1}, +}) + +minetest.register_craftitem("moreblocks:nothing", { + inventory_image = "invisible.png", + on_use = function() end, +}) + -- cgit v1.2.3