forked from Minetest/dripstone
Compare commits
8 Commits
c8c11d6539
...
2a8ff26dd7
Author | SHA1 | Date |
---|---|---|
Bram van den Heuvel | 2a8ff26dd7 | |
Bram van den Heuvel | 88085fed50 | |
Bram van den Heuvel | 6301616925 | |
Bram van den Heuvel | f6774858db | |
Bram van den Heuvel | f9ff713bb5 | |
Bram van den Heuvel | 7b230fdd97 | |
Bram van den Heuvel | c908311c48 | |
Bram van den Heuvel | 05f093b0ce |
|
@ -0,0 +1,101 @@
|
||||||
|
# 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**.
|
||||||
|
|
||||||
|
![Dripstone demonstration showing various complex shapes](textures/dripstone_example.png)
|
||||||
|
|
||||||
|
## 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.
|
||||||
|
|
||||||
|
![Classification of all 32 dripstone nodes](textures/dripstone_classification.png)
|
||||||
|
|
||||||
|
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,6 +4,9 @@ This Minetest mod adds dripstone to Minetest.
|
||||||
|
|
||||||
![Dripstone in various shapes and forms, absorbing water and lava](textures/noordstar_dripstone_preview.png)
|
![Dripstone in various shapes and forms, absorbing water and lava](textures/noordstar_dripstone_preview.png)
|
||||||
|
|
||||||
|
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,50 +1,11 @@
|
||||||
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_trickle = 1 * speed_factor
|
local seconds_per_water_trickle = 1 * speed_factor
|
||||||
local samples_per_interval = 10
|
local seconds_per_lava_trickle = 6 * speed_factor
|
||||||
|
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"
|
||||||
|
@ -80,6 +41,82 @@ 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 = {
|
||||||
|
@ -158,20 +195,8 @@ local water_trickle_down_spike = {
|
||||||
{ from = molten_dripstone_spike, to = hardened_dripstone_spike },
|
{ from = molten_dripstone_spike, to = hardened_dripstone_spike },
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
-- 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"
|
||||||
|
@ -193,78 +218,41 @@ local watered_dripstone_tiles =
|
||||||
, "noordstar_dripstone_watered_dripstone_side.png"
|
, "noordstar_dripstone_watered_dripstone_side.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- BASE BLOCKS
|
-- Register dripstone nodes
|
||||||
-- These blocks are able to absorb water or lava from above them.
|
|
||||||
|
|
||||||
minetest.register_node(dry_dripstone_block,
|
local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
||||||
{ description = "Dripstone block"
|
local sunlight_propagates = nil
|
||||||
, _doc_items_longdesc = "Dripstone block that can suck up liquids above it and creates stalactites below it."
|
if size < 8 then
|
||||||
, tiles = dry_dripstone_tiles
|
sunlight_propagates = true
|
||||||
, drawtype = "normal"
|
end
|
||||||
, 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 }
|
, groups = { pickaxey=2, material_stone=1, fall_damage_add_percent = math.max(4 - size, 0) / 4 * 100 }
|
||||||
, is_ground_content = true
|
, is_ground_content = true
|
||||||
, drop = dry_dripstone_spike
|
, drop = {
|
||||||
|
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"
|
, drawtype = nodebox_type(size)
|
||||||
, paramtype = "light"
|
, paramtype = "light"
|
||||||
, sunlight_propagates = true
|
, 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
|
||||||
|
@ -273,6 +261,42 @@ local function make_dripstone(name, desc, longdesc, tiles, 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.
|
||||||
|
|
||||||
|
@ -281,6 +305,7 @@ 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(
|
||||||
|
@ -288,6 +313,7 @@ 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(
|
||||||
|
@ -295,6 +321,7 @@ 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(
|
||||||
|
@ -302,6 +329,7 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -312,6 +340,7 @@ 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(
|
||||||
|
@ -319,6 +348,7 @@ 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(
|
||||||
|
@ -326,6 +356,7 @@ 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(
|
||||||
|
@ -333,6 +364,7 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -343,6 +375,7 @@ 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(
|
||||||
|
@ -350,6 +383,7 @@ 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(
|
||||||
|
@ -357,6 +391,7 @@ 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(
|
||||||
|
@ -364,6 +399,7 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -374,6 +410,7 @@ 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(
|
||||||
|
@ -381,6 +418,7 @@ 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(
|
||||||
|
@ -388,6 +426,7 @@ 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(
|
||||||
|
@ -395,6 +434,7 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -405,6 +445,7 @@ 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(
|
||||||
|
@ -412,6 +453,7 @@ 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(
|
||||||
|
@ -419,6 +461,7 @@ 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(
|
||||||
|
@ -426,6 +469,7 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -436,6 +480,7 @@ 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(
|
||||||
|
@ -443,6 +488,7 @@ 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(
|
||||||
|
@ -450,6 +496,7 @@ 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(
|
||||||
|
@ -457,6 +504,7 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -467,6 +515,7 @@ 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(
|
||||||
|
@ -474,6 +523,7 @@ 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(
|
||||||
|
@ -481,6 +531,7 @@ 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(
|
||||||
|
@ -488,6 +539,7 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -612,32 +664,32 @@ end
|
||||||
|
|
||||||
-- ABSORB LIQUIDS
|
-- ABSORB LIQUIDS
|
||||||
|
|
||||||
make_abm(dry_dripstone_block, seconds_per_trickle, absorb_liquid)
|
make_abm(dry_dripstone_block, seconds_per_water_trickle, absorb_liquid)
|
||||||
make_abm(molten_dripstone_block, seconds_per_trickle, harden(function ()
|
make_abm(molten_dripstone_block, seconds_per_lava_trickle, harden(function ()
|
||||||
return noordstar_dripstone.water_nodes
|
return noordstar_dripstone.water_nodes
|
||||||
end))
|
end))
|
||||||
make_abm(watered_dripstone_block, seconds_per_trickle, harden(function ()
|
make_abm(watered_dripstone_block, seconds_per_water_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_trickle, trickle_down(lava_trickle_down, dry_dripstone_block))
|
make_abm(molten_dripstone_block, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_block))
|
||||||
make_abm(watered_dripstone_block, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_block))
|
make_abm(watered_dripstone_block, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_block))
|
||||||
make_abm(molten_dripstone_huge, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_huge))
|
make_abm(molten_dripstone_huge, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_huge))
|
||||||
make_abm(watered_dripstone_huge, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_huge))
|
make_abm(watered_dripstone_huge, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_huge))
|
||||||
make_abm(molten_dripstone_large, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_large))
|
make_abm(molten_dripstone_large, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_large))
|
||||||
make_abm(watered_dripstone_large, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_large))
|
make_abm(watered_dripstone_large, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_large))
|
||||||
make_abm(molten_dripstone_great, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_great))
|
make_abm(molten_dripstone_great, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_great))
|
||||||
make_abm(watered_dripstone_great, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_great))
|
make_abm(watered_dripstone_great, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_great))
|
||||||
make_abm(molten_dripstone_medium, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_medium))
|
make_abm(molten_dripstone_medium, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_medium))
|
||||||
make_abm(watered_dripstone_medium, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_medium))
|
make_abm(watered_dripstone_medium, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_medium))
|
||||||
make_abm(molten_dripstone_small, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_small))
|
make_abm(molten_dripstone_small, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_small))
|
||||||
make_abm(watered_dripstone_small, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_small))
|
make_abm(watered_dripstone_small, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_small))
|
||||||
make_abm(molten_dripstone_tiny, seconds_per_trickle, trickle_down(lava_trickle_down, dry_dripstone_tiny))
|
make_abm(molten_dripstone_tiny, seconds_per_lava_trickle, trickle_down(lava_trickle_down, dry_dripstone_tiny))
|
||||||
make_abm(watered_dripstone_tiny, seconds_per_trickle, trickle_down(water_trickle_down, dry_dripstone_tiny))
|
make_abm(watered_dripstone_tiny, seconds_per_water_trickle, trickle_down(water_trickle_down, dry_dripstone_tiny))
|
||||||
make_abm(molten_dripstone_spike, seconds_per_trickle, trickle_down(lava_trickle_down_spike, dry_dripstone_spike))
|
make_abm(molten_dripstone_spike, seconds_per_lava_trickle, trickle_down(lava_trickle_down_spike, dry_dripstone_spike))
|
||||||
make_abm(watered_dripstone_spike, seconds_per_trickle, trickle_down(water_trickle_down_spike, dry_dripstone_spike))
|
make_abm(watered_dripstone_spike, seconds_per_water_trickle, trickle_down(water_trickle_down_spike, dry_dripstone_spike))
|
||||||
|
|
||||||
-- GROW
|
-- GROW
|
||||||
|
|
||||||
|
@ -656,5 +708,43 @@ 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_trickle, drop_down_to(lava_drop_down, dry_dripstone_spike))
|
make_abm(molten_dripstone_spike, seconds_per_lava_trickle, drop_down_to(lava_drop_down, dry_dripstone_spike))
|
||||||
make_abm(watered_dripstone_spike, seconds_per_trickle, drop_down_to(water_drop_down, dry_dripstone_spike))
|
make_abm(watered_dripstone_spike, seconds_per_water_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.
After Width: | Height: | Size: 583 KiB |
Binary file not shown.
After Width: | Height: | Size: 702 KiB |
Loading…
Reference in New Issue