2017-07-07 16:52:28 +02:00
-- Liquids: Water and lava
2019-03-07 23:40:43 +01:00
local S = minetest.get_translator ( " mcl_core " )
2019-03-15 07:10:18 +01:00
local N = function ( s ) return s end
2019-03-07 23:40:43 +01:00
2017-07-07 16:52:28 +02:00
local WATER_ALPHA = 179
local WATER_VISC = 1
local LAVA_VISC = 7
2019-03-08 21:59:16 +01:00
local lava_death_messages = {
2019-03-15 07:10:18 +01:00
N ( " @1 melted in lava. " ) ,
N ( " @1 took a bath in a hot lava tub. " ) ,
N ( " @1 died in lava. " ) ,
N ( " @1 could not survive in lava. " ) ,
2019-03-08 21:59:16 +01:00
}
2017-07-07 16:52:28 +02:00
minetest.register_node ( " mcl_core:water_flowing " , {
2019-03-07 23:40:43 +01:00
description = S ( " Flowing Water " ) ,
2017-07-07 16:52:28 +02:00
_doc_items_create_entry = false ,
2017-07-17 12:20:15 +02:00
wield_image = " default_water_flowing_animated.png^[verticalframe:64:0 " ,
2017-07-07 16:52:28 +02:00
drawtype = " flowingliquid " ,
2017-07-17 12:20:15 +02:00
tiles = { " default_water_flowing_animated.png^[verticalframe:64:0 " } ,
2017-07-07 16:52:28 +02:00
special_tiles = {
{
image = " default_water_flowing_animated.png " ,
backface_culling = false ,
2017-07-17 12:20:15 +02:00
animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 4.0 }
2017-07-07 16:52:28 +02:00
} ,
{
image = " default_water_flowing_animated.png " ,
2020-01-19 22:56:37 +01:00
backface_culling = false ,
2017-07-17 12:20:15 +02:00
animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 4.0 }
2017-07-07 16:52:28 +02:00
} ,
} ,
2018-01-12 02:26:12 +01:00
sounds = mcl_sounds.node_sound_water_defaults ( ) ,
2020-06-08 23:47:53 +02:00
is_ground_content = false ,
2017-07-07 16:52:28 +02:00
alpha = WATER_ALPHA ,
paramtype = " light " ,
paramtype2 = " flowingliquid " ,
walkable = false ,
pointable = false ,
diggable = false ,
buildable_to = true ,
drop = " " ,
drowning = 4 ,
liquidtype = " flowing " ,
liquid_alternative_flowing = " mcl_core:water_flowing " ,
liquid_alternative_source = " mcl_core:water_source " ,
liquid_viscosity = WATER_VISC ,
liquid_range = 7 ,
2019-02-06 08:08:51 +01:00
post_effect_color = { a = 209 , r = 0x03 , g = 0x3C , b = 0x5C } ,
2017-07-07 16:52:28 +02:00
groups = { water = 3 , liquid = 3 , puts_out_fire = 1 , not_in_creative_inventory = 1 , freezes = 1 , melt_around = 1 , dig_by_piston = 1 } ,
2020-04-15 13:27:29 +02:00
_mcl_blast_resistance = 100 ,
2017-07-07 16:52:28 +02:00
-- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
_mcl_hardness = - 1 ,
} )
minetest.register_node ( " mcl_core:water_source " , {
2019-03-07 23:40:43 +01:00
description = S ( " Water Source " ) ,
_doc_items_entry_name = S ( " Water " ) ,
2017-07-07 16:52:28 +02:00
_doc_items_longdesc =
2019-03-24 08:03:50 +01:00
S ( " Water is abundant in oceans and also appears in a few springs in the ground. You can swim easily in water, but you need to catch your breath from time to time. " ) .. " \n \n " ..
S ( " Water interacts with lava in various ways: " ) .. " \n " ..
S ( " • When water is directly above or horizontally next to a lava source, the lava turns into obsidian. " ) .. " \n " ..
S ( " • When flowing water touches flowing lava either from above or horizontally, the lava turns into cobblestone. " ) .. " \n " ..
S ( " • When water is directly below lava, the water turns into stone. " ) ,
2017-07-07 16:52:28 +02:00
_doc_items_hidden = false ,
drawtype = " liquid " ,
tiles = {
2017-07-17 12:20:15 +02:00
{ name = " default_water_source_animated.png " , animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 5.0 } }
2017-07-07 16:52:28 +02:00
} ,
special_tiles = {
-- New-style water source material (mostly unused)
{
name = " default_water_source_animated.png " ,
2017-07-17 12:20:15 +02:00
animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 5.0 } ,
2017-07-07 16:52:28 +02:00
backface_culling = false ,
}
} ,
2018-01-12 02:26:12 +01:00
sounds = mcl_sounds.node_sound_water_defaults ( ) ,
2020-06-08 23:47:53 +02:00
is_ground_content = false ,
2017-07-07 16:52:28 +02:00
alpha = WATER_ALPHA ,
paramtype = " light " ,
walkable = false ,
pointable = false ,
diggable = false ,
buildable_to = true ,
drop = " " ,
drowning = 4 ,
liquidtype = " source " ,
liquid_alternative_flowing = " mcl_core:water_flowing " ,
liquid_alternative_source = " mcl_core:water_source " ,
liquid_viscosity = WATER_VISC ,
liquid_range = 7 ,
2019-02-06 08:08:51 +01:00
post_effect_color = { a = 209 , r = 0x03 , g = 0x3C , b = 0x5C } ,
2017-07-07 16:52:28 +02:00
stack_max = 64 ,
groups = { water = 3 , liquid = 3 , puts_out_fire = 1 , freezes = 1 , not_in_creative_inventory = 1 , dig_by_piston = 1 } ,
2020-04-15 13:27:29 +02:00
_mcl_blast_resistance = 100 ,
2017-07-07 16:52:28 +02:00
-- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
_mcl_hardness = - 1 ,
} )
minetest.register_node ( " mcl_core:lava_flowing " , {
2019-03-07 23:40:43 +01:00
description = S ( " Flowing Lava " ) ,
2017-07-07 16:52:28 +02:00
_doc_items_create_entry = false ,
2017-07-17 12:20:15 +02:00
wield_image = " default_lava_flowing_animated.png^[verticalframe:64:0 " ,
2017-07-07 16:52:28 +02:00
drawtype = " flowingliquid " ,
2017-07-17 12:20:15 +02:00
tiles = { " default_lava_flowing_animated.png^[verticalframe:64:0 " } ,
2017-07-07 16:52:28 +02:00
special_tiles = {
{
image = " default_lava_flowing_animated.png " ,
backface_culling = false ,
2017-07-17 12:20:15 +02:00
animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 6.6 }
2017-07-07 16:52:28 +02:00
} ,
{
image = " default_lava_flowing_animated.png " ,
2020-01-19 22:56:37 +01:00
backface_culling = false ,
2017-07-17 12:20:15 +02:00
animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 6.6 }
2017-07-07 16:52:28 +02:00
} ,
} ,
2019-02-01 06:23:12 +01:00
paramtype = " light " ,
2017-07-07 16:52:28 +02:00
paramtype2 = " flowingliquid " ,
2019-12-14 18:57:17 +01:00
light_source = minetest.LIGHT_MAX ,
2020-06-08 23:47:53 +02:00
is_ground_content = false ,
2018-01-12 02:26:12 +01:00
sounds = mcl_sounds.node_sound_lava_defaults ( ) ,
2017-07-07 16:52:28 +02:00
walkable = false ,
pointable = false ,
diggable = false ,
buildable_to = true ,
drop = " " ,
--[[ Drowning in Minecraft deals 2 damage per second.
In Minetest , drowning damage is dealt every 2 seconds so this
translates to 4 drowning damage ] ]
drowning = 4 ,
liquidtype = " flowing " ,
liquid_alternative_flowing = " mcl_core:lava_flowing " ,
liquid_alternative_source = " mcl_core:lava_source " ,
liquid_viscosity = LAVA_VISC ,
liquid_renewable = false ,
liquid_range = 3 ,
damage_per_second = 4 * 2 ,
2019-03-08 21:59:16 +01:00
_mcl_node_death_message = lava_death_messages ,
2017-07-07 16:52:28 +02:00
post_effect_color = { a = 255 , r = 208 , g = 73 , b = 10 } ,
groups = { lava = 3 , liquid = 2 , destroys_items = 1 , not_in_creative_inventory = 1 , dig_by_piston = 1 } ,
2020-04-15 13:27:29 +02:00
_mcl_blast_resistance = 100 ,
2017-07-07 16:52:28 +02:00
-- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
_mcl_hardness = - 1 ,
} )
2019-04-09 15:25:27 +02:00
local fire_text
local fire_enabled = minetest.settings : get_bool ( " enable_fire " , true )
if fire_enabled then
fire_text = S ( " A lava source sets fire to a couple of air blocks above when they're next to a flammable block. " )
else
fire_text = " "
end
2017-07-07 16:52:28 +02:00
minetest.register_node ( " mcl_core:lava_source " , {
2019-03-07 23:40:43 +01:00
description = S ( " Lava Source " ) ,
2017-07-07 16:52:28 +02:00
_doc_items_entry_name = " Lava " ,
_doc_items_longdesc =
2019-03-07 23:40:43 +01:00
S ( " Lava is hot and rather dangerous. Don't touch it, it will hurt you a lot and it is hard to get out. " ) .. " \n " ..
2019-04-09 15:25:27 +02:00
fire_text .. " \n \n " ..
2019-03-24 08:03:50 +01:00
S ( " Lava interacts with water various ways: " ) .. " \n " ..
S ( " • When a lava source is directly below or horizontally next to water, the lava turns into obsidian. " ) .. " \n " ..
S ( " • When flowing water touches flowing lava either from above or horizontally, the lava turns into cobblestone. " ) .. " \n " ..
S ( " • When lava is directly above water, the water turns into stone. " ) ,
2017-07-07 16:52:28 +02:00
drawtype = " liquid " ,
tiles = {
{ name = " default_lava_source_animated.png " , animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 3.0 } }
} ,
special_tiles = {
-- New-style lava source material (mostly unused)
{
name = " default_lava_source_animated.png " ,
2017-07-17 12:20:15 +02:00
animation = { type = " vertical_frames " , aspect_w = 16 , aspect_h = 16 , length = 3.0 } ,
2017-07-07 16:52:28 +02:00
backface_culling = false ,
}
} ,
2019-02-01 06:23:12 +01:00
paramtype = " light " ,
2019-12-14 18:57:17 +01:00
light_source = minetest.LIGHT_MAX ,
2020-06-08 23:47:53 +02:00
is_ground_content = false ,
2018-01-12 02:26:12 +01:00
sounds = mcl_sounds.node_sound_lava_defaults ( ) ,
2017-07-07 16:52:28 +02:00
walkable = false ,
pointable = false ,
diggable = false ,
buildable_to = true ,
drop = " " ,
drowning = 4 ,
liquidtype = " source " ,
liquid_alternative_flowing = " mcl_core:lava_flowing " ,
liquid_alternative_source = " mcl_core:lava_source " ,
liquid_viscosity = LAVA_VISC ,
liquid_renewable = false ,
liquid_range = 3 ,
damage_per_second = 4 * 2 ,
2019-03-08 21:59:16 +01:00
_mcl_node_death_message = lava_death_messages ,
2017-07-07 16:52:28 +02:00
post_effect_color = { a = 255 , r = 208 , g = 73 , b = 10 } ,
stack_max = 64 ,
groups = { lava = 3 , liquid = 2 , destroys_items = 1 , not_in_creative_inventory = 1 , dig_by_piston = 1 } ,
2020-04-15 13:27:29 +02:00
_mcl_blast_resistance = 100 ,
2017-07-07 16:52:28 +02:00
-- Hardness intentionally set to infinite instead of 100 (Minecraft value) to avoid problems in creative mode
_mcl_hardness = - 1 ,
} )