forked from Minetest/dripstone
Compare commits
No commits in common. "2a8ff26dd728680d7fbadeff5a04c50e981a49c0" and "c8c11d6539d412b41ada4253eee6da9316b47b96" have entirely different histories.
2a8ff26dd7
...
c8c11d6539
101
API.md
101
API.md
|
@ -1,101 +0,0 @@
|
||||||
# Dripstone API manual
|
|
||||||
|
|
||||||
The dripstone behavior in this mod differs from games like Minecraft by adding
|
|
||||||
more complexity in a context agnostic manner. This means that in comparison to
|
|
||||||
a game like Minecraft:
|
|
||||||
|
|
||||||
- This dripstone is **computationally very cheap**, as it doesn't care whether
|
|
||||||
it's part of a stalactite, stalagmite or neither.
|
|
||||||
- This dripstone grows in **more accurate shapes**, forming more complex shapes
|
|
||||||
that occur in nature too.
|
|
||||||
- This dripstone doesn't know whether it is part of a stalactite or stalagmite,
|
|
||||||
so it **doesn't support falling stalactites**.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
## Composition
|
|
||||||
|
|
||||||
Dripstone has 4 dripstone types:
|
|
||||||
|
|
||||||
- Dry dripstone, which is the default type.
|
|
||||||
- Watered dripstone, which has absorbed water.
|
|
||||||
- Molten dripstone, which has absorbed lava.
|
|
||||||
- Hardened dripstone, which has absorbed water & lava at the same time.
|
|
||||||
|
|
||||||
Dripstone has 8 different sizes:
|
|
||||||
|
|
||||||
- A base dripstone block
|
|
||||||
- 7 dripstone spike shapes that can grow in height and thickness.
|
|
||||||
|
|
||||||
As you can see in the image below, shape sizes from smallest to largest are
|
|
||||||
spike, tiny, small, medium, great, large, huge, and block.
|
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
From left to right, the dripstone types are dry dripstone, watered dripstone,
|
|
||||||
molten dripstone and hardened dripstone.
|
|
||||||
|
|
||||||
## Dry dripstone
|
|
||||||
|
|
||||||
Dry dripstone is the base dripstone type. All dripstone types mimick this type
|
|
||||||
with a few minor changes.
|
|
||||||
|
|
||||||
Dry dripstone blocks are the only type that can absorb liquids. When doing so,
|
|
||||||
they become watered or molten dripstone blocks.
|
|
||||||
|
|
||||||
## Watered & molten dripstone
|
|
||||||
|
|
||||||
Dripstone that has absorbed water or lava, can use it for three things. Once it
|
|
||||||
has done either of the three following options, the dripstone becomes dry.
|
|
||||||
|
|
||||||
1. The dripstone can use it to grow 1 size. Only dripstone of size 6 (Large) and
|
|
||||||
under can do this.
|
|
||||||
2. The dripstone can pass the liquid down to a dripstone directly below it.
|
|
||||||
Liquids can never be passed down to hardened dripstones.
|
|
||||||
3. If the dripstone is a spike size, it can release the droplet downwards to the
|
|
||||||
ground or to an object (such as a dripstone spike or a cauldron) that can catch
|
|
||||||
the droplet. If there's no surface within 25 blocks, the droplet evaporates. If
|
|
||||||
there's a surface that is unable to catch the droplet, a new spike will grow on
|
|
||||||
top, effectively forming a new stalagmite.
|
|
||||||
|
|
||||||
Since dripstone blocks are the only blocks that can absorb liquids, they
|
|
||||||
function as a sprinkler that grows both the stalactite and stalagmite beneath
|
|
||||||
it.
|
|
||||||
|
|
||||||
**Note:** It is impossible to grow new dripstone blocks using dripstone blocks.
|
|
||||||
As a result, you must either build your dripstone/lava/water farm in a cave, or
|
|
||||||
you need to acquire silk touch to be able to break, move and place the dripstone
|
|
||||||
blocks.
|
|
||||||
|
|
||||||
## Hardened dripstone
|
|
||||||
|
|
||||||
Similar to how unbreakable a block of obsidian is when lava & water mix,
|
|
||||||
hardened dripstone is a tough, less breakable type of dripstone that occurs when
|
|
||||||
a dripstone absorbs both watetr & lava before drying up.
|
|
||||||
|
|
||||||
Hardened dripstone cannot grow, it cannot absorb water or pass it on.
|
|
||||||
|
|
||||||
## Crafting
|
|
||||||
|
|
||||||
Dripstone blocks cannot be crafted.
|
|
||||||
|
|
||||||
All other sizes can be crafted using dripstone spikes. You can upgrade a
|
|
||||||
dripstone item by surrounding it with (the same type of) dripstone spikes.
|
|
||||||
Huge dripstone cannot be upgraded to a dripstone block, however.
|
|
||||||
|
|
||||||
## Lua modders
|
|
||||||
|
|
||||||
The following API functions are exposed for you to manipulate this mod with.
|
|
||||||
|
|
||||||
- `noordstar_dripstone.add_lava_source(nodename)` Add a node name that the mod
|
|
||||||
should consider a source of lava droplets above dripstone blocks.
|
|
||||||
- `noordstar_dripstone.add_water_source(nodename)` Add a node name that the mod
|
|
||||||
should consider a source of water droplets above dripstone blocks.
|
|
||||||
- `noordstar_dripstone.add_lava_catcher(oldnodename, newnodename)` Register a
|
|
||||||
node that can catch lava droplets to transform into a new node, such as a
|
|
||||||
cauldron.
|
|
||||||
- `noordstar_dripstone.add_water_catcher(oldnodename, newnodename)` Register a
|
|
||||||
node that can catch water droplets to transform into a new node, such as a
|
|
||||||
cauldron.
|
|
||||||
|
|
||||||
All input values are strings in this API.
|
|
|
@ -4,9 +4,6 @@ This Minetest mod adds dripstone to Minetest.
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
You can read the [API manual](API.md) for an extensive explanation on how the
|
|
||||||
dripstone works in this mod.
|
|
||||||
|
|
||||||
## Contribute
|
## Contribute
|
||||||
|
|
||||||
You can contribute by making pull requests or by reaching out to me
|
You can contribute by making pull requests or by reaching out to me
|
||||||
|
|
370
init.lua
370
init.lua
|
@ -1,11 +1,50 @@
|
||||||
noordstar_dripstone = {}
|
noordstar_dripstone = {
|
||||||
|
-- Nodes that the mod should consider as sources to extract water from
|
||||||
|
water_nodes =
|
||||||
|
{ "default:river_water_source"
|
||||||
|
, "default:water_source"
|
||||||
|
, "mcl_core:water_source"
|
||||||
|
, "mclx_core:river_water_source"
|
||||||
|
}
|
||||||
|
|
||||||
|
-- Nodes that the mod should consider as sources to extract lava from
|
||||||
|
, lava_nodes =
|
||||||
|
{ "default:lava_source"
|
||||||
|
, "mcl_core:lava_source"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
local modpath = minetest.get_modpath(minetest.get_current_modname())
|
||||||
|
|
||||||
|
local function load(module_name)
|
||||||
|
return dofile(modpath .. "/lua/" .. module_name .. ".lua")
|
||||||
|
end
|
||||||
|
local function schem(module_name)
|
||||||
|
return dofile(modpath .. "/schematics/" .. module_name .. ".lua")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Create a node box for any given dripstone size.
|
||||||
|
-- Size 8 is a normal block size
|
||||||
|
local function nodebox_of_size(size)
|
||||||
|
return {
|
||||||
|
type = "fixed",
|
||||||
|
fixed = {
|
||||||
|
{ - size / 16, -0.5, - size / 16, size / 16, 0.5, size / 16 },
|
||||||
|
},
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Sounds
|
||||||
|
local dripstone_sounds = nil
|
||||||
|
if mcl_sounds then
|
||||||
|
dripstone_sounds = mcl_sounds.node_sound_stone_defaults()
|
||||||
|
end
|
||||||
|
|
||||||
-- Constants
|
-- Constants
|
||||||
local speed_factor = 30
|
local speed_factor = 30
|
||||||
local seconds_per_growth = 10 * speed_factor
|
local seconds_per_growth = 10 * speed_factor
|
||||||
local seconds_per_water_trickle = 1 * speed_factor
|
local seconds_per_trickle = 1 * speed_factor
|
||||||
local seconds_per_lava_trickle = 6 * speed_factor
|
local samples_per_interval = 10
|
||||||
local samples_per_interval = 30
|
|
||||||
|
|
||||||
-- Namespaced node names
|
-- Namespaced node names
|
||||||
local dry_dripstone_block = "noordstar_dripstone:dripstone_block"
|
local dry_dripstone_block = "noordstar_dripstone:dripstone_block"
|
||||||
|
@ -41,82 +80,6 @@ local watered_dripstone_small = "noordstar_dripstone:small_watered_dripstone"
|
||||||
local watered_dripstone_tiny = "noordstar_dripstone:tiny_watered_dripstone"
|
local watered_dripstone_tiny = "noordstar_dripstone:tiny_watered_dripstone"
|
||||||
local watered_dripstone_spike = "noordstar_dripstone:watered_dripstone_spike"
|
local watered_dripstone_spike = "noordstar_dripstone:watered_dripstone_spike"
|
||||||
|
|
||||||
local internal = {
|
|
||||||
-- Nodes that the mod should consider as sources to extract water from
|
|
||||||
water_nodes =
|
|
||||||
{ "default:river_water_source"
|
|
||||||
, "default:water_source"
|
|
||||||
, "mcl_core:water_source"
|
|
||||||
, "mclx_core:river_water_source"
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Nodes that the mod should consider as sources to extract lava from
|
|
||||||
lava_nodes =
|
|
||||||
{ "default:lava_source"
|
|
||||||
, "mcl_core:lava_source"
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Nodes that can catch a lava droplet instead of letting a spike grow on top
|
|
||||||
lava_cauldrons = {
|
|
||||||
{ from = dry_dripstone_spike, to = molten_dripstone_spike },
|
|
||||||
{ from = "mcl_cauldrons:cauldron", to = "mcl_cauldrons:cauldron_1_lava" },
|
|
||||||
{ from = "mcl_cauldrons:cauldron_1_lava", to = "mcl_cauldrons:cauldron_2_lava" },
|
|
||||||
{ from = "mcl_cauldrons:cauldron_2_lava", to = "mcl_cauldrons:cauldron_3_lava" },
|
|
||||||
},
|
|
||||||
|
|
||||||
-- Nodes that can catch a water droplet instead of letting a spike grow on top
|
|
||||||
water_cauldrons = {
|
|
||||||
{ from = dry_dripstone_spike, to = watered_dripstone_spike },
|
|
||||||
{ from = "mcl_cauldrons:cauldron", to = "mcl_cauldrons:cauldron_1" },
|
|
||||||
{ from = "mcl_cauldrons:cauldron_1", to = "mcl_cauldrons:cauldron_2" },
|
|
||||||
{ from = "mcl_cauldrons:cauldron_2", to = "mcl_cauldrons:cauldron_3" },
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function noordstar_dripstone.add_lava_source(nodename)
|
|
||||||
table.insert(internal.lava_nodes)
|
|
||||||
end
|
|
||||||
function noordstar_dripstone.add_water_source(nodename)
|
|
||||||
table.insert(internal.water_nodes, nodename)
|
|
||||||
end
|
|
||||||
|
|
||||||
function noordstar_dripstone.add_lava_catcher(nodename, newnodename)
|
|
||||||
table.insert(internal.lava_cauldrons, { from = nodename, to = newnodename })
|
|
||||||
end
|
|
||||||
function noordstar_dripstone.add_water_catcher(nodename, newnodename)
|
|
||||||
table.insert(internal.water_cauldrons, { from = nodename, to = newnodename })
|
|
||||||
end
|
|
||||||
|
|
||||||
|
|
||||||
-- Create a node box for any given dripstone size.
|
|
||||||
-- Size 8 is a normal block size
|
|
||||||
local function nodebox_of_size(size)
|
|
||||||
if size >= 8 then
|
|
||||||
return nil
|
|
||||||
else
|
|
||||||
return {
|
|
||||||
type = "fixed",
|
|
||||||
fixed = {
|
|
||||||
{ - size / 16, -0.5, - size / 16, size / 16, 0.5, size / 16 },
|
|
||||||
},
|
|
||||||
}
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local function nodebox_type(size)
|
|
||||||
if size >= 8 then
|
|
||||||
return "normal"
|
|
||||||
else
|
|
||||||
return "nodebox"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Sounds
|
|
||||||
local dripstone_sounds = nil
|
|
||||||
if mcl_sounds then
|
|
||||||
dripstone_sounds = mcl_sounds.node_sound_stone_defaults()
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Trickle down config
|
-- Trickle down config
|
||||||
|
|
||||||
local lava_trickle_down = {
|
local lava_trickle_down = {
|
||||||
|
@ -195,8 +158,20 @@ local water_trickle_down_spike = {
|
||||||
{ from = molten_dripstone_spike, to = hardened_dripstone_spike },
|
{ from = molten_dripstone_spike, to = hardened_dripstone_spike },
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Tiles for dripstone
|
local lava_drop_down = {
|
||||||
|
{ from = dry_dripstone_spike, to = molten_dripstone_spike },
|
||||||
|
{ from = "mcl_cauldrons:cauldron", to = "mcl_cauldrons:cauldron_1_lava" },
|
||||||
|
{ from = "mcl_cauldrons:cauldron_1_lava", to = "mcl_cauldrons:cauldron_2_lava" },
|
||||||
|
{ from = "mcl_cauldrons:cauldron_2_lava", to = "mcl_cauldrons:cauldron_3_lava" },
|
||||||
|
}
|
||||||
|
local water_drop_down = {
|
||||||
|
{ from = dry_dripstone_spike, to = watered_dripstone_spike },
|
||||||
|
{ from = "mcl_cauldrons:cauldron", to = "mcl_cauldrons:cauldron_1" },
|
||||||
|
{ from = "mcl_cauldrons:cauldron_1", to = "mcl_cauldrons:cauldron_2" },
|
||||||
|
{ from = "mcl_cauldrons:cauldron_2", to = "mcl_cauldrons:cauldron_3" },
|
||||||
|
}
|
||||||
|
|
||||||
|
-- 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"
|
||||||
|
@ -218,41 +193,78 @@ local watered_dripstone_tiles =
|
||||||
, "noordstar_dripstone_watered_dripstone_side.png"
|
, "noordstar_dripstone_watered_dripstone_side.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- Register dripstone nodes
|
-- BASE BLOCKS
|
||||||
|
-- These blocks are able to absorb water or lava from above them.
|
||||||
|
|
||||||
local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
minetest.register_node(dry_dripstone_block,
|
||||||
local sunlight_propagates = nil
|
{ description = "Dripstone block"
|
||||||
if size < 8 then
|
, _doc_items_longdesc = "Dripstone block that can suck up liquids above it and creates stalactites below it."
|
||||||
sunlight_propagates = true
|
, tiles = dry_dripstone_tiles
|
||||||
end
|
, drawtype = "normal"
|
||||||
|
, groups = { pickaxey=2, material_stone=1 }
|
||||||
|
, is_ground_content = true
|
||||||
|
, drop = dry_dripstone_spike
|
||||||
|
, sounds = dripstone_sounds
|
||||||
|
, _mcl_hardness = 2
|
||||||
|
, _mcl_blast_resistance = 5
|
||||||
|
, _mcl_silk_touch_drop = true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
minetest.register_node(hardened_dripstone_block,
|
||||||
|
{ description = "Hardened dripstone block"
|
||||||
|
, _doc_items_longdesc = "Dripstone block that is no longer able to absorb liquids above it."
|
||||||
|
, tiles = hardened_dripstone_tiles
|
||||||
|
, drawtype = "normal"
|
||||||
|
, groups = { pickaxey=2, material_stone=1 }
|
||||||
|
, is_ground_content = true
|
||||||
|
, drop = dry_dripstone_spike
|
||||||
|
, sounds = dripstone_sounds
|
||||||
|
, _mcl_hardness = 2
|
||||||
|
, _mcl_blast_resistance = 5
|
||||||
|
, _mcl_silk_touch_drop = true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
minetest.register_node(molten_dripstone_block,
|
||||||
|
{ description = "Molten dripstone block"
|
||||||
|
, _doc_items_longdesc = "A dripstone block that has absorbed some lava, allowing it to form a stalactite."
|
||||||
|
, tiles = molten_dripstone_tiles
|
||||||
|
, drawtype = "normal"
|
||||||
|
, groups = { pickaxey=2, material_stone=1 }
|
||||||
|
, is_ground_content = true
|
||||||
|
, drop = dry_dripstone_spike
|
||||||
|
, sounds = dripstone_sounds
|
||||||
|
, _mcl_hardness = 2
|
||||||
|
, _mcl_blast_resistance = 5
|
||||||
|
, _mcl_silk_touch_drop = true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
minetest.register_node(watered_dripstone_block,
|
||||||
|
{ description = "Watered dripstone block"
|
||||||
|
, _doc_items_longdesc = "A dripstone block that has absorbed some water, allowing it to form a stalactite."
|
||||||
|
, tiles = watered_dripstone_tiles
|
||||||
|
, drawtype = "normal"
|
||||||
|
, groups = { pickaxey=2, material_stone=1 }
|
||||||
|
, is_ground_content = true
|
||||||
|
, drop = dry_dripstone_spike
|
||||||
|
, sounds = dripstone_sounds
|
||||||
|
, _mcl_hardness = 2
|
||||||
|
, _mcl_blast_resistance = 5
|
||||||
|
, _mcl_silk_touch_drop = true
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
local function make_dripstone(name, desc, longdesc, tiles, size)
|
||||||
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 = { pickaxey=2, material_stone=1 }
|
||||||
, is_ground_content = true
|
, is_ground_content = true
|
||||||
, drop = {
|
, drop = dry_dripstone_spike
|
||||||
max_items = math.floor((size + 1) / 2),
|
|
||||||
items = {
|
|
||||||
{ rarity = 1
|
|
||||||
, items = { drop }
|
|
||||||
},
|
|
||||||
{ rarity = 2
|
|
||||||
, items = { drop }
|
|
||||||
},
|
|
||||||
{ rarity = 4
|
|
||||||
, items = { drop }
|
|
||||||
},
|
|
||||||
{ rarity = 4
|
|
||||||
, items = { drop }
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
, sounds = dripstone_sounds
|
, sounds = dripstone_sounds
|
||||||
, drawtype = nodebox_type(size)
|
, drawtype = "nodebox"
|
||||||
, paramtype = "light"
|
, paramtype = "light"
|
||||||
, sunlight_propagates = sunlight_propagates
|
, sunlight_propagates = true
|
||||||
, 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
|
||||||
|
@ -261,42 +273,6 @@ local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
-- BASE BLOCKS
|
|
||||||
-- These blocks are able to absorb water or lava from above them.
|
|
||||||
|
|
||||||
make_dripstone(
|
|
||||||
dry_dripstone_block,
|
|
||||||
"Dripstone block",
|
|
||||||
"Dripstone block that can suck up liquids above it and creates stalactites below it.",
|
|
||||||
dry_dripstone_tiles,
|
|
||||||
dry_dripstone_spike,
|
|
||||||
8
|
|
||||||
)
|
|
||||||
make_dripstone(
|
|
||||||
hardened_dripstone_block,
|
|
||||||
"Hardened dripstone block",
|
|
||||||
"Dripstone block that is no longer able to absorb liquids above it.",
|
|
||||||
hardened_dripstone_tiles,
|
|
||||||
dry_dripstone_spike,
|
|
||||||
8
|
|
||||||
)
|
|
||||||
make_dripstone(
|
|
||||||
molten_dripstone_block,
|
|
||||||
"Molten dripstone block",
|
|
||||||
"A dripstone block that has absorbed some lava, allowing it to form a stalactite.",
|
|
||||||
molten_dripstone_tiles,
|
|
||||||
dry_dripstone_spike,
|
|
||||||
8
|
|
||||||
)
|
|
||||||
make_dripstone(
|
|
||||||
watered_dripstone_block,
|
|
||||||
"Watered dripstone block",
|
|
||||||
"A dripstone block that has absorbed some water, allowing it to form a stalactite.",
|
|
||||||
watered_dripstone_tiles,
|
|
||||||
dry_dripstone_spike,
|
|
||||||
8
|
|
||||||
)
|
|
||||||
|
|
||||||
-- HUGE DRIPSTONE
|
-- HUGE DRIPSTONE
|
||||||
-- This is the largest form a non-block can get.
|
-- This is the largest form a non-block can get.
|
||||||
|
|
||||||
|
@ -305,7 +281,6 @@ make_dripstone(
|
||||||
"Huge dripstone",
|
"Huge dripstone",
|
||||||
"Dripstone in the largest shape it can reach.",
|
"Dripstone in the largest shape it can reach.",
|
||||||
dry_dripstone_tiles,
|
dry_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
7
|
7
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -313,7 +288,6 @@ make_dripstone(
|
||||||
"Huge hardened dripstone",
|
"Huge hardened dripstone",
|
||||||
"Dripstone in the largest shape it can reach. It is no longer able to grow or absorb liquids.",
|
"Dripstone in the largest shape it can reach. It is no longer able to grow or absorb liquids.",
|
||||||
hardened_dripstone_tiles,
|
hardened_dripstone_tiles,
|
||||||
hardened_dripstone_spike,
|
|
||||||
7
|
7
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -321,7 +295,6 @@ make_dripstone(
|
||||||
"Huge molten dripstone",
|
"Huge molten dripstone",
|
||||||
"Dripstone in the largest shape it can reach. It has absorbed some lava, but it can no longer grow in thickness.",
|
"Dripstone in the largest shape it can reach. It has absorbed some lava, but it can no longer grow in thickness.",
|
||||||
molten_dripstone_tiles,
|
molten_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
7
|
7
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -329,7 +302,6 @@ make_dripstone(
|
||||||
"Huge watered dripstone",
|
"Huge watered dripstone",
|
||||||
"Dripstone in the largest shape it can reach. It has absorbed some water, but it can no longer grow in thickness.",
|
"Dripstone in the largest shape it can reach. It has absorbed some water, but it can no longer grow in thickness.",
|
||||||
watered_dripstone_tiles,
|
watered_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
7
|
7
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -340,7 +312,6 @@ make_dripstone(
|
||||||
"Large dripstone",
|
"Large dripstone",
|
||||||
"A thick layer of dripstone.",
|
"A thick layer of dripstone.",
|
||||||
dry_dripstone_tiles,
|
dry_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
6
|
6
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -348,7 +319,6 @@ make_dripstone(
|
||||||
"Large hardened dripstone",
|
"Large hardened dripstone",
|
||||||
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
||||||
hardened_dripstone_tiles,
|
hardened_dripstone_tiles,
|
||||||
hardened_dripstone_spike,
|
|
||||||
6
|
6
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -356,7 +326,6 @@ make_dripstone(
|
||||||
"Large molten dripstone",
|
"Large molten dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
||||||
molten_dripstone_tiles,
|
molten_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
6
|
6
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -364,7 +333,6 @@ make_dripstone(
|
||||||
"Large watered dripstone",
|
"Large watered dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
||||||
watered_dripstone_tiles,
|
watered_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
6
|
6
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -375,7 +343,6 @@ make_dripstone(
|
||||||
"Great dripstone",
|
"Great dripstone",
|
||||||
"A thick layer of dripstone.",
|
"A thick layer of dripstone.",
|
||||||
dry_dripstone_tiles,
|
dry_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
5
|
5
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -383,7 +350,6 @@ make_dripstone(
|
||||||
"Great hardened dripstone",
|
"Great hardened dripstone",
|
||||||
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
||||||
hardened_dripstone_tiles,
|
hardened_dripstone_tiles,
|
||||||
hardened_dripstone_spike,
|
|
||||||
5
|
5
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -391,7 +357,6 @@ make_dripstone(
|
||||||
"Great molten dripstone",
|
"Great molten dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
||||||
molten_dripstone_tiles,
|
molten_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
5
|
5
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -399,7 +364,6 @@ make_dripstone(
|
||||||
"Great watered dripstone",
|
"Great watered dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
||||||
watered_dripstone_tiles,
|
watered_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
5
|
5
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -410,7 +374,6 @@ make_dripstone(
|
||||||
"Medium dripstone",
|
"Medium dripstone",
|
||||||
"A thick layer of dripstone.",
|
"A thick layer of dripstone.",
|
||||||
dry_dripstone_tiles,
|
dry_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
4
|
4
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -418,7 +381,6 @@ make_dripstone(
|
||||||
"Medium hardened dripstone",
|
"Medium hardened dripstone",
|
||||||
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
||||||
hardened_dripstone_tiles,
|
hardened_dripstone_tiles,
|
||||||
hardened_dripstone_spike,
|
|
||||||
4
|
4
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -426,7 +388,6 @@ make_dripstone(
|
||||||
"Medium molten dripstone",
|
"Medium molten dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
||||||
molten_dripstone_tiles,
|
molten_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
4
|
4
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -434,7 +395,6 @@ make_dripstone(
|
||||||
"Medium watered dripstone",
|
"Medium watered dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
||||||
watered_dripstone_tiles,
|
watered_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
4
|
4
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -445,7 +405,6 @@ make_dripstone(
|
||||||
"Small dripstone",
|
"Small dripstone",
|
||||||
"A thick layer of dripstone.",
|
"A thick layer of dripstone.",
|
||||||
dry_dripstone_tiles,
|
dry_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
3
|
3
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -453,7 +412,6 @@ make_dripstone(
|
||||||
"Small hardened dripstone",
|
"Small hardened dripstone",
|
||||||
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
||||||
hardened_dripstone_tiles,
|
hardened_dripstone_tiles,
|
||||||
hardened_dripstone_spike,
|
|
||||||
3
|
3
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -461,7 +419,6 @@ make_dripstone(
|
||||||
"Small molten dripstone",
|
"Small molten dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
||||||
molten_dripstone_tiles,
|
molten_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
3
|
3
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -469,7 +426,6 @@ make_dripstone(
|
||||||
"Small watered dripstone",
|
"Small watered dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
||||||
watered_dripstone_tiles,
|
watered_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
3
|
3
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -480,7 +436,6 @@ make_dripstone(
|
||||||
"Tiny dripstone",
|
"Tiny dripstone",
|
||||||
"A thick layer of dripstone.",
|
"A thick layer of dripstone.",
|
||||||
dry_dripstone_tiles,
|
dry_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
2
|
2
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -488,7 +443,6 @@ make_dripstone(
|
||||||
"Tiny hardened dripstone",
|
"Tiny hardened dripstone",
|
||||||
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
||||||
hardened_dripstone_tiles,
|
hardened_dripstone_tiles,
|
||||||
hardened_dripstone_spike,
|
|
||||||
2
|
2
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -496,7 +450,6 @@ make_dripstone(
|
||||||
"Tiny molten dripstone",
|
"Tiny molten dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
||||||
molten_dripstone_tiles,
|
molten_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
2
|
2
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -504,7 +457,6 @@ make_dripstone(
|
||||||
"Tiny watered dripstone",
|
"Tiny watered dripstone",
|
||||||
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
||||||
watered_dripstone_tiles,
|
watered_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
2
|
2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -515,7 +467,6 @@ make_dripstone(
|
||||||
"Dripstone spike",
|
"Dripstone spike",
|
||||||
"A thick layer of dripstone.",
|
"A thick layer of dripstone.",
|
||||||
dry_dripstone_tiles,
|
dry_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
1
|
1
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -523,7 +474,6 @@ make_dripstone(
|
||||||
"Hardened dripstone spike",
|
"Hardened dripstone spike",
|
||||||
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
"A thick layer of dripstone. It is no longer able to grow or absorb liquids.",
|
||||||
hardened_dripstone_tiles,
|
hardened_dripstone_tiles,
|
||||||
hardened_dripstone_spike,
|
|
||||||
1
|
1
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -531,7 +481,6 @@ make_dripstone(
|
||||||
"Molten dripstone spike",
|
"Molten dripstone spike",
|
||||||
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some lava, so it is able to grow in thickness.",
|
||||||
molten_dripstone_tiles,
|
molten_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
1
|
1
|
||||||
)
|
)
|
||||||
make_dripstone(
|
make_dripstone(
|
||||||
|
@ -539,7 +488,6 @@ make_dripstone(
|
||||||
"Watered dripstone spike",
|
"Watered dripstone spike",
|
||||||
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
"A thick layer of dripstone. It has absorbed some water, so it is able to grow in thickness.",
|
||||||
watered_dripstone_tiles,
|
watered_dripstone_tiles,
|
||||||
dry_dripstone_spike,
|
|
||||||
1
|
1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -664,32 +612,32 @@ end
|
||||||
|
|
||||||
-- ABSORB LIQUIDS
|
-- ABSORB LIQUIDS
|
||||||
|
|
||||||
make_abm(dry_dripstone_block, seconds_per_water_trickle, absorb_liquid)
|
make_abm(dry_dripstone_block, seconds_per_trickle, absorb_liquid)
|
||||||
make_abm(molten_dripstone_block, seconds_per_lava_trickle, harden(function ()
|
make_abm(molten_dripstone_block, seconds_per_trickle, harden(function ()
|
||||||
return noordstar_dripstone.water_nodes
|
return noordstar_dripstone.water_nodes
|
||||||
end))
|
end))
|
||||||
make_abm(watered_dripstone_block, seconds_per_water_trickle, harden(function ()
|
make_abm(watered_dripstone_block, seconds_per_trickle, harden(function ()
|
||||||
return noordstar_dripstone.lava_nodes
|
return noordstar_dripstone.lava_nodes
|
||||||
end))
|
end))
|
||||||
|
|
||||||
-- TRICKLE DOWN
|
-- TRICKLE DOWN
|
||||||
|
|
||||||
make_abm(molten_dripstone_block, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_block))
|
make_abm(molten_dripstone_block, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_block))
|
||||||
make_abm(watered_dripstone_block, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_block))
|
make_abm(watered_dripstone_block, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_block))
|
||||||
make_abm(molten_dripstone_huge, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_huge))
|
make_abm(molten_dripstone_huge, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_huge))
|
||||||
make_abm(watered_dripstone_huge, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_huge))
|
make_abm(watered_dripstone_huge, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_huge))
|
||||||
make_abm(molten_dripstone_large, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_large))
|
make_abm(molten_dripstone_large, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_large))
|
||||||
make_abm(watered_dripstone_large, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_large))
|
make_abm(watered_dripstone_large, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_large))
|
||||||
make_abm(molten_dripstone_great, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_great))
|
make_abm(molten_dripstone_great, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_great))
|
||||||
make_abm(watered_dripstone_great, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_great))
|
make_abm(watered_dripstone_great, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_great))
|
||||||
make_abm(molten_dripstone_medium, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_medium))
|
make_abm(molten_dripstone_medium, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_medium))
|
||||||
make_abm(watered_dripstone_medium, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_medium))
|
make_abm(watered_dripstone_medium, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_medium))
|
||||||
make_abm(molten_dripstone_small, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_small))
|
make_abm(molten_dripstone_small, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_small))
|
||||||
make_abm(watered_dripstone_small, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_small))
|
make_abm(watered_dripstone_small, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_small))
|
||||||
make_abm(molten_dripstone_tiny, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_tiny))
|
make_abm(molten_dripstone_tiny, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_tiny))
|
||||||
make_abm(watered_dripstone_tiny, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_tiny))
|
make_abm(watered_dripstone_tiny, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_tiny))
|
||||||
make_abm(molten_dripstone_spike, seconds_per_lava_trickle, trickle_down(lava_trickle_down_spike, dry_dripstone_spike))
|
make_abm(molten_dripstone_spike, seconds_per_trickle, trickle_down(lava_trickle_down_spike, dry_dripstone_spike))
|
||||||
make_abm(watered_dripstone_spike, seconds_per_water_trickle, trickle_down(water_trickle_down_spike, dry_dripstone_spike))
|
make_abm(watered_dripstone_spike, seconds_per_trickle, trickle_down(water_trickle_down_spike, dry_dripstone_spike))
|
||||||
|
|
||||||
-- GROW
|
-- GROW
|
||||||
|
|
||||||
|
@ -708,43 +656,5 @@ make_abm(watered_dripstone_spike, seconds_per_growth*(4*4 - 2*2), grow_to(dry_dr
|
||||||
|
|
||||||
-- DROP DOWN
|
-- DROP DOWN
|
||||||
|
|
||||||
make_abm(molten_dripstone_spike, seconds_per_lava_trickle, drop_down_to(lava_drop_down, dry_dripstone_spike))
|
make_abm(molten_dripstone_spike, seconds_per_trickle, drop_down_to(lava_drop_down, dry_dripstone_spike))
|
||||||
make_abm(watered_dripstone_spike, seconds_per_water_trickle, drop_down_to(water_drop_down, dry_dripstone_spike))
|
make_abm(watered_dripstone_spike, seconds_per_trickle, drop_down_to(water_drop_down, dry_dripstone_spike))
|
||||||
|
|
||||||
-- CRATING RECIPES
|
|
||||||
|
|
||||||
local function gapple_recipe(gold, apple, gapple)
|
|
||||||
minetest.register_craft({
|
|
||||||
output = gapple,
|
|
||||||
recipe = {
|
|
||||||
{ gold, gold, gold },
|
|
||||||
{ gold, apple, gold },
|
|
||||||
{ gold, gold, gold },
|
|
||||||
}
|
|
||||||
})
|
|
||||||
end
|
|
||||||
|
|
||||||
gapple_recipe(dry_dripstone_spike, dry_dripstone_spike, dry_dripstone_tiny)
|
|
||||||
gapple_recipe(dry_dripstone_spike, dry_dripstone_tiny, dry_dripstone_small)
|
|
||||||
gapple_recipe(dry_dripstone_spike, dry_dripstone_small, dry_dripstone_medium)
|
|
||||||
gapple_recipe(dry_dripstone_spike, dry_dripstone_medium, dry_dripstone_great)
|
|
||||||
gapple_recipe(dry_dripstone_spike, dry_dripstone_great, dry_dripstone_large)
|
|
||||||
gapple_recipe(dry_dripstone_spike, dry_dripstone_large, dry_dripstone_huge)
|
|
||||||
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_spike, hardened_dripstone_tiny)
|
|
||||||
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_tiny, hardened_dripstone_small)
|
|
||||||
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_small, hardened_dripstone_medium)
|
|
||||||
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_medium, hardened_dripstone_great)
|
|
||||||
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_great, hardened_dripstone_large)
|
|
||||||
gapple_recipe(hardened_dripstone_spike, hardened_dripstone_large, hardened_dripstone_huge)
|
|
||||||
gapple_recipe(molten_dripstone_spike, molten_dripstone_spike, molten_dripstone_tiny)
|
|
||||||
gapple_recipe(molten_dripstone_spike, molten_dripstone_tiny, molten_dripstone_small)
|
|
||||||
gapple_recipe(molten_dripstone_spike, molten_dripstone_small, molten_dripstone_medium)
|
|
||||||
gapple_recipe(molten_dripstone_spike, molten_dripstone_medium, molten_dripstone_great)
|
|
||||||
gapple_recipe(molten_dripstone_spike, molten_dripstone_great, molten_dripstone_large)
|
|
||||||
gapple_recipe(molten_dripstone_spike, molten_dripstone_large, molten_dripstone_huge)
|
|
||||||
gapple_recipe(watered_dripstone_spike, watered_dripstone_spike, watered_dripstone_tiny)
|
|
||||||
gapple_recipe(watered_dripstone_spike, watered_dripstone_tiny, watered_dripstone_small)
|
|
||||||
gapple_recipe(watered_dripstone_spike, watered_dripstone_small, watered_dripstone_medium)
|
|
||||||
gapple_recipe(watered_dripstone_spike, watered_dripstone_medium, watered_dripstone_great)
|
|
||||||
gapple_recipe(watered_dripstone_spike, watered_dripstone_great, watered_dripstone_large)
|
|
||||||
gapple_recipe(watered_dripstone_spike, watered_dripstone_large, watered_dripstone_huge)
|
|
Binary file not shown.
Before Width: | Height: | Size: 583 KiB |
Binary file not shown.
Before Width: | Height: | Size: 702 KiB |
Loading…
Reference in New Issue