2021-05-29 17:12:33 +03:00
local S = minetest.get_translator ( minetest.get_current_modname ( ) )
2019-03-08 01:22:28 +02:00
2021-05-29 17:12:33 +03:00
local mod_screwdriver = minetest.get_modpath ( " screwdriver " )
2019-12-15 00:42:17 +02:00
local on_rotate
if mod_screwdriver then
on_rotate = screwdriver.rotate_3way
end
2019-03-08 21:22:01 +02:00
2017-02-08 19:54:56 +02:00
minetest.register_node ( " mcl_nether:glowstone " , {
2019-03-08 01:22:28 +02:00
description = S ( " Glowstone " ) ,
_doc_items_longdesc = S ( " Glowstone is a naturally-glowing block which is home to the Nether. " ) ,
2017-02-08 19:54:56 +02:00
tiles = { " mcl_nether_glowstone.png " } ,
is_ground_content = true ,
stack_max = 64 ,
2017-03-11 06:34:58 +02:00
groups = { handy = 1 , building_block = 1 , material_glass = 1 } ,
2017-02-08 19:54:56 +02:00
drop = {
max_items = 1 ,
items = {
2021-05-29 17:12:33 +03:00
{ items = { " mcl_nether:glowstone_dust 4 " } , rarity = 3 } ,
{ items = { " mcl_nether:glowstone_dust 3 " } , rarity = 3 } ,
{ items = { " mcl_nether:glowstone_dust 2 " } } ,
2017-02-08 19:54:56 +02:00
}
} ,
2017-06-13 15:46:21 +03:00
paramtype = " light " ,
2019-12-14 19:57:17 +02:00
light_source = minetest.LIGHT_MAX ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.3 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 0.3 ,
2020-11-02 20:09:23 +02:00
_mcl_silk_touch_drop = true ,
2020-11-06 14:46:52 +02:00
_mcl_fortune_drop = {
discrete_uniform_distribution = true ,
items = { " mcl_nether:glowstone_dust " } ,
min_count = 2 ,
max_count = 4 ,
cap = 4 ,
}
2017-02-08 19:54:56 +02:00
} )
minetest.register_node ( " mcl_nether:quartz_ore " , {
2019-03-08 01:22:28 +02:00
description = S ( " Nether Quartz Ore " ) ,
_doc_items_longdesc = S ( " Nether quartz ore is an ore containing nether quartz. It is commonly found around netherrack in the Nether. " ) ,
2017-02-08 19:54:56 +02:00
stack_max = 64 ,
2017-02-08 20:52:04 +02:00
tiles = { " mcl_nether_quartz_ore.png " } ,
2017-02-08 20:00:41 +02:00
is_ground_content = true ,
2020-10-24 01:46:45 +03:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 , xp = 3 } ,
2021-05-29 17:12:33 +03:00
drop = " mcl_nether:quartz " ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 3 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 3 ,
2020-11-02 20:09:23 +02:00
_mcl_silk_touch_drop = true ,
2020-11-06 14:46:52 +02:00
_mcl_fortune_drop = mcl_core.fortune_drop_ore
2017-02-08 19:54:56 +02:00
} )
2017-02-08 20:52:04 +02:00
2017-11-11 20:52:11 +02:00
-- For eternal fire on top of netherrack and magma blocks
-- (this code does not require a dependency on mcl_fire)
2021-05-29 17:12:33 +03:00
local function eternal_after_destruct ( pos , oldnode )
2017-11-11 20:52:11 +02:00
pos.y = pos.y + 1
if minetest.get_node ( pos ) . name == " mcl_fire:eternal_fire " then
minetest.remove_node ( pos )
end
end
2021-05-29 17:12:33 +03:00
local function eternal_on_ignite ( player , pointed_thing )
2017-11-11 20:52:11 +02:00
local pos = pointed_thing.under
local flame_pos = { x = pos.x , y = pos.y + 1 , z = pos.z }
local fn = minetest.get_node ( flame_pos )
2019-02-11 22:27:17 +02:00
local pname = player : get_player_name ( )
if minetest.is_protected ( flame_pos , pname ) then
minetest.record_protection_violation ( flame_pos , pname )
return
end
if fn.name == " air " and pointed_thing.under . y < pointed_thing.above . y then
2017-11-11 20:52:11 +02:00
minetest.set_node ( flame_pos , { name = " mcl_fire:eternal_fire " } )
return true
else
return false
end
end
2017-02-08 20:52:04 +02:00
minetest.register_node ( " mcl_nether:netherrack " , {
2019-03-08 01:22:28 +02:00
description = S ( " Netherrack " ) ,
_doc_items_longdesc = S ( " Netherrack is a stone-like block home to the Nether. Starting a fire on this block will create an eternal fire. " ) ,
2017-02-08 20:52:04 +02:00
stack_max = 64 ,
tiles = { " mcl_nether_netherrack.png " } ,
is_ground_content = true ,
2017-07-05 21:14:37 +03:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 , enderman_takable = 1 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.4 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 0.4 ,
2017-11-11 20:52:11 +02:00
-- Eternal fire on top
after_destruct = eternal_after_destruct ,
_on_ignite = eternal_on_ignite ,
2017-02-08 20:52:04 +02:00
} )
2017-02-09 01:51:43 +02:00
minetest.register_node ( " mcl_nether:magma " , {
2019-03-08 01:22:28 +02:00
description = S ( " Magma Block " ) ,
2021-03-30 01:01:29 +03:00
_tt_help = minetest.colorize ( mcl_colors.YELLOW , S ( " Burns your feet " ) ) ,
2019-03-08 01:22:28 +02:00
_doc_items_longdesc = S ( " Magma blocks are hot solid blocks which hurt anyone standing on it, unless they have fire resistance. Starting a fire on this block will create an eternal fire. " ) ,
2017-02-09 01:51:43 +02:00
stack_max = 64 ,
tiles = { { name = " mcl_nether_magma.png " , animation = { type = " vertical_frames " , aspect_w = 32 , aspect_h = 32 , length = 1.5 } } } ,
is_ground_content = true ,
light_source = 3 ,
2017-02-10 05:31:02 +02:00
sunlight_propagates = false ,
2017-03-11 06:34:58 +02:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2017-02-09 01:51:43 +02:00
-- From walkover mod
on_walk_over = function ( loc , nodeiamon , player )
2022-03-13 20:11:28 +02:00
local armor_feet = player : get_inventory ( ) : get_stack ( " armor " , 5 )
if player and player : get_player_control ( ) . sneak or ( minetest.global_exists ( " mcl_enchanting " ) and mcl_enchanting.has_enchantment ( armor_feet , " frost_walker " ) ) or ( minetest.global_exists ( " mcl_potions " ) and mcl_potions.player_has_effect ( player , " fire_proof " ) ) then
2020-11-12 17:43:12 +02:00
return
end
2017-02-09 01:51:43 +02:00
-- Hurt players standing on top of this block
2017-07-24 20:20:06 +03:00
if player : get_hp ( ) > 0 then
2021-04-14 18:20:51 +03:00
mcl_util.deal_damage ( player , 1 , { type = " hot_floor " } )
2017-07-24 20:20:06 +03:00
end
2017-02-09 01:51:43 +02:00
end ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.5 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 0.5 ,
2017-11-11 20:52:11 +02:00
-- Eternal fire on top
after_destruct = eternal_after_destruct ,
_on_ignite = eternal_on_ignite ,
2017-02-09 01:51:43 +02:00
} )
2017-02-09 02:56:55 +02:00
minetest.register_node ( " mcl_nether:soul_sand " , {
2019-03-08 01:22:28 +02:00
description = S ( " Soul Sand " ) ,
2020-02-19 05:54:17 +02:00
_tt_help = S ( " Reduces walking speed " ) ,
2019-03-08 01:22:28 +02:00
_doc_items_longdesc = S ( " Soul sand is a block from the Nether. One can only slowly walk on soul sand. The slowing effect is amplified when the soul sand is on top of ice, packed ice or a slime block. " ) ,
2017-02-09 02:56:55 +02:00
stack_max = 64 ,
tiles = { " mcl_nether_soul_sand.png " } ,
is_ground_content = true ,
2022-05-24 14:24:22 +03:00
groups = { handy = 1 , shovely = 1 , building_block = 1 , soil_nether_wart = 1 , material_sand = 1 , soul_block = 1 } ,
2017-02-09 02:56:55 +02:00
collision_box = {
type = " fixed " ,
fixed = { - 0.5 , - 0.5 , - 0.5 , 0.5 , 0.5 - 2 / 16 , 0.5 } ,
} ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_sand_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.5 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 0.5 ,
2017-05-23 01:52:31 +03:00
-- Movement handling is done in mcl_playerplus mod
2017-02-09 02:56:55 +02:00
} )
2017-02-08 20:52:04 +02:00
minetest.register_node ( " mcl_nether:nether_brick " , {
-- Original name: Nether Brick
2019-03-08 01:22:28 +02:00
description = S ( " Nether Brick Block " ) ,
2017-03-18 19:01:28 +02:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 20:52:04 +02:00
stack_max = 64 ,
tiles = { " mcl_nether_nether_brick.png " } ,
is_ground_content = false ,
2017-03-11 06:34:58 +02:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 6 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 2 ,
2017-02-08 20:52:04 +02:00
} )
minetest.register_node ( " mcl_nether:red_nether_brick " , {
-- Original name: Red Nether Brick
2019-03-08 01:22:28 +02:00
description = S ( " Red Nether Brick Block " ) ,
2017-03-18 19:01:28 +02:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 20:52:04 +02:00
stack_max = 64 ,
tiles = { " mcl_nether_red_nether_brick.png " } ,
is_ground_content = false ,
2017-03-11 06:34:58 +02:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 6 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 2 ,
2017-02-08 20:52:04 +02:00
} )
2017-02-08 21:07:54 +02:00
minetest.register_node ( " mcl_nether:nether_wart_block " , {
2019-03-08 01:22:28 +02:00
description = S ( " Nether Wart Block " ) ,
2019-03-09 18:01:36 +02:00
_doc_items_longdesc = S ( " A nether wart block is a purely decorative block made from nether wart. " ) ,
2017-02-08 21:07:54 +02:00
stack_max = 64 ,
tiles = { " mcl_nether_nether_wart_block.png " } ,
is_ground_content = false ,
Add `compostability` to node definition group.
* mcl_cake/init.lua (cake);
* mcl_core/craftitems.lua (apple);
* mcl_core/nodes_base.lua (dirt with grass);
* mcl_core/nodes_cactuscane.lua (cactus, sugarcane);
* mcl_core/nodes_climb.lua (vines);
* mcl_core/nodes_trees.lua (leaves, saplings);
* mcl_dye/init.lua (cocoa beans);
* mcl_farming/beetroot.lua (beetroot, & seeds);
* mcl_farming/carrots.lua (carrot);
* mcl_farming/melon.lua (melon, & slice, & seeds);
* mcl_farming/potatoes.lua (potato, baked potato);
* mcl_farming/pumpkin.lua (pumpkin, carved &, & seeds, & pie);
* mcl_farming/wheat.lua (wheat, cookie, bread, hay block);
* mcl_flowers/init.lua (flowers, ferns, grass, & tall variants);
* mcl_mushrooms/small.lua (red and brown mushrooms);
* mcl_mushrooms/huge.lua (red and brown huge mushrooms);
* mcl_nether/init.lua (nether wart block);
* mcl_nether/nether_wart.lua (nether wart);
* mcl_ocean/kelp.lua (kelp, dried &, & block);
* mcl_ocean/sea_pickle.lua (sea pickle);
* mcl_ocean/seagrass.lua (seagrass).
2022-03-29 13:54:51 +03:00
groups = { handy = 1 , hoey = 1 , building_block = 1 , compostability = 85 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_leaves_defaults (
2017-02-08 21:07:54 +02:00
{
footstep = { name = " default_dirt_footstep " , gain = 0.7 } ,
dug = { name = " default_dirt_footstep " , gain = 1.5 } ,
}
) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 1 ,
2017-03-20 21:33:20 +02:00
_mcl_hardness = 1 ,
2017-02-08 21:07:54 +02:00
} )
2017-02-08 19:54:56 +02:00
minetest.register_node ( " mcl_nether:quartz_block " , {
2019-03-08 01:22:28 +02:00
description = S ( " Block of Quartz " ) ,
2017-03-18 19:01:28 +02:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 19:54:56 +02:00
stack_max = 64 ,
2017-02-08 20:00:41 +02:00
is_ground_content = false ,
2017-02-08 19:54:56 +02:00
tiles = { " mcl_nether_quartz_block_top.png " , " mcl_nether_quartz_block_bottom.png " , " mcl_nether_quartz_block_side.png " } ,
2017-03-11 06:34:58 +02:00
groups = { pickaxey = 1 , quartz_block = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.8 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 0.8 ,
2017-02-08 19:54:56 +02:00
} )
minetest.register_node ( " mcl_nether:quartz_chiseled " , {
2019-03-08 01:22:28 +02:00
description = S ( " Chiseled Quartz Block " ) ,
2017-03-18 19:01:28 +02:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 19:54:56 +02:00
stack_max = 64 ,
is_ground_content = false ,
tiles = { " mcl_nether_quartz_chiseled_top.png " , " mcl_nether_quartz_chiseled_top.png " , " mcl_nether_quartz_chiseled_side.png " } ,
2017-03-11 06:34:58 +02:00
groups = { pickaxey = 1 , quartz_block = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.8 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 0.8 ,
2017-02-08 19:54:56 +02:00
} )
minetest.register_node ( " mcl_nether:quartz_pillar " , {
2019-03-08 01:22:28 +02:00
description = S ( " Pillar Quartz Block " ) ,
2017-03-18 19:01:28 +02:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 19:54:56 +02:00
stack_max = 64 ,
paramtype2 = " facedir " ,
2017-02-08 20:00:41 +02:00
is_ground_content = false ,
2017-02-11 05:37:14 +02:00
on_place = mcl_util.rotate_axis ,
2017-02-08 19:54:56 +02:00
tiles = { " mcl_nether_quartz_pillar_top.png " , " mcl_nether_quartz_pillar_top.png " , " mcl_nether_quartz_pillar_side.png " } ,
2017-03-11 06:34:58 +02:00
groups = { pickaxey = 1 , quartz_block = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 19:46:23 +02:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2019-12-15 00:42:17 +02:00
on_rotate = on_rotate ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.8 ,
2017-02-27 02:40:30 +02:00
_mcl_hardness = 0.8 ,
2017-02-08 19:54:56 +02:00
} )
2017-11-23 04:24:39 +02:00
minetest.register_node ( " mcl_nether:quartz_smooth " , {
2019-03-08 01:22:28 +02:00
description = S ( " Smooth Quartz " ) ,
2017-11-23 04:24:39 +02:00
_doc_items_longdesc = doc.sub . items.temp . build ,
stack_max = 64 ,
is_ground_content = false ,
tiles = { " mcl_nether_quartz_block_bottom.png " } ,
groups = { pickaxey = 1 , quartz_block = 1 , building_block = 1 , material_stone = 1 } ,
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.8 ,
2017-11-23 04:24:39 +02:00
_mcl_hardness = 0.8 ,
} )
2017-02-08 19:54:56 +02:00
minetest.register_craftitem ( " mcl_nether:glowstone_dust " , {
2019-03-08 01:22:28 +02:00
description = S ( " Glowstone Dust " ) ,
_doc_items_longdesc = S ( " Glowstone dust is the dust which comes out of broken glowstones. It is mainly used in crafting. " ) ,
2017-02-08 19:54:56 +02:00
inventory_image = " mcl_nether_glowstone_dust.png " ,
stack_max = 64 ,
2020-07-05 04:28:02 +03:00
groups = { craftitem = 1 , brewitem = 1 } ,
2017-02-08 19:54:56 +02:00
} )
minetest.register_craftitem ( " mcl_nether:quartz " , {
2019-03-08 01:22:28 +02:00
description = S ( " Nether Quartz " ) ,
_doc_items_longdesc = S ( " Nether quartz is a versatile crafting ingredient. " ) ,
2017-02-08 19:54:56 +02:00
inventory_image = " mcl_nether_quartz.png " ,
stack_max = 64 ,
groups = { craftitem = 1 } ,
} )
2017-02-08 20:52:04 +02:00
minetest.register_craftitem ( " mcl_nether:netherbrick " , {
2019-03-08 01:22:28 +02:00
description = S ( " Nether Brick " ) ,
_doc_items_longdesc = S ( " Nether bricks are the main crafting ingredient for crafting nether brick blocks and nether fences. " ) ,
2017-02-08 20:52:04 +02:00
inventory_image = " mcl_nether_netherbrick.png " ,
stack_max = 64 ,
groups = { craftitem = 1 } ,
} )
2017-02-08 19:54:56 +02:00
minetest.register_craft ( {
type = " cooking " ,
output = " mcl_nether:quartz " ,
recipe = " mcl_nether:quartz_ore " ,
cooktime = 10 ,
} )
minetest.register_craft ( {
2021-05-29 17:12:33 +03:00
output = " mcl_nether:quartz_block " ,
2017-02-08 19:54:56 +02:00
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_nether:quartz " , " mcl_nether:quartz " } ,
{ " mcl_nether:quartz " , " mcl_nether:quartz " } ,
2017-02-08 19:54:56 +02:00
}
} )
2017-02-08 20:52:04 +02:00
2017-02-08 19:54:56 +02:00
minetest.register_craft ( {
2021-05-29 17:12:33 +03:00
output = " mcl_nether:quartz_pillar 2 " ,
2017-02-08 19:54:56 +02:00
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_nether:quartz_block " } ,
{ " mcl_nether:quartz_block " } ,
2017-02-08 19:54:56 +02:00
}
} )
minetest.register_craft ( {
output = " mcl_nether:glowstone " ,
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_nether:glowstone_dust " , " mcl_nether:glowstone_dust " } ,
{ " mcl_nether:glowstone_dust " , " mcl_nether:glowstone_dust " } ,
2017-02-08 19:54:56 +02:00
}
} )
2017-02-09 01:51:43 +02:00
minetest.register_craft ( {
output = " mcl_nether:magma " ,
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_mobitems:magma_cream " , " mcl_mobitems:magma_cream " } ,
{ " mcl_mobitems:magma_cream " , " mcl_mobitems:magma_cream " } ,
2017-02-09 01:51:43 +02:00
}
} )
2017-02-08 20:52:04 +02:00
minetest.register_craft ( {
type = " cooking " ,
output = " mcl_nether:netherbrick " ,
recipe = " mcl_nether:netherrack " ,
cooktime = 10 ,
} )
minetest.register_craft ( {
output = " mcl_nether:nether_brick " ,
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_nether:netherbrick " , " mcl_nether:netherbrick " } ,
{ " mcl_nether:netherbrick " , " mcl_nether:netherbrick " } ,
2017-02-08 20:52:04 +02:00
}
} )
minetest.register_craft ( {
output = " mcl_nether:red_nether_brick " ,
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_nether:nether_wart_item " , " mcl_nether:netherbrick " } ,
{ " mcl_nether:netherbrick " , " mcl_nether:nether_wart_item " } ,
2017-02-08 20:52:04 +02:00
}
} )
minetest.register_craft ( {
output = " mcl_nether:red_nether_brick " ,
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_nether:netherbrick " , " mcl_nether:nether_wart_item " } ,
{ " mcl_nether:nether_wart_item " , " mcl_nether:netherbrick " } ,
2017-02-08 20:52:04 +02:00
}
} )
2017-02-08 21:07:54 +02:00
minetest.register_craft ( {
output = " mcl_nether:nether_wart_block " ,
recipe = {
2021-05-29 17:12:33 +03:00
{ " mcl_nether:nether_wart_item " , " mcl_nether:nether_wart_item " , " mcl_nether:nether_wart_item " } ,
{ " mcl_nether:nether_wart_item " , " mcl_nether:nether_wart_item " , " mcl_nether:nether_wart_item " } ,
{ " mcl_nether:nether_wart_item " , " mcl_nether:nether_wart_item " , " mcl_nether:nether_wart_item " } ,
2017-02-08 21:07:54 +02:00
}
} )
2017-02-08 20:52:04 +02:00
2017-02-10 05:15:14 +02:00
dofile ( minetest.get_modpath ( minetest.get_current_modname ( ) ) .. " /nether_wart.lua " )
2017-08-02 02:17:29 +03:00
dofile ( minetest.get_modpath ( minetest.get_current_modname ( ) ) .. " /lava.lua " )