2019-03-08 02:22:28 +03:00
local S = minetest.get_translator ( " mcl_nether " )
2019-03-08 22:22:01 +03:00
local mod_death_messages = minetest.get_modpath ( " mcl_death_messages " )
2019-12-15 01:42:17 +03:00
local mod_screwdriver = minetest.get_modpath ( " screwdriver " ) ~= nil
local on_rotate
if mod_screwdriver then
on_rotate = screwdriver.rotate_3way
end
2019-03-08 22:22:01 +03:00
2017-02-08 20:54:56 +03:00
minetest.register_node ( " mcl_nether:glowstone " , {
2019-03-08 02:22:28 +03:00
description = S ( " Glowstone " ) ,
_doc_items_longdesc = S ( " Glowstone is a naturally-glowing block which is home to the Nether. " ) ,
2017-02-08 20:54:56 +03:00
tiles = { " mcl_nether_glowstone.png " } ,
is_ground_content = true ,
stack_max = 64 ,
2017-03-11 07:34:58 +03:00
groups = { handy = 1 , building_block = 1 , material_glass = 1 } ,
2017-02-08 20:54:56 +03:00
drop = {
max_items = 1 ,
items = {
{ items = { ' mcl_nether:glowstone_dust 4 ' } , rarity = 3 } ,
{ items = { ' mcl_nether:glowstone_dust 3 ' } , rarity = 3 } ,
{ items = { ' mcl_nether:glowstone_dust 2 ' } } ,
}
} ,
2017-06-13 15:46:21 +03:00
paramtype = " light " ,
2019-12-14 20:57:17 +03:00
light_source = minetest.LIGHT_MAX ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_glass_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.3 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 0.3 ,
2020-11-02 21:09:23 +03:00
_mcl_silk_touch_drop = true ,
2020-11-06 15:46:52 +03:00
_mcl_fortune_drop = {
discrete_uniform_distribution = true ,
items = { " mcl_nether:glowstone_dust " } ,
min_count = 2 ,
max_count = 4 ,
cap = 4 ,
}
2017-02-08 20:54:56 +03:00
} )
minetest.register_node ( " mcl_nether:quartz_ore " , {
2019-03-08 02:22:28 +03: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 20:54:56 +03:00
stack_max = 64 ,
2017-02-08 21:52:04 +03:00
tiles = { " mcl_nether_quartz_ore.png " } ,
2017-02-08 21:00:41 +03:00
is_ground_content = true ,
2020-10-24 01:46:45 +03:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 , xp = 3 } ,
2017-02-08 21:01:58 +03:00
drop = ' mcl_nether:quartz ' ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 3 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 3 ,
2020-11-02 21:09:23 +03:00
_mcl_silk_touch_drop = true ,
2020-11-06 15:46:52 +03:00
_mcl_fortune_drop = mcl_core.fortune_drop_ore
2017-02-08 20:54:56 +03:00
} )
2017-02-08 21:52:04 +03:00
2017-11-11 21:52:11 +03:00
-- For eternal fire on top of netherrack and magma blocks
-- (this code does not require a dependency on mcl_fire)
local eternal_after_destruct = function ( pos , oldnode )
pos.y = pos.y + 1
if minetest.get_node ( pos ) . name == " mcl_fire:eternal_fire " then
minetest.remove_node ( pos )
end
end
local eternal_on_ignite = function ( player , pointed_thing )
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 23:27:17 +03: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 21:52:11 +03:00
minetest.set_node ( flame_pos , { name = " mcl_fire:eternal_fire " } )
return true
else
return false
end
end
2017-02-08 21:52:04 +03:00
minetest.register_node ( " mcl_nether:netherrack " , {
2019-03-08 02:22:28 +03: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 21:52:04 +03: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 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.4 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 0.4 ,
2017-11-11 21:52:11 +03:00
-- Eternal fire on top
after_destruct = eternal_after_destruct ,
_on_ignite = eternal_on_ignite ,
2017-02-08 21:52:04 +03:00
} )
2017-02-09 02:51:43 +03:00
minetest.register_node ( " mcl_nether:magma " , {
2019-03-08 02:22:28 +03:00
description = S ( " Magma Block " ) ,
2020-03-12 04:29:30 +03:00
_tt_help = minetest.colorize ( " #FFFF00 " , S ( " Burns your feet " ) ) ,
2019-03-08 02:22:28 +03: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 02:51:43 +03: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 06:31:02 +03:00
sunlight_propagates = false ,
2017-03-11 07:34:58 +03:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2017-02-09 02:51:43 +03:00
-- From walkover mod
on_walk_over = function ( loc , nodeiamon , player )
2021-03-18 14:34:12 +03:00
if player and player : get_player_control ( ) . sneak or minetest.global_exists ( " mcl_potions " ) and mcl_potions.player_has_effect ( player , " fire_proof " ) then
2020-11-12 18:43:12 +03:00
return
end
2017-02-09 02:51:43 +03:00
-- Hurt players standing on top of this block
2017-07-24 20:20:06 +03:00
if player : get_hp ( ) > 0 then
2019-03-08 22:22:01 +03:00
if mod_death_messages then
2019-03-15 09:10:18 +03:00
mcl_death_messages.player_damage ( player , S ( " @1 stood too long on a magma block. " , player : get_player_name ( ) ) )
2019-03-08 22:22:01 +03:00
end
2020-02-17 20:37:23 +03:00
player : set_hp ( player : get_hp ( ) - 1 , { type = " punch " , from = " mod " } )
2017-07-24 20:20:06 +03:00
end
2017-02-09 02:51:43 +03:00
end ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.5 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 0.5 ,
2017-11-11 21:52:11 +03:00
-- Eternal fire on top
after_destruct = eternal_after_destruct ,
_on_ignite = eternal_on_ignite ,
2017-02-09 02:51:43 +03:00
} )
2017-02-09 03:56:55 +03:00
minetest.register_node ( " mcl_nether:soul_sand " , {
2019-03-08 02:22:28 +03:00
description = S ( " Soul Sand " ) ,
2020-02-19 06:54:17 +03:00
_tt_help = S ( " Reduces walking speed " ) ,
2019-03-08 02:22:28 +03: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 03:56:55 +03:00
stack_max = 64 ,
tiles = { " mcl_nether_soul_sand.png " } ,
is_ground_content = true ,
2017-03-11 07:34:58 +03:00
groups = { handy = 1 , shovely = 1 , building_block = 1 , soil_nether_wart = 1 , material_sand = 1 } ,
2017-02-09 03:56:55 +03:00
collision_box = {
type = " fixed " ,
fixed = { - 0.5 , - 0.5 , - 0.5 , 0.5 , 0.5 - 2 / 16 , 0.5 } ,
} ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_sand_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.5 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 0.5 ,
2017-05-23 01:52:31 +03:00
-- Movement handling is done in mcl_playerplus mod
2017-02-09 03:56:55 +03:00
} )
2017-02-08 21:52:04 +03:00
minetest.register_node ( " mcl_nether:nether_brick " , {
-- Original name: Nether Brick
2019-03-08 02:22:28 +03:00
description = S ( " Nether Brick Block " ) ,
2017-03-18 20:01:28 +03:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 21:52:04 +03:00
stack_max = 64 ,
tiles = { " mcl_nether_nether_brick.png " } ,
is_ground_content = false ,
2017-03-11 07:34:58 +03:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 6 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 2 ,
2017-02-08 21:52:04 +03:00
} )
minetest.register_node ( " mcl_nether:red_nether_brick " , {
-- Original name: Red Nether Brick
2019-03-08 02:22:28 +03:00
description = S ( " Red Nether Brick Block " ) ,
2017-03-18 20:01:28 +03:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 21:52:04 +03:00
stack_max = 64 ,
tiles = { " mcl_nether_red_nether_brick.png " } ,
is_ground_content = false ,
2017-03-11 07:34:58 +03:00
groups = { pickaxey = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 6 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 2 ,
2017-02-08 21:52:04 +03:00
} )
2017-02-08 22:07:54 +03:00
minetest.register_node ( " mcl_nether:nether_wart_block " , {
2019-03-08 02:22:28 +03:00
description = S ( " Nether Wart Block " ) ,
2019-03-09 19:01:36 +03:00
_doc_items_longdesc = S ( " A nether wart block is a purely decorative block made from nether wart. " ) ,
2017-02-08 22:07:54 +03:00
stack_max = 64 ,
tiles = { " mcl_nether_nether_wart_block.png " } ,
is_ground_content = false ,
2021-03-21 14:36:33 +03:00
groups = { handy = 1 , hoey = 1 , building_block = 1 } ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_leaves_defaults (
2017-02-08 22:07:54 +03: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 22:33:20 +03:00
_mcl_hardness = 1 ,
2017-02-08 22:07:54 +03:00
} )
2017-02-08 20:54:56 +03:00
minetest.register_node ( " mcl_nether:quartz_block " , {
2019-03-08 02:22:28 +03:00
description = S ( " Block of Quartz " ) ,
2017-03-18 20:01:28 +03:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 20:54:56 +03:00
stack_max = 64 ,
2017-02-08 21:00:41 +03:00
is_ground_content = false ,
2017-02-08 20:54:56 +03:00
tiles = { " mcl_nether_quartz_block_top.png " , " mcl_nether_quartz_block_bottom.png " , " mcl_nether_quartz_block_side.png " } ,
2017-03-11 07:34:58 +03:00
groups = { pickaxey = 1 , quartz_block = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.8 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 0.8 ,
2017-02-08 20:54:56 +03:00
} )
minetest.register_node ( " mcl_nether:quartz_chiseled " , {
2019-03-08 02:22:28 +03:00
description = S ( " Chiseled Quartz Block " ) ,
2017-03-18 20:01:28 +03:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 20:54:56 +03: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 07:34:58 +03:00
groups = { pickaxey = 1 , quartz_block = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.8 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 0.8 ,
2017-02-08 20:54:56 +03:00
} )
minetest.register_node ( " mcl_nether:quartz_pillar " , {
2019-03-08 02:22:28 +03:00
description = S ( " Pillar Quartz Block " ) ,
2017-03-18 20:01:28 +03:00
_doc_items_longdesc = doc.sub . items.temp . build ,
2017-02-08 20:54:56 +03:00
stack_max = 64 ,
paramtype2 = " facedir " ,
2017-02-08 21:00:41 +03:00
is_ground_content = false ,
2017-02-11 06:37:14 +03:00
on_place = mcl_util.rotate_axis ,
2017-02-08 20:54:56 +03:00
tiles = { " mcl_nether_quartz_pillar_top.png " , " mcl_nether_quartz_pillar_top.png " , " mcl_nether_quartz_pillar_side.png " } ,
2017-03-11 07:34:58 +03:00
groups = { pickaxey = 1 , quartz_block = 1 , building_block = 1 , material_stone = 1 } ,
2017-02-11 20:46:23 +03:00
sounds = mcl_sounds.node_sound_stone_defaults ( ) ,
2019-12-15 01:42:17 +03:00
on_rotate = on_rotate ,
2020-04-17 22:40:13 +03:00
_mcl_blast_resistance = 0.8 ,
2017-02-27 03:40:30 +03:00
_mcl_hardness = 0.8 ,
2017-02-08 20:54:56 +03:00
} )
2017-11-23 05:24:39 +03:00
minetest.register_node ( " mcl_nether:quartz_smooth " , {
2019-03-08 02:22:28 +03:00
description = S ( " Smooth Quartz " ) ,
2017-11-23 05:24:39 +03: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 05:24:39 +03:00
_mcl_hardness = 0.8 ,
} )
2017-02-08 20:54:56 +03:00
minetest.register_craftitem ( " mcl_nether:glowstone_dust " , {
2019-03-08 02:22:28 +03: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 20:54:56 +03: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 20:54:56 +03:00
} )
minetest.register_craftitem ( " mcl_nether:quartz " , {
2019-03-08 02:22:28 +03:00
description = S ( " Nether Quartz " ) ,
_doc_items_longdesc = S ( " Nether quartz is a versatile crafting ingredient. " ) ,
2017-02-08 20:54:56 +03:00
inventory_image = " mcl_nether_quartz.png " ,
stack_max = 64 ,
groups = { craftitem = 1 } ,
} )
2017-02-08 21:52:04 +03:00
minetest.register_craftitem ( " mcl_nether:netherbrick " , {
2019-03-08 02:22:28 +03: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 21:52:04 +03:00
inventory_image = " mcl_nether_netherbrick.png " ,
stack_max = 64 ,
groups = { craftitem = 1 } ,
} )
2017-02-08 20:54:56 +03:00
minetest.register_craft ( {
type = " cooking " ,
output = " mcl_nether:quartz " ,
recipe = " mcl_nether:quartz_ore " ,
cooktime = 10 ,
} )
minetest.register_craft ( {
output = ' mcl_nether:quartz_block ' ,
recipe = {
{ ' mcl_nether:quartz ' , ' mcl_nether:quartz ' } ,
{ ' mcl_nether:quartz ' , ' mcl_nether:quartz ' } ,
}
} )
2017-02-08 21:52:04 +03:00
2017-02-08 20:54:56 +03:00
minetest.register_craft ( {
output = ' mcl_nether:quartz_pillar 2 ' ,
recipe = {
{ ' mcl_nether:quartz_block ' } ,
{ ' mcl_nether:quartz_block ' } ,
}
} )
minetest.register_craft ( {
output = " mcl_nether:glowstone " ,
recipe = {
{ ' mcl_nether:glowstone_dust ' , ' mcl_nether:glowstone_dust ' } ,
{ ' mcl_nether:glowstone_dust ' , ' mcl_nether:glowstone_dust ' } ,
}
} )
2017-02-09 02:51:43 +03:00
minetest.register_craft ( {
output = " mcl_nether:magma " ,
recipe = {
{ ' mcl_mobitems:magma_cream ' , ' mcl_mobitems:magma_cream ' } ,
{ ' mcl_mobitems:magma_cream ' , ' mcl_mobitems:magma_cream ' } ,
}
} )
2017-02-08 21:52:04 +03: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 = {
{ ' mcl_nether:netherbrick ' , ' mcl_nether:netherbrick ' } ,
{ ' mcl_nether:netherbrick ' , ' mcl_nether:netherbrick ' } ,
}
} )
minetest.register_craft ( {
output = " mcl_nether:red_nether_brick " ,
recipe = {
2017-02-10 06:15:14 +03:00
{ ' mcl_nether:nether_wart_item ' , ' mcl_nether:netherbrick ' } ,
{ ' mcl_nether:netherbrick ' , ' mcl_nether:nether_wart_item ' } ,
2017-02-08 21:52:04 +03:00
}
} )
minetest.register_craft ( {
output = " mcl_nether:red_nether_brick " ,
recipe = {
2017-02-10 06:15:14 +03:00
{ ' mcl_nether:netherbrick ' , ' mcl_nether:nether_wart_item ' } ,
{ ' mcl_nether:nether_wart_item ' , ' mcl_nether:netherbrick ' } ,
2017-02-08 21:52:04 +03:00
}
} )
2017-02-08 22:07:54 +03:00
minetest.register_craft ( {
output = " mcl_nether:nether_wart_block " ,
recipe = {
2017-02-10 06:15:14 +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 22:07:54 +03:00
}
} )
2017-02-08 21:52:04 +03:00
2017-02-10 06:15:14 +03: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 " )