2013-05-19 18:43:04 +02:00
|
|
|
-- mods/default/nodes.lua
|
|
|
|
|
2015-08-09 09:50:57 +02:00
|
|
|
|
|
|
|
--[[ 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
|
|
|
|
-----
|
2016-03-21 10:23:12 +01:00
|
|
|
(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:mossycobble
|
|
|
|
|
|
|
|
default:desert_stone
|
|
|
|
default:desert_cobble
|
|
|
|
default:desert_stonebrick
|
|
|
|
|
|
|
|
default:sandstone
|
|
|
|
default:sandstonebrick
|
|
|
|
|
|
|
|
default:obsidian
|
|
|
|
default:obsidianbrick
|
|
|
|
|
|
|
|
Soft / Non-Stone
|
|
|
|
----------------
|
2016-03-21 10:23:12 +01:00
|
|
|
(1. Material 2. Modified forms)
|
2014-12-07 16:29:36 +01:00
|
|
|
|
|
|
|
default:dirt
|
|
|
|
default:dirt_with_grass
|
|
|
|
default:dirt_with_grass_footsteps
|
2015-08-11 22:28:28 +02:00
|
|
|
default:dirt_with_dry_grass
|
2014-12-07 16:29:36 +01:00
|
|
|
default:dirt_with_snow
|
|
|
|
|
|
|
|
default:sand
|
|
|
|
default:desert_sand
|
|
|
|
|
|
|
|
default:gravel
|
|
|
|
|
|
|
|
default:clay
|
|
|
|
|
|
|
|
default:snow
|
|
|
|
default:snowblock
|
|
|
|
|
|
|
|
default:ice
|
|
|
|
|
|
|
|
Trees
|
|
|
|
-----
|
2016-03-21 10:23:12 +01:00
|
|
|
(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
|
|
|
|
|
2015-08-09 09:50:57 +02:00
|
|
|
default:pine_tree
|
|
|
|
default:pine_wood
|
2014-12-07 16:29:36 +01:00
|
|
|
default:pine_needles
|
|
|
|
default:pine_sapling
|
|
|
|
|
2015-07-01 14:03:14 +02:00
|
|
|
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
|
2016-03-21 10:23:12 +01:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
Ores
|
|
|
|
----
|
2016-03-21 10:23:12 +01:00
|
|
|
(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 (non-cubic)
|
|
|
|
---------------------
|
2016-03-21 10:23:12 +01:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
default:cactus
|
|
|
|
default:papyrus
|
|
|
|
default:dry_shrub
|
|
|
|
default:junglegrass
|
2015-07-01 14:03:14 +02:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
default:grass_1
|
|
|
|
default:grass_2
|
|
|
|
default:grass_3
|
|
|
|
default:grass_4
|
|
|
|
default:grass_5
|
|
|
|
|
2015-07-01 14:03:14 +02:00
|
|
|
default:dry_grass_1
|
|
|
|
default:dry_grass_2
|
|
|
|
default:dry_grass_3
|
|
|
|
default:dry_grass_4
|
|
|
|
default:dry_grass_5
|
|
|
|
|
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"
|
|
|
|
-------------------------------------------
|
2016-03-21 10:23:12 +01:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
default:torch
|
|
|
|
|
|
|
|
default:chest
|
|
|
|
default:chest_locked
|
|
|
|
|
|
|
|
default:bookshelf
|
|
|
|
|
2016-03-06 12:16:33 +01:00
|
|
|
default:sign_wall_wood
|
|
|
|
default:sign_wall_steel
|
2015-08-25 05:11:46 +02:00
|
|
|
|
2016-03-03 10:52:45 +01:00
|
|
|
default:ladder_wood
|
|
|
|
default:ladder_steel
|
2015-08-25 05:11:46 +02:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
default:fence_wood
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
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:rail
|
|
|
|
|
|
|
|
default:brick
|
|
|
|
|
2015-03-05 16:46:49 +01:00
|
|
|
default:meselamp
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
Misc
|
|
|
|
----
|
2016-03-21 10:23:12 +01:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
default:cloud
|
|
|
|
default:nyancat
|
|
|
|
default:nyancat_rainbow
|
|
|
|
|
|
|
|
--]]
|
|
|
|
|
|
|
|
--
|
|
|
|
-- Stone
|
|
|
|
--
|
|
|
|
|
2013-05-19 18:43:04 +02:00
|
|
|
minetest.register_node("default:stone", {
|
|
|
|
description = "Stone",
|
|
|
|
tiles = {"default_stone.png"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
|
|
|
tiles = {"default_stone_brick.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 2, stone = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:mossycobble", {
|
|
|
|
description = "Mossy Cobblestone",
|
|
|
|
tiles = {"default_mossycobble.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
|
|
|
tiles = {"default_desert_stone_brick.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 2, stone = 1},
|
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:sandstone", {
|
|
|
|
description = "Sandstone",
|
|
|
|
tiles = {"default_sandstone.png"},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {crumbly = 2, 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",
|
|
|
|
tiles = {"default_sandstone_brick.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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
|
|
|
|
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(),
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
|
|
|
tiles = {"default_obsidian_brick.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2013-05-19 18:43:04 +02:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 1, level = 2},
|
2013-05-19 18:43:04 +02:00
|
|
|
})
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
--
|
|
|
|
-- Soft / Non-Stone
|
|
|
|
--
|
|
|
|
|
|
|
|
minetest.register_node("default:dirt", {
|
|
|
|
description = "Dirt",
|
|
|
|
tiles = {"default_dirt.png"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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}},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {crumbly = 3, soil = 1},
|
2013-05-19 18:43:04 +02:00
|
|
|
drop = 'default:dirt',
|
|
|
|
sounds = default.node_sound_dirt_defaults({
|
2015-08-25 05:11:46 +02:00
|
|
|
footstep = {name = "default_grass_footstep", gain = 0.25},
|
2013-05-19 18:43:04 +02:00
|
|
|
}),
|
|
|
|
})
|
|
|
|
|
2015-08-11 22:28:28 +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}},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {crumbly = 3, soil = 1, not_in_creative_inventory = 1},
|
2015-08-11 22:28:28 +02:00
|
|
|
drop = 'default:dirt',
|
|
|
|
sounds = default.node_sound_dirt_defaults({
|
2015-08-25 05:11:46 +02:00
|
|
|
footstep = {name = "default_grass_footstep", gain = 0.25},
|
2015-08-11 22:28:28 +02:00
|
|
|
}),
|
|
|
|
})
|
|
|
|
|
2015-07-01 14:03:14 +02:00
|
|
|
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}},
|
2015-07-01 14:03:14 +02:00
|
|
|
groups = {crumbly = 3, soil = 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}},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {crumbly = 3, soil = 1},
|
2013-05-19 18:43:04 +02:00
|
|
|
drop = 'default:dirt',
|
|
|
|
sounds = default.node_sound_dirt_defaults({
|
2016-01-18 22:35:21 +01:00
|
|
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {crumbly = 3, falling_node = 1, sand = 1},
|
2013-05-19 18:43:04 +02:00
|
|
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {crumbly = 2, falling_node = 1},
|
2013-05-19 18:43:04 +02:00
|
|
|
sounds = default.node_sound_dirt_defaults({
|
2015-08-25 05:11:46 +02:00
|
|
|
footstep = {name = "default_gravel_footstep", gain = 0.5},
|
|
|
|
dug = {name = "default_gravel_footstep", gain = 1.0},
|
2013-05-19 18:43:04 +02:00
|
|
|
}),
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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,
|
2016-04-02 21:14:18 +02:00
|
|
|
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
|
|
|
},
|
|
|
|
},
|
2015-08-25 02:20:14 +02:00
|
|
|
groups = {crumbly = 3, falling_node = 1, puts_out_fire = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_dirt_defaults({
|
2016-01-18 22:35:21 +01:00
|
|
|
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"},
|
2015-08-25 02:20:14 +02:00
|
|
|
groups = {crumbly = 3, puts_out_fire = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_dirt_defaults({
|
2016-01-18 22:35:21 +01:00
|
|
|
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
|
|
|
}),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:ice", {
|
|
|
|
description = "Ice",
|
|
|
|
tiles = {"default_ice.png"},
|
2015-04-05 01:40:23 +02:00
|
|
|
is_ground_content = false,
|
2014-12-07 16:29:36 +01:00
|
|
|
paramtype = "light",
|
2015-08-25 02:20:14 +02:00
|
|
|
groups = {cracky = 3, puts_out_fire = 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",
|
2013-11-30 08:42:57 +01:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
|
|
|
tiles = {"default_wood.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, 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",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2014-12-07 16:29:36 +01:00
|
|
|
walkable = false,
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
|
|
|
},
|
2015-08-25 05:11:46 +02: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(),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:leaves", {
|
|
|
|
description = "Leaves",
|
|
|
|
drawtype = "allfaces_optional",
|
|
|
|
waving = 1,
|
|
|
|
visual_scale = 1.3,
|
|
|
|
tiles = {"default_leaves.png"},
|
2015-07-08 15:52:17 +02:00
|
|
|
special_tiles = {"default_leaves_simple.png"},
|
2014-12-07 16:29:36 +01:00
|
|
|
paramtype = "light",
|
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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
|
|
|
|
2014-12-06 11:08:41 +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,
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2013-05-19 18:43:04 +02:00
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
2014-12-07 16:29:36 +01:00
|
|
|
fixed = {-0.2, -0.5, -0.2, 0.2, 0, 0.2}
|
2013-05-19 18:43:04 +02:00
|
|
|
},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {fleshy = 3, dig_immediate = 3, flammable = 2,
|
|
|
|
leafdecay = 3, leafdecay_drop = 1},
|
2015-05-14 17:33:10 +02:00
|
|
|
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
|
2015-08-25 05:11:46 +02:00
|
|
|
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
|
|
|
})
|
2013-11-02 11:00:48 +01:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
|
|
|
|
minetest.register_node("default:jungletree", {
|
|
|
|
description = "Jungle Tree",
|
2015-08-25 05:11:46 +02:00
|
|
|
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,
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
|
|
|
tiles = {"default_junglewood.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, 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",
|
2013-12-04 00:47:35 +01:00
|
|
|
waving = 1,
|
2013-05-19 18:43:04 +02:00
|
|
|
visual_scale = 1.3,
|
2014-12-07 16:29:36 +01:00
|
|
|
tiles = {"default_jungleleaves.png"},
|
2015-07-08 15:52:17 +02:00
|
|
|
special_tiles = {"default_jungleleaves_simple.png"},
|
2013-05-19 18:43:04 +02:00
|
|
|
paramtype = "light",
|
2013-11-30 08:42:57 +01:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
|
2013-05-19 18:43:04 +02:00
|
|
|
drop = {
|
|
|
|
max_items = 1,
|
|
|
|
items = {
|
2015-08-25 05:11:46 +02:00
|
|
|
{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",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2013-05-19 18:43:04 +02:00
|
|
|
walkable = false,
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
2014-12-07 16:29:36 +01:00
|
|
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
2013-05-19 18:43:04 +02:00
|
|
|
},
|
2015-08-25 05:11:46 +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(),
|
|
|
|
})
|
|
|
|
|
2014-04-15 21:04:34 +02:00
|
|
|
|
2015-08-09 09:50:57 +02:00
|
|
|
minetest.register_node("default:pine_tree", {
|
2014-12-07 16:29:36 +01:00
|
|
|
description = "Pine Tree",
|
2015-08-09 09:50:57 +02:00
|
|
|
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",
|
2013-11-30 08:42:57 +01:00
|
|
|
is_ground_content = false,
|
2015-07-01 14:03:14 +02:00
|
|
|
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-06-22 11:00:23 +02:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
on_place = minetest.rotate_node
|
|
|
|
})
|
2013-06-22 11:00:23 +02:00
|
|
|
|
2015-08-09 09:50:57 +02:00
|
|
|
minetest.register_node("default:pine_wood", {
|
|
|
|
description = "Pine Wood Planks",
|
|
|
|
tiles = {"default_pine_wood.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-07-01 14:03:14 +02:00
|
|
|
groups = {choppy = 2, 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",
|
|
|
|
visual_scale = 1.3,
|
|
|
|
tiles = {"default_pine_needles.png"},
|
|
|
|
waving = 1,
|
2013-05-19 18:43:04 +02:00
|
|
|
paramtype = "light",
|
2013-11-30 08:42:57 +01:00
|
|
|
is_ground_content = false,
|
2015-07-01 14:03:14 +02:00
|
|
|
groups = {snappy = 3, leafdecay = 3, flammable = 2, leaves = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
drop = {
|
|
|
|
max_items = 1,
|
|
|
|
items = {
|
2015-07-01 14:03:14 +02:00
|
|
|
{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",
|
2015-07-01 14:03:14 +02:00
|
|
|
sunlight_propagates = true,
|
2014-12-07 16:29:36 +01:00
|
|
|
walkable = false,
|
2013-05-19 18:43:04 +02:00
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
2014-12-07 16:29:36 +01:00
|
|
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
2013-05-19 18:43:04 +02:00
|
|
|
},
|
2015-08-09 09:50:57 +02:00
|
|
|
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
|
|
|
attached_node = 1, sapling = 1},
|
2015-07-01 14:03:14 +02:00
|
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
|
|
})
|
|
|
|
|
2015-08-25 05:11:46 +02:00
|
|
|
|
2015-07-01 14:03:14 +02:00
|
|
|
minetest.register_node("default:acacia_tree", {
|
|
|
|
description = "Acacia Tree",
|
2015-08-09 09:50:57 +02:00
|
|
|
tiles = {"default_acacia_tree_top.png", "default_acacia_tree_top.png",
|
|
|
|
"default_acacia_tree.png"},
|
2015-07-01 14:03:14 +02:00
|
|
|
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",
|
|
|
|
tiles = {"default_acacia_wood.png"},
|
|
|
|
is_ground_content = false,
|
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
|
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:acacia_leaves", {
|
|
|
|
description = "Acacia Leaves",
|
|
|
|
drawtype = "allfaces_optional",
|
|
|
|
visual_scale = 1.3,
|
|
|
|
tiles = {"default_acacia_leaves.png"},
|
2015-09-01 07:12:21 +02:00
|
|
|
waving = 1,
|
2015-07-01 14:03:14 +02:00
|
|
|
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,
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
|
|
|
},
|
2015-08-09 09:50:57 +02: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(),
|
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 = 2, oddly_breakable_by_hand = 1, flammable = 2},
|
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
|
|
|
|
on_place = minetest.rotate_node
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:aspen_wood", {
|
|
|
|
description = "Aspen Wood Planks",
|
|
|
|
tiles = {"default_aspen_wood.png"},
|
|
|
|
is_ground_content = false,
|
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 3, wood = 1},
|
|
|
|
sounds = default.node_sound_wood_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:aspen_leaves", {
|
|
|
|
description = "Aspen Leaves",
|
|
|
|
drawtype = "allfaces_optional",
|
|
|
|
visual_scale = 1.3,
|
|
|
|
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,
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
|
|
|
|
},
|
|
|
|
groups = {snappy = 2, dig_immediate = 3, flammable = 2,
|
|
|
|
attached_node = 1, sapling = 1},
|
|
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
|
|
})
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 1, level = 2},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
minetest.register_node("default:stone_with_copper", {
|
|
|
|
description = "Copper Ore",
|
|
|
|
tiles = {"default_stone.png^default_mineral_copper.png"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 1, level = 2},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:bronzeblock", {
|
|
|
|
description = "Bronze Block",
|
|
|
|
tiles = {"default_bronze_block.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 1, level = 2},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
minetest.register_node("default:stone_with_mese", {
|
|
|
|
description = "Mese Ore",
|
|
|
|
tiles = {"default_stone.png^default_mineral_mese.png"},
|
2015-03-05 16:46:49 +01:00
|
|
|
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"},
|
2015-03-05 16:46:49 +01:00
|
|
|
paramtype = "light",
|
|
|
|
groups = {cracky = 1, level = 2},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
2015-03-05 16:46:49 +01:00
|
|
|
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"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
|
|
minetest.register_node("default:stone_with_diamond", {
|
|
|
|
description = "Diamond Ore",
|
|
|
|
tiles = {"default_stone.png^default_mineral_diamond.png"},
|
2015-08-25 05:11:46 +02:00
|
|
|
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"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
2015-08-25 05:11:46 +02:00
|
|
|
tiles = {"default_cactus_top.png", "default_cactus_top.png",
|
|
|
|
"default_cactus_side.png"},
|
2014-12-07 16:29:36 +01:00
|
|
|
paramtype2 = "facedir",
|
2016-03-21 10:23:12 +01:00
|
|
|
groups = {snappy = 1, 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",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2013-05-19 18:43:04 +02:00
|
|
|
walkable = false,
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
2014-12-07 16:29:36 +01:00
|
|
|
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
2013-05-19 18:43:04 +02:00
|
|
|
},
|
2015-08-25 05:11:46 +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",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2013-05-19 18:43:04 +02:00
|
|
|
walkable = false,
|
2014-12-07 16:29:36 +01:00
|
|
|
buildable_to = true,
|
2015-08-25 05:11:46 +02:00
|
|
|
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 = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
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",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2014-12-07 16:29:36 +01:00
|
|
|
walkable = false,
|
|
|
|
buildable_to = true,
|
2016-04-16 22:53:03 +02:00
|
|
|
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
|
|
},
|
2013-05-19 18:43:04 +02:00
|
|
|
})
|
|
|
|
|
2015-08-25 05:11:46 +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",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2014-12-07 16:29:36 +01:00
|
|
|
walkable = false,
|
|
|
|
buildable_to = true,
|
2016-04-16 22:53:03 +02:00
|
|
|
groups = {snappy = 3, flora = 1, attached_node = 1, grass = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
|
|
},
|
|
|
|
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
|
|
-- place a random grass node
|
2015-08-25 05:11:46 +02:00
|
|
|
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)
|
2015-08-25 05:11:46 +02:00
|
|
|
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
|
|
|
})
|
|
|
|
|
2015-08-25 05:11:46 +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,
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2014-12-07 16:29:36 +01:00
|
|
|
walkable = false,
|
|
|
|
buildable_to = true,
|
|
|
|
drop = "default:grass_1",
|
2016-03-21 10:23:12 +01:00
|
|
|
groups = {snappy = 3, flora = 1, attached_node = 1,
|
2016-04-16 22:53:03 +02:00
|
|
|
not_in_creative_inventory = 1, grass = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
|
|
},
|
|
|
|
})
|
|
|
|
end
|
|
|
|
|
2015-08-25 05:11:46 +02:00
|
|
|
|
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,
|
2016-04-16 22:53:03 +02:00
|
|
|
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 = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
|
|
},
|
|
|
|
|
|
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
|
|
-- place a random dry grass node
|
2015-08-25 05:11:46 +02:00
|
|
|
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)
|
2015-08-25 05:11:46 +02:00
|
|
|
return ItemStack("default:dry_grass_1 " ..
|
|
|
|
itemstack:get_count() - (1 - ret:get_count()))
|
2015-07-17 16:53:56 +02:00
|
|
|
end,
|
|
|
|
})
|
|
|
|
|
2015-08-25 05:11:46 +02:00
|
|
|
for i = 2, 5 do
|
|
|
|
minetest.register_node("default:dry_grass_" .. i, {
|
2015-07-01 14:03:14 +02:00
|
|
|
description = "Dry Grass",
|
|
|
|
drawtype = "plantlike",
|
|
|
|
waving = 1,
|
2015-08-25 05:11:46 +02:00
|
|
|
tiles = {"default_dry_grass_" .. i .. ".png"},
|
|
|
|
inventory_image = "default_dry_grass_" .. i .. ".png",
|
|
|
|
wield_image = "default_dry_grass_" .. i .. ".png",
|
2015-07-01 14:03:14 +02:00
|
|
|
paramtype = "light",
|
|
|
|
sunlight_propagates = true,
|
|
|
|
walkable = false,
|
|
|
|
buildable_to = true,
|
2016-04-16 22:53:03 +02:00
|
|
|
groups = {snappy = 3, flammable = 3, flora = 1, attached_node = 1,
|
|
|
|
not_in_creative_inventory=1, dry_grass = 1},
|
2015-07-01 14:03:14 +02:00
|
|
|
drop = "default:dry_grass_1",
|
|
|
|
sounds = default.node_sound_leaves_defaults(),
|
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
|
|
|
},
|
|
|
|
})
|
|
|
|
end
|
|
|
|
|
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,
|
2014-12-15 13:27:20 +01:00
|
|
|
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,
|
2014-12-15 13:27:20 +01:00
|
|
|
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,
|
2015-04-05 01:40:23 +02:00
|
|
|
is_ground_content = false,
|
2013-05-19 18:43:04 +02:00
|
|
|
drop = "",
|
2013-08-02 08:12:20 +02:00
|
|
|
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,
|
2015-12-06 04:09:29 +01:00
|
|
|
post_effect_color = {a = 103, r = 30, g = 60, b = 90},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {water = 3, liquid = 3, puts_out_fire = 1},
|
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 = {
|
|
|
|
{
|
2014-12-15 13:27:20 +01:00
|
|
|
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 = {
|
2014-12-15 13:27:20 +01:00
|
|
|
type = "vertical_frames",
|
2014-12-07 16:29:36 +01:00
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
2014-12-15 13:27:20 +01:00
|
|
|
length = 0.8,
|
2014-12-07 16:29:36 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
2014-12-15 13:27:20 +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,
|
2014-12-15 13:27:20 +01:00
|
|
|
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,
|
2015-04-05 01:40:23 +02:00
|
|
|
is_ground_content = false,
|
2013-05-19 18:43:04 +02:00
|
|
|
drop = "",
|
2013-08-02 08:12:20 +02:00
|
|
|
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,
|
2015-12-06 04:09:29 +01:00
|
|
|
post_effect_color = {a = 103, r = 30, g = 60, b = 90},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {water = 3, liquid = 3, puts_out_fire = 1,
|
|
|
|
not_in_creative_inventory = 1},
|
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 = {
|
|
|
|
{
|
2015-05-30 08:20:25 +02:00
|
|
|
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 = {
|
|
|
|
{
|
2015-05-30 08:20:25 +02:00
|
|
|
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,
|
2015-12-06 04:09:29 +01:00
|
|
|
post_effect_color = {a = 103, r = 30, g = 76, b = 90},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {water = 3, liquid = 3, puts_out_fire = 1},
|
2015-04-17 07:50:06 +02:00
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:river_water_flowing", {
|
|
|
|
description = "Flowing River Water",
|
|
|
|
drawtype = "flowingliquid",
|
2015-05-30 08:20:25 +02:00
|
|
|
tiles = {"default_river_water.png"},
|
2015-04-17 07:50:06 +02:00
|
|
|
special_tiles = {
|
|
|
|
{
|
2015-05-30 08:20:25 +02:00
|
|
|
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,
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
2015-05-30 08:20:25 +02:00
|
|
|
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,
|
2015-12-06 04:09:29 +01:00
|
|
|
post_effect_color = {a = 103, r = 30, g = 76, b = 90},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {water = 3, liquid = 3, puts_out_fire = 1,
|
|
|
|
not_in_creative_inventory = 1},
|
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,
|
2014-12-15 13:27:20 +01:00
|
|
|
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,
|
2014-12-15 13:27:20 +01:00
|
|
|
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,
|
2015-04-05 01:40:23 +02:00
|
|
|
is_ground_content = false,
|
2013-05-19 18:43:04 +02:00
|
|
|
drop = "",
|
2013-08-02 08:12:20 +02:00
|
|
|
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,
|
2015-12-06 04:09:29 +01:00
|
|
|
post_effect_color = {a = 191, r = 255, g = 64, b = 0},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {lava = 3, liquid = 2, hot = 3, 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 = {
|
|
|
|
{
|
2014-12-15 13:27:20 +01:00
|
|
|
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,
|
2014-12-15 13:27:20 +01:00
|
|
|
length = 3.3,
|
2014-12-07 16:29:36 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
2014-12-15 13:27:20 +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,
|
2014-12-15 13:27:20 +01:00
|
|
|
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,
|
2015-04-05 01:40:23 +02:00
|
|
|
is_ground_content = false,
|
2013-05-19 18:43:04 +02:00
|
|
|
drop = "",
|
2013-08-02 08:12:20 +02:00
|
|
|
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,
|
2015-12-06 04:09:29 +01:00
|
|
|
post_effect_color = {a = 191, r = 255, g = 64, b = 0},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {lava = 3, liquid = 2, hot = 3, 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"
|
|
|
|
--
|
|
|
|
|
2013-05-19 18:43:04 +02:00
|
|
|
minetest.register_node("default:torch", {
|
|
|
|
description = "Torch",
|
|
|
|
drawtype = "torchlike",
|
|
|
|
tiles = {
|
2014-12-07 16:29:36 +01:00
|
|
|
{
|
|
|
|
name = "default_torch_on_floor_animated.png",
|
|
|
|
animation = {
|
|
|
|
type = "vertical_frames",
|
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
|
|
|
length = 3.0
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name="default_torch_on_ceiling_animated.png",
|
|
|
|
animation = {
|
|
|
|
type = "vertical_frames",
|
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
|
|
|
length = 3.0
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name="default_torch_animated.png",
|
|
|
|
animation = {
|
|
|
|
type = "vertical_frames",
|
|
|
|
aspect_w = 16,
|
|
|
|
aspect_h = 16,
|
|
|
|
length = 3.0
|
|
|
|
},
|
|
|
|
},
|
2013-05-19 18:43:04 +02:00
|
|
|
},
|
2014-12-07 16:29:36 +01:00
|
|
|
inventory_image = "default_torch_on_floor.png",
|
|
|
|
wield_image = "default_torch_on_floor.png",
|
|
|
|
paramtype = "light",
|
|
|
|
paramtype2 = "wallmounted",
|
|
|
|
sunlight_propagates = true,
|
|
|
|
is_ground_content = false,
|
|
|
|
walkable = false,
|
|
|
|
light_source = default.LIGHT_MAX - 1,
|
|
|
|
selection_box = {
|
|
|
|
type = "wallmounted",
|
2015-08-25 05:11:46 +02:00
|
|
|
wall_top = {-0.1, 0.5 - 0.6, -0.1, 0.1, 0.5, 0.1},
|
|
|
|
wall_bottom = {-0.1, -0.5, -0.1, 0.1, -0.5 + 0.6, 0.1},
|
|
|
|
wall_side = {-0.5, -0.3, -0.1, -0.5 + 0.3, 0.3, 0.1},
|
2014-12-07 16:29:36 +01:00
|
|
|
},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {choppy = 2, dig_immediate = 3, flammable = 1, attached_node = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
legacy_wallmounted = true,
|
|
|
|
sounds = default.node_sound_defaults(),
|
2013-05-19 18:43:04 +02:00
|
|
|
})
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
|
|
|
|
local chest_formspec =
|
2015-08-25 05:11:46 +02:00
|
|
|
"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)
|
2013-06-03 21:56:17 +02:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
local function get_locked_chest_formspec(pos)
|
2015-08-25 05:11:46 +02:00
|
|
|
local spos = pos.x .. "," .. pos.y .. "," .. pos.z
|
2013-06-03 21:56:17 +02:00
|
|
|
local formspec =
|
2015-08-25 05:11:46 +02:00
|
|
|
"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
|
2013-06-03 21:56:17 +02:00
|
|
|
end
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
local function has_locked_chest_privilege(meta, player)
|
2016-02-26 00:12:49 +01:00
|
|
|
local name = ""
|
|
|
|
if player then
|
2016-01-20 15:29:48 +01:00
|
|
|
if minetest.check_player_privs(player, "protection_bypass") then
|
|
|
|
return true
|
|
|
|
end
|
2016-02-26 00:12:49 +01:00
|
|
|
name = player:get_player_name()
|
|
|
|
end
|
|
|
|
if name ~= meta:get_string("owner") then
|
2014-12-07 16:29:36 +01:00
|
|
|
return false
|
|
|
|
end
|
|
|
|
return true
|
|
|
|
end
|
2013-06-03 21:56:17 +02:00
|
|
|
|
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",
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2},
|
2013-05-19 18:43:04 +02:00
|
|
|
legacy_facedir_simple = true,
|
2013-11-30 08:42:57 +01:00
|
|
|
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
|
|
|
meta:set_string("infotext", "Chest")
|
|
|
|
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,
|
2015-08-25 05:11:46 +02:00
|
|
|
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)
|
2015-08-25 05:11:46 +02:00
|
|
|
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)
|
2015-08-25 05:11:46 +02:00
|
|
|
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,
|
|
|
|
})
|
|
|
|
|
|
|
|
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",
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2},
|
2013-05-19 18:43:04 +02:00
|
|
|
legacy_facedir_simple = true,
|
2013-11-30 08:42:57 +01:00
|
|
|
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 "")
|
2015-08-25 05:11:46 +02:00
|
|
|
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("infotext", "Locked Chest")
|
|
|
|
meta:set_string("owner", "")
|
|
|
|
local inv = meta:get_inventory()
|
2015-08-25 05:11:46 +02:00
|
|
|
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,
|
2015-08-25 05:11:46 +02:00
|
|
|
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)
|
2015-08-25 05:11:46 +02:00
|
|
|
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)
|
2015-08-25 05:11:46 +02:00
|
|
|
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)
|
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
|
2013-06-03 21:56:17 +02:00
|
|
|
minetest.show_formspec(
|
|
|
|
clicker:get_player_name(),
|
|
|
|
"default:chest_locked",
|
2014-12-07 16:29:36 +01:00
|
|
|
get_locked_chest_formspec(pos)
|
2013-06-03 21:56:17 +02:00
|
|
|
)
|
2013-05-19 18:43:04 +02:00
|
|
|
end
|
|
|
|
end,
|
2015-03-07 08:32:00 +01:00
|
|
|
on_blast = function() end,
|
2013-05-19 18:43:04 +02:00
|
|
|
})
|
|
|
|
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
local bookshelf_formspec =
|
2015-08-25 05:11:46 +02:00
|
|
|
"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
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
minetest.register_node("default:bookshelf", {
|
|
|
|
description = "Bookshelf",
|
|
|
|
tiles = {"default_wood.png", "default_wood.png", "default_bookshelf.png"},
|
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
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", bookshelf_formspec)
|
|
|
|
local inv = meta:get_inventory()
|
2015-08-25 05:11:46 +02:00
|
|
|
inv:set_size("books", 8 * 2)
|
2014-12-07 16:29:36 +01:00
|
|
|
end,
|
|
|
|
can_dig = function(pos,player)
|
2016-03-23 19:48:22 +01:00
|
|
|
local inv = minetest.get_meta(pos):get_inventory()
|
2014-12-07 16:29:36 +01:00
|
|
|
return inv:is_empty("books")
|
|
|
|
end,
|
2016-03-23 19:48:22 +01:00
|
|
|
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
|
2016-03-23 19:48:22 +01:00
|
|
|
return 0
|
2014-12-07 16:29:36 +01:00
|
|
|
end,
|
2016-03-23 19:48:22 +01:00
|
|
|
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
|
2015-08-25 05:11:46 +02:00
|
|
|
minetest.log("action", player:get_player_name() ..
|
|
|
|
" moves stuff in bookshelf at " .. minetest.pos_to_string(pos))
|
2014-12-07 16:29:36 +01:00
|
|
|
end,
|
|
|
|
on_metadata_inventory_put = function(pos, listname, index, stack, player)
|
2015-08-25 05:11:46 +02:00
|
|
|
minetest.log("action", player:get_player_name() ..
|
|
|
|
" moves stuff to bookshelf at " .. minetest.pos_to_string(pos))
|
2014-12-07 16:29:36 +01:00
|
|
|
end,
|
|
|
|
on_metadata_inventory_take = function(pos, listname, index, stack, player)
|
2015-08-25 05:11:46 +02:00
|
|
|
minetest.log("action", player:get_player_name() ..
|
|
|
|
" takes stuff from bookshelf at " .. minetest.pos_to_string(pos))
|
2014-12-07 16:29:36 +01:00
|
|
|
end,
|
2013-05-19 18:43:04 +02:00
|
|
|
})
|
|
|
|
|
2016-03-06 12:16:33 +01: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}]")
|
|
|
|
meta:set_string("infotext", "\"\"")
|
|
|
|
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
|
|
|
|
2016-03-06 12:16:33 +01:00
|
|
|
register_sign("wood", "Wooden", {
|
|
|
|
sounds = default.node_sound_wood_defaults(),
|
2016-03-21 11:25:25 +01:00
|
|
|
groups = {choppy = 2, attached_node = 1, flammable = 2, oddly_breakable_by_hand = 3}
|
2013-05-19 18:43:04 +02:00
|
|
|
})
|
|
|
|
|
2016-03-06 12:16:33 +01:00
|
|
|
register_sign("steel", "Steel", {
|
|
|
|
sounds = default.node_sound_defaults(),
|
|
|
|
groups = {cracky = 2, attached_node = 1}
|
|
|
|
})
|
2015-08-25 05:11:46 +02:00
|
|
|
|
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",
|
2014-11-29 11:23:45 +01:00
|
|
|
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
|
|
|
},
|
2015-08-25 05:11:46 +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},
|
2016-03-09 11:08:41 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
2016-03-03 10:52:45 +01:00
|
|
|
})
|
|
|
|
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
default.register_fence("default:fence_wood", {
|
2014-12-07 16:29:36 +01:00
|
|
|
description = "Wooden Fence",
|
2015-12-15 06:49:20 +01:00
|
|
|
texture = "default_fence_wood.png",
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
material = "default:wood",
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
sounds = default.node_sound_wood_defaults()
|
|
|
|
})
|
|
|
|
|
|
|
|
default.register_fence("default:fence_acacia_wood", {
|
|
|
|
description = "Acacia Fence",
|
2015-12-15 06:49:20 +01:00
|
|
|
texture = "default_fence_acacia_wood.png",
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
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",
|
2015-12-15 06:49:20 +01:00
|
|
|
texture = "default_fence_junglewood.png",
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
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
|
|
|
})
|
|
|
|
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
default.register_fence("default:fence_pine_wood", {
|
|
|
|
description = "Pine Fence",
|
2015-12-15 06:49:20 +01:00
|
|
|
texture = "default_fence_pine_wood.png",
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
material = "default:pine_wood",
|
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
|
|
|
sounds = default.node_sound_wood_defaults()
|
|
|
|
})
|
|
|
|
|
|
|
|
default.register_fence("default:fence_aspen_wood", {
|
|
|
|
description = "Aspen Fence",
|
2015-12-15 06:49:20 +01:00
|
|
|
texture = "default_fence_aspen_wood.png",
|
Create API for fence.register, and use it.
This converts the call to minetest.register() for the default
fence node, so it can be called by other mods to quickly
setup other fences.
Since this creates an API, insert it into the game_api.txt.
The api looks like minetest.register(name, {def}), and has two
uncommon fields: "texture" and "material". Any normal nodedef
property can be passed through, except "drawtype". The "fence"
group will always be added.
The default fence recipe is modified to be as follows:
wood, stick, wood
wood, stick, wood
This recipe yields 4 fence nodes.
This allows us to create according recipes for acacia, pine,
aspen, and junglewood fences without adding new stick types:
pine wood, stick, pine wood
pine wood, stick, pine wood
This is a from-scratch implementation, written by heart but inspired
by (#665 - Add many wooden fences).
Stick and fences nodes are named in a consistent way.
2015-12-15 06:49:20 +01:00
|
|
|
material = "default:aspen_wood",
|
|
|
|
groups = {choppy = 2, oddly_breakable_by_hand = 2, flammable = 2},
|
|
|
|
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,
|
2015-08-25 05:11:46 +02:00
|
|
|
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",
|
2015-03-01 04:15:16 +01:00
|
|
|
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(),
|
2015-06-17 19:07:55 +02:00
|
|
|
groups = {cracky = 3},
|
2013-05-19 18:43:04 +02:00
|
|
|
})
|
|
|
|
|
2014-10-21 19:53:04 +02:00
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
minetest.register_node("default:rail", {
|
|
|
|
description = "Rail",
|
|
|
|
drawtype = "raillike",
|
2015-08-25 05:11:46 +02:00
|
|
|
tiles = {"default_rail.png", "default_rail_curved.png",
|
|
|
|
"default_rail_t_junction.png", "default_rail_crossing.png"},
|
2014-12-07 16:29:36 +01:00
|
|
|
inventory_image = "default_rail.png",
|
|
|
|
wield_image = "default_rail.png",
|
2014-10-21 19:53:04 +02:00
|
|
|
paramtype = "light",
|
2014-11-29 11:23:45 +01:00
|
|
|
sunlight_propagates = true,
|
2014-10-21 19:53:04 +02:00
|
|
|
walkable = false,
|
2014-12-07 16:29:36 +01:00
|
|
|
is_ground_content = false,
|
2014-12-07 01:00:33 +01:00
|
|
|
selection_box = {
|
|
|
|
type = "fixed",
|
2014-12-07 16:29:36 +01:00
|
|
|
-- but how to specify the dimensions for curved and sideways rails?
|
|
|
|
fixed = {-1/2, -1/2, -1/2, 1/2, -1/2+1/16, 1/2},
|
2014-12-07 01:00:33 +01:00
|
|
|
},
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {bendy = 2, dig_immediate = 2, attached_node = 1,
|
|
|
|
connect_to_raillike = minetest.raillike_group("rail")},
|
2014-10-21 19:53:04 +02:00
|
|
|
})
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
|
|
|
|
minetest.register_node("default:brick", {
|
|
|
|
description = "Brick Block",
|
|
|
|
tiles = {"default_brick.png"},
|
2014-10-21 19:53:04 +02:00
|
|
|
is_ground_content = false,
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 3},
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_stone_defaults(),
|
2014-10-21 19:53:04 +02:00
|
|
|
})
|
|
|
|
|
2015-03-05 16:46:49 +01:00
|
|
|
|
|
|
|
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(),
|
2015-05-11 23:29:18 +02:00
|
|
|
light_source = default.LIGHT_MAX,
|
2015-03-05 16:46:49 +01:00
|
|
|
})
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
--
|
|
|
|
-- Misc
|
|
|
|
--
|
|
|
|
|
|
|
|
minetest.register_node("default:cloud", {
|
|
|
|
description = "Cloud",
|
|
|
|
tiles = {"default_cloud.png"},
|
2015-06-14 05:58:54 +02:00
|
|
|
is_ground_content = false,
|
2014-12-07 16:29:36 +01:00
|
|
|
sounds = default.node_sound_defaults(),
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {not_in_creative_inventory = 1},
|
2014-12-07 16:29:36 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("default:nyancat", {
|
|
|
|
description = "Nyan Cat",
|
|
|
|
tiles = {"default_nc_side.png", "default_nc_side.png", "default_nc_side.png",
|
|
|
|
"default_nc_side.png", "default_nc_back.png", "default_nc_front.png"},
|
|
|
|
paramtype2 = "facedir",
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 2},
|
2014-12-07 16:29:36 +01:00
|
|
|
is_ground_content = false,
|
|
|
|
legacy_facedir_simple = true,
|
|
|
|
sounds = default.node_sound_defaults(),
|
2014-10-21 19:53:04 +02:00
|
|
|
})
|
|
|
|
|
2014-12-07 16:29:36 +01:00
|
|
|
minetest.register_node("default:nyancat_rainbow", {
|
|
|
|
description = "Nyan Cat Rainbow",
|
|
|
|
tiles = {
|
|
|
|
"default_nc_rb.png^[transformR90", "default_nc_rb.png^[transformR90",
|
|
|
|
"default_nc_rb.png", "default_nc_rb.png"
|
|
|
|
},
|
|
|
|
paramtype2 = "facedir",
|
2015-08-25 05:11:46 +02:00
|
|
|
groups = {cracky = 2},
|
2014-12-07 16:29:36 +01:00
|
|
|
is_ground_content = false,
|
|
|
|
sounds = default.node_sound_defaults(),
|
|
|
|
})
|