|
|
@ -43,17 +43,17 @@ local watered_dripstone_spike = "noordstar_dripstone:watered_dripstone_spike"
|
|
|
|
|
|
|
|
|
|
|
|
local internal = {
|
|
|
|
local internal = {
|
|
|
|
-- Nodes that the mod should consider as sources to extract water from
|
|
|
|
-- Nodes that the mod should consider as sources to extract water from
|
|
|
|
water_nodes =
|
|
|
|
water_nodes = {
|
|
|
|
{ "default:river_water_source"
|
|
|
|
"default:river_water_source",
|
|
|
|
, "default:water_source"
|
|
|
|
"default:water_source",
|
|
|
|
, "mcl_core:water_source"
|
|
|
|
"mcl_core:water_source",
|
|
|
|
, "mclx_core:river_water_source"
|
|
|
|
"mclx_core:river_water_source",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
-- Nodes that the mod should consider as sources to extract lava from
|
|
|
|
-- Nodes that the mod should consider as sources to extract lava from
|
|
|
|
lava_nodes =
|
|
|
|
lava_nodes = {
|
|
|
|
{ "default:lava_source"
|
|
|
|
"default:lava_source",
|
|
|
|
, "mcl_core:lava_source"
|
|
|
|
"mcl_core:lava_source",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
-- Nodes that can catch a lava droplet instead of letting a spike grow on top
|
|
|
|
-- Nodes that can catch a lava droplet instead of letting a spike grow on top
|
|
|
@ -97,7 +97,7 @@ local function nodebox_of_size(size)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
local function nodebox_type(size)
|
|
|
|
local function drawtype_of_size(size)
|
|
|
|
if size >= 8 then
|
|
|
|
if size >= 8 then
|
|
|
|
return "normal"
|
|
|
|
return "normal"
|
|
|
|
else
|
|
|
|
else
|
|
|
@ -106,8 +106,8 @@ local function nodebox_type(size)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- Sounds
|
|
|
|
-- Sounds
|
|
|
|
local dripstone_sounds = nil
|
|
|
|
local dripstone_sounds
|
|
|
|
if mcl_sounds then
|
|
|
|
if minetest.get_modpath("mcl_sounds") then
|
|
|
|
dripstone_sounds = mcl_sounds.node_sound_stone_defaults()
|
|
|
|
dripstone_sounds = mcl_sounds.node_sound_stone_defaults()
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
@ -191,26 +191,26 @@ local water_trickle_down_spike = {
|
|
|
|
|
|
|
|
|
|
|
|
-- Tiles for dripstone
|
|
|
|
-- Tiles for dripstone
|
|
|
|
|
|
|
|
|
|
|
|
local dry_dripstone_tiles =
|
|
|
|
local dry_dripstone_tiles = {
|
|
|
|
{ "noordstar_dripstone_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_dripstone_side.png"
|
|
|
|
"noordstar_dripstone_dripstone_side.png",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
local hardened_dripstone_tiles =
|
|
|
|
local hardened_dripstone_tiles = {
|
|
|
|
{ "noordstar_dripstone_hardened_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_hardened_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_hardened_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_hardened_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_hardened_dripstone_side.png"
|
|
|
|
"noordstar_dripstone_hardened_dripstone_side.png",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
local molten_dripstone_tiles =
|
|
|
|
local molten_dripstone_tiles = {
|
|
|
|
{ "noordstar_dripstone_molten_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_molten_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_molten_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_molten_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_molten_dripstone_side.png"
|
|
|
|
"noordstar_dripstone_molten_dripstone_side.png",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
local watered_dripstone_tiles =
|
|
|
|
local watered_dripstone_tiles = {
|
|
|
|
{ "noordstar_dripstone_watered_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_watered_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_watered_dripstone_top.png"
|
|
|
|
"noordstar_dripstone_watered_dripstone_top.png",
|
|
|
|
, "noordstar_dripstone_watered_dripstone_side.png"
|
|
|
|
"noordstar_dripstone_watered_dripstone_side.png",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
-- Register dripstone nodes
|
|
|
|
-- Register dripstone nodes
|
|
|
|
|
|
|
|
|
|
|
@ -220,13 +220,17 @@ local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
|
|
|
sunlight_propagates = true
|
|
|
|
sunlight_propagates = true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
minetest.register_node(name,
|
|
|
|
minetest.register_node(name, {
|
|
|
|
{ description = desc
|
|
|
|
description = desc,
|
|
|
|
, _doc_items_longdesc = longdesc
|
|
|
|
_doc_items_longdesc = longdesc,
|
|
|
|
, tiles = tiles
|
|
|
|
tiles = tiles,
|
|
|
|
, groups = { pickaxey=2, material_stone=1, fall_damage_add_percent = math.max(4 - size, 0) / 4 * 100 }
|
|
|
|
groups = {
|
|
|
|
, is_ground_content = true
|
|
|
|
pickaxey=2,
|
|
|
|
, drop = {
|
|
|
|
material_stone=1,
|
|
|
|
|
|
|
|
fall_damage_add_percent = math.max(4 - size, 0) / 4 * 100
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
is_ground_content = true,
|
|
|
|
|
|
|
|
drop = {
|
|
|
|
max_items = math.floor((size + 1) / 2),
|
|
|
|
max_items = math.floor((size + 1) / 2),
|
|
|
|
items = {
|
|
|
|
items = {
|
|
|
|
{ rarity = 1
|
|
|
|
{ rarity = 1
|
|
|
@ -242,17 +246,16 @@ local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
|
|
|
, items = { drop }
|
|
|
|
, items = { drop }
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
},
|
|
|
|
, sounds = dripstone_sounds
|
|
|
|
sounds = dripstone_sounds,
|
|
|
|
, drawtype = nodebox_type(size)
|
|
|
|
drawtype = drawtype_of_size(size),
|
|
|
|
, paramtype = "light"
|
|
|
|
paramtype = "light",
|
|
|
|
, sunlight_propagates = sunlight_propagates
|
|
|
|
sunlight_propagates = sunlight_propagates,
|
|
|
|
, node_box = nodebox_of_size(size)
|
|
|
|
node_box = nodebox_of_size(size),
|
|
|
|
, _mcl_hardness = 1.0 + size / 8
|
|
|
|
_mcl_hardness = 1.0 + size / 8,
|
|
|
|
, _mcl_blast_resistance = 1 + size / 2
|
|
|
|
_mcl_blast_resistance = 1 + size / 2,
|
|
|
|
, _mcl_silk_touch_drop = true
|
|
|
|
_mcl_silk_touch_drop = true,
|
|
|
|
}
|
|
|
|
})
|
|
|
|
)
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
-- BASE BLOCKS
|
|
|
|
-- BASE BLOCKS
|
|
|
@ -540,7 +543,7 @@ make_dripstone(
|
|
|
|
-- ACTIONS
|
|
|
|
-- ACTIONS
|
|
|
|
|
|
|
|
|
|
|
|
local function absorb_liquid(pos, node, aoc, aocw)
|
|
|
|
local function absorb_liquid(pos, node, aoc, aocw)
|
|
|
|
local node_above = minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z }) or {}
|
|
|
|
local node_above = minetest.get_node(vector.offset(pos, 0, 1, 0)) or {}
|
|
|
|
local na_name = node_above.name
|
|
|
|
local na_name = node_above.name
|
|
|
|
|
|
|
|
|
|
|
|
for _, water in pairs(internal.water_nodes) do
|
|
|
|
for _, water in pairs(internal.water_nodes) do
|
|
|
@ -565,12 +568,11 @@ end
|
|
|
|
local function drop_down_to(options, dry_up_node_name)
|
|
|
|
local function drop_down_to(options, dry_up_node_name)
|
|
|
|
return function(pos, node, aoc, aocw)
|
|
|
|
return function(pos, node, aoc, aocw)
|
|
|
|
for i = 1, 25 do
|
|
|
|
for i = 1, 25 do
|
|
|
|
local pos_rel = { x = pos.x, y = pos.y - i, z = pos.z }
|
|
|
|
local pos_rel = vector.offset(pos, 0, -i, 0)
|
|
|
|
local node_rel = minetest.get_node(pos_rel) or {}
|
|
|
|
local node_rel = minetest.get_node(pos_rel) or {}
|
|
|
|
local node_name = node_rel.name or ""
|
|
|
|
local node_name = node_rel.name or ""
|
|
|
|
|
|
|
|
|
|
|
|
if node_name == "air" then
|
|
|
|
if minetest.get_item_group(node_name, "air") ~= 0 then
|
|
|
|
else
|
|
|
|
|
|
|
|
-- Non-air node has been found!
|
|
|
|
-- Non-air node has been found!
|
|
|
|
-- Check if it reacts to the dripstone and if it can be
|
|
|
|
-- Check if it reacts to the dripstone and if it can be
|
|
|
|
-- activated.
|
|
|
|
-- activated.
|
|
|
@ -588,7 +590,7 @@ local function drop_down_to(options, dry_up_node_name)
|
|
|
|
-- The node cannot be changed and hence a new spike starts on top
|
|
|
|
-- The node cannot be changed and hence a new spike starts on top
|
|
|
|
-- of it.
|
|
|
|
-- of it.
|
|
|
|
if i > 1 then
|
|
|
|
if i > 1 then
|
|
|
|
pos_rel = { x = pos.x, y = pos.y - i + 1, z = pos.z }
|
|
|
|
pos_rel = vector.offset(pos, 0, 1-i, 0)
|
|
|
|
minetest.set_node(pos_rel, { name = dry_dripstone_spike })
|
|
|
|
minetest.set_node(pos_rel, { name = dry_dripstone_spike })
|
|
|
|
|
|
|
|
|
|
|
|
node.name = dry_up_node_name
|
|
|
|
node.name = dry_up_node_name
|
|
|
@ -609,7 +611,7 @@ end
|
|
|
|
|
|
|
|
|
|
|
|
local function harden(harden_nodes_func)
|
|
|
|
local function harden(harden_nodes_func)
|
|
|
|
return function(pos, node, aoc, aocw)
|
|
|
|
return function(pos, node, aoc, aocw)
|
|
|
|
local node_above = minetest.get_node({ x = pos.x, y = pos.y + 1, z = pos.z }) or {}
|
|
|
|
local node_above = minetest.get_node(vector.offset(pos, 0, 1, 0)) or {}
|
|
|
|
local na_name = node_above.name
|
|
|
|
local na_name = node_above.name
|
|
|
|
|
|
|
|
|
|
|
|
for _, hardener in pairs(harden_nodes_func()) do
|
|
|
|
for _, hardener in pairs(harden_nodes_func()) do
|
|
|
@ -625,7 +627,7 @@ end
|
|
|
|
|
|
|
|
|
|
|
|
local function trickle_down(options, dry_up_node_name)
|
|
|
|
local function trickle_down(options, dry_up_node_name)
|
|
|
|
return function(pos, node, aoc, aocw)
|
|
|
|
return function(pos, node, aoc, aocw)
|
|
|
|
local pos_below = { x = pos.x, y = pos.y - 1, z = pos.z }
|
|
|
|
local pos_below = vector.offset(pos, 0, -1, 0)
|
|
|
|
local node_below = minetest.get_node(pos_below) or {}
|
|
|
|
local node_below = minetest.get_node(pos_below) or {}
|
|
|
|
local nb_name = node_below.name or ""
|
|
|
|
local nb_name = node_below.name or ""
|
|
|
|
|
|
|
|
|
|
|
@ -707,38 +709,38 @@ make_abm(watered_dripstone_spike, seconds_per_water_trickle, drop_down_to(intern
|
|
|
|
|
|
|
|
|
|
|
|
-- CRATING RECIPES
|
|
|
|
-- CRATING RECIPES
|
|
|
|
|
|
|
|
|
|
|
|
local function gapple_recipe(gold, apple, gapple)
|
|
|
|
local function make_recipe(border, middle, output)
|
|
|
|
minetest.register_craft({
|
|
|
|
minetest.register_craft({
|
|
|
|
output = gapple,
|
|
|
|
output = output,
|
|
|
|
recipe = {
|
|
|
|
recipe = {
|
|
|
|
{ gold, gold, gold },
|
|
|
|
{ border, border, border },
|
|
|
|
{ gold, apple, gold },
|
|
|
|
{ border, middle, border },
|
|
|
|
{ gold, gold, gold },
|
|
|
|
{ border, border, border },
|
|
|
|
}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
})
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
gapple_recipe(dry_dripstone_spike, dry_dripstone_spike, dry_dripstone_tiny)
|
|
|
|
make_recipe(dry_dripstone_spike, dry_dripstone_spike, dry_dripstone_tiny)
|
|
|
|
gapple_recipe(dry_dripstone_spike, dry_dripstone_tiny, dry_dripstone_small)
|
|
|
|
make_recipe(dry_dripstone_spike, dry_dripstone_tiny, dry_dripstone_small)
|
|
|
|
gapple_recipe(dry_dripstone_spike, dry_dripstone_small, dry_dripstone_medium)
|
|
|
|
make_recipe(dry_dripstone_spike, dry_dripstone_small, dry_dripstone_medium)
|
|
|
|
gapple_recipe(dry_dripstone_spike, dry_dripstone_medium, dry_dripstone_great)
|
|
|
|
make_recipe(dry_dripstone_spike, dry_dripstone_medium, dry_dripstone_great)
|
|
|
|
gapple_recipe(dry_dripstone_spike, dry_dripstone_great, dry_dripstone_large)
|
|
|
|
make_recipe(dry_dripstone_spike, dry_dripstone_great, dry_dripstone_large)
|
|
|
|
gapple_recipe(dry_dripstone_spike, dry_dripstone_large, dry_dripstone_huge)
|
|
|
|
make_recipe(dry_dripstone_spike, dry_dripstone_large, dry_dripstone_huge)
|
|
|
|
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_spike, hardened_dripstone_tiny)
|
|
|
|
make_recipe(hardened_dripstone_spike, hardened_dripstone_spike, hardened_dripstone_tiny)
|
|
|
|
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_tiny, hardened_dripstone_small)
|
|
|
|
make_recipe(hardened_dripstone_spike, hardened_dripstone_tiny, hardened_dripstone_small)
|
|
|
|
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_small, hardened_dripstone_medium)
|
|
|
|
make_recipe(hardened_dripstone_spike, hardened_dripstone_small, hardened_dripstone_medium)
|
|
|
|
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_medium, hardened_dripstone_great)
|
|
|
|
make_recipe(hardened_dripstone_spike, hardened_dripstone_medium, hardened_dripstone_great)
|
|
|
|
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_great, hardened_dripstone_large)
|
|
|
|
make_recipe(hardened_dripstone_spike, hardened_dripstone_great, hardened_dripstone_large)
|
|
|
|
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_large, hardened_dripstone_huge)
|
|
|
|
make_recipe(hardened_dripstone_spike, hardened_dripstone_large, hardened_dripstone_huge)
|
|
|
|
gapple_recipe(molten_dripstone_spike, molten_dripstone_spike, molten_dripstone_tiny)
|
|
|
|
make_recipe(molten_dripstone_spike, molten_dripstone_spike, molten_dripstone_tiny)
|
|
|
|
gapple_recipe(molten_dripstone_spike, molten_dripstone_tiny, molten_dripstone_small)
|
|
|
|
make_recipe(molten_dripstone_spike, molten_dripstone_tiny, molten_dripstone_small)
|
|
|
|
gapple_recipe(molten_dripstone_spike, molten_dripstone_small, molten_dripstone_medium)
|
|
|
|
make_recipe(molten_dripstone_spike, molten_dripstone_small, molten_dripstone_medium)
|
|
|
|
gapple_recipe(molten_dripstone_spike, molten_dripstone_medium, molten_dripstone_great)
|
|
|
|
make_recipe(molten_dripstone_spike, molten_dripstone_medium, molten_dripstone_great)
|
|
|
|
gapple_recipe(molten_dripstone_spike, molten_dripstone_great, molten_dripstone_large)
|
|
|
|
make_recipe(molten_dripstone_spike, molten_dripstone_great, molten_dripstone_large)
|
|
|
|
gapple_recipe(molten_dripstone_spike, molten_dripstone_large, molten_dripstone_huge)
|
|
|
|
make_recipe(molten_dripstone_spike, molten_dripstone_large, molten_dripstone_huge)
|
|
|
|
gapple_recipe(watered_dripstone_spike, watered_dripstone_spike, watered_dripstone_tiny)
|
|
|
|
make_recipe(watered_dripstone_spike, watered_dripstone_spike, watered_dripstone_tiny)
|
|
|
|
gapple_recipe(watered_dripstone_spike, watered_dripstone_tiny, watered_dripstone_small)
|
|
|
|
make_recipe(watered_dripstone_spike, watered_dripstone_tiny, watered_dripstone_small)
|
|
|
|
gapple_recipe(watered_dripstone_spike, watered_dripstone_small, watered_dripstone_medium)
|
|
|
|
make_recipe(watered_dripstone_spike, watered_dripstone_small, watered_dripstone_medium)
|
|
|
|
gapple_recipe(watered_dripstone_spike, watered_dripstone_medium, watered_dripstone_great)
|
|
|
|
make_recipe(watered_dripstone_spike, watered_dripstone_medium, watered_dripstone_great)
|
|
|
|
gapple_recipe(watered_dripstone_spike, watered_dripstone_great, watered_dripstone_large)
|
|
|
|
make_recipe(watered_dripstone_spike, watered_dripstone_great, watered_dripstone_large)
|
|
|
|
gapple_recipe(watered_dripstone_spike, watered_dripstone_large, watered_dripstone_huge)
|
|
|
|
make_recipe(watered_dripstone_spike, watered_dripstone_large, watered_dripstone_huge)
|
|
|
|