minetest_game/mods/default/nodes.lua

2114 lines
57 KiB
Lua
Raw Normal View History

2013-05-19 18:43:04 +02:00
-- mods/default/nodes.lua
--[[ Node name convention:
Although many node names are in combined-word form, the required form for new
node names is words separated by underscores. If both forms are used in written
language (for example pinewood and pine wood) the underscore form should be used.
--]]
2014-12-07 16:29:36 +01:00
--[[ Index:
Stone
-----
(1. Material 2. Cobble variant 3. Brick variant 4. Modified forms)
2014-12-07 16:29:36 +01:00
default:stone
default:cobble
default:stonebrick
default:stone_block
2014-12-07 16:29:36 +01:00
default:mossycobble
default:desert_stone
default:desert_cobble
default:desert_stonebrick
default:desert_stone_block
2014-12-07 16:29:36 +01:00
default:sandstone
default:sandstonebrick
default:sandstone_block
2014-12-07 16:29:36 +01:00
default:obsidian
default:obsidianbrick
default:obsidian_block
2014-12-07 16:29:36 +01:00
Soft / Non-Stone
----------------
(1. Material 2. Modified forms)
2014-12-07 16:29:36 +01:00
default:dirt
default:dirt_with_grass
default:dirt_with_grass_footsteps
default:dirt_with_dry_grass
2014-12-07 16:29:36 +01:00
default:dirt_with_snow
default:sand
default:desert_sand
default:silver_sand
2014-12-07 16:29:36 +01:00
default:gravel
default:clay
default:snow
default:snowblock
default:ice
Trees
-----
(1. Trunk 2. Fabricated trunk 3. Leaves 4. Sapling 5. Fruits)
2014-12-07 16:29:36 +01:00
default:tree
default:wood
default:leaves
default:sapling
default:apple
default:jungletree
default:junglewood
default:jungleleaves
default:junglesapling
default:pine_tree
default:pine_wood
2014-12-07 16:29:36 +01:00
default:pine_needles
default:pine_sapling
default:acacia_tree
default:acacia_wood
default:acacia_leaves
default:acacia_sapling
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
default:aspen_tree
default:aspen_wood
default:aspen_leaves
default:aspen_sapling
2014-12-07 16:29:36 +01:00
Ores
----
(1. In stone 2. Blocks)
2014-12-07 16:29:36 +01:00
default:stone_with_coal
default:coalblock
default:stone_with_iron
default:steelblock
default:stone_with_copper
default:copperblock
default:bronzeblock
default:stone_with_gold
default:goldblock
default:stone_with_mese
default:mese
default:stone_with_diamond
default:diamondblock
Plantlife
---------
2014-12-07 16:29:36 +01:00
default:cactus
default:papyrus
default:dry_shrub
default:junglegrass
2014-12-07 16:29:36 +01:00
default:grass_1
default:grass_2
default:grass_3
default:grass_4
default:grass_5
default:dry_grass_1
default:dry_grass_2
default:dry_grass_3
default:dry_grass_4
default:dry_grass_5
default:bush_stem
default:bush_leaves
default:acacia_bush_stem
default:acacia_bush_leaves
Corals
------
default:coral_brown
default:coral_orange
default:coral_skeleton
2014-12-07 16:29:36 +01:00
Liquids
-------
(1. Source 2. Flowing)
default:water_source
default:water_flowing
2015-04-17 07:50:06 +02:00
default:river_water_source
default:river_water_flowing
2014-12-07 16:29:36 +01:00
default:lava_source
default:lava_flowing
Tools / "Advanced" crafting / Non-"natural"
-------------------------------------------
2014-12-07 16:29:36 +01:00
default:chest
default:chest_locked
default:bookshelf
default:sign_wall_wood
default:sign_wall_steel
2016-03-03 10:52:45 +01:00
default:ladder_wood
default:ladder_steel
2014-12-07 16:29:36 +01:00
default:fence_wood
default:fence_acacia_wood
default:fence_junglewood
default:fence_pine_wood
default:fence_aspen_wood
2014-12-07 16:29:36 +01:00
default:glass
default:obsidian_glass
default:brick
default:meselamp
default:mese_post_light
2014-12-07 16:29:36 +01:00
Misc
----
2014-12-07 16:29:36 +01:00
default:cloud
--]]
--
-- Stone
--
2013-05-19 18:43:04 +02:00
minetest.register_node("default:stone", {
description = "Stone",
tiles = {"default_stone.png"},
groups = {cracky = 3, stone = 1},
2013-05-19 18:43:04 +02:00
drop = 'default:cobble',
legacy_mineral = true,
sounds = default.node_sound_stone_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:cobble", {
description = "Cobblestone",
tiles = {"default_cobble.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:stonebrick", {
description = "Stone Brick",
paramtype2 = "facedir",
place_param2 = 0,
2014-12-07 16:29:36 +01:00
tiles = {"default_stone_brick.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:stone_block", {
description = "Stone Block",
tiles = {"default_stone_block.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:mossycobble", {
description = "Mossy Cobblestone",
tiles = {"default_mossycobble.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_stone_defaults(),
})
2013-05-19 18:43:04 +02:00
minetest.register_node("default:desert_stone", {
description = "Desert Stone",
tiles = {"default_desert_stone.png"},
groups = {cracky = 3, stone = 1},
2014-04-07 16:29:00 +02:00
drop = 'default:desert_cobble',
2013-05-19 18:43:04 +02:00
legacy_mineral = true,
sounds = default.node_sound_stone_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:desert_cobble", {
description = "Desert Cobblestone",
tiles = {"default_desert_cobble.png"},
is_ground_content = false,
groups = {cracky = 3, stone = 2},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_stone_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:desert_stonebrick", {
description = "Desert Stone Brick",
paramtype2 = "facedir",
place_param2 = 0,
2014-12-07 16:29:36 +01:00
tiles = {"default_desert_stone_brick.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:desert_stone_block", {
description = "Desert Stone Block",
tiles = {"default_desert_stone_block.png"},
is_ground_content = false,
groups = {cracky = 2, stone = 1},
sounds = default.node_sound_stone_defaults(),
})
2013-05-19 18:43:04 +02:00
2014-12-07 16:29:36 +01:00
minetest.register_node("default:sandstone", {
description = "Sandstone",
tiles = {"default_sandstone.png"},
groups = {crumbly = 1, cracky = 3},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_stone_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:sandstonebrick", {
description = "Sandstone Brick",
paramtype2 = "facedir",
place_param2 = 0,
2014-12-07 16:29:36 +01:00
tiles = {"default_sandstone_brick.png"},
is_ground_content = false,
groups = {cracky = 2},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_stone_defaults(),
})
2013-06-08 18:08:48 +02:00
minetest.register_node("default:sandstone_block", {
description = "Sandstone Block",
tiles = {"default_sandstone_block.png"},
is_ground_content = false,
groups = {cracky = 2},
sounds = default.node_sound_stone_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:obsidian", {
description = "Obsidian",
tiles = {"default_obsidian.png"},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_stone_defaults(),
groups = {cracky = 1, level = 2},
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:obsidianbrick", {
description = "Obsidian Brick",
paramtype2 = "facedir",
place_param2 = 0,
2014-12-07 16:29:36 +01:00
tiles = {"default_obsidian_brick.png"},
is_ground_content = false,
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_stone_defaults(),
groups = {cracky = 1, level = 2},
2013-05-19 18:43:04 +02:00
})
minetest.register_node("default:obsidian_block", {
description = "Obsidian Block",
tiles = {"default_obsidian_block.png"},
is_ground_content = false,
sounds = default.node_sound_stone_defaults(),
groups = {cracky = 1, level = 2},
})
2014-12-07 16:29:36 +01:00
--
-- Soft / Non-Stone
--
minetest.register_node("default:dirt", {
description = "Dirt",
tiles = {"default_dirt.png"},
groups = {crumbly = 3, soil = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_dirt_defaults(),
2013-05-19 18:43:04 +02:00
})
minetest.register_node("default:dirt_with_grass", {
description = "Dirt with Grass",
2015-08-19 00:26:32 +02:00
tiles = {"default_grass.png", "default_dirt.png",
{name = "default_dirt.png^default_grass_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
2013-05-19 18:43:04 +02:00
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
2013-05-19 18:43:04 +02:00
}),
})
minetest.register_node("default:dirt_with_grass_footsteps", {
description = "Dirt with Grass and Footsteps",
tiles = {"default_grass.png^default_footprint.png", "default_dirt.png",
2015-08-19 00:26:32 +02:00
{name = "default_dirt.png^default_grass_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.25},
}),
})
minetest.register_node("default:dirt_with_dry_grass", {
description = "Dirt with Dry Grass",
tiles = {"default_dry_grass.png",
"default_dirt.png",
2015-08-19 00:26:32 +02:00
{name = "default_dirt.png^default_dry_grass_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_grass_footstep", gain = 0.4},
}),
})
2013-05-19 18:43:04 +02:00
minetest.register_node("default:dirt_with_snow", {
description = "Dirt with Snow",
2015-08-19 00:26:32 +02:00
tiles = {"default_snow.png", "default_dirt.png",
{name = "default_dirt.png^default_snow_side.png",
tileable_vertical = false}},
groups = {crumbly = 3, soil = 1, spreading_dirt_type = 1, snowy = 1},
2013-05-19 18:43:04 +02:00
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.15},
2013-05-19 18:43:04 +02:00
}),
})
minetest.register_node("default:sand", {
description = "Sand",
tiles = {"default_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("default:desert_sand", {
description = "Desert Sand",
tiles = {"default_desert_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_sand_defaults(),
})
minetest.register_node("default:silver_sand", {
description = "Silver Sand",
tiles = {"default_silver_sand.png"},
groups = {crumbly = 3, falling_node = 1, sand = 1},
sounds = default.node_sound_sand_defaults(),
})
2014-12-07 16:29:36 +01:00
2013-05-19 18:43:04 +02:00
minetest.register_node("default:gravel", {
description = "Gravel",
tiles = {"default_gravel.png"},
groups = {crumbly = 2, falling_node = 1},
sounds = default.node_sound_gravel_defaults(),
2016-03-11 18:27:22 +01:00
drop = {
max_items = 1,
items = {
{items = {'default:flint'}, rarity = 16},
{items = {'default:gravel'}}
}
}
2013-05-19 18:43:04 +02:00
})
minetest.register_node("default:clay", {
description = "Clay",
tiles = {"default_clay.png"},
groups = {crumbly = 3},
2013-05-19 18:43:04 +02:00
drop = 'default:clay_lump 4',
2013-06-11 23:23:10 +02:00
sounds = default.node_sound_dirt_defaults(),
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:snow", {
description = "Snow",
tiles = {"default_snow.png"},
inventory_image = "default_snowball.png",
wield_image = "default_snowball.png",
paramtype = "light",
buildable_to = true,
floodable = true,
2014-12-07 16:29:36 +01:00
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
2015-07-24 02:24:13 +02:00
{-0.5, -0.5, -0.5, 0.5, -0.25, 0.5},
2014-12-07 16:29:36 +01:00
},
},
groups = {crumbly = 3, falling_node = 1, puts_out_fire = 1, snowy = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.15},
dug = {name = "default_snow_footstep", gain = 0.2},
dig = {name = "default_snow_footstep", gain = 0.2}
2014-12-07 16:29:36 +01:00
}),
on_construct = function(pos)
pos.y = pos.y - 1
if minetest.get_node(pos).name == "default:dirt_with_grass" then
2015-07-24 02:24:13 +02:00
minetest.set_node(pos, {name = "default:dirt_with_snow"})
2014-12-07 16:29:36 +01:00
end
end,
})
2015-02-26 09:21:28 +01:00
2014-12-07 16:29:36 +01:00
minetest.register_node("default:snowblock", {
description = "Snow Block",
tiles = {"default_snow.png"},
groups = {crumbly = 3, puts_out_fire = 1, cools_lava = 1, snowy = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_dirt_defaults({
footstep = {name = "default_snow_footstep", gain = 0.15},
dug = {name = "default_snow_footstep", gain = 0.2},
dig = {name = "default_snow_footstep", gain = 0.2}
2014-12-07 16:29:36 +01:00
}),
on_construct = function(pos)
pos.y = pos.y - 1
if minetest.get_node(pos).name == "default:dirt_with_grass" then
minetest.set_node(pos, {name = "default:dirt_with_snow"})
end
end,
2014-12-07 16:29:36 +01:00
})
minetest.register_node("default:ice", {
description = "Ice",
tiles = {"default_ice.png"},
is_ground_content = false,
2014-12-07 16:29:36 +01:00
paramtype = "light",
groups = {cracky = 3, puts_out_fire = 1, cools_lava = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_glass_defaults(),
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
--
-- Trees
--
2013-05-19 18:43:04 +02:00
minetest.register_node("default:tree", {
description = "Tree",
tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
2013-11-07 17:48:00 +01:00
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_wood_defaults(),
2013-11-07 17:48:00 +01:00
on_place = minetest.rotate_node
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:wood", {
description = "Wooden Planks",
paramtype2 = "facedir",
place_param2 = 0,
2014-12-07 16:29:36 +01:00
tiles = {"default_wood.png"},
is_ground_content = false,
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_wood_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:sapling", {
description = "Sapling",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_sapling.png"},
inventory_image = "default_sapling.png",
wield_image = "default_sapling.png",
2013-05-19 18:43:04 +02:00
paramtype = "light",
sunlight_propagates = true,
2014-12-07 16:29:36 +01:00
walkable = false,
on_timer = default.grow_sapling,
2014-12-07 16:29:36 +01:00
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
2014-12-07 16:29:36 +01:00
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(2400,4800))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"default:sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -2, y = 1, z = -2},
{x = 2, y = 6, z = 2},
-- maximum interval of interior volume check
4)
return itemstack
end,
2014-12-07 16:29:36 +01:00
})
minetest.register_node("default:leaves", {
description = "Leaves",
drawtype = "allfaces_optional",
waving = 1,
tiles = {"default_leaves.png"},
special_tiles = {"default_leaves_simple.png"},
2014-12-07 16:29:36 +01:00
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
2013-05-19 18:43:04 +02:00
drop = {
max_items = 1,
items = {
{
-- player will get sapling with 1/20 chance
2014-12-07 16:29:36 +01:00
items = {'default:sapling'},
2013-05-19 18:43:04 +02:00
rarity = 20,
},
{
-- player will get leaves only if he get no saplings,
-- this is because max_items is 1
2014-12-07 16:29:36 +01:00
items = {'default:leaves'},
2013-05-19 18:43:04 +02:00
}
}
},
sounds = default.node_sound_leaves_defaults(),
2014-12-07 16:29:36 +01:00
after_place_node = default.after_place_leaves,
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:apple", {
description = "Apple",
2013-05-19 18:43:04 +02:00
drawtype = "plantlike",
visual_scale = 1.0,
2014-12-07 16:29:36 +01:00
tiles = {"default_apple.png"},
inventory_image = "default_apple.png",
2013-05-19 18:43:04 +02:00
paramtype = "light",
2014-12-07 16:29:36 +01:00
sunlight_propagates = true,
2013-05-19 18:43:04 +02:00
walkable = false,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
selection_box = {
type = "fixed",
fixed = {-3 / 16, -7 / 16, -3 / 16, 3 / 16, 4 / 16, 3 / 16}
2013-05-19 18:43:04 +02:00
},
groups = {fleshy = 3, dig_immediate = 3, flammable = 2,
leafdecay = 3, leafdecay_drop = 1},
on_use = minetest.item_eat(2),
2013-06-11 23:23:10 +02:00
sounds = default.node_sound_leaves_defaults(),
2014-12-07 16:29:36 +01:00
after_place_node = function(pos, placer, itemstack)
if placer:is_player() then
minetest.set_node(pos, {name = "default:apple", param2 = 1})
2014-12-07 16:29:36 +01:00
end
end,
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:jungletree", {
description = "Jungle Tree",
tiles = {"default_jungletree_top.png", "default_jungletree_top.png",
"default_jungletree.png"},
2014-12-07 16:29:36 +01:00
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:junglewood", {
description = "Junglewood Planks",
paramtype2 = "facedir",
place_param2 = 0,
2014-12-07 16:29:36 +01:00
tiles = {"default_junglewood.png"},
is_ground_content = false,
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("default:jungleleaves", {
description = "Jungle Leaves",
2013-05-19 18:43:04 +02:00
drawtype = "allfaces_optional",
waving = 1,
2014-12-07 16:29:36 +01:00
tiles = {"default_jungleleaves.png"},
special_tiles = {"default_jungleleaves_simple.png"},
2013-05-19 18:43:04 +02:00
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
2013-05-19 18:43:04 +02:00
drop = {
max_items = 1,
items = {
{items = {'default:junglesapling'}, rarity = 20},
{items = {'default:jungleleaves'}}
2013-05-19 18:43:04 +02:00
}
},
sounds = default.node_sound_leaves_defaults(),
2014-12-07 16:29:36 +01:00
after_place_node = default.after_place_leaves,
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:junglesapling", {
description = "Jungle Sapling",
2013-05-19 18:43:04 +02:00
drawtype = "plantlike",
2014-12-07 16:29:36 +01:00
visual_scale = 1.0,
tiles = {"default_junglesapling.png"},
inventory_image = "default_junglesapling.png",
wield_image = "default_junglesapling.png",
2013-05-19 18:43:04 +02:00
paramtype = "light",
sunlight_propagates = true,
2013-05-19 18:43:04 +02:00
walkable = false,
on_timer = default.grow_sapling,
2013-05-19 18:43:04 +02:00
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
2013-05-19 18:43:04 +02:00
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(2400,4800))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"default:junglesapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -2, y = 1, z = -2},
{x = 2, y = 15, z = 2},
-- maximum interval of interior volume check
4)
return itemstack
end,
2013-05-19 18:43:04 +02:00
})
2014-04-15 21:04:34 +02:00
minetest.register_node("default:pine_tree", {
2014-12-07 16:29:36 +01:00
description = "Pine Tree",
tiles = {"default_pine_tree_top.png", "default_pine_tree_top.png",
"default_pine_tree.png"},
2014-12-07 16:29:36 +01:00
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_wood_defaults(),
2014-12-07 16:29:36 +01:00
on_place = minetest.rotate_node
})
minetest.register_node("default:pine_wood", {
description = "Pine Wood Planks",
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"default_pine_wood.png"},
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_wood_defaults(),
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:pine_needles",{
description = "Pine Needles",
drawtype = "allfaces_optional",
tiles = {"default_pine_needles.png"},
waving = 1,
2013-05-19 18:43:04 +02:00
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
2014-12-07 16:29:36 +01:00
drop = {
max_items = 1,
items = {
{items = {"default:pine_sapling"}, rarity = 20},
{items = {"default:pine_needles"}}
2014-12-07 16:29:36 +01:00
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:pine_sapling", {
description = "Pine Sapling",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_pine_sapling.png"},
inventory_image = "default_pine_sapling.png",
wield_image = "default_pine_sapling.png",
2013-05-19 18:43:04 +02:00
paramtype = "light",
sunlight_propagates = true,
2014-12-07 16:29:36 +01:00
walkable = false,
on_timer = default.grow_sapling,
2013-05-19 18:43:04 +02:00
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
2013-05-19 18:43:04 +02:00
},
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(2400,4800))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"default:pine_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -2, y = 1, z = -2},
{x = 2, y = 12, z = 2},
-- maximum interval of interior volume check
4)
return itemstack
end,
})
minetest.register_node("default:acacia_tree", {
description = "Acacia Tree",
tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png",
"default_acacia_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
minetest.register_node("default:acacia_wood", {
description = "Acacia Wood Planks",
paramtype2 = "facedir",
place_param2 = 0,
tiles = {"default_acacia_wood.png"},
is_ground_content = false,
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2, wood = 1},
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("default:acacia_leaves", {
description = "Acacia Leaves",
drawtype = "allfaces_optional",
tiles = {"default_acacia_leaves.png"},
special_tiles = {"default_acacia_leaves_simple.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"default:acacia_sapling"}, rarity = 20},
{items = {"default:acacia_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
minetest.register_node("default:acacia_sapling", {
description = "Acacia Tree Sapling",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_acacia_sapling.png"},
inventory_image = "default_acacia_sapling.png",
wield_image = "default_acacia_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = default.grow_sapling,
selection_box = {
type = "fixed",
fixed = {-4 / 16, -0.5, -4 / 16, 4 / 16, 7 / 16, 4 / 16}
},
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
attached_node = 1, sapling = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(2400,4800))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"default:acacia_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -4, y = 1, z = -4},
{x = 4, y = 6, z = 4},
-- maximum interval of interior volume check
4)
return itemstack
end,
2013-05-19 18:43:04 +02:00
})
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
minetest.register_node("default:aspen_tree", {
description = "Aspen Tree",
tiles = {"default_aspen_tree_top.png", "default_aspen_tree_top.png",
"default_aspen_tree.png"},
paramtype2 = "facedir",
is_ground_content = false,
groups = {tree = 1, choppy = 3, oddly_breakable_by_hand = 1, flammable = 3},
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node
})
minetest.register_node("default:aspen_wood", {
description = "Aspen Wood Planks",
paramtype2 = "facedir",
place_param2 = 0,
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
tiles = {"default_aspen_wood.png"},
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
sounds = default.node_sound_wood_defaults(),
})
minetest.register_node("default:aspen_leaves", {
description = "Aspen Leaves",
drawtype = "allfaces_optional",
tiles = {"default_aspen_leaves.png"},
waving = 1,
paramtype = "light",
is_ground_content = false,
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
drop = {
max_items = 1,
items = {
{items = {"default:aspen_sapling"}, rarity = 20},
{items = {"default:aspen_leaves"}}
}
},
sounds = default.node_sound_leaves_defaults(),
after_place_node = default.after_place_leaves,
})
minetest.register_node("default:aspen_sapling", {
description = "Aspen Tree Sapling",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_aspen_sapling.png"},
inventory_image = "default_aspen_sapling.png",
wield_image = "default_aspen_sapling.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
on_timer = default.grow_sapling,
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
selection_box = {
type = "fixed",
fixed = {-3 / 16, -0.5, -3 / 16, 3 / 16, 0.5, 3 / 16}
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
},
groups = {snappy = 2, dig_immediate = 3, flammable = 3,
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
attached_node = 1, sapling = 1},
sounds = default.node_sound_leaves_defaults(),
on_construct = function(pos)
minetest.get_node_timer(pos):start(math.random(2400,4800))
end,
on_place = function(itemstack, placer, pointed_thing)
itemstack = default.sapling_on_place(itemstack, placer, pointed_thing,
"default:aspen_sapling",
-- minp, maxp to be checked, relative to sapling pos
-- minp_relative.y = 1 because sapling pos has been checked
{x = -2, y = 1, z = -2},
{x = 2, y = 12, z = 2},
-- maximum interval of interior volume check
4)
return itemstack
end,
Aspen trees. Adds a birch-like tree to the default_game. Aspen was chosen on purpose instead of birch, as several birch tree mods already exist and choosing a different name avoids any conflicts. Schematics were made for both normal and sapling version, assuring saplings will not be able to grief. The shape of the Aspen is "fanning out at the top" and provides an easy tree to walk under, but still a somewhat thick cover. The Aspen trunk is 4 to 6 blocks tall, with up to three layers of leaves on top, making it slightly taller than an Apple tree, but shorter than a Pine tree, which provides a good blend. Textures were painted from scratch, except tree_top and _wood variants, which are color modified versions of the pine_wood variants. Appropriate licenses have been chosen for the new textures. The leaf texture is light enough to contrast other trees, but dark enough to offset against our light default grass color. The leaves are drawn in the typical minetest default fashion with plenty of transparancy, but enough definition to suggest that you're seeing something that looks like leaves. The placement of leaves in the schematic also suggests the top of the tree is sparse and you can see the sky through the leaves. Sapling texture is both traditional and different, with lush green leaves and a well-defined stem, but slightly stick-like and skinny, as these plants tend to grow up first, then out. Add fallen Aspen logs. We make these logs a minimum of 2 blocks long, and up to 3. This allows us to make these logs a place where both red and brown mushrooms can be found, to these may be attractive to players. However, the spawn rate for these has been reduced a lot compared to the other logs, to account for the scarcity of Aspen. Add stairs, slabs for these wood types as well. Mapgen will place these trees in deciduous forests only, but in a way that the biome is a range between entirely Apple trees, and mostly entirely Aspen trees, with a bias to Apple trees. To make fallen logs somewhat correlated with trees, we modify the planting of Apple trees and logs to use perlin noise and not fill ratio, otherwise you'd always end up with Apple logs in Aspen tree areas, which would be suspicious. There still is a bit of a mix.
2016-01-05 02:56:20 +01:00
})
2014-12-07 16:29:36 +01:00
--
-- Ores
--
minetest.register_node("default:stone_with_coal", {
description = "Coal Ore",
tiles = {"default_stone.png^default_mineral_coal.png"},
groups = {cracky = 3},
2014-12-07 16:29:36 +01:00
drop = 'default:coal_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:coalblock", {
description = "Coal Block",
tiles = {"default_coal_block.png"},
is_ground_content = false,
groups = {cracky = 3},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:stone_with_iron", {
description = "Iron Ore",
tiles = {"default_stone.png^default_mineral_iron.png"},
groups = {cracky = 2},
2014-12-07 16:29:36 +01:00
drop = 'default:iron_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:steelblock", {
description = "Steel Block",
tiles = {"default_steel_block.png"},
is_ground_content = false,
groups = {cracky = 1, level = 2},
sounds = default.node_sound_metal_defaults(),
2014-12-07 16:29:36 +01:00
})
minetest.register_node("default:stone_with_copper", {
description = "Copper Ore",
tiles = {"default_stone.png^default_mineral_copper.png"},
groups = {cracky = 2},
2014-12-07 16:29:36 +01:00
drop = 'default:copper_lump',
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:copperblock", {
description = "Copper Block",
tiles = {"default_copper_block.png"},
is_ground_content = false,
groups = {cracky = 1, level = 2},
sounds = default.node_sound_metal_defaults(),
2014-12-07 16:29:36 +01:00
})
minetest.register_node("default:bronzeblock", {
description = "Bronze Block",
tiles = {"default_bronze_block.png"},
is_ground_content = false,
groups = {cracky = 1, level = 2},
sounds = default.node_sound_metal_defaults(),
2014-12-07 16:29:36 +01:00
})
minetest.register_node("default:stone_with_mese", {
description = "Mese Ore",
tiles = {"default_stone.png^default_mineral_mese.png"},
groups = {cracky = 1},
2014-12-07 16:29:36 +01:00
drop = "default:mese_crystal",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:mese", {
description = "Mese Block",
tiles = {"default_mese_block.png"},
paramtype = "light",
groups = {cracky = 1, level = 2},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_stone_defaults(),
light_source = 3,
2014-12-07 16:29:36 +01:00
})
2015-02-26 09:21:28 +01:00
2014-12-07 16:29:36 +01:00
minetest.register_node("default:stone_with_gold", {
description = "Gold Ore",
tiles = {"default_stone.png^default_mineral_gold.png"},
groups = {cracky = 2},
2014-12-07 16:29:36 +01:00
drop = "default:gold_lump",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:goldblock", {
description = "Gold Block",
tiles = {"default_gold_block.png"},
is_ground_content = false,
groups = {cracky = 1},
sounds = default.node_sound_metal_defaults(),
2014-12-07 16:29:36 +01:00
})
minetest.register_node("default:stone_with_diamond", {
description = "Diamond Ore",
tiles = {"default_stone.png^default_mineral_diamond.png"},
groups = {cracky = 1},
2014-12-07 16:29:36 +01:00
drop = "default:diamond",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:diamondblock", {
description = "Diamond Block",
tiles = {"default_diamond_block.png"},
is_ground_content = false,
groups = {cracky = 1, level = 3},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_stone_defaults(),
})
--
-- Plantlife (non-cubic)
--
minetest.register_node("default:cactus", {
description = "Cactus",
tiles = {"default_cactus_top.png", "default_cactus_top.png",
"default_cactus_side.png"},
2014-12-07 16:29:36 +01:00
paramtype2 = "facedir",
groups = {choppy = 3},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_wood_defaults(),
on_place = minetest.rotate_node,
})
minetest.register_node("default:papyrus", {
description = "Papyrus",
drawtype = "plantlike",
tiles = {"default_papyrus.png"},
inventory_image = "default_papyrus.png",
wield_image = "default_papyrus.png",
2013-05-19 18:43:04 +02:00
paramtype = "light",
sunlight_propagates = true,
2013-05-19 18:43:04 +02:00
walkable = false,
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, 0.5, 6 / 16},
2013-05-19 18:43:04 +02:00
},
groups = {snappy = 3, flammable = 2},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, node, metadata, digger)
default.dig_up(pos, node, digger)
end,
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:dry_shrub", {
description = "Dry Shrub",
drawtype = "plantlike",
waving = 1,
visual_scale = 1.0,
tiles = {"default_dry_shrub.png"},
inventory_image = "default_dry_shrub.png",
wield_image = "default_dry_shrub.png",
2013-05-19 18:43:04 +02:00
paramtype = "light",
sunlight_propagates = true,
2013-05-19 18:43:04 +02:00
walkable = false,
2014-12-07 16:29:36 +01:00
buildable_to = true,
groups = {snappy = 3, flammable = 3, attached_node = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_leaves_defaults(),
2013-05-19 18:43:04 +02:00
selection_box = {
2014-12-07 16:29:36 +01:00
type = "fixed",
fixed = {-5 / 16, -0.5, -5 / 16, 5 / 16, 4 / 16, 5 / 16},
2013-05-19 18:43:04 +02:00
},
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:junglegrass", {
description = "Jungle Grass",
drawtype = "plantlike",
waving = 1,
visual_scale = 1.3,
tiles = {"default_junglegrass.png"},
inventory_image = "default_junglegrass.png",
wield_image = "default_junglegrass.png",
paramtype = "light",
sunlight_propagates = true,
2014-12-07 16:29:36 +01:00
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, flammable = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 1.19, 7 / 16},
2014-12-07 16:29:36 +01:00
},
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:grass_1", {
description = "Grass",
drawtype = "plantlike",
waving = 1,
tiles = {"default_grass_1.png"},
2014-12-12 17:47:31 +01:00
-- Use texture of a taller grass stage in inventory
2014-12-07 16:29:36 +01:00
inventory_image = "default_grass_3.png",
wield_image = "default_grass_3.png",
paramtype = "light",
sunlight_propagates = true,
2014-12-07 16:29:36 +01:00
walkable = false,
buildable_to = true,
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1, flammable = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -5 / 16, 6 / 16},
2014-12-07 16:29:36 +01:00
},
on_place = function(itemstack, placer, pointed_thing)
-- place a random grass node
local stack = ItemStack("default:grass_" .. math.random(1,5))
2014-12-07 16:29:36 +01:00
local ret = minetest.item_place(stack, placer, pointed_thing)
return ItemStack("default:grass_1 " ..
itemstack:get_count() - (1 - ret:get_count()))
2014-12-07 16:29:36 +01:00
end,
2013-05-19 18:43:04 +02:00
})
for i = 2, 5 do
minetest.register_node("default:grass_" .. i, {
2014-12-07 16:29:36 +01:00
description = "Grass",
drawtype = "plantlike",
waving = 1,
tiles = {"default_grass_" .. i .. ".png"},
inventory_image = "default_grass_" .. i .. ".png",
wield_image = "default_grass_" .. i .. ".png",
2014-12-07 16:29:36 +01:00
paramtype = "light",
sunlight_propagates = true,
2014-12-07 16:29:36 +01:00
walkable = false,
buildable_to = true,
drop = "default:grass_1",
groups = {snappy = 3, flora = 1, attached_node = 1,
not_in_creative_inventory = 1, grass = 1, flammable = 1},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
2014-12-07 16:29:36 +01:00
},
})
end
2015-07-17 16:53:56 +02:00
minetest.register_node("default:dry_grass_1", {
description = "Dry Grass",
drawtype = "plantlike",
waving = 1,
tiles = {"default_dry_grass_1.png"},
inventory_image = "default_dry_grass_3.png",
wield_image = "default_dry_grass_3.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flammable = 3, flora = 1,
attached_node = 1, dry_grass = 1},
2015-07-17 16:53:56 +02:00
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -3 / 16, 6 / 16},
2015-07-17 16:53:56 +02:00
},
on_place = function(itemstack, placer, pointed_thing)
-- place a random dry grass node
local stack = ItemStack("default:dry_grass_" .. math.random(1, 5))
2015-07-17 16:53:56 +02:00
local ret = minetest.item_place(stack, placer, pointed_thing)
return ItemStack("default:dry_grass_1 " ..
itemstack:get_count() - (1 - ret:get_count()))
2015-07-17 16:53:56 +02:00
end,
})
for i = 2, 5 do
minetest.register_node("default:dry_grass_" .. i, {
description = "Dry Grass",
drawtype = "plantlike",
waving = 1,
tiles = {"default_dry_grass_" .. i .. ".png"},
inventory_image = "default_dry_grass_" .. i .. ".png",
wield_image = "default_dry_grass_" .. i .. ".png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
buildable_to = true,
groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1,
not_in_creative_inventory=1, dry_grass = 1},
drop = "default:dry_grass_1",
sounds = default.node_sound_leaves_defaults(),
selection_box = {
type = "fixed",
fixed = {-6 / 16, -0.5, -6 / 16, 6 / 16, -1 / 16, 6 / 16},
},
})
end
minetest.register_node("default:bush_stem", {
description = "Bush Stem",
drawtype = "plantlike",
visual_scale = 1.18,
tiles = {"default_bush_stem.png"},
inventory_image = "default_bush_stem.png",
wield_image = "default_bush_stem.png",
paramtype = "light",
sunlight_propagates = true,
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
selection_box = {
type = "fixed",
fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.54, 7 / 16},
},
})
minetest.register_node("default:bush_leaves", {
description = "Bush Leaves",
drawtype = "allfaces_optional",
waving = 1,
tiles = {"default_leaves_simple.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1},
sounds = default.node_sound_leaves_defaults(),
})
minetest.register_node("default:acacia_bush_stem", {
description = "Acacia Bush Stem",
drawtype = "plantlike",
visual_scale = 1.18,
tiles = {"default_acacia_bush_stem.png"},
inventory_image = "default_acacia_bush_stem.png",
wield_image = "default_acacia_bush_stem.png",
paramtype = "light",
sunlight_propagates = true,
groups = {choppy = 2, oddly_breakable_by_hand = 1, flammable = 2},
sounds = default.node_sound_wood_defaults(),
selection_box = {
type = "fixed",
fixed = {-7 / 16, -0.5, -7 / 16, 7 / 16, 0.54, 7 / 16},
},
})
minetest.register_node("default:acacia_bush_leaves", {
description = "Acacia Bush Leaves",
drawtype = "allfaces_optional",
waving = 1,
tiles = {"default_acacia_leaves_simple.png"},
paramtype = "light",
groups = {snappy = 3, flammable = 2, leaves = 1},
sounds = default.node_sound_leaves_defaults(),
})
--
-- Corals
--
minetest.register_node("default:coral_brown", {
description = "Brown Coral",
tiles = {"default_coral_brown.png"},
groups = {cracky = 3},
drop = "default:coral_skeleton",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:coral_orange", {
description = "Orange Coral",
tiles = {"default_coral_orange.png"},
groups = {cracky = 3},
drop = "default:coral_skeleton",
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:coral_skeleton", {
description = "Coral Skeleton",
tiles = {"default_coral_skeleton.png"},
groups = {cracky = 3},
sounds = default.node_sound_stone_defaults(),
})
2014-12-07 16:29:36 +01:00
--
-- Liquids
--
minetest.register_node("default:water_source", {
description = "Water Source",
drawtype = "liquid",
tiles = {
2013-05-19 18:43:04 +02:00
{
2014-12-07 16:29:36 +01:00
name = "default_water_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
2014-12-07 16:29:36 +01:00
},
2013-05-19 18:43:04 +02:00
},
2014-12-07 16:29:36 +01:00
},
special_tiles = {
-- New-style water source material (mostly unused)
2013-05-19 18:43:04 +02:00
{
2014-12-07 16:29:36 +01:00
name = "default_water_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
2014-12-07 16:29:36 +01:00
},
backface_culling = false,
2013-05-19 18:43:04 +02:00
},
},
2014-12-07 15:17:09 +01:00
alpha = 160,
2013-05-19 18:43:04 +02:00
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
drop = "",
drowning = 1,
2014-12-07 16:29:36 +01:00
liquidtype = "source",
2013-05-19 18:43:04 +02:00
liquid_alternative_flowing = "default:water_flowing",
liquid_alternative_source = "default:water_source",
2014-12-07 15:17:09 +01:00
liquid_viscosity = 1,
post_effect_color = {a = 103, r = 30, g = 60, b = 90},
groups = {water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_water_defaults(),
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:water_flowing", {
description = "Flowing Water",
drawtype = "flowingliquid",
tiles = {"default_water.png"},
2013-05-19 18:43:04 +02:00
special_tiles = {
{
name = "default_water_flowing_animated.png",
2013-05-19 18:43:04 +02:00
backface_culling = false,
2014-12-07 16:29:36 +01:00
animation = {
type = "vertical_frames",
2014-12-07 16:29:36 +01:00
aspect_w = 16,
aspect_h = 16,
length = 0.8,
2014-12-07 16:29:36 +01:00
},
},
{
name = "default_water_flowing_animated.png",
2014-12-07 16:29:36 +01:00
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.8,
2014-12-07 16:29:36 +01:00
},
},
2013-05-19 18:43:04 +02:00
},
2014-12-07 15:17:09 +01:00
alpha = 160,
2013-05-19 18:43:04 +02:00
paramtype = "light",
2014-12-07 16:29:36 +01:00
paramtype2 = "flowingliquid",
2013-05-19 18:43:04 +02:00
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
drop = "",
drowning = 1,
2014-12-07 16:29:36 +01:00
liquidtype = "flowing",
2013-05-19 18:43:04 +02:00
liquid_alternative_flowing = "default:water_flowing",
liquid_alternative_source = "default:water_source",
2014-12-07 15:17:09 +01:00
liquid_viscosity = 1,
post_effect_color = {a = 103, r = 30, g = 60, b = 90},
groups = {water = 3, liquid = 3, puts_out_fire = 1,
not_in_creative_inventory = 1, cools_lava = 1},
sounds = default.node_sound_water_defaults(),
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
2015-04-17 07:50:06 +02:00
minetest.register_node("default:river_water_source", {
description = "River Water Source",
drawtype = "liquid",
tiles = {
{
name = "default_river_water_source_animated.png",
2015-04-17 07:50:06 +02:00
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
},
},
special_tiles = {
{
name = "default_river_water_source_animated.png",
2015-04-17 07:50:06 +02:00
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2.0,
},
backface_culling = false,
},
},
alpha = 160,
paramtype = "light",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
liquidtype = "source",
liquid_alternative_flowing = "default:river_water_flowing",
liquid_alternative_source = "default:river_water_source",
liquid_viscosity = 1,
liquid_renewable = false,
liquid_range = 2,
post_effect_color = {a = 103, r = 30, g = 76, b = 90},
groups = {water = 3, liquid = 3, puts_out_fire = 1, cools_lava = 1},
sounds = default.node_sound_water_defaults(),
2015-04-17 07:50:06 +02:00
})
minetest.register_node("default:river_water_flowing", {
description = "Flowing River Water",
drawtype = "flowingliquid",
tiles = {"default_river_water.png"},
2015-04-17 07:50:06 +02:00
special_tiles = {
{
name = "default_river_water_flowing_animated.png",
2015-04-17 07:50:06 +02:00
backface_culling = false,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.8,
},
},
{
name = "default_river_water_flowing_animated.png",
2015-04-17 07:50:06 +02:00
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 0.8,
},
},
},
alpha = 160,
paramtype = "light",
paramtype2 = "flowingliquid",
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
drop = "",
drowning = 1,
liquidtype = "flowing",
liquid_alternative_flowing = "default:river_water_flowing",
liquid_alternative_source = "default:river_water_source",
liquid_viscosity = 1,
liquid_renewable = false,
liquid_range = 2,
post_effect_color = {a = 103, r = 30, g = 76, b = 90},
groups = {water = 3, liquid = 3, puts_out_fire = 1,
not_in_creative_inventory = 1, cools_lava = 1},
sounds = default.node_sound_water_defaults(),
2015-04-17 07:50:06 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:lava_source", {
description = "Lava Source",
drawtype = "liquid",
tiles = {
2013-05-19 18:43:04 +02:00
{
2014-12-07 16:29:36 +01:00
name = "default_lava_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 3.0,
2014-12-07 16:29:36 +01:00
},
2013-05-19 18:43:04 +02:00
},
2014-12-07 16:29:36 +01:00
},
special_tiles = {
-- New-style lava source material (mostly unused)
2013-05-19 18:43:04 +02:00
{
2014-12-07 16:29:36 +01:00
name = "default_lava_source_animated.png",
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 3.0,
2014-12-07 16:29:36 +01:00
},
backface_culling = false,
2013-05-19 18:43:04 +02:00
},
},
paramtype = "light",
2014-12-07 15:17:09 +01:00
light_source = default.LIGHT_MAX - 1,
2013-05-19 18:43:04 +02:00
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
drop = "",
drowning = 1,
2014-12-07 16:29:36 +01:00
liquidtype = "source",
2013-05-19 18:43:04 +02:00
liquid_alternative_flowing = "default:lava_flowing",
liquid_alternative_source = "default:lava_source",
2014-12-07 15:17:09 +01:00
liquid_viscosity = 7,
2013-05-19 18:43:04 +02:00
liquid_renewable = false,
2014-12-07 16:29:36 +01:00
damage_per_second = 4 * 2,
post_effect_color = {a = 191, r = 255, g = 64, b = 0},
groups = {lava = 3, liquid = 2, igniter = 1},
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:lava_flowing", {
description = "Flowing Lava",
drawtype = "flowingliquid",
tiles = {"default_lava.png"},
2013-05-19 18:43:04 +02:00
special_tiles = {
{
name = "default_lava_flowing_animated.png",
2013-05-19 18:43:04 +02:00
backface_culling = false,
2014-12-07 16:29:36 +01:00
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 3.3,
2014-12-07 16:29:36 +01:00
},
},
{
name = "default_lava_flowing_animated.png",
2014-12-07 16:29:36 +01:00
backface_culling = true,
animation = {
type = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 3.3,
2014-12-07 16:29:36 +01:00
},
},
2013-05-19 18:43:04 +02:00
},
paramtype = "light",
2014-12-07 16:29:36 +01:00
paramtype2 = "flowingliquid",
2014-12-07 15:17:09 +01:00
light_source = default.LIGHT_MAX - 1,
2013-05-19 18:43:04 +02:00
walkable = false,
pointable = false,
diggable = false,
buildable_to = true,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
drop = "",
drowning = 1,
2014-12-07 16:29:36 +01:00
liquidtype = "flowing",
2013-05-19 18:43:04 +02:00
liquid_alternative_flowing = "default:lava_flowing",
liquid_alternative_source = "default:lava_source",
2014-12-07 15:17:09 +01:00
liquid_viscosity = 7,
2013-05-19 18:43:04 +02:00
liquid_renewable = false,
2014-12-07 16:29:36 +01:00
damage_per_second = 4 * 2,
post_effect_color = {a = 191, r = 255, g = 64, b = 0},
groups = {lava = 3, liquid = 2, igniter = 1,
not_in_creative_inventory = 1},
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
--
-- Tools / "Advanced" crafting / Non-"natural"
--
local chest_formspec =
"size[8,9]" ..
default.gui_bg ..
default.gui_bg_img ..
default.gui_slots ..
"list[current_name;main;0,0.3;8,4;]" ..
"list[current_player;main;0,4.85;8,1;]" ..
"list[current_player;main;0,6.08;8,3;8]" ..
"listring[current_name;main]" ..
"listring[current_player;main]" ..
2014-04-14 22:09:18 +02:00
default.get_hotbar_bg(0,4.85)
2014-12-07 16:29:36 +01:00
local function get_locked_chest_formspec(pos)
local spos = pos.x .. "," .. pos.y .. "," .. pos.z
local formspec =
"size[8,9]" ..
default.gui_bg ..
default.gui_bg_img ..
default.gui_slots ..
"list[nodemeta:" .. spos .. ";main;0,0.3;8,4;]" ..
"list[current_player;main;0,4.85;8,1;]" ..
"list[current_player;main;0,6.08;8,3;8]" ..
"listring[nodemeta:" .. spos .. ";main]" ..
"listring[current_player;main]" ..
2014-04-14 22:09:18 +02:00
default.get_hotbar_bg(0,4.85)
return formspec
end
2014-12-07 16:29:36 +01:00
local function has_locked_chest_privilege(meta, player)
if player then
if minetest.check_player_privs(player, "protection_bypass") then
return true
end
Keys: Allow easy sharing of access without commands This code adds the key concept to minetest_game, and integrates it with lockable nodes. Currently supported lockable items are the Steel Door, the Steel Trapdoor, and the Locked Chest. The goal of this modification is to introduce a fine-grained multi- player permission system that is intuitive and usable without any console or chat commands, and doesn't require extra privileges to be granted or setup. Keys can also physically be conveyed to other players, adding to gameplay and adding some personality that is preferable to console commands or editing formspecs. A skeleton key can be crafted with 1 gold ingot. Skeleton keys can then be matched to a lockable node by right-clicking the skeleton key on a lockable node, which changes the skeleton key to a "key". Gold was chosen as it's currently a not-so very useful item, and therefore it's likely that players have some, but aren't really using it for any purpose. This key can subsequently used by any player to open or access that lockable node, including retrieving items from Locked Chests, or putting items in them. They key is programmed to fit only the particular locked node it is programmed to. This is achieved by storing a secret value in both key and locked node. If this secret value doesn't match, the key will not open the locked node. This allows many keys to be created for one chest or door, but a key will only fit one node ever. The secrets are stored in node, and item meta for the key. If a locked node is removed, all keys that opened it are no longer valid. Even if a new door/chest is placed in exactly the same spot, the old keys will no longer fit that node. Keys can be smelted back in gold ingots if they are no longer useful. The method of storing a secret in nodemeta and itemstackmeta is secure as there is no way for the client to create new items on the server with a particular secret metadata value. Even if you could possible create such an itemstack on the client, the server does not ever read itemstackmeta from a client package. The patch adds an API that allows other nodes and nodes added by mods to use the same keys as well. The method how to implement this is described in game_api.txt. The mod should add 2 callbacks to it's node definition. Example code is given. Textures are from PixelBOX, thanks to Gambit.
2015-12-26 20:16:49 +01:00
else
return false
end
-- is player wielding the right key?
local item = player:get_wielded_item()
if item:get_name() == "default:key" then
local key_meta = minetest.parse_json(item:get_metadata())
Keys: Allow easy sharing of access without commands This code adds the key concept to minetest_game, and integrates it with lockable nodes. Currently supported lockable items are the Steel Door, the Steel Trapdoor, and the Locked Chest. The goal of this modification is to introduce a fine-grained multi- player permission system that is intuitive and usable without any console or chat commands, and doesn't require extra privileges to be granted or setup. Keys can also physically be conveyed to other players, adding to gameplay and adding some personality that is preferable to console commands or editing formspecs. A skeleton key can be crafted with 1 gold ingot. Skeleton keys can then be matched to a lockable node by right-clicking the skeleton key on a lockable node, which changes the skeleton key to a "key". Gold was chosen as it's currently a not-so very useful item, and therefore it's likely that players have some, but aren't really using it for any purpose. This key can subsequently used by any player to open or access that lockable node, including retrieving items from Locked Chests, or putting items in them. They key is programmed to fit only the particular locked node it is programmed to. This is achieved by storing a secret value in both key and locked node. If this secret value doesn't match, the key will not open the locked node. This allows many keys to be created for one chest or door, but a key will only fit one node ever. The secrets are stored in node, and item meta for the key. If a locked node is removed, all keys that opened it are no longer valid. Even if a new door/chest is placed in exactly the same spot, the old keys will no longer fit that node. Keys can be smelted back in gold ingots if they are no longer useful. The method of storing a secret in nodemeta and itemstackmeta is secure as there is no way for the client to create new items on the server with a particular secret metadata value. Even if you could possible create such an itemstack on the client, the server does not ever read itemstackmeta from a client package. The patch adds an API that allows other nodes and nodes added by mods to use the same keys as well. The method how to implement this is described in game_api.txt. The mod should add 2 callbacks to it's node definition. Example code is given. Textures are from PixelBOX, thanks to Gambit.
2015-12-26 20:16:49 +01:00
local secret = meta:get_string("key_lock_secret")
if secret ~= key_meta.secret then
return false
end
return true
end
Keys: Allow easy sharing of access without commands This code adds the key concept to minetest_game, and integrates it with lockable nodes. Currently supported lockable items are the Steel Door, the Steel Trapdoor, and the Locked Chest. The goal of this modification is to introduce a fine-grained multi- player permission system that is intuitive and usable without any console or chat commands, and doesn't require extra privileges to be granted or setup. Keys can also physically be conveyed to other players, adding to gameplay and adding some personality that is preferable to console commands or editing formspecs. A skeleton key can be crafted with 1 gold ingot. Skeleton keys can then be matched to a lockable node by right-clicking the skeleton key on a lockable node, which changes the skeleton key to a "key". Gold was chosen as it's currently a not-so very useful item, and therefore it's likely that players have some, but aren't really using it for any purpose. This key can subsequently used by any player to open or access that lockable node, including retrieving items from Locked Chests, or putting items in them. They key is programmed to fit only the particular locked node it is programmed to. This is achieved by storing a secret value in both key and locked node. If this secret value doesn't match, the key will not open the locked node. This allows many keys to be created for one chest or door, but a key will only fit one node ever. The secrets are stored in node, and item meta for the key. If a locked node is removed, all keys that opened it are no longer valid. Even if a new door/chest is placed in exactly the same spot, the old keys will no longer fit that node. Keys can be smelted back in gold ingots if they are no longer useful. The method of storing a secret in nodemeta and itemstackmeta is secure as there is no way for the client to create new items on the server with a particular secret metadata value. Even if you could possible create such an itemstack on the client, the server does not ever read itemstackmeta from a client package. The patch adds an API that allows other nodes and nodes added by mods to use the same keys as well. The method how to implement this is described in game_api.txt. The mod should add 2 callbacks to it's node definition. Example code is given. Textures are from PixelBOX, thanks to Gambit.
2015-12-26 20:16:49 +01:00
if player:get_player_name() ~= meta:get_string("owner") then
2014-12-07 16:29:36 +01:00
return false
end
Keys: Allow easy sharing of access without commands This code adds the key concept to minetest_game, and integrates it with lockable nodes. Currently supported lockable items are the Steel Door, the Steel Trapdoor, and the Locked Chest. The goal of this modification is to introduce a fine-grained multi- player permission system that is intuitive and usable without any console or chat commands, and doesn't require extra privileges to be granted or setup. Keys can also physically be conveyed to other players, adding to gameplay and adding some personality that is preferable to console commands or editing formspecs. A skeleton key can be crafted with 1 gold ingot. Skeleton keys can then be matched to a lockable node by right-clicking the skeleton key on a lockable node, which changes the skeleton key to a "key". Gold was chosen as it's currently a not-so very useful item, and therefore it's likely that players have some, but aren't really using it for any purpose. This key can subsequently used by any player to open or access that lockable node, including retrieving items from Locked Chests, or putting items in them. They key is programmed to fit only the particular locked node it is programmed to. This is achieved by storing a secret value in both key and locked node. If this secret value doesn't match, the key will not open the locked node. This allows many keys to be created for one chest or door, but a key will only fit one node ever. The secrets are stored in node, and item meta for the key. If a locked node is removed, all keys that opened it are no longer valid. Even if a new door/chest is placed in exactly the same spot, the old keys will no longer fit that node. Keys can be smelted back in gold ingots if they are no longer useful. The method of storing a secret in nodemeta and itemstackmeta is secure as there is no way for the client to create new items on the server with a particular secret metadata value. Even if you could possible create such an itemstack on the client, the server does not ever read itemstackmeta from a client package. The patch adds an API that allows other nodes and nodes added by mods to use the same keys as well. The method how to implement this is described in game_api.txt. The mod should add 2 callbacks to it's node definition. Example code is given. Textures are from PixelBOX, thanks to Gambit.
2015-12-26 20:16:49 +01:00
2014-12-07 16:29:36 +01:00
return true
end
2013-05-19 18:43:04 +02:00
minetest.register_node("default:chest", {
description = "Chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2},
2013-05-19 18:43:04 +02:00
legacy_facedir_simple = true,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_wood_defaults(),
2014-12-07 16:29:36 +01:00
2013-05-19 18:43:04 +02:00
on_construct = function(pos)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos)
2014-12-07 16:29:36 +01:00
meta:set_string("formspec", chest_formspec)
2013-05-19 18:43:04 +02:00
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
end,
can_dig = function(pos,player)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos);
2013-05-19 18:43:04 +02:00
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
on_metadata_inventory_move = function(pos, from_list, from_index,
to_list, to_index, count, player)
minetest.log("action", player:get_player_name() ..
" moves stuff in chest at " .. minetest.pos_to_string(pos))
2013-05-19 18:43:04 +02:00
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
2016-01-02 13:04:31 +01:00
" moves " .. stack:get_name() ..
" to chest at " .. minetest.pos_to_string(pos))
2013-05-19 18:43:04 +02:00
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
2016-01-02 13:04:31 +01:00
" takes " .. stack:get_name() ..
" from chest at " .. minetest.pos_to_string(pos))
2013-05-19 18:43:04 +02:00
end,
on_blast = function(pos)
local drops = {}
default.get_inventory_drops(pos, "main", drops)
drops[#drops+1] = "default:chest"
minetest.remove_node(pos)
return drops
end,
2013-05-19 18:43:04 +02:00
})
minetest.register_node("default:chest_locked", {
description = "Locked Chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_lock.png"},
paramtype2 = "facedir",
groups = {choppy = 2, oddly_breakable_by_hand = 2},
2013-05-19 18:43:04 +02:00
legacy_facedir_simple = true,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_wood_defaults(),
2014-12-07 16:29:36 +01:00
2013-05-19 18:43:04 +02:00
after_place_node = function(pos, placer)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos)
2013-05-19 18:43:04 +02:00
meta:set_string("owner", placer:get_player_name() or "")
meta:set_string("infotext", "Locked Chest (owned by " ..
meta:get_string("owner") .. ")")
2013-05-19 18:43:04 +02:00
end,
on_construct = function(pos)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos)
2013-05-19 18:43:04 +02:00
meta:set_string("owner", "")
local inv = meta:get_inventory()
inv:set_size("main", 8 * 4)
2013-05-19 18:43:04 +02:00
end,
can_dig = function(pos,player)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos);
2013-05-19 18:43:04 +02:00
local inv = meta:get_inventory()
return inv:is_empty("main") and has_locked_chest_privilege(meta, player)
end,
allow_metadata_inventory_move = function(pos, from_list, from_index,
to_list, to_index, count, player)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos)
2013-05-19 18:43:04 +02:00
if not has_locked_chest_privilege(meta, player) then
return 0
end
return count
end,
allow_metadata_inventory_put = function(pos, listname, index, stack, player)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos)
2013-05-19 18:43:04 +02:00
if not has_locked_chest_privilege(meta, player) then
return 0
end
return stack:get_count()
end,
allow_metadata_inventory_take = function(pos, listname, index, stack, player)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos)
2013-05-19 18:43:04 +02:00
if not has_locked_chest_privilege(meta, player) then
return 0
end
return stack:get_count()
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
2016-01-02 13:04:31 +01:00
" moves " .. stack:get_name() ..
" to locked chest at " .. minetest.pos_to_string(pos))
2013-05-19 18:43:04 +02:00
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
2016-01-02 13:04:31 +01:00
" takes " .. stack:get_name() ..
" from locked chest at " .. minetest.pos_to_string(pos))
2013-05-19 18:43:04 +02:00
end,
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
2013-05-25 00:40:03 +02:00
local meta = minetest.get_meta(pos)
2013-05-19 18:43:04 +02:00
if has_locked_chest_privilege(meta, clicker) then
minetest.show_formspec(
clicker:get_player_name(),
"default:chest_locked",
2014-12-07 16:29:36 +01:00
get_locked_chest_formspec(pos)
)
2013-05-19 18:43:04 +02:00
end
return itemstack
2013-05-19 18:43:04 +02:00
end,
on_blast = function() end,
Keys: Allow easy sharing of access without commands This code adds the key concept to minetest_game, and integrates it with lockable nodes. Currently supported lockable items are the Steel Door, the Steel Trapdoor, and the Locked Chest. The goal of this modification is to introduce a fine-grained multi- player permission system that is intuitive and usable without any console or chat commands, and doesn't require extra privileges to be granted or setup. Keys can also physically be conveyed to other players, adding to gameplay and adding some personality that is preferable to console commands or editing formspecs. A skeleton key can be crafted with 1 gold ingot. Skeleton keys can then be matched to a lockable node by right-clicking the skeleton key on a lockable node, which changes the skeleton key to a "key". Gold was chosen as it's currently a not-so very useful item, and therefore it's likely that players have some, but aren't really using it for any purpose. This key can subsequently used by any player to open or access that lockable node, including retrieving items from Locked Chests, or putting items in them. They key is programmed to fit only the particular locked node it is programmed to. This is achieved by storing a secret value in both key and locked node. If this secret value doesn't match, the key will not open the locked node. This allows many keys to be created for one chest or door, but a key will only fit one node ever. The secrets are stored in node, and item meta for the key. If a locked node is removed, all keys that opened it are no longer valid. Even if a new door/chest is placed in exactly the same spot, the old keys will no longer fit that node. Keys can be smelted back in gold ingots if they are no longer useful. The method of storing a secret in nodemeta and itemstackmeta is secure as there is no way for the client to create new items on the server with a particular secret metadata value. Even if you could possible create such an itemstack on the client, the server does not ever read itemstackmeta from a client package. The patch adds an API that allows other nodes and nodes added by mods to use the same keys as well. The method how to implement this is described in game_api.txt. The mod should add 2 callbacks to it's node definition. Example code is given. Textures are from PixelBOX, thanks to Gambit.
2015-12-26 20:16:49 +01:00
on_key_use = function(pos, player)
local secret = minetest.get_meta(pos):get_string("key_lock_secret")
local itemstack = player:get_wielded_item()
local key_meta = minetest.parse_json(itemstack:get_metadata())
if secret ~= key_meta.secret then
return
end
minetest.show_formspec(
player:get_player_name(),
"default:chest_locked",
get_locked_chest_formspec(pos)
)
end,
on_skeleton_key_use = function(pos, player, newsecret)
local meta = minetest.get_meta(pos)
local owner = meta:get_string("owner")
local name = player:get_player_name()
-- verify placer is owner of lockable chest
if owner ~= name then
minetest.record_protection_violation(pos, name)
minetest.chat_send_player(name, "You do not own this chest.")
return nil
end
local secret = meta:get_string("key_lock_secret")
if secret == "" then
secret = newsecret
meta:set_string("key_lock_secret", secret)
end
return secret, "a locked chest", owner
end,
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
local bookshelf_formspec =
"size[8,7;]" ..
default.gui_bg ..
default.gui_bg_img ..
default.gui_slots ..
"list[context;books;0,0.3;8,2;]" ..
"list[current_player;main;0,2.85;8,1;]" ..
"list[current_player;main;0,4.08;8,3;8]" ..
"listring[context;books]" ..
"listring[current_player;main]" ..
2014-12-07 16:29:36 +01:00
default.get_hotbar_bg(0,2.85)
2013-05-19 18:43:04 +02:00
local function get_bookshelf_formspec(inv)
local formspec = bookshelf_formspec
local invlist = inv and inv:get_list("books")
-- Inventory slots overlay
local bx, by = 0, 0.3
for i = 1, 16 do
if i == 9 then
bx = 0
by = by + 1
end
if not invlist or invlist[i]:is_empty() then
formspec = formspec ..
"image[" .. bx .. "," .. by .. ";1,1;default_bookshelf_slot.png]"
end
bx = bx + 1
end
return formspec
end
2014-12-07 16:29:36 +01:00
minetest.register_node("default:bookshelf", {
description = "Bookshelf",
tiles = {"default_wood.png", "default_wood.png", "default_wood.png",
"default_wood.png", "default_bookshelf.png", "default_bookshelf.png"},
paramtype2 = "facedir",
2014-12-07 16:29:36 +01:00
is_ground_content = false,
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_wood_defaults(),
2013-05-19 18:43:04 +02:00
2014-12-07 16:29:36 +01:00
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", get_bookshelf_formspec(nil))
2014-12-07 16:29:36 +01:00
local inv = meta:get_inventory()
inv:set_size("books", 8 * 2)
2014-12-07 16:29:36 +01:00
end,
can_dig = function(pos,player)
local inv = minetest.get_meta(pos):get_inventory()
2014-12-07 16:29:36 +01:00
return inv:is_empty("books")
end,
allow_metadata_inventory_put = function(pos, listname, index, stack)
if minetest.get_item_group(stack:get_name(), "book") ~= 0 then
return stack:get_count()
2014-12-07 16:29:36 +01:00
end
return 0
2014-12-07 16:29:36 +01:00
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name() ..
" moves stuff in bookshelf at " .. minetest.pos_to_string(pos))
local meta = minetest.get_meta(pos)
meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory()))
2014-12-07 16:29:36 +01:00
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" moves stuff to bookshelf at " .. minetest.pos_to_string(pos))
local meta = minetest.get_meta(pos)
meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory()))
2014-12-07 16:29:36 +01:00
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name() ..
" takes stuff from bookshelf at " .. minetest.pos_to_string(pos))
local meta = minetest.get_meta(pos)
meta:set_string("formspec", get_bookshelf_formspec(meta:get_inventory()))
2014-12-07 16:29:36 +01:00
end,
on_blast = function(pos)
local drops = {}
default.get_inventory_drops(pos, "books", drops)
drops[#drops+1] = "default:bookshelf"
minetest.remove_node(pos)
return drops
end,
2013-05-19 18:43:04 +02:00
})
local function register_sign(material, desc, def)
minetest.register_node("default:sign_wall_" .. material, {
description = desc .. " Sign",
drawtype = "nodebox",
tiles = {"default_sign_wall_" .. material .. ".png"},
inventory_image = "default_sign_" .. material .. ".png",
wield_image = "default_sign_" .. material .. ".png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
is_ground_content = false,
walkable = false,
node_box = {
type = "wallmounted",
wall_top = {-0.4375, 0.4375, -0.3125, 0.4375, 0.5, 0.3125},
wall_bottom = {-0.4375, -0.5, -0.3125, 0.4375, -0.4375, 0.3125},
wall_side = {-0.5, -0.3125, -0.4375, -0.4375, 0.3125, 0.4375},
},
groups = def.groups,
legacy_wallmounted = true,
sounds = def.sounds,
on_construct = function(pos)
--local n = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec", "field[text;;${text}]")
end,
on_receive_fields = function(pos, formname, fields, sender)
--print("Sign at "..minetest.pos_to_string(pos).." got "..dump(fields))
local player_name = sender:get_player_name()
if minetest.is_protected(pos, player_name) then
minetest.record_protection_violation(pos, player_name)
return
end
local meta = minetest.get_meta(pos)
if not fields.text then return end
minetest.log("action", (player_name or "") .. " wrote \"" ..
fields.text .. "\" to sign at " .. minetest.pos_to_string(pos))
meta:set_string("text", fields.text)
meta:set_string("infotext", '"' .. fields.text .. '"')
end,
})
end
2013-05-19 18:43:04 +02:00
register_sign("wood", "Wooden", {
sounds = default.node_sound_wood_defaults(),
groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3}
2013-05-19 18:43:04 +02:00
})
register_sign("steel", "Steel", {
sounds = default.node_sound_metal_defaults(),
groups = {cracky = 2, attached_node = 1}
})
2016-03-03 10:52:45 +01:00
minetest.register_node("default:ladder_wood", {
description = "Wooden Ladder",
2014-12-07 16:29:36 +01:00
drawtype = "signlike",
2016-03-03 10:52:45 +01:00
tiles = {"default_ladder_wood.png"},
inventory_image = "default_ladder_wood.png",
wield_image = "default_ladder_wood.png",
2013-05-19 18:43:04 +02:00
paramtype = "light",
2014-12-07 16:29:36 +01:00
paramtype2 = "wallmounted",
sunlight_propagates = true,
2013-05-19 18:43:04 +02:00
walkable = false,
2014-12-07 16:29:36 +01:00
climbable = true,
is_ground_content = false,
2013-05-19 18:43:04 +02:00
selection_box = {
2014-12-07 16:29:36 +01:00
type = "wallmounted",
--wall_top = = <default>
--wall_bottom = = <default>
--wall_side = = <default>
2013-05-19 18:43:04 +02:00
},
groups = {choppy = 2, oddly_breakable_by_hand = 3, flammable = 2},
2014-12-07 16:29:36 +01:00
legacy_wallmounted = true,
sounds = default.node_sound_wood_defaults(),
2013-05-19 18:43:04 +02:00
})
2016-03-03 10:52:45 +01:00
minetest.register_node("default:ladder_steel", {
description = "Steel Ladder",
drawtype = "signlike",
tiles = {"default_ladder_steel.png"},
inventory_image = "default_ladder_steel.png",
wield_image = "default_ladder_steel.png",
paramtype = "light",
paramtype2 = "wallmounted",
sunlight_propagates = true,
walkable = false,
climbable = true,
is_ground_content = false,
selection_box = {
type = "wallmounted",
--wall_top = = <default>
--wall_bottom = = <default>
--wall_side = = <default>
},
groups = {cracky = 2},
sounds = default.node_sound_metal_defaults(),
2016-03-03 10:52:45 +01:00
})
default.register_fence("default:fence_wood", {
2014-12-07 16:29:36 +01:00
description = "Wooden Fence",
texture = "default_fence_wood.png",
inventory_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^default_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
material = "default:wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("default:fence_acacia_wood", {
description = "Acacia Fence",
texture = "default_fence_acacia_wood.png",
inventory_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^default_acacia_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
material = "default:acacia_wood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("default:fence_junglewood", {
description = "Junglewood Fence",
texture = "default_fence_junglewood.png",
inventory_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^default_junglewood.png^default_fence_overlay.png^[makealpha:255,126,126",
material = "default:junglewood",
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults()
2013-05-19 18:43:04 +02:00
})
default.register_fence("default:fence_pine_wood", {
description = "Pine Fence",
texture = "default_fence_pine_wood.png",
inventory_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^default_pine_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
material = "default:pine_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
default.register_fence("default:fence_aspen_wood", {
description = "Aspen Fence",
texture = "default_fence_aspen_wood.png",
inventory_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
wield_image = "default_fence_overlay.png^default_aspen_wood.png^default_fence_overlay.png^[makealpha:255,126,126",
material = "default:aspen_wood",
groups = {choppy = 3, oddly_breakable_by_hand = 2, flammable = 3},
sounds = default.node_sound_wood_defaults()
})
2013-05-19 18:43:04 +02:00
2014-12-07 16:29:36 +01:00
minetest.register_node("default:glass", {
description = "Glass",
drawtype = "glasslike_framed_optional",
tiles = {"default_glass.png", "default_glass_detail.png"},
2013-05-19 18:43:04 +02:00
paramtype = "light",
2014-12-07 16:29:36 +01:00
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
2013-05-19 18:43:04 +02:00
sounds = default.node_sound_glass_defaults(),
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:obsidian_glass", {
description = "Obsidian Glass",
drawtype = "glasslike_framed_optional",
tiles = {"default_obsidian_glass.png", "default_obsidian_glass_detail.png"},
2013-05-19 18:43:04 +02:00
paramtype = "light",
2014-12-07 16:29:36 +01:00
is_ground_content = false,
sunlight_propagates = true,
sounds = default.node_sound_glass_defaults(),
groups = {cracky = 3},
2013-05-19 18:43:04 +02:00
})
2014-12-07 16:29:36 +01:00
minetest.register_node("default:brick", {
description = "Brick Block",
paramtype2 = "facedir",
place_param2 = 0,
2014-12-07 16:29:36 +01:00
tiles = {"default_brick.png"},
is_ground_content = false,
groups = {cracky = 3},
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_stone_defaults(),
})
minetest.register_node("default:meselamp", {
description = "Mese Lamp",
drawtype = "glasslike",
tiles = {"default_meselamp.png"},
paramtype = "light",
sunlight_propagates = true,
is_ground_content = false,
groups = {cracky = 3, oddly_breakable_by_hand = 3},
sounds = default.node_sound_glass_defaults(),
light_source = default.LIGHT_MAX,
})
minetest.register_node("default:mese_post_light", {
description = "Mese Post Light",
tiles = {"default_mese_post_light_top.png", "default_mese_post_light_top.png",
"default_mese_post_light_side_dark.png", "default_mese_post_light_side_dark.png",
"default_mese_post_light_side.png", "default_mese_post_light_side.png"},
wield_image = "default_mese_post_light_side.png",
drawtype = "nodebox",
node_box = {
type = "fixed",
fixed = {
{-2 / 16, -8 / 16, -2 / 16, 2 / 16, 8 / 16, 2 / 16},
},
},
paramtype = "light",
light_source = default.LIGHT_MAX,
sunlight_propagates = true,
is_ground_content = false,
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
sounds = default.node_sound_wood_defaults(),
})
2014-12-07 16:29:36 +01:00
--
-- Misc
--
minetest.register_node("default:cloud", {
description = "Cloud",
tiles = {"default_cloud.png"},
is_ground_content = false,
2014-12-07 16:29:36 +01:00
sounds = default.node_sound_defaults(),
groups = {not_in_creative_inventory = 1},
2014-12-07 16:29:36 +01:00
})