1
0
Fork 0
TheDarkProject/mods/ITEMS/mcl_core/nodes_base.lua

915 lines
32 KiB
Lua
Raw Normal View History

2017-07-07 16:52:28 +02:00
-- Simple solid cubic nodes, most of them are the ground materials and simple building blocks
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone", {
2015-06-29 19:55:56 +02:00
description = "Stone",
2017-03-14 05:59:58 +01:00
_doc_items_longdesc = "One of the most common blocks in the world, almost the entire underground consists of stone. It sometimes contains ores. Stone may be created when water meets lava.",
_doc_items_hidden = false,
2015-06-29 19:55:56 +02:00
tiles = {"default_stone.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
2017-01-31 23:32:56 +01:00
drop = 'mcl_core:cobble',
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_coal", {
2015-06-29 19:55:56 +02:00
description = "Coal Ore",
_doc_items_longdesc = "Some coal contained in stone, it is very common and can be found inside stone in medium to large clusters at nearly every height.",
_doc_items_hidden = false,
tiles = {"mcl_core_coal_ore.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, building_block=1, material_stone=1},
2017-01-31 23:32:56 +01:00
drop = 'mcl_core:coal_lump',
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_iron", {
2015-06-29 19:55:56 +02:00
description = "Iron Ore",
_doc_items_longdesc = "Some iron contained in stone, it is prety common and can be found below sea level.",
tiles = {"mcl_core_iron_ore.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=3, building_block=1, material_stone=1},
2017-01-31 23:32:56 +01:00
drop = 'mcl_core:stone_with_iron',
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_gold", {
2015-06-29 19:55:56 +02:00
description = "Gold Ore",
_doc_items_longdesc = "This stone contains pure gold, a rare metal.",
tiles = {"mcl_core_gold_ore.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=4, building_block=1, material_stone=1},
2017-01-31 23:32:56 +01:00
drop = "mcl_core:stone_with_gold",
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-04 10:27:12 +01:00
local redstone_timer = 68.28
local redstone_ore_activate = function(pos)
2017-01-31 23:32:56 +01:00
minetest.swap_node(pos, {name="mcl_core:stone_with_redstone_lit"})
local t = minetest.get_node_timer(pos)
t:start(redstone_timer)
end
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_redstone", {
2015-06-29 19:55:56 +02:00
description = "Redstone Ore",
_doc_items_longdesc = "Redstone ore is commonly found near the bottom of the world. It glows when it is punched or walked upon.",
tiles = {"mcl_core_redstone_ore.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=4, building_block=1, material_stone=1},
2017-01-04 08:01:40 +01:00
drop = {
items = {
max_items = 1,
{
2017-01-09 18:45:34 +01:00
items = {"mesecons:redstone 4"},
2017-01-04 08:01:40 +01:00
rarity = 2,
},
{
2017-01-09 18:45:34 +01:00
items = {"mesecons:redstone 5"},
2017-01-04 08:01:40 +01:00
},
}
},
sounds = mcl_sounds.node_sound_stone_defaults(),
on_punch = redstone_ore_activate,
on_walk_over = redstone_ore_activate, -- Uses walkover mod
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2017-01-04 10:27:12 +01:00
})
local redstone_ore_reactivate = function(pos)
local t = minetest.get_node_timer(pos)
t:start(redstone_timer)
end
2017-01-04 10:27:12 +01:00
-- Light the redstone ore up when it has been touched
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_redstone_lit", {
2017-01-04 10:27:12 +01:00
description = "Lit Redstone Ore",
_doc_items_create_entry = false,
tiles = {"mcl_core_redstone_ore.png"},
2017-01-04 10:27:12 +01:00
paramtype = "light",
2017-02-01 22:12:08 +01:00
light_source = 9,
2017-01-04 10:27:12 +01:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=4, not_in_creative_inventory=1, material_stone=1},
2017-01-04 10:27:12 +01:00
drop = {
items = {
max_items = 1,
{
2017-01-09 18:45:34 +01:00
items = {"mesecons:redstone 4"},
2017-01-04 10:27:12 +01:00
rarity = 2,
},
{
2017-01-09 18:45:34 +01:00
items = {"mesecons:redstone 5"},
2017-01-04 10:27:12 +01:00
},
}
},
sounds = mcl_sounds.node_sound_stone_defaults(),
-- Reset timer after re-punching or stepping on
on_punch = redstone_ore_reactivate,
on_walk_over = redstone_ore_reactivate, -- Uses walkover mod
2017-01-04 10:27:12 +01:00
-- Turn back to normal node after some time has passed
on_timer = function(pos, elapsed)
2017-01-31 23:32:56 +01:00
minetest.swap_node(pos, {name="mcl_core:stone_with_redstone"})
2017-01-04 10:27:12 +01:00
end,
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_lapis", {
2015-06-29 19:55:56 +02:00
description = "Lapis Lazuli Ore",
_doc_items_longdesc = "Lapis lazuli ore is the ore of lapis lazuli. It can be rarely found in clusters near the bottom of the world.",
tiles = {"mcl_core_lapis_ore.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=3, building_block=1, material_stone=1},
2015-06-29 19:55:56 +02:00
drop = {
2017-01-04 08:01:40 +01:00
max_items = 1,
2015-06-29 19:55:56 +02:00
items = {
2017-01-30 15:33:04 +01:00
{items = {'mcl_dye:blue 8'},rarity = 5},
{items = {'mcl_dye:blue 7'},rarity = 5},
{items = {'mcl_dye:blue 6'},rarity = 5},
{items = {'mcl_dye:blue 5'},rarity = 5},
{items = {'mcl_dye:blue 4'}},
2015-06-29 19:55:56 +02:00
}
},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_emerald", {
2015-06-29 19:55:56 +02:00
description = "Emerald Ore",
_doc_items_longdesc = "Emerald ore is the ore of emeralds. It is very rare and can be found alone, not in clusters.",
tiles = {"mcl_core_emerald_ore.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=4, building_block=1, material_stone=1},
2017-01-31 23:32:56 +01:00
drop = "mcl_core:emerald",
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stone_with_diamond", {
description = "Diamond Ore",
_doc_items_longdesc = "Diamond ore is rare and can be found in clusters near the bottom of the world.",
tiles = {"mcl_core_diamond_ore.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=4, building_block=1, material_stone=1},
2017-01-31 23:32:56 +01:00
drop = "mcl_core:diamond",
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stonebrick", {
description = "Stone Bricks",
_doc_items_longdesc = doc.sub.items.temp.build,
2015-06-29 19:55:56 +02:00
tiles = {"default_stone_brick.png"},
stack_max = 64,
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
is_ground_content = false,
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stonebrickcarved", {
description = "Chiseled Stone Bricks",
_doc_items_longdesc = doc.sub.items.temp.build,
tiles = {"mcl_core_stonebrick_carved.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
is_ground_content = false,
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stonebrickcracked", {
description = "Cracked Stone Bricks",
_doc_items_longdesc = doc.sub.items.temp.build,
tiles = {"mcl_core_stonebrick_cracked.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
is_ground_content = false,
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:stonebrickmossy", {
description = "Mossy Stone Bricks",
_doc_items_longdesc = doc.sub.items.temp.build,
tiles = {"mcl_core_stonebrick_mossy.png"},
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=1, stone=1, stonebrick=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
is_ground_content = false,
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:granite", {
description = "Granite",
_doc_items_longdesc = "Granite is an igneous rock.",
tiles = {"mcl_core_granite.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:granite_smooth", {
description = "Polished Granite",
_doc_items_longdesc = "Polished granite is a decorational building block made from granite.",
tiles = {"mcl_core_granite_smooth.png"},
stack_max = 64,
is_ground_content = false,
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:andesite", {
description = "Andesite",
_doc_items_longdesc = "Andesite is an igneous rock.",
tiles = {"mcl_core_andesite.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:andesite_smooth", {
description = "Polished Andesite",
_doc_items_longdesc = "Polished andesite is a decorational building block made from andesite.",
tiles = {"mcl_core_andesite_smooth.png"},
is_ground_content = false,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:diorite", {
description = "Diorite",
_doc_items_longdesc = "Diorite is an igneous rock.",
tiles = {"mcl_core_diorite.png"},
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:diorite_smooth", {
description = "Polished Diorite",
_doc_items_longdesc = "Polished diorite is a decorational building block made from diorite.",
tiles = {"mcl_core_diorite_smooth.png"},
is_ground_content = false,
stack_max = 64,
groups = {pickaxey=1, stone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 1.5,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:dirt_with_grass", {
description = "Grass Block",
2017-05-14 02:51:03 +02:00
_doc_items_longdesc = "A grass block is dirt with a grass cover. Grass blocks are resourceful blocks which allow the growth of all sorts of plants. They can be turned into farmland with a hoe and turned into grass paths with a shovel. In light, the grass slowly spreads onto dirt nearby. Under an opaque block or a liquid, a grass block may turn back to dirt.",
_doc_items_hidden = false,
2017-04-01 06:44:02 +02:00
tiles = {"default_grass.png", "default_dirt.png", "default_grass_side.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, spreading_dirt_type=1, enderman_takable=1, building_block=1},
2017-01-31 23:32:56 +01:00
drop = 'mcl_core:dirt',
sounds = mcl_sounds.node_sound_dirt_defaults({
2015-06-29 19:55:56 +02:00
footstep = {name="default_grass_footstep", gain=0.4},
}),
_mcl_blast_resistance = 3,
_mcl_hardness = 0.6,
2015-06-29 19:55:56 +02:00
})
-- NOTE: This block is to be considered equivalent to the grass block
2017-04-01 06:44:02 +02:00
minetest.register_node("mcl_core:dirt_with_grass_snow", {
description = "Snowy Grass Block",
_doc_items_create_entry = false,
tiles = {"default_snow.png", "default_dirt.png", "mcl_core_grass_side_snowed.png"},
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, building_block=1, not_in_creative_inventory=1},
drop = 'mcl_core:dirt',
2017-04-01 07:15:45 +02:00
sounds = mcl_sounds.node_sound_snow_defaults({
dug = {name="default_dirt_footstep", gain=1.5},
dig = {name="default_dig_crumbly", gain=1.0}
}),
2017-04-01 06:44:02 +02:00
_mcl_blast_resistance = 3,
_mcl_hardness = 0.6,
})
2017-02-06 19:25:15 +01:00
minetest.register_node("mcl_core:grass_path", {
tiles = {"mcl_core_grass_path_top.png", "default_dirt.png", "mcl_core_grass_path_side.png"},
2017-02-06 19:25:15 +01:00
description = "Grass Path",
2017-05-14 22:55:46 +02:00
_doc_items_longdesc = "Grass paths are a decorational variant of grass blocks. Their top has a different color and they are a bit lower than grass blocks, making them useful to build footpaths. Grass paths can be created with a shovel. A grass path turns into dirt when it is below a solid block.",
2017-02-06 19:25:15 +01:00
drop = "mcl_core:dirt",
is_ground_content = true,
drawtype = "nodebox",
paramtype = "light",
node_box = {
type = "fixed",
fixed = {
-- 15/16 of the normal height
{-0.5, -0.5, -0.5, 0.5, 0.4375, 0.5},
}
},
groups = {handy=1,shovely=1, cultivatable=2, dirtifies_below_solid=1, not_in_creative_inventory=1, },
sounds = mcl_sounds.node_sound_dirt_defaults({
2017-02-06 19:29:11 +01:00
footstep = {name="default_grass_footstep", gain=0.4},
}),
_mcl_blast_resistance = 3.25,
_mcl_hardness = 0.6,
2017-02-06 19:25:15 +01:00
})
2017-01-10 04:24:42 +01:00
-- TODO: Add particles
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:mycelium", {
2017-01-10 03:54:15 +01:00
description = "Mycelium",
2017-05-14 02:51:03 +02:00
_doc_items_longdesc = "Mycelium is a type of dirt and the ideal soil for mushrooms. Unlike other dirt-type blocks, it can not be turned into farmland with a hoe. In light, mycelium slowly spreads over nearby dirt. Under an opaque block or a liquid, it eventually turns back into dirt.",
tiles = {"mcl_core_mycelium_top.png", "default_dirt.png", "mcl_core_mycelium_side.png"},
2017-01-10 03:54:15 +01:00
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, spreading_dirt_type=1, building_block=1},
2017-01-31 23:32:56 +01:00
drop = 'mcl_core:dirt',
sounds = mcl_sounds.node_sound_dirt_defaults({
2017-01-10 03:54:15 +01:00
footstep = {name="default_grass_footstep", gain=0.4},
}),
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.6,
2017-01-10 03:54:15 +01:00
})
-- NOTE: This block is to be considered equivalent to mycelium
2017-04-01 06:44:02 +02:00
minetest.register_node("mcl_core:mycelium_snow", {
description = "Snowy Mycelium",
_doc_items_create_entry = false,
-- CHECKME: Are the sides of snowy mycelium supposed to look like this?
tiles = {"default_snow.png", "default_dirt.png", "mcl_core_grass_side_snowed.png"},
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, building_block=1, not_in_creative_inventory=1},
drop = 'mcl_core:dirt',
2017-04-01 07:15:45 +02:00
sounds = mcl_sounds.node_sound_snow_defaults({
dug = {name="default_dirt_footstep", gain=1.5},
dig = {name="default_dig_crumbly", gain=1.0}
}),
2017-04-01 06:44:02 +02:00
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.6,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:podzol", {
2017-01-10 04:24:42 +01:00
description = "Podzol",
2017-03-11 17:32:39 +01:00
_doc_items_longdesc = "Podzol is a type of dirt found in taiga forests. Only a few plants are able to survive on it.",
tiles = {"mcl_core_dirt_podzol_top.png", "default_dirt.png", "mcl_core_dirt_podzol_side.png"},
2017-01-10 04:24:42 +01:00
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=3, soil=1, soil_sapling=2, soil_sugarcane=1, enderman_takable=1, building_block=1},
2017-01-31 23:32:56 +01:00
drop = 'mcl_core:dirt',
sounds = mcl_sounds.node_sound_dirt_defaults(),
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.6,
2017-01-10 04:24:42 +01:00
})
-- NOTE: This block is to be considered equivalent to podzol
2017-04-01 06:44:02 +02:00
minetest.register_node("mcl_core:podzol_snow", {
description = "Snowy Podzol",
_doc_items_create_entry = false,
tiles = {"default_snow.png", "default_dirt.png", "mcl_core_grass_side_snowed.png"},
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=3, soil=1, soil_sapling=2, soil_sugarcane=1, building_block=1, not_in_creative_inventory=1},
drop = 'mcl_core:dirt',
2017-04-01 07:15:45 +02:00
sounds = mcl_sounds.node_sound_snow_defaults({
dug = {name="default_dirt_footstep", gain=1.5},
dig = {name="default_dig_crumbly", gain=1.0}
}),
2017-04-01 06:44:02 +02:00
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.6,
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:dirt", {
2015-06-29 19:55:56 +02:00
description = "Dirt",
2017-05-14 02:51:03 +02:00
_doc_items_longdesc = "Dirt acts as a soil for a few plants. When in light, this block may grow a grass or mycelium cover if such blocks are nearby.",
_doc_items_hidden = false,
2015-06-29 19:55:56 +02:00
tiles = {"default_dirt.png"},
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, soil=1, soil_sapling=2, soil_sugarcane=1, cultivatable=2, enderman_takable=1, building_block=1},
sounds = mcl_sounds.node_sound_dirt_defaults(),
_mcl_blast_resistance = 3,
_mcl_hardness = 0.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:coarse_dirt", {
2017-01-05 01:28:43 +01:00
description = "Coarse Dirt",
2017-05-14 02:51:03 +02:00
_doc_items_longdesc = "Coarse dirt acts as a soil for some plants and is similar to dirt, but it will never grow a cover.",
tiles = {"mcl_core_coarse_dirt.png"},
2017-01-05 01:28:43 +01:00
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, soil=1, soil_sugarcane=1, cultivatable=1, enderman_takable=1, building_block=1},
sounds = mcl_sounds.node_sound_dirt_defaults(),
_mcl_blast_resistance = 3,
_mcl_hardness = 0.5,
2017-01-05 01:28:43 +01:00
})
2015-06-29 19:55:56 +02:00
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:gravel", {
2015-06-29 19:55:56 +02:00
description = "Gravel",
_doc_items_longdesc = "This block consists of a couple of loose stones and can't support itself.",
2015-06-29 19:55:56 +02:00
tiles = {"default_gravel.png"},
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, falling_node=1, enderman_takable=1, building_block=1, material_sand=1},
2015-06-29 19:55:56 +02:00
drop = {
max_items = 1,
items = {
2017-01-31 23:32:56 +01:00
{items = {'mcl_core:flint'},rarity = 10},
{items = {'mcl_core:gravel'}}
2015-06-29 19:55:56 +02:00
}
},
sounds = mcl_sounds.node_sound_dirt_defaults({
2015-06-29 19:55:56 +02:00
footstep = {name="default_gravel_footstep", gain=0.45},
}),
_mcl_blast_resistance = 3,
_mcl_hardness = 0.6,
2015-06-29 19:55:56 +02:00
})
-- sandstone --
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:sand", {
2015-06-29 19:55:56 +02:00
description = "Sand",
_doc_items_longdesc = "Sand is found in large quantities at beaches and deserts.",
_doc_items_hidden = false,
2015-06-29 19:55:56 +02:00
tiles = {"default_sand.png"},
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1},
sounds = mcl_sounds.node_sound_sand_defaults(),
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:sandstone", {
2015-06-29 19:55:56 +02:00
description = "Sandstone",
_doc_items_hidden = false,
_doc_items_longdesc = "Sandstone is compressed sand and is a rather soft kind of stone.",
tiles = {"mcl_core_sandstone_top.png", "mcl_core_sandstone_bottom.png", "mcl_core_sandstone_normal.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=2, sandstone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 4,
_mcl_hardness = 0.8,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:sandstonesmooth", {
description = "Smooth Sandstone",
_doc_items_longdesc = "Smooth sandstone is a decorational building block.",
tiles = {"mcl_core_sandstone_top.png", "mcl_core_sandstone_bottom.png", "mcl_core_sandstone_smooth.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, sandstone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 4,
_mcl_hardness = 0.8,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:sandstonecarved", {
description = "Chiseled Sandstone",
_doc_items_longdesc = "Chiseled sandstone is a decorational building block.",
tiles = {"mcl_core_sandstone_top.png", "mcl_core_sandstone_bottom.png", "mcl_core_sandstone_carved.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, sandstone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 4,
_mcl_hardness = 0.8,
2015-06-29 19:55:56 +02:00
})
-- red sandstone --
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:redsand", {
2015-06-29 19:55:56 +02:00
description = "Red Sand",
2017-03-14 05:58:10 +01:00
_doc_items_longdesc = "Red sand is found in large quantities in mesa biomes.",
tiles = {"mcl_core_red_sand.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, falling_node=1, sand=1, soil_sugarcane=1, enderman_takable=1, building_block=1, material_sand=1},
sounds = mcl_sounds.node_sound_sand_defaults(),
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:redsandstone", {
description = "Red Sandstone",
_doc_items_longdesc = "Red sandstone is compressed red sand and is a rather soft kind of stone.",
tiles = {"mcl_core_red_sandstone_top.png", "mcl_core_red_sandstone_bottom.png", "mcl_core_red_sandstone_normal.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, redsandstone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 4,
_mcl_hardness = 0.8,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:redsandstonesmooth", {
description = "Smooth Red Sandstone",
_doc_items_longdesc = "Smooth red sandstone is a decorational building block.",
tiles = {"mcl_core_red_sandstone_top.png", "mcl_core_red_sandstone_bottom.png", "mcl_core_red_sandstone_smooth.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, redsandstone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 4,
_mcl_hardness = 0.8,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:redsandstonecarved", {
description = "Chiseled Red Sandstone",
_doc_items_longdesc = "Chiseled red sandstone is a decorational building block.",
tiles = {"mcl_core_red_sandstone_top.png", "mcl_core_red_sandstone_bottom.png", "mcl_core_red_sandstone_carved.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {pickaxey=1, redsandstone=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 4,
_mcl_hardness = 0.8,
2015-06-29 19:55:56 +02:00
})
---
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:clay", {
2017-01-10 03:29:34 +01:00
-- Original name: Clay
description = "Block of Clay",
_doc_items_longdesc = "A block of clay is a versatile kind of earth commonly found at beaches underwater.",
_doc_items_hidden = false,
2015-06-29 19:55:56 +02:00
tiles = {"default_clay.png"},
is_ground_content = true,
stack_max = 64,
groups = {handy=1,shovely=1, enderman_takable=1, building_block=1},
2017-01-31 23:32:56 +01:00
drop = 'mcl_core:clay_lump 4',
sounds = mcl_sounds.node_sound_dirt_defaults(),
_mcl_blast_resistance = 3,
_mcl_hardness = 0.6,
2015-06-29 19:55:56 +02:00
})
minetest.register_node("mcl_core:brick_block", {
-- Original name: “Bricks”
description = "Brick Block",
_doc_items_longdesc = "Brick blocks are a good building material for building solid houses and can take quite a punch.",
2015-06-29 19:55:56 +02:00
tiles = {"default_brick.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 2,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:bedrock", {
2015-06-29 19:55:56 +02:00
description = "Bedrock",
_doc_items_longdesc = "Bedrock is a very hard type of rock. It can not be broken, destroyed, collected or moved by normal means, unless in Creative Mode.",
tiles = {"mcl_core_bedrock.png"},
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {creative_breakable=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
2017-01-04 09:42:25 +01:00
is_ground_content = false,
on_blast = function() end,
2017-01-05 01:00:43 +01:00
drop = '',
_mcl_blast_resistance = 18000000,
_mcl_hardness = -1,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:cobble", {
2015-06-29 19:55:56 +02:00
description = "Cobblestone",
_doc_items_longdesc = doc.sub.items.temp.build,
_doc_items_hidden = false,
2015-06-29 19:55:56 +02:00
tiles = {"default_cobble.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 2,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:mossycobble", {
description = "Moss Stone",
_doc_items_longdesc = doc.sub.items.temp.build,
2015-06-29 19:55:56 +02:00
tiles = {"default_mossycobble.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 2,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:coalblock", {
2017-01-04 11:44:55 +01:00
description = "Block of Coal",
_doc_items_longdesc = "Blocks of coal are useful as a compact storage of coal and very useful as a furnace fuel. A block of coal is as efficient as 10 coal.",
2017-01-04 11:44:55 +01:00
tiles = {"default_coal_block.png"},
is_ground_content = false,
2017-01-04 11:44:55 +01:00
stack_max = 64,
groups = {pickaxey=1, flammable=1, building_block=1, material_stone=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 5,
2017-01-04 11:44:55 +01:00
})
2017-02-11 21:14:40 +01:00
minetest.register_node("mcl_core:ironblock", {
2017-01-04 05:29:55 +01:00
description = "Block of Iron",
_doc_items_longdesc = "A block of iron is mostly a decorational block but also useful as a compact storage of iron ingots.",
2015-06-29 19:55:56 +02:00
tiles = {"default_steel_block.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=2, building_block=1},
sounds = mcl_sounds.node_sound_metal_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:goldblock", {
description = "Block of Gold",
_doc_items_longdesc = "A block of gold is mostly a shiny decorational block but also useful as a compact storage of gold ingots.",
2015-06-29 19:55:56 +02:00
tiles = {"default_gold_block.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=4, building_block=1},
sounds = mcl_sounds.node_sound_metal_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:diamondblock", {
description = "Block of Diamond",
_doc_items_longdesc = "A block of diamond mostly a shiny decorational block but also useful as a compact storage of diamonds.",
2015-06-29 19:55:56 +02:00
tiles = {"default_diamond_block.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=4, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:lapisblock", {
2017-02-09 00:10:37 +01:00
description = "Lapis Lazuli Block",
_doc_items_longdesc = "A lapis lazuli block is mostly a decorational block but also useful as a compact storage of lapis lazuli.",
tiles = {"mcl_core_lapis_block.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=3, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 15,
_mcl_hardness = 3,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:emeraldblock", {
description = "Block of Emerald",
_doc_items_longdesc = "A block of emerald is mostly a shiny decorational block but also useful as a compact storage of emeralds.",
tiles = {"mcl_core_emerald_block.png"},
is_ground_content = false,
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=4, building_block=1},
sounds = mcl_sounds.node_sound_stone_defaults(),
_mcl_blast_resistance = 30,
_mcl_hardness = 5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:obsidian", {
2015-06-29 19:55:56 +02:00
description = "Obsidian",
_doc_items_longdesc = "Obsidian is an extremely hard mineral with an enourmous blast-resistance. Obsidian is formed when water meets lava.",
2015-06-29 19:55:56 +02:00
tiles = {"default_obsidian.png"},
is_ground_content = true,
sounds = mcl_sounds.node_sound_stone_defaults(),
2015-06-29 19:55:56 +02:00
stack_max = 64,
groups = {pickaxey=5, building_block=1, material_stone=1},
_mcl_blast_resistance = 6000,
_mcl_hardness = 50,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:ice", {
2015-06-29 19:55:56 +02:00
description = "Ice",
_doc_items_longdesc = "Ice is a translucent solid block usually found in cold areas. When it is broken while resting on top of another block, it will turn into still water.",
2015-06-29 19:55:56 +02:00
drawtype = "glasslike",
tiles = {"default_ice.png"},
is_ground_content = true,
paramtype = "light",
use_texture_alpha = true,
stack_max = 64,
groups = {handy=1,pickaxey=1, building_block=1},
2017-01-04 08:01:40 +01:00
drop = "",
sounds = mcl_sounds.node_sound_glass_defaults(),
after_destruct = function(pos, oldnode)
-- Create a water source if ice is destroyed and there was something below it
local below = {x=pos.x, y=pos.y-1, z=pos.z}
local belownode = minetest.get_node(below)
if belownode.name ~= "air" and belownode.name ~= "ignore" and belownode.name ~= "mcl_core:void" then
minetest.set_node(pos, {name="mcl_core:water_source"})
end
end,
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.5,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:packed_ice", {
2015-06-29 19:55:56 +02:00
description = "Packed Ice",
2017-03-11 17:32:39 +01:00
_doc_items_longdesc = "Packed ice is a compressed form of ice. It is opaque and solid.",
tiles = {"mcl_core_ice_packed.png"},
2015-06-29 19:55:56 +02:00
is_ground_content = true,
stack_max = 64,
groups = {handy=1,pickaxey=1, building_block=1},
2017-01-04 08:01:40 +01:00
drop = "",
sounds = mcl_sounds.node_sound_glass_defaults(),
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.5,
2015-06-29 19:55:56 +02:00
})
2017-01-08 02:49:07 +01:00
-- Frosted Ice (4 nodes)
for i=0,3 do
local ice = {}
ice.increase_age = function(pos, ice_near, first_melt)
-- Increase age of frosted age or turn to water source if too old
local nn = minetest.get_node(pos).name
local age = tonumber(string.sub(nn, -1))
if age == nil then return end
local nextnode
if age < 3 then
2017-01-31 23:32:56 +01:00
nextnode = "mcl_core:frosted_ice_"..(age+1)
2017-01-08 02:49:07 +01:00
else
2017-01-31 23:32:56 +01:00
nextnode = "mcl_core:water_source"
2017-01-08 02:49:07 +01:00
end
minetest.swap_node(pos, { name = nextnode })
-- Spread aging to neighbor blocks, but not recursively
if first_melt and i == 3 then
for j=1, #ice_near do
ice.increase_age(ice_near[j], false)
end
end
end
local use_doc = i == 0
2017-03-11 17:32:39 +01:00
local longdesc
if use_doc then
2017-03-11 17:32:39 +01:00
longdesc = "Frosted ice is a short-lived solid translucent block. It melts into a water source within a few seconds."
end
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:frosted_ice_"..i, {
2017-01-08 02:49:07 +01:00
description = "Frosted Ice",
_doc_items_create_entry = use_doc,
2017-03-11 17:32:39 +01:00
_doc_items_longdesc = longdesc,
2017-01-08 02:49:07 +01:00
drawtype = "glasslike",
tiles = {"mcl_core_frosted_ice_"..i..".png"},
2017-01-08 02:49:07 +01:00
is_ground_content = false,
paramtype = "light",
use_texture_alpha = true,
stack_max = 64,
groups = {handy=1, frosted_ice=1, not_in_creative_inventory=1},
2017-01-08 02:49:07 +01:00
drop = "",
sounds = mcl_sounds.node_sound_glass_defaults(),
2017-01-08 02:49:07 +01:00
on_construct = function(pos)
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
on_timer = function(pos, elapsed)
local ice_near = minetest.find_nodes_in_area(
{ x = pos.x - 1, y = pos.y - 1, z = pos.z - 1 },
{ x = pos.x + 1, y = pos.y + 1, z = pos.z + 1 },
{ "group:frosted_ice" }
)
-- Check condition to increase age
if (#ice_near < 4 and minetest.get_node_light(pos) > (11 - i)) or math.random(1, 3) == 1 then
ice.increase_age(pos, ice_near, true)
end
local timer = minetest.get_node_timer(pos)
timer:start(1.5)
end,
_mcl_blast_resistance = 2.5,
_mcl_hardness = 0.5,
2017-01-08 02:49:07 +01:00
})
-- Add entry aliases for the Help
if minetest.get_modpath("doc") and i > 0 then
doc.add_entry_alias("nodes", "mcl_core:frosted_ice_0", "nodes", "mcl_core:frosted_ice_"..i)
end
2017-01-08 02:49:07 +01:00
end
local on_snow_construct = function(pos)
local npos = {x=pos.x, y=pos.y-1, z=pos.z}
local node = minetest.get_node(npos)
if node.name == "mcl_core:dirt_with_grass" then
minetest.swap_node(npos, {name="mcl_core:dirt_with_grass_snow"})
elseif node.name == "mcl_core:podzol" then
minetest.swap_node(npos, {name="mcl_core:podzol_snow"})
elseif node.name == "mcl_core:mycelium" then
minetest.swap_node(npos, {name="mcl_core:mycelium_snow"})
end
end
local clear_snow_dirt = function(pos, node)
if node.name == "mcl_core:dirt_with_grass_snow" then
minetest.swap_node(pos, {name="mcl_core:dirt_with_grass"})
elseif node.name == "mcl_core:podzol_snow" then
minetest.swap_node(pos, {name="mcl_core:podzol"})
elseif node.name == "mcl_core:mycelium_snow" then
minetest.swap_node(pos, {name="mcl_core:mycelium"})
end
end
local after_snow_destruct = function(pos)
2017-04-01 07:29:22 +02:00
local nn = minetest.get_node(pos).name
-- No-op if snow was replaced with snow
if nn == "mcl_core:snow" or nn == "mcl_core:snowblock" then
return
end
local npos = {x=pos.x, y=pos.y-1, z=pos.z}
local node = minetest.get_node(npos)
clear_snow_dirt(npos, node)
end
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:snow", {
2017-01-04 11:26:35 +01:00
description = "Top Snow",
2017-03-11 17:32:39 +01:00
_doc_items_longdesc = "Top snow is a thin layer of snow.",
_doc_items_hidden = false,
2015-06-29 19:55:56 +02:00
tiles = {"default_snow.png"},
2017-03-02 16:38:56 +01:00
wield_image = "default_snow.png",
2017-03-02 17:03:14 +01:00
wield_scale = { x=1, y=1, z=1 },
2015-06-29 19:55:56 +02:00
is_ground_content = true,
paramtype = "light",
2017-03-02 17:31:21 +01:00
sunlight_propagates = true,
2015-06-29 19:55:56 +02:00
buildable_to = true,
drawtype = "nodebox",
2017-03-02 16:39:58 +01:00
stack_max = 64,
2017-03-02 17:33:50 +01:00
floodable = true,
on_flood = function(pos, oldnode, newnode)
local npos = {x=pos.x, y=pos.y-1, z=pos.z}
local node = minetest.get_node(npos)
clear_snow_dirt(npos, node)
end,
2015-06-29 19:55:56 +02:00
node_box = {
type = "fixed",
fixed = {
{-0.5, -0.5, -0.5, 0.5, -0.5+2/16, 0.5},
},
},
groups = {shovely=1, attached_node=1,deco_block=1, dig_by_piston=1},
2017-02-19 19:48:16 +01:00
sounds = mcl_sounds.node_sound_snow_defaults(),
on_construct = on_snow_construct,
2017-04-01 07:29:22 +02:00
after_destruct = after_snow_destruct,
2017-01-16 23:11:04 +01:00
drop = "mcl_throwing:snowball 2",
_mcl_blast_resistance = 0.5,
_mcl_hardness = 0.1,
2015-06-29 19:55:56 +02:00
})
2017-01-31 23:32:56 +01:00
minetest.register_node("mcl_core:snowblock", {
description = "Snow",
2017-03-11 17:32:39 +01:00
_doc_items_longdesc = "This is a full block of snow. Snow of this thickness is usually found in areas of extreme cold.",
_doc_items_hidden = false,
2015-06-29 19:55:56 +02:00
tiles = {"default_snow.png"},
is_ground_content = true,
stack_max = 64,
groups = {shovely=1, building_block=1},
2017-02-19 19:48:16 +01:00
sounds = mcl_sounds.node_sound_snow_defaults(),
on_construct = on_snow_construct,
2017-04-01 07:29:22 +02:00
after_destruct = after_snow_destruct,
2017-01-16 23:11:04 +01:00
drop = "mcl_throwing:snowball 4",
_mcl_blast_resistance = 1,
_mcl_hardness = 0.2,
2015-06-29 19:55:56 +02:00
})
2017-03-22 18:55:02 +01:00
-- Add entry aliases for the Help
if minetest.get_modpath("doc") then
doc.add_entry_alias("nodes", "mcl_core:stone_with_redstone", "nodes", "mcl_core:stone_with_redstone_lit")
doc.add_entry_alias("nodes", "mcl_core:water_source", "nodes", "mcl_core:water_flowing")
doc.add_entry_alias("nodes", "mcl_core:lava_source", "nodes", "mcl_core:lava_flowing")
2017-04-01 06:44:02 +02:00
doc.add_entry_alias("nodes", "mcl_core:dirt_with_grass", "nodes", "mcl_core:dirt_with_grass_snow")
doc.add_entry_alias("nodes", "mcl_core:podzol", "nodes", "mcl_core:podzol_snow")
doc.add_entry_alias("nodes", "mcl_core:mycelium", "nodes", "mcl_core:mycelium_snow")
2017-03-22 18:55:02 +01:00
end